中国科技论文在线
http://www.paper.edu.cn
基于 opnet 的 TCP Veno 性能研究和仿真
史士杰,王秀娟
(中国矿业大学信电学院,江苏 徐州 221116)
摘要:由于传输介质不同,传统拥塞控制算法在无线网络中出现了性能退化。为此,人们提
出了包括 TCP VENO 在内的多种改进算法。TCP Veno 通过检测链路中积压数据包大小来判断
丢包的性质,进而对 TCP Reno 后三个阶段进行改进。本文利用 OPNET Modeler 对该算法下
的吞吐量、网络利用率、公平性、友好性进行仿真分析。结果表明,TCP VENO 各方面性能
均比 Reno 得到提高。
关键词: 计算机网络;OPNET Modeler;TCP VENO;TCP Reno;拥塞控制
中图分类号:TP393
The Research of TCP Veno Performance Based on OPNET
Shi Shijie,Wang Xiujuan
Jiangsu Xuzhou 221008)
(School of Information and Electrical Engineering, China University of Mining and Technology,
Abstract: As a result of the different transmission environment, the traditional congestion control
protocol performance degradation in the wireless network. TCP VENO was proposed for the
degradation of the TCP Reno in the wireless. It could judge the Lost Packets by detecting the number
of the backlog packets in the link, and improve the TCP Reno. This paper simulates the throughput,
network utilization, fairness and friendliness of TCP VENO by Modeler. The results show that, TCP
VENO have a more performance than Reno.
Keywords: Computer network;OPNET Modeler; TCP VENO; TCP Reno; congestion control
0 引言
由于无线传输的便捷性,越来越多的终端通过无线方式接入互联网,人们对无线网络的
传输速率要求越来越高,无线网络中的拥塞控制渐显重要。鉴于 TCP/IP 协议在有线网络中
的良好表现,传统拥塞控制协议在无线通信网络以及混合网络中也得到了越来越广泛的应
用。然而,由于传输介质的差异,传统的 TCP 拥塞控制协议并不能在无线网络中获得较好
的效果。因此,要想使 TCP 在无线网络中具有良好的表现,就必须对传统的 TCP 传输协议
进行改进。
传统的拥塞控制机制(TCP Reno)有四个阶段:慢启动(slow start)、拥塞避免(congestion
avoidance)、快速重传(fast retransmit)和快速恢复(fast recovery)。在慢启动阶段开始,将拥
塞窗口初始化为 1 个数据包大小,发送端每收到一个 ACK 确认,拥塞窗口增加 1,拥塞窗
口以指数速度递增。当拥塞窗口达到慢启动阈值(ssthresh)时,进入拥塞避免阶段,此时
发送端每隔一个往返时延(RTT)使拥塞窗口增加 1,即采取线性速度增加拥塞窗口。在上
述过程中,若接收端收到 3 个或以上重复 ACK 确认,则认为网络中出现拥塞,进入快速重
传和快速恢复阶段,直至收到新的 ACK 确认,结束快速恢复[1][2][3]。
显然,TCP Reno 将丢包的原因全部归于拥塞,这是由于传统的拥塞控制协议是基于有
线网络的良好传输介质设计的,而无线网传输介质具有高时延、高误码、强干扰等特性,丢
作者简介:史士杰(1986-),男,河南柘城人,中国矿业大学在读硕士研究生,研究方向:无线网络拥塞
控制,Email:ssjcumt@163.com
- 1 -
中国科技论文在线
http://www.paper.edu.cn
包的大部分原因不是由于拥塞所致。此时 TCP Reno 仍将丢包归因于拥塞,不能准确计算网
络的实时可用带宽,只是盲目的降低拥塞窗口,减少发送端发送的数据量。基于此,TCP Veno
提出了能区分丢包原因的拥塞控制算法。
1 TCP VENO 拥塞控制机制
TCP Veno 采用类似 Vegas[4]的机制来判断网络的拥塞状态,通过判断丢包的性质来采取
不同的拥塞控制策略。当网络处于真正的拥塞时,采用 TCP Reno 的拥塞控制机制,当网络
的丢包是由误码等原因产生的随即丢包时,则采用另外一种拥塞控制机制。
1.1 丢包判断算法
TCP Veno 通过计算网络中数据报的积压状况来判断网络的状态。设积压的数据报大小
为 N,则有
=
N Actural RTT BaseRTT
其中 Actural 为发送端实际发送速率,RTT 为网络当前往返时延,BaseRTT 为网络测到
(1)
*(
−
)
的最小往返时延。
实际应用中,Actural 可由下面公式计算得到
Actural
cwnd 为拥塞窗口大小。整理得到 N 的计算公式
cwnd RTT
=
(2)
N cwnd
=
−
cwnd
RTT
*
BaseRTT
(3)
鉴于 Jacobson 提出的 RTT 算法已很成熟,这里将式 3 修改为
N
=
cwnd
BaseRTT
⎛
⎜
⎝
−
cwnd
RTT
⎞
⎟
⎠
*
BaseRTT
(4)
TCP Veno 将 N 的大小作为判断网络是否拥塞的依据,设定一个门限值 β,当 N 超过 β
时,说明连路中数据包积压严重,判定连接处于拥塞状态,若此时发生丢包则采用类似 TCP
Reno 的拥塞控制机制;当 N 小于 β 时,即使发送端检测到丢包,也认定连接正常,判定丢
包为其他原因造成的随即丢包,采取不同于 TCP Reno 的拥塞控制算法。实验表明,β 取 3
较合理[5]。
1.2 TCP Veno 的四个控制阶段
TCP Veno 是对 TCP Reno 的改进算法,也即采用四个阶段来实现拥塞控制[6]。
慢启动阶段:TCP Veno 采用同 TCP Reno 一样的慢启动控制策略。
拥塞避免阶段:TCP Veno 采用基于区分丢包性质的拥塞控制策略:当检测到丢包非拥
塞所致,则每收到一个新 ACK 确认,发送端使 cwnd 增加 1,使拥塞窗口继续保持指数速度
增加。当检测到丢包为拥塞所致,则每收到 2 个新的 ACK 确认,使 cwnd 增加 1。这样当拥
塞没有发生时,发送端不会盲目降低拥塞窗口的增加速度,而当拥塞发生时,发送端将拥塞
窗口增速放缓,从而能使拥塞窗口更长时间地保持在较大的状态,提高网络的吞吐量和利用
率。
快速重传和快速恢复:当发送端收到 3 个及以上重复 ACK 确认,TCP Reno 认为此时网
络中出现了拥塞,开始重传丢失的数据包,进入快速重传阶段。TCP Veno 对此进行了调整,
当收到 3 个或以上重复 ACK 确认,判断网络的状态:若 N<β,则认为网络不够拥塞,判定
丢包为随即丢包,将拥塞阈值 ssthresh 置为 4*cwnd/5, 将 cwnd=ssthresh+3,重传丢失的包;
- 2 -
中国科技论文在线
http://www.paper.edu.cn
若 N>β,则认为网络出现拥塞,将拥塞阈值 ssthresh 置为 cwnd/2,将 cwnd=ssthresh+3,重
传丢失的包。前者中,网络中出现随即丢包时发送端也将拥塞阈值 ssthresh 降低,是基于一
种稳定性考虑。采用新策略的 TCP Veno 算法能使拥塞窗口更长时间地保持在较大范围,更
有利于提高网络吞吐量和利用率。
若发送端计时器超时,则将拥塞阈值设为 cwnd/2,并将 cwnd 重置为 1,重传丢失的数
据包。若拥塞窗口小于或等于慢启动门限值,则 TCP 进入慢启动阶段;否则进入拥塞避免
阶段。
2 TCP Veno 和 TCP Reno 性能比较
鉴于 OPNET 良好的仿真性能,本仿真在 OPNET 原有 TCP Reno 代码的基础上进行修
改来实现改进算法。将实际的网络结构简化为图 1 所示的哑铃状:
图 1 仿真模型
2.1 吞吐量、拥塞窗口、网络利用率性能比较
设定丢包率为 0.5%,一条链接为 TCP Veno,一条链接为 TCP Reno。利用图 1 的哑铃
状模型得到仿真结果如下图:
图 2 吞吐量
- 3 -
中国科技论文在线
http://www.paper.edu.cn
图 3 拥塞窗口
图 4 网络利用率
由图 2、3、4 可知,和 TCP Reno 相比, 采取 VENO 的发送端能一直保持一个较大的
拥塞窗口,从而能获得较大的吞吐量和较高的带宽利用率。这是因为这种改进算法中拥塞窗
口的设置是基于 RTT 的计算获得的,它能反映出网络的实时状况,从而避免了 Reno 中降低
拥塞窗口的盲目性。也在一定程度上消除了拥塞窗口的波动,使发送速率表现出较好的稳定
性。
另外:当网络丢包率为 0 时,二者表现出一样的性能,当丢包率在一定范围内上升时,
TCP Veno 在吞吐量、拥塞窗口、网络利用率等方面比 TCP Reno 表现出更好的性能。
2.2 TCP VENO 算法的友好性和公平性
算法的友好性是指:使用该算法的 TCP 连接和使用其他版本 TCP 协议连接的共存能力,
该算法不能导致其它版本 TCP 连接没有资源可用。为此,新建立 1 条采用 TCP Reno 的连接,
采用 0.5%丢包率,观察不同连接的吞吐量大小:
- 4 -
中国科技论文在线
http://www.paper.edu.cn
图 5 不同连接的吞吐量
由图 5 知,采用不同拥塞控制协议的连接在带宽资源的利用中,具有相似的竞争力。因
此 TCP Veno 算法具有很好的友好性。当设置不同的丢包率时,TCP Veno 均能表现出良好
的友好性。
公平性是指:采用同种协议的不同连接,往返延时小的能够获得更多的资源,往返延时
大的得到的资源较少。这种问题在所有算法中均存在,但协议应尽量减小这种不公平性。为
此,在原仿真模型中新建一条连接,在丢包率为 0.5%时对公平性的仿真如组图 6.
(a)两条 Reno 连接的吞吐量比较
- 5 -
中国科技论文在线
http://www.paper.edu.cn
(b)两条 Veno 连接的吞吐量比较
图 6 公平性比较
图 6(a)为传统 Reno 算法的公平性结果,图 6(b)为 Veno 算法的公平性结果,由图可知
TCP Veno 在公平性方面表现更好。另外,在丢包率为 0 到 5%的范围内进行仿真,可见,
TCP VENO 具有比 Reno 更好的公平性。
3 结论
TCP Veno 利用队列中积压的数据包大小来判别丢包的原因,进而采取不同的措施来调
整发送窗口,它能避免盲目的将拥塞窗口减半。本实验以 0.5%丢包率为典型环境进行仿真,
仿真结果表明,TCP Veno 在各方面均表现良好,能够维持更大的拥塞窗口,吞吐量可比
RENO 提高四倍,取得更高的带宽利用率。该算法的友好性和公平性也较好。
另外,该算法是基于 TCP Reno 的改进,与其他 TCP 协议具有很好的共存性,该算法是
一种基于端点的拥塞控制算法,不需考虑网络中间环节,具有很好的可实施性。该算法在稳
定性方面还存在一些问题,这是今后需要改进的地方。
[参考文献] (References)
[1]C.P.Fu,“TCP VENO:End-to End Condestion Control Over Heterogeneous Networks,”Ph.D.dissertaion,The
Chinese Univ.Hong Kong,,Hong kong,,2001.
[2] 王文博,张金文.OPNET Modeler 与网络仿真.北京:人民邮电出版社,2003
[3] 李世银,王秀娟,徐冬等. Method of Available Bandwidth Estimation for TCP Based on Channel Noise
Model[J]. 系统仿真学报 2008 年 19 期
[4] 徐昌彪,鲜永菊.计算机网络中的拥塞控制与流量控制.北京:人民邮电出版社,2007
[5] Cheng Peng Fu and Soung C.Liew. TCP Veno: TCP Enhancement for Transmission Over Wireless Access
Networks[J].IEEE Journal of Selected Areas in Communications,2003(2)
[6] C.P.Fu,“TCP VENO:End-to End Condestion Control Over Heterogeneous Networks,”Ph.D.dissertaion,The
Chinese Univ.Hong Kong,,Hong kong,,2001.
- 6 -