IPv6数据报格式
- 格式:ppt
- 大小:73.50 KB
- 文档页数:10
基于IEEE 802.15.4网路的IPv6报文压缩格式摘要本文更新了RFC4944,“在IEEE 802.15.4网路上传送IPv6报文”。
本文描述了一个在低功耗无线个人局域网(6LoWPANs)上传送IPv6报文的IPv6报头压缩格式。
这种压缩格式可以进行任意前缀的压缩因为它是依赖于共享上下文的。
至于共享上下文的信息是如何维护的不在本文讨论范围内。
本文描述的是多播地址的压缩和一个用于压缩下一报头的框架。
UDP 报头压缩正是在这个框架内描述的。
文档说明本文是一份因特网标准文档。
本文由因特网工程任务组(IETF)发布。
它代表IETF社区言论。
本文接收了公众的建议并由因特网工程指导委员会(IESG)改进和发行。
关于因特网标准的更多信息请参阅RFC5741的节2。
本文档的当前状态,勘误表和如何提供反馈等信息可以从这个网址得到:/info/rfc6282。
版权声明Copyright(c)2011,本文版权归IETF组织和文档的指明作者所有。
本文从属于BCP 78 和IETF组织法律相关的IETF文档(/license-info)从本文发布之日起生效。
请仔细审查这些文档,它们描述了你对本文的权利和约束。
从本文引用的代码必须包含简化BSD许可说明,如信托法律规定4.e节所描述的那样,本文提供的代码不会给出警告,如简化BSD许可里描述的那样。
1、简介[IEEE802.15.4]标准指定一个MTU是127字节,只留下大概80字节用于带有安全选项的介质访问控制(MAC)载荷,在一个最高速率只有250kbps或更少的无线链路上进行传输。
考虑到在如无线传感器网路这样的应用中要求有限的带宽,存储容量或电力资源,6LoWPAN 适配层格式[RFC4944]描述了在这样一个受限的链路上传送IPv6报文。
[RFC4944]定义了一个Mesh寻址报头以支持sub-IP转发,一个分片报头用于支持IPv6最小MTU的要求[RFC2460],和IPv6报文的无状态报头压缩(LOWPAN_HC1和LOWPAN_HC2)以便把相对较大的IPv6和UDP报头减小到几个字节(在最好情况下)。
详谈IPv6与IPv4数据报格式1.IPv6数据包每一个分组由必须要有的基本首部和跟随在后面的有效载荷组成。
有效载荷有两部分组成:可选的扩展首部和从上层来的数据(不超65535字节)。
具体如图所示:详细说明:Version:和ipv4包头中的一样,4个bit区域表示ip的版本(0110)优先级:即Traffic Class是一个8位bit的区域,同ipv4中的tos区域一样。
但是在这些年中随着TOS区域的进化,这个区域也可以用来被 DifferentiatedClass of Service (DiffServ)使用。
但是尽管这里这样的标识仍然符合老的Tos的格式,只不过Traffic Class这个名字更符合当前的应用。
流标记:Flow Label流量标签是在ipv6中独有的区域。
这个20个bit的区域设计的目的在于可以给一些特殊的数据做标记。
也就是说尽管数据包并非是从原来的源发到目的,但是仍然包含原有的源和目的的应用。
区分数据流有很多好处,可以确保不同类别服务的处理方式得以区分,在数据流经多个路径的负载均衡时,在同一个数据流的数据包将使用经由同一个路径转发,从而避免了数据包可能继续查找路径的现象。
典型的flow(更加精确一点的说法是微流)就是在源地址和目的地址上加一个团体的源地址和目的地址。
如果使用定义源和目的端口号,路由器必须识别ip包头还要进一步识别tcp或者udp(或者其他传输层协议)的头,这样就增加了转发进程的复杂性,可能会影响路由器的处理。
因为出现扩展包头(下一段介绍),所以在ipv6数据包中查找传输层协议的头就成为一个特殊的问题。
支持ipv6的路由器必须从按照数据包格式的顺序从头到位查找,可能会经过很多扩展包头再会找到传输层地址(这样的话影响查找时间)。
如果在数据包发起是适当的加入流量标签,路由器更比查找数据包头更容易辨识数据流。
然而,在本书书写时,如何使用流量标签区域的完全详细文档仍在讨论中,所以当前路由器读取数据时忽略这个区域。
IPv6报文格式浅析作者:尚建贞来源:《无线互联科技》2013年第06期摘要:文章论述了IPv6基本报头的格式,以及所包含的8个域的定义以及功能。
同时,对6个扩展报头和完整的IPv6数据报文格式也进行了说明。
关键词:IPv6;报文格式;基本报头;扩展报头1 引言随着计算机网络特别是Internet的飞速发展,目前基于IPv4的互联网在实际运行中暴露出越来越多的不足和缺憾,例如:网络安全性差,服务质量低下,地址空间规划不合理等。
这些问题严重制约着当代互联网的进一步发展,现行的网络层协议IPv4无法从根本上解决这些问题,于是一种全新的网络层协议IPv6应运而生。
2 IPv6报文格式IPv6数据包的基本报头长度固定为40个字节,其格式如图2.1。
基本包头包括8个域,去掉了IPv4报头中所有的可选项。
所包含的8个域简要介绍如下:(1)版本Version(4bits):表示与数据包对应的IP协议的版本号,IPv4的版本号为4,IPv6的版本号固定为6;(2)业务流类别Traffic Class(8bits):或者称为数据包优先级(Packet priority),可以赋予数据包不同的优先级,提供不同的服务,主要用于实时类的数据传输如音频视频等,有助于提升QoS,该字段用以代替IPv4中的TOS(Type of Server)字段。
RFC2460文档中对该字段进行定义。
(3)流标签Flow Label(20bits):是IPv6的新增字段,源节点用此字段识别同一个流的数据包。
源地址和一个非0的Flow Label可以标识同一个流的数据包。
源节点和同一个目的节点可以同时存在多个活动的流业务,并且互不干涉。
网络上的IPv6路由器要给与属于同一个流的数据包同样的资源分配,提供同样的服务质量(QoS)。
(4)净荷长度Payload Length(16bits):此字段标明除去基本首部外数据包的总长度,包括所有的扩展报头和上层PDU数据所占的字节数。
IPv4和IPv6数据报格式一、IPv4数据报格式1)数据报可以分为报头区和数据区,数据区的数据来自上一层。
说明:首部和报头和头等字眼是同一意思。
2)版本:指明IP协议是哪个版本,IPv4为0100。
3)报头长度:也叫首部长度,指明报头区的长度。
最小值为20个字节,最大值为60字节。
说明:a.当没有选项和填充字段时,32位(每行的长度)*5(5行固有的)=160位=20字节,这个时候4个比特位的值为0101,为什么呢?因为这里规定以4个字节为单位,如果把0101用换算成十进制,0101=5,5*4=20字节。
如果4个比特位为1111,把1111换算成十进制则等于15,则它表示15*4=60个字节。
(简单记成换算成十进制后乘以4才等于它报头区的字节数)b.当 IP 分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充。
4)服务类型:转发过程中对该数据报的处理方式。
5)总长度:等于报头区及数据区的长度相加。
说明:a.最大长度为65535个字节(当8个bit都等于1时),2^16-1=65535个字节。
b. IP数据报的最大长度的确是65535字节。
但是实践中最大长度很少用,因为大多物理网络都有长度限制,例如,数据链路层有自己的帧格式,其中包括了数据字段的最大长度,即最大数据传输单元MTU,当一个数据报封装成链路层的帧时,此数据报的总长度一定不能超过下面的数据链路层的MTU 值,以太网把载荷长度限制在1500字节。
6)标识:IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加 1,并将此值赋给标识字段。
但这个“标识”并不是序号,因为 IP是无连接的服务,数据报不存在按序接收的问题。
当数据报由于长度超过网络的 MTU 而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。
相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
附加:IP数据报在各个物理网络中需要重新封装:与路由器连接的各个网络的MTU可能不同:当数据报超过网络的MTU进行分片后,路由器可以为每个分片独立选路:7)标志:占三位,但目前只有两位有意义。
网络基础IPv6数据报IPv6包由IPv6包头(40字节固定长度)、扩展包头和上层协议数据单元三部分组成。
IPv6包扩展包头中的分段包头中指名了IPv6包的分段情况。
其中,不可分段部分包括IPv6包头、Hop-by-Hop选项包头、目的地选项包头(适用于中转路由器)和路由包头;可分段部分包括认证包头、ESP协议包头、目的地选项包头(适用于最终目的地)和上层协议数据单元。
但是需要注意的是,在IPv6中,只有源节点才能对负载进行分段,并且IPv6超大包不能使用该项服务。
1.IPv6数据包:包头IPv6包头长度固定为40字节,去掉了IPv4中一切可选项,只包括8个必要的字段,因此尽管IPv6地址长度为IPv4的四倍,IPv6包头长度仅为IPv4包头长度的两倍。
其中的各●TrafficeClass(通信类别):8位,指示IPv6数据流通信类别或优先级。
功能类似于IPv4的服务类型(TOS)字段。
●FlowLabel(流标记):20位,IPv6新增字段,标记需要IPv6路由器特殊处理的数据流。
该字段用于某些对连接的服务质量有特殊要求的通信,诸如音频或视频等实时数据传输。
在IPv6中,同一信源和信宿之间可以有多种不同的数据流,彼此之间以非“0”流标记区分。
如果不要求路由器做特殊处理,则该字段值置为“0”。
●PayloadLength(负载长度):16位负载长度。
负载长度包括扩展头和上层PDU,16位最多可表示65535字节负载长度。
超过这一字节数的负载,该字段值置为“0”,使用扩展头逐个跳段(Hop-by-Hop)选项中的巨量负载(JumboPayload)选项。
●NextHeader(下一包头):8位,识别紧跟IPv6头后的包头类型,如扩展头(有的话)或某个传输层协议头(诸如TCP,UDP或着ICMPIPv6)。
●HopLimit(跳段数限制):8位,类似于IPv4的TTL(生命期)字段。
与IPv4用时间来限定包的生命期不同,IPv6用包在路由器之间的转发次数来限定包的生命期。
IPv6基础介绍⼀、IPv6基础介绍1、IPv6是Internet⼯程任务组(IETF)设计的⼀套规范,它是⽹络层协议的第⼆代标准协议,也是IPv4(Internet Protocol Version 4)的升级版本。
2、IPv6与IPv4的最显著区别:IPv4地址采⽤32⽐特标识,⽽IPv6地址采⽤128⽐特标识。
128⽐特的IPv6地址可以划分更多地址层级、拥有更⼴阔的地址分配空间,并⽀持地址⾃动配置;近乎⽆限的地址空间是近乎⽆限的地址空间是IPv6的最⼤优势。
3、IPv6基本报头:(1)IPv6报⽂由IPv6基本报头、IPv6扩展报头以及上层协议数据单元三部分组成。
(2)IPv6的基本报头在IPv4报头的基础上,增加了流标签域,去除了⼀些冗余字段,使报⽂头的处理更为简单、⾼效。
(3)关键字段:Traffic Class:流类别,长度为8bit,它等同于IPv4报头中的TOS字段,表⽰IPv6数据报⽂的类或优先级,主要应⽤于流可以理解为特定应⽤或进程的来⾃某⼀源地它⽤于区分实时流量。
流可以理解为特定应⽤或进程的来⾃某⼀源地QoS。
Flow Label:流标签,长度为流标签,长度为20bit,它⽤于区分实时流量址发往⼀个或多个⽬的地址的连续单播、组播或任播报⽂。
IPv6中的流标签字段、源地址字段和⽬的地址字段⼀起为特定数据流指定了⽹络中的转发路径。
这样,报⽂在IP⽹络中传输时会保持原有的顺序,提⾼了处理效率。
随着三⽹合⼀的发展趋势,IP⽹络不仅要求能够传输传统的数据报⽂,还需要能够传输语⾳、视频等报⽂。
这种情况下,流标签字段的作⽤就显得更加重要。
跳数限制(Hop Limit):长度为8bit,该字段类似于IPv4报头中的Time to Live字段,它定义了IP数据报⽂所能经过的最⼤跳数。
每经过⼀个路由器,该数值减去1;当该字段的值为0时,数据报⽂将被丢弃。
(4)IPv6为了更好⽀持各种选项处理,提出了扩展头的概念。
ipv6协议基本原理IPv6(Internet Protocol version 6)是互联网协议的第六个版本,是替代IPv4协议而设计的新一代互联网协议。
其基本原理如下:1. IPv6地址:IPv6采用128位的地址空间,相较于IPv4的32位地址空间更加庞大,在IPv6中,地址由8个4位的十六进制数(每个数被冒号分隔)表示,例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334。
这样的地址空间足够大,能够支持更多的设备和连接。
2. 数据包格式:IPv6的数据包格式相较于IPv4有所改变,IPv6头部的长度固定为40字节,比IPv4的20字节更长。
IPv6头部包含了源地址和目标地址信息,还可以包含一些可选的扩展头部。
IPv6还引入了新的报文类型如邻居探测、路由器通告等。
3. 路由与转发:IPv6采用的路由协议是辅助认证的字节级分层(HALVR),它允许路由器根据传输层协议(如TCP或UDP)和数据报有效负载的内容进行高效的路由和转发。
IPv6还提供了一个自动配置机制,使得主机能够根据网络配置和路由信息自动获取IPv6地址。
4. IPv4与IPv6之间的互操作:为了实现IPv4与IPv6之间的互操作,IPv6引入了IP协议的封装机制,即将IPv4数据包封装在IPv6数据包中进行传递。
这使得旧版本的IPv4设备能够与新版本的IPv6设备进行通信。
总之,IPv6协议通过扩大地址空间、优化数据包格式、改进路由与转发机制等方式,提供了更大的地址空间、更高效的路由和转发功能,以及更好的互操作性。
这些特点使得IPv6成为未来互联网的基本协议。
IPv6报头IPv6报头格式:(4位)版本号(8位)通信流类型(20位)流标签(16位)有效负荷长度(8位)下一报头(8位)跳数限制(128位)源地址(128位)目的地址版本号:版本字段规定了IP协议通信流类别:表示IPV6数据包的类或优先级流标签:表示这个数据包属于源节点和目标节点之间的一个特定数据包序列有效载荷长度:表示IPV6有效载荷长度,包括扩展报头和上层PDU下一个报头:表示第一个扩展报头的类型,或者是上层PDU中的协议跳限制:表示IPV6数据包在被丢弃前可以通过的最大链路数。
源地址:表示源主机IPV6地址目的地址:表示当前目标节点的IPV6下一个报头字段的值:0 逐跳选项报头6 TCP17 UDP41 以封装的IPV6报头43 路由包头44 片段报头50 封装安全有效载荷报头51 身份验证报头58 ICMPV6报头59 没有下一个报头60 目标选项报头扩展报头的顺序:1.逐跳选项头2.目标选项头(当存在路由报头时,用于中间目标)3.路由头4.分段头5.身份验证头6.封装安全有效载荷报头7.目标选项报头(用于最终目标)逐跳选项头用于通向目标的路径上的每次跳转指定发送参数。
下一报头报头扩展长度选项报头扩展长度的值是逐跳选项扩展报头中的8字节块的数量,其中不包括第一个8字节在当前报头扩展长度字段定义中,0是一个有效值,逐跳选项报头中的字节数用下面的公式计算:(报头扩展长度+1)*8选项是一系列字段的集合,它或描述了数据包转发的一个方面的特性,或者用作填充每个选项以类型,长度,值(TLV)的格式编码。
选项类型:标识了这个选项,又确定了相关节点对该选项的处理方法选项类型字段中最高两位的值值(二进制)采取的动作00 跳过这个选项01 无声地丢弃数据包10 丢弃数据包,并却如果IPV6报头中的目的地址是一个单播或多播地址,就向发送方发出去一个ICMPV6参数问题报文11 丢弃数据包,并却如果IPV6报头中的目的地址不是一个多播地址,就向发送方发出一个ICMPV6参数问题报文Pad1选项:作用是插入一个填充字节,以使逐跳选型报头或目的选项报头能多在8字节的边界上,并符合选项的对齐要求。
一、TCP协议由RFC 793定义:TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
面向连接:在应用TCP协议进行通信之前双方通常需要通过三次握手来建立TCP连接,连接建立后才能进行正常的数据传输,因此广播和多播不会承载在T CP协议上。
可靠性:由于TCP处于多跳通信的IP层之上,而IP层并不提供可靠的传输,因此在TCP层看来就有四种常见传输错误问题,分别是比特错误(packet bit e rrors)、包乱序(packet reordering)、包重复(packet duplication)、丢包(p acket erasure或称为packet drops),因此TCP要提供可靠的传输,就需要具有超时与重传管理、窗口管理、流量控制、拥塞控制等功能。
字节流式:应用层发送的数据会在TCP的发送端缓存起来,统一分片(例如一个应用层的数据包分成两个TCP包)或者打包(例如两个或者多个应用层的数据包打包成一个TCP数据包)发送,到接收端的时候接收端也是直接按照字节流将数据传递给应用层。
作为对比,同样是传输层的协议,UDP并不会对应用层的数据包进行打包和分片的操作,一般一个应用层的数据包就对应一个UDP包。
TCP报文格式:TCP封装在IP报文中的时候,如下图所示,TCP头紧接着I P头(IPV6有扩展头的时候,则TCP头在扩展头后面),不携带选项(option)的T CP头长为20bytes,携带选项的TCP头最长可到60bytes。
v1.0 可编辑可修改其中header length字段由4比特构成,最大值为15,单位是32比特,即头长的最大值为15*32 bits = 60bytes,因此上面说携带选项的TCP头长最长为60bytes。
TCP的源端口、目的端口、以及IP层的源IP地址、目的IP地址四元组唯一的标识了一个TCP连接TCP各字段释义:TCP源端口(Source Port):16位的源端口其中包含发送方应用程序对应的端口。
IPv61.2 IPv6数据报格式2022.10学习目标•学完本节后,你将能够:▫掌握IPv6的基本报头格式▫掌握IPv6的扩展报头格式▫了解IPv6的扩展报头的规约IPv6报文格式•IPv6包由IPv6报头(40字节固定)、扩展报头和上层协议数据单元三部分组成。
•上层协议数据单元一般由上层协议报头和它的有效载荷构成,有效载荷可以是一个ICMPv6报文、一个TCP报文或一个UDP报文IPv6基本报头•IPv6基本报头有8个字段,固定大小为40字节,每一个IPv6数据报都必须包含报头。
•基本报头提供报文转发的基本信息,会被转发路径上面的所有设备解析。
•IPv6基本报头格式如左图所示•Version:版本号,长度为4bit。
对于IPv6,该值为6。
•Traffic Class:流类别,长度为8bit。
等同于IPv4中的TOS字段,表示IPv6数据报的类或优先级,主要应用于QoS。
•Flow Label:流标签,长度为20bit。
IPv6中的新增字段,用于区分实时流量,不同的流标签+源地址可以唯一确定一条数据流,中间网络设备可以根据这些信息更加高效率的区分数据流。
•Payload Length:有效载荷长度,长度为16bit。
有效载荷是指紧跟IPv6报头的数据报的其它部分(即扩展报头和上层协议数据单元)。
该字段只能表示最大长度为65535字节的有效载荷。
如果有效载荷的长度超过这个值,该字段会置0,而有效载荷的长度用逐跳选项扩展报头中的超大有效载荷选项来表示。
•Next Header:下一个报头,长度为8bit。
该字段定义紧跟在IPv6报头后面的第一个扩展报头(如果存在)的类型,或者上层协议数据单元中的协议类型。
•Hop Limit:跳数限制,长度为8bit。
该字段类似于IPv4中的Time to Live字段,它定义了IP数据报所能经过的最大跳数。
每经过一个设备,该数值减去1,当该字段的值为0时,数据报将被丢弃。
从报文格式角度出发比较ipv 4和ipv 6数据报格式IPv4和IPv6报文详细对比
下面对两者的报文做一个充分、详尽的对比:
IPv4中的主要字段都已经被IPv6继承了,而删去的字段都以可选扩展头部的形式出现在IPv6报文里。
TOS和Traffic Class
两者功能几乎一致,标识对应的通信流类别,或者说是优先级别。
Total Length和Payload Length
这两者是有区别的:IPv4中的Total Length包括了头部和数据:
而IPv6中的Payload Length只是包括了除去默认头部之外的字段长度:
MTU:MTU的不同
Protocol和Next Header
IPv4的协议字段规定了数据报应该交由哪种协议来处理,类似的,IPv6中的Next Header字段可选择性的指向下一个扩展头部,或者协议:
TTL和Hop Limit
最初的IPv4的TTL协议规定的是分段传输的最大时间,但实际上,所有的操作都用跳数来取代了时间,鉴于此,IPv6直白的使用Hop Limit来限定传输时间。
当然两者功能相同,都有效的组织了数据分段在网络停留太久时间陷入无限循环。
头部校检和:IPv6放弃了IPv4中的CheckSum字段,因为TCP和UDP报文中都已经有16位的checksum字段。
以上就是IPv4和IPv6报文格式的详细对比。
IPv6地址格式⽰例及IPv6与IPv4的区别分析认识IPv6地址IPv4地址是类似 A.B.C.D 的格式,它是32位,⽤\".\"分成四段,⽤10进制表⽰;⽽IPv6地址类似X:X:X:X:X:X:X:X的格式,它是128位的,⽤\":\"分成8段,⽤16进制表⽰;可见,IPv6地址空间相对于IPv4地址有了极⼤的扩充。
RFC2373 中详细定义了IPv6地址,按照定义,⼀个完整的IPv6地址的表⽰法:--x:--x:--x:--x:--x:--x:--x:--x例如:2001:0000: 1F 1F :0000:0000:0100: 11A 0:ADDF为了简化其表⽰法, rfc2373提出每段中前⾯的0可以省略,连续的0可省略为\"::\",但只能出现⼀次。
例如:1080:0:0:0:8:800: 200C : 417A 可简写为1080::8:800: 200C : 417AFF01:0:0:0:0:0:0:101可简写为 FF01::1010:0:0:0:0:0:0:1可简写为 ::10:0:0:0:0:0:0:0可简写为 ::类似于 IPv4中的CDIR表⽰法,IPv6⽤前缀来表⽰⽹络地址空间,⽐如:2001:251:e000::/48 表⽰前缀为48位的地址空间,其后的80位可分配给⽹络中的主机,共有2的80次⽅个地址。
IPv6地址作⽤域和地址分类• IPv6地址指定给接⼝,⼀个接⼝可以指定多个地址。
• IPv6地址有作⽤域:link local地址本链路有效site local地址本区域(站点)内有效,⼀个site通常是个校园⽹global地址全球有效,即可汇聚全球单播地址• IPv6地址分类:unicast 单播(单点传送)地址multicast 组播(多点传送)地址anycast 任播(任意点传送)地址IPv6没有定义⼴播地址,其功能由组播地址替代常见的IPv6地址及其前缀• ::/128 即0:0:0:0:0:0:0:0,只能作为尚未获得正式地址的主机的源地址,不能作为⽬的地址,不能分配给真实的⽹络接⼝。
IPV6协议抓包分析一、实践名称:在校园网配置使用IPv6,抓包分析IPv6协议二、实践内容和目的内容:网络抓包分析IPv6协议。
目的:对IPv6协议的更深层次的认识,熟悉IPv6数据报文的格式。
三、实践器材:PC机一台,网络抓包软件Wireshark 。
四、实验数据及分析结果:1.IPv6数据报格式:2. 网络抓包截获的数据:3. 所截获的IPv6 的主要数据报为: Internet Protocol Version 6 0110 。
..。
= Version: 6 。
0000 0000 .。
.。
.。
.. 。
.。
.。
..。
. = Traffic class:0x00000000 。
.。
...。
.。
0000 0000 0000 0000 0000 = Flowlabel: 0x00000000 Payload length: 93Next header:UDP (0x11) Hop limit: 1 Source: fe80::c070:df5a:407a:902e (fe80::c070:df5a:407a:902e) Destination: ff02::1:2 (ff02::1:2)4. 分析报文:根据蓝色将报文分成三个部分:第一部分:33 33 00 01 00 02,目的组播地址转化的mac地址,以33 33 00表示组播等效mac;00 26 c7 e7 80 28,源地址的mac地址;86 dd,代表报文类型为IPv6 (0x86dd);第二部分:60,代表包过滤器"ip。
version == 6";00 00 00,Traffic class(通信类别): 0x00000000;00 5d,Payload length(载荷长度,即报文的最后一部分,或者说是报文携带的信息): 32;11,Next header(下一个封装头): ICMPv6 (17);01,Hop limit(最多可经历的节点跳数): 1;fe 80 00 00 00 00 00 00 c0 70 df 5a 40 7a 90 2e,源ipv6地址;ff 02 00 00 00 00 00 00 00 00 00 00 00 01 00 02,目的ipv6地址; 第三部分(报文携带的信息):02,表示类型为Neighbor Solicitation (2);22,表示Code: 38;02 23是Checksum(校验和): 0x6faa [correct];00 5d 36 3a,Reserved(保留位): 00000000;fe 80 00 00 00 00 00 00 76 d4 35 ff fe 03 56 b0,是组播地址中要通信的那个目的地址;01 01 00 23 5a d5 7e e3,表示ICMPv6 Option (Source link-layer address : 00:23:5a:d5:7e:e3),ICMPv6的可选参数;其中从左到右:01,Source link-layer address (1);01,Length: 1 (8 bytes);00 23 5a d5 7e e3,源地址的mac地址。
IPv6的地址长度为128位,是IPv4地址长度的4倍。
于是IPv4点分十进制格式不再适用,采用十六进制表示。
IPv6有3种表示方法。
一、冒分十六进制表示法格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16b,以十六进制表示,例如:ABCD:EF01:2345:6789:ABCD:EF01:2345:6789这种表示法中,每个X的前导0是可以省略的,例如:2001:0DB8:0000:0023:0008:0800:200C:417A→ 2001:DB8:0:23:8:800:200C:417A二、0位压缩表示法在某些情况下,一个IPv6地址中间可能包含很长的一段0,可以把连续的一段0压缩为“::”。
但为保证地址解析的唯一性,地址中”::”只能出现一次,例如:FF01:0:0:0:0:0:0:1101 → FF01::11010:0:0:0:0:0:0:1 → ::10:0:0:0:0:0:0:0 → ::三、内嵌IPv4地址表示法为了实现IPv4-IPv6互通,IPv4地址会嵌入IPv6地址中,此时地址常表示为:X:X:X:X:X:X:d.d.d.d,前96b采用冒分十六进制表示,而最后32b地址则使用IPv4的点分十进制表示,例如::192.168.0.1与::FFFF:192.168.0.1就是两个典型的例子,注意在前96b中,压缩0位的方法依旧适用 [9]。
报文内容IPv6报文的整体结构分为IPv6报头(另译:基本首部) [27]、扩展报头和上层协议数据3部分。
IPv6报头是必选报文头部,长度固定为40B,包含该报文的基本信息;扩展报头是可选报头,可能存在0个、1个或多个,IPv6协议通过扩展报头实现各种丰富的功能;上层协议数据是该IPv6报文携带的上层数据,可能是ICMPv6报文、TCP报文、UDP报文或其他可能报文。
IPv6的报文头部结构如图:。