1. 程式人生 > >為什麼傳輸的資料包要少於1500個位元組

為什麼傳輸的資料包要少於1500個位元組

1、鏈路層具有最大傳輸單元MTU這個特性,它限制了資料幀的最大長度,不同的網路型別都有一個上限值。乙太網的MTU是1500,你可以用 netstat -i 命令檢視這個值。如果IP層有資料包要傳,而且資料包的長度超過了MTU,那麼IP層就要對資料包進行分片(fragmentation)操作,使每一片的長度都小於或等於MTU。我們假設要傳輸一個UDP資料包,乙太網的MTU為1500位元組,一般IP首部為20位元組,UDP首部為8位元組,資料的淨荷(payload)部分預留是1500-20-8=1472位元組。如果資料部分大於1472位元組,就會出現分片現象。

2、至於為什麼最大值設定成1500位元組。
其實,這個最大傳輸單元MTU等於1500是國際規定的預設值而已,自己也可以將它設定的小一些,【最大值是1500】,就是規定而已,可能是大家評估考慮1500是比較合適的一個數值。
可能可以這樣認為,MTU=1500是一個經過實驗得到的可以最大效率傳輸資料的值。倘若大於1500,資料傳輸速度就會變慢;相反,若小於1500,鏈路又得不到充分利用,減小了效率。。。。所以,1500就是最好的值。