IP分區和TCP分段的區別

來源:互聯網
上載者:User
IP分區和TCP分段的區別

1,MTU(Maximum Transmission Unit,MTU),傳輸單元最大值
(1)乙太網路和802.3對資料幀的長度都有一個限制,其最大值分別是1500和1492個位元組。鏈路層的這個特性稱作MTU。不同類型的網路大多數都有一個上限。如果IP層有一個資料要傳,且資料的長度比鏈路層的MTU還大,那麼IP層就要進行分區(fragmentation),把資料報分成若干片,這樣每一個分區都小於MTU。
(2)把一份IP資料報進行分區以後,由到達目的端的IP層來進行重新組裝,其目的是使分區和重新組裝過程對運輸層(TCP/UDP)是透明的。由於每一分區都是一個獨立的包,當這些資料報的片到達目的端時有可能會失序,但是在IP首部中有足夠的資訊讓接收端能正確組裝這些資料報片。
(3)儘管IP分區過程看起來透明的,但有一點讓人不想使用它:即使只丟失一片資料也要重新傳整個資料報。why。因為IP層本身沒有逾時重傳機制——由更高層(比如TCP)來負責逾時和重傳。當來自TCP報文段的某一片丟失後,TCP在逾時後會重發整個TCP報文段,該報文段對應於一份IP資料報(而不是一個分區),沒有辦法只重傳資料報中的一個資料分區。
(4)使用UDP很容易導致IP分區,TCP試圖避免IP分區。那麼TCP是如何試圖避免IP分區的呢。其實說白了,採用TCP協議進行資料轉送是不會造成IP分區的,因為一旦TCP資料過大,超過了MSS,則在傳輸層會對TCP包進行分段(如何分,見下文。),自然到了IP層的資料報肯定不會超過MTU,當然也就不用分區了。而對於UDP資料報,如果UDP組成的IP資料報長度超過了1500,那麼IP資料報顯然就要進行分區,因為UDP不能像TCP一樣自己進行分段。總結:UDP不會分段,就由我IP來分。TCP會分段,當然也就不用我IP來分了。
2,MSS(Maxitum Segment Size)最大分段大小的縮寫,是TCP協議裡面的一個概念 (1)MSS就是TCP資料包每次能夠傳輸的最大資料分段。為了達到最佳的傳輸效能TCP協議在建立串連的時候通常要協商雙方的MSS值,這個值TCP協議在實現的時候往往用MTU值代替(需要減去IP資料包包頭的大小20Bytes和TCP資料區段的包頭20Bytes)所以往往MSS為1460。通訊雙方會根據雙方提供的MSS值得最小值確定為這次串連的最大MSS值。
(2)相信看到這裡,還有最後一個問題:TCP是如何?分段的呢。其實TCP無所謂分段,因為每個TCP資料報在組成前其大小就已經被MSS限制了,所以TCP資料報的長度是不可能大於MSS的,當然由它形成的IP包的長度也就不會大於MTU,自然也就不用IP分區了

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.