鄭 理,蘇 偉,郜 帥
(北京交通大學 電子信息工程學院 下一代互聯網互聯設備國家工程實驗室,北京 100044)
基于連接標識的多路徑傳輸
鄭 理,蘇 偉,郜 帥
(北京交通大學 電子信息工程學院 下一代互聯網互聯設備國家工程實驗室,北京 100044)
隨著網絡技術的發(fā)展,多宿主主機越來越普及。多路徑并行傳輸可以充分利用多宿主主機的優(yōu)勢,不僅可以最大限度利用帶寬,提高數據吞吐量,而且可以提高容錯率,在一條路徑出現故障時,迅速切換到其他路徑進行數據傳輸。文中基于多路徑傳輸以及動態(tài)地址變換的特點,引入了連接標識進行通信。通過建立連接標識與接入標識之間的映射,代替?zhèn)鹘y網絡依靠五元組進行連接的管理,以更好地適應多路徑傳輸。簡述了如何基于流控傳輸協議實現多路徑傳輸以及動態(tài)地址變換,并定義了連接標識的生成方法。給出了一種在本地建立連接標識與接入標識映射的方法,并闡述了基于連接標識通信的優(yōu)勢:更加適應多路徑傳輸;更好地增加傳輸安全性;更好地對連接進行管理等。對不同帶寬以及時延下的吞吐量進行了測試,并與傳統傳輸協議進行了性能對比。使用連接標識進行多路徑傳輸可以提升性能,更好地支持動態(tài)地址變換,達到身份與位置分離的目的。
連接標識;多路徑傳輸;數據傳輸;解析映射
現有的網絡體系中,傳輸層提供端到端之間的可靠數據交互。隨著網絡技術的發(fā)展,一方面接入技術多樣化,有線和無線接入技術得到普及和商用;另一方面接入設備的成本降低使得一個終端得以配置多個接入網絡適配器[1]。傳統的傳輸層協議(如TCP、UDP)只支持單接入設備進行傳輸,因此不能很好地適應多宿主主機的發(fā)展潮流。一些新的傳輸層協議,如MPTCP、SCTP等,能夠有效利用多條路徑進行傳輸,提高傳輸效率。傳統傳輸協議中,如果接入設備發(fā)生了改變,比如由手機3G切換到無線,連接會發(fā)生中斷。在多路徑并行傳輸時,通過添加動態(tài)地址變換功能,使得終端在不同接入網絡適配器間進行切換時,服務不會中斷。
現有的傳輸協議使用源IP,源端口號,目的IP,目的端口號,傳輸協議這樣的五元組來標識一次連接,使得連接不便于管理,而且與IP地址聯系緊密,不利于多路徑傳輸時的動態(tài)地址變換。文中引入了連接標識(CID)的概念,基于SCTP協議,使用連接標識來管理一個連接。使用連接標識來代替原有的五元組,可以更有效地管理連接,并且能適應動態(tài)地址變換的特點,也能增強安全性能。
一體化網絡下的服務層總體模型[2]如圖1所示。

