tcp,udp报文最大长度是怎么样的呢?

先来看看各个报文格式:

ip报文

tcp,udp报文最大长度_5G

tcp报文

tcp,udp报文最大长度_5G_02

udp报文

tcp,udp报文最大长度_数据_03

ip和udp都有16位的长度字段,所以ip和udp报文的最大负载长度应该为2^16,64KB

网络层限制:

  MTU(Maximum Transmission Unit,最大传输单元),这限制了ip报文长度,ip报文长度大于mtu,就需要分片。通常设为1500字节。

  在网络层,ip提供不可靠传输服务,一旦收到的数据报分片丢失部分或部分出现差错,就会全部丢弃,而不会选择重传。

传输层限制:

   tcp协议中有个MSS,tcp通常将数据分成长度为MSS的若干块。

总结:

  ip报文由于其长度字段限制,最大负载长度为64KB,而由mtu限制,报文会分片为长度为mtu的若干段。

   udp因没有序号等字段,所以无法分片,最大负载长度64KB,受制ip报文限制,数据最大负载为64KB-20(ip)-8(udp)

   tcp:目前来看,tcp的最大负载限制应该是其分片序号,2^32*mss,如果按MSS=1460来算,接近6TB,但这绝不可能,毕竟还有重传等操作,不过我觉得可以认为tcp的最大负载很大。(—_—)