APP下载

传输层网络编码性能分析

2016-11-17史迎春

舰船电子对抗 2016年4期
关键词:传输层包率吞吐量

刘 钊,史迎春

(1.中国电子科技集团公司第20研究所,西安 710068; 2.国防信息学院,武汉 430010)



传输层网络编码性能分析

刘 钊1,史迎春2

(1.中国电子科技集团公司第20研究所,西安 710068; 2.国防信息学院,武汉 430010)

底层网络随机丢包导致的传输控制协议(TCP)传输性能恶化的问题由来已久。为了保障TCP的吞吐量在无线网络环境下依然能够保持在较好的性能,通过分析传输层网络编码(TCP/NC)协议的基本原理,分别利用NS-2搭建了软件仿真平台和Wi-Fi开发板搭建了硬件仿真平台。在2种平台上分别测试了传输层网络编码的性能并且分析了TCP的拥塞窗口和吞吐量性能。实验结果表明:传输层网络编码能够有效克服底层的随机丢包带来的影响,提升TCP吞吐量。

网络编码;传输层;吞吐量

0 引 言

自2000年来,Ahlswede[1]等人的研究开创了网络编码的新领域。网络编码是一种融合了路由和编码的信息交换技术,它的核心思想是在网络的各个节点上对各条信道上收到的信息进行线性或者非线性的处理,然后转发给下游节点,中间节点扮演着编码器或信号处理器的角色。网络编码突破了传统路由在网络中传输的数据包只能转发和存储的限制,它允许网络中的节点对传输的数据包进行编码和处理,从而使网络的多播传输达到“最大流最小割”理论上的最大传输容量。因此,网络编码引起了学术界广泛的重视,从而奠定了网络编码在现代网络通信研究领域的重要地位。

网络编码虽然起源于对多播传输的研究,但是现今已拓展到网络研究的许多方面,例如:网络链路传输的可靠性,提高网络吞吐量,提高网络带宽利用率,均衡网络负载和网络编码在无线网络下的研究等。尤其在近几年来,网络编码的研究热点已经由传统的有线网络场景下的网络编码技术转为无线网络场景下的网络编码技术。因为无线链路的不可靠性和物理层广播特性非常适合使用编码的方法。应用网络编码可以解决传统路由技术无法解决的问题,以提高网络性能。具体来说,网络编码在无线网络中的应用可以提高网络的吞吐量,尤其是组播吞吐量;可以减少数据包的传播次数,降低无线发送能耗;采用随机网络编码,即使网络部分节点或链路失效,最终在目的节点仍然能恢复原始数据,增强网络的容错性和鲁棒性。

在基于传输控制协议/因特网互联协议(TCP/IP)与802.11协议所组成的协议栈的有损网络中传输的场景下,由J. K. Sundararajan[2-4]等人提出的传输层网络编码(TCP/NC)协议是在TCP[5]层与IP层之间加入网络编码层,通过网络编码将下层的丢包掩盖,使TCP继续保持良好的传输性能而不是主动缩小拥塞窗口降低发送速率,除此之外,TCP/NC协议[6]具有很好的兼容性。当网络中发送随机不相关丢包时,尤其在丢包率较大时,能极大地提升TCP的性能。因此,TCP/NC协议必须能够对抗由于衰落引起的随机丢包。

本文针对TCP/NC协议进行了软件和硬件平台上的仿真实验,验证了TCP/NC协议能够抵抗底层随机丢包对上层TCP带来性能下降的影响,仿真结果表明:在这种底层有随机丢包的网络中,TCP/NC能够明显提升系统吞吐量。

1 协议栈介绍

TCP协议即传输控制协议,对应于开放式系统互联(OSI)七层模型中的传输层,建立于网络层之上,它旨在给互联网提供一种可靠的端到端的字节传输流。TCP是当今互联网广泛使用的传输层协议,除了能够提供可靠的端到端通信之外,当网络出现拥塞时,还会主动降低发送速率以使网络性能尽快恢复。但由于无线信道本身的易误码特性,导致其持续存在物理层随机丢包的情况,当在无线网络中使用TCP时,协议就容易将这种无线信道误码引起的丢包误认为网络出现了拥塞,进而主动降低发送速率,最终会将网络的吞吐量限制在一个较低的水平。

对于协议栈的修改[2]如图 1。其中添加了网络编码层,它位于传统计算机网络分层结构中的传输层和网络层之间,其在源端对TCP传输的数据进行网络编码;在接收端进行网络解码,将数据还原成TCP的数据并递交给TCP-Sink。协议栈中添加的网络编码层和新的TCP层合称TCP/NC层。

图1 TCP/NC协议栈

