网络数据包最大长度mtu分片转发https://blog.csdn.net/singular2611/article/details/52513406

jeely jeely     2022-12-16     400

关键词:

1、数据链路层对数据帧的长度都有一个限制,也就是链路层所能承受的最大数据长度,这个值
称为最大传输单元,即MTU。以以太网为例,这个值通常是1500字节。

2、对于IP数据包来讲,也有一个长度,在IP包头中,以16位来描述IP包的长度,也就是说,
一个IP包,最长可能是65535字节。

3、结合以上两个概念,第一个重要的结论就出来了,如果IP包的大小,起过了MTU值,那么就需要
分片,也就是把一个IP包分为多个,这个概念非常容易理解,一个载重5T的卡车,要拉10T的货,它
当然就得分几次来拉了。

4、IP分片是很多资料常讲的内容,但是我倒是觉得分不分片其实不重要,重要的是另一个东西。一个
数据包穿过一个大的网络,它其间会穿过多个网络,每个网络的MTU值是不同的。我们可以设想,如果
接受/发送端都是以太网,它们的MTU都是1500,我们假设发送的时候,数据包会以1500来封装,然而,
不幸的是,传输中有一段X.25网,它的MTU是576,这会发生什么呢?我想,这个才是我们所关心的。
当然,结论是显而易见的,这个数据包会被再次分片,咱开始用火车拉,到了半路,不通火车,只通汽车,
那一车货会被分为很多车……仅此而已,更重要的是,这种情况下,如果IP包被设置了“不允许分片标志”,那
会发生些什么呢?对,数据包将被丢弃,然事收到一份ICMP不可达差错,告诉你,需要分片!
这个网络中最小的MTU值,被称为路径MTU,我们应该有一种有效的手段,来发现这个值,最笨的方法或许是先
用traceroute查看所有节点,然后一个个ping……

5、到了传输层,也会有一个最大值的限制,当然,对于只管发,其它都不管的UDP来说,不再我们讨论之列。这里
说的是TCP协议。说到大小,或许会让人想到TCP著名的滑动窗口的窗口大小,它跟收发两端的缓存有关,这里讨论
的是传输的最大数据包大小,所以,它也不在讨论之列。
TCP的选项字段中,有一个最大报文段长度(MSS),表示了TCP传往另一端的最大数据的长度,当一个连接立时,连接
的双方都要通告各自的MSS,也就是说,它说是与TCP的SYN标志在一起的。当然,对于传输来讲,总是希望MSS越大越好,
现在超载这么严重,谁家不希望多拉点货……但是,MSS总是有个限制的,也就是MTU-IP头长度-TCP头长度,对于以太网来讲
它通常是1500-20-20=1460,虽然总是希望它能很大(如1460),但是大多数BSD实现,它都是512的倍数,如1024……

6、回到分片上来,例如,在Win2000下执行如下命令:
ping 192.168.0.1 -l 1473

按刚才的说法,1473+20(ip头)+8(icmp头)=1501,则好大于1500,它会被分片,但是,我们关心的是:

这个数据包会被怎么样分法?
可以猜想,第一个包是
以太头+IP头+ICMP头+1427的数据;
那第二个分片包呢?
它可以是:
以太头+IP头+ICMP头+1个字节的数据
或者是:
以太头+IP头+1个字节的数据
也就是省去ICMP头的封装,当然,IP头是不可以省的,否则怎么传输了……

事实上,TCP/IP协议采用的是后一种封装方式,这样,一次可以节约8个字节的空间。IP包头中,用了三个标志来描述一个分片包:
1、分片标志:如果一个包被分片了,被置于1,最后一个分片除外;——这样,对于接收端来讲,可以根据这个标志位做为重组的重
要依据之一;
2、分片偏移标志:光有一个标志位说明“自己是不是分片包”是不够的,偏移标志位说明了自己这个分片拉于原始数据报的什么位置,
很明显,这两个标志一结合,就很容易重组分片包了。
3、不允许分片标志:如果数据包强行设置了这个标志,那么在应该分片的时候,…… err,刚才已经说过了

ping网络数据包为何只能65500

数据包最大的理论长度应该是65535,然后去掉报文长度20.去掉ICMP8个字节,那么剩下的字节去哪了?使用了wireshark抓包后发现65500的数据包里分片后最后一个数据为388,也就是有包含8个数据,但是找不出这个数据的来源?是可选... 查看详情

(转)mtu&mss

...smissionUnit的缩写,意为最大传输单元,通俗的理解就是在网络上传送的最大数据包,单位是字节。   以太网对数据帧的长度都有一个限制,其最大值为1500,这个特性被称作MTU,不同类型的网络大多数都有一个上限。如... 查看详情

路由器具有报文分片和重组的功能吗

具有的。路由器用于连接不同的网络,而每个网络中的能传输的最大包是由两端的路由器协商决定的。所以路由器是具有分片重组的。再说下交换机,交换机中有个词是Jombo帧,这是指交换机能传输的最大帧,所以交换机收到的... 查看详情

