IP数据报的分片和组装

一、IP数据报的格式

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

(1)对于IPv4 ,4位版本字段是4。

(2)4位首部长度的数值是以4字节为单位的,最小值为5,也就是说首部长度最小是4x5=20字节, 也就是不带任何选项的IP首部,4位能表示的最大值是15,也就是说首部长度最大是60字节。

(3)8位TOS字段有3个位用来指定IP数据报的优先级(目前已经废弃不用),还有4个位表示可选的服务类型(最小延迟、最大呑吐量、最大可靠性、最小成本),还有一个位总是0。

(4)16位总长度是整个数据报(包括IP首部和IP层payload)的字节数。

(5)每传一个IP数据报,16位的标识加1,可用于分片和重新组装数据报。

(5)3位标志和13位片偏移用于分片。

(6)TTL(Time to live)是这样用的:源主机为数据包设定一个生存时间,比如64,每过一个路由器就把该值减1,如果减到0就表示路由已经太长了仍然找不到目的主机的网络,就丢弃该包,因此这个生存时间的单位不是秒,而是跳(hop)。

(7)协议字段指示上层协议是TCP、UDP、ICMP还是IGMP。

(8)校验和,只校验IP首部,数据的校验由更高层协议负责。

(9)IPv4的IP地址长度为32位。

二、分片

当要发送的IP数据报的长度超出了最大传输单位MTU,且允许分片时,就会进行IP分片。

一个未分片的数据报的分片信息字段全为0,即多个分片标志位为0,并且片偏移量为0。分片一个数据报,需执行以下几个步骤:
    1.检查DF标志位,查明是否允许分片。如果设置了该位,则数据报将被丢弃,并将一个ICMP错误返回给源端。
    2.基于MTU值,把数据字段分成两个部分或者多个部分。除了最后的数据部分外,所有新建数据选项的长度必须为8个字节的倍数。
    3.每个数据部分被放入一个IP数据报。这些数据报的报文头略微修改了原来的报文头。
    4.除了最后的数据报分片外,所有分片都设置了多个分片标志位。
    5.每个分片中的片偏移量字段设为这个数据部分在原来数据报中所占的位置,这个位置相对于原来未分片数据报中的开头处。
    6.如果在原来的数据报中包括了选项,则选项类型字节的高位字节决定了这个信息是被复制到所有分片数据报,还是只复制到第一个数据报。
    7.设置新数据报的报文头字段及总长度字段。
    8.重新计算报文头部校验和字段。
    此时,这些分片数据报中的每个数据报如一个完整IP数据报一样被转发。IP独立地处理每个数据报分片。数据报分片能够通过不同的路由器到达目的。如果它们通过那些规定了更小的MTU网络,则还能够进一步对它们进行分片。

三、组装

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

四、三位标志

第一个比特保留为以后用;第二个比特是“不分片”比特,若为1,IP将不对数据报进行分片,若无法将此数据报通过任何可用网络转发,则丢弃,并发送一个ICMP差错报文给起始端,若为0, 则在需要时将数据报分片;第三个比特是“更多分片”比特,为1,表示后面还有更多的分片,为0,则表示是最后的分片。

时间: 2024-10-16 08:37:23

IP数据报的分片和组装的相关文章

IP数据报的分片和组装原理

一份数据从一个主机通过路由器发送给另一个主机时,要经过很多路由层转发的.过程比较复杂,那么IP在路由层到底是以怎样的形式转发和目的主机这份数据报的时候又是如何处理的? 首先我们需要了解数据报的格式: IP的转发和控制都是由IP数据报的头部决定 4位首部长度的数值是以 4字节为单位的,最小值为 5,也就是说首部长度最小是 4x5=20字节 , 也就是不带任何选项的 IP首部 ,4位能表表示的最大值是 15,也就是说首部长度最大是 60字 节 8位TOS字段有 3个位用来指定IP数据报的优先级 (目

数据报的分片与组装

1.IP数据报格式 2.MTU MTU(最大传输单元):帧格式中的数据字段的最大长度. 3.分片 1)分片的条件 数据报长度超过网络所允许的最大传输单元MTU时,必须把过长的数据报进行分片后才能在网络上传输. 2)如何分片 对于发送端发送的每份IP数据报来说,其标识字段都包含一个唯一值.该值在数据报分片时被复制到每个片中.标志字段用其中一个比特来表示"更多的片".除了最后一片外,其他每个组成数据报的片都要把该比特置1.片偏移字段指的是该片偏移原始数据报开始处的位置.另外,当数据报被分片