圖1 一體化網絡服務層總體模型
服務層包括兩次映射,服務標識到連接標識的映射,以及連接標識到接入標識的映射[3]。在多路徑傳輸下,一個服務標識對應一個連接標識,而連接標識與接入標識的映射關系可以是一對一,也可以是一對多[4],且這種映射關系應該是可變的。
連接標識用來標識一次特定的連接,具有唯一性與不可變性。即連接標識不同時,表示不同連接,連接標識相同時,即使接入標識發(fā)生變化,連接依然不變。連接標識與連接一一對應,服務的提供端與請求端均可通過連接標識查找特定的連接,再通過映射關系查找對應的接入標識,從而完成一次通信過程。
2.1SCTP協議概述
流傳輸控制協議(SCTP)是IETF在2000年定義的一個傳輸層協議。區(qū)別于傳統的TCP協議,SCTP協議具有多流、多宿主、四次握手等特點[5]。多宿主屬性使其可以在兩個通信節(jié)點間建立多條傳輸路徑。雖然SCTP支持多宿主,然而在傳輸時只選擇一條主路徑進行數據傳遞,并不支持多路徑并行傳輸。一些SCTP的擴展[6-7],在SCTP的協議上進行改進,使其支持多路徑傳輸。
SCTP報文結構由基本首部和若干載荷塊組成,基本首部包含端口號,驗證標簽和校驗和,載荷塊攜帶控制信息或者載荷數據信息。文中在報文的基本首部中添加一個32位的連接標識字段。
2.2基于SCTP的多路徑并行傳輸
多路徑并行傳輸不僅可以最大限度利用帶寬,提高數據吞吐量[8],而且可以提高容錯率,當一條路徑出現故障時,迅速切換到其他路徑進行數據傳輸。在多路徑傳輸模式下,傳輸路徑的選擇與其性能有著密切關系。經過優(yōu)化的選路策略,能夠提高數據的吞吐量,并且改善數據傳輸中可能出現的亂序問題。
SCTP每個連接下擁有多條路徑,每個目的傳輸標識可以視為一條路徑,多路徑之間可進行并行傳輸[9],多路徑傳輸采用統一的端口號。
連接最初建立時,端點隨機選擇一條路徑發(fā)送INIT塊。端點在連接建立時通過INIT塊和INIT ACK塊中的可選參數將本端點的多個接入標識通告給對端。用戶可以選擇將特定的標識通告給對端進行多路徑傳輸,如果沒有指定,端點將本地所有可用的接入標識通告給對端以進行多路徑傳輸。
當端點要發(fā)送一個報文時,根據路徑度量值選擇路徑,將發(fā)送隊列中的報文分發(fā)到該路徑中。多路徑傳輸時,不同路徑間可能存在不同的時延,當時延差距較大時,不同路徑傳輸的報文到達對端的時間不同,很容易造成亂序問題,因此合理的選路策略是必要的。路徑度量值可以根據各激活狀態(tài)的路徑的往返時間和擁塞窗口等參數進行計算[10-12],并以此進行路徑調度及報文的分發(fā)。
2.3基于SCTP的動態(tài)地址變換
SCTP使用IDCONF塊和IDCONF ACK塊進行動態(tài)地址變換。當端點想要增加或刪除自己的接入標識時,應發(fā)送IDCONF塊。
IDCONF塊的可選參數攜帶添加或刪除的接入標識。當對端收到IDCONF塊時,首先使用源標識和端口號匹配連接,若匹配不到,使用IDCONF塊標識參數中的接入標識和端口號匹配連接。這種做法有兩個缺點:首先容易造成無匹配連接,即根據源標識和IDCONF塊中的接入標識都無法找到匹配連接;其次一個連接對應多個接入標識,且接入標識動態(tài)變化,兩者之間的關系容易發(fā)生變化。因為連接標識和連接是一一對應的關系,若使用連接標識匹配連接,不僅能夠提高查找效率,還能更好地對連接進行管理。
3.1連接標識的生成
連接標識由服務標識、時間戳和隨機數構成,如圖2所示。