为啥数据报很少超过1500字节

...输单元MTU这个特性,它限制了数据帧的最大长度,不同的网络类型都有一个上限值。以太网的MTU是1500,你可以用netstat-i命令查看这个值。如果IP层有数据包要传,而且数据包的长度超过了MTU,那么IP层就要对数据包进行分片(frag... 查看详情

ipv4报文分片

...装成帧时,数据报的总长度必须小于这个最大长度.它是由网络使用的硬件和软件带阿里的限制确定的.IPv4数据报的最大长度2^16(65535)字节,如果MTU>=2^16,那么什么也不用做,直接把IPv4的数据报塞到帧的数据段中就行了,但是对于MTU<... 查看详情

python网络编程4--实现ip分片与网络路径mtu探测

参考技术A实验拓扑如下,linux向R2发送IP分片,并在R2接口上抓包。  ICMP包校验和是连通头部信息加数据本身一起进行校验(ip包只需要校验头部信息)而Scapy自动添加ICMP校验和时只会计算第一分片的数据,当三个分片到... 查看详情

mtu

MTU各种网络标准都对数据的最大传输长度有所限制,这个限制就是MTU(最大传输单元)。MTU是逻辑上的概念,并非物理上的概念,之所以搞个MTU,就是为了响应速度更快。一旦数据长度超过MTU,就对该数据进行分片,保证数据帧... 查看详情

面试冲刺:54---mtu是什么?ip分片是什么?mss是什么?tcp和udp会分片吗?它们的关系是什么?

...段”UDP:传输的数据单位为“用户数据报”‘’IP层/网络层:传输的数据单位为“分组/包”,就是将运输层的内容封装为“分组/包”,并通过路由转发数据链路层:传输的数据单位为“帧”物理层:传输... 查看详情

面试冲刺:54---mtu是什么?ip分片是什么?mss是什么?tcp和udp会分片吗?它们的关系是什么?

...段”UDP:传输的数据单位为“用户数据报”‘’IP层/网络层:传输的数据单位为“分组/包”,就是将运输层的内容封装为“分组/包”,并通过路由转发数据链路层:传输的数据单位为“帧”物理层:传输... 查看详情

掌握未来新的网工技术-ipv6技术(代码片段)

...只查看和选路相关的基本字段,保证了转发数据的高效。网络层一般要限制每次发送数据帧的最大长度。任何时候IP层接收到一份要发送的IP数据时,它要判断向本地哪个接口发送数据,并查询该接口获得其MTU。IP层把MTU与要发送... 查看详情

asa高级配置

...值被称为最大传送单元(MaximunTransmissionUnitMTU)。不同的网络有不同的MTU值,如以太网的MTU值是1500字节,PPP链路的MTU值是296字节。当IP数据报封装成帧时,必须符合帧格式的规定,如果IP数据报的总长度不大于MTU值,就可以直接... 查看详情

ip分片/mtu与tcp分段/mss

...分片密切相关的概念。MTU前面已经说过了,是链路层中的网络对数据帧的一个限制,依然以以太网为例,MTU为1500个字节。一个IP数据报在以太网中传输,如果它的长度大于该MTU值,就要进行分片传输,使得每片数据报的长度小于... 查看详情

tcp的断包和粘包

...息长度过大,如果超过了MTU,那么ip会对其进行分片。在网络编程中,要避免出现IP分片。因为是IP层是没有超时重传机制的,如果IP层对一个数据包进行了分片,只要有一个分片丢失了,只能依赖于传输层进行重传,结果是所有... 查看详情

分片

...域网的MTU不超过576B。2.如何识别是同一个片片在目的地的网络层会重新组装,目的主机使用标识,标志,片偏移字段来完成对片的重组。 查看详情

mtu和mss

...单元,在TCP/IP协议族中,指的是IP数据报能经过一个物理网络的最大报文长度,其中包括了IP首部(从20个字节到60个字节不等),一般以太网的MTU设为1500字节,加上以太帧首部的长度14字节,也就是一个以太帧不会超过1500+14=1514字... 查看详情

数据帧mtumssip分片

1.以太网帧  在以太网链路上的数据包称作以太帧,在802.3标准里,规定了一个以太帧的数据部分(Payload)的最大长度是1500个字节(MTU),再加上14字节链路头和4字节的FCS,所以以太网帧的最大长度为1518。另外,以太网帧的最小长... 查看详情

ip分片

物理网络层一般要限制每次发送数据帧的最大长度。任何时候IP层接受到一份要发送的IP数据报时,它要判断向本地哪个接口发送数据(选路),并查询该接口获得其MTU(最大传输单元:MaximumTransmissionUnit,通常与通信接口有关,... 查看详情

ip报文分片

...传输单元(MaximumTransmissionUnit,MTU)。 以太网帧中的数据长度规定最小46字节,最大1500字节,MTU指数据帧中有效载荷的最大长度,不包括帧首部的长度。 2.IP帧格式,4位首部长度的数值是以4字节为单位的,最小值为5,也... 查看详情