网络编码层主要负责对 TCP 层递交的数据包进行网络编解码,通过增加协议层这种跨层[7-8]的思想结合网络编码,并且保持TCP与 IP的接口不发生任何改动。将网络编码用于解决TCP与有损无线网络的这种思想非常具有创新性,这给如何解TCP在无线网络下性能衰退严重的问题带来了新思路。当前网络编码在无线网络中的研究主要集中于介质访问控制子层协议(MAC)[9-11]以下,针对其在传输层中的研究工作还较少。

2 TCP/NC算法介绍

传输层网络编码的算法主要包含2个部分:编码端算法;解码端算法。

(1) TCP/NC编码流程

TCP/NC网络编码的编码端流程:

步骤1,设置变量num为0。

步骤2,等待状态:如果下面任何事件发生,则按照下面方法响应;否则,等待。

步骤3,当数据包从TCP发送端来。

① 如果数据包是一个用于建立连接的控制数据包,将其直接传递给IP层,并且返回等待状态。

② 如果数据包还没有加入编码窗口,将其加入网络编码窗口。

③ 设置num=num+R(R是网络编码冗余因子)。

④ 重复下面子步骤次:

(a) 用网络编码窗口中的数据包产生一个随机线性组合。

(b) 将网络编码数据包的随机系数和编码信息加入网络编码头。

(c) 将数据包传输给IP层。

(d)num=num-1。

⑤ 返回等待状态。

步骤4.确认字符(ACK)从接收端到达:将被确认的数据包从编码缓存中移除,并且将ACK传递给TCP发送端。

上述为TCP/NC的编码流程,对于编码端接到的数据包只有2种情况:一种是从TCP发送端接到的数据包;一种是从接收端发送的ACK。按照上述流程对数据包进行操作,绘制成流程图如图2所示。

图2 发送端流程图

(2) TCP/NC解码流程

TCP/NC网络编码、解码端流程:

步骤1,等待状态:如果下面任何事件发生,则按照下面方法响应;否则,等待。

步骤2,当ACK是从TCP-Sink到达:如果ACK确认的是一个建立链接的控制数据包,将其直接传递给IP层,然后再返回等待状态;否则,忽略当前ACK。

步骤3,当数据包是从源端发送来。

① 将网络编码的头从编码数据包中移除,将编码系数向量从包头中取出。

② 将网络编码的编码向量作为一个行向量加入解码系数矩阵,并且用高斯-约旦消元法处理接收到的数据包。

③ 将负载加入解码缓存,如果任何一个数据包可以解码,则将其传递给TCP-Sink并从缓存中移除。

④ 产生新的TCP确认序号。

上述为TCP/NC的解码流程,对于编码端接到的数据包只有3种情况:一种是从发送端接到的编码数据;一种是从TCP-Sink发送来的ACK;还有一种是负责信令交互的数据包。按照上述流程对数据包进行操作,绘制成流程图如图3所示。

图3 接收端流程图

3 软硬件平台仿真实验结果

3.1 软件平台仿真实验结果

仿真实验均是在NS-2平台下完成的。在本实验中,应用层采用FTP从10 s开始传输,到90 s传输结束。设置数据包大小为1 000字节,TCP的拥塞窗口为50。

仿真实验所使用线型拓扑如图4所示。

图4 仿真实验使用的线性网络拓扑

TCP-NC在丢包率为5%,10%,20%,R为不同值时,TCP/NC的有效吞吐量分别如图5~图7所示。

从图 5、图 6和图 7的理论分析得到的冗余因

图5 丢包率为5%,R为不同值时TCP/NC的有效吞吐量

图6 丢包率为10%,R为不同值时TCP/NC的有效吞吐量

图7 丢包率为20%,R为不同值时TCP/NC的有效吞吐量

图 8验证了TCP/NC算法应用于一般无线系统的有效性,即当物理信道存在一定丢包率的情况下,系统的有效吞吐量还能保持在一个比较高的水平,而没有出现非常剧烈的波动。

图8 系统在不同丢包率情况下,TCP&TCP/NC有效吞吐量

如图9所示,拥塞窗口的大小应该是与有效吞吐量是保持一致的。将上面实验结果曲线与之前的吞吐量曲线进行对比,可以发现两者的趋势基本一致。

图9 TCP&TCP/NC在不同丢包率下的拥塞窗随时间变化

3.2 硬件平台仿真实验结果

如图10所示是用于实现及测试TCP/NC的

Wi-Fi开发板所搭建成的硬件仿真平台示意图。开发板的主要组成为:ARM Stm32f103单片机、RS232串口、JTAG/JLINK接口和Wi-Fi模块。该开发板使用Keli uVeison4软件编译源代码,通过JTAG/JLINK接口将编译好的程序下载到开发板。电脑和开发板通过RS232串口线连接,从而可以利用电脑上的串口调试工具观察运行信息。

图10 硬件系统示意图

在有丢包网络环境下的TCP/NC和TCP的性能比较。实验中设置丢包率p为2%,发送窗口与有效传输速率如图 11与图 12所示。

