TCP协议的拥塞控制策略及改进_第1页
TCP协议的拥塞控制策略及改进_第2页
TCP协议的拥塞控制策略及改进_第3页
TCP协议的拥塞控制策略及改进_第4页
TCP协议的拥塞控制策略及改进_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、tcp协议的拥塞控制策略及改进tcp协议的拥寒控制策略及改进姜明摘要:tcp是针对固定网络设计的一种传输协议,其错误控制机制是基于将所有丢包原 因都归结于网络拥塞的假设。这种错误控制机制在有线网络上获得了很人的成功;但由于 移动计算环境有着明显不同于有线网络环境的特点,如较高的位出错率、对用带宽小、衰 减信道等,因此针对传统有线网络设计的tcp协议,其性能受到了很人影响。木文对li前 移动计算环境卜tcp协议的一些主要改进方案进行了综述,在对这些方案进行分类的基础 上,对其优缺点进行了分析,并月对这些方案进行了比较。最后,提出了进一步研究的方 向。关键词:tcp,移动计算,无线网络,错误控制1

2、. 引言互联网最初源于美国国防部的arpanet计划。在上世纪60年代中期,正是冷战的高 峰,美国国防部希望冇一个命令和控制网络能够在核战争的条件下幸免丁难,而传统的电 路交换的电话网络则显得太脆弱。国防部指左其下属的高级研究计划局(arpa)解决这个 问题,此后诞生的一个新型网络便称为arpanet,其最大特点是采用无连接的端到端包交 换服务。随后arpanet开始与美国国家科学基金会(nsf)建成的nsfnet及加拿人、欧洲 和太平洋地区的网络互联。到了 80年代中期,人们开始把互联的网络称为互联网。早在70年代中期,arpa为了实现异种网络之间的互联与兀通,推出了 tcp/ip体系结构

3、和协议规范。时至今口 tcp/ip协议也成为最流行的网际互联协议,并由单纯的tcp/ip 协议发展成为一系列以ip为基础的tcp/ip协议簇。tcp / ip协议簇为互联网提供了基本 的通信机制。互联网采用的是无连接的端到端数据包交换,捉供“尽力而为”(best effort)服务 模型的设计机制。这种机制的最大优势是设计简单,可扩展性强。互联网在过去的十几年 屮经丿力了爆炸式的增长,这匕经充分证明了这种设计机制的成功。然而这种优势并不是没 冇代价的,随着互联网用户数量的膨胀,网络的拥塞问题也越来越严重。例如曲于队列溢 出,互联网路由器会丢弃约10%的数据包。据统计,互联网上95%的数据流使用

