王亮 高曉佳 王宏國 佟冬
摘 要 不同的數據鏈路之間若要通信必須采取網絡地址協議,D-L(數據鏈路)層根據相同數據流進行分類標記,根據不同D-L層不同的特征進行抽象,D-L的地址被抽象為網絡地址。對IP的上一層,不管二層D-L層使用以太網還是無線局域網或點對點控制,都被當作一種處理手段和方式,因此研究IP分割及自構成處理是主要研究的關鍵技術。
關鍵詞 大規模;IP分割;自構成處理;技術研究
中圖分類號 TP3 文獻標識碼 A 文章編號 1674-6708(2018)224-0133-02
不同D-L傳輸時,它們最大區別就是傳輸單元(MTU:maximum?transmission?unit)不同,在數據包發送和接收過程大小限制一致。MTU值在以太網中是1500?Bytes,傳輸層在某種情況會要求傳送比這些傳輸單元更多字節的DATA,因此需傳輸鏈路上傳送更小的MTU。因此,需要IP?Fragmentation分割IP處理,將大IP?Packet分成更多更小的IP? Packet,需要按照源地址發送長度的數據包。IP以此方式抽象數據鏈路層,使網絡層間通信不必關注底層構建細節,形成真正意義上的大規模IP分割與自構成處理機制策略[ 1 ]。
1 MTU相異性
1.1 數據鏈路的MTU
每種數據鏈路的最大傳輸單元是相異的[ 2 ],因為每個不同類型的數據鏈路使用目的不同,不同目的的數據鏈路可承載的MTU值即不同,它必須受限于被IP抽象化底層的數據鏈路,如表1所示。
1.2 IP報文分割與重組
互聯網絡中的主機均需對IP?Fragmentation處理[ 2 ],Fragmentation通常在網絡中碰到較大報文時無法一次發送而采取的處理機制。Ethernet默認最大傳輸單元為1500字節,那么4555字節的IP數據包無法在承載現有這么大的數據幀通過,因此路由將IP?Packet分成3個Fragmentation發送,這種處理機制需路由根據必要性措施處理,根據此情況進行處理。經過Fragmentation之后的IP? Packet被重組封裝時,由目的主機進行重新整合,路由器能夠Fragmentation,但它自身允許進行重組成完整的包。
2 重組與分割的特殊情況
在D-L鏈路中,根本無法控制IP?Packet是否經過相同路徑發送,Route?waiting,Packet或許已經達目的節點,拆分后的每個包及其有可能在傳輸過程missing,在路徑傳輸過程中即時被重新組裝,如果在下一站在經過路由時,還會面臨繼續被再次分片可能,由此多節點的路由帶來多余的重組負擔,降低網絡傳送效率,因此在終節點端重組分片的IP數據報成為現在的規范。IP首部中的“片偏移”字段表示分片之后每個分片在用戶數據中的相對位置和該分片之后是否仍有后續其他分片,根據這個SEGMENT可以判斷一個IP數據報文是否分片以及當前分片為整個數據報文的起始、中段或是結尾,數字代表數據長度,單位規定為字節。
3 IP路徑最大傳輸單元發現
3.1 解決大規模IP分割“路徑MTU發現”
分片機制的不足在于,路由器的CPU負荷加重,我國對降費提速的要求提出,計算機網絡傳輸帶寬不斷上升,這些高速鏈路對計算機網絡和路由本身提出了更高的要求。國家不僅在帶寬上提出要求,在網絡安全方面更是號召“沒有網絡安全,就沒有國家安全”,那么路由器需要做的其他處理也就越來越多,如“包過濾”。因此,未來是不希望路由進行IP數據包進行分割處理的。當然這是路由CPU自身限制和大規模網絡中間節點路由較多等諸多因素導致的。
綜合以上因素,提出一種新技術“PATH?MTU? DISCOVERY”,代表:發送端源PC到接收端目的PC無需分片是MTU的大小,PATH中存在所有D-L中最小傳輸單元。
UDP路徑最大傳輸單元發送機制:
1)發送IP首部的分割標志設置不分割,路由丟包。
2)有ICMP通知下一次MTU的大小。
3)用戶數據報沒有重發處理,應用在發送下一個消息時會被分割,具體說,指UDP層傳過來的“用戶數據報文首部+用戶數據報文本身”在網絡層分割,對于IP,它并不區分用戶數據包首部和應用的數據。
4)所有的分割到達目標主機后被MTU發現且重組,在傳送用戶數據報層。
路徑最大傳輸單元發現過程:
首先,在源主機發送IP數據報文時,將其首部的分割標志位設置為1,根據這個標志位,路徑中的路由即時遇到需要分割才能處理的大數據包,也不會去分割,而是將報丟棄,之后通過一個ICMP的不可抵達消息將數據鏈路上最大傳輸單元的值發送回源主機。
其次,當發送給同一個目標主機的IP數據包獲得ICMP所通知的最大傳輸單元值以后,將它設置為當前最大傳輸單元。源主機即根據這個MTU進行數據包分割,當數據包被發送到目的主機為止無接收任何網絡控制消息報文時,則認為ICMP所通告的MTU是最優的最大傳輸單元值。當MTU較多時,可以緩存約10分鐘,超過10分鐘后,鏈路上的MTU做新的最大傳輸單元發現,如此反復。
TCP路徑最大傳輸單元發送機制:
首先,根據路徑最大傳輸單元的大小計算出MSS最大長段,根據此情況進行數據報文的發送,在TCP中采用路徑最大傳輸單元發現,IP層則不會再進行各個處理。
1)發送IP首部的分割標志設置為不分割,路由丟包。
2)有互聯網控制消息報文通知下一次最大傳輸單元的大小。
3)根據TCP重傳機制,PACKET會被重傳,TCP負責將data分割成網絡層不會再分割粒度,之后傳給網絡層,此時不再分割處理。
4)無需重組,數據被原樣發送給目的主機TCP? Layer。
注意的是:當網絡安全控制策略產生時,有些區域會限制ICMP的消息接收。而實際是一定會存在這種情況,此時路徑最大傳輸單元發現的功能因此無法正常運行,造成最終用戶不明原因,導致連接不穩定,因此這是網絡管理者需要注意的問題。?
研究發現:最近以太網也可以使用大于1500BYTES的最大傳輸單元,這種方式叫做超長幀的格式JUMPO?FRAME,為了提高大規模服務器主機的通訊速度,采用9KB左右的MTU的情況較多,使用J-F不僅要對應網段的主機,還需要路由、交換支持。在不適用J-F的情況下,經IP隧道也能夠通過路徑中的路由實現,1.5kb以上的MTU通信,避免過多的IP碎片化,通過特殊的路由交換適當擴大MTU是可行的。
3.2 自構成處理中的擁塞控制
1)擁塞避免和慢啟動[ 3 ],傳輸控制發送端使用擁塞避免和慢啟動來抑制向網絡輸送的數據,擁塞窗口的發送方在確認幀之前向網絡發送MAX數據。慢啟動閾值確定慢啟動算法還是擁塞避免算法來控制數據傳送,不清楚環境下,向網絡傳送數據,要求傳出控制協議緩慢的探測網絡進行流量確定,避免大流量使網絡擁塞。
2)快速重傳快速恢復,當地3個確認幀收到時,設置慢啟動閾值=擁塞窗口/2,重傳丟失數據段設置擁塞窗口=慢啟動閾值+3*發送端最大數據段尺寸,對每個接受的重復確認幀,將擁塞窗口增大SMSS,擴充擁塞窗口反應已經離開網絡的附加SEGAMENT,發送一個數據段,如果擁塞窗口和接收的通知窗口的值允許,確認新數據的確認幀到達,設置擁塞窗口值為慢啟動。
4 結論
大規模網絡工程集成技術中需要考慮網絡IP的規劃與分割問題,而自構成處理技術中的路徑MTU發現是網絡系統集成中核心與關鍵的技術之一,隨著網絡系統的升級與發展,技術也在不斷更新,以專業的角度去分析和構建大規模網絡勢在必行,常規的高級網絡規劃設計人員可能在思科、華為等純技術層面沒有任何問題[ 4 ],在考慮基礎網絡核心發展的前沿階段,隨著網絡協議,終端設備與操作系統的升級與發展,勢必回頭看策略是網絡構建人員的響應措施,應該審視當下新理論的發展,需要我們再次去論證和討論如何與現有大規模網絡環境對接、實施與校驗有待研討商榷,理論+實踐的資源挖掘與整合是解決實際大型系統工程問題中必要考慮的問題。
參考文獻
[1]肖融,孫波.途中無重組的隧道MTU機制研究[J].計算機工程與應用,2010(17):92-95,149.
[2]竹下隆史.圖解TCP/IP[M].北京:人民郵電出版社,2013(7).
[3]胡亮.計算機網絡(第2版)[M].北京:高等教育出版社,2008(1).
[4]王亮,唐永林.基于ROS構建大型校園網應用研究[J].情報科學,2017(7):88-95.