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 ...
随机推荐
- svn在commit后报错:is scheduled for addition, but is missing
删除文件夹后点commit提交,但是报错,报错内容如下: 提示 "svn: Commit failed (details follow): svn: '/***/xxx.c' is sche ...
- python装饰器1
目的:在不修改原来函数代码的前提下,使用这个功能,可以使得之后这个函数被调用时增加额外的功能. #2.定义装饰器 def deco (fun): print "i am deco,i can ...
- linux5.6以下版本的不兼容问题
之前一直用的都是mysql5.6版本,最近突然使用到了mysql5.1版本,于是在导入数据的时候便出现了很多由于版本不兼容的问题. 1.mysql5.1没有datetime类型,所以对于时间类型,只能 ...
- 最精简的自定义.net 开发框架
一. 通过自定义的HttpModule和HttpHandler,重写url,自定义路由规则,实现 Web API功能. 简单说 就是 请求路径 例如 service/method, 那么就指向当前应 ...
- Android模块化开发、组件化开发;
模块化开发:优点嘛,项目过大时便于管理: 1.在根目录的gradle.properties文件下添加 isBuildModule=false: 使用isBuildModule来控制这个是Library ...
- Android 真机投影到PC端,真机投影工具;Vysor
Vysor可以把Android真机投影到PC端,也就是电脑上:手机端和PC端课同步操作: Vysor是Chrome浏览器的插件,我们想要添加这个插件需要FQ: 从这里可以直接下载:Vysor
- JVM总结-synchronized
在 Java 程序中,我们可以利用 synchronized 关键字来对程序进行加锁.它既可以用来声明一个 synchronized 代码块,也可以直接标记静态方法或者实例方法. 当声明 synchr ...
- 怎么转化为LPCWSTR
wstring a = L"hello ,中国"; LPCWSTR b; b =(LPCWSTR) a.c_str(); RemoveDirectory(b); C++中L和_T( ...
- 理解 with递归调用 Sqlserver 树查询
--with用法 --可以这么理解 with SQL语句变量或者叫临时表名 as( SQL语句 ) select * from SQL语句变量或者叫临时表名 --递归调用 with CTE as( s ...
- JDK-1.8-CopyOnWriteSet
CopyOnWriteSet 看了下CopyOnWriteSet源码,底层使用的是CopyOnWriteList,根据底层的实现,每次读取都是N的复杂度.每次写也是N的复杂度.有个代码可以看一下, 来 ...