4、的是 tcp/ip协议,因此,卫联网上主要的互连协议tcp/ip的拥塞控制(congestion control)机制对控制网络拥塞具有特别重要的意义。拥塞控制是确保互联网鲁棒性 (robustness)的关键因索,也是各种管理控制机制和应用(如多媒体通信中qos控制、 区分服务(differentiated services)的基础,因此关于互联网的拥塞控制问题一直 是网络研究的一个热点。tcp是目前internet上使用最广泛的一种传输协议,根据mci的统计,internet上总 字节数的95%及总数据包数的90%使用tcp协议传输25。tcp的h的是为了解决 internet的稳定性、异

5、质性(接受端缓冲区大小、网络带宽及延迟等)、各流z间亨用带宽的公平性、使川效率及拥塞控制等问题,从而为internet提供可靠、健壮(robust) 的端到端通讯.internet近十年来的迅猛发展已证明tcp协议在设计上是成功的。但是,tcp是为固定主机及有线网络设计的一种滑动窗ii协议,它在位岀错率(bit rate error, ber)很低、丢包的主要原因是网络拥塞的传统网络上的成功在移动计算环 境下受到了巨人的挑战。移动计算带來的新问题主要是无线链路传输的对靠性、移动操作 的特点以及对效率进行评估的性能尺度等。因此,对tcp协议的改进已经成为近儿年网络 通讯领域的一个研究热点。本文第

6、二部分对网络拥塞的基本概念进行了简要介绍;第三部分tcp的拥塞控制机制及 有线网络环境下的改进进行了介绍;第四部分分析了 tcp在移动计算环境下的缺点及其需 耍增加的功能;第五部分对增强移动环境下tcp的技术方案进行了分类介绍,分析了各口 的优缺点,并对这些方案进行了比较。最后进行了总结,并捉出了有待进一步研究的一些 热点方向。2. 网络拥寒的基木概念2. 1拥塞的基本概念和互联网模型当网络中存在过多的数据包时,网络的性能就会卜降,这种现象称为拥塞。在网络发生 拥塞时,会导致吞吐量下降,严重时会发生“拥塞崩溃” (congestion collapse)现 象。一般来说,拥塞崩溃发牛在网络负载

7、的增加导致网络效率的降低的时候。最初观察到 这种现象是在1986年10月,在这个过程中,lbl与uc berkeley之间的吞吐量从32kbps 下降到了 40bps。floyd总结出拥塞崩溃主要包括以下几种:传统的崩溃、未传送数据包 导致的崩溃、由于数据包分段造成的崩溃、日益增长的控制信息流造成的崩溃等。图1:网络负载与呑吐量及响应时间的关系对于拥塞现彖,我们可以进一步用图1来描述。当网络负载较小时,呑吐量基本上随着 负载的增长而增长,昱线性关系,响应吋间增长缓慢。当负载达到网络容量时,吞吐量呈 现出缓慢增长,而响应时间急剧增加,这一点称为knee。如果负载继续增加,路由器开始 丢包,当负载

8、超过一定量时,吞吐量开始急剧下降,这一点称为cliffo拥塞控制机制实 际上包含拥塞避免(congestion avoidance)和拥塞控制(congcstion control)两种策 略。前者的目的是使网络运行在knee附近,避免拥塞的发工;而后者则是使得网络运行 在cliff的左侧区域。前者是一种“预防”措丿施,维持网络的髙吞叶量、低延迟状态,避 免进入拥塞;后者是i种“恢复”措施,使网络从拥塞屮恢复过來,进入正常的运行状 态。拥塞现象的发牛和前面提到的互联网的设计机制有着密切关系,我们对这种设计机制作 一个简单的归纳:1. 数据包交换(packet switched)网络:与电路交换

9、(circuit switched)网络相 比,由于包交换网络对资源的利用是基于统计复用(statistical multiplexing)的,因此提高了资源 的利用效率。但在基于统计复用的情况下,很难保证用户的服务质量(quality of service, qos),并且很容易岀现数据包“乱序”的现象,对乱序数据包的处理会人人增加拥塞控 制的复杂性。2. 无连接(connectionless)网络:互联网的节点之j'可在发送数据z前不需要建立连 接,从而简化了网络的设计,网络的中间节点上无需保留和连接有关的状态信息。但无连接模型很 难引入接纳控制(admission control

10、),在用户需求人于网络资源时难以保证服务质 量;此外,由于对数据发送源的追踪能力很差,给网络安全带來了隐患;无连接也是网络 中出现乱序数据包的主要原因。3. “尽力而为”的服务模型:不对网络中传输的数据提供服务质量保证。在这种服务 模型下,所有的业务流被“一视同仁”地公平地竞争网络资源,路由器对所有的数据包都采用先来 先处理(first come first service, fcfs)的工作方式,它尽最大努力将数据包包送达 冃的地。但对数据包传递的町靠性、延迟等不能提供任何保证。这很适合email. ftp、 www等业务。但随着互联网的飞速发展,ip业务也得到了快速增长和多样化。特别是随着

