UDP資料報最大傳輸長度

2021-08-10 12:00:31 字數 1007 閱讀 4041

乙太網(ethernet)資料幀的長度必須在46-1500位元組之間,這是由乙太網的物理特性決定的.

這個1500位元組被稱為鏈路層的mtu(最大傳輸單元). 但這並不是指鏈路層的長度被限制在1500位元組,其實這這個mtu指的是鏈路層的資料區.並不包括鏈路層的首部和尾部的18個位元組.

所以,事實上,這個1500位元組就是網路層ip資料報的長度限制.

因為ip資料報的首部為20位元組,所以ip資料報的資料區長度最大為1480位元組.

而這個1480位元組就是用來放tcp傳來的tcp報文段或udp傳來的udp資料報的.

又因為udp資料報的首部8位元組,所以udp資料報的資料區最大長度為1472位元組.

這個1472位元組就是我們可以使用的位元組數。

當我們傳送的udp資料大於1472的時候會怎樣呢?

這也就是說ip資料報大於1500位元組,大於mtu.這個時候傳送方ip層就需要分片(fragmentation).

把資料報分成若干片,使每一片都小於mtu.而接收方ip層則需要進行資料報的重組.

這樣就會多做許多事情,而更嚴重的是,由於udp的特性,當某一片資料傳送中丟失時,接收方便

無法重組資料報.將導致丟棄整個udp資料報。

因此,在普通的區域網環境下,我建議將udp的資料控制在1472位元組以下為好.

進行internet程式設計時則不同,因為internet上的路由器可能會將mtu設為不同的值.

如果我們假定mtu為1500來傳送資料的,而途經的某個網路的mtu值小於1500位元組,那麼系統將會使用一系列的機制來調整mtu值,使資料報能夠順利到達目的地,這樣就會做許多不必要的操作.

鑑於internet上的標準mtu值為576位元組,所以我建議在進行internet的udp程式設計時.

最好將udp的資料長度控制項在548位元組(576-8-20)以內.

UDP資料報最大傳輸長度

乙太網 ethernet 資料幀的長度必須在46 1500位元組之間,這是由乙太網的物理特性決定的。這個1500位元組被稱為鏈路層的mtu 最大傳輸單元 但這並不是指鏈路層的長度被限制在1500位元組,其實這這個mtu指的是鏈路層的資料區.並不包括鏈路層的首部和尾部的18個位元組.所以,事實上,這個...

UDP資料報最大傳輸長度

概念 乙太網 ethernet 資料幀的長度必須在46 1500位元組之間,這是由乙太網的物理特性決定的.這個1500位元組被稱為鏈路層的mtu 最大傳輸單元 但這並不是指鏈路層的長度被限制在1500位元組,其實這這個mtu指的是鏈路層的資料區.並不包括鏈路層的首部和尾部的18個位元組.所以,事實上...

速讀原著 TCP IP 最大UDP資料報長度

理論上,i p資料報的最大長度是6 5 5 3 5位元組,這是由i p首部 圖3 1 1 6位元總長度欄位所限制的。去除 2 0位元組的i p首部和8個位元組的u d p首部,u d p資料報中使用者資料的最長長度為6 5 5 0 7位元組。但是,大多數實現所提供的長度比這個最大值小。我們將遇到兩個...