圖2 連接標識的生成
服務標識是服務提供者由服務定義而成,而時間戳和隨機數是為了防止連接標識沖突。使用CRC32最終生成32位的連接標識。
連接標識由連接發(fā)起者在連接建立之初生成,攜帶在INIT塊中的參數發(fā)送給對端,INIT塊中還攜帶有本地可用的接入標識。接收端將連接標識以及發(fā)送端的接入標識保存在本地,并建立映射關系,再發(fā)送攜帶有連接標識以及可用接入標識的INIT ACK塊。
3.2使用連接標識進行多路徑傳輸
連接建立之初,由服務請求端生成連接標識,并與所有可用的本地接入標識一同攜帶在報文中,告知服務提供端。服務提供端將收到的連接標識與接入標識保存在本地,并建立連接標識與對端的接入標識之間的映射關系。同理,服務提供端將所有可用的本地接入標識發(fā)送給服務請求端,服務請求端在本地建立服務提供端接入標識與連接標識的映射關系。
進行通信時,首先檢查報文中攜帶的連接標識是否與本地儲存的連接標識相同,若不同,則丟棄該報文。由于只有服務提供端和服務請求端兩者知道連接標識,一定程度上提高了通信安全性。當對連接標識進行驗證后,端點使用連接標識查找對應的接入標識,使用可用的接入標識作為目的標識,進行多路徑傳輸。
當進行地址變換時,端點發(fā)送接入標識刪除或增加的IDCONF塊,接收端對報文進行驗證后,更新本地的映射關系。由于采用連接標識來標識唯一的連接,因此連接并沒有改變。若采用傳統的五元組來標識一次連接,由于IP地址發(fā)生了變化,因此連接也會中斷。正因為連接標識的使用,連接與接入標識不再有直接關聯,因此接入標識發(fā)生變化時,連接不發(fā)生改變,通信不會中斷。
3.3連接標識與接入標識映射關系的建立
連接標識與接入標識的映射關系可分為兩類:一對一映射與一對多映射[13]。在一對一映射情況下,端點只有一個接入設備,且每個接入設備只有一個接入標識,兩個端點間只有一條路徑。在一對多映射情況下,即端點擁有多個接入設備,多個接入標識對應一個連接。
連接標識與接入標識之間的映射可以存儲在獨立于端點的映射服務器上[14-15],也可以作為一個獨立模塊直接存儲在端點上,文中采用的就是這種方式。
Linux內核中,利用一個哈希表結構作為連接列表存儲連接。其中哈希表的鍵值由源端口號和目的端口號生成,同一鍵值下為連接基本信息結構體的鏈表,結構體中包括鏈表結構的本地IP地址列表、鏈表結構的對端IP地址列表、傳輸控制塊等信息。查找時,先根據端口號查找到特定鍵值的哈希表結構,再根據連接列表中的本地IP地址,對連接基本信息進行遍歷,直到找到特定的連接。
使用連接標識后,端點維護一個哈希表結構的連接列表,儲存該端點的全部連接,哈希表的鍵值為32位的連接標識,哈希表的值為該連接的基本信息,包括該連接的本地接入標識和對端接入標識等,接入標識以鏈表的形式存儲。由于連接標識在生成時就解決了沖突問題,因此只要根據連接標識,就可以直接從哈希表中找到特定連接,不用根據IP地址進行鏈表的遍歷。
連接開始時,將該連接插入到連接列表中,具體步驟如下:
(1)生成CID;
(2)創(chuàng)建一個連接信息的結構體,將包括本端和對端的接入標識(從INIT塊和INIT ACK塊中獲得)以鏈表的形式放入結構體中;
(3)將哈希表第CID個位置的值設置為該結構體;
(4)若步驟(3)中發(fā)生沖突,說明出錯,無法建立連接。
連接結束后,將該連接從連接列表中刪除,步驟如下:
(1)根據接收到的報文取得該連接CID;
(2)將哈希表第CID個位置的值設置為NULL;
(3)若步驟(2)中查找不到哈希表第CID個位置,則說明出錯,忽略該連接終止請求。
進行報文通信的步驟如下:
(1)根據接收到的報文取得該連接CID;
(2)查找哈希表第CID個位置的連接基本信息;
(3)若步驟(2)中查找不到哈希表第CID個位置,則說明出錯,查找不到匹配的連接,進行無匹配連接的錯誤處理;
(4)遍歷連接基本信息中的對端接入標識鏈表,查找可用的對端接入標識;
(5)根據路徑選擇算法,選擇其中的一個或多個接入標識進行多路徑傳輸。
通信過程中,若要進行接入標識的變換,步驟如下:
(1)根據CID找到特定連接,并找到結構體中的對端接入標識鏈表;
(2)插入一個新的連接標識時,直接插入到鏈表的結尾;
(3)刪除連接標識時,首先遍歷鏈表,找到要刪除的連接標識,刪除特定接入標識;
(4)若步驟(3)中沒找到該連接標識,再進行錯誤處理。
4.1管理連接
由于每個連接擁有唯一的連接標識,因此可以更有效地管理連接。若想要刪除某個連接,只要刪除連接列表中連接標識的條目即可。此外,若想限制最大連接數,只要限制連接標識的生成個數即可。
由于連接標識和連接一一對應,通過對連接標識進行管理,可以直接對相應的連接進行操作。而傳統的五元組,只要有一個元素不一樣,連接就不一樣,連接并沒有一個直接的身份標識,造成了對連接查找和管理的不變。
4.2增強安全性
沒有填寫連接標識或者連接標識錯誤的報文將會被接收端丟棄。攻擊者必須知道一個合法的連接標識,一定程度上加大了攻擊的難度。除此之外,即使知道了合法的連接標識,對端也會對接入標識進行檢驗,因此攻擊者只有同時知道合法的連接標識和與之對應的接入標識,才能對網絡進行攻擊。連接標識的使用為連接的安全性增加了一道防護,可以一定程度上減少網絡攻擊。
4.3更加適應多路徑傳輸
在傳統的傳輸協議中,采用五元組區(qū)分一個連接,只有IP地址不一樣,即視為不同的連接。而在多宿主情況下,這個條件不再成立,因為接入標識與連接不再一一對應,即使接入標識不同,也可能屬于同一個連接。因此,使用五元組來標識一個連接不再合適,而使用連接標識很好地解決了這個問題。使用連接標識后,不管有幾個接入標識,都不影響連接的唯一性。使用動態(tài)地址變換時,由于接入標識發(fā)生改變,而連接并沒有改變,使用連接標識后,不再需要更改接入標識與連接的映射關系,而是修改與連接標識的映射關系。
4.4提高性能
傳統的傳輸協議查找一個連接時,需要先通過IP地址查找到該連接,再通過該連接找到對端IP地址,進行路由,完成報文的通信。而使用連接標識后,省去了通過地址查找連接這一過程。由于查找時間與接入標識的數量成正比,當接入標識過多時,可能造成查找時間過長。此外,使用連接標識還可以降低因為接入標識不正確而無法查找到正確連接的情況。
4.5連接標識的沖突
文中將連接標識存儲在本機,因此可能產生連接標識的沖突,即存在兩個不同連接的連接標識相同的情況。若存在相同的連接標識,則會產生錯誤,導致無法通信。
采用CRC32算法生成連接標識,連接標識的長度為32位,因此產生沖突的可能性為10-5。考慮到在大型網絡中,服務提供商可能會存在多個連接,若想要降低連接標識產生沖突的概率,可以改變連接標識的生成算法,增加連接標識的長度。
分別測試帶寬為2 Mb/s、4 Mb/s、8 Mb/s情況下TCP和多路徑傳輸協議的吞吐量,結果如圖3所示。可以看到,吞吐量隨著帶寬的增加而逐漸增大。

