TCP历史版本分析比较及研究_第1页
TCP历史版本分析比较及研究_第2页
TCP历史版本分析比较及研究_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、tcp历史版本分析比较及研究 tcp历史版本分析比较及研究 摘要 tcp协议是一种面向连接的可靠运输协议。tcp通过拥塞控制机制来控制允许传送到络上的数据量。按照拥塞控制方法的不同,tcp分为tahoe, reno, newreno, vegas, sack五个版本。本文通过ns2模拟仿真实验,分析比较并评价不同的tcp 版本。 关键词:ns2 ;tahoe tcp;reno tcp;newreno tcp;vegas tcp;sack tcp abstract tcp is a connection-oriented unicast protocol that offers reliable

2、 data transfer as well as flow and congestion control which used to control the throughput to the network. there are five different tcp versions including tahoe, reno, newreno, vegas and sack according to the congestion control algorithm. in this paper, simulate the five tcp version with ns2, analyz

3、ing, comparing and evaluating the difference among the five tcp versions. key words: ns2 ;tahoe tcp;reno tcp;newreno tcp;vegas tcp;sack tcp 背景 互联最初源于美国国防部的arpanet计划。早在70年代中期,arpa为了实现异种络之间的互联与互通,推出了tcp/ip体系结构和协议规范。时至今日,tcp/ip协议也成为最流行的际互联协议,并由单纯的tcp/ip协议发展成为一系列以ip为基础的tcp/ip协议簇。tcpip协议簇为互联提供了基本的通信机制。互联

4、采用的是无连接的端到端数据包交换,提供“尽力而为(best effort)”的服务1,随着互联用户数量的膨胀,络的拥塞问题也越来越严重。因此,互联上主要的互连协议tcp/ip的拥塞控制(congestion control)机制对控制络拥塞具有特别重要的意义。从70年代至今,tcp的拥塞控制机制经历多次的改进和调整,根据不同时期的tcp的拥塞控制机制的不同,从而诞生了几种不同的tcp版本。本文针对这几种不同的tcp版本2,在ns2中进行实验,并进行分析比较。 1 拥塞控制 当络中存在过多的数据包时,络的性能就会下降,这种现象称为拥塞。在络发生拥塞时,会导致吞吐量下降,严重时会发生“拥塞崩溃”(

5、congestion collapse)现象。之所以会发生拥塞是因为络能够提供的资源不足以满足用户的需求。这时,络自身只能靠降低服务质量来继续为用户服务,也就是“尽力而为”的服务。 虽然拥塞是因为资源不足而造成的,但是拥塞本身并不是一个静态问题,它是一个动态的问题,所以单纯的增加络资源并不能解决拥塞。目前,络对拥塞问题的控制主要基于tcp的拥塞控制。 tcp通过拥塞控制窗口(congestion window,简称cwnd)来控制允许被传送到络上的数据报数量。在开始数据传送之前,tcp会先在传送端与接收端间建立一条络联机,将要传送的信息分割成数个数据报,并按照封包编号通过络层所提供的功能依次传

6、送出去。当收到一个数据报时,tcp的接收端会返回一个ack(ackonwledgment,ack)给传送端,以表示这个数据报已被收到。在整个传送过程中,tcp进行拥塞控制,以避免因为传送过快而造成络拥塞。 tcp拥塞控制3,4,5算法主要包括三个部分:加性增,乘性减;慢启动;对超时事件作出反应。tcp拥塞控制是通过控制一些重要参数的改变而实现的。tcp用于拥塞控制的参数主要有:(1) 拥塞窗口(cwnd):拥塞控制的关键参数,它描述源端在拥塞控制情况下一次最多能发送的数据包的数量。(2) 通告窗口(awin):接收端给源端预设的发送窗口大小,它只在tcp连接建立的初始阶段发挥作用。(3) 发送

7、窗口(win):源端每次实际发送数据的窗口大小。(4) 慢启动阈值(ssthresh):拥塞控制中慢启动阶段和拥塞避免阶段的分界点。初始值通常设为65535byte。(5) 回路响应时间(rtt):一个tcp数据包从源端发送到接收端,源端收到接收端确认的时间间隔。(6) 超时重传计数器(rto):描述数据包从发送到失效的时间间隔,是判断数据包丢失与否及络是否拥塞的重要参数。通常设为2rtt或5rtt。(7) 快速重传阈值(tcprexmtthresh)::能触发快速重传的源端收到重复确认包ack的个数。当此个数超过tcprexmtthresh时,络就进入快速重传阶段。tcprexmtthres

8、h缺省值为3。 tcp拥塞控制的公平性是指发生拥塞时各源端(或同一源端建立的不同tcp连接或udp数据报)能公平地共享同一络资源。处于相同级别的源端应该得到相同数量的络资源。产生公平性的根本原因在于拥塞发生必然导致数据包丢失,而数据包丢失会导致各数据流之间为争抢有限的络资源发生竞争,争抢能力弱的数据流将受到更多损害。面向连接的tcp和其他的非tcp(例如无连接的udp)在拥塞发生时对拥塞指示的不同反应和处理,导致对络资源的不公平使 2 用问题,在文献6中提出了tcp-friendly的概念。 实验 实验环境 本文所进行的模拟仿真环境为:ubuntu 12.04 + ns2。 tahoe 与 r

9、eno tcp tahoe是早期的tcp版本,它包括了3个最基本的拥塞控制算法“慢启动”、“拥塞避免”和“快速重传”。reno在tahoe基础上增加了“快速恢复”算法。在该实验中主要对tahoe和reno的拥塞窗口大小的变化进行观察。 图1:tahoe 和 reno实验络拓扑图 图2:tahoe 和 reno的平均吞吐量 3 图3:tahoe 和 reno的cwnd窗口变化 图3中, tahoe 开始执行时,先由slow-start(ss)开始,cwnd超过ssthresh时进入拥塞避免(ca)阶段。由于传送到络上的丢包不断增加,当超出允许能传送到络上的个数时,路由器开始丢包。当数据报遗失时,

10、tahoe会将ssthresh设为发现数据报遗失时的一半,接着将拥塞窗口的值设为1。tahoe重新进入慢启动阶段。而reno 的ssthresh和拥塞窗口的值会被设置为先前拥塞窗口值的一半。由于结束fast recovery 后, reno中拥塞窗口的值由先前拥塞窗口值的1/2开始增加,所以得到的平均吞吐量比tahoe 大一些(图2)。 reno、newreno 和 sack new reno跟reno 在只有一个数据包遗失的情况下,其机制是一样的。当同时有多个 packet遗失时,new reno就显示出了它的优势。newreno在收到partial ack时,并不会立即结束fast-rec

11、overy,相反,newreno的传送端会持续地重送partial ack之后的数据包,直到将所有遗失的数据包重送后才结束fast-recovery。这使得newreno的传送端在络有大量数据包遗失时不需等待timeout就能更正此错误,减少大量数据包遗失对传输效果造成的影响。newreno大约每一个rtt时间可重送一个遗失的数据包,在fast-recovery阶段,若允许的话,传送端会继续送出新的数据包,以增加链路的使用率。 4 sack(selective acknowledgment,选择性确认)使tcp只重新发送交互过程中丢失的包,不用发送后续所有的包,而且提供相应机制使接收方能告诉发送方哪些数据丢失,哪些数据重发了,哪些数据已经提前收到

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论