1 IPv4和IPv6的差异

1.1 地址空间

  IPv6 与 IPv4 比较最显著的一个改动就是使用 128 比特上的地址来代替了 32 比特长的 IPv4 地址。 IPv6 中取消了广播地址, 其功能由多目地址代替。

1.2 数据报格式

  IPv6 报头格式在 IPv4 的基础上进行了优化, 从而有助于提高处理效率。 首先, 有些不必要的域被削减了, 有些域则被定义为可选报头, 如 IPv4 中的报头长度域由于在 IPv6 中采用下一报头域将可选报头或上层协议报头连起来而显得没必要; 与分段( fragment) 有关的域也由于 IPv6 中不同的分段方法而被定为可选报头。 其次, IPv6 报头中每个多字节的域都按照自然边界对齐, 从而方便程序处理。

  校验和域在 IPv6 中被取消了。

  IPv6 对扩展报头或可选项的支持十分灵活。 这些扩展报头紧跟在基本报头后面, 由下一报头域串联起来形成一个链。

1.3 分段策略

  IPv6 的分段策略也有了改变。 在 IPv4 数据包传输过程中, 如果需要, 分段就有可能发生。 而在 IPv6 中, 分段只能由源主机进行, 而不能由路由器进行。 IPv6规定所有的主机与路由器都必须支持 576 字节的数据包, 这使得分段的概率就小得多了。 因此, IPv6 的基本报头中就不包括有关分片的域了, 而是特别定义一个分片的扩展报头。

1.4 安全性

  IPv6 在安全性方面有所加强。 首先要求所有IPv6主机支持鉴别机制, 特别定义了鉴别扩展报头, 并以 MD5 算法作为缺省的鉴别算法; 其次, IPv6 还建立了交换机密信息的保密机制, 以防 IP 包在传输过程中被窃听。

1.5 自动配置

  在一个 IPv4 环境中, 用户或网络管理员必须手工配置 IPv4节点地址。 而 IPv6 由于有了地址自动设定, 主机可以自动的为每个地址配置一个或多个地址。

2 双协议栈的通信

  地址是首先要解决的问题。IPv6中专门定义了两种地址,其中嵌入了IPv4地址。一个是IPv4兼容地址,即在IPv4地址前填充0;另一种是IPv4映射地址,记载IPv4地址前加上16个1,再用0填充满128位。
要是先Internet中IPv4与IPv6的互操作可以有三种方法。

2.1 双IP层技术

  双IP层是保持IPv6与IPv4互操作性的最直接方式。适用于Internet有IPv4向IPv6过渡的前期。具有双IP层的节点成为IPv4/IPv6节点。它具有两个IP协议的完整实现。

2.2 隧道技术

  隧道技术适用于Internet有IPv4向IPv6过渡的中期。其原理是两个IPv6的网络之间的中间网络的多协议路由器接收到源主机的IP包时,将其放入中间网络层数据包在和域中,当其到达中间网络另一端多协议路由器时再恢复源IP包并转发到目的主机,这样整个中间网络就像一条隧道。

2.3 报头翻译技术

  当Internet中只有极少数IPv4节点时(过渡阶段后期),报头翻译技术可以保持IPv6与IPv4节点间的通讯。向IPv4节点发送消息时,路径上最后一个IPv6/IPv4路由器发现目的地址是IPv4映射地址则进行报头翻译,将IPv6报头替换成IPv4报头,并转发到目的IPv4节点。

