Хотя в табл. 3 3 . 3 против префикса 0000 0000 отмечено, что он зарезервирован, небольшую часть адресов из этого блока разработчики планируют использовать для кодирования адресов, определенных протоколом IPv4. В частности, любой адрес, начинающийся с 80 нулевых бит, за которыми следуют 16 бит из единиц или 16 бит из нулей, содержит адрес IPv4 в младших 32 битах. Значение соответствующего 16-битового поля показывает, есть ли у данного узла еще и одноадресатный адрес протокола IPv6. На рис. 3 3 . 8 показаны оба возможных варианта. Описанное выше кодирование будет использоваться при переходе от протокола IPv4 к IPv6 по двум причинам.
Во-первых, программное обеспечение компьютера, использующее протокол IPv4, может быть обновлено на программное обеспечение, использующее протокол IPv6, еще до того, как машина получит адрес IPv6. Во-вторых, у компьютера с действующим программным обеспечением на основе протокола IPv6 может возникнуть необходимость связаться с компьютером, на котором используется только программное обеспечение на основе протокола IPv4. Кодирование адресов IPv4 в адреса протокола IPv6 не решает проблему взаимодействия программного обеспечения, поддерживающего разные версии протокола, необходим еще механизм их преобразования.
При использовании транслятора адресов компьютер, использующий протокол IPv6, должен сгенерировать дейтаграмму, в которой содержится закодированный IPv4 адрес получателя. Затем компьютер посылает дейтаграмму транслятору адресов, который, используя протокол IPv4, отправляет ее получателю. Получив ответ, транслятор адресов преобразовывает дейтаграмму протокола IPv4 в дейтаграмму протокола IPv6 и отсылает ее отправителю с помощью протокола IPv6. На первый взгляд может показаться, что преобразование протокольных адресов будет приводить к некорректной работе системы, поскольку протоколы более высокого уровня проверяют неизменность адреса.
В частности, в протоколах TCP и UDP при вычислении контрольной суммы используется псевдозаголовок. В нем содержатся адреса как отправителя, так и получателя, поэтому изменение этих адресов может повлиять на вычисление контрольной суммы. Поэтому разработчики должны были предусмотреть возможность взаимодействия протоколов TCP и UDP на машинах, использующих IPv4, с соответствующими транспортными протоколами на машинах, использующими IPv6. Чтобы избежать несовпадения контрольных сумм, при кодировании адресов протокола IPv4 в протоколе IPv6 алгоритм вычисления контрольной суммы выбирается так, чтобы 16-битовое дополнение контрольной суммы до единицы было одинаково для обоих типов адресов.
Выделяя главное, можно сказать вот что. Кроме выбора технических деталей нового протокола Internet, работа проблемной группы IEFT над протоколом IPv6 была сосредоточена на поиске способа перехода от текущего протокола к новому. В частности, в текущем варианте протокола IPv6 предусмотрена возможность кодирования адреса протокола IPv4 в адрес IPv6 таким образом, что преобразование адреса не изменяет контрольной суммы псевдозаголовка.
2011-05-17 12:26:19