网络层次限制mtu
最大传输单元,由硬件网卡设置MTU,是一个硬性限制
数据链路层的有效数据,最小46byte,最大一般1500byte,这里的最大就是MTU,MTU表示网络层必须将发给网卡API的包 <= 1500byte,否则调用失败
为什么要有MTU
以太网最初对报文长度没有限制,网络层最大可以接收65535个字节,但是以太网对于长报文无法可靠地传输,而且丢失后重传也会占用大量的网络资源,而将报文限制在一定的长度,以太网可以将报文大概率传输到目的地,于是就有了MTU
udp最大包是多少
对于UDP包,如果MTU = 1500,那么udp payload最大值是多少,才可以不用分片?
MTU(1500) = IPHeader(20) + UDPHeader(8) + Data Data = 1500 -20 - 8 = 1472
传输层
传输层的限制 —— MSS
下面来看看如何基于mss最大报文段大小来进行TCP报文段的拆分。
mms最大为1460
定义:
仅指 TCP 承载数据,不包含 TCP 头部的大小
如何协商mms大小
TCP在三次握手建立连接过程中,会在SYN报文中使用MSS(Maximum Segment Size)选项功能,协商交互双方能够接收的最大段长MSS值。