IPv4和IPv6的差异;如何实现IPv4和IPv6双协议栈的通信的更多相关文章

  1. IPv6绝不仅仅是对IPv4地址长度的增加

    众所周知,IPv6 IP地址长度是IPv4 IP地址长度的四倍,是解决IPv4公共网址资源枯竭的最佳技术.的确,IETF在制定IPv6标准时也是基于这一因素考虑的.当时正是90年代初,Web开始出现, ...

  2. iOS 上线因iPv6被拒,查询服务器是否支持iPv6,mac设置iPv6网络,手机测试iPv6

    一. iOS----如何检查域名是否支持ipv6 iOS----------如何检查域名是否支持ipv6 1.检查你所用到的库,像af 3.0以上什么的(不用改),其他的库自己去搜下是否支持ipv6吧 ...

  3. 开启 IPv6 新时代,升级后的 IPv6 厉害在哪?

    IPv6,Internet Protocol Version 6,从字面翻译 “互联网协议第 6 版”,它是IETF设计的用于替代现行版本 IP 协议-IPv4 协议,被称作“下一代互联网协议”.早在 ...

  4. IPv6 Tunnel Broker+ROS搭建6TO4(IPV6)网络

    准备条件:1.公网IPV4的IP2.ROS+IPV6的DHCP,本测试在ROS6.24版本下测试通过3. IPv6 Tunnel Broker:https://www.tunnelbroker.net ...

  5. ipv6现状,加英文的中括号访问, ipv6测试http://test-ipv6.com

    加英文的中括号就可以,如[2001:4998:c:e33::1004],我发现这是yahoo首页.但并不是所有IPv6网站都可以通过IPv6地址访问,跟IPv4一样,网站服务器端可以只绑定域名,不接受 ...

  6. #获取本机IP地址时排除IPv6类型,只返回IPv4地址的方法

    public static string GetLocalIP(){try{string HostName = Dns.GetHostName(); //得到主机名IPHostEntry IpEntr ...

  7. IPV4/IPV6双协议栈配置案例

    拓扑: XRV1配置: =================================================================== hostname XRV1! ipv6 ...

  8. ubuntu(Linux) c++ 获取本机IPv4和ipv6、查询本机IPv4,IPv6

    1.关于 演示环境: Linux xxxxxxx 5.4.0-47-generic #51-Ubuntu SMP Fri Sep 4 19:50:52 UTC 2020 x86_64 x86_64 x ...

  9. windows10 c++获取本机IPv4,ipv6,查询本机Ipv4,ipv6

    1.关于 演示环境: win10+VS2017 2.支持 需要下面的库支持: ws2_32.lib 需要下面的宏,添加到项目属性-> c/c++ -> 预处理器定义 _WINSOCK_DE ...

随机推荐

  1. python的json模块介绍

    转载:https://blog.csdn.net/xsj_blog/article/details/51921664 对于数据传递方面,XML是一种选择,还有一种选择是JSON,它是一种轻量级的数据交 ...

  2. 思考-Status management and validation(状态管理与验证)

    结合自己的项目,有这么一个模块,这个模块用来添加一个停车场,注册信息又分:基本信息,管理设置,管理员设置3部分组成,每部分都有input=text的输入框,点击保存按钮需要验证各个部分的输入框是否有合 ...

  3. mybatis的插件,挺好支持下

    利用 Mybatis-generator自动生成代码http://www.cnblogs.com/yjmyzz/p/4210554.html Mybatis 通用 Mapper3 https://gi ...

  4. cocos子节点转父节点坐标 原理浅析(局部坐标转世界坐标同理)

    在CCNode的类中,有一个得到 一个节点坐标系转换父亲坐标系的一个矩阵,节点内坐标乘以这个矩阵,就可以转换为在节点父节点中的坐标,方法名为: Mat4& Node::getNodeToPar ...

  5. 权重比较(id class 标签)

    权重的取值: 按照 id   class  标签 的顺序在其位置上标出1或者0 例如下面的例子 <!DOCTYPE html> <html lang="en"&g ...

  6. gentoo: startx: drmsetmaster failed: permission denied

    今天更新了 xorg-server 之后, startx 就进不了 X了,但是可以用 sudo startx 进入 X,所以感觉很奇怪. 后来终于在 gentoo 官方论坛上面找到答案了. https ...

  7. ubuntu上virtualbox无法找到usb设备【解决】

    How to set up USB for Virtualbox? USB in different versions of Virtual Box For use of USB in Virtual ...

  8. 安装e(fx)clipse到Eclipse (JavaFX工具)

    转载自:https://www.yiibai.com/javafx/install-efxclipse-into-eclipse.html 想要在 Eclipse 中开发 JavaFX,那么可安装 J ...

  9. 【Social listening实操】从社交媒体传播和文本挖掘角度解读《欢乐颂2》

    本文转自知乎 作者:苏格兰折耳喵 ----------------------------------------------------- 作为数据分析爱好者,本文作者将想从数据的角度去解读< ...

  10. python中的center

    center(self,width,fillchar=None)让字符串居中显示,width定义字长度,fillchar定义空白处填充,不填写默认为空白 举个列子: 1 a = "hello ...