尉军辉
摘要:由于卫星网络信道的带宽不对称性,使得下行链路带宽远远大于上行链路带宽,当正向链路的数据包还远没到达拥塞时,反向链路的确认包有可能拥塞。本文对卫星网络的tcp的反向链路进行拥塞控制,在提高网络带宽利用率、通信效率提升等方面做了改进,并对其确认机制SNACK机制进行扩展,最后在opnet上进行了仿真测试,证明了添加反向拥塞控制可以改进网络带宽利用率。
关键词:opnet仿真 反向拥塞控制 卫星网络
中图分类号:TP393.04 文献标识码:A 文章编号:1007-9416(2016)12-0028-01
1 引言
由于卫星通信链路具有正反向链路带宽不对称的特征,因此在正向链路高速传递数据分组时极易发生反向链路的拥塞现象,目前不管是tcp Reno还是TCP vegas对卫星反向链路拥塞控制的很少,而当链路发生拥塞时,大多都是降低发送端分组的发送频率,这虽然能缓解拥塞,但是以降低吞吐量为代价。此外,由于空间通信链路具有传输时延大的特征,用传统的ACK确认机制已不能满足要求。本文深入研究SNACK即否定性确认机制,使用SNACK代替ACK,提高卫星网络带宽利用率。
2 拥塞控制原理概述及改进
2.1 拥塞控制算法
TCP Reno拥塞控制主要是采用了控制发送端的发送速率,从而控制网络的负载。TCP 协议采用一種加法增加乘法减少(AIMD)的拥塞控制算法。发送方维持着一个拥塞窗口,当发送方发现窗口内的一个报文发生丢失,则认为这个丢失是由网络拥塞造成的,于是将窗口大小减半,以减小发送速率,从而避免拥塞的加重。如果窗口中的报文没有发生丢失,则表明目前网络状况良好,发送者将窗口大小加大,进而增大了报文的发送速率。在卫星网络中,由接收端控制确认包的的数量,当确认包由于数量过于多,造成卫星网络反向拥塞,将接收端的窗口大小减半,从而避免拥塞。
2.2 基于SNACK的改进的拥塞控制
选择性否定确认(SNACK)是由选择性确认(SACK)与否定性确认(NAK)组成的。tcp reno采用ACK确认,由于卫星网络误码率较高,延时较大,使得网络易出现误码丢包,于是对有的数据要经过多次重传才能到达,导致带宽的极大浪费。而SNACK当接收端的接收数据缓存中可能存在多个数据错误空洞,SNACK向发送端导致这些数据的否定信息,发送端会根据定时器来发送指定的报文段。相对于SACK,NAK,更能节省网络带宽,是一种适合卫星网络传输的确认机制。
伪代码如下:
If(receive-SNACK)//接收到SNACK
{op_pk_send(lost-packet);根据接收到的SNACK指示,重传丢失的数据段
Reset retransport timer;//重置重传定时器
}
If(receive_ACK)//接收到正常ACK
{
op-pk_send(next-packet)//根据确认发送下一个数据段
Reset retransport timer;//重置重传定时器
}
本文采用Reno,即传统的拥塞控制,在发送端不变,在接收端通过添加拥塞控制,同时改用SNACK,而不用ACK,对提升卫星网络带宽利用率有重大的意义。
3 仿真实验分析
本文采用了在opnet仿真平台下,在两台机器上安装了TCP协议,并对TCP协议进行修改,并导入STK,通过对其吞吐量等监测,仿真结果如图1。
由图1可知添加了反向拥塞控制后,使其正向链路宽带利用率提高,最终使得整个链路带宽利用率提高。
参考文献
[1]张润彤.LEO卫星环境下SNACKTCP性能分析[J].计算机学报,2007(02).
[2]陈明玉.SCPS_TP协议在卫星通信系统中的应用研究[J].电子设计工程,2010(08).
[3]刘益洪.TCP_IP协议的拥塞控制策略[J].通信技术,2008(07).