tcp,udp報文最大長度是怎么樣的呢?
先來看看各個報文格式:
ip報文
tcp報文
udp報文
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的最大負載很大。(—_—)