鄭 理,蘇 偉,郜 帥
(北京交通大學(xué) 電子信息工程學(xué)院 下一代互聯(lián)網(wǎng)互聯(lián)設(shè)備國家工程實驗室,北京 100044)
基于連接標識的多路徑傳輸
鄭 理,蘇 偉,郜 帥
(北京交通大學(xué) 電子信息工程學(xué)院 下一代互聯(lián)網(wǎng)互聯(lián)設(shè)備國家工程實驗室,北京 100044)
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,多宿主主機越來越普及。多路徑并行傳輸可以充分利用多宿主主機的優(yōu)勢,不僅可以最大限度利用帶寬,提高數(shù)據(jù)吞吐量,而且可以提高容錯率,在一條路徑出現(xiàn)故障時,迅速切換到其他路徑進行數(shù)據(jù)傳輸。文中基于多路徑傳輸以及動態(tài)地址變換的特點,引入了連接標識進行通信。通過建立連接標識與接入標識之間的映射,代替?zhèn)鹘y(tǒng)網(wǎng)絡(luò)依靠五元組進行連接的管理,以更好地適應(yīng)多路徑傳輸。簡述了如何基于流控傳輸協(xié)議實現(xiàn)多路徑傳輸以及動態(tài)地址變換,并定義了連接標識的生成方法。給出了一種在本地建立連接標識與接入標識映射的方法,并闡述了基于連接標識通信的優(yōu)勢:更加適應(yīng)多路徑傳輸;更好地增加傳輸安全性;更好地對連接進行管理等。對不同帶寬以及時延下的吞吐量進行了測試,并與傳統(tǒng)傳輸協(xié)議進行了性能對比。使用連接標識進行多路徑傳輸可以提升性能,更好地支持動態(tài)地址變換,達到身份與位置分離的目的。
連接標識;多路徑傳輸;數(shù)據(jù)傳輸;解析映射
現(xiàn)有的網(wǎng)絡(luò)體系中,傳輸層提供端到端之間的可靠數(shù)據(jù)交互。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,一方面接入技術(shù)多樣化,有線和無線接入技術(shù)得到普及和商用;另一方面接入設(shè)備的成本降低使得一個終端得以配置多個接入網(wǎng)絡(luò)適配器[1]。傳統(tǒng)的傳輸層協(xié)議(如TCP、UDP)只支持單接入設(shè)備進行傳輸,因此不能很好地適應(yīng)多宿主主機的發(fā)展潮流。一些新的傳輸層協(xié)議,如MPTCP、SCTP等,能夠有效利用多條路徑進行傳輸,提高傳輸效率。傳統(tǒng)傳輸協(xié)議中,如果接入設(shè)備發(fā)生了改變,比如由手機3G切換到無線,連接會發(fā)生中斷。在多路徑并行傳輸時,通過添加動態(tài)地址變換功能,使得終端在不同接入網(wǎng)絡(luò)適配器間進行切換時,服務(wù)不會中斷。
現(xiàn)有的傳輸協(xié)議使用源IP,源端口號,目的IP,目的端口號,傳輸協(xié)議這樣的五元組來標識一次連接,使得連接不便于管理,而且與IP地址聯(lián)系緊密,不利于多路徑傳輸時的動態(tài)地址變換。文中引入了連接標識(CID)的概念,基于SCTP協(xié)議,使用連接標識來管理一個連接。使用連接標識來代替原有的五元組,可以更有效地管理連接,并且能適應(yīng)動態(tài)地址變換的特點,也能增強安全性能。
一體化網(wǎng)絡(luò)下的服務(wù)層總體模型[2]如圖1所示。
圖1 一體化網(wǎng)絡(luò)服務(wù)層總體模型
服務(wù)層包括兩次映射,服務(wù)標識到連接標識的映射,以及連接標識到接入標識的映射[3]。在多路徑傳輸下,一個服務(wù)標識對應(yīng)一個連接標識,而連接標識與接入標識的映射關(guān)系可以是一對一,也可以是一對多[4],且這種映射關(guān)系應(yīng)該是可變的。
連接標識用來標識一次特定的連接,具有唯一性與不可變性。即連接標識不同時,表示不同連接,連接標識相同時,即使接入標識發(fā)生變化,連接依然不變。連接標識與連接一一對應(yīng),服務(wù)的提供端與請求端均可通過連接標識查找特定的連接,再通過映射關(guān)系查找對應(yīng)的接入標識,從而完成一次通信過程。
2.1SCTP協(xié)議概述
流傳輸控制協(xié)議(SCTP)是IETF在2000年定義的一個傳輸層協(xié)議。區(qū)別于傳統(tǒng)的TCP協(xié)議,SCTP協(xié)議具有多流、多宿主、四次握手等特點[5]。多宿主屬性使其可以在兩個通信節(jié)點間建立多條傳輸路徑。雖然SCTP支持多宿主,然而在傳輸時只選擇一條主路徑進行數(shù)據(jù)傳遞,并不支持多路徑并行傳輸。一些SCTP的擴展[6-7],在SCTP的協(xié)議上進行改進,使其支持多路徑傳輸。
SCTP報文結(jié)構(gòu)由基本首部和若干載荷塊組成,基本首部包含端口號,驗證標簽和校驗和,載荷塊攜帶控制信息或者載荷數(shù)據(jù)信息。文中在報文的基本首部中添加一個32位的連接標識字段。
2.2基于SCTP的多路徑并行傳輸
多路徑并行傳輸不僅可以最大限度利用帶寬,提高數(shù)據(jù)吞吐量[8],而且可以提高容錯率,當(dāng)一條路徑出現(xiàn)故障時,迅速切換到其他路徑進行數(shù)據(jù)傳輸。在多路徑傳輸模式下,傳輸路徑的選擇與其性能有著密切關(guān)系。經(jīng)過優(yōu)化的選路策略,能夠提高數(shù)據(jù)的吞吐量,并且改善數(shù)據(jù)傳輸中可能出現(xiàn)的亂序問題。
SCTP每個連接下?lián)碛卸鄺l路徑,每個目的傳輸標識可以視為一條路徑,多路徑之間可進行并行傳輸[9],多路徑傳輸采用統(tǒng)一的端口號。
連接最初建立時,端點隨機選擇一條路徑發(fā)送INIT塊。端點在連接建立時通過INIT塊和INIT ACK塊中的可選參數(shù)將本端點的多個接入標識通告給對端。用戶可以選擇將特定的標識通告給對端進行多路徑傳輸,如果沒有指定,端點將本地所有可用的接入標識通告給對端以進行多路徑傳輸。
當(dāng)端點要發(fā)送一個報文時,根據(jù)路徑度量值選擇路徑,將發(fā)送隊列中的報文分發(fā)到該路徑中。多路徑傳輸時,不同路徑間可能存在不同的時延,當(dāng)時延差距較大時,不同路徑傳輸?shù)膱笪牡竭_對端的時間不同,很容易造成亂序問題,因此合理的選路策略是必要的。路徑度量值可以根據(jù)各激活狀態(tài)的路徑的往返時間和擁塞窗口等參數(shù)進行計算[10-12],并以此進行路徑調(diào)度及報文的分發(fā)。
2.3基于SCTP的動態(tài)地址變換
SCTP使用IDCONF塊和IDCONF ACK塊進行動態(tài)地址變換。當(dāng)端點想要增加或刪除自己的接入標識時,應(yīng)發(fā)送IDCONF塊。
IDCONF塊的可選參數(shù)攜帶添加或刪除的接入標識。當(dāng)對端收到IDCONF塊時,首先使用源標識和端口號匹配連接,若匹配不到,使用IDCONF塊標識參數(shù)中的接入標識和端口號匹配連接。這種做法有兩個缺點:首先容易造成無匹配連接,即根據(jù)源標識和IDCONF塊中的接入標識都無法找到匹配連接;其次一個連接對應(yīng)多個接入標識,且接入標識動態(tài)變化,兩者之間的關(guān)系容易發(fā)生變化。因為連接標識和連接是一一對應(yīng)的關(guān)系,若使用連接標識匹配連接,不僅能夠提高查找效率,還能更好地對連接進行管理。
3.1連接標識的生成
連接標識由服務(wù)標識、時間戳和隨機數(shù)構(gòu)成,如圖2所示。
圖2 連接標識的生成
服務(wù)標識是服務(wù)提供者由服務(wù)定義而成,而時間戳和隨機數(shù)是為了防止連接標識沖突。使用CRC32最終生成32位的連接標識。
連接標識由連接發(fā)起者在連接建立之初生成,攜帶在INIT塊中的參數(shù)發(fā)送給對端,INIT塊中還攜帶有本地可用的接入標識。接收端將連接標識以及發(fā)送端的接入標識保存在本地,并建立映射關(guān)系,再發(fā)送攜帶有連接標識以及可用接入標識的INIT ACK塊。
3.2使用連接標識進行多路徑傳輸
連接建立之初,由服務(wù)請求端生成連接標識,并與所有可用的本地接入標識一同攜帶在報文中,告知服務(wù)提供端。服務(wù)提供端將收到的連接標識與接入標識保存在本地,并建立連接標識與對端的接入標識之間的映射關(guān)系。同理,服務(wù)提供端將所有可用的本地接入標識發(fā)送給服務(wù)請求端,服務(wù)請求端在本地建立服務(wù)提供端接入標識與連接標識的映射關(guān)系。
進行通信時,首先檢查報文中攜帶的連接標識是否與本地儲存的連接標識相同,若不同,則丟棄該報文。由于只有服務(wù)提供端和服務(wù)請求端兩者知道連接標識,一定程度上提高了通信安全性。當(dāng)對連接標識進行驗證后,端點使用連接標識查找對應(yīng)的接入標識,使用可用的接入標識作為目的標識,進行多路徑傳輸。
當(dāng)進行地址變換時,端點發(fā)送接入標識刪除或增加的IDCONF塊,接收端對報文進行驗證后,更新本地的映射關(guān)系。由于采用連接標識來標識唯一的連接,因此連接并沒有改變。若采用傳統(tǒng)的五元組來標識一次連接,由于IP地址發(fā)生了變化,因此連接也會中斷。正因為連接標識的使用,連接與接入標識不再有直接關(guān)聯(lián),因此接入標識發(fā)生變化時,連接不發(fā)生改變,通信不會中斷。
3.3連接標識與接入標識映射關(guān)系的建立
連接標識與接入標識的映射關(guān)系可分為兩類:一對一映射與一對多映射[13]。在一對一映射情況下,端點只有一個接入設(shè)備,且每個接入設(shè)備只有一個接入標識,兩個端點間只有一條路徑。在一對多映射情況下,即端點擁有多個接入設(shè)備,多個接入標識對應(yīng)一個連接。
連接標識與接入標識之間的映射可以存儲在獨立于端點的映射服務(wù)器上[14-15],也可以作為一個獨立模塊直接存儲在端點上,文中采用的就是這種方式。
Linux內(nèi)核中,利用一個哈希表結(jié)構(gòu)作為連接列表存儲連接。其中哈希表的鍵值由源端口號和目的端口號生成,同一鍵值下為連接基本信息結(jié)構(gòu)體的鏈表,結(jié)構(gòu)體中包括鏈表結(jié)構(gòu)的本地IP地址列表、鏈表結(jié)構(gòu)的對端IP地址列表、傳輸控制塊等信息。查找時,先根據(jù)端口號查找到特定鍵值的哈希表結(jié)構(gòu),再根據(jù)連接列表中的本地IP地址,對連接基本信息進行遍歷,直到找到特定的連接。
使用連接標識后,端點維護一個哈希表結(jié)構(gòu)的連接列表,儲存該端點的全部連接,哈希表的鍵值為32位的連接標識,哈希表的值為該連接的基本信息,包括該連接的本地接入標識和對端接入標識等,接入標識以鏈表的形式存儲。由于連接標識在生成時就解決了沖突問題,因此只要根據(jù)連接標識,就可以直接從哈希表中找到特定連接,不用根據(jù)IP地址進行鏈表的遍歷。
連接開始時,將該連接插入到連接列表中,具體步驟如下:
(1)生成CID;
(2)創(chuàng)建一個連接信息的結(jié)構(gòu)體,將包括本端和對端的接入標識(從INIT塊和INIT ACK塊中獲得)以鏈表的形式放入結(jié)構(gòu)體中;
(3)將哈希表第CID個位置的值設(shè)置為該結(jié)構(gòu)體;
(4)若步驟(3)中發(fā)生沖突,說明出錯,無法建立連接。
連接結(jié)束后,將該連接從連接列表中刪除,步驟如下:
(1)根據(jù)接收到的報文取得該連接CID;
(2)將哈希表第CID個位置的值設(shè)置為NULL;
(3)若步驟(2)中查找不到哈希表第CID個位置,則說明出錯,忽略該連接終止請求。
進行報文通信的步驟如下:
(1)根據(jù)接收到的報文取得該連接CID;
(2)查找哈希表第CID個位置的連接基本信息;
(3)若步驟(2)中查找不到哈希表第CID個位置,則說明出錯,查找不到匹配的連接,進行無匹配連接的錯誤處理;
(4)遍歷連接基本信息中的對端接入標識鏈表,查找可用的對端接入標識;
(5)根據(jù)路徑選擇算法,選擇其中的一個或多個接入標識進行多路徑傳輸。
通信過程中,若要進行接入標識的變換,步驟如下:
(1)根據(jù)CID找到特定連接,并找到結(jié)構(gòu)體中的對端接入標識鏈表;
(2)插入一個新的連接標識時,直接插入到鏈表的結(jié)尾;
(3)刪除連接標識時,首先遍歷鏈表,找到要刪除的連接標識,刪除特定接入標識;
(4)若步驟(3)中沒找到該連接標識,再進行錯誤處理。
4.1管理連接
由于每個連接擁有唯一的連接標識,因此可以更有效地管理連接。若想要刪除某個連接,只要刪除連接列表中連接標識的條目即可。此外,若想限制最大連接數(shù),只要限制連接標識的生成個數(shù)即可。
由于連接標識和連接一一對應(yīng),通過對連接標識進行管理,可以直接對相應(yīng)的連接進行操作。而傳統(tǒng)的五元組,只要有一個元素不一樣,連接就不一樣,連接并沒有一個直接的身份標識,造成了對連接查找和管理的不變。
4.2增強安全性
沒有填寫連接標識或者連接標識錯誤的報文將會被接收端丟棄。攻擊者必須知道一個合法的連接標識,一定程度上加大了攻擊的難度。除此之外,即使知道了合法的連接標識,對端也會對接入標識進行檢驗,因此攻擊者只有同時知道合法的連接標識和與之對應(yīng)的接入標識,才能對網(wǎng)絡(luò)進行攻擊。連接標識的使用為連接的安全性增加了一道防護,可以一定程度上減少網(wǎng)絡(luò)攻擊。
4.3更加適應(yīng)多路徑傳輸
在傳統(tǒng)的傳輸協(xié)議中,采用五元組區(qū)分一個連接,只有IP地址不一樣,即視為不同的連接。而在多宿主情況下,這個條件不再成立,因為接入標識與連接不再一一對應(yīng),即使接入標識不同,也可能屬于同一個連接。因此,使用五元組來標識一個連接不再合適,而使用連接標識很好地解決了這個問題。使用連接標識后,不管有幾個接入標識,都不影響連接的唯一性。使用動態(tài)地址變換時,由于接入標識發(fā)生改變,而連接并沒有改變,使用連接標識后,不再需要更改接入標識與連接的映射關(guān)系,而是修改與連接標識的映射關(guān)系。
4.4提高性能
傳統(tǒng)的傳輸協(xié)議查找一個連接時,需要先通過IP地址查找到該連接,再通過該連接找到對端IP地址,進行路由,完成報文的通信。而使用連接標識后,省去了通過地址查找連接這一過程。由于查找時間與接入標識的數(shù)量成正比,當(dāng)接入標識過多時,可能造成查找時間過長。此外,使用連接標識還可以降低因為接入標識不正確而無法查找到正確連接的情況。
4.5連接標識的沖突
文中將連接標識存儲在本機,因此可能產(chǎn)生連接標識的沖突,即存在兩個不同連接的連接標識相同的情況。若存在相同的連接標識,則會產(chǎn)生錯誤,導(dǎo)致無法通信。
采用CRC32算法生成連接標識,連接標識的長度為32位,因此產(chǎn)生沖突的可能性為10-5。考慮到在大型網(wǎng)絡(luò)中,服務(wù)提供商可能會存在多個連接,若想要降低連接標識產(chǎn)生沖突的概率,可以改變連接標識的生成算法,增加連接標識的長度。
分別測試帶寬為2 Mb/s、4 Mb/s、8 Mb/s情況下TCP和多路徑傳輸協(xié)議的吞吐量,結(jié)果如圖3所示??梢钥吹剑掏铝侩S著帶寬的增加而逐漸增大。
圖3 不同帶寬下的吞吐量
固定帶寬為4 Mb/s時,分別測試RTT為20 ms、40 ms和80 ms時的吞吐量,結(jié)果如圖4所示??梢钥闯?,隨著時延的增長,吞吐量隨之下降。
圖4 不同RTT下的吞吐量
結(jié)合多路徑傳輸與動態(tài)地址變換,提出了用連接標識來代替?zhèn)鹘y(tǒng)的五元組,用于標識一個唯一的連接。由于接入標識是動態(tài)變化的,原來基于IP地址的通信變?yōu)榱嘶谶B接的通信,更加符合多路徑傳輸?shù)男枨蟆?/p>
文中基于SCTP協(xié)議,給出了連接標識的生成方法以及一種在本地建立連接標識與接入標識映射關(guān)系的方法。使用連接標識進行通信可以增加連接的可控可管性,減少網(wǎng)絡(luò)攻擊,更好地適應(yīng)多路徑傳輸。
[1] Liu Xiaomei,Xiao Li.A survey of multihoming technology in stub networks:current research and open issues[J].IEEE Network,2007,21(3):32-40.
[2] 楊 冬,周華春,張宏科.基于一體化網(wǎng)絡(luò)的普適服務(wù)研究[J].電子學(xué)報,2007,35(4):607-613.
[3] 張宏科,蘇 偉.新網(wǎng)絡(luò)體系基礎(chǔ)研究—一體化網(wǎng)絡(luò)與普適服務(wù)[J].電子學(xué)報,2007,35(4):593-598.
[4] 宋 飛,高德云,張宏科,等.新一代互聯(lián)網(wǎng)中連接標識解析映射研究[J].北京交通大學(xué)學(xué)報:自然科學(xué)版,2010,34(2):38-42.
[5] 白 剛,王重鋼,隆克平,等.流控制傳輸協(xié)議SCTP及其性能分析與應(yīng)用[J].北京郵電大學(xué)學(xué)報,2001,24(4):62-66.
[6] Iyengar J R,Amer P D,Stewart R.Concurrent multipath transfer using SCTP multihoming over independent end-to-end paths[J].IEEE/ACM Transactions on Networking,2006,14(5):951-964.
[7] Liao J,Wang J,Li T,et al.Introducing multipath selection for concurrent multipath transfer in the future internet[J].Computer Networks,2011,55(4):1024-1035.
[8] 符 發(fā),周 星,楊 雄,等.MPTCP與CMT-SCTP多路徑傳輸協(xié)議性能分析[J].計算機工程與應(yīng)用,2013,49(21):79-82.
[9] 劉 鎮(zhèn),譚毓銀,符 發(fā),等.MPTCP與CMT-SCTP擁塞控制機制研究[J].計算機工程,2015,41(4):117-124.
[10] Wu J,Cheng B,Yuen C,et al.Distortion-aware concurrent multipath transfer for mobile video streaming in heterogeneous wireless networks[J].IEEE Transactions on Mobile Computing,2015,14(4):688-701.
[12] 劉杰民,白雪松,王興偉.多路徑并行傳輸中傳輸路徑選擇策略[J].電子與信息學(xué)報,2012,34(6):1521-1524.
[13] 曹 宇,徐明偉.一種按需分配的多路徑傳輸分組調(diào)度算法[J].軟件學(xué)報,2012,23(7):1924-1934.
[14] 薛 淼,高德云,張思東,等.面向下一代網(wǎng)絡(luò)的端到端多路徑傳輸層架構(gòu)[J].通信學(xué)報,2010,31(10):26-35.
[15] 劉 暢,宋 飛,孫 亮,等.基于連接標識的映射通信[J].電子學(xué)報,2012,40(10):1920-1926.
ConcurrentMultipathTransferBasedonConnectionIdentifier
ZHENG Li,SU Wei,GAO Shuai
(National Engineering Laboratory for NGI Interconnection Devices,College of Electronic Information Engineering,Beijing Jiaotong University,Beijing 100044,China)
With the development of network technology,multi-homing host is becoming more and more popular.Concurrent multipath transfer can take full advantage of it,which not only can maximize the use of bandwidth and improve data throughput,but also can improve the fault tolerance.When a path occurs failure,it can quickly switch to other paths for data transmission.Based on the characteristics of multipath transmission and dynamic address translation,the connection identifier is introduced for communication.Instead of the five-tuple,establishing the mapping between the connection identifier and the address identifier can better adapt to multi-path transmission.It describes how to implement multipath transmission and dynamic address translation based on stream control transmission protocol,and defines the generation method of connection identifier.A method is put forward to establish the connection identifier and access identifier mapping locally and the advantages of communication on the basis of connection identifier are also described,including more adaptive to multi-path transmission,better enhancement of transmission security,and management of connections.The throughput under different bandwidth and delay is tested,and the performance is compared with the traditional transmission protocol.Multi-path transmission using the connection identifier can improve performance and better support dynamic address translation,achieving the purpose of identity and location separation.
connection identifier;concurrent multipath transfer;data transfer;analytic mapping
2016-11-23
2017-03-15 < class="emphasis_bold">網(wǎng)絡(luò)出版時間
時間:2017-07-19
國家“863”高技術(shù)發(fā)展計劃項目(2015AA016101);北京市科技新星計劃(Z151100000315052)
鄭 理(1992-),女,碩士研究生,研究方向為下一代互聯(lián)網(wǎng)理論與技術(shù);蘇 偉,博士,教授,研究方向為下一代互聯(lián)網(wǎng)理論與技術(shù);郜 帥,博士,副教授,研究方向為下一代互聯(lián)網(wǎng)理論與技術(shù)。
http://kns.cnki.net/kcms/detail/61.1450.TP.20170719.1113.086.html
TP393
A
1673-629X(2017)11-0024-04
10.3969/j.issn.1673-629X.2017.11.005