桂林电子科技大学学报
JournalofGuilinUniversityofElectronicTechnologyVol.29,No.6Dec.2009
基于TCP协议模型的路由器缓存容量设置方法
马金忠,叶进,郑展恒
(桂林电子科技大学信息与通信学院,广西桂林 541004)
摘 要:路由器的不同缓存容量使得网络性能有很大不同,因此缓存容量设置是一个研究的热点。“拇指法则”和“斯坦福法则”是基于TCP协议模型的两种缓存设置方法。根据这两种法则的算法思想,用NS2在局域网中进行了仿真。实验结果表明:高链路利用率时,缓存的设置需要综合考虑多种网络性能参数;而牺牲一定的链路利用率,设置较低的缓存,在降低成本的同时仍能保持核心路由器的稳定。关键词:路由器;缓存容量;拇指法则;斯坦福法则
中图分类号:TP393 文献标识码:A 文章编号:1673-808X(2009)06-0476-04
ATCPprotocolmodelbasedmethodforsettingupbuffersizeofrouter
MAJin-zhong,YEJin,ZHENGZhan-heng
(SchoolofInformationandCommunicationEngineering,GuilinUniversityofElectronicTechnology,Guilin541004,China)
Abstract:Differentbuffersizeofroutermakesdifferentnetworkperformance,sohowtosetupthebuffersizeofrouterisakeyresearchconcern.The\"ruleofthumb\"and\"Stanfordrule\"aretwomethodsforbuffersizesettingbasedonTCPprotocolmodels.WefirstintroducedtheAlgorithmideaofthetworulesthensimulatedtherulesusingNS2inLAN.Finally,weproposedafewfollow-upresearchdirections.Theexperimentalresultsshowedthatthebuffersizesettingneedstoincorporateavarietyofnetworkperformanceparametersinhighlinkutilization;however,ifitissettolowercache,thecoreroutercanmaintainitsstabilityandcanreducecostattheexpenseofacertaindegreeoflinkutilization.
Keywords:router;buffersize;ruleofthumb;Stanfordrule
路由器是不同网络之间互联的枢纽,是网络的核心设备。其中缓存容量直接影响着网络的吞吐量、利用率、丢包率、延迟等性能。若设置较大的缓存容量,可以降低丢包率、维持链路的高利用率、提高吞吐量,但会导致链路延迟增大、增加路由器设计的复杂度。若设置较小的缓存容量,虽然可以降低链路延迟和实现复杂度,但利用率、丢包率和吞吐量将有所降低。因此研究路由器所需的缓存容量能够优化路由器的设计、增加可扩展性,进而提高整个网络的性能。目前,对缓存容量的研究方法有两种:基于随机服务理论的缓存分析方法和基于TCP协议模型的缓存容量分
析方法。基于随机服务理论的缓存分析方法也称为开环分析法,该方法主要利用排队论来对缓存大小进行分析,一般分为短相关排队分析法和长相关排队分析法。短相关排队分析法中路由器设置较小缓存即可满足网络性能要求,而长相关排队分析法中路由器设置较大缓存才能满足网络性能要求。基于TCP协议模型的缓存容量分析方法也被称为闭环分析法,这是因为TCP协议模型是一种闭环的反馈系统。在当前的骨干网络中,TCP流量占总流量的85%~95%,占据网络中的主导地位。因此,基于TCP协议模型对缓存容量需求进行的研究是目前的热点,其中较有代
收稿日期:2009-08-27
基金项目:广西信息与通讯技术重点实验室(PF090109);广西青年科学基金(桂科青(0832084);广西自然科学基金(桂科自0832246)作者简介:马金忠(1979-),男(回族),宁夏同心人,讲师,硕士,主要研究方向为计算机应用、网络优化。E-mail:damojian@guet.edu.cn第6期 马金忠等:基于TCP协议模型的路由器缓存容量设置方法 477
表性的是“拇指法则”和“斯坦福法则”。因此有研究者提出了改进的方案。1.2 斯坦福法则
在当今的骨干链路中,大量的TCP流同时共享一条骨干链路,有研究者统计了在2.5Gb/s或10Gb/s的骨干链路上同一时刻承载的数据量通常多于10000条。因此,对缓存的分析应该基于大规模的TCP流进行。基于这样的现状,在2004年,斯坦福大学的G.Appenzeller等人对缓存进行了分析,并指出核心路由器所需缓存仅需满足式(2)[2]:
B=RTT*C/
n。
(2)
式(2)中,n代表拥塞链路中TCP流的数目,B、RTT、从式(2)中可以看出,当nC代表的含义与式(1)相同。
值越大时,B越小。与“拇指法则”相比较,核心路由器的需求甚至可以减少99%。但有大量的研究证明,对于斯坦福法则可以获得以下较慎重的结论:骨干链路上有较多TCP流时,路由器缓存需求可至少降低到“拇指法则”的1/10,并且能够保证性能不降低,在网络时延和时延抖动性能方面还可以提高。
[3]
[1]
1 两种缓存设置方法
两种缓存容量的设置法则——“拇指法则”和“斯坦福法则”。1.1 拇指法则
1994年,Villamizar和Song提出了著名的路由器设置法则——“拇指法则”(rule-of-thumb)
。该
法则基于两点假设:链路利用率是决定路由器缓存设置的指标;当链路上TCP流数目较大时,TCP是非同步传输的。该法则指出为了维持拥塞链路100%的利用率,拥塞缓存大小应与带宽时延积(BDP)相等,即:
B=RTT*C。
TCP连接的平均往返时延;C为链路带宽。
“拇指法则”多年来一直指导着路由器的设计,按这一法则,路由器可获得很好的统计复用,并有效利用昂贵的长距离传输线路,链路利用率可达到100%,但也需要极大的缓存容量用以在拥塞时存储数据。目前核心路由器的链路速率达到40Gb/s,80Gb/s,甚至更高,如果继续遵循这一法则会增加路由器的设计复杂度,同时也增加了系统的功耗和时延。
(1)
式(1)中,B为拥塞链路所需的缓存;RTT为一个
2 仿真分析
本节将用NS2[4]仿真软件在局域网中设置不同的路由缓存大小来仿真网络性能。具体的仿真拓扑图如图1所示。
图1 局域网仿真拓扑图
在整个拓扑图里,有3个局域网,分别命名为LAN1、LAN2、LAN3,每个局域网里都有3个节点,分别命名为node1、node1、node2,3个局域网通过路由器相连。在整个仿真过程中,有4条TCP流,分别从LAN1的node1到LAN2的node1,LAN1的node2到LAN3的node1,LAN3的node2到LAN2的node3,LAN2的node2到LAN1的node3,分别命名为TCP1,TCP2,TCP3,TCP4流。仿真链路速率为10Mbps和 桂林电子科技大学学报 2009年12月478
100Mbps两种情况下相应的网络性能。TCP流包大小是1200byte,仿真时间是50s。2.1 10Mbps局域网仿真性能
在10Mbps局域网中,网络参数如图1中链路所
示。大量的实验表明在仿真的环境里最大平均往返时延是75ms。因此根据“拇指法则”,路由器缓存大小是10Mbps×75ms=750kb。根据式(1)和式(2)计算出“拇指法则”和“斯坦福法则”下队列长度分别是78个包和39个包。具体的网络性能如表1所示。
表1 10Mbps局域网中两种缓存容量设置法则的比较
缓冲区大小/pkt
78
流(-)TCP0TCP1TCP3TCP4
39
TCP0TCP1TCP3TCP4
平均延迟/s0.067070.051840.058820.074690.059250.049350.052250.06531
平均吞吐量/kbps2006.442082415.255952276.923141785.967351343.286362594.403432058.59312067.33884
8063.622总吞吐量/kbps
8484.60
丢包率(-)0.0035490.0012430.0031260.0011040.0090980.0005110.0032410.011267
0.024117总丢包率(-)0.009022
从表1可以看出,在10Mbps的局域网中,使用“斯坦福法则”的总吞吐量比“拇指法则”的总吞吐量下降了7.78%,丢包率提高了6倍,但平均时延略微下降。这是因为缓存容量减小了,但发送速率保持不变,导致缓冲区溢出、丢包率提高,从而引起吞吐量的下降。因此,在“斯坦福法则”下,要保持较小的丢包率,降低发送速率是必要的。
在仿真中还发现,队列长度超过70个包以后,网络的性能没有任何变化。这说明无限增大队列长度不能提高网络性能,反而浪费了资源、增加了成本。
2.2 100Mbps局域网仿真性能
在100Mbps局域网中,局域网内部链路的带宽和延迟分别是100Mb和0.1ms,局域网与路由器的带宽和延迟分别是20Mb和10ms。大量的实验表明在仿真的环境里最大平均往返时延是36ms。因此根据“拇指法则”,缓冲区大小是100Mbps×36ms=3600kb。根据式(1)和式(2)计算出“拇指法则”和“斯坦福法则”下缓冲队列分别是375个包和188个包。具体的网络性能如表2所示。
表2 100Mbps局域网中两种缓存容量设置法则的比较
缓冲区大小/pkt
375
流(-)TCP0TCP1TCP3TCP4
188
TCP0TCP1TCP3TCP4
平均延迟/s0.060310.04360.040050.052820.046690.03970.031810.04178
平均吞吐量/kbps1119.524043483.578642954.118261808.389641398.27063231.697093157.897011201.25871
8989.123总吞吐量/kbps9365.611
丢包率(-)0.0019810.0013760.0001790.0001700.0031800.0008680.0019900.003982
0.01002总丢包率(-)0.003706
从表2可以看出,“斯坦福法则”下总吞吐量比“拇指法则”下的总吞吐量下降约2.21%,总丢包率也提高了1.6倍,平均延迟稍有下降。原因与10Mbps局域网相同。
表1和表2的数据显示:当按照“斯坦福法则”设置了缓存容量后,10Mbps和100Mbps的局域网中第6期 马金忠等:基于TCP协议模型的路由器缓存容量设置方法 479
吞吐量分别下降了7.78%和4.6%,丢包率分别提高了6倍和1.6倍。丢包率的升高将引起吞吐量的下降和延迟增大,同时会引起带宽的不均匀。
仍然能够保证核心路由器的性能稳定,将是下一步研究的方向。随着研究的深入,相信会有更多的的算法出现。
参考文献:
[1] VILLAMIZARC,SONG
C.High
performance
TCP
in
ANSNET[J].ACMComputerCommunicationReview,1994,24(5):45-60.
[2] APPENZELLERG,KESLASSYI,MCKEOWNN.Sizing
routerbuffers[A].INProceedingsoftheSIGCOMM2004[C].NewYork:ACMPress,2004:281-292.
[3] 李玉峰,邱菡,兰巨龙,等.路由器缓存需求[J].软件学报,2008,
19(3):733-743.
[4] Thenetworksimulatorns-2:Documentation[EB/OL].http://
www.isi.edu/nsnam/ns/ns-documentation.html,2008-08-24.[5] MORRISR.
ScalableTCPcongestioncontrol
[A].IN
ProceedingsoftheIEEEINFOCOM2000[C].IEEE2000:1176-1183.
[6] 景新幸,邵英保,赵家友.高速路由器设计的技术关键[J].桂林
电子工业学院学报,2001,21(3):45-48.
[7] ANDREWO.Datanetworksarelightlyutilizedandwillstay
thatway[J].ReviewofNetworkEconomics,2003,2(3):210-237.
[8] ODLYZKOAM.Thecurrentstateandlikelyevolutionofthe
Internet[A].INProcceedingsoftheIEEEGLOBECOM1999[C].IEEE,1999:1869-1875.
[9] 杨梅樾,马祥杰,罗敏轩.核心路由器缓存容量问题的研究[J].
计算机工程,2008,34(3):122-126.
[10] STANOJEVIR,ROBERTN.Shorten.AdaptiveTuningof
Drop-TailBuffersforReducingQueueingDelays[J].IEEECOMMUNICATIONSLETTERS,2006,10(7):570-572.
3 后续研究的方向
2.2节中对10Mbps和10Mbps局域网中“姆指法则”和“斯坦福法则”进行了仿真,从表1和表2的数据可以得到:缓存小使得延迟降低,但无法满足吞吐量和丢包率的要求。而缓存大,能够满足吞吐量和丢包率的要求,但延迟和设计复杂度都增大了。因此,如何设置缓存容量从而实现丢包率、吞吐量、时延和设计复杂度的最佳折衷,是后续研究的方向之一%~30%
[7-8]
[5-6]
。
另外,目前核心路由器的链路利用率也仅为20
,而“拇指法则”和“斯坦福法则”都是保
证链路使用率接近100%。在实际的网络中如果不追求100%的链路利用率,在保证网络性能不下降的前提条件下,缓存容量还可以进一步下降,从而降低路由器的设计复杂度并能节约成本[9],这是后续研究的另外一个方向。ADT算法
[10]
就是通过自适应的调整
缓冲队列大小,在牺牲1%~2%链路利用率的前提下,降低了路由器缓存容量,减小了时延。
4 结束语
基于TCP协议模型的路由器缓存容量设置方法中,如何设置缓存大小从而在链路利用率为100%的前提下,折衷丢包率、吞吐量、时延等网络性能以及从经济角度考虑,在降低一定的链路利用率的情况下,
责任编辑英文编辑
梁王欢 陆小明
因篇幅问题不能全部显示,请点此查看更多更全内容