《基于OMNeT_的TCP_IP协议仿真.pdf》由会员分享,可在线阅读,更多相关《基于OMNeT_的TCP_IP协议仿真.pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第24卷 第4期2005年8月兰 州 交 通 大 学 学 报(自 然 科 学 版)Journal of Lanzhou Jiaotong University(Natural Sciences)Vol.24 No.4Aug.2005 文章编号:10014373(2005)04009604基于OMNeT+的TCP/IP协议仿真3李,吴辰文(兰州交通大学 信息与电气工程学院,甘肃 兰州 730070)摘 要:描述了OMNeT+平台及基于它上的TCP/IP模型,在现有模型实现的基础上,通过试验验证改进后模型的可用性,对改进后的几项重要性能TCPDUMP输出、延迟确认和持续计时器进行阐述,比较了TCP
2、友好性与非对称连接的性能,以TCP模型为例对几项重要的仿真结果进行分析,得出TCP模型的特征与不足.关键词:OMNeT+;网络仿真;TCP/IP;网络性能;延迟中图分类号:TP393.01 文献标识码:AOMNeT+(对象导向式模块化离散式建模仿真器)1是一个开放资源仿真包,最初用于通信网络及分布式系统的仿真,可以运行在Unix和Win2dows环境下.目前已经用它模拟了许多模型,这些模型中有简单的排队模型,也有对实际协议的仿真,如TCP/IP模型等.TCP/IP作为当今最广泛使用的协议之一,可利用仿真进一步探索其功能.本文正是利用OMNet+对TCP/IP协议进行仿真,通过试验验证TCP模型
3、的可用性,比较TCP友好性与非对称连接的性能,得出TCP模型的特征与不足.可以把从这些测试中得出的结果与已有的结果进行比较,总结出OMNeT+仿真的优越之处,然后在此基础上研究更多的扩展模型.1OMNeT+介绍OMNeT+仿真模型用两种不同的语言编写:NED和C+.NED(NEtwork Description)语言描述仿真的拓扑设计,其中可以定义模块、链路、网络.C+执行NED语言定义的模块,OMNeT+仿真库可以模拟模型中的任何方法,其中包括进度表及取消的事件进程,还包括图形工具Plove(用于绘制统计数据和生成数据).OMNeT+仿真有两种运行方式:视图和文本.视图仿真特别适用于初次运行
4、或对网络协议很熟悉的模拟,它以动画的形式显示两个模块间传递信息的过程,对于更大规模的仿真可进一步显示每个模块间的信息传递.2 基于OMNeT+的TCP/IP实现2.1 现有的实现TCP的简化模型如图1所示.文献2 给出了其完整模型,图中的所有模块都定义成.ned文件,可以执行完整的TCP有限状态机.顶层模块是非对称客户服务器网络,仿真了一个简单客户/服务器网络,分别设置上传和下载带宽(非对称带宽).该网络由一个客户机和服务器构成,它们是普通IP节点模块的特殊实例,两节点间用一简单交换机连接,交换机用于以给定的下行丢包概率给其他主机传送数据.两个TCP节点共享4个子模块:出错处理模块解决来自其他
5、模块的错误通告,这些出错消息打印之后被丢弃;处理器管理程序模拟TCP节点处理器的用法,可以使用该节点为每个即将处理的IP包设置处理延迟;网络层模块模拟网络层及以下各层;网络接口模块模拟实际的网络接口;路由表模块用于生成路由信息;另外还有输入队列和输出队列模块,关于输出队列的更多子模块这里不再赘述.实际的TCP协议栈在TCP上层模块及它的子模块中.TCP应用模块模拟TCP的应用;TCP/IP接口模块有两个子模块:TCP向IP层传送数据包的TCP到IP模块及IP向TCP层传送数据包的IP到TCP模块;TCP协议的具体实现都在TCP模块3收稿日期:20050427基金项目:甘肃省自然科学基金项目(Z
6、S003B35026C)作者简介:李(1979),女,甘肃永登人,硕士研究生.第4期李 等:基于OMNeT+的TCP/IP协议仿真图1 基于OMNeT+的TCP模型Fig.1TCP model based on OMNeT+中,诸如重传计时器、滑动窗口算法、期待确认等.该模块实现了TCP第一次版本的所有基本性能,其中有几项性能可以根据具体需求开启或关闭,包括:延迟确认、快速重传、快速恢复等.2.2 改进后的实现2.2.1TCPDUMP输出现有的TCP模块能产生许多调试信息,诸如TCP有限状态机的传输以及传输控制块(TCB)中存储的不同连接信息,但是这些对于查找TCP执行中的错误并无帮助.文献3
7、中的Unix输出程序“TCP2DUMP”可以显示TCP的传输过程的输出情况.由于TCP模型是基于OMNeT+的完整TCP实现的仿真,所以模型可以输出和“TCP2DUMP”程序一样格式的调试信息.图2给出了服务器(地址61.178.63.157,端口号80)和客户机(地址202.201.23.50,端口号1093)间传输数据的TCP2DUMP输出实例.1202.201.23.50.1093 61.178.63.157.80:S 62041:62041(0)win 65535 261.178.63.157.80 202.201.23.50.1093:S 15672:15672(0)ack 6204
8、2 win 5840 3202.201.23.50.1093 61.178.63.157.80:.ack 1 win 655354202.201.23.50.1093 61.178.63.157.80:P 1:409(408)ack 1 win 65535561.178.63.157.80 202.201.23.50.1093:.ack 409 win 6432661.178.63.157.80 202.201.23.50.1093:P 1:181(180)ack 409 win 64327202.201.23.50.1093 61.178.63.157.80:.ack 181 win 653
9、558202.201.23.50.1093 61.178.63.157.80:P 409:963(554)ack 181 win 65355961.178.63.157.80 202.201.23.50.1093:.ack 963 win 77561061.178.63.157.80 202.201.23.50.1093:.181:1641(1460)ack 963 win 77561161.178.63.157.80 202.201.23.50.1093:.1641:3101(1460)ack 963 win 77561261.178.63.157.80 202.201.23.50.1093
10、:F 3101:3161(60)ack 963 win 775613202.201.23.50.1093 61.178.63.157.80:.ack 3101 win 6553514202.201.23.50.1093 61.178.63.157.80:.ack 3162 win 6547515202.201.23.50.1093 61.178.63.157.80:F 963:963(0)ack 3162 win 654751661.178.63.157.80 202.201.23.50.1093:.ack 964 win 7756图2TCPDUMP输出的仿真结果Fig.2Tcpdump ou
11、tput from simulation 图2中前3行是连接设置,客户机发送一个SYN数据段给服务器,初始序列号(ISN)62041,然后服务器回复另一个SYN数据段,附带自己的初始序列号15672及对刚才接收的SYN数据段的ACK确认,最后客户机再发送ACK,确认已收到服务器发送的SYN数据段,连接建立.接下来的411行,服务器和客户机交互传输数据,P标志的目的是推进从源端到目的端的数据传送.1216行释放连接,F表示来自发送者的数据结束.2.2.2 延迟确认当延迟确认开启时,TCP的实现存在以下问题.通常TCP接收到数据时并不立刻回复确认79兰州交通大学学报(自然科学版)第24卷ACK,而
12、是采用延迟确认,即在返回的数据包中附带前一数据的ACK(捎带确认),若一段时间以后没有确认回复,则定时器停止并最终发送ACK,当接收到期待的不同序列号的数据包时立即发送ACK确认.还有一种机制可触发TCP立刻发送确认ACK,即当接收到两个连续未被确认的数据包时.延迟ACK包的发送由定时器正确控制,但以前并没讨论接收到的是两个连续未被确认的数据包的情况.在该TCP模型中加入了这一机制,即每接收到一个没有被立即确认的数据包计数器增加1,当计数器计到2时发送ACK,计数器在延迟ACK定时器关闭或者其他原因造成的回复ACK的情况下复位.触发立刻发送ACK还有另外一个原因:当某个数据包丢失时TCP节点发
13、送两个一样的ACK包,重传后收到该包时应该立刻发送ACK以使数据继续传输.该文中通过发送3个一样的ACK包来实现这一功能.2.2.3 持续计时器持续计时器机制在TCP的实现中并无描述,TCP的流量控制是通过由接收机指定将要接收的数据量(窗口大小)来执行的.若窗口等于0,发送机停止发送,但最终发送进程会重新执行;若窗口大于0,发送机重新开始发送.但是,如果该ACK丢失,接收机在等待数据,而发送机却认为接收机的窗口等于0,从而进入死锁状态.持续计时器就是为了解决这一问题而设计的,当其它节点宣布窗口为0时计时器复位,超时周期用标准TCP指数回归算法计算,比如以太网第1次超时的周期为1.5 s.第2次
14、超时发生时超时周期为第1次的2倍即3 s,第3次为第1次的4倍,依此类推,但它总在560 s之间变化.当计时器计满时发送端发送一个字节的数据,接收端相应的回复ACK.3TCP/IP模型的仿真结果分析3.1TCP友好性3.1.1TCP友好性规则计算两主机间的可用带宽公式为带宽=(1.22MTU)/(RT TLoss)(1)式中:MTU是所用最大数据包单元,字节;RT T是往返时间,s;Loss是传输中的丢包率,最后算出每s多少字节的带宽.公式(1)已经用仿真以5%的丢包率4做了验证,如果丢包率太高则计算出的带宽也会过高.3.1.2仿真设置为了验证TCP友好性规则,在仿真中设置了由发送机、接收机及
15、交换机组成的简单网络.每次仿真发送机向接收机发送等量(约120 MB)的数据,往返时间固定(RT T=60 ms),连接带宽1 GB/s,接收窗口设置为最大值64 KB,则每s可以发送64100060=1066.67 KB.传输连接中的丢包情况是随机数,对于每种丢包情况运行10次仿真,每次运行丢包总数增加0.1%.该模拟中采用TCP Reno 标准TCP协议:慢启动、拥塞避免、快速重传和快速恢复,没有延迟确认.有效传输速率为客户机建立连接到释放连接之间的总传输数据量除以连接时间,连接时间包括建立和撤销连接时所消耗的时间.3.1.3 试验结果分析仿真正常运行在低丢包率(0%2%)的情况下,丢包率
16、越大,成功运行的仿真越少.由于TCP没有完全执行,在高丢包率的情况下仿真运行一段时间就会停止(即没有包发送/接收),由于传输数据量少,成功运行的仿真所产生的结果也并不可靠,所以对于不可靠的数据作出假定:只有丢包率低于平均值的仿真才能成功运行.在高丢包率的情况下,仿真结果与理论值差距很大,理论上的吞吐量大概是仿真值的两倍,由前面的公式可知,丢包率高时(5%)理论上的吞吐量本身就高,显然这种差距是TCP在OMNeT+中的不完全运行造成的,当丢包率在(0%2%)之间时,仿真结果与公式计算结果一致.3.2 非对称连接3.2.1TCP与非对称连接现在大多数的Internet用户都是家庭用户,这些连接中存
17、在着多种非对称形式,表现在可用带宽、丢失率及访问时间等.最常见的是非对称带宽,典型例子如ADSL(非对称数字用户线路)技术和线缆调制解调器,其下载和上传的速率比是25:1,即下载带宽是可用上传带宽的25倍.这种非对称对TCP的实现(比如数据进行单向传输时)有很大的影响,尤其当局端至用户端的下行(DownStream)连接有丢包时,整个吞吐量都会受到非对称的影响5.TCP通过确认来建立可靠连接,发送端如果不能及时收到确认信号,它将无法使用下行连接的整个带宽.本文采用标准带宽率k6来描述非对称连接,即下行与上行带宽间的比例除以两个方向的数据包89第4期李 等:基于OMNeT+的TCP/IP协议仿真
18、的比例,如下行带宽10 Mb/s,上行带宽28.8 kb/s,下行链路的数据包1 460字节,上行链路上的确认包40字节(20字节的IP头,20字节的TCP头,无数据)的标准带宽率为k=1010628.8103/1460409.5,它表示如果这种情况持续一段时间,则接收端的发送缓冲器饱和(包括ACK包),队列中有丢包出现.因为每接收到一个ACK确认发送机的拥塞窗口就要增加,所以下行链路在使用全部带宽之前将耗费更多的时间.3.2.2 测试结果分析在OMNeT+中用TCP Reno模型,采用两个不同数据包(536字节和1460字节)做了四个非对称连接的试验,各数据包一个试验,延迟确认关闭和开启各一
19、个试验.仿真设置:下行带宽10 Mb/s,上传带宽28.8 kb/s,两个方向的传输延迟0.03 s,下行连接中有丢包情况.和前面的仿真一样,发送端经下行链路向接收机发送约120 MB的数据,而接收端仅回复ACK包,没有其他数据.这两种数据包在传输速度上有很大的差距.由于拥塞窗口增量有所限制,所以只能发送一定量的数据包,每个包的数据量越大,吞吐量就越高.当使用延迟确认时吞吐量可很大,因为只需要发送一半的ACK包;又上行链路只有拥塞窗口的一半,所以拥塞窗口可增长的很快,但吞吐量低的最重要的原因在于当最大数据包(等于拥塞窗口)发送出去后,在收到确认之前不再发送任何数据,所以即使拥塞窗口增加到最大值
20、仍然无法保证非常高的吞吐量.又TCP的上传带宽很小,下载/上载带宽比例很大,故即使没有丢包也不可能以全部传输能力下载.4 结论论文的目的是通过模拟试验(TCP/IP协议仿真)熟悉OMNeT+仿真环境.试验证明基于OMNeT+的TCP/IP模型可以正常工作,但是存在不全面性:其特性有些丢失,有些没有被正确的实现,而且整体实现起来有一定困难.OMNeT+有许多强大的功能,人们在选择仿真工具时希望用它仿真的模型可以100%的模拟实际环境7,所以,OMNeT+将来能否成为非常通用的仿真器需要期待其更进一步的发展.参考文献:1Varga A.OMNeT+simulation modelsDB/OL.ht
21、tp:/www.omnetpp.org,20041007.2Varga A.ITPuite documentationDB/OL.The INETFramework for OMNeT+,20050311.3Stevens W R,Wright G R.TCP/IP illustrated addisonwesley professional computing series,Reading,Mass EB/OL.AddisonWesley Pub.Co.1994.4Floyd S,Fall K.Router mechanisms to support EndtoEnd congestion
22、controlDB/OL.CiteSeer IST,199803.5Balakrishnan H,Padmanabhan V N.How network as2symetry affects TCP EB/OL.IEEE Communications,20016Lakshman T V,Madhow U,Suter B.Windowbasederror recovery and flow control with a slow acknowl2edgemeng channel:A Study of TCP/IP Performance EB/OL.IEEE Infocom,1997.7 吴辰文
23、.一种新的LAN系统性能评价方法J.兰州大学学报,2004,40(4):4958.TCP/IP Simulation Based on OMNeT+Li Yue,Wu Chenwen(School of Information and Electrical Engineering,Lanzhou Jiaotong University,Lanzhou 730070,China)Abstract:The OMNeT+package and TCP/IP model based on OMNeT+are presented.On the baseof the existing implementa
24、tion,the use of the improved model is proved through experiments.Several dis2tinct features,such as TCPDUMP out,delayed acknowledgement and persistent timer are expounded.Fur2thermore,the friendliness of TCP and its performance of asymmetric connection are compared.Finally,sev2eral simulations are anlysed,taking TCP model as the example,and the advantages and disadvantages ofTCP model are reached.Key words:OMNeT+;network simulation;TCP/IP;network performance;delay99