分类筛选
分类筛选:

关于教学研究类论文范例 和基于NS2仿真的TCP教学相关论文怎么撰写

版权:原创标记原创 主题:教学研究范文 类别:硕士论文 2024-01-29

《基于NS2仿真的TCP教学》

该文是教学研究类论文范文集与教学研究和TCP教学研究和仿真类论文写作技巧范文。

摘 要本文设计了一个基于NS2 仿真的TCP 教学实验内容.通过NS2的仿真结果,学生可以直观地观察不同版本TCP协议中拥塞窗口的变化情况,从而加深对TCP 协议的理解,不但能提高学生的实践能力,还能有效增加学生的学习兴趣.

关键词NS2 仿真TCP教学TCP 协议

网络协议设计与验证一直是一个非常热门的研究领域,而协议的性能验证在研究中起着决定性的作用.但是建立实际的网络测试平台存在着投资大、建设长、应用效率不高等缺点.而采用网络软件进行仿真为网络协议的性能验证提供了一个很好的途径.本文介绍了一个利用NS2 来仿真TCP协议的实验项目.通过NS2 的仿真,直观地展现出不同版本中拥塞窗口的动态变化过程,帮助学生深刻理解TCP协议的原理.

1 TCP 的拥塞控制原理[1]

TCP 是TCP/IP 体系结构中运输层的一种重要协议,是面向连接的运输层协议.即应用程序在使用TCP协议之前,必须要先建立连接;数据传送完毕之后释放已经建立的TCP连接.TCP拥塞控制的方法主要可分为慢启动、拥塞避免、快速重传、快速恢复四个阶段.

①慢启动也可以称指数增长期,是指每次TCP 接收窗口收到ACK 时都会增长.慢开始的“慢”并不是指cwnd 的增长速率慢,它指的是TCP 开始发送报文段时先设置的拥塞窗口cwnd 为一个较小的数值,从而使得发送方在刚开始只能发送很少的报文,然后才逐渐增大cwnd.相比一下子把很多的报文突然注入到网络要“慢”.

②拥塞避免算法是指在拥塞避免阶段将拥塞窗口控制为按线性规律增长的,使得网络不那么容易出现拥塞,即令拥塞窗口的值缓慢的增大,即每经过一个往返时间RTT 发送方的拥塞窗口按线性规律缓慢增长的.

③快速重传算法是要求接收方每收到一个报文后就立即发出重复确认而不是要等到自己发送数据时才进行捎带确认.

④快速恢复算法是指当发送方连续收到三个重复确认时,就执行“乘法减小”的算法,把慢开始门限减小一半.然后将cwnd 的值设置为慢启动门限减半后的数值,接着开始执行拥塞避免算法,使得拥塞窗口缓慢地呈线性增长.

2 TCP 的几个版本

Tahoe 是TCP 的早期版本,已经具备了TCP 的基本结构,包括慢启动、拥塞避免和快速重传三个基本的拥塞控制算法.

针对Tahoe 不足之处,Jacobson 提出了改进的算法Reno.改进的算法主要表现在两方面:①连续收到3 个重复的ACK 时,无需执行慢启动;②增加了快速重传/ 快速恢复机制.Reno是目前使用最广泛的TCP版本.

NewReno 对Reno 中快速恢复算法进行了补充,考虑了个发送窗口内多个封包同时丢失的情形.在Reno 中,发送方收到一个不重复的应答后就退出“快速恢复”状态,而NewReno 在收到确认后,不会立刻结束快速恢复机制,传送端会持续地重送确认之后的报文,一直到将所有的遗失的报文重新发送后才会结束快速恢复机制,这样就可以使发送端在网络大量地遗失报文时不需要等待超时来触发重送机制就可以更正错误,减小了大量的封包遗失对网络的传输效率造成的影响.

SACK 是NewReno 的另外一个衍生版本.在这个版本里,加入了一个SACK 选项,SACK 的发送端在一个环路响应时间(Round Trip Time,RTT)内可以传送一个以上的遗失的封包.SACK 算法降低了不必要的重传,能有效地从多个数据包丢失中恢复.但是由于SACK 的实现需要同时修改TCP 发送端和接收端的传送机制,增加了TCP 的复杂性,不易大规模地应用.

