您的位置:首页 > 理论基础 > 计算机网络

网络基础篇——IP数据报格式及路由器报表算法

2016-07-21 11:17 615 查看
1、Ip数据报格式



IP数据报的首部长度和数据长度都是可变的,但总是4字节的整数倍。

版本号表示IP数据报是哪个版本,对于PIv4,4位版本字段是4

4位首部长度的数值都是以4字节为单位的,最小值为5,最大值是15,所以首部长度的大小介于20到60。

8位TOS字段有3个位用来指定IP数据报的优先级(目前已经废弃不用),还有4位表示可选的服务类型,还有一位总为0。

16位总长度是整个数据报的字节数。

三位标志和13位片移用于分片。(后面细谈)

TTL为数据报的生存时间。

2、IP数据报的分片和组装以及三位标志的含义

IP分片的原理

分片和重新组装的过程对传输层是透明的,其原因是当IP数据报进行分片之后,只有当它到达下一站时,才可进行重新组装,且它是由目的端的IP层来完成的。分片之后的数据报根据需要也可以再次进行分片。

IP分片和完整IP报文差不多拥有相同的IP头,ID域对于每个分片都是一致的,这样才能在重新组装的时候识别出来自同一个IP报文的分片。在IP头里面,16位识别号唯一记录了一个IP包的ID(ipid),具有同一个ID的IP分片将会重新组装;而13位片偏移则记录了某IP片相对整个包的位置;而这两个表中间的3位标志则标志着该分片后面是否还有新的分片。这三个域就组成了IP分片的所有信息, 接受方就可以利用这些信息对IP数据进行重新组织。

标志字段的作用

标志字段在分片数据报中起了很大作用,在数据报分片时把它的值复制到每片中。标志字段的其中一个比特称作“不分片”位,用其中一个比特来表示“更多的片”。除了最后一片外,其他每个组成数据报的片都要把该比特置1。片偏移字段指的是该片偏移原始数据报开始处的位置。另外,当数据报被分片后,每个片的总长度值要改为该片的长度值。如果将标志字段的”不分片”比特置1,则IP将不对数据报进行分片。相反把数据报丢弃并发送一个I C M P差错报文并通知源主机废弃的原因。如果不是特殊需要,则不应该置1;最右比特置1表示该报文不是最后一个IP分片。

IP分片的步骤:

一个未分片的数据报的分片信息字段全为0,即多个分片标志位为0,并且片偏移量为0。分片一个数据报,需执行以下几个步骤:

 检查DF标志位,查明是否允许分片。如果设置了该位,则数据报将被丢弃,并将一个ICMP错误返回给源端。

 基于MTU值,把数据字段分成两个部分或者多个部分。除了最后的数据部分外,所有新建数据选项的长度必须为8个字节的倍数。

 每个数据部分被放入一个IP数据报。这些数据报的报文头略微修改了原来的报文头。

 除了最后的数据报分片外,所有分片都设置了多个分片标志位。

 每个分片中的片偏移量字段设为这个数据部分在原来数据报中所占的位置,这个位置相对于原来未分片数据报中的开头处。

 如果在原来的数据报中包括了选项,则选项类型字节的高位字节决定了这个信息是被复制到所有分片数据报,还是只复制到第一个数据报。

 设置新数据报的报文头字段及总长度字段。

 重新计算报文头部校验和字段。

此时,这些分片数据报中的每个数据报如一个完整IP数据报一样被转发。IP独立地处理每个数据报分片。数据报分片能够通过不同的路由器到达目的。如果它们通过那些规定了更小的MTU网络,则还能够进一步对它们进行分片。

在目的主机上,数据被重新组合成原来的数据报。发送主机设置的标识符字段与数据报中的源IP地址和目的IP地址一起使用。分片过程不改变这个字段。

重组

为了重新组合这些数据报分片,接收主机在第一个分片到达时分配一个存储缓冲区。这个主机还将启动一个计时器。当数据报的后续分片到达时,数据被复制到缓冲区存储器中片偏移量字段指出的位置。当所有分片都到达时,完整的未分片的原始数据包就被恢复了。处理如同未分片数据报一样继续进行。

如果计时器超时并且分片保持尚未认可状态,则数据报被丢弃。这个计时器的初始值称为IP数据报的生存期值。它是依赖于实现的。一些实现允许对它进行配置。在某些IP主机上可以使用netstat命令列出分片的细节。如TCP/IP for OS/2中的netstat-i命令。

重组的步骤:

在接收方,一个由发送方发出的原始IP数据报,其所有分片将被重新组合,然后才能提交到上层协议。每一个将被重组的IP数据报都用一个ipq结构实例来表示,因此先来看看ipq这个非常重要的结构。

为了能高效地组装分片,用于保存分片的数据结构必须能做到以下几点:

1、快速定位属于某一个数据报的一组分组

2、在属于某一个数据报的一组分片中快速插入新的分片

3、有效地判断一个数据报的所有分片是否已经全部接收

4、具有组装超时机制,如果在重组完成之前定时器溢出,则删除该数据报的所有内容
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  网络 iP数据报 分片