欢迎来到天天文库
浏览记录
ID:33706861
大小:110.00 KB
页数:6页
时间:2019-02-28
《ns-2实践:分析tcp的拥塞控制原理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、NS-2实践:分析TCP的拥塞控制原理作者:何坚(来源:赛迪网) http://www.csai.cn 2005年07月05日 之前我曾经给大家介绍了如何安装网络模拟器NS-2,如何安装移动IPv6快速切换协议的扩展,以及如何使用NAM和XGRAPH对试验结果进行分析(请参见《NS-2实践:在NS-2环境下模拟移动IPv6的快速切换》)。这篇文章中,我将在上篇文章的基础上,给大家详细介绍如何利用XGRAPH来分析TCP的拥塞控制原理。 TCP是TransmissionControlProtocol的
2、缩写,即传输控制协议,它对应于OSI七层模型中的传输层,建立于网络层之上。TCP旨在给互联网提供一种可靠的端到端的字节传输流。 自从1988年问世以来,TCP在研究者的努力下先后得到了许多新的发展,目前主要的模型包括四个,即TCPTAHOE,TCPRENO,TCPNEWRENO和TCPSACK。TCPTAHOE模型是最早的TCP协议之一,它由Jacobson提出。Jacobson观察到,TCP报文段(TCPSegment)丢失有两种原因,其一是报文段损坏,其二是网络阻塞,而当时的网络主要是有线网络,不易出
3、现报文段损坏的情况,网络阻塞为报文段丢失的主要原因。针对这种情况,TCPTAHOE对原有协议进行了性能优化,其特点是,在正常情况下,通过重传计时器是否超时和是否收到重复确认信息(dupack)这两种丢包监测机制来判断是否发生丢包,以启动拥塞控制策略;在拥塞控制的情况下,采用慢速启动(SlowStart)算法和快速重传(FastRetransmit)算法来控制传输速率。 在试验中,我们以TCPTAHOE模型为例,对TCP的拥塞控制原理进行分析,包括两种丢包监测机制和拥塞控制中的慢速启动算法和快速重传算法。
4、 1.TCP拥塞控制相关技术简介 1.1慢速启动算法 在TCPTAHOE模型中,拥塞控制主要是通过调整发送端的发送速率,而这又主要是通过三个变量实现的:拥塞窗口(CongestionWindow),接收端窗口(Receivers’sWindow),慢速启动阈值(SlowStartThreshold,SSTHRESH)。发送端一旦监测到数据包丢失(其原因可能是重传计时器超时,亦可能是收到重复的ACK信令),它就会开始调整发送速率。这包括,ssthresh调整为当前拥塞窗口的一半,同时拥塞窗口将降低到1个报
5、文段。然后,随着通信过程的恢复,拥塞窗口持续增长。在拥塞窗口大小未达到ssthresh之前,它以指数速度增长;到达之后则开始线性增长。有趣的是,虽然这种算法称为慢速启动算法,但实际上一点儿也不慢,它是指数增长的。 1.2快速重传算法 当发送端连续收到3个对应于同一个序列号的ACK信令时,就触发了其快速重传算法,即发送端不等重传计时器超时,立即向接收端发送指定的报文段。 1.3丢包检测机制有如下两种 (1).重复ACK信令 重复ACK有两个作用,其一,发送端可以确信该ACK序列号之前的TCP报文段都
6、已经被接收端成功接收;其二,发送端可以据此判断出接收端接收到的TCP报文段发生了乱序的情况和接收端当前期待的TCP报文段序列号,从而触发其拥塞控制策略。 (2).超时重传 发送端发出报文段后,在规定的时间内没有能够收到接收端返回的ACK信令,从而使得发送端认为该报文段丢失,触发其拥塞控制策略。在这里面主要涉及到重传计时器(retransmissiontimer),它是TCP协议中最重要的计时器。根据《ComputerNetworks,FourthEdition》,当报文段发出后,重传计时器立即启动,如果
7、发送端在计时器超时之前得到ACK,则计时器停止;如果计时器超时后仍然没有收到ACK,那么报文段就重传,并且计时器重新启动。计算超时的主要公式有: Timeout=RTT+4×D D=αD+(1-α)
8、RTT-M
9、 RTT=αRTT+(1-α)M 其中M、RTT、D均为可变值,M是当次的RTT值。 2.试验网络拓扑图与参数 该试验基于NS-2网络模拟器,并在我们之前搭建好的无线环境中进行,试验目的是分析TCP拥塞控制原理。 图1是试验网络拓扑图。由于网络层协议是移动IPv6,因此有名称为通信节点
10、(CorrespondingNode,CN)、家乡代理(HomeAgent,HA)、接入路由器(AccessRouter,AR)、移动节点(MobileNode,MN)的网络实体,其中CN为数据发送端,MN为数据接收端,AR是接入路由器,HA则对于我们这次的试验没有影响,因此不予介绍。NodeX为普通网络节点。网络链路的典型参数,即带宽和延迟,标于每条链路之上。 一般情况下,由于Internet上传送的数据量大
此文档下载收益归作者所有