IPv4数据报格式和Ipv6数据报格式(长文,详细解释每个字段)
Posted milaiko
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IPv4数据报格式和Ipv6数据报格式(长文,详细解释每个字段)相关的知识,希望对你有一定的参考价值。
IPv4数据报介绍
IPv3数据报结构
- 版本号。这4比特规定了数据包的IP协议版本。通过查看版本号,路由器能够确定如何 解释IP数据报的剩余部分。因为不同版本的IP数据包的格式是不一样的。
- 首部长度。 IPv4数据报可包含一些可变数量的选项(这些选项包括在ipv4数据报首部中),所以利用这4比特来确定IP数据报中载荷实际开始的地方。大多数IP数据报不会包含选项,所以IP数据报的首部一般是20字节。
- 服务类型。服务类型(TOS)比特包含在IPv4首部中,以便不同类型的IP数据报能够互相区别开来。例如将实时数据报(IP电话应用)与非实时流量(FTP)区别分开是有用的。提供特定等级的服务是由一个网络管理员对路由器确定配置的策略问题。
- 数据报长度。这是IP数据报的总长度(首部加上数据),按字节计。因为该字段长为16比特,所以IP数据报的理论最大长度为65535字节。
- 标识、标志、片偏移。这三个字段与所谓IP分片有关。待会会介绍,注意,IPv6不允许路由器对分组进行分片
- 寿命。(Time to live, TTL)寿命字段,用来确保数据报不会永远在网络中循环。**每当一台路由器处理数据报时,该字段的值减1。若TLL字段减为0,则该数据报必须舍弃。
- 协议。该字段通常当一个IP数据报到达其最终目的地时才会有用。该字段值指示了IP数据报的数据部分应该交给哪个特定的运输层协议。值为6表明数据部分要交给TCP、值为17表示数据交给UDP。
- 首部检验和。首部检验和用于帮助路由器检测收到的IP数据报的比特数。
- 源和目的IP地址。
- 选项。选项字段允许IP首部被扩展。
- 数据(有效载荷)。IP数据报中的数据字段包含要交付给目的地运输层报文段。
IP数据报分片
分片的原因
- 不是所有链路层协议能承载相同长度的网络层分组。
例如以太网帧能够承载不超过1500字节的数据,而某些广域网链路的帧能够承载不超过576字节的数据。一个链路层帧能够承载的最大数据量叫作最大传送单元(Maximun Transmission Unit)MTU。
- 因为每个IP数据报封装在链路层帧中从一台路由器传输到下一台路由器中,所以链路层协议的MTU严格地限制着IP数据报的长度。对IP数据报长度具有严格的限制并不是主要问题。
- 主要问题是在发送方与目的地路径上的每段链路可能使用不同的链路层协议,且每种协议可能具有不同的MTU。
情景想象
假定你从某条链路收到一个IP数据报,通过检查转发表确定处链路,并且该条出链路的MTU比IP数据报的长度小。那该怎么办?
解决办法
将IP数据报中的数据分片成两个或多个较小的IP数据报,用单独的链路层帧封装这些较小的IP数据报,然后通过输出链路发送这些帧。每个较小的数据报都被称为片。
分片方法
正如前面所说,要满足MTU的要求,就要把数据报分片去传输,那既然要分片,肯定就需要组装。为了不影响路由器的性能,设计者决定将这些数据报的重新组装工作放到端系统,而不是放在路由器。
标识、标志和片偏移字段
- 标识
当生成一个数据报时,发送主机在为该数据报设置源和目的地址的同时贴上标识号。发送主机为它发送的每个数据报的标识号加1。当目的地从同一发送主机收到一系列的数据报时,能够检查数据报的标识号来确定哪些数据报实际上是同一数据段的片。
- 标志
IP是一个不可靠的服务,一个或多个片可能永远到达不了目的地。为了让目的主机绝对地相信它已经收到它收到了初始数据段的最后一个片, 最后一个片的标志比特设置为0,其他它片的标志为1。
- 偏移字段
使用偏移字段指定该片应该放在初始IP数据报的哪个位置。
IPv6数据报格式
IPv6的变化。
- 扩大的地址容量,从ipv4的32比特增加到128比特。这样就确保了全世界不会用完ip地址 。
- 简化高效的40字节首部。许多Ipv4字段已被舍弃或作为选项。因而所形成的40字节定长首部允许路由器更快地处理IP数据报。
- 流标签。 该字段可用于“给属于特殊流的分组打上标签”,这些特殊流是发送方要求进行特殊处理的流,如一种非默认服务质量或需要实时服务的流。
让我们对比一下ipv4和ipv6数据报的结构。
Ipv6数据报的结构更加简单、更高效。
- 版本。该4比特字段用来表示IP版本号。ipv6将该字段设置为6。
- 流量类型。该8比特特殊字段和 IPv4的TOS(服务类型)字段的含义相似
- 流标签。该20比特用于标识一条数据报的流。对一条流中的数据报给出优先权。
- 有效载荷长度。和ipv4的数据报长度不一样,是40字节数据报首部后面的字节数量。
- 下一个首部。该字段标识数据报中的内容需要交给哪个协议,该字段使用与IPv4首部协议字段相同的值。
- 源地址和目的地址。变为128比特
- 数据。Ipv6数据报中的有效载荷部分。
ipv4的哪些东西在ipv6不复存在:
- 分片/重新组装。
IPv6不再允许在中间路由器进行分片与重新组装。如果路由器收到的ipv6数据报太大而不能被转发到链路上的话,路由器只需要丢掉该数据报,并向发送方发回一个“分组太大”的ICMP差错报文即可。于是发送方能够使用较小长度的IP数据报重发数据。分片/重新组装是一个耗时的操作,将该功能从路由器删除并放到端系统中,大大加快了网络中的IP转发速度。
- 首部校验和
运输层和数据链路层协议执行了校验操作。IP设计者可能绝对该项功能多余,所以将其去除。
- 选项
选项字段不再是ip首部的一部分了,但是它可能出现在IPv6首部中由“下一首部”执行的位置上。就像Tcp和udp协议首部能够是IP分组中 的“下一首部”一样,选项字段也能是“下一个首部”。
以上是关于IPv4数据报格式和Ipv6数据报格式(长文,详细解释每个字段)的主要内容,如果未能解决你的问题,请参考以下文章