11、 多媒体业务的兴起,计算机已经不是单纯的处理数据的工具。这对互联网也就和应地捉出 了更高的要求。对那些有带宽、延迟、延迟抖动等特殊要求的应用来说,现有的“尽力而 为”服务显然是不够的。2.2拥塞产生的原因拥塞发生的主要原因在于网络能够提供的资源不足以满足用户的需求,这些资源包括缓 存空间、链路带宽容量和屮间节点的处理能力。由于互联网的设计机制导致具缺乏“接纳 控制”能力,因此在网络资源不足时不能限制用户数量,而只能靠降低服务质量來继续为 用户服务,也就是“尽力而为”的服务。19. 2kbpsd图 2 (a)图 2 (b)拥塞虽然是由于网络资源的稀缺引起的,但单纯增加资源并不能避免拥塞的发生。例

12、如 增加缓存空间到一定程度时,只会加重拥塞,而不是减轻拥塞,这是因为当数据包经过长 时间排队完成转发时,它们很可能早已超时,从而引起源端超时重发,而这些数据包还会 继续传输到下一路由器,从而浪费网络资源,加重网络拥塞。事实上,缓存空间不足导致 的丢包更多的是拥塞的“症状”而非原因。另外,增加链路带宽及提高处理能力也不能解 决拥塞问题,例如,图2 (a)中,四个节点z间的链路带宽都是19.2kbps,传输某个文 件需要用时5分钟;当第一个节点和第二个节点之间的链路带宽提高到1mbps时(如图2(b)所示),传输完该文件所需时间反而大大增加到了 7个小吋!这是因为在路由器r1 屮,数据包的到达速率

13、远远人于转发的速率,从而导致人量数据包被丢弃,源端的发送速 度被抑止,从而使得传输时间大大增加。即使所冇链路具冇同样人的带宽也不能解决拥塞 问题,例如图3中,u:所有链路带宽都为血卩c所有链路带宽都是igbps,如果a和b同时向c以igbps的速率发送数据,则路由器r 的输入速率为2gbps,而输出速率只能为igbps,从而产生拥塞。单纯地增加网络资源之所以不能解决拥塞问题,是因为拥塞木身是一个动态问题,它不 可能只靠静态的方案来解决,而需要协议能够在网络出现拥塞时保护网络的正常运行。目 前对互联网进行的拥塞控制主要是依靠在源端执行的基于窗口的tcp拥寒控制机制。网络 本身对拥塞控制所起的作用

14、较小,但近儿年这方面的研究已经成了一个新的热点。3. tcp拥塞控制及其改进3. 1 tcp拥寒控制机制介绍基于源端的拥塞控制策略屮,使用最为广泛的是tcp协议中的拥塞控制策略,tcp协议 是h前互联网中使用最为广泛的传输协议。根据mci的统计,互联网上总字节数的95%及 总数据包数的90%使用tcp协议传输。早期的tcp协议只冇基于窗口的流控制(flow control)机制而没冇拥塞控制机制,因 而易导致网络拥塞。1988年jacobson针对tcp在网络拥塞控制方面的不足,提出了“慢 启动” (slow start)和"拥塞避免"(congestion avoidan

15、ce)算法。1990 年出现的 tcp reno版本增加了 “快速重传” (fast retransmit)“快速恢复” (fastrecovery)算法,避免了网络拥塞不严重时采用“慢启动”算法而造成过度减小发送窗口 尺寸的现象,这样tcp的拥塞控制就主要由这4个核心算法组成。tcp协议的h的是为上层应用提供可靠的服务,其主耍特征在于:1. 确保各流享用带宽的公平性。2. 动态发现当前对利用的带宽。3. 拥塞避免及控制机制以避免拥塞崩溃(congestion collapse)的发工。标准版本的tcp使用基于窗口的的和式增加积式减小(additive increase multiplicat

16、ive decrease, aimd)方式控制发送速率,以保证稳定性及带宽享用的公平 性。错误控制机制是一个可靠传输协议的关键部分。它对i办议的性能冇很大的影响,包括吞 吐量、能量消耗及可靠性。错谋控制通常包括错谋检测和错谋恢复两部分。为了保证数据 传输的可靠性,tcp要求接受端在正确接收到数据段(data segment)后向发送端发送- 个确认包,确认包中包含了期望接收到的下一个数据段的序号。tcp发送端通过监测确认 包的序号來检测是否发生了错谋。如果发生超时或者发送端收到一定数量(通常是3个) 重复的确认包,则认为传输过程中发生了错误,数据段被丢弃。由于有线网络的位出错率 很低(例如光纤

17、的ber通常只有101222),因此tcp假设丢包是由于网络拥塞引起 的。在错谋恢复处理过程中,tcp重传丢弃的数据段、减小发送端窗口人小并冃在超时情 况下重置超时时钟。最初的tcp协议只有基于窗口的流控制(flow control)机制而没有拥塞控制机制。流 控制作为接受方管理发送方发送数据的方式,用來防止接受方"j用的数据缓存空间的溢 出。流控制是-种局部控制机制,具参与者仅仅是发送方和接收方,它只考虑了接收端的 接收能力,而没有考虑到网络的传输能力;而拥塞控制则注重于幣体,其考虑的是整个网络的传输能力,是一种全局控制机制。正因为流控制的这种局限性,从而导致了拥塞崩溃 现象的发生