Brakmo 和Peterson 在1995 年提出了一种基于RTT 测量网络状况的拥塞控制算法,称之为Vegas.是通过观察之前TCP连接中RTT值的改变情况来设置拥塞窗口cwnd.如果发现RTT 变大,即认为网络发生拥塞,并开始减小cwnd;如果RTT 变小,Vegas 则解除拥塞,再次增加cwnd.这样,cwnd 在理想情况下就会稳定在一个合适的值上.即拥塞机制的触发只与RTT的改变有关,而与包的具体传输时延无关.由于它没有采用包丢失来判断网络可用带宽,而改以用RTT 的改变来判断,所以能较好地预测网络带宽使用情况,并且对小缓存的适应性较强,其公平性、效率都较好.

3 基于NS2的仿真结果[2]

从图1 中可以看出,Tahoe 与Reno中cwnd 值都呈现重复的周期性的变化.只要有报文丢失,Tahoe中cwnd 的值就会被重新设置为1,所以每次若有报文丢失,都重新由慢启动开始;而Reno 开始也是执行慢启动,当检测到有报文丢失时,就会把慢启动门槛和cwnd 的值重设为检测到封包遗失时cwnd 值的一半.

从图2 中可以看出,在0.65s 时,NewReno 直接进入了慢启动阶段重新开始后Reno才到了等待超时而快速恢复.而相对于NewReno,SACK 可以直接利用SACK 选项得知那些报文已经被成功接收,从而有针对性地重传,降低了因多个报文丢失造成的超时概率.

从图3 中可以看出,第一条Vegas业务是从0s 开始仿真,10s的时候结束.第二条Vegas业务在5s的时候才开始执行仿真,10s时结束.由图可以看出,Vegas中cwnd 的值会维持在一个比较稳定的状态.即在同构环境下有两个业务时,Vegas 能维持在稳定的状态而且不会因为传输的过快而造成封包的遗失.此外,由图3 还可以看出,两个TCP 业务在6s之后,对于频宽的使用情况显然有点差距,有时候有些连接的cwnd 可能总是会维持在一个比较高的地方,有些则总是维持在比较低的地方.

从图4 可以看出,Reno中cwnd 的值总是维持在较高的地方震荡,而Vegas中cwnd的值总是维持在一个相对较低的位置进行震荡.即当Vegas与Reno同时使用时,前者没办法与后者公平地竞争频宽.这是因为Reno中发送端会持续不断地将报文发送到网络上,直到网络上发生拥塞为止.而Vegas 的发送端在网络开始拥塞时就会将发送端的传送速度降低,来避免拥塞情形的发生.因此,当两者同时使用时Vegas的性能略低于Reno.

4 总结

通过对TCP 的几个版本进行了仿真,并对各个版本中cwnd 的变化进行了对比分析,其结果表明,Tahoe不能有效地利用带宽,并且具有较大的时延;Reno 其算法比较简单且有效,因此是目前使用最广泛的版本.NewReno 对Reno 算法进行了改进,解决了发送端在网络有大量的遗失的封包时不需要等待超时来触发重送机制就可以更正错误,减小了大量的封包遗失对网络的传输效率造成的影响;SACK 算法降低了不必要的重传,可以有效地从多个数据包丢失中恢复,但它的实现需要同时修改TCP 发送端和接收端的传送机制,增加了TCP 的复杂性;Vegas 利用RTT 的改变来判断网络的可用带宽,能较好地预测网络带宽的使用情况,且Vegas 在同构型环境下其公平性、效率都较好,但在异质性环境下Vegas与其它算法在竞争带宽方面存在不公平现象,因此也未能在网络中广泛使用.

参考文献

[1]谢希仁.计算机网络[M].北京:电子工业出版社,2006:180-205.

[2] 柯志亨,程荣祥,邓德隽.NS2 仿真实验:多媒体和无线网络通信[M].北京:电子工业出版社,2009:141-164.

教学研究论文参考资料:

关于英语教学的论文

科学教学论文

教育教学论坛杂志

外语教学期刊

教学论文范文

教育教学论坛期刊

该文评论:本文论述了关于教学研究和TCP教学研究和仿真方面的教学研究论文题目、论文提纲、教学研究论文开题报告、文献综述、参考文献的相关大学硕士和本科毕业论文。

和你相关的