IP数据报的分片和重组
- 格式:ppt
- 大小:1.72 MB
- 文档页数:13
ip帧头 identification规律IP帧头Identification规律:
IP帧头的Identification字段是一个16位的值,用于标识每个IP数据报。
在IPv4协议中,Identification字段的值由发送端设置,而接收端使用这个值来重组数据报。
Identification字段的规律主要体现在以下几个方面:
1. 唯一标识:每个IP数据报都有一个唯一的Identification字段值。
这个值在数据报发送时由发送端设置,并且保持不变,直到数据报被丢弃。
这样,接收端可以使用这个值来区分不同的IP数据报。
2. 递增规律:通常情况下,Identification字段的值在每次发送新的IP数据报时都会递增。
这意味着每个新的数据报都会有一个比前一个数据报值大的Identification字段值。
3. 循环利用:由于Identification字段是一个16位的值,所以当它达到最大值65535时,会重新从0开始。
这样,当发送端发送足够多的数据报时,Identification字段的值会重新循环利用。
4. 碎片重组:在IP数据报被分片传输时,所有分片都会具有相同的Identification字段值。
接收端使用这个值来将分片重组成完整的数据报。
总结来说,IP帧头的Identification字段是用于标识每个IP数据报的一个唯一值。
它递增地标识新的数据报,并且可以循环利用。
此外,它还被用于碎片的重组过程。
了解Identification字段的规律有助于理解IP数据报的传输和重组过程。
ip数据报的开销百分比
IP数据报是在网络层传输的基本数据单位,它负责将数据从源主机传输到目标主机。
然而,IP数据报的传输并不是完全免费的,它引入了一定的开销。
首先,IP数据报在传输过程中需要进行分片和重组。
当数据报的大小超过网络链路的MTU(最大传输单元)时,就需要进行分片,将数据报分成更小的片段进行传输。
这会增加一定的开销,因为每个片段都需要添加IP头部信息,包括源IP地址、目标IP地址等等。
其次,IP数据报还需要进行路由选择。
在传输过程中,数据报可能需要经过多个路由器进行中转,以找到最佳的路径到达目标主机。
这涉及到路由表的查询和路由器的转发决策,增加了一些处理和转发的开销。
此外,IP数据报还需要进行差错检测和纠正。
每个IP数据报都包含了校验和字段,用于检测数据在传输过程中是否出现了错误。
如果发现了错误,数据报可能需要进行重传或者进行纠正操作,这也会引入一定的开销。
综上所述,IP数据报的开销百分比取决于多个因素,包括数据报的大小、网络链路的MTU、路由选择的复杂性等等。
在实际网络中,这
些开销通常是很小的,对网络性能的影响有限。
然而,在一些特定的情况下,如网络拥塞或者大规模数据传输时,这些开销可能会变得更加显著。
因此,在设计网络应用或者进行性能优化时,需要考虑和评估这些开销对应用性能的影响。
ip数据报分片的原因与方法原因:IP数据报分片(Fragmentation)是指将较大的IP数据报划分为多个较小的数据报,以便在传输过程中能够适应不同类型的链路。
IP数据报分片的主要原因如下:1. 最大传输单位(MTU)限制:不同类型的网络链路具有不同的MTU,即每个链路所能承载的数据报最大字节数。
当一个数据报的大小超过某个链路的MTU时,就需要进行分片处理,以确保数据报能够在该链路上传输。
2. 设备性能限制:一些计算机系统或网络设备由于硬件性能限制,处理较大数据报时会有困难。
因此,数据报分片有助于提高这些设备的处理效率。
方法:IP数据报分片的方法主要包括以下几个步骤:1. 确定数据报是否需要分片:发送方首先检查数据报的大小是否超过链路的MTU。
如果没有超过,无需分片,直接进行传输。
如果超过了链路的MTU,则需要进行分片处理。
2. 计算分片数目和分片大小:发送方需要计算将数据报分割成多少个较小的数据报,以及每个分片的大小。
分片的大小需要是8字节的整数倍,以符合IP协议的要求。
3. 设置IP数据报头部信息:在每个分片的IP数据报头部,发送方需要设置以下信息:- 标识(Identification):这是一个唯一的值,用于标识原始数据报。
所有分片具有相同的标识值,以便接收方重组时能够识别出属于同一个原始数据报的分片。
- 更多片标志(More Fragments):如果一个分片后面还有其他的分片,则需要设置这个标志。
最后一个分片的更多片标志应为0。
- 片偏移(Fragment Offset):这个值表示当前分片相对于原始数据报开头的偏移量。
片偏移的单位是8字节。
4. 分片数据报的传输:分片完成后,发送方将这些较小的数据报分别发送给接收方。
5. 数据报的重组:当接收方收到所有分片后,它会根据分片的标识和片偏移对这些分片进行重组,以恢复原始的数据报。
需要注意的是,IP数据报分片可能会导致网络效率降低,因为分片和重组过程需要额外的处理开销。
TCPIP协议中分包与重组原理介绍TCP/IP协议中分包与重组原理介绍分片是分组交换的思想体现,也是IP协议解决的两个主要问题之一。
在IP协议中的分片算法主要解决不同物理网络最大传输单元(MTU) 的不同造成的传输问题。
但是分组在传输过程中不断地分片和重组会带来很大的工作量还会增加一些不安全的因素。
我们将在这篇小论文中讨论IP分片的原因、原理、实现以及引起的安全问题。
一、什么是IP分片IP分片是网络上传输IP报文的一种技术手段。
IP协议在传输数据包时,将数据报文分为若干分片进行传输,并在目标系统中进行重组。
这一过程称为分片(fragmentation)。
二、为什么要进行IP分片每一种物理网络都会规定链路层数据帧的最大长度,称为链路层MTU(Maximum Transmission Unit).IP协议在传输数据包时,若IP 数据报加上数据帧头部后长度大于MTU,则将数据报文分为若干分片进行传输,并在目标系统中进行重组。
比如说,在以太网环境中可传输最大IP报文大小(MTU)为1500字节。
如果要传输的数据帧大小超过1500字节,即IP数据报长度大于1472(1500-20-8=1472,普通数据报)字节,则需要分片之后进行传输。
三、IP分片原理及分析分片和重新组装的过程对传输层是透明的,其原因是当IP数据报进行分片之后,只有当它到达目的站时,才可进行重新组装,且它是由目的端的IP层来完成的。
分片之后的数据报根据需要也可以再次进行分片。
IP分片和完整IP报文差不多拥有相同的IP头,ID域对于每个分片都是一致的,这样才能在重新组装的时候识别出来自同一个IP报文的分片。
在IP头里面,16位识别号唯一记录了一个IP包的ID,具有同一个ID的IP分片将会重新组装;而13位片偏移则记录了某IP片相对整个包的位置;而这两个表中间的3位标志则标志着该分片后面是否还有新的分片。
这三个标志就组成了IP分片的所有信息(将在后面介绍),接受方就可以利用这些信息对IP数据进行重新组织。
计算机三级考试复习知识点:IP数据报计算机三级考试复习知识点:IP数据报IP数据报是IP协议使用的数据单元,互联层数据信息和控制信息的传递都需要通过IP数据报进行,同时也是计算机三级考试的重要内容,店铺整理了相关知识点,一起来复习下吧:1.IP数据报的格式IP数据报的格式可以分为报头区和数据区两部分,数据区包括高层需要传输的数据,而报头区是为了正确传输高层数据而增加的控制信息。
通俗地说,数据报的数据区就像是一个信件,而信封上写明寄信人和收信人等信息后,就相当于是一个报头区。
把两者结合一起,就是一个IP数据报。
报头区包含了源IP地址、目的IP地址等控制信息,具体内容如下。
(1)版本和协议类型在IP报头中,版本字段表示该数据报对应的IP协议版本号,不同的IP协议版本规定的数据报格式稍有不同,目前使用的IP协议版本号为4。
协议字段表示该数据报数据区数据的高级协议类型(如TCP),用于指明数据区数据的格式。
(2)长度报头中有两个表示长度的字段,一个为报头长度,另一个为总长度。
报头长度以32b为单位,指出该报头区的长度。
在没有选项和填充的情况下,该值为“5”。
总长度以8b为单位,表示整个IP数据报的总长度(其中包含报头区长度和数据区长度)。
(3)服务类型服务类型字段规定对本数据报的处理方式。
利用该字段,发送端可以为IP数据包分配一个转发优先级,并可以要求中转路由器尽量使用低延迟、高吞吐率或高可靠性的线路投递。
(4)生存周期IP数据报的路由选择具有独立性,因此从源主机到目的主机的传输延迟也具有随机性。
如果路由表发生错误,数据报就有可能进入一个死循环。
利用IP报头中的生存周期字段,可以有效的控制数据报在网络中无休止的流动。
在网络中,“生存周期”域随时间而递减,在该域为0时,报文将被删除,避免死循环的发生。
(5)头部校验和头部校验和用于保证IP数据报头的完整性。
注意,在IP数据报中,只含有报头校验字段,没有数据区校验字段。
IP报⽂的分⽚与重组(ipv6)
总论:
IPv6的分⽚处理只在作为起点的发送端主机上进⾏,中间路由器不参与分⽚,可以减少路由器的负担,提⾼⽹速,所以呢,IPv6中的路径MTU发现功能必不可少,不过IPv6最⼩MTU为1280字节。
IPv6关于分⽚最主要的改变就是分⽚只在端主机上进⾏,中间⽹络只负责转发,上⼀篇中IPv4关于分⽚的16⽐特的Identification和3⽐特的Flags字段在IPv6中都没有了,IPv6的标准头⾸部长度是固定的40字节,Ipv6中的分⽚信息放在了IPv6的扩展⾸部⾥
关于何时Ipv6报⽂需要分⽚:
1. skb的长度⼤于PMTU发现的mtu值
2. 本地链路mtu⼩于1280字节
3. skb分⽚中的最⼤分⽚长度⼤于PMTU发现的mtu值
IPv6部分⾸部:
流标号-Flow Label
20⽐特,准备⽤于QoS
有效载荷长度-Payload Length
这16⽐特指的是包的数据部分,⽽不是像IPv4中的Total Length指包括⾸部在内的所有长度
下⼀个⾸部-Next Header
相当于IPv4中的协议字段,共8⽐特,通常表⽰IP的上⼀层是什么协议,⼀般为UDP,TCP,不过当IPv6有扩展⾸部的时候,该字段表⽰后⾯第⼀个扩展⾸部的协议类型
跳数限制-Hop Limit
8⽐特,就是IPv4中的TTL
IPv6扩展⾸部
扩展⾸部通常位于IPv6⾸部和TCP/UDP⾸部中间,且扩展⾸部没有长度限制,⽐如需要对IPv6的数据进⾏分⽚时,可以设置扩展域为
44(IPv6-Frag)。
ip数据报分片的原因与方法
IP数据报分片是在网络传输过程中将一个大的IP数据报分割成多个小的IP数据报进行传输的过程。
这种情况通常发生在网络中MTU (最大传输单元)的限制下。
MTU是指网络中支持的最大数据包大小。
当一个IP数据报的大小超过MTU时,就需要将其分成多个小的IP数据报进行传输,这就是分片。
IP数据报分片的原因是因为物理网络传输的限制。
不同的网络设备
和链路都有自己的MTU大小,例如以太网的MTU为1500字节,而无
线网络的MTU可能会更小。
当一个IP数据报的大小超过链路的MTU 时,就会发生分片。
IP数据报分片的方法是由发送端负责将大的IP数据报分成多个分片,并在每个分片的首部中设置标志位来指示这是一个分片包,并设置分片包的片偏移和总长度等信息。
接收端在收到所有的分片包后,会根据每个分片包中的信息将它们重新组合成完整的IP数据报。
由于IP数据报分片会增加网络传输的开销,在网络设计和部署时应
尽可能避免IP数据报的分片。
一般来说,可以通过设置合适的MTU
大小、优化网络路径和使用更先进的网络设备等方法来减少IP数据
报的分片。
ip数据报分片的原因与方法
IP数据报分片是在网络传输过程中,将一个大的IP数据包分割成多个更小的数据包进行传输的过程。
IP数据报分片的原因是因为不同的网络和设备所能容纳的数据包大小不同,如果一个IP数据包的大小超过了某个网络或设备所能容纳的大小,那么就需要将其分割成多个小的IP数据包进行传输。
这种技术可以增加网络的灵活性和稳定性,使得大的数据包也可以被传输。
IP数据报分片的方法是通过IP协议的分片机制来实现的。
当一个IP 数据包需要分割成多个小的数据包时,发送端的IP层会将原始数据包进行分割,并为每个分割后的数据包分配一个唯一的标识符。
这些分割后的数据包会按照顺序进行传输,并在接收端的IP层重新组合成原始的数据包。
IP数据报分片虽然可以提高网络传输的可靠性和稳定性,但它也会带来一些额外的开销和延迟。
因为分割后的数据包需要在接收端重新组合,所以在传输过程中会增加额外的处理时间,这会导致网络传输的延迟增加。
同时,分割后的数据包的数量也会增加,会占用更多的网络带宽,这会导致网络传输的效率降低。
因此,在进行IP数据报分片时,需要权衡传输效率和数据包的完整性,选择合适的数据包大小和分片策略。
分片重组是指在数据传输过程中,当数据包的长度超过网络链路的MTU限制时,IP层对数据包进行分片操作,使每一片的长度都小于或等于MTU,以便在网络中独立传输。
这些分片在网络中传输到达目的地后,通过IP重组机制将它们重新组合成完整的数据包。
这种分片和重组的过程确保了大尺寸的数据包能够在网络中进行传输,同时保证了数据的完整性和可靠性。
在IP分片和重组过程中,还需要考虑一些其他因素,例如IP头部和数据部分的长度计算、分片顺序的维护以及重组的确认等。
这些因素对于实现可靠的数据传输和避免潜在的问题至关重要。
在实际应用中,IP分片和重组通常由底层协议栈实现,应用程序不需要直接处理分片和重组的相关细节。
然而,了解分片和重组的概念对于理解和评估网络通信的性能、可靠性和安全性等方面非常重要。
IP数据报的分片和组装原理是什么当一个主机发送数据到另一个主机时,这些数据需要通过多个路由层转发。
IP在路由层的转发过程较为复杂,如何处理目的主机发送的数据报呢?首先我们需要了解数据报的格式:IP的转发和控制都是由IP数据报的头部决定4位首部长度的数值是以 4字节为单位的,最小值为 5,也就是说首部长度最小是 4x5=20字节 ,也就是不带任何选项的 IP首部 ,4位能表表示的最大值是 15,也就是说首部长度最大是 60字节8位TOS字段有 3个位用来指定IP数据报的优先级 (目前已经废弃不用 ),还有4个位表示可选包括服务类型的最小延迟、最大吞吐量、最大可靠性和最小成本,总比特数始终为0。
16位总长度是整个数据报 (包括IP首部和 IP层payload)的字节数。
每传一个 IP数据报 ,16 位的标识加1,可用于分片和重新组装数据报。
3位标志和13位切片偏移用于切片。
TTL(Time to live) 是这样用的 :源主机为数据包设定一个生存时间 ,比如 64,每过一个路由器就把该值减 1,如果减到 0就表示路由已经太长了仍然找不到目的主机的网络 ,就丢弃该包 ,因此这个生存时间的单位不是秒 ,而是跳 (hop)。
协议字段指示上层协议是 TCP、 UDP、 ICMP还是 IGMP。
然后是校验和, 只校验IP首部 ,数据的校验由更高层协议负责。
IPv4的IP地址长度为 32位。
在IP数据报中总长度是16位的字段,一次数据报的最大长度为2^16-1,虽然尽可能长的数据报能够提高传输效率,但是很少有超过 1500字节的;所以在这里只要超过1500字节,就认为此数据报该分片了。
IP数据报被分片以后,各分片分别组成一个具有IP首部的分组,并各自独立的路由,分别抵达目的主机后,目的主机的IP层会在传送给传输层之前将收到的所有分片重新组装成一个数据报。
一.IP分片1.IP分片原理:分片和重新组装的过程对于传输层是透明的,原因是IP数据报进行分片以后,只有它到达下一站时才可以进行重新组装,且它是由目的端的IP层来完成的,分片之后的数据报根据需要可以再次分片;IP分片和完整的报文差不多拥有相同的IP头,ID域对美英分片都是一致的,这样才能在进行组装的时候识别出来同一个IP数据报文分片。
IPv6的分片重组流程是一个涉及源节点分片和目的节点重组的过程,中间节点路由器只负责转发,不再进行分片或重组。
以下是IPv6分片重组流程的详细步骤:1. 路径MTU发现:源节点首先通过路径MTU发现机制(PMTUD)确定到目的节点的路径上的最大传输单元(MTU)。
如果源节点要发送的数据包大小超过了这个MTU,那么就需要进行分片。
2. 源节点分片:源节点将数据包分为两个部分:不可分片部分和可分片部分。
不可分片部分包括IPv6基本头部和必须由中间节点路由器处理的扩展头部(如路由头部之前的所有头部)。
可分片部分包括其他扩展头部和上层数据(如TCP或UDP数据)。
源节点根据MTU大小将可分片部分切割成若干个分片数据包,每个分片数据包的大小为8 octets(64位)的整数倍。
3. 分片数据包的构造:每个分片数据包包含不可分片部分、Fragment Header(扩展头部,类型值为44)和分片数据。
Fragment Header包含以下字段:Next Header:标识源数据包中可分片部分的数据首部类型。
Reserved:保留字段,初始化为零。
Fragment Offset:13位字段,表示分片数据在原始数据包中的位置,以8 octets为单位。
Res:保留位,初始化为零。
M flag:表示更多分片的标志,0表示最后一个分片,1表示还有更多分片。
Identification:用于标识属于同一个源数据包的所有分片,确保目的节点可以正确重组数据包。
4. 分片数据包的发送:源节点将这些分片数据包发送到网络中,它们独立地通过网络传输到目的节点。
5. 中间节点的处理:中间节点路由器仅对分片数据包进行转发,不进行重组或进一步分片。
如果收到的分片数据包大小仍然超过下一跳的MTU,路由器会发送ICMPv6的Packet Too Big消息给源节点,告知其MTU大小。
6. 目的节点重组:目的节点收到所有分片数据包后,根据源地址、目的地址、Identification和Fragment Offset等信息,将分片数据包正确排序和重组。
实验四IP包的分片和重组实验目的通过实验掌握IP数据包的分片和重组的方法。
实验内容对一个较长的IP分组进行分片,然后再将所有的分片重新组装成一个IP分组。
实验要求(1) 从数据包文件如“packet.pkt”中读取分组,并输入一个整数值作为MTU。
首先计算分组头校验和,判断分组接收是否正确,然后检查分组长度是否超过MTU。
如果长度超过MTU,则检查DF位:若DF位为1,打印出错信息;否则对IP包进行分片,生成各分片的文件,如Fragment1.pkt、Fragment2.pkt等。
(2) 读取上一步得到的各分片文件,首先计算头校验,检查分片是否正确;然后将各个分片组装成一个完整的分组,并保存在一个数据包文件如“MergedPkt.pkt”中;比较MergePkt.pkt与原始的packet.pkt的数据部分内容,以检验分组分片和重组是否成功。
尝试不按顺序读入各个片段,验证重组程序是否仍然能够正确重组分组。
实验提示(1) IP数据包的格式为:4位版本4位首部长度8位服务类型(TOS)16位总长度(字节为单位) 16位标识3位标志13位片偏移8位生存时间(TTL)8位协议16位首部检验和32位源IP地址32位目的IP地址与数据报的分片与重组有关的字段是:总长度、标识、标志、分片偏移、TTL、16位首部校验和。
总长度:总长度以字节为单位,指该IP数据报的总大小,包括首部的20字节以及实际的来自应用层的数据。
判断一个数据包是否要进行分片,就是将收到的数据报的总长度与MTU进行比较。
如果总长度大于MTU,就需要进行分片。
标识:这个16位的字段标识从源主机发出的数据报。
当数据报离开源主机时,这个标识与源IP地址唯一地定义了这个数据报。
为了保证唯一性,IP协议使用了一个计数器来标识数据报。
当IP协议发送数据报时,就把这个计数器的当前值复制到标识字段中,并把这个计数器的值加1。
当数据报被分片时,标识字段的值就被复制到所有的分片中,即同一个数据报的所有分片具有相同的标识。
大学《计算机网络》章节练习题及答案-第四章网络层第4章网络层一、选择题1.以下关于静态路由说法不正确的是()。
A.静态路由通常由管理员手工建立B.静态路由可以在子网编址的互联网中使用C.静态路由不能随互联网结构的变化而自动变化D.静态路由已经过时,目前很少有人使用2.关于数据报通信子网,下述说法()是正确的。
A. 第一个分组需要路由选择,其他分组沿着选定的路由传输B. 第一个分组的传输延迟较大,其他分组的传输延迟很小C. 每个分组都包含源端和目的端的完整地址D. 分组可以按顺序、正确地传输给目的站点3.下列关于虚电路子网和数据报子网的说法中,()是错误的。
A. 虚电路子网必须在通信前先建立连接B. 虚电路子网最大的优点是所传输的数据是按序的,且没有额外的延时C. 数据报子网采用的是存储转发机制,所以延时较大,且不可估计D. 数据报子网最大的缺点是途中每个节点都可能出故障,所以健壮性较差4.在分组交换网络和虚电路交换网络中,目的主机地址对于网络层的每个数据包来说,下列说法中,()是正确的。
A. 在分组交换网络中每个数据包必须携带完整的目的主机地址,而虚电路交换网络则不必B. 在虚电路交换网络中每个数据包必须携带完整的目的主机地址,而分组交换网络则不必C. 在分组交换网络和虚电路交换网络中,每个数据包都不必携带完整的目的主机地址D. 在分组交换网络和虚电路交换网络中,每个数据包都必须携带完整的目的主机地址5.为了数据传输,在网络的源节点和目的节点之间建立一条虚电路,它是( )。
A.逻辑通路,专用的B.物理通路,专用的C.逻辑通路,非专用的D.物理通路,非专用的6.完成路径选择功能是在OSI模型的()。
A.物理层B.数据链路层C.网络层D.运输层7.在互联网中,以下哪些设备需要具备路由选择功能?()A.具有单网卡的主机B.具有多网卡的宿主主机C.路由器D.以上设备都需要8.IP层的功能不包括()。
A.无连接的数据报传输B.数据报路由选择C.差错处理D.提供可靠连接9.如果多个互连局域网的高层协议不同,例如一种是TCP/IP协议,另一种是SPX/IPX协议,那么互连这些局域网必须选择()。
IP报⽂的分⽚与重组(ipv4)数据链路的不同,导致链路上的MTU(最⼤传输单元)也不尽相同,⽐如对于IP来说最⼤的MTU是65535字节,但是这个65535字节的MTU 仅仅对于IP上⼀层的TCP,UDP来说可以看做这么⼤。
对于以太⽹传输IP报⽂,由于以太⽹的最⼤MTU是1500字节,假如传输4342字节的IP数据包,就⽆法在⼀个帧中完成发送,这时就需要⽤到IP分⽚(IP Fragmentation)。
Tips:分⽚以8个字节的倍数为单位进⾏分⽚之后的IP数据包在传输的过程中如果遇到了需要检查IP上层的TCP、UDP或者其他应⽤层信息时(防⽕墙,NAT,端应⽤),还需要将分⽚重组,以⽅便提取IP上层的信息,检查之后⼜会按照原分⽚进⾏拆分。
分⽚机制也有⼀定的不⾜,中途路由器还做分⽚处理使得路由器的处理负担加重,不利于链路上的⾼速传输,还有,TCP的⼀个⼩分⽚丢失会导致整个数据包重传。
路径MTU发现技术PMTUD——Path MTU Discovery ,所谓路径MTU(PMTU)是指从发送端主机到接收端主机之间不需要分⽚的最⼤MTU的⼤⼩,可以避免在中途的路由器上进⾏分⽚处理。
PMTUD的⼯作原理:1.在发送端主机发送IP数据包时将⾸部的分⽚禁⽌标志位置为12.数据包传输途中路由器遇到需要分⽚的⼤包也不分⽚,⽽是直接丢弃3.通过ICMP的不可达消息将链路MTU返回给主机4.主机下⼀次发送根据返回的MTU进⾏分⽚处理再发送5.如果路上⼜遇到下⼀台路由器需要分⽚,则⼜直接丢弃,返回带MTU的ICMP6.主机再次根据这个MTU进⾏分⽚,不断循环,直到最后⼀次设置的MTU整个路径都不⽤分⽚7.对于UDP来说,分⽚指UDP传过来的UDP⾸部和UDP数据在IP层被分⽚,对于IP,不区分UDP的⾸部和数据,所有分⽚到达⽬标主机后先被重组,再传给UDP层8.对于TCP来说,分⽚指TCP超时时⾃动按照⽐例缩减MSS的⼤⼩,重传数据包,TCP将数据分成IP层不会再被细分的粒度后传给IP层,IP 层不再做分⽚处理,所有分⽚到达⽬标主机后,照原样传给TCP层,⽽不⽤先被重组IPv4⾸部中部分字段总长度-Total Length表⽰IP⾸部和数据部分加起来的总字节数,该字段长16⽐特,所以IP包最⼤长度 2^16=65535字节标识-Identification⽤于分⽚重组,长16⽐特,同⼀组分⽚的标识值相同(即使标识相同,源⽬的地址或者协议不同也视为不同分⽚),不同分⽚的标识值不同标志-Flags长3⽐特,⽐特0,未⽤;⽐特1,表⽰dont fragment,0-可以分⽚,1-不能分⽚;⽐特2,表⽰是否为最后⼀个包,0-最后⼀个分⽚包,1-分⽚中段的包。
计算机网络原理IP数据报的分片与组装IP数据报的分片与组装是指当一个IP数据报的大小超过了网络传输的最大限制时,需要将其分割成若干个较小的数据报进行传输,并在目的主机上再将这些分片数据报重新组装成原始数据报。
这个过程是由IP协议中的数据报分片与组装机制来完成的。
数据报分片的原因通常有两种:一是原始数据报的长度超过了MTU (Maximum Transmission Unit)限制,即网络传输介质一次最大能够传输的数据量;二是数据报的路由经过了一些网络设备,该设备只支持较小的数据包大小。
在进行数据报分片时,IP协议会根据MTU的限制将原始数据报进行分割,每个新的分片数据报都有一个新的IP头部,同时原始数据报的标识字段会被拆分为标识字段和片偏移字段,以便在后续的组装过程中正确还原原始数据报。
此外,每个分片数据报还会设置MF(More Fragments)位,用于指示是否还有后续的分片数据。
在传输过程中,分片数据报会通过网络独立地传输到目的主机。
由于网络是不可靠的,分片数据报可能会出现丢失、重复、乱序等问题。
目的主机在接收到这些分片数据报后,会根据IP头部中的标识字段进行识别,并根据片偏移字段将这些分片数据报进行正确的组装。
如果一些分片数据报丢失,目的主机会在一定时间内等待该分片的到达,如果超时还未收到,则丢弃其他分片,不再进行组装。
组装过程中,目的主机会根据每个分片数据报的片偏移字段确定其在原始数据报中的位置,并按照片偏移进行排序和组装。
当所有分片数据报都到达目的主机后,组装过程完成,原始数据报被完整还原。
需要注意的是,分片和组装是由IP层完成的,上层的传输层、应用层并不知道分片和组装的过程。
对于应用程序来说,数据报的分片和组装是透明的,应用层的数据传输和接收都是基于原始数据报进行的。
总的来说,IP数据报的分片与组装机制保证了在网络传输过程中大于MTU的数据能够被正确分割和组装,从而实现了对较大数据报的传输。