2019-07-31·[轉(zhuǎn)] MTU最大傳輸單元

原理說(shuō)明

因?yàn)閰f(xié)議數(shù)據(jù)單元的包頭和包尾的長(zhǎng)度是固定的,MTU越大,則一個(gè)協(xié)議數(shù)據(jù)單元的承載的有效數(shù)據(jù)就越長(zhǎng),通信效率也越高。MTU越大,傳送相同的用戶數(shù)據(jù)所需的數(shù)據(jù)包個(gè)數(shù)也越低。

MTU也不是越大越好,因?yàn)镸TU越大, 傳送一個(gè)數(shù)據(jù)包的延遲也越大;并且MTU越大,數(shù)據(jù)包中 bit位發(fā)生錯(cuò)誤的概率也越大。

MTU越大,通信效率越高而傳輸延遲增大,所以要權(quán)衡通信效率和傳輸延遲選擇合適的MTU。

以以太網(wǎng)傳送IPv4報(bào)文為例。MTU表示的長(zhǎng)度包含IP包頭的長(zhǎng)度,如果IP層以上的協(xié)議層發(fā)送的數(shù)據(jù)報(bào)文的長(zhǎng)度超過(guò)了MTU,則在發(fā)送者的IP層將對(duì)數(shù)據(jù)報(bào)文進(jìn)行分片,在接收者的IP層對(duì)接收到的分片進(jìn)行重組。

這里舉一個(gè)具體的例子說(shuō)明IP包分片的原理。以太網(wǎng)的MTU值是1500 bytes,假設(shè)發(fā)送者的協(xié)議高層向IP層發(fā)送了長(zhǎng)度為3008 bytes的數(shù)據(jù)報(bào)文,則該報(bào)文在添加20 bytes的IP包頭后IP包的總長(zhǎng)度是 3028 bytes,因?yàn)?028 > 1500,所以該數(shù)據(jù)報(bào)文將被分片,

注意:分片時(shí)僅僅對(duì)上層的數(shù)據(jù)進(jìn)行分片,不需要對(duì)原來(lái)的IP首部分片,所以要分片的數(shù)據(jù)長(zhǎng)度只有3008,而不是3028. 這特別容易出錯(cuò)。

分片過(guò)程如下:

1. 首先計(jì)算最大的IP包中IP凈荷的長(zhǎng)度 =MTU-IP包頭長(zhǎng)度=1500-20= 1480 bytes。

2. 然后把3008 bytes按照1480 bytes的長(zhǎng)度分片,將要分為3片,3008= 1480+1480+48。

3. 最后發(fā)送者將為3個(gè)分片分別添加IP包頭,組成3個(gè)IP包后再發(fā)送,3個(gè)IP包的長(zhǎng)度分別為1500 bytes、1500 bytes和 68 bytes。

從以上分片例子可以看出第一、二個(gè)分片包組成的IP包的長(zhǎng)度都等于MTU即1500 bytes。

在網(wǎng)絡(luò)通訊中,需要盡量避免發(fā)生分片和重組,因?yàn)榉制亟M對(duì)網(wǎng)絡(luò)性能影響較大。數(shù)據(jù)包發(fā)送時(shí)選擇合適的MTU大小對(duì)提高通訊性能很有必要。MTU大小的選擇有協(xié)議協(xié)商方式,通過(guò)全路徑的MTU發(fā)現(xiàn)機(jī)制,找到整條路徑的最小MTU(也就是路徑MTU),然后報(bào)文發(fā)送式小于等于路徑MTU,這就避免了數(shù)據(jù)傳輸過(guò)程中產(chǎn)生分片,從而提高數(shù)據(jù)轉(zhuǎn)發(fā)性能。MTU的協(xié)議發(fā)現(xiàn)機(jī)制由于安全等方面的原因,并不能總是生效,這時(shí)候就需要根據(jù)網(wǎng)絡(luò)的特性選擇合理的MTU。如果在報(bào)文傳送過(guò)程中分片是不可避免的,那么要想辦法讓重組盡量在終端進(jìn)行,避免在轉(zhuǎn)發(fā)路徑中進(jìn)行。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 基礎(chǔ)知識(shí) 網(wǎng)絡(luò)延時(shí) 網(wǎng)絡(luò)延時(shí)指一個(gè)數(shù)據(jù)包從用戶的計(jì)算機(jī)發(fā)送到網(wǎng)站服務(wù)器,然后再立即從網(wǎng)站服務(wù)器返回用戶計(jì)算機(jī)的來(lái)回...
    菜鳥(niǎo)平閱讀 18,343評(píng)論 2 15
  • 個(gè)人認(rèn)為,Goodboy1881先生的TCP /IP 協(xié)議詳解學(xué)習(xí)博客系列博客是一部非常精彩的學(xué)習(xí)筆記,這雖然只是...
    貳零壹柒_fc10閱讀 5,196評(píng)論 0 8
  • 計(jì)算機(jī)網(wǎng)絡(luò)就是用 物理鏈路 將各個(gè)孤立的工作站或主機(jī)連接在一起,組成 數(shù)據(jù)鏈路,從而達(dá)到資源共享和通信的目的。 網(wǎng)...
    打不死的小強(qiáng)qz閱讀 3,128評(píng)論 0 6
  • 簡(jiǎn)介 用簡(jiǎn)單的話來(lái)定義tcpdump,就是:dump the traffic on a network,根據(jù)使用者...
    JasonShi6306421閱讀 1,352評(píng)論 0 1
  • ip協(xié)議是tcp/ip協(xié)議族的核心協(xié)議,也是socket網(wǎng)絡(luò)編程的基礎(chǔ)之一。ip頭部信息:出現(xiàn)在每個(gè)ip數(shù)據(jù)報(bào)中,...
    dongshixiao閱讀 595評(píng)論 0 0

友情鏈接更多精彩內(nèi)容