謝 明,崔 丹,瞿 輝,顏浩洋,王建兵
(1.中國人民解放軍第93216部隊,北京 100085;2.北京航天晨信科技有限責任公司,北京 100000;3.重慶金美通信有限責任公司,重慶 400030)
TCP/IP的概念產(chǎn)生于上世紀70年代,并在上世紀80年代得到了迅速的完善和發(fā)展。在上世紀90年代,TCP/IP協(xié)議已毫無爭議地確立了在數(shù)據(jù)通信協(xié)議中的主導地位。至今,TCP/IP協(xié)議已經(jīng)是數(shù)據(jù)通信標準的代名詞,是唯一可以通達世界范圍內(nèi)Internet聯(lián)接的通信協(xié)議,也是任何數(shù)據(jù)用戶終端最先支持的協(xié)議標準。隨著網(wǎng)絡(luò)通信容量的不斷增加和計算機信息處理能力的不斷提高,TCP/IP協(xié)議正在成為“唯一”的選擇,所謂“Everything Over IP”。
隨著計算機網(wǎng)絡(luò)技術(shù)的發(fā)展,整個社會都發(fā)生了質(zhì)的改變。各項技術(shù)不斷涌出,衛(wèi)星網(wǎng)絡(luò)、云計算、大數(shù)據(jù)相繼出現(xiàn),人們對互聯(lián)網(wǎng)業(yè)務(wù)的需求也在不斷增加,以互聯(lián)網(wǎng)為代表的計算機行業(yè)在各個領(lǐng)域中都得到了廣泛的應用,改變了人們的工作方式和生活方式。現(xiàn)代社會的發(fā)展已經(jīng)離不開網(wǎng)絡(luò),互聯(lián)網(wǎng)、大數(shù)據(jù)滲透在社會的各個角落,隨之而來的是網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)目煽啃缘玫搅巳藗兊闹匾暋腎P協(xié)議的角度出發(fā),分析IP協(xié)議與因特網(wǎng)可靠性之間存在的聯(lián)系,探究其中存在的問題,并提出對應的策略。
IP協(xié)議為面向無連接且不可靠的傳輸數(shù)據(jù),提供一種從源端到目的端的方法,按照用戶的要求為用戶提供從源端機到目的機的數(shù)據(jù)傳輸。IP的傳輸方式是盡力而為的逐跳轉(zhuǎn)發(fā),IP傳輸不能保證數(shù)據(jù)能到達目的地。IP數(shù)據(jù)的可靠傳輸一般是依靠數(shù)據(jù)終端之間建立TCP(Transmission Control Protocol,傳輸控制協(xié)議)連接,利用TCP的滑動窗口和數(shù)據(jù)重傳機制來實現(xiàn)。
解決UDP非連接類業(yè)務(wù)(包括視頻、話音等實時數(shù)據(jù)流)的可靠傳輸一般依靠3類技術(shù):
鏈路聚合技術(shù)在2000年IEEE802.3ad完成標準化,后由802.1AX標準對該技術(shù)的模型、操作、控制協(xié)議以及管理進行全面規(guī)范。該技術(shù)可以將數(shù)據(jù)終端設(shè)備之間的多條全雙工點到點鏈路聚合起來形成一個鏈路聚合組(LAG)。上層功能模塊則可以將鏈路聚合組當成一條邏輯鏈路使用,從而達到平滑擴展鏈路帶寬的目的,同時LAG組的物理鏈路之間互為備份提高了鏈路可靠性[1]。
相關(guān)技術(shù)為MSTP(Multi-Service Transport Platform,多業(yè)務(wù)傳送平臺)和PTN(Packet Transport Network,分組傳送網(wǎng))。MSTP設(shè)備間具有工作光纖和備用光纖兩條通路,正常情況下在工作光纖傳輸業(yè)務(wù)數(shù)據(jù),網(wǎng)管模塊通過鏈路層的管理信息可及時發(fā)現(xiàn)工作光纖鏈路通斷情況并及時(50 ms以內(nèi))切換到備用光纖[2]。PTN利用路由方法計算出源到目的的兩條路徑(工作路徑和備份路徑),利用標簽轉(zhuǎn)發(fā)的方式建立隧道通路,正常情況下在工作路徑上傳輸業(yè)務(wù)數(shù)據(jù),當工作路徑故障時(50 ms以內(nèi))迅速切換到備份路徑[3]。
如ATM(異步傳輸模式)系統(tǒng)的APS(自動轉(zhuǎn)換保護)備份,通過配置保護鏈路,提供工作鏈路和保護鏈路的故障檢測和倒換機制,實現(xiàn)鏈路備份[4]。
分析此3類技術(shù),技術(shù)1是基于單設(shè)備級,技術(shù)2是基于物理鏈路層級,都未實現(xiàn)跨越三層網(wǎng)絡(luò)來實現(xiàn)網(wǎng)間的可靠數(shù)據(jù)傳輸。技術(shù)3是依靠ATM(異步傳輸模式)的特殊性,建立從源到目的的兩條端到端鏈路,依靠APS協(xié)議實現(xiàn)路徑切換。該技術(shù)必須依賴ATM(異步傳輸模式)有連接的特性,對于無連接的IP傳輸需要疊加更多的技術(shù),例如MPLS(多協(xié)議標簽交換)來實現(xiàn)備份路徑,MPLS的標簽交換與IP數(shù)據(jù)的依靠路由表(最長掩碼匹配)交換也有本質(zhì)的區(qū)別。
除了上述的3種技術(shù)之外,因為SDN(Software Define Network,軟件定義網(wǎng)絡(luò))技術(shù)的興起,有了更多的方法可以實現(xiàn)可靠IP數(shù)據(jù)傳輸。例如通過獲取鏈路延遲,并在鏈路下游交換機利用時序數(shù)據(jù)預測進行故障檢測,同時基于備用路徑預先規(guī)劃與故障信息廣播的快速重路由方法來實現(xiàn)故障恢復[5]。SDN控制器計算路徑時也必須依賴SPF(最短路徑優(yōu)先)算法進行路徑計算,不能脫離路由協(xié)議或者路由算法單獨形成備份路徑的IP數(shù)據(jù)傳輸。
針對現(xiàn)有三層交換機的架構(gòu),形成如下的設(shè)計要求:
(1)基本要求:不改變現(xiàn)有設(shè)備的硬件狀態(tài),僅依靠更改三層交換機的軟件(含業(yè)務(wù)板FPGA程序)來實現(xiàn)業(yè)務(wù)備份傳輸。
(2)路由要求:不改變路由機制及處理流程。
(3)信道要求:無線信道作為備份鏈路,擴大業(yè)務(wù)傳輸?shù)木嚯x。
數(shù)據(jù)需要復制后通過無線信道備份傳輸。在數(shù)據(jù)源的3個地方可以進行數(shù)據(jù)復制。
(1)業(yè)務(wù)單元:業(yè)務(wù)數(shù)據(jù)進入三層交換機的第一塊單元板,需要業(yè)務(wù)單元FPGA增加讀寫操作,能完成線速轉(zhuǎn)發(fā),不影響傳輸性能。
(2)交換單元:業(yè)務(wù)數(shù)據(jù)進行交換及路由的單元板,需要利用交換單元的鏡像功能,使用鏡像功能配置復雜,該資源被占用后影響數(shù)據(jù)功能調(diào)試。
(3)主控單元:以軟件轉(zhuǎn)發(fā)的方式進行備份傳輸,傳輸時延指標將低于硬件轉(zhuǎn)發(fā)的方式,同時因為要在內(nèi)核態(tài)處理數(shù)據(jù),增加了操作系統(tǒng)的不穩(wěn)定性。
分析數(shù)據(jù)在中繼節(jié)點進行復制的可行性。可以利用交換網(wǎng)絡(luò)“COPY to CPU”的功能將轉(zhuǎn)發(fā)數(shù)據(jù)復制給主控單元CPU,如果主控CPU將此數(shù)據(jù)進行備份傳輸,那么經(jīng)過多少個中繼節(jié)點,目的節(jié)點就會收到多少個復制的數(shù)據(jù)。即同一份數(shù)據(jù)在無線信道被多次發(fā)送,會超出無線信道的容量,也會超出終端節(jié)點冗余緩存的容量。
如果節(jié)點之間無法直接形成無線鄰居關(guān)系就需要無線信道具有ADHOC網(wǎng)絡(luò)的中繼功能,便于三層交換機選擇備份數(shù)據(jù)僅經(jīng)過一次無線信道進行傳輸,直接到達目的節(jié)點。
備份傳輸將產(chǎn)生多余的數(shù)據(jù),需要在三層交換機內(nèi)部進行冗余數(shù)據(jù)處理。冗余數(shù)據(jù)出現(xiàn)在業(yè)務(wù)單元。如圖1所示,業(yè)務(wù)單元可能收到兩份同樣的數(shù)據(jù),一份來自有線接口,一份來自無線接口。兩份數(shù)據(jù)經(jīng)過交換網(wǎng)絡(luò)的三層轉(zhuǎn)發(fā)后都將進入業(yè)務(wù)單元的FPGA進行處理。判斷是否為同一個業(yè)務(wù)數(shù)據(jù)的依據(jù)是五元組:IP序號、IP協(xié)議類型、源IP地址、目的IP地址、UDP目的端口號。業(yè)務(wù)單元的FPGA根據(jù)五元組在緩存中進行檢索,如果未匹配,該數(shù)據(jù)包可傳輸?shù)缴衔粰C,同時緩存該五元組。如果匹配則不處理該數(shù)據(jù)。
圖1 業(yè)務(wù)單元處理冗余數(shù)據(jù)
數(shù)據(jù)從源頭排隊進行傳輸,有線信道傳輸速度快,無線信道傳輸速度慢,當從無線信道收到數(shù)據(jù)后業(yè)務(wù)單元FPGA需要查找緩存空間判斷是否收到過數(shù)據(jù),此段時間有線信道收到的數(shù)據(jù)個數(shù)n即為基本的緩存空間大小。
緩存大小的設(shè)定需要考慮兩個因素:單位時間內(nèi)數(shù)據(jù)業(yè)務(wù)的發(fā)送頻次、無線信道傳輸一跳業(yè)務(wù)經(jīng)過的時間。緩存大小的公式設(shè)定:單位時間內(nèi)數(shù)據(jù)業(yè)務(wù)的發(fā)送頻次*無線信道傳輸一跳業(yè)務(wù)經(jīng)過的時間。
假如全網(wǎng)每秒業(yè)務(wù)傳輸320次,無線信道傳輸一跳經(jīng)過的時間是600 ms,即全網(wǎng)環(huán)境下公式計算結(jié)果為:320次/s*600 ms=192次。考慮到留足保護空間,防止緩存溢出,一般取公式計算結(jié)果的3倍大小作為最終的緩存大小設(shè)定,即192*3=576。
因為業(yè)務(wù)報文五元組中的關(guān)鍵字段是IP報頭中的序號,該字段占用2個字節(jié)共65 535的大小。如果緩存大小取得太大,會導致當序號翻轉(zhuǎn)時被業(yè)務(wù)單元的FPGA誤認為重復報文,因此緩存大小的最佳取值區(qū)間為576~6 500,占到IP序號的1/10以下。
如圖2所示,當無線信道路由切換到有線信道路由時,因為此時路由是無縫切換,前面經(jīng)過無線信道傳輸?shù)臄?shù)據(jù)包可能后于后面經(jīng)過有線信道傳輸?shù)臄?shù)據(jù)包,導致數(shù)據(jù)亂序。亂序數(shù)據(jù)需要終端處理,否則將直接丟棄。
圖2 亂序原因分析
數(shù)據(jù)除了正常的三層交換流程之外,需要在業(yè)務(wù)單元的FPGA復制一份,在以太網(wǎng)幀“類型”字段的前面加入4字節(jié)的“VLAN標簽”字段,將VLAN標簽賦值為0×8100 00FF。如圖3所示,在交換網(wǎng)絡(luò)側(cè)配置交換策略,對此VLAN接口的數(shù)據(jù)進行二層轉(zhuǎn)發(fā)到無線接口。
圖3 單播業(yè)務(wù)上行執(zhí)行方案
下行數(shù)據(jù)需要在業(yè)務(wù)單元的FPGA進行冗余處理,處理方法如前文所述,取出數(shù)據(jù)的五元組作為索引進行查表,如果是新數(shù)據(jù)則對外發(fā)送并留存;如果查表成功,說明是已有數(shù)據(jù),直接丟棄即可。
數(shù)據(jù)經(jīng)過有線信道傳輸,需要在目的節(jié)點的業(yè)務(wù)單元進行一次去冗余的查表處理。分析進行一次去冗余查表處理需要的時間。
檢索一次需要512個時鐘周期,加上讀取信息的時間,處理一個數(shù)據(jù)包預計會增加530個時鐘周期。業(yè)務(wù)單元板如果采用66 MHz時鐘,即增加530*15.2 ns=8 056 ns。即數(shù)據(jù)經(jīng)過冗余處理需要增加8μs。
通過這些方法的組合可以在無線信道一跳可達的范圍內(nèi)部署IP三層交換網(wǎng)絡(luò),使得IP數(shù)據(jù)可以通過無線信道進行備份傳輸達到可靠傳輸?shù)哪康模斢芯€信道路由變化時不會影響無線信道的IP數(shù)據(jù)傳輸,從而保證了IP數(shù)據(jù)的可達性可以不依賴于路由協(xié)議指定的路徑。有線信道和無線信道互為備份關(guān)系,從而提高了整個IP數(shù)據(jù)傳輸系統(tǒng)的可靠性。