计算机网络拥塞控制算法研究

2016-05-30 00:39王荣平
科技风 2016年11期

王荣平

摘 要:为了避免网络拥塞Internet主要依赖TCP端到端拥塞控制,互联网的稳定运行有一部分要归功于以TCP为代表的端到端拥塞控制机制,这个机制起了很大的作用。但是由于互联网上的应用和用户的增多,互联网规模的爆炸,这个机制已经不能全面的满足网络中各种复杂应用的需求,拥塞已经成为迫在眉睫的问题。 在本文中,当前的TCP/IP网络的拥塞控制两个层,并以此为基础针对网络的实际应用需求做了深入研究。

关键词:拥塞控制;TCP/IP网络;PID;控制主动队列管理

计算机网络已有几十年的历史,但无论是网络技术发展迅速,还是应用范围与影响深度,变化最快的阶段还是面向大众的最近十年。计算机网络发展历史表明:用户需求是推动网络技术发展的最根本原动力。

在九十年代初期,用户抱怨接入速度过慢;九十年代中期,主干网传输速度受到了质疑;九十年代后期,用户对网络多媒体服务和服务质量要求日趋强烈。而拥塞控制技术是其他技术发展的基础,所以研究拥塞控制技术对计算机网络体系结构发展有极为深远的意义。

1 网络拥塞的概念及产生原因

由于网络中有很多的数据包而导致性能下降,这种现象称为拥塞。关于拥塞现象,可用图1来阐述。当有较小的网络覆盖时,随着负载的增长而增长的吞吐量,响应时间更加缓慢。

2 网络拥塞控制算法及存在问题

拥塞控制算法“拥塞避免”了这两种不同的机制“拥塞控制”。拥塞控制用于从网络拥塞状态中恢复,拥塞机制,因此,“恢复”的机制;其目标是避免网络拥塞避免进入停滞状态在低潜伏时间,在网络运行,高输入输出量的状态下,因此拥塞避免是“预防”机制。根据产生网络拥塞的原因可知,虽然源于资源短缺而产生的拥塞,但单方面的增加资源有时只能加重拥塞程度并不能解决拥塞的发生。比如说,有时为了增大报文通过网关的延迟而增加网关的缓存,在数据包转发完成一条长时间排队已经超时,但是源端却认为这些数据包已经被丢弃,于是开始重新传输,但这些仍然被传输的网络分组,因此一个网络资源浪费导致堵塞。

3 TCP/IP拥塞控制结构分类

在拥塞闭环的控制中,源端调节发送速率是通过反馈信号来完成的,因此拥塞控制中必不可少的一个环节就是反馈环节。一般有以下两种反馈方式:隐式反馈和显式反馈。在隐式反馈,终端系统负责引进和传输状态的监测数据,并从此处推测网络拥塞的状态,进而来调节发送的速率。但终端的所有功能之后限制或难以准确地推断出在各种有限信息的网络的负荷状况。信息或标记分组丢失使用作为反馈信号一般是指在隐式反馈。

对于现有的拥塞策略,根据该层级和网络的网络模型实现的位置,基于通信子网的拥塞控制策略和TCP/IP网络拥塞策略。一开始主要集中在TCP的拥塞控制上来研究端主机拥塞控制。拥塞控制算法的策略,这里面包括数据包调整策略和队列管理算法策咯,这些是基于通讯子网的,后者是更为主要研究方向。通过数据流如何排队来决定哪些包可以传输,以此来来分配带宽,就是数据包调度策略。

根据队列长度变化情况来选取路由器的主动队列管理策略。从网络状态来看,根据控制算法调整传输速率,因此路由器队列缓存中的队列长度才得到控制。如图2和3所示。

由此可见,基于通信子网的拥塞控制策略和端主机的拥塞控制策略是相互影响相互作用相辅相成的。反馈信号从发送队列管理策略需要根据主机策略的需要来调整利率;队列管理可以通过变化来影响端主机的发送速率还可以维持合理的队列长度变化。两者一起可以实现一个完整的网络拥塞控制。

4 控制算法比较

4.1 TCP控制算法比较

