ipv6是否与ipv4向后兼容?

时间:2009-05-27 14:07:00

标签: c++ udp ipv6 ipv4

我有一个使用ipv4编写的udp示例程序。如果我将代码改为ipv6,我仍然能够与使用ipv4地址的监听器进行通信吗?我正在考虑移植

的例子

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

我不确定简单地改变代码是否会确保它有效或者我是否必须在双重堆栈模式下编写代码。

3 个答案:

答案 0 :(得分:7)

是和否...... IPv6确实包含完全不同的寻址,因此您必须重新编写应用以使用备用标头和结构大小。

但是,IPv4地址范围在IPv6中可用,语法是在标准地址之前添加两个冒号(例如:: 10.11.12.13)。你也可以embed IPv4 addresses within IPv6 packets

答案 1 :(得分:5)

在没有网络中IPv4/IPv6 gateway的帮助下,即使这样,通信也会受到网络地址转换网关引入的typical problems的限制。面对这样的决策的程序员的传统建议是建议同时支持IPv4和IPv6。

答案 2 :(得分:1)

IPv4和IPv6本质上是彼此不兼容的 一些基本原因:

  • 地址空间完全不同(IPv6具有128位地址,IPv4具有32位地址)
  • IPv6的协议头看起来与IPv4的协议头不同。如果您尝试将IPv6数据包解析为IPv4,则会产生废话。

这些显而易见的结果是,如果您打开IPv6套接字,则无法使用IPv4套接字来监听它。

相关问题