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