最初的NSFNET程序规范TCP协议,这是RFC793,其实这也是较为完整齐全并且也是最早的TCP规范。在设计之初,他被给予了很高的TCP协议的使命,更需要成为这些网络互联系统中的最可靠性传输协议。

互联网络中的可靠传输起码包括这两方面:第一个是正确的数据,这是由于前的传输介质的传输质量差,所以需要校验和计算,在传输层和下面实现的协议层;第二个是完整,对数据进行排序,此功能是必需的TCP进行复杂的操作来完成,但基本上是建立TCP窗口控制,拥塞控制实际上是在Internet上使用的基础上,TCP拥塞控制网络拥塞控制一直是研究的一个重点,因为95%的互联网使用对数据流的TCP协议。

4.2 IP控制算法比较

TCP基于窗口的拥塞控制机制的因特网的鲁棒性方面发挥了关键作用。然而,随着迅猛发展的Internet本身,它越来越庞大的规模,日益复杂的结构,研究人员正在慢慢地认识到,仅仅依靠端的TCP拥塞控制是不够的,互联网络也应该参加控制资源的工作。以影响TCP拥塞控制的动态性能更为了实现IP层拥塞控制的目的。为了实现拥塞控制,出现了一系列的调度和队列管理算法。

4.3 两大类算法比较

图4是一个典型的互联网实例,其中IP控制的Hop-by-Hop类型和TCP控制的End-and-End类型为典型实例。基于以上的分析和讨论,我们可以看到,本质上是拥塞控制方法的来源在TCP的拥塞控制的基础上,最终实现系统操作。

显然,这种拥塞控制方法在网络拥塞之间有相当大的延迟感知拥塞控制后实施行动,在少量的数据传输情况下,可以利用该数据传送发生之后的传播反馈信息到达发送源。IP网络拥塞控制的实现,它可以感知到网络拥塞的发生。能及时的采取行动来加以控制。

5 TCP/IP拥塞控制算法存在的问题

TCP/IP拥塞控制机制在网络中发挥了不可或缺的作用,但TCP/IP拥塞控制算法本身有不能忽视的问题:

从拥塞的发生到端系统采取控制之间有显著的延时控制,由于对端系统缺乏一些了解,对动态数据传输过程也缺乏认识,因此无法预测到具体使用网络资源的情况,只能将数据发送到控制网络流量,减少网络负载,从而通过减少缓解网络拥塞。ACK Congestion的现象:ACK自计时技术往往会失效在非对称网中,这样ACK的传输时间就是ACK到达源端的间隔,但是由于ACK远远小于数据包,因此会导致源端将数据包发送到网络并超过了路由器难以承受的速度。

6 TCP/IP拥塞控制算法的改进

由于收到重复的ACK可能会导致错误的系统问题,根据网络负载、吞吐量和延迟的关系,把Rtt的变化和三个重复的ACK共同控制慢启动的阈值和拥塞窗口的大小。

新的往返延迟会影响之后旧的RTT,这里可引入一个控制因素P。 当新的RTT#旧的RTT时,P=0;当新的RTT>旧的RTT时,P=1;当收到3个重复的ACK时候控制慢启动阈值以及拥塞窗口大小的算法。这个算法中的P值为0或者1,和三个重复的ACK共同控制慢启动阈值和拥塞窗口的大小,使系统能更加准确地判断数据包有没有丢失,只有增加延迟时间也收到3三个重复的ACK时,能减少慢启动阈值和拥塞窗口为之前的一半,提高资源的利用率。

7 结论

本文阐述了一些最新的工作,特别是在网络拥塞控制方面的研究,拥塞控制的原理,揭示了现在所面临的拥塞控制问题,进行了一些简单的总结和链路的算法有两个来源。

参考文献:

[1] 罗万明,林闯,阎宝平.TCP拥塞控制研究.计算机学报,2001,24(1):1-18.

[2] 邓亚平,叶凌伟,陈雁.TCP/IP拥塞控制算法的改进.计算机科学,2001:110-113.

[3] 包俊杰,王刚,李波.TCP拥塞控制综述.重庆教育学院报,2003,11.

[4] 谢希仁.计算机网络(第三版).大连理工大学出版社,2000.