18、。1986年初,jacobson 发了现在在tcp应用屮的拥塞控制机制。运行在端节点主机屮 的这些机制使得tcp连接在网络发主拥塞时回退(back off),也就是说tcp源端会对网 络发出的拥塞指示(congestion notification)(例如丢包、重复的ack等)作出响 应o 1988年jacobson针对tcp在控制网络拥塞方而的不足,捉出了“慢启动”(slow start)和"拥塞避免"(congestion avoidance)算法。1990年出现的tcp reno版本增 加了 "快速重传"(fast retransmit)、“快速恢

19、复” (fast recovery)算法,避免 了网络拥塞不严重时采用“慢启动”算法而造成过大地减小发送窗口尺寸的现彖,这样 tcp的拥塞控制就由这4个核心部分组成。近几年又出现tcp的改进版本如ncwrono和选 择性应答(selective acknowledgement, sack)等。正是这些拥寒控制机制防止了今天 网络的拥塞崩溃。tcp拥塞控制四个主要过程(如图4 (a)和(b)所示)简要介绍如下:1慢启动阶段:早期开发的tcp应用在启动一个连接时会向网络中发送大量的数据 包,这样很容易导致路由器缓存空间耗尽,网络发生拥塞,使得tcp连接的吞吐量急剧下降。由 于tcp源端无法知道网络

20、资源当前的利用状况,凶此新建立的tcp连接不能一开始就发送 人量数据,而只能逐步增加每次发送的数据量,以避免上述现象的发生。具体地说,当建 立新的tcp连接时,拥塞窗口 (congestion window, cwnd)初始化为一个数据包大小。 源端按cwnd大小发送数据,每收到一个ack确认,cwnd就增加一个数据包发送量,这样 cwnd就将随着回路响应时间(round trip time, rtt)呈指数增长,源端向网络发送的数 据量将急剧增加。事实上,慢启动一点也不慢,要达到每rtt发送w个数拯包所需时间仅 为rttxlogwo由于在发生拥塞时,拥塞窗口会减半或降到1,因此慢启动确保了源

21、端的 发送速率最多是链路帯宽的两倍。2.拥塞避免阶段:如呆tcp源端发现超时或收到3个相同ack副本吋,即认为网络发 生了拥塞(主要因为出传输引起的数据包损坏和丢失的概率很小(<1%) ) o此时就进入拥塞 避免阶段。慢启动阈值(ssthresh)被设置为当前拥塞窗口人小的一半;如果超时,拥塞 窗口被置1。如果cwnd>ssthresh, tcp就执行拥塞避免算法,此时,cwnd在侮次收到一 个ack时只增加1/cwnd个数据包,这样,在一个rtt内,cwnd将增加1,所以在拥塞避 免阶段,cwnd不是呈指数增长,而是线性增长。3.快速重传和快速恢复阶段:快速重传 是当tcp源端收