圖3 不同帶寬下的吞吐量
固定帶寬為4 Mb/s時,分別測試RTT為20 ms、40 ms和80 ms時的吞吐量,結果如圖4所示。可以看出,隨著時延的增長,吞吐量隨之下降。

圖4 不同RTT下的吞吐量
結合多路徑傳輸與動態(tài)地址變換,提出了用連接標識來代替?zhèn)鹘y的五元組,用于標識一個唯一的連接。由于接入標識是動態(tài)變化的,原來基于IP地址的通信變?yōu)榱嘶谶B接的通信,更加符合多路徑傳輸的需求。
文中基于SCTP協議,給出了連接標識的生成方法以及一種在本地建立連接標識與接入標識映射關系的方法。使用連接標識進行通信可以增加連接的可控可管性,減少網絡攻擊,更好地適應多路徑傳輸。
[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] 楊 冬,周華春,張宏科.基于一體化網絡的普適服務研究[J].電子學報,2007,35(4):607-613.
[3] 張宏科,蘇 偉.新網絡體系基礎研究—一體化網絡與普適服務[J].電子學報,2007,35(4):593-598.
[4] 宋 飛,高德云,張宏科,等.新一代互聯網中連接標識解析映射研究[J].北京交通大學學報:自然科學版,2010,34(2):38-42.
[5] 白 剛,王重鋼,隆克平,等.流控制傳輸協議SCTP及其性能分析與應用[J].北京郵電大學學報,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多路徑傳輸協議性能分析[J].計算機工程與應用,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].電子與信息學報,2012,34(6):1521-1524.
[13] 曹 宇,徐明偉.一種按需分配的多路徑傳輸分組調度算法[J].軟件學報,2012,23(7):1924-1934.
[14] 薛 淼,高德云,張思東,等.面向下一代網絡的端到端多路徑傳輸層架構[J].通信學報,2010,31(10):26-35.
[15] 劉 暢,宋 飛,孫 亮,等.基于連接標識的映射通信[J].電子學報,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">網絡出版時間
時間:2017-07-19
國家“863”高技術發(fā)展計劃項目(2015AA016101);北京市科技新星計劃(Z151100000315052)
鄭 理(1992-),女,碩士研究生,研究方向為下一代互聯網理論與技術;蘇 偉,博士,教授,研究方向為下一代互聯網理論與技術;郜 帥,博士,副教授,研究方向為下一代互聯網理論與技術。
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