++实现 ipv6数据报_IPV6报文格式和IPV4有什么区别?
前言
RFC2460定义了IPv6数据报格式。
总体结构上,IPv6数据报格式与IPv4数据报格式是一样的,也是由IP报头和数据(在IPv6中称为有效载荷)这两个部分组成的。
但在IPv6数据报数据部分还可以包括0个或者多个IPv6扩展报头(Extension header)。
正文
1IPV6报文格式
如下图所示。IP报头部分固定为40字节长度,而有效载荷部分最长不得超过65535字节。
IPv6和IPv4之间的最大差别在于:IP地址的长度从32位到128位。
通过裁剪IPv4报头中的某些字段,或把一些字段移入到扩展报头中,IPv6基本报头的总长度大大减小了。
IPv6使用固定长度的基本报头,从而简化了转发设备对IPv6报文的处理,提高了转发效率。
尽管IPv6地址长度是IPv4地址长度的4倍,但IPv6基本报头的长度只有40字节,为固定的IPv4报文头长度(不包括选项字段)的2倍。
IPv6报头格式如下图所示:
2IPV6报文各字段作用
版本(Version)
版本字段用来表示IP数据报使用的是IPv6协议封装,占4位,对应值为6(0110)。
通信分类(Traffic Class)
通信分类字段用来标识对应IPv6的通信流类别,或者说是优先级别,占8位,类似于IPv4中的ToS(服务类型)字段。
流标签(Flow Label)
流标签字段时IPv6数据报中新增的一个字段,占20位,可用来标记报文的数据流类型,以便在网络层区分不同的报文。
流标签字段有源节点分配,通过流标签、源地址、目的地址三元组方式就可以唯一标识一条通信流,而不用像IPv4那样需要使用五元组方式(源地址、目的地址、源端口、目的端口和传输层协议号)。
这样发动的最大好处有两点:
一是流标签可以和任意的关联,需要标识不同类型的流(可以是非五元组)时,无需对流标签做改动;
二是流标签在IPv6基本头中,使用IPSec时此域对转发路由器可见,因此转发路由器可以在使用IPv6报文IPSec的情况下仍然可以通过三元组(流标签、源地址、目的地址)针对特定的流进行QoS(质量服务)处理。
有效载荷长度(PayLoad Length)
有效载荷长度字段是以字节为单位的标识IPv6数据报中有效载荷部分(包括所有扩展报头部分)的总长度,也就是除了IPv6的基本报头以外的其他部分的总长度,占20位。
下一个头部(Next Header)
下一个头部字段用来标识当前报头(或者扩展报头)的下一个头部类型,占8位。
每种扩展报头都有其对应的值。下一个头部字段内定义的扩展报头类型与IPv4中的协议字段值类似,但在IPv6数据报中,紧接着IPv6报头的可能不是上层协议头部(当没有扩展报头或者为最后一个扩展报头时才是上层协议头),而是IPv6扩展报头。
这一机制下处理扩展报头更搞笑,因为标识了数据报中对应的上层协议或者扩展报头类型,转发路由器只需处理必须处理的扩展报头,提高了转发效率。
跳数限制(Hop Limit)
跳数限制于IPv4报文中的TTL字段类似,指定了报文可以有效转发的次数,占8位。报文每经过一个路由器结点,跳数值就减1,当此字段值减到0时,则直接丢弃该报文。
源地址(Source IP Address)
源IP地址字段标识了发送该IPv6报文源节点的IPv6地址,占128位。
目的IP地址(Destination IP Address)
目的IP地址字段标识了IPv6报文的接受节点的IPv6地址,占128位。
3IPv6扩展报头
在各字段介绍中我们讲到了,IPv6报文中可以携带可选的IPv6扩展报头
IPv6扩展报头是跟在IPv6基本报头后面的可选报头。由于在IPv4的报头中包含了几乎所有的可选项,因此每个中间路由器都必须检查这些选项是否存在。
在IPv6中,这些相关选项被统一移到了扩展报头中,这样中间路由器不必处理每一个可能出现的选项(仅有“逐跳选项”报头是必须要处理的),提高了处理器处理数据报文的速度,也提高了其转发的性能。
IPv6扩展报头附加在IPv6报头目的IP地址字段后面,可以有0个,或者多个扩展报头。
IPv6扩展报头分类:
逐跳选项头(Hop-by-hop Options Header)
本扩展报头类型值为0(在IPv6报头下一个头部字段中定义,下同)。
此扩展报头须被转发路径所有节点处理。
目前在路由告警(RSVP和MLDv1)与Jumbo帧处理中使用了逐跳选项头,因为路由告警需要通知到转发路径中所有结点,而Jumbo帧是长度超过65535字节的报文,传输这种报文需要转发路径中所有结点都能正常处理。
目的选项头(Destination Options Header)
本扩展报头类型值为60。只可能出现在两个位置:
1. 路由头前,这是此选项头被目的节点和路由头中指定的结点处理;
2. 上层头前(任何的ESP头后),此时只能被目的结点处理。
移动IPv6中使用了目的选项头,称为家乡地址选项。
家乡地址选项由目的选项头携带,用以移动结点离开“家乡”后通知接受节点此移动结点对应的家乡地址。
接受节点收到带有家乡地址选项的报文后,会把家乡地址选项中的源地址(移动节点的家乡地址)和报文中源地址(移动节点的转交地址)交换,这样上层协议始终认为是在和移动节点的家乡地址通信,实现了移动漫游功能。
路由头(Routing Header)
本扩展报头类型值为43,用于源路由选项和移动IPv6。
分段头
本扩展报头类型值为44,用于标识数据报的分段,在IPv4中就有对应的字段。当源节点发送的报文超过传输链路MTU(源节点和目的节点之间传输路径的MTU)时,需要对报文进行分段时使用。
认证头
本扩展报头类型值为51,用于IPSec,提供报文验证,完整性检查。
封装安全有效载荷头
本扩展头类型值为50,用于IPSec,提供报文验证、完整性检查差和加密。
上层头
这是用来标识数据报中上层协议类型,如TCP、UDP、ICMP等。
注意:
目的选项头最多出现两次,一次在路由头前,一次在上层协议头前,其他选项头最多只能出现一次。
IPv6节点必须能够处理选项头(逐跳选项头除外,它固定只能紧随基本报头之后)在任意位置出现,以保证互通性。
总结
1、对比IPv4数据报头部格式可以看出,IPv6去除了IPv4报头中的头部长度、标识、标志、段偏移、校验和、选项、填充这么多字段,却只增加了流标签这一个字段,因此IPv6报头处理和IPv4报头处理相比大大简化,提高了处理效率。
2、IPv6为了更好地支持各种选项处理,提出了扩展头的概念,新增选项时不必修改现有的结构就能做到,理论上可以无限扩展,体现了优异的灵活性。
以上来源网络,如有侵权,联系删除!
++实现 ipv6数据报_IPV6报文格式和IPV4有什么区别?相关推荐
- icmp报文格式_IPV6报文格式和IPV4有什么区别?
前言 RFC2460定义了IPv6数据报格式. 总体结构上,IPv6数据报格式与IPv4数据报格式是一样的,也是由IP报头和数据(在IPv6中称为有效载荷)这两个部分组成的. 但在IPv6数据报数据部 ...
- IPv4 和 IPv6 数据报格式详解
IPv4 报文头格式及各字段功能 IPv4 报头格式 各字段功能: 1.版本号(Version):长度 4 bit .标识目前采用的 IP 协议的版本号.一般的值为 0100(IPv4),0110(I ...
- IPv4 和 IPv6 报文格式详解
文章目录 1 概述 2 报文格式 2.1 IPv4 2.2 IPv6 2.3 两者区别 3 网工软考真题 1 概述 2 报文格式 2.1 IPv4 中文名 英文名 长度 bit(位) 解释 版本 Ve ...
- IPv4和IPv6报文格式介绍和对比
IPv4和IPv6报文介绍和对比 IPv4数据报 IPv4报文详解 IPv6数据报 IPv6报文详解 扩展头部详解 IPv4和IPv6报文详细对比 IPv4数据报 IPv4报文详解 版本Version ...
- IPv4数据报格式和Ipv6数据报格式(长文,详细解释每个字段)
IPv4数据报介绍 IPv3数据报结构 版本号.这4比特规定了数据包的IP协议版本.通过查看版本号,路由器能够确定如何 解释IP数据报的剩余部分.因为不同版本的IP数据包的格式是不一样的. 首部长度. ...
- IPv4与IPv6数据报格式
IPv4: IPv4数据报中的字段: 版本号:规定了数据报的IP协议版本,通过查看版本号,路由器能够确定如何解释IP数据报 的剩余部分,因为不同IP版本使用不同的数据报格式. 首部长度:IPv4数据报 ...
- 【计算机网络】湖科大微课堂笔记 p54-56 IPv4数据报的首部格式、网际控制报文协议ICMP、虚拟专用网VPN与网络地址转换NAT
文章目录 IPv4数据报的首部格式 小结 一些例题 网际控制报文协议ICMP 小结 一些例题 虚拟专用网VPN与网络地址转换NAT 小结 IPv4数据报的首部格式 版本 首部长度.可选字段.填充字段 ...
- IPv6数据报头部格式
文章摘自书籍<深入理解计算机网络 王达 机械工业出版社> IPv4数据报头格式请点击此处 IPv6数据报头部格式 RFC2460定义了IPv6数据报格式.总体结构上,IPv6数据报格式与I ...
- ipv6地址格式_IPV6与IPV4的差异
ipv6相比,我们现在的IPV4,有什么优势,有什么差异 IPv6的路由表更小,IPv6的组播支持以及对流的支持增强,IPv6加入了对自动配置的支持,IPv6具有更高的安全性. 与IPV4相比,IPV ...
最新文章
- 使用MetaPost绘制流程图
- Java连接mysql出现SQL异常,MySQL 这样连接为何出现这样的异常
- 计算机网络管理员中级第一套理论,计算机网络管理员第一套(中级)理论.doc
- servlet 开发入门生命周期
- PHP+sqlsrv的分页实现
- html 空行_一篇文章学习html「经典案例」
- 【工具】 原版完美激活 Flash builder 4.7 【非破解激活】
- apache make install 问题
- 整体二分初识--POJ2104:K-th Number
- Python下载(Windows)
- Cocos2d-x中的BMFont(Fnt)字体改名
- 10行代码玩转弹性调度的小把戏
- 元宇宙营业厅,数字技术融合,赋能实体经济
- [实践篇]13.12 教你读懂QNX座舱方案里的高频术语
- 利用计算机模拟函数图像,计算机模拟实验在教学中的应用论文(2)
- 小程序获取城市行政区号_支付宝小程序开发——获取位置API没有城市区号的最佳处理方案...
- 学术期刊划分(教你认识SCI、EI、SSCI、IEEE、CSSCI...)
- Oracle enq: TX contention 和 enq: TM contention 等待事件说明
- Allegro使用 Z-Copy绘制 Rout Keepin
- DOA估计 基于稀疏贝叶斯的离格DOA估计
热门文章
- python点线图_Python | 点线图
- c# uri.host_C#| Uri.HostNameType属性与示例
- 第 1-3 课:深入理解字符串 + 面试题
- div 图片滚动 / 文字滚动
- Linux debian设置主机不休眠教程
- 十六、Python操作excel(.xlsx)封装类MyPyExce
- centos配置网络笔记
- java通过POI技术将html转成word
- linux内核io源码,Linux Kernel do_io_submit()函数整数溢出漏洞
- e300氛围灯哪里调节_让快乐来得更简单!体验新宝骏E300/E300 PLUS