




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、NS-2 实践:分析 TCP 的拥塞控制原理作者:何坚(来源:赛迪网)http:/2005 年 07 月 05 日之前我曾经给大家介绍了如何安装网络模拟器 NS-2,如何安装移动 IPv6 快速切换协议的扩展,以及如何使用NAM 和 XGRAPH 对试验结果进行分析(请参见NS-2 实践:在 NS-2 环境下模拟移动 IPv6 的快速切换)。这篇文章中,我将在上篇文章的基础上,给大家详细介绍如何利用 XGRAPH 来分析 TCP 的拥塞控制原理。TCP 是 TransmissionControlProtocol 的缩写,即传输控制协议,它对应于 OSI 七层模型中的传输层,建立于网络层之上。T
2、CP 旨在给互联网提供一种可靠的端到端的字节传输流。自从 1988 年问世以来,TCP 在研究者的努力下先后得到了许多新的发展,目前主要的模型包括四个,即 TCPTAHOE,TCPRENO,TCPNEWRENO 和 TCPSACK。TCPTAHOE 模型是最早的 TCP 协议之一,它由 Jacobson 提出。Jacobson观察到,TCP 报文段(TCPSegment)丢失有两种原因,其一是报文段损坏,其二是网络阻塞,而当时的网络主要是有线网络,不易出现报文段损坏的情况,网络阻塞为报文段丢失的主要原因。针对这种情况,TCPTAHOE 对原有协议进行了性能优化,其特点是,在正常情况下,通过重传
3、计时器是否超时和是否收到重复确认信息(dupack)这两种丢包监测机制来判断是否发生丢包,以启动拥塞控制策略;在拥塞控制的情况下,采用慢速启动(SlowStart)算法和快速重传(FastRetransmit)算法来控制传输速率。在试验中,我们以 TCPTAHOE 模型为例,对 TCP 的拥塞控制原理进行分析,包括两种丢包监测机制和拥塞控制中的慢速启动算法和快速重传算法。1.1. TCPTCP 拥塞控制相关技术简介1.11.1 慢速启动算法在 TCPTAHOE 模型中,拥塞控制主要是通过调整发送端的发送速率,而这又主要是通过三个变量实现的:拥塞窗口(CongestionWindow),接收端窗
4、口(ReceiverssWindow,慢速启动阈值(SlowStartThreshold,SSTHRESH)。发送端一旦监测到数据包丢失(其原因可能是重传计时器超时,亦可能是收到重复的 ACK 信令),它就会开始调整发送速率。这包括,ssthresh 调整为当前拥塞窗口的一半,同时拥塞窗口将降低到 1 个报文段。然后,随着通信过程的恢复,拥塞窗口持续增长。在拥塞窗口大小未达到 ssthresh 之前,它以指数速度增长;到达之后则开始线性增长。有趣的是,虽然这种算法称为慢速启动算法,但实际上一点儿也不慢,它是指数增长的。1.21.2 快速重传算法当发送端连续收到 3 个对应于同一个序列号的 AC
5、K 信令时,就触发了其快速重传算法,即发送端不等重传计时器超时,立即向接收端发送指定的报文段。1.31.3 丢包检测机制有如下两种.重复 ACK 信令重复 ACK 有两个作用,其一,发送端可以确信该 ACK 序列号之前的 TCP 报文段都已经被接收端成功接收;其二,发送端可以据此判断出接收端接收到的 TCP 报文段发生了乱序的情况和接收端当前期待的 TCP 报文段序列号,从而触发其拥塞控制策略。.超时重传发送端发出报文段后,在规定的时间内没有能够收到接收端返回的 ACK 信令,从而使得发送端认为该报文段丢失,触发其拥塞控制策略。在这里面主要涉及到重传计时器(retransmissiontime
6、r),它是 TCP 协议中最重要的计时器。根据ComputerNetworks,FourthEdition,当报文段发出后,重传计时器立即启动,如果发送端在计时器超时之前得到 ACK,则计时器停止; 如果计时器超时后仍然没有收到新启动。 计算超时的主要公式有:Timeout=RTT+4DD=aD+(-Pa)|RTTM|RTT=aRTT+(1-a)M其中 M、RTT、D 均为可变值,M 是当次的 RTT 值。. .试验网络拓扑图与参数该试验基于 NS-2 网络模拟器,并在我们之前搭建好的无线环境中进行,试验目的是分析 TCP 拥塞控制原理。图 1 是试验网络拓扑图。由于网络层协议是移动 IPv6
7、,因此有名称为通信节点(CorrespondingNode,CN)、家乡代理(HomeAgent,HA)、接入路由器(AccessRouter,AR)、移动节点(MobileNode,MN)的网络实体,其中 CN 为数据发送端,MN 为数据接收端,AR 是接入路由器,HA 则对于我们这次的试验没有影响,因此不予介绍。NodeX 为普通网络节点。网络链路的典型参数,即带宽和延迟,标于每条链路之上。一般情况下,由于 Internet 上传送的数据量大,相应的延迟比较大,因此 Internet 的延迟设为了 50ms;无线网络的带宽比较小,因此我们设为了 1M。整个试验过程持续 80 秒。CN 为
8、FTP 型的数据源,TCP 报文段大小为 256bytes,拥塞控制窗口(CongestionWindow)为 32。CN 从第 6 秒开始向 MN1 发送 TCP 报文段,一直到整个试验结束。该 TCP 协议采用 NS-2中的 Tahoe 模型。两个接入路由器(AccessRouter,AR)分别接入两个局域网,它们的位置分别为(85.0,135.0),(155.0,135.0),相隔70 米,AR 的有效覆盖范围是以 AR 自身为中心,半径 40 米的圆,又因为 PAR 和 NAR 在纵坐标相同,因此在他们两者的中心连线上,有 10 米重复的覆盖范围。MN从第5秒开始接收CN发送过来的FT
9、P数据, 经过5秒钟的稳定时间后, 于第10秒以1m/s的恒定速度由位置(85.0,135.1)走到(155.0,135.1)处,相当于沿着 PAR 与 NAR 的中心连线,由 PAR 走向 NAR 处。试验进行到第 80 秒的时候,MN 刚好走到目的地。对于网络节点而言,没有配置好网络层就不能够正常的进行传输层通信。在该试验中,MN 在移动过程中会发生切换,其间由于 MN 需要进行网络层的配置将不能够进行正常的传输层通信,因此 CN 会监测到报文段丢失的情况,并且会启动其拥塞控制策略,这就是我们观察的重点。. .试验与分析我们的测试分为两部分。第一部分试验以重复 ACK 信令彳为 TCP 拥
10、塞控制策略的触发事件,第二部分试验以超时重传作为 TCP 拥塞控制策略的触发事件。每部分都做 10 次模拟试验以求试验数据的客观性。ACK,那么报文段就重传,并且计时器重当试验结束后,我们用 XGRAPH 制图,有两种类型。第一种为 TCP 序列号图,它们基于通信节点(发送报文段的节点)和移动节点(接收报文段的节点)的发送和接收缓存中的 TCP 序列号制成,能反映 TCP 报文段的传输情况,这类图的横坐标为时间,纵坐标为 TCP 序列号。第二类图为拥塞窗口变化图,能反映数据包的传输速率,这类图的横坐标为时间,纵坐标为拥塞窗口大小。首先我们根据图 2 至图 7 来分析通过重复 ACK 信令触发
11、CN(发送节点)启用 TCP 拥塞控制策略的情况。图 4 通信节点和移动节点发送端 TCP 序列号详图图 6 通信节点拥塞控制窗口变化4142图 7 通信节点拥塞控制窗口变化详图其中,图 2 至图 5 是试验期间 CN(通信节点,在试验中又是发送节点)和 MN(移动节点,在试验中又是接收节点)的接收缓存和发送缓存中的 TCP 序列号图。图 6 和图 7 则是试验期间 CN 的拥塞窗口变化图。图 4、图 5分别为为图 2、图 3 红色矩形区域的放大图;图 7 为图 6 蓝色矩形区域的放大图。具体分析如下:.MN 进行切换的过程中,短时间内将不能够接收 TCP 报文段,这在图 5 中,表现为 MN
12、 的接收端 TCP 序列号在 40.4 至40.6 秒期间,有一个缺口;.由于 CN 并不了解 MN 已经不能够接收 TCP 报文段,所以它继续发送数据。可以从图 4 中看到 CN 发送的 TCP 报文段序列号比 MN 的长了一段,而正常通信情况下,应该是 CN 发出的每一个报文段,MN 都会回应一个 ACK 信令,在图中表现为纵坐标相同;.由于 MN 接收的报文段序列号有缺口,意味着它收到了乱序的报文段,因此 MN 发送了一连串的重复 ACK信令,对应于图 4 中一段平行于时间轴的直线;.40.6 秒左右,CN 收到一连串的来自 MN 的重复 ACK 信息,即图 5 中一段平行于时间轴的直线
13、,这就触发了 CN 的拥塞控制策略及快速重传算法;.根据快速重传算法,CN 在收到第 3 个重复确认信令后,不等重传计时器超时,立即发送 MN 在 ACK 信令中所指定的报文段,因此在图 4 中,在 40.6 秒时间轴的右方,有个红色的三角形,即代表 CN 发出的 TCP 报文段。快速重传算法在此处加速了通信速度,因为,CN 与 MN 间的 RTT(RoundTripTime)至少为它们之间网络延迟之和的两倍,即 112 毫秒,RTO(RetransmissionTimeOut)还要更长,如果等到 RTO 超时再重发数据包,则需要花至少 112 毫秒;但实际上,从图 4 中可以看出,CN 重发
14、数据包只花了 40 毫秒左右的时间。因此,快速重传在这里发挥了作用。.与此同时,在图 7 中可以看到,启动拥塞控制策略后,CN 对拥塞窗口大小进行了调整,首先是在 40.6 秒左右降到 1 个报文段,然后根据慢速启动算法,CN 以指数形式来提高拥塞窗口大小,即 20,21,22,23,直到将其调整到慢速启动阈值(SSTHRESH,SlowStartThreshold)。在这里,由于试验中定义拥塞窗口大小为 32,因此,发生网络拥塞时,SSTHRESH 调整为拥塞窗口大小的一半,即 16。从图 7 中可以看出,拥塞窗口大小增长到 16 后进入线性增长阶段。.此外,由于拥塞窗口大小的限制,CN 在
15、快速重传开始后,前面四次 TCP 报文段传送速率分别是一次发送20,21,22,23 个 TCP 报文段,这在图 4 中,表现为红色三角形在 40.6 秒后的四次发送数量分别是 1,2,4,8上述就是根据数据图对重复 ACK 信令引起的拥塞控制策略进行的分析,如果对此有了充分的理解,那么超时重传的情况也与此类似。因此,接下来我们根据图 8 至图 9 来简单说明通过超时重传触发发送端启用 TCP 拥塞控制策略的情况。-UN图 8 通信节点和移动节点发送端 TCP 序列号可以看到,从图 9 中可以看到,50.1 秒左右,由于 MN 开始切换,不能够正常接收 TCP 报文段;并且由于切换时间较长,M
16、N 长时间内都不能够给 CN 进行回应。于是当 CN 等到自己的重传计时器超时,就再次发送没有得到 MN 回应的报文段。在 50.1 秒后,CN 分另 I隔了 0.5 秒,1.0 秒,2.0 秒发送了三次同样的 TCP 报文段,这对应于图 8 中的标记。该超时重传过程持续到 MN 最终完成切换配置,并对第三次重发的报文段进行回应,于是两者开始恢复通信。4 4.小结通过该试验,一方面我们试验数据分析和验证了 TCP 的拥塞控制原理;另一方面,我们可以看到,TCPTAHOE模型并不太适合作为无线网络的传输协议。TCP 协议由于出现的比较早,其性能方面的优化主要是基于传输网络为有线网络这个假设,因此,一旦根据重传计时器超时或者重复 ACK 信令判断出发生了数据包丢失,当前的 TCP 协议就认为发生了网络拥塞,于是启用网络拥塞策略来降低传输速率,比如慢速启动,将拥塞窗口调整为 1 个 TCP 报文段;而实际情况是,我们的传输基于无线网络,当不能够接收到 ACK 信令的时候,很有可能是因为移动节点正在进行切换或者是无线网络的信号不好,因此,需要发送节点保持或者加快发送速率,而不是减速发送。适合无线网络运行的 TCP 协议已
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 学年第一学期幼儿教学工作总结模版
- 创先争优个人学习心得体会模版
- 新生儿单纯疱疹病毒感染的临床护理
- 社保委托代表协议
- 重力教学设计
- 上学期八年级语文教学工作总结模版
- 某精密模具有限公司品质管理系统
- 猫咪输液护理常规
- 部编本大小多少教学设计
- 7S管理培训体系精要
- 批评不可怕课件
- 金蝶K3-ERP系统管理制度
- 厨房用电安全知识
- 通信工程项目管理流程
- 具身智能项目建议书(参考)
- AI系列培训课件-人工智能技术及应用课件第1章
- 云南省昆明市盘龙区2024-2025学年八年级上学期期末质量监测英语试题(含答案)
- DBJT13-369-2021 福建省装配式建筑非砌筑内隔墙技术标准
- 艺术治疗在精神康复中的应用-洞察分析
- 低空准备项目申请报告
- XX市路灯照明工程项目可行性研究报告
评论
0/150
提交评论