MTU和MSS
MTU:链路层限制的最大传输单元,以太网默认1500字节
MSS:最大报文段长度,是TCP协议的一个选项,用于在TCP连接建立时,收发双方协商通信时每一个报文段所能承载的最大数据长度(不包括文段头)。
MTU对于tcp传输的影响
tcp传输在三次握手阶段会协商mss,双方取较小一方的mss作为最大数据段大小进行传输,每次从缓冲区中取出不大于mss的数据封装报头进行发送。
因此,tcp在传输层就会自动进行数据分段,而不会再网络层进行数据分片
MTU对于udp传输的影响
udp不受mss约束,只要udp数据大小小于64K–28就可以传输,若udp数据大于MTU,则会在网络层进行数据分片。
一旦某一个分片出了问题,这整个报文就会被丢弃。
因此,使用udp传输,程序员最好在上层就按照合适大小进行分包,尽量减少在网络层分片的概率。