郑 理,苏 伟,郜 帅
(北京交通大学 电子信息工程学院 下一代互联网互联设备国家工程实验室,北京 100044)
基于连接标识的多路径传输
郑 理,苏 伟,郜 帅
(北京交通大学 电子信息工程学院 下一代互联网互联设备国家工程实验室,北京 100044)
随着网络技术的发展,多宿主主机越来越普及。多路径并行传输可以充分利用多宿主主机的优势,不仅可以最大限度利用带宽,提高数据吞吐量,而且可以提高容错率,在一条路径出现故障时,迅速切换到其他路径进行数据传输。文中基于多路径传输以及动态地址变换的特点,引入了连接标识进行通信。通过建立连接标识与接入标识之间的映射,代替传统网络依靠五元组进行连接的管理,以更好地适应多路径传输。简述了如何基于流控传输协议实现多路径传输以及动态地址变换,并定义了连接标识的生成方法。给出了一种在本地建立连接标识与接入标识映射的方法,并阐述了基于连接标识通信的优势:更加适应多路径传输;更好地增加传输安全性;更好地对连接进行管理等。对不同带宽以及时延下的吞吐量进行了测试,并与传统传输协议进行了性能对比。使用连接标识进行多路径传输可以提升性能,更好地支持动态地址变换,达到身份与位置分离的目的。
连接标识;多路径传输;数据传输;解析映射
现有的网络体系中,传输层提供端到端之间的可靠数据交互。随着网络技术的发展,一方面接入技术多样化,有线和无线接入技术得到普及和商用;另一方面接入设备的成本降低使得一个终端得以配置多个接入网络适配器[1]。传统的传输层协议(如TCP、UDP)只支持单接入设备进行传输,因此不能很好地适应多宿主主机的发展潮流。一些新的传输层协议,如MPTCP、SCTP等,能够有效利用多条路径进行传输,提高传输效率。传统传输协议中,如果接入设备发生了改变,比如由手机3G切换到无线,连接会发生中断。在多路径并行传输时,通过添加动态地址变换功能,使得终端在不同接入网络适配器间进行切换时,服务不会中断。
现有的传输协议使用源IP,源端口号,目的IP,目的端口号,传输协议这样的五元组来标识一次连接,使得连接不便于管理,而且与IP地址联系紧密,不利于多路径传输时的动态地址变换。文中引入了连接标识(CID)的概念,基于SCTP协议,使用连接标识来管理一个连接。使用连接标识来代替原有的五元组,可以更有效地管理连接,并且能适应动态地址变换的特点,也能增强安全性能。
一体化网络下的服务层总体模型[2]如图1所示。
图1 一体化网络服务层总体模型
服务层包括两次映射,服务标识到连接标识的映射,以及连接标识到接入标识的映射[3]。在多路径传输下,一个服务标识对应一个连接标识,而连接标识与接入标识的映射关系可以是一对一,也可以是一对多[4],且这种映射关系应该是可变的。
连接标识用来标识一次特定的连接,具有唯一性与不可变性。即连接标识不同时,表示不同连接,连接标识相同时,即使接入标识发生变化,连接依然不变。连接标识与连接一一对应,服务的提供端与请求端均可通过连接标识查找特定的连接,再通过映射关系查找对应的接入标识,从而完成一次通信过程。
2.1SCTP协议概述
流传输控制协议(SCTP)是IETF在2000年定义的一个传输层协议。区别于传统的TCP协议,SCTP协议具有多流、多宿主、四次握手等特点[5]。多宿主属性使其可以在两个通信节点间建立多条传输路径。虽然SCTP支持多宿主,然而在传输时只选择一条主路径进行数据传递,并不支持多路径并行传输。一些SCTP的扩展[6-7],在SCTP的协议上进行改进,使其支持多路径传输。
SCTP报文结构由基本首部和若干载荷块组成,基本首部包含端口号,验证标签和校验和,载荷块携带控制信息或者载荷数据信息。文中在报文的基本首部中添加一个32位的连接标识字段。
2.2基于SCTP的多路径并行传输
多路径并行传输不仅可以最大限度利用带宽,提高数据吞吐量[8],而且可以提高容错率,当一条路径出现故障时,迅速切换到其他路径进行数据传输。在多路径传输模式下,传输路径的选择与其性能有着密切关系。经过优化的选路策略,能够提高数据的吞吐量,并且改善数据传输中可能出现的乱序问题。
SCTP每个连接下拥有多条路径,每个目的传输标识可以视为一条路径,多路径之间可进行并行传输[9],多路径传输采用统一的端口号。
连接最初建立时,端点随机选择一条路径发送INIT块。端点在连接建立时通过INIT块和INIT ACK块中的可选参数将本端点的多个接入标识通告给对端。用户可以选择将特定的标识通告给对端进行多路径传输,如果没有指定,端点将本地所有可用的接入标识通告给对端以进行多路径传输。
当端点要发送一个报文时,根据路径度量值选择路径,将发送队列中的报文分发到该路径中。多路径传输时,不同路径间可能存在不同的时延,当时延差距较大时,不同路径传输的报文到达对端的时间不同,很容易造成乱序问题,因此合理的选路策略是必要的。路径度量值可以根据各激活状态的路径的往返时间和拥塞窗口等参数进行计算[10-12],并以此进行路径调度及报文的分发。
2.3基于SCTP的动态地址变换
SCTP使用IDCONF块和IDCONF ACK块进行动态地址变换。当端点想要增加或删除自己的接入标识时,应发送IDCONF块。
IDCONF块的可选参数携带添加或删除的接入标识。当对端收到IDCONF块时,首先使用源标识和端口号匹配连接,若匹配不到,使用IDCONF块标识参数中的接入标识和端口号匹配连接。这种做法有两个缺点:首先容易造成无匹配连接,即根据源标识和IDCONF块中的接入标识都无法找到匹配连接;其次一个连接对应多个接入标识,且接入标识动态变化,两者之间的关系容易发生变化。因为连接标识和连接是一一对应的关系,若使用连接标识匹配连接,不仅能够提高查找效率,还能更好地对连接进行管理。
3.1连接标识的生成
连接标识由服务标识、时间戳和随机数构成,如图2所示。
图2 连接标识的生成
服务标识是服务提供者由服务定义而成,而时间戳和随机数是为了防止连接标识冲突。使用CRC32最终生成32位的连接标识。
连接标识由连接发起者在连接建立之初生成,携带在INIT块中的参数发送给对端,INIT块中还携带有本地可用的接入标识。接收端将连接标识以及发送端的接入标识保存在本地,并建立映射关系,再发送携带有连接标识以及可用接入标识的INIT ACK块。
3.2使用连接标识进行多路径传输
连接建立之初,由服务请求端生成连接标识,并与所有可用的本地接入标识一同携带在报文中,告知服务提供端。服务提供端将收到的连接标识与接入标识保存在本地,并建立连接标识与对端的接入标识之间的映射关系。同理,服务提供端将所有可用的本地接入标识发送给服务请求端,服务请求端在本地建立服务提供端接入标识与连接标识的映射关系。
进行通信时,首先检查报文中携带的连接标识是否与本地储存的连接标识相同,若不同,则丢弃该报文。由于只有服务提供端和服务请求端两者知道连接标识,一定程度上提高了通信安全性。当对连接标识进行验证后,端点使用连接标识查找对应的接入标识,使用可用的接入标识作为目的标识,进行多路径传输。
当进行地址变换时,端点发送接入标识删除或增加的IDCONF块,接收端对报文进行验证后,更新本地的映射关系。由于采用连接标识来标识唯一的连接,因此连接并没有改变。若采用传统的五元组来标识一次连接,由于IP地址发生了变化,因此连接也会中断。正因为连接标识的使用,连接与接入标识不再有直接关联,因此接入标识发生变化时,连接不发生改变,通信不会中断。
3.3连接标识与接入标识映射关系的建立
连接标识与接入标识的映射关系可分为两类:一对一映射与一对多映射[13]。在一对一映射情况下,端点只有一个接入设备,且每个接入设备只有一个接入标识,两个端点间只有一条路径。在一对多映射情况下,即端点拥有多个接入设备,多个接入标识对应一个连接。
连接标识与接入标识之间的映射可以存储在独立于端点的映射服务器上[14-15],也可以作为一个独立模块直接存储在端点上,文中采用的就是这种方式。
Linux内核中,利用一个哈希表结构作为连接列表存储连接。其中哈希表的键值由源端口号和目的端口号生成,同一键值下为连接基本信息结构体的链表,结构体中包括链表结构的本地IP地址列表、链表结构的对端IP地址列表、传输控制块等信息。查找时,先根据端口号查找到特定键值的哈希表结构,再根据连接列表中的本地IP地址,对连接基本信息进行遍历,直到找到特定的连接。
使用连接标识后,端点维护一个哈希表结构的连接列表,储存该端点的全部连接,哈希表的键值为32位的连接标识,哈希表的值为该连接的基本信息,包括该连接的本地接入标识和对端接入标识等,接入标识以链表的形式存储。由于连接标识在生成时就解决了冲突问题,因此只要根据连接标识,就可以直接从哈希表中找到特定连接,不用根据IP地址进行链表的遍历。
连接开始时,将该连接插入到连接列表中,具体步骤如下:
(1)生成CID;
(2)创建一个连接信息的结构体,将包括本端和对端的接入标识(从INIT块和INIT ACK块中获得)以链表的形式放入结构体中;
(3)将哈希表第CID个位置的值设置为该结构体;
(4)若步骤(3)中发生冲突,说明出错,无法建立连接。
连接结束后,将该连接从连接列表中删除,步骤如下:
(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更加适应多路径传输
在传统的传输协议中,采用五元组区分一个连接,只有IP地址不一样,即视为不同的连接。而在多宿主情况下,这个条件不再成立,因为接入标识与连接不再一一对应,即使接入标识不同,也可能属于同一个连接。因此,使用五元组来标识一个连接不再合适,而使用连接标识很好地解决了这个问题。使用连接标识后,不管有几个接入标识,都不影响连接的唯一性。使用动态地址变换时,由于接入标识发生改变,而连接并没有改变,使用连接标识后,不再需要更改接入标识与连接的映射关系,而是修改与连接标识的映射关系。
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下的吞吐量
结合多路径传输与动态地址变换,提出了用连接标识来代替传统的五元组,用于标识一个唯一的连接。由于接入标识是动态变化的,原来基于IP地址的通信变为了基于连接的通信,更加符合多路径传输的需求。
文中基于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] 符 发,周 星,杨 雄,等.MPTCP与CMT-SCTP多路径传输协议性能分析[J].计算机工程与应用,2013,49(21):79-82.
[9] 刘 镇,谭毓银,符 发,等.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”高技术发展计划项目(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