22、到到三个和同的ack副本时,即认为有数据包丢失,则源端垂传丢失的数拯包,而不必等待rto超时。同时将ssthresh设 置为当前cwnd值的一半,并且将cwnd减为原先的一半。快速恢复是基于“管道”模型 (pipe model)的"数据包守恒”的原贝lj (conservation of packets principle),即 同一时刻在网络屮传输的数据包数量是恒定的,只有当“i口”数据包离开网络后,才能发 送“新”数据包进入网络。如果发送方收到一个重复的ack,则认为已经有一个数据包离开了网络,于是将拥塞窗口加1。如果“数据包守恒”原则能够得到严格遵守,那么网络 中将很少会发生拥

23、塞;本质上,拥塞控制的目的就是找到违反该原则的地方并进行修止。图4 (a):慢启动和拥塞避免图4 (b):快速垂传和快速恢复经过十多年的发展,目前tcp协议主要包含有四个版本:tcp tahoe、tcp reno、tcp newreno和tcp sacko tcp tahoe是早期的tcp版本,它包括了 3个最基本的拥塞控制算 法一“慢启动”、“拥塞避免”和“快速重传”。tcp reno在tcp tahoe基础上增加了“快速恢复”算法。tcp newreno对tcp rono中的“快速恢复”算法进行了修止,它考虑 了一个发送窗口内多个数据包丢失的情况。在reno版屮,发送端收到一个新的ack后

24、旧 退出“快速恢复”阶段,而在newreno版中,只有当所有的数据包都被确认后才退出“快 速恢复”阶段。tcp sack关注的也是一个窗口内多个数据包丢失的情况,它避免了之前版 本的tcp重传一个窗口内所有数据包的情况,包括那些已经被接收端正确接收的数据包, 而只是重传那些被丢弃的数据包。另外,在1994年,l. s. brakmo等提出了一种新的拥塞控制策略一tcp vegaso由于rtt 值与网络运行情况有密切关系,因此,tcp vegas通过观察tcp连接中rtt值改变感知网 络是否发生拥寒,从而控制拥塞窗口大小。如果发现rtt値变大,vegas就认为网络正在 发生拥塞,于是开始减小拥塞

25、窗口;另一方面,如杲rtt变小,vegas就认为网络拥塞正 在斛除,于是再次增加拥塞窗口。这样,拥塞窗口在理想情况下就会稳定在一个合适的值 上。tcp vegas的最人优点在于拥塞机制的触发只与rtt的改变有关,而与包的具体传输 时延无关。由于tcp vegas不是利用丢包來判断网络可用带宽,而是以rtt的变化來判 断,因此能更粘确地预测网络的可利用带宽,其公平性、效率都较好。但tcp vegas z所 以未能在互联网上大规模使用,主耍是因为使用tcp vegas的流在带宽竞争能力方面不及 未使用tcp vegas的流,从而导致网络资源享用不公平,而不是算法木身的问题。3.2拥塞控制的主要问题

26、拥塞控制的问题主耍集屮在效率和公平性(fairness)上。网络资源的使用效率是指源 端要求的总资源与网络所能提供的资源z间的关系。如果二者刚好相等或者很接近,那么 这种算法的效率就是高的,否则都是效率不高的表现。公平性是指在网络发生拥塞时各连接能公平地共享网络资源。产生公平性的根本原因在 于拥塞发生必然导致数据包丢失,而数拯包丢失会导致各数据流z间为争抢有限的网络资 源发工竞争,竞争能力强的数拯流将到更多网络资源,从而损害了其他流的利益。所以说 没有拥塞,也就没有公平性问题。公平性问题表现在两方面:一是拥塞响应的tcp流和非 拥塞响应的udp流z间资源享用不公平:二是tcp流z间资源享用的不

