這篇文章主要為大家分析了IP數據報的分片和組裝原理是什么的相關知識點,內容詳細易懂,操作細節合理,具有一定參考價值。如果感興趣的話,不妨跟著跟隨小編一起來看看,下面跟著小編一起深入學習“IP數據報的分片和組裝原理是什么”的知識吧。
成都創新互聯公司自2013年起,先為宿遷等服務建站,宿遷等地企業,進行企業商務咨詢服務。為宿遷企業網站制作PC+手機+微官網三網同步一站式服務解決您的所有建站問題。一份數據從一個主機通過路由器發送給另一個主機時,要經過很多路由層轉發的。過程比較復雜,那么IP在路由層到底是以怎樣的形式轉發和目的主機這份數據報的時候又是如何處理的?
首先我們需要了解數據報的格式:
IP的轉發和控制都是由IP數據報的頭部決定
4位首部長度的數值是以 4字節為單位的,最小值為 5,也就是說首部長度最小是 4x5=20字節 ,
也就是不帶任何選項的 IP首部 ,4位能表表示的大值是 15,也就是說首部長度大是 60字 節
8位TOS字段有 3個位用來指定IP數據報的優先級 (目前已經廢棄不用 ),還有4個位表示可選
的服務類型 (最小延遲、大呑吐量、大可靠性、最小成本 ),還有一個位總 是0。
16位總長度是整個數據報 (包括IP首部和 IP層payload)的字節數。
每傳一個 IP數據報 ,16 位的標識加1,可用于分片和重新組裝數據報。
3位標志和13位片偏移用于分片 。
TTL(Time to live) 是這樣用的 :源主機為數據包設定一個生存時間 ,比如 64,每過一個路由器
就把該值減 1,如果減到 0就表示路由已經太長了仍然找不到目的主機的網絡 ,就丟棄該包 ,因此
這個生存時間的單位不是秒 ,而是跳 (hop)。
協議字段指示上層協議是 TCP、 UDP、 ICMP還是 IGMP。
然后是 校驗和, 只校驗IP首部 ,數據的校驗由更高層協議負責。
IPv4的IP地址長度為 32位。
在IP數據報中總長度是16位的字段,一次數據 報的大長度為2^16-1,雖然盡可能長的數據報能夠提高傳輸效率,但是很少 有超過 1500字節的;所以在這里只要超過1500字節,就認為此數據報該分片了。IP數據報被分片以后,各分片分別組成一個具有IP首部的分組,并各自獨立的路由,分別抵達目的主機后,目的主機的IP層會在傳送給傳輸層之前將收到的所有分片重新組裝成一個數據報。
一.IP分片
1.IP分片原理:
分片和重新組裝的過程對于傳輸層是透明的,原因是IP數據報進行分片以后,只有它到達下一站時才可以 進行重新組裝,且它是由目的端的IP層來完成的,分片之后的數據報根據需要可以再次 分片;
IP分片和完整的報文差不多擁有相同的IP頭,ID域對美英分片都是一致的,這樣才能在進行組裝的時候識別出來 同一個IP數據報文分片。在IP頭里面,16位識別號唯一記錄了一個IP報的ID,具有同一個ID的IP分片將會重新進行組裝;而13位片偏移則記錄了某IP片相對于整個包的位置;這兩個表中間的3位標志則標志著該分片后面是否還有新的分片。這三個域組成了IP分片的所有信息,接受方可以利用這些信息對IP數據進行重新組裝。
(1)標志字段的作用
0 DF MF
標志字段共三位,最高位為0,該值必須復制到 所有 分組中
不分片(Do not Fragment ,DF)值必須復制。DF=1表示 接受主機不能對分組進行分片。如果分組的長度超過 MTU,又不可以分片,那么這個分組只能丟棄,并要用ICMP差錯報文向源主機報告 。DF=0,表示可以分片
分片(MF)表示分片是不是最后一個分片,MF=1表示接受分片不是 最后一個分片,MF=0表示 接受分片時是最后一個分片
故意發送部分IP分片而不是全部,則會導致目標主機總是等待分片消耗并占用系統資源。
2.MTU(大傳輸 單元)原理
當兩臺遠程CP互聯的時候,他們的數據要穿過很多的路由器和各種各樣的網絡媒介才能到達對端
,網絡中不同媒介的MTU各不相同,就好比一長段的水管,由不同粗細的水管組成(MTU不同 )通過這段水管大水量就要由中間最細的水管決定。
對于網絡層的上層協議而言(這里以TCP/IP協議簇為例)他們對水管的粗細不在意因為他們認為 這是網絡的事情。網絡層IP協議會檢測每個從上層協議下來的數據報包的大小 ,并根據本機的MTU大小決定是否分片處理。分片大的壞處就是降低了傳輸性能,本來可以一次搞定的事情,分成多次。所以在網絡的更高一層(傳輸層的實現)往往會對此加以注意,因為有些高層因為某些原因可能就要求不能對分組進行分片,索引會在IP數據報的包頭加上一個標簽:DF這樣IP數據包在一大段網絡傳輸的時候,如果遇到MTU小于 數據包的情況,轉發設備會根據情況丟掉這個數據包。然后返回一個錯誤信息給 發送者,這往往會造成通訊上的問題,不過幸運的是大部分網絡鏈路MTU都是1500或者大于 1500
對于UDP而言,這個協議本身是無連接的協議,對數據包的到達順序是否正確并不關心,所以一般UDP對分片沒有多大要求
對于TCP就不一樣了,這個協議是面向連接的協議,對于 TCP而言它非常在意數據包的到達順序
以及在傳輸過程中是否有錯誤發生,所以有些TCP應用對分片有要求---不能分片
3.MSS(大報文段長度 )原理
MSS就是TCP數據包每次能夠傳輸的大數據分段,為了達到最佳的傳輸效能TCP協議在建立連接的時候通常要協商雙方MSS的值,這個值TCP協議在實現的時候用MTU代替(要減去IP數據包的包頭大小20bites和TCP數據段的包頭20BITES)所以MSS大小往往為1460,雙方會根據提供的MSS最小值 確定這次連接的MSS大值
二.IP分片步驟
一個未分片的數據報的分片信息字段全為0,即多個分片標志位為 0,并且偏移量 為0,分片一個數據報需要經過一下步驟
(1)檢查DF標志位,查看是否允許分片,如果設置了該位,則數據報將被丟棄 ,并將ICMP錯誤返回給源端
(2)基于MTU值,把數據字段分成兩個或對個部分,除了最后的數據 部分外,所有新建的數據選項 長度必須為8字節的倍數
(3)每個數據被放入一個IP數據報,這些數據報的包頭略微改了原先的報文頭
(4)除了最后的數據報分片外,所有的分片都設置了多個分片標志位
(5)每個分片中的片偏移量字段設為這個數據部分在原來數據報中所占的位置,這個位置相對于原來未分片數據報中的開頭處。
(6)如果在原來的數據報中包括了選項,則選項類型字節的高位字節決定了這個信息是被復制到所有分片數據報,還是只復制到第一個數據報。
(7) 設置新數據報的報文頭字段及總長度字段。
(8)重新計算報文頭部校驗和字段。
此時這些分片數據報如一個完整的IP數據報一樣被轉發,IP獨立的處理每個數據報分片,數據報分片能夠通過不同的路由 ,到達目的,如果他們通過了那些規定了更小的MTU路由,還能夠進一步對他們進行分片
在目的主機上,數據被 重新組合成原來的數據報 ,發送主機設置的標示字段與數據報中的袁IP地址和目的IP地址一起使用,分片過程不改變這個字段
三 .重組
為了重新組合這些數據報分片,接受主機在第一個分片到達時分配一個存儲緩沖區。這個主機還將啟動一個計時器。當數據報的后續分片到達時,數據被復制到緩沖區存儲器中片偏移量指定的位置,當所有分片都到達時,完整的未分片的原始數據報就被恢復了。
如果計時器超時并且分片保持尚未認可狀態,則數據將被丟棄。這個計時器的初始值為IP數據報的生存期值,它依賴于實現的,一些實現允許對他進行配置。
重組步驟
在接受方,一個由發送方發出的原始數據IP報,將所有的分片重新組合,才能夠提交到上一層協議,每一個將被重組的IP數據報都用一個ipq結構來表示
為了能夠有效提高組裝分片,用于保存分片的結構必須做到以下幾點
(1)快速定位某一個數據報的一組分組
(2)在屬于某一個數據報的一組分片中快速插入新的分片
(3)有效的判斷一個數據報的所有分片是否已經被全部接收
(4)具有重組超時機制,如果在重組完成之前超時溢出,則刪除該數據報的所有內容
這篇文章主要為大家分析了IP數據報的分片和組裝原理是什么的相關知識點,內容詳細易懂,操作細節合理,具有一定參考價值。如果感興趣的話,不妨跟著跟隨小編一起來看看,下面跟著小編一起深入學習“IP數據報的分片和組裝原理是什么”的知識吧。
另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
本文標題:IP數據報的分片和組裝原理是什么-創新互聯
鏈接URL:http://vcdvsql.cn/article48/cdjjhp.html
成都網站建設公司_創新互聯,為您提供搜索引擎優化、虛擬主機、網站營銷、自適應網站、建站公司、做網站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