NS-2下的TCP和TCP Reno模块分析

NS-2下的TCP和TCP Reno模块分析

ID:40947359

大小:166.06 KB

页数:29页

时间:2019-08-11

NS-2下的TCP和TCP Reno模块分析_第1页
NS-2下的TCP和TCP Reno模块分析_第2页
NS-2下的TCP和TCP Reno模块分析_第3页
NS-2下的TCP和TCP Reno模块分析_第4页
NS-2下的TCP和TCP Reno模块分析_第5页
资源描述:

《NS-2下的TCP和TCP Reno模块分析》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、我论文的一部分龙滨2006-12-28整理第3章NS-2下的TCP和TCPReno模块分析3.1NS-2简介NS是由UCBerkeley开发的,基于C++和Otcl两种程序设计语言实现的网络环境模拟器,用于各种IP网络环境。目前NS实现了对许多网络协议的模拟,如TCP,UDP,和数据源发生器(trafficsource)如FTP,WWW,Telnet,Web,CBR和VBR等。同时模拟了路由队列的管理机制,如DropTail,RED和VBR,也实现了Dijkstra和其他的路由算法。本论文采用NS-2环境,分析了TCP和TCPVeno协议,并

2、由此构造出NS-2下的TCPVeno协议环境。如果不做说明,本章及以后的TCP协议都是指的TCPTahoe协议。3.2NS-2下的TCP模块分析3.2.1NS-2下的TCP模块介绍本测试采用了NS-2.26环境,TCP及TCP模块放在ns-allinone-2.26s-2.26tcp目录下,涉及tcp.h,tcp.cc,tcp-reno.cc三个文件。另外,各模块的默认参数文件ns-default.tcl放在ns-allinone-2.26s-2.26tcllib目录下。由于只是用于网络模拟,这里的TCP模块是单向代理,发送端和

3、接收端分离开,接收端不能发送数据(只能发送ACK),而发送端也不能接收数据(只能接收ACK)。单向连接对于我们的测试来说,是没有影响的。TCP模块的tcp.cc和tcp.h文件包含TCPTAHOE及其各中改进版本可能用到的公用参数和公用子程序,改进版本包括TCPVegas、TCPReno、NEWReno,应用了其他一些改进算法的TCP如TCPABS、TCPFACK、TCPQS等也用到了这些参数和子程序。在这里我们对其他的改进算法不进行分析,仅分析接收和运行TCPVeno有关的参数和子程序。TCP与上层应用层的数据交换(如FTP等)使用了sen

4、d_msg(nbytes,char*),由FTP调用,将FTP的数据发送到TCP层。而TCP在对FTP的数据进行分组处理后,与下层IP层进行通信,交换数据用到了底层的子程序send_one(*pkt,flags),由TCP调用,用来将单个数据包发送到IP层,并由IP层进行转发到目的地。3.2.2TCP模块的分组头NS-2采用了分组头的概念,用分组头代表一个分组,而没有具体的数据。发送和接收都只处理分组头,因为网络模拟是不需要具体的数据的,并且这种设计降低了计算机的开销,使单台计算机进行模拟网络成为可能。NS-2中,一个分组由多个分组头构成,如

5、一个分组可以包括IP分组头、TCP分组头、RTP分组头、AODV分组头等。如果只传TCP,就可以去掉其他分组头。TCP的分组头在tcp.h中定义。如下:structhdr_tcp{doublets_;/*发端发送时盖的时间戳*/doublets_echo_;/*对端收到时盖的时间戳*/intseqno_;/*本数据包的发送序号*/intreason_;/*重传的原因*/…staticintoffset_;//本分组头在分组中的偏移量inlinestaticint&offset(){returnoffset_;}//取得偏移量值inlinest

6、atichdr_tcp*access(Packet*p){//用于从分组获取本TCP分组头return(hdr_tcp*)p->access(offset_);}/*用于获取前面参数的子程序*/double&ts(){return(ts_);}double&ts_echo(){return(ts_echo_);}int&seqno(){return(seqno_);}int&reason(){return(reason_);}…};其中ts_、ts_echo_用于计算rtt时间,offset_记录下本TCP分组头在该分组中的偏移,而acess

7、(*p)则根据此偏移量来获取该分组。TCP的发端和收端就是通过发送本端TCP分组头和接收对端分组头,来获取数据包的序号等信息,完成双方的通信。3.2.3TCP模块参数介绍除了分组头的参数,TCP中的大量参数在TCP代理的类定义classTcpAgent中给出。下面列出了常用的参数:TracedIntt_rtt_;/*往返时间RTT*/TracedIntt_srtt_;/*平滑的RTT时间*/TracedIntt_rttvar_;/*RTT的抖动平均偏差(均方值)*/TracedIntt_backoff_;/*计算RTO的回退因子,每次超时,有

8、RTO=RTO*2。*/intT_SRTT_BITS;/*用于更新SRTT的指数权值*/intT_RTTVAR_BITS;/*用于更新RTTVAR的指数权值*/do

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。