王亮 高曉佳 王宏國 佟冬
摘要 不同的數(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ò)地址。對IP的上一層,不管二層D-L層使用以太網(wǎng)還是無線局域網(wǎng)或點(diǎn)對點(diǎn)控制,都被當(dāng)作一種處理手段和方式,大規(guī)模網(wǎng)絡(luò)技術(shù)的研究是當(dāng)前研究的熱點(diǎn)話題,對未來人工智能、大數(shù)據(jù)運(yùn)算、云服務(wù)技術(shù)等均有重要的意義和作用,如何將大規(guī)模網(wǎng)絡(luò)運(yùn)用好,是掌握各個(gè)關(guān)鍵主流技術(shù)的基石,因此研究IP分割及自構(gòu)成處理是主要研究的關(guān)鍵技術(shù)。
【關(guān)鍵詞】大規(guī)模 IP分割 自構(gòu)成處理 技術(shù)研究
不同D-L傳輸時(shí),它們最大區(qū)別就是傳輸單元( MTU:maximum transmission unit)不同,在數(shù)據(jù)包發(fā)送和接收過程大小限制一致。MTU值在以太網(wǎng)中是1500 Bytes,傳輸層在某種情況會要求傳送比這些傳輸單元更多字節(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ī)均需對IPFragmentation處理2,F(xiàn)ragmentation通常在網(wǎng)絡(luò)中碰到較大報(bào)文時(shí)無法一次發(fā)送而采取的處理機(jī)制。Ethernet默認(rèn)最大傳輸單元為1 500字節(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í),還會面臨繼續(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ù)中的相對位置和該分片之后是否仍有后續(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ī)制的不足在于2,路由器的CPU負(fù)荷加重,我國對降費(fèi)提速的要求提出,計(jì)算機(jī)網(wǎng)絡(luò)傳輸帶寬不斷上升,這些高速鏈路對計(jì)算機(jī)網(wǎng)絡(luò)和路由本身提出了更高的要求。國家不僅在帶寬上提出要求,在網(wǎng)絡(luò)安全方面更是號召“沒有網(wǎng)絡(luò)安全,就沒有國家安全”,那么路由器需要做的其他處理也就越來越多,如“包過濾”。因此,未來是不希望路由進(jìn)行IP數(shù)據(jù)包進(jìn)行分割處理的。當(dāng)然這是路由CPU自身限制和大規(guī)模網(wǎng)絡(luò)中間節(jié)點(diǎn)路由較多等諸多因素導(dǎo)致的。
綜合以上因素,提出一種新技術(shù)“PATHMTU 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í)會被分割,具體說,指UDP層傳過來的“用戶數(shù)據(jù)報(bào)文首部+用戶數(shù)據(jù)報(bào)文本身”在網(wǎng)絡(luò)層分割,對于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í)2,將其首部的分割標(biāo)志位設(shè)置為1,根據(jù)這個(gè)標(biāo)志位,路徑中的路由即時(shí)遇到需要分割才能處理的大數(shù)據(jù)包,也不會去分割,而是將報(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層則不會再進(jìn)行各個(gè)處理。
(1)發(fā)送IP首部的分割標(biāo)志設(shè)置為不分割,路由丟包4。
(2)有互聯(lián)網(wǎng)控制消息報(bào)文通知下一次最大傳輸單元的大小。
(3)根據(jù)TCP重傳機(jī)制,PACKET會被重傳,TCP負(fù)責(zé)將data分割成網(wǎng)絡(luò)層不會再分割粒度,之后傳給網(wǎng)絡(luò)層,此時(shí)不再分割處理。
(4)無需重組,數(shù)據(jù)被原樣發(fā)送給目的主機(jī)TCP Layer。
注意的是:當(dāng)網(wǎng)絡(luò)安全控制策略產(chǎn)生時(shí),有些區(qū)域會限制ICMP的消息接收。而實(shí)際
是一定會存在這種情況,此時(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不僅要對應(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)擁塞避免和慢啟動3,傳輸控制發(fā)送端使用擁塞避免和慢啟動來抑制向網(wǎng)絡(luò)輸送的數(shù)據(jù),擁塞窗口的發(fā)送方在確認(rèn)幀之前向網(wǎng)絡(luò)發(fā)送MAX數(shù)據(jù)。慢啟動閩值確定慢啟動算法還是擁塞避免算法來控制數(shù)據(jù)傳送,不清楚環(huán)境下,向網(wǎng)絡(luò)傳送數(shù)據(jù),要求傳出控制協(xié)議緩慢的探測網(wǎng)絡(luò)進(jìn)行流量確定,避免大流量使網(wǎng)絡(luò)擁塞。
(2)快速重傳快速恢復(fù),當(dāng)?shù)?個(gè)確認(rèn)幀收到時(shí),設(shè)置慢啟動閾值=擁塞窗口/2,重傳丟失數(shù)據(jù)段設(shè)置擁塞窗口=慢啟動閡值+3*發(fā)送端最大數(shù)據(jù)段尺寸,對每個(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è)置擁塞窗口值為慢啟動。
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)的升級與發(fā)展,技術(shù)也在不斷更新,以專業(yè)的角度去分析和構(gòu)建大規(guī)模網(wǎng)絡(luò)勢在必行,常規(guī)的高級網(wǎng)絡(luò)規(guī)劃設(shè)計(jì)人員可能在思科、華為等純技術(shù)層面沒有任何問題4,在考慮基礎(chǔ)網(wǎng)絡(luò)核心發(fā)展的前沿階段,隨著網(wǎng)絡(luò)協(xié)議,終端設(shè)備與操作系統(tǒng)的升級與發(fā)展,勢必回頭看策略是網(wǎng)絡(luò)構(gòu)建人員的響應(yīng)措施,應(yīng)該審視當(dāng)下新理論的發(fā)展,需要我們再次去論證和討論如何與現(xiàn)有大規(guī)模網(wǎng)絡(luò)環(huán)境對接、實(shí)施與校驗(yàn)有待研討商榷,理論+實(shí)踐的資源挖掘與整合是解決實(shí)際大型系統(tǒng)工程問題中必要考慮的問題。
參考文獻(xiàn)
[1]胡雪.協(xié)同創(chuàng)新視角下高??萍汲晒D(zhuǎn)化影響模式研究[J].長春師范大學(xué)學(xué)報(bào),2018 (09):118-120.
[2]肖融,孫波,途中無重組的隧道MTU機(jī)制研究[J].計(jì)算機(jī)工程與應(yīng)用,2010 (17): 92-95+149.
[3]竹下隆史,圖解TCP/IP [M],人民郵電出版社,2013 (07).
[4]胡亮,計(jì)算機(jī)網(wǎng)絡(luò)(第2版)[M],高等教育出版社,2008 (01).
[5]王亮,唐永林,基于ROS構(gòu)建大型.校園網(wǎng)應(yīng)用研究[J].情報(bào)科學(xué),2017 (07): 88-95