ipv6 обратно совместим с ipv4? - PullRequest
1 голос
/ 27 мая 2009

У меня есть небольшая примерная программа udp, написанная с использованием ipv4. Если я изменю код на ipv6, смогу ли я по-прежнему общаться с кем-либо, использующим приемник с адресом ipv4? Я смотрел на примеры портирования на

http://ou800doc.caldera.com/en/SDK_netapi/sockC.PortIPv4appIPv6.html

Я не уверен, что простое изменение кода обеспечит его работоспособность или мне придется писать его в режиме стека дуэлей.

Ответы [ 3 ]

7 голосов
/ 27 мая 2009

Да и нет ... IPv6 содержит совершенно другую адресацию, поэтому вам придется перекодировать ваше приложение, чтобы использовать альтернативные заголовки и размеры структуры.

Однако диапазон адресов IPv4 доступен в IPv6, синтаксис заключается в добавлении двух двоеточий перед стандартным адресом (например, :: 10.11.12.13) Вы также можете встраивать адреса IPv4 в пакеты IPv6 .

5 голосов
/ 02 июня 2009

Не без помощи шлюза IPv4 / IPv6 в сети, и даже в этом случае связь будет ограничена типичными проблемами , создаваемыми шлюзами трансляции сетевых адресов. Традиционный совет для программистов, сталкивающихся с подобными решениями, - рекомендовать поддерживать IPv4 и IPv6 одновременно.

1 голос
/ 27 мая 2009

IPv4 и IPv6 несовместимы друг с другом.
Несколько основных причин:

  • адресное пространство совершенно другое (IPv6 имеет 128-битные адреса, IPv4 имеет 32-битные адреса)
  • заголовок протокола IPv6 не похож на заголовок протокола IPv4. если вы попытаетесь проанализировать пакет IPv6 как IPv4, вы получите глупость.

Очевидным результатом этого является то, что если вы откроете сокет IPv6, вы не сможете прослушивать его с помощью сокета IPv4.

...