网络基础之--IP数据报、分片策略、路由表

IP 数据报的格式 一个 IP 数据报由首部和数据两部分组成. 首部的前一部分是固定长度共 20 字节是所有 IP 数据报必须具有的. 在首部的固定部分的后面是一些可选字段其长度是可变的. IP 数据报首部的固定部分中的各字段 版本--占 4 位指 IP 协议的版本目前的 IP 协议版本号为 4 (即 IPv4) 首部长度--占 4 位可表示的最大数值是 15 个单位(一个单位为 4 字节)因此 IP 的首部长度的最大值是 60 字节. 区分服务--占 8 位用来获得更好的服务在旧标准中叫做服务

浅谈IP分片和组装的原理

分片是分组交换的思想体现,也是IP协议解决的两个主要问题之一.在IP协议中的分片算法主要解决不同物理网络最大传输单元(MTU) 的不同造成的传输问题.但是分组在传输过程中不断地分片和重组会带来很大的工作量还会增加一些不安全的因素.IP分片是网络上传输IP报文的一种技术手段.IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组.这一过程称为分片(fragmentation).每一种物理网络都会规定链路层数据帧的最大长度,称为链路层MTU(Maximum Transmiss

IP的分片与组装学习笔记

IP的分片与组装 当要发送的IP数据报的长度超出了最大传输单位MTU,且允许分片时,就会进行IP分片.通常,使用UDP协议发送的数据报很容易导致IP分片,而TCP协议是基于流的传输,通常不会产生分片. IP数据报被分片以后,各分片(fragment)分别组成一个具有IP首部的分组,并各自独立地选择路由,在其分别抵达目的主机后,目的主机的IP层会在传送给传输层之前将接收到的所有分片重装成一个IP数据报.可以怎么理解,IP数据报是IP层端到端的传输单元(在分片之前和重组之后),分组是指在IP层和链路

IP数据报分片、组装过程以及路由表的建立过程

1)IP分组 中3位标志 标志位共三位 最高位为0 该值必须复制到所有的分组中 DF(Do not Fragment) DF 值为1 表示不能分片 如果分组的长度超过MTU 又不可以分片 则这个分组丢弃 并用ICMP差错报文向主机报告 0 表示可以分片 MF (More Fragment) MF 值为1 表示接收的不是最后一个分片 0 表示 接收的是最后一个分片 2)分片.组装 过程 描述 IP分组头中 ,与分组和组装相关的 字段有: 标识(16位).标志(3位).片偏移(13位). 最大传输单

IP数据报格式,路由表

IP数据报格式 MTU最大传输单元:数据帧中的有效载荷的最大长度,不包括首部的长度,若大于MTU,则需要分片,分片是由IP层完成的.组装也是由IP层自行完成. 在IP分组头中,与分组的分片与组长有关的字段有:16位标识,3位标志,13位片位移 16位标识: 分组可能通过不同的传输路径到达目的主机.属于同一分组的不同片会出现乱序,或者与其他分组混合在一起.若将属于一个分组的所有片分配一个标识值ID,则目的主机可根据标识值将属于同一分组的片挑出来,重新组装.标识ID是片识别的标记. 3位标志: 标志

计算机网络(3)-----IP数据报格式

IP数据报(IP Datagram) 格式 解析 (1)版本 占4位,指IP协议的版本.通信双方使用的IP协议版本必须一致.目前广泛使用的IP协议版本号为4(即IPv4). (2)首部长度 占4位,可表示的最大十进制数值是15.请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节.当IP分组的首部长度不是4字节的整数倍时,必须利用最后的填充字段加以填充.因此数据部分永远在4字节的整数倍开始,这样在实现I

6、7、8章:IP协议及IP数据报转发和ICMP - 用TCP/IP进行网际互连

第6章 网际协议:无连接数据报交付(IPv4) 6.3 互联网体系结构和基本原理 互联网是围绕着一个分层结构中的三个概念化网络服务来设计的:这个结构相当健壮且有很强的适应性,使互联网取得了很大成功. 6.7 数据报格式及个部分讲解 版本字段(4位): IP协议的版本,通信双方使用的协议版本须一致,目前普遍使用IPv4,IPv6目前处于起步阶段. 首部长度(4位): 它给出用32位字来度量数据报首部长度.除了IP选项及相应的填充字段外,首部其他字段长度是固定的.若不含IP字段长度为20字节,则首部