27、公平。前者主要是 在发生拥塞时对拥塞指示作出的不同反应造成的。由于tcp流具有拥塞控制机制,在收到 拥塞指示后,源端会主动降低发送速率;rfol'dp流由于没有端到端的拥塞控制机制,因此 在收到拥寒指示后,udp不会降低数据发送速率。结果在网络拥塞时,拥寒适应的tcp流 得到的资源越來越少,非拥塞适应的udp得到的资源越來越多,从而导致了网络资源分配 的不公平。网络资源分配的不公平反过来会加重拥塞情况,甚至可能导致拥塞崩溃。对于 第二个不公平性问题,研究表明,不同的窗口大小、rtt值及数据包的尺寸都会影响tcp 流对带宽的占用。窗口较大,或者rtt较小,或者数据包较大的流往往能占用更多

28、的带 宽。3. 3有线网络中tcp拥塞控制机制的改进3. 3. 1针对对不必要的超时重传和快速重传我们知道,当前的tcp应用主要有两种重传机制一快速重传和超时重传。当tcp源端收 到3个ack副本时,就会触发快速重传机制,此时源端重传丢失的数据包并且将拥塞窗口 大小减半。这种情况下,tcp流往往能够很快从丢包中恢复过来,重新回到原先的发送速 率。但如果tcp源端没有收到3个ack副本,例如拥塞窗口人小小于4,那么tcp源端则 需要等待相当长时间,以便超时重发。这样,小窗口的tcp流就很容易陷入不必要的超时 重发,使其吞吐量大大下降。为了避免这种不必要的超时重传,一种改进办法就是只要tcp源端收

29、到一个或者两个 ack副本,并口如果通告窗口允许,便继续发送新的数据包。这是因为只要收到ack副 木,就表明有数据包已经离开网络被接受端接收了,而此时源端述无法判断数据包是否被 丢弃,根据“数据包守恒”原则,只要遵守拥塞窗口的规范,也即同时在网络中传送的数 据包数量不能超过拥塞窗口的人小(以数据包为单位),源端就可以继续发送新的数据 包。这种机制称为限制传输机制(limited transmi t mechanism),这种机制对排序的数 据包尤其冇效。限制传输机制可以使小窗口的tcp流很快从丢包中恢复过来。例如,対于拥塞窗口大小 为4地tcp流,如果其第二个数据包丢失,那么按传统地做法需要等

30、待超时重传。而在限 制传输机制下,当源端收到对笫三个数据包确认的ack副本时(ack中要求源端发送笫二 个数据包),继续发送新的数据包,最终源端可以收到三个ack副本从而触发快速重传, 从而减少了不必要的超时重传。3.3.2针对乱序包和延迟包引起的重传在不少情况下,tcp源端推断认为数据包被丢弃了,从而导致重传及拥塞窗口的减小, 而实际上数据包并没有被丢弃。如杲超吋时钟过早地到时了(事实上数据包或者ack并没 有丢失,只要能够再等待一会儿并可收到ack),源端便毫无必要地重发了数据包,更严 重的是拥塞窗口的减小,而实际上并没冇数据包被丢弃。类似地,如果由于数据包的乱序 导致源端接收到3个ack副木,便会导致快速重传,tcp源端也毫无必要地重发了数据 包,并冃减小了拥塞窗口。对于前者,虽然对以通过更为精确地调节超时时钟來减少不必 要地超时重传,但要完全避免却是不可能的。同样,对于后者,虽然可以通过提高快速重 传算法的性能來减少不必要的快速重传,但也不对能完全避免。对于拥塞窗口较大的流,比如大小为w,不必要地减小拥塞窗口会导致其至少花费w/2 rtt时间恢复到原來拥塞窗口的人小,从而使其性能人人下降,特别是在数据包持续出现 乱序或者对rtt的估算不很

温馨提示

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

评论

0/150

提交评论