IPv4和IPv6的差异;如何实现IPv4和IPv6双协议栈的通信
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双协议栈的通信的更多相关文章
- IPv6绝不仅仅是对IPv4地址长度的增加
众所周知,IPv6 IP地址长度是IPv4 IP地址长度的四倍,是解决IPv4公共网址资源枯竭的最佳技术.的确,IETF在制定IPv6标准时也是基于这一因素考虑的.当时正是90年代初,Web开始出现, ...
- iOS 上线因iPv6被拒,查询服务器是否支持iPv6,mac设置iPv6网络,手机测试iPv6
一. iOS----如何检查域名是否支持ipv6 iOS----------如何检查域名是否支持ipv6 1.检查你所用到的库,像af 3.0以上什么的(不用改),其他的库自己去搜下是否支持ipv6吧 ...
- 开启 IPv6 新时代,升级后的 IPv6 厉害在哪?
IPv6,Internet Protocol Version 6,从字面翻译 “互联网协议第 6 版”,它是IETF设计的用于替代现行版本 IP 协议-IPv4 协议,被称作“下一代互联网协议”.早在 ...
- IPv6 Tunnel Broker+ROS搭建6TO4(IPV6)网络
准备条件:1.公网IPV4的IP2.ROS+IPV6的DHCP,本测试在ROS6.24版本下测试通过3. IPv6 Tunnel Broker:https://www.tunnelbroker.net ...
- ipv6现状,加英文的中括号访问, ipv6测试http://test-ipv6.com
加英文的中括号就可以,如[2001:4998:c:e33::1004],我发现这是yahoo首页.但并不是所有IPv6网站都可以通过IPv6地址访问,跟IPv4一样,网站服务器端可以只绑定域名,不接受 ...
- #获取本机IP地址时排除IPv6类型,只返回IPv4地址的方法
public static string GetLocalIP(){try{string HostName = Dns.GetHostName(); //得到主机名IPHostEntry IpEntr ...
- IPV4/IPV6双协议栈配置案例
拓扑: XRV1配置: =================================================================== hostname XRV1! ipv6 ...
- 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 ...
- windows10 c++获取本机IPv4,ipv6,查询本机Ipv4,ipv6
1.关于 演示环境: win10+VS2017 2.支持 需要下面的库支持: ws2_32.lib 需要下面的宏,添加到项目属性-> c/c++ -> 预处理器定义 _WINSOCK_DE ...
随机推荐
- module 'pip' has no attribute 'pep425tags'
AMD64 import pip._internal print(pip._internal.pep425tags.get_supported()) 1 2 WIN32 import pip prin ...
- samba安装
第一步下载: wget https://download.samba.org/pub/samba/stable/samba-4.6.7.tar.gz 看了下没看到啥有用的直接安装: ./configu ...
- 学习js第二天小结
if-else if ---------适用于区间范围的判断 If(判断条件--一般是boolean类型的值或是关系表达式或是逻辑表达式 ){ 要执行的代码; }else if(判断条件) ...
- 查看linux的IO占用
iotop -oPiostat -xm 1 iostat -d -x -kiostat -c top
- 在oracle中创建自动增长字段
参考http://www.cnblogs.com/jerrmy/archive/2013/03/13/2958352.html http://www.jb51.net/article/43382.ht ...
- 关于python无法显示中文的问题:SyntaxError: Non-ASCII character '\xe4' in file test.py on line 3, but no encoding declared。
[已解决]关于python无法显示中文的问题:SyntaxError: Non-ASCII character '\xe4' in file test.py on line 3, but no enc ...
- mysql如何修改root用户的密码
方法1: 用SET PASSWORD命令 首先登录MySQL. 格式:mysql> set password for 用户名@localhost = password('新密码'); 例子:my ...
- 【python】python函数式编程、高阶函数
1.map() : python内置的高阶函数,接收一个函数f和一个list,并通过把函数f依次作用在list的每个元素上,得到一个新的list并 返回. def f(x): r ...
- Nop常用知识点
1.列表标题与内容均居中对齐,列中配置为: headerAttributes: { style: "text-align:center" }, attributes: { styl ...
- 《算法》BEYOND 部分程序 part 3
▶ 书中第六章部分程序,加上自己补充的代码,包括 Graham 扫描生成凸包,计算最远点对 ● Graham 扫描生成凸包 package package01; import java.util.Ar ...