一种基于网络编码的高误码率长时延网络自适应传输方法
技术领域
本发明涉及一种高效的自适应可靠传输方法,特别面向高误码率、长时延网络的端到端可靠传输加速方法。本发明的技术领域是互联网端到端可靠传输。
背景技术
随着无线网络技术的发展和应用的不断深入,各种类型无线网络(如卫星网络、航空通信网络、无线移动网络等)与传统地面固定有线网络的融合趋势日渐明显。网络的演化造成网络的结构更加复杂,网络的异构性加强。从应用的角度来看,这类网络具有高比特误码率(Bit Error Rate,BER)、长时延等特性,网络的带宽时延积(Bandwidth Delay Product,BDP)较大。在这类网络上使用传统的可靠传输协议(Transportation Control Protocol,TCP)时,会造成传输性能大幅度地减退。这是因为传统TCP协议起初是为有线网设计的,在有线网中出错率相当低,一般认为丢包都是由网络拥塞引起的,但是在一些高误码率、长时延的网络环境中,丢包的原因不再是唯一的,它可能是由拥塞引起,也可能是由链路错误引起;同时由于长时延的特性,使得网络恢复的速度减慢。因此在高误码率、长时延特性的网络中,如何改进现有TCP传输协议,减小高误码率对传输协议的影响,提高传输性能显得尤为关键。
同时,由于传统的TCP协议在安全方面的天生缺陷,出现了很多种针对TCP协议的攻击(例如TCP序列号欺骗、TCP SYN报文轰炸、TCP会话劫持等),使得基于TCP网络的保密性很容易被破坏,用户的安全性得不到保障。恶意的程序或者用户只要监听到网络上的TCP流量,就可以发起攻击。由于无线网络天然的广播特性,任何人都能很容易监听到网络上的流量,因此在无线网络中,传输协议的保密性显得尤为重要。
针对高误码率、长时延问题,已经提出了许多的改进方法,其中当前主流的有显示拥塞通知机制方法(Explicit Congestion Notification,ECN)、基于NIL数据包探测的TCP-Peach方法和基于接收端确认(Acknowledgement,ACK)有效带宽测量技术的TCP-Westwood方法。其中ECN方法需要中间路由器做特殊支持,与现行网络结构的互操作性不强;TCP-Peach方法则是通过发送探测报文对链路丢包进行判断,需要中间路由器支持优先级策略,同时探测报文也占用了网络带宽,增加了网络的负担;TCP-Westwood方法是通过源端在一个TCP连接上测量平均返回的ACK速率来完成端到端的有效带宽估计,在每次遇到拥塞时将拥塞窗口和慢启动阈值调整为估计的链路可利用带宽大小,但试验表明TCP-Westwood方案在高误码率、长时延网络中性能仍然很低。
针对传输协议的安全问题,目前也提出了几种方法。比较主流的是通过部署防火墙过滤非法攻击报文或者利用基于安全的传输协议(例如SSH)对数据进行加密传输。其中防火墙技术具有很多缺陷,例如不能防范在防火墙内部的攻击、很容易被绕过,而且具有较高的处理成本,因此防火墙技术很难在无线网络中部署。SSH对TCP连接提供安全认证,同时对数据进行加密传输,使得传输的用户数据较为安全。但是,该协议无论是在连接建立过程还是数据传输过程都带来了很大的开销,而且由于每个传输过程都需要加密和解密,对传输节点的处理能力也提出了很高的要求。由于无线网络中的节点尤其是卫星网络节点的处理能力本身较弱,很显然,这种高代价的SSH协议不适合应用到无线网络中。
到目前为止,还没有一种传输协议能同时解决上述两种问题。
发明内容
本发明的目的在于提出并设计一种基于网络编码的高误码率长时延网络自适应传输方法,以减小高误码率对传输协议的影响,降低丢包率,提高传输协议的安全性。
本发明的目的是这样实现的:一种基于网络编码的高误码率长时延网络自适应传输方法,根据传输层流量在发送端对传输的TCP报文进行自适应网络编码冗余:按照以下编码方式在发送端将发送端的缓冲区内的N个报文利用随机线性矩阵编码成如下式M个报文,
其中,M>N,K为用来编码的线性随机矩阵,P为编码之前的N个报文,P’为编码后的M个报文;
上述自适应网络编码若在传输层流量的监测时间间隔内发送的报文数目大于N,则实施网络编码,否则不实施网络编码,传输层流量的监测时间间隔Tint由下式决定:
其中RTT为当前TCP连接的往返时间,α为一因子,根据具体的网络进行调整;
在接收端通过网络解码恢复原始的发送报文,在接收端利用如下公式来解码,以恢复发送端报文:
上述发送端实施网络编码的步骤如下:
第1步,设置收到的TCP报文个数NUM为0;
第2步,进入等待状态,直到传输层有新的报文发送;
第3步,如果新报文为控制报文,则将该报文发送至IP层,回到第2步;
第4步,更新报文个数NUM,并将新报文放入到编码缓存中;
第5步,判断NUM的个数是否小于N,如果是,则回到第2步;
第6步,将所有的N个报文编码成M个报文,将编码后的报文发送至IP层,回到第1步;
在执行上述步骤的同时,设置一等间隔为
的周期性编码定时器,如果定时器到时,则查看缓冲区报文个数,如果大于等于N,则将其中的N个报文编码发送至IP层;如果小于N,则将报文至直接发送至IP层;
上述接收端实施网络解码的步骤如下:
第1步,设置收到的报文个数NUM为0;
第2步,进入等待状态,等待从IP层收取报文;
第3步,如果报文为控制报文或者TCP非编码报文,将报文发送至应用层,回到第2步;
第4步,将编码报文个数NUM递增,同时根据组ID对报文进行存储;
第5步,判断同组编码报文个数是否大于或等于N,如果为否,则回到第2步;
第6步,对收到的N个报文进行解码后发送至应用层,回到第1步。
本发明的有益效果是:本发明通过在源端对发送报文进行网络编码冗余,然后在目的端对报文进行解码。通过对发送报文的冗余,大大的减少了链路高误码率对报文传输的影响,大大的提高了传输吞吐量,报文的重传率大大减少,传输性得到很大的提高;同时,由于采取自适应编码的方式,对发送的报文进行了编码处理,提高了信息的保密性,能更好地防止信息被窃取,增加了传输协议的安全性。
本发明仅需对发送端的TCP报文进行编码方式和接收端的解码方式进行改进,不需要传输的中间节点配合,属于端到端可靠传输加速方法,能与当前主流的可靠协议兼容。
基本原理:
该方法的基本原理为:在比较短的时间间隔内,如果发送端的缓冲区内有N个报文,对这N个报文进行随机线性网络编码,使得编码后得到M(M>N)个编码后的报文,即冗余了M-N个包。为了达到最好的效果,则冗余因子的选择应使得链路的丢包率为(M-N)/N。当发出M个编码后的包,由于链路误码率的影响,接收端可能只收到N个包,在接收端通过对这N个包进行解码就可以使得这次传送成功,对于接收端而言,它没有感觉到任何丢包情况。因此这种机制可以提高传输性能,极大地减少丢包快速重传以及快速恢复。假设原来链路的丢包率为p,改进后的协议的丢包率为:
从式(1)可以看出改进后的协议的丢包率远远小于改进前的值。同时由于在发送端对发送的报文进行了编码,仅仅当获取编码的N个报文和编码方式以后才能解码,获取单个报文并无意义,因此该方法大大提高了传输协议的安全特性。
本发明的特点和优点将在量体实施方式部分加以进一步阐述。
附图说明
图1是本发明基于网络编码的可靠传输协议框架图;
图2是本发明编码后的包格式;
图3是本发明网络编码流程图;
图4是本发明网络解码流程图;
图5是本发明为验证高误码率、长时延特性网络的自适应网络编码传输方法性能的试验拓扑图;
图6是本发明为在瓶颈链路的误码率为10-7时,基于网络编码的TCP协议和TCP-Reno协议吞吐量比较;
图7是本发明为在瓶颈链路的误码率为10-6时,基于网络编码的TCP协议和TCP-Reno协议吞吐量比较;
图8是本发明为在瓶颈链路的误码率为10-5时,基于网络编码的TCP协议和TCP-Reno协议吞吐量比较;
图9是本发明为在瓶颈链路的误码率为10-7时,基于网络编码的TCP协议和TCP-Reno协议公平性比较图;
图10是本发明为在瓶颈链路的误码率为10-6时,基于网络编码的TCP协议和TCP-Reno协议公平性比较图;
图11是本发明为在瓶颈链路的误码率为10-5时,基于网络编码的TCP协议和TCP-Reno协议公平性比较图。
具体实施方式
从图1可以看出,和传统的TCP/IP协议模型不同的是,当采用网络编码时,在传输层和网络层之间引入了网络编码层。在发送端网络编码层对TCP报文进行编码,然后送给其下层的网络层。在接收方将编码后的包于网络解码层进行解码,再将数据包发往传输层。由于编码报文和非编码报文采用了不同的报文格式,因此通过报文格式即可以区分收到的报文是否进行了编码,由此保证了自适应网络编码传输方式与传统TCP协议的兼容性。
网络编码采用随机线性编码方式,这种编码方式简单,编码和解码都不需要太长时间,对数据报文的延时不会造成太大的影响,由编码和解码引入的时间开销可以忽略不计。设源端TCP发送缓冲区的N个报文由一个N×1向量P表示,即:
P=(p1,p2,...,pN)T
其中向量的每个成员Pi(1≤i≤N)对应于TCP发送缓冲区的第i个报文。在源端生成的线性随机编码矩阵为一个M×N向量K,即:
通过编码矩阵和发送报文相乘就可以得到编码后的向量P’,即:
通过式(4)可以看出,编码后的报文其实就是输入数据包的线性组合,输入的N个报文通过编码后生了M个报文。
由于网络编码对发送的传输报文进行冗余,因此会引入额外的开销。自适应网络编码方式根据传输层流量大小来决定是否实施网络编码,仅当其带来的开销相对于传输层流量大小可以忽略不计时,才对TCP报文实施网络编码。否则,不会实施网络编码,报文格式维持原始的TCP报文格式,这样避免了网络编码开销过大的情况。自适应网络编码对传输层流量的监测的时间间隔由下式决定:
其中RTT为TCP连接的往返时间,α为一因子,在具体的无线网络中可以对其进行调整。由于监测流量时间与连接的往返时间的几分之一相当,而且由于连接的往返时间为毫秒级,因此自适应编码方式能够实时的监测传输层流量大小。若在Tint时间内发送的报文数目大于N,则实施网络编码,否则不实施网络编码。由于前面的N-1个报文都需等待直到第N个报文的到来以便进行编码,为避免不必要的重传,Tint必须足够短,因此该时间间隔选择为连接往返时间的几分之一。同时,由于RTT在很大程度上反映了网络的拥塞情况,因此选取该时间间隔还可以有效的避免拥塞。当RTT时间较短时,意味着网络处于非拥塞状态,网络编码的等待时间会较少,网络编码后的报文会尽快的发到网络上。当RTT时间相对较长时,意味着网络可能处于拥塞状态,那么网络编码的等待时间稍长,在一定程度上避免了拥塞的进一步恶化。
通过网络编码后,发往IP层的具体报文格式(参见图2)。
其中组标识用来区分不同的编码组,编码系数是对该包进行编码的编码系数向量。
在接收端,如果为编码报文,只要收到了N个报文,就可以采用高斯消元法解码得到原始报文,即:
解码后的报文和没有应用网络编码的处理流程一致。
网络编解码算法详细描述:
网络编解码算法详细描述如下:
1、对于发送端,需要处理两类事件。一类是收到一个来自于传输层数据报文,另一类是收到来自于接收端的控制报文(参见编码处理流程图3)。
从图3可以看出,网络编码算法通过设置定时器(定时器的定时间隔为
),当定时器到时时,检查发送缓冲区报文的数量来决定是否进行网络编码。若在
时间内传输层报文个数大于或者等于N则实施网络编码,否则不进行网络编码。这样避免了流量较少时网络编码产生的不必要开销。
2、对于接收端同样要对两类事件进行处理。一类是对来自于发送端编码后的数据包进行处理,另一类是对发往发送端的控制包进行处理(参见解码的流程4)。
参见图5所示,为我们对本发明进行验证所作试验的拓扑结构图,仿真试验模拟了10对业务进行FTP文件传输。其仿真实验参数参见表3所示。按照图5所示的拓扑结构,我们验证了不同链路误码率,各协议的传输性能。
参见图6所示,为瓶颈链路的误码率为10-7,TCP-Reno与基于网络编码的传输协议的吞吐量很接近。这是因为误码率比较低时,丢包并不多,网络编码的优势表现不明显,但是网络编码后的TCP协议吞吐量仍稍高于TCP-Reno,并且从图中可以看出基于网络编码的TCP协议具有良好的稳定性。
参见图7所示,为瓶颈链路的误码率为10-6,从图中可以看出,TCP-Reno协议随着误码率的增加,吞吐量下降较大,而基于网络编码的传输协议的吞吐量相对于误码率为10-7时并没有减少很多。这是由于网络编码通过将一组包的信息通过编码进行融合,并做适当的冗余,使得在中间链路中由于链路误码率丢掉一部分包后,仍有足够的包到达接收端,并通过解码还原为原来发送的包。因此该方法能够提高TCP协议的吞吐量性能。这种方法使得用户感觉到只有很少的丢包发生。
参见图8所示,为瓶颈链路的误码率为10-5,TCP-Reno协议的吞吐量下降更大。基于网络编码的传输协议仍保持较高的吞吐量,这是由于网络编码的机制减少了大量不必要的拥塞窗口减半以及包重传,提高了链路的利用率和协议的传输性能。
参见表1所示,表中列出了在各种误码率下,TCP-Reno协议和基于网络编码传输协议的累积吞吐量(十对业务),从图中可以看出,基于自适应的网络编码机制可以显著地提高TCP协议的传输性能。
参见图9、图10以及图11所示,为在瓶颈链路的误码率分别为10-7、10-6和10-5时,基于网络编码的TCP协议和TCP-Reno协议公平性比较。从图中可以看出基于网络编码的TCP传输协议的公平性在各种误码率下均高于TCP-Reno传输协议,尤其是在误码率为10-7的情况下,基于网络编码的TCP传输协议具有非常好的公平性,其值非常接近1,各个链接公平的共享卫星网络带宽。
附表1为瓶颈链路的误码率为各种不同情况下时,基于网络编码的TCP协议和TCP-Reno协议累计吞吐量比较。
附表2是为在瓶颈链路不同的误码率下由于网络编码冗余引入的网络开销。从表中卡看出,协议的开销随着错误率增大而增大。在错误率为10-5时,以发送包为单位处理得到的协议开销为2%左右;当错误率为10-6时,开销在0.7%左右;当错误率为10-7时,开销在0.5%左右。对于星上系统来说,这样的开销是可以接受的。
表1累计吞吐量对比
BER |
开销 |
10-5 |
2% |
10-6 |
0.7% |
10-7 |
0.5% |
表2各种误码率下的协议开销
表3单层低轨卫星网络参数配置