分段和重組,分段和重組是什么意思
分段和重組,分段和重組是什么意思
對于不同的網絡,其中傳送的包大小可能不一樣,因此把大包分小的功能是必須的。分段是將數據分組分割成小塊以便它們能夠適合基礎網絡的幀。數據報也可以被標記為“不可分段”,如果一個數據報被標記了,那么在任何情況下都不準對它進行分段。如果不分段到不了目的地,那就把包在半路拋棄了。在本地網內進行的重新分段和重組對IP模塊是不可見的,這種方法也可以使用。
接收系統將這些分段重新組裝成原始的數據分組。對段的重組要求以下四個域有相同的值:標記,源地址,目標地址和協議。將不同的數據報根據自己帶的偏移量重新組合為新段,第一個段的偏移量為0,最后一個段的多段標記為0。
MTU(最大傳輸單元)一詞指一個幀中能夠傳輸的最大數據量。不同的網絡有不同的MTU大小,所以可能需要將數據分組分段以符合傳輸它們的網絡的幀大小。圖F-8闡釋了該過程。
圖F-8 將數據分組分段以符合它們必須跨越的網絡的幀大小網際協議(如IP)使用分段,因為數據分組在其中傳輸的每個網絡都可能有不同的幀大小。分段發生在連接兩個具有不同MTU的網絡的路由器中。雖然有可能設計出具有相同MTU大小的內部網絡,但對于因特網它并不是很好的選擇,因為因特網包括幾干個獨立管理的、互相連接的網絡。
因為分段會降低性能,所以它總是不合需要的。事實上,在IPv6中,就不允許分段。大的數據分組總是更可取的,特別是大文件在高性能網絡中傳輸時。但是有些時候,試圖消除或減少分段可能會引起額外的問題。IPv6通過依靠終端系統來發現MTU整個的傳送路徑從而嘗試消除對分段的需求。它被稱為路徑MTU發現,IPv4中已經使用,這在后面有討論。IPv6將加強這一點。一個重要的概念是每個分段都變成一個新的、更小的IP數據報。這是因為一個新的IP頭被附加到數據報中,該數據報包含原始數據報IP頭的許多信息以及與分段過程相關的信息。新的IP數據報被放入基礎網絡的某個幀中。后面討論并圖示了該過程。新數據報(IP頭加上數據)的總的大小不能超過該網絡的MTU。
只有目的地對分段的數據分組進行重組。傳輸路徑中的路由器從不執行重組。想一想數據分組被分段后,它的分段可能會不再采用不同的路徑到達目的地。所有的分段再次出現的惟一地點就是目的地。接收器啟動計時器并開始將分段放入緩沖器中,他們被保留在那里直到所有的分段都到達。如果只是某一個數據分組分段未能出現在目的地,則整個數據分組必須重新傳輸,因為沒有請求和重新傳輸單個分段的機制。
因為TCP段進入IP數據報而IP數據報進入基礎網絡的幀,它們中間有一些有趣的關系。首先,TCP段不能大于IP數據報減去IP頭。IP數據報的最大大小是65535Byte減去IP頭(大小可能在20到60Byte之間)。其大小以4Byte的增量變化,這取決于頭選項的設置。極少的數據鏈連接具有能容納65K數據報的MTU。以太網的MTU是l500Byte,FDDI的MTU是4500Byte。
下面是一些影響分段大小的其他因素:
每個IP數據報分段必須是8Byte的倍數。
IP頭被添加到IP數據報分段中,所以總的分段大小等于(數據分段+IP頭)。
MTU指定所允許的最大分段大小(分段+IP頭)。
因為分段必須是8Btye的倍數,總的分段大小可能并不總是等于MTU。假設MTU是512Byte,頭大小是20Byte (如果不使用選項,頭大小為20Byte)。因為IP數據報只能以8Byte的倍數來分段,該示例網絡的最大分段大小(在添加頭之前)添加頭之前,是488Byte。添加頭后,總的分段大小為508Byte,處于5l2Byte的MTU限制范圍內。請注意8的下一個倍數是496Byte。加上頭之后總的分段大小就是5 l6Byte,超出了MTU范圍。
下列字段是IP頭中使用的,用來提供分段信息和控制:
數據分組標識符 一個l6bit的字段,使用一個惟一的編號標識所有分段的數據分組。在接收器處理完所有的分段之前,該編號不能被再次使用。
分段偏移 為接收器提供信息以將分段重組成原始的數據分組。改值表明分段中的數據相對于數據開始處的位置。
不分段標志 當設置為1時,不使用分段數據報進行傳輸。如果不能做到,數據報將會丟失,并將返回一條出錯消息到發送器那里(使用 ICMP)。該標志可用于“scout”數據分組,發送這些數據分組以確定網絡中可以發送的最大 MTU。請參閱后面的“路徑MTU發現”一節。
更多分段標志 當設置為1,該標志表明將會有更多分段。0則表示數據分組是最后一個分段。
圖F-9闡釋了一個l300By泌的數據報是如何被分段成網絡中的三個數據報的,其中該網絡中的MTU為500Byte(為清楚起見,值都被四舍五入)。
圖F-9分段過程
路由器必須接受具有指定MTU大小的掛接網絡的數據報。而且它們還必須接受大小為576Byte的最小數據報,該值是在1983年RFC 879為了幫助供貨商創建能夠共同操作的路由器而定義的。RFC 879中的規則指定“主機不能發送大于576Byte的數據報,除非它們明確知道目標主機已準備好接受更大的數據報”。現在,大多數路由器支持l500Byte的MTU,但是在具有未知MTU大小的非本地網絡中傳輸時仍然使用最小值。通常,因特網中的網絡現在都支持576Byte的最小MTU。
RFC 879中制定的規則的另一部分是最大的TCP段大小(數據進入IP數據報,而IP數據報則會分段)等于最大的IP數據報大小加上40Byte的頭。因此,最大的TCP段大小是536Byte(576Byte減去40Byte)。
大多數操作系統都提供有更改MTU大小的方法。例如,在Windows 98,可以按如下方式查看并更改撥號網絡的設置。打開“控制面板”中的“網絡”實用程序,單擊“配置”選項卡,選項“撥號適配器”,然后單擊“屬性”。在“高級”選項卡中,單擊“IP數據分組大小”。出現下列可用的值: 自動默認設置 大 1500Byte?
中 1000Byte 小 576Byte?? 在“自動”模式中,所有低于128kbit/s的PPP連接都使用576Byte的MTU,而高于128kbit/s的連接則使用1500Byte的MTU。
路徑MTU發現
最大轉移單位(MTU)是對單個傳輸的數據字節最大號碼限制的鏈接層。路徑MTU是源節點和目標節點之間的路徑中的所有鏈接中的最小MTU。路徑MTU發現是一個過程,在這個過程中,數據分組就像“scout”一樣被發送到網絡中以發現最小的路徑MTU。發現最小的MTU后,發送器可使用該值作為最大的IP數據報大小,以便在傳輸過程中不用分段數據分組。如前所述,分段會增加開銷并降低性能。只要可能就應該使用大的數據分組。
MTU路徑的發現過程
我們使用非碎片比特在IP頭信息作為動態地發現一條給定的線路的路徑MTU標記。消息提供者承擔一條路徑的PMTU是已知的MTU的第一個中斷段。
他需要發送所有的數據包并且設置非段位。
如果沿著目的主機的路徑,有一路由器需要數據包到片段為了把它傳遞給下一個中斷段,如果非段位被設置,將產生一條ICMP錯誤消息(類型3代碼4“段需要和DF設置”)。
當發送主機收到ICMP錯誤消息時應該減少假定的PMTU。
當估計的PMTU是足夠低的數據包不成碎片時進程能結束。在一些時候形成碎片的數據包,消息提供者自己能停止該過程。DF位通常被加裝在所有的數據包,如果一條路由變化成目的主機,并且PMTU降低,我們就能發現借此發現它。
因為在路由上拓撲的變化,一條路徑的PMTU可能會增加。為了能夠檢測到它,發送主機應為此鏈接周期性地增加假定的PMTU。在ICMP中的MTU鏈接領域 " 碎片存儲需要和DF設定 "的錯誤信息攜帶MTU跳躍,使來源主機能夠知道他需要設置PMTU那條路徑以外允許數據包的傳送的準確的值(路由器)沒有碎片。
路徑MTU發現的工作原理如下:
1.發送器傳輸數據分組(通常是本地網絡的默認大小)并將“不分段”標志設置為1。
2.如果數據分組大于網絡中的任何MTU,連接到該網絡的路由器將會丟失數據分組并返回給發送器一條ICMP消息。該消息指示如果數據分組不分段,將無法轉發而且還包含引起問題的網絡的MTU。
3.發送器再次嘗試新的數據分組大小并從第l步開始處理。連接到某個具有更小MTU的網絡的路由器可能丟失數據分組并返回一條錯誤消息。
通過使用路徑MTU發現,系統可以在多個使用盡可能最大的數據分組的網絡中發送數據分組而不用支付分段及重組的開銷。
但是,路徑MTU發現也有它自己的成本。實際的數據直到發現最好的MTU以后才傳輸,這就造成了延遲。使用新的MTU大小,幾個路由器可能都返回錯誤消息。而且,發現數據分組使用網絡帶寬并需要網絡中路由器的額外處理。盡管如此,人們認為這種帶寬的使用以及處理還是比分段數據報要優越。
非常好我支持^.^
(5) 100%
不好我反對
(0) 0%
相關閱讀:
- [工業控制] Hair pin扁線電機分段發卡繞組制造工藝 2023-10-19
- [電子說] 【機器視覺】歡創播報 | 騰訊再戰XR:重組團隊 2023-10-19
- [電子說] 內存分段是如何產生內存碎片的 2023-10-09
- [電子說] 傳小米合伙人張峰12月離職 大家電業務將重組 2023-10-09
- [電子說] 供應鏈加速重組 四大熱區帶動半導體發展 2023-09-13
- [電子說] 大陸集團汽車業務重組:分拆賺錢和不賺錢的 2023-08-24
- [電子說] 大陸集團重組,或將出售部分汽車零部件業務 2023-08-24
- [電子說] 重組供應鏈,加賀電子將在墨西哥新建零部件組裝廠 2023-08-16
( 發表人:admin )