从图 11可以看出,在有随机丢包的网络环境下,TCP/NC发送窗口的大小仍然能够达到且维持在最大发送窗口,而TCP会因为丢包而产生发送窗口大小的波动。从图 12可以看出,在有随机丢包的网络环境下,TCP/NC仍然有一个比较稳定的有效传输速度。

同样,在设置丢包率为2%的条件下,还研究了不同冗余因子R对TCP/NC吞吐量性能的影响。

通过图13与之前软件平台仿真实验的结果(如图 5~图 7的结果)对比来看,能得到相同的结论。

图11 有丢包网络环境下的TCP/NC和TCP的发送窗口

4 结束语

本文基于J.K.Sundararajan等人提出的TCP/NC协议的研究基础之上,分别在利用NS-2所搭建的软件仿真平台与Wi-Fi开发板搭建的硬件仿真平台上对TCP/NC的性能进行了仿真与性能分析。实验结果表明:TCP/NC能够有效克服底层随机丢

图12 有丢包网络环境下的TCP/NC和TCP的有效传输速率

图13 不同冗余度R条件下TCP/NC的平均吞吐量曲线

包造成TCP传输性能剧烈下降的问题,而且提升效果显著,解决问题办法新颖,并且与现有协议栈的兼容性较好。

[1] AHLSWEDE R,CAI N,LI S Y,et al.Network information flow[J].Information Theory,IEEE Transactions on,2000,46(4):1204-1216.

[2] SUNDARARAJAN J K,SHAH D,MEDARD M,et al.Network coding meets TCP[C]//International Conference on Computer Communications,Vols 1-5,2009:280-288.

[3] SUNDARARAJAN J K,JAKUBCZAK S,MEDARD M,et al.Interfacing network coding with TCP:an implementation[J].Mathematics,2009(3):280-288.

[4] SUNDARARAJAN J K,SHAH D,MEDARD M,et al.Network coding meets TCP:theory and implementation[J].Proceedings of The IEEE,2011,99 (3):490-512.

[5] ALMQUIST P.Transmission control protocol[J].International Request for Comment,1981,2(4):595-599.[6] KIM M,MEDARD M,BARROS J.Modeling network coded TCP throughput:a simple model and its validation[C]//Institute for Computer Sciences,Social-informatics and Telecommunications Engineering,2011:131-140.

[7] SRIVASTAVA V,MOTANI M.Cross-layer design:a survey and the road ahead[J].Communications Magazine,IEEE,2005,43 (12):112-119.

[8] LIN X,SHROFF N B,SRIKANT R.A tutorial on cross-layer optimization in wireless networks[J].Selected Areas in Communications,IEEE Journal on,2006,24(8):1452-1463.

[9] BYERS J W,LUBY M,MITZENMACHER M.A digital fountain approach to asynchronous reliable multicast[J].Selected Areas in Communications,IEEE Journal on,2002,20 (8):1528-1540.

[10]MACKAY D J.Fountain codes[J]:Communications,IEE Proceedings,2005,152(6):1062-1068.

[11]SHOKROLLAHI A.Raptor codes[J].Information Theory,IEEE Transactions on,2006,52 (6):2551-2567.

Performance Analysis on Transmission Control Protocol Layer with Network Coding

LIU Zhao1,SHI Ying-chun2

(1.The 20th Research Institute of CETC,Xi'an 710068,China;2.PLA Academy of National Defense Information,Wuhan 430010,China)

The long-standing problem is that the transmission performance deterioration of transmission control protocol (TCP) caused by random packet loss in lower layer network.In order to guarantee the TCP throughput still maintain good performance in wireless network environment,this paper analyzes the basic principle of transmission control protocol layer with network coding (TCP/NC) protocol,separately uses NS-2 to construct software simulation platform and Wi-Fi development board to construct hardware simulation platform,tests the TCP/NC performance and analyzes the congestion window and throughput of TCP.The experimental results show that TCP/NC can effectively overcome the impact of random packet loss in lower layer and improve the TCP throughput.

network coding;transmission layer;throughput

2016-01-19

TN915.04

A

CN32-1413(2016)04-0092-07

10.16426/j.cnki.jcdzdk.2016.04.021

猜你喜欢

传输层包率吞吐量
支持向量机的船舶网络丢包率预测数学模型
一种基于喷泉码的异构网络发包算法*
电磁线叠包率控制工艺研究
基于Python语言的网络传输层UDP协议攻击性行为研究
IEEE 802.15.4协议无线传感器网络干扰测试∗
基于物联网GIS的消防智能巡检系统设计与实现
NAPT技术对数据包分片的处理实验
2017年3月长三角地区主要港口吞吐量
2016年10月长三角地区主要港口吞吐量
2016年11月长三角地区主要港口吞吐量