《分布式系统:概念与设计》一3.3.6 拥塞控制

3.3.6 拥塞控制

网络的能力受到通信链路性能和交换结点性能的限制。当任何链路或结点的负载接近其负载能力时,试图发送数据包的主机中就会建立队列,传输数据的中间结点因为被其他数据传输所阻塞而建立队列。如果负载继续维持在这样的高水平,那么等待发送的队列就会不断增长,直到达到可用的缓冲区空间的上限为止。
一旦结点达到这样的状态,结点只能将以后到达的数据包丢弃。前面已经提到过,在网络层偶尔出现数据包丢失是允许的,这种损失可以通过从更高层重传丢失的数据包来弥补。而当数据包丢失率和重传率达到一个很高的水平,那么会给网络的吞吐量带来灾难性的后果。道理很简单:如果数据包在中间结点被丢弃,那么已经占用的网络资源就被浪费掉了,而重传还要再消耗同样多的资源。经验表明,当网络的负载超过其能力的80%,系统的总吞吐量会因为数据包丢失而下降,除非控制高负载链路的使用。
为了避免数据包在网络中传递时经过拥塞结点而被丢弃的情况,最好将数据包保存在发生拥塞之前的结点中直到拥塞减少。这固然会增加数据包的延迟,但不会极大降低整个网络的吞吐量。用于实现该目的的技术称为拥塞控制。
通常,拥塞控制是通过通知发生拥塞的路由上的结点而实现的,因此它们的数据包传输率会有所减少。对中间结点来说,这意味着进入的数据包将会缓冲很长时间。而作为发出数据包的源主机,结果就是把要发送的数据包在主机中排队,或者阻塞产生这些数据包的应用程序,直到网络能妥善地处理数据包为止。
所有基于数据报的网络层,包括IP和以太网,都依靠端-端的流量控制。也就是说,发送结点必须基于收到的接收方的信息降低其发出数据包的速率。要为发送结点提供拥塞信息,可以通过显式地传输一个请求减少传输率的特殊消息(被称为阻塞数据包),也可以通过实现一个专门的传输控制协议(TCP的名字也由此而来,3.4.6节将解释TCP中的机制),或通过观察丢弃数据包发生的情况(假设协议要确认每一个数据包)来实现。
在一些基于虚电路的网络中,每个结点可以接收到拥塞信息,拥塞信息也可以作用于每个结点。尽管ATM使用虚电路传递,但它仍要依靠服务质量管理(见第20章)来保证每个电路都能完成所要求的流量。102

3.3.7 网际互连

不同的网络、链路和物理层协议形成了不同的网络技术。局域网络是基于以太网和ATM技术建立起来的,而广域网是基于各种数字和模拟电话网络、卫星链接和广域ATM网络建立的。单个的计算机和局域网则是通过调制解调器、无线连接和DSL连接接入互联网或企业内部网的。
为了建立一个集成的网络(互连网络),我们必须集成许多子网,而它们各自基于上述某种网络技术。为了实现集成,需要实现以下几方面:
1)统一的互连网络寻址方案,使得数据包可以找到接入任一子网的任一主机。
2)定义互连网络中的数据包格式并给出相应处理规则的协议。
3)互连组件,用于按照互连网络地址将数据包路由到目的地,可用具有多种网络技术的子网传递数据包。
对于互联网而言,IP地址可实现上面第1个要求,第2个要求是IP协议,第3个要求由称为互联网路由器的组件实现。IP协议和IP寻址将在3.4节详细描述。这里我们将讨论互联网路由器和其他用来连接各网络的组件的功能。
图3-10展示了一个英国大学的企业内部网的一小部分,更多细节将在后面的小节中加以解释。这里我们要注意的是,图中包含通过路由器互连的多个子网的部分。该部分有5个子网,其中3个子网共享IP网络138.37.95(使用了无等级的域间路由方案,见3.4.3节)。图上的数字是IP地址,它们的结构将在3.4.1节中解释。图上的路由器是多个子网的成员,它们在每个子网中都有一个IP地址(地址就写在连接的链路上)。
路由器(主机名:hammer和sickle)实际上是一个通用的计算机,也能完成其他任务,其中一个任务是作为防火墙使用。防火墙的作用和路由功能是紧密相关的,我们将在下面讨论这一点。138.37.95.232/29子网在IP层并没有和网络中的其他部分相连。只有文件服务器custard可以访问它,该服务器在与其相连的打印机上通过一个服务器进程(监控和控制打印机的使用)提供打印服务。

图3-10中所有的链路都是以太网。大部分链路的带宽是100Mbps,但有一个链路的带宽是1000Mbps,因为它支持着大量学生使用的计算机与承载所有文件的文件服务器custard间的巨大数据流量。
在图示的这部分网络中,有两个以太网交换机和几个以太网集线器。两者对IP数据包来说都是透明的。以太网集线器只是一种将以太网电缆的多个段连接在一起的手段,在网络协议层,这些段形成一个以太网。主机收到的所有以太网数据包将转播到所有的段。以太网交换机连接了几个以太网,用于将进入的数据包路由到目的主机所在的以太网中。
路由器 我们已经提到,除了像以太网和无线网络(这些网络中的主机由一种传输介质连接),其他所有网络都需要路由。图3-7显示了一个由6条链路连接5个路由器组成的网络。在一个互连网络中,可由直接连接将路由器链接起来(见图3-7),也可以通过子网将路由器互连,如图3-10中的custard。在这两种情况下,路由器都负责将从任一连接来的互连网络数据包准确地发送到下一条连接。路由器也因为这个目的而维护路由表。
网桥 网桥链接不同种类的网络。一些网桥链接几个网络,它们也被称为网桥/路由器,因为它们也表现出了路由的功能。例如,更大的校园网包括一个光纤分布式数据接口(Fibre Distributed Data Interface,FDDI)主干(没有在图3-10中显示),它就是由网桥/路由器连接到图3-10中的以太网子网中的。
集线器 集线器是将主机、以太网和其他广播型局域网技术的扩展网段连接起来的一种方便的手段。它有多个插槽(通常有4~64个),每一个插槽都可以连接一台计算机。它们也用于克服单个网段带来的距离上的限制,提供添加额外主机的途径。
交换机 交换机的功能与路由器相似,但路由器只用于局域网(一般是以太网)。也就是说,它们将多个分离的以太网互连,将到达的数据包路由到适当的外出网络中。它们在以太网的网络协议层上完成这一任务。起初它们对互连网络有多大范围一无所知,通过观察数据流量以及在缺少信息时采取广播请求的方式建立其路由表。
与集线器相比,交换机的好处是它分离了到达的流量,仅在相关的外出网络上传输数据包,减少了所连接网络的拥塞。
隧道 网桥和路由器通过网络层协议和一个互连网络协议的转换,实现在各种底层网络上传输互连网络数据包,不过在一种情形下,底层网络协议可以被隐藏起来不被其上的层看到,不需要使用互连网络协议。当一对连接到同一类型的两个网络中的结点需要通过另一种类型的网络进行通信时,它们之间通过构造协议“隧道”来达到这一目标。协议隧道其实就是在相异网络环境中传输数据包的软件层。
下面类比解释了选择“隧道”这一术语的原因,同时也提供了另一种方式来思考隧道的含义。穿山隧道使得车辆通过成为可能,如果没有隧道这是不可能实现的。公路是连续的,隧道对于应用(车辆)来说是透明的。公路是传输机制,而隧道使得它能在相异的环境中工作。
 图3-11 IPv6迁移使用的隧道105图3-11显示的是隧道的一种建议使用方法,它支持从互联网迁移到IPv6协议。IPv6将会取代现在使用的IP协议版本IPv4,但它们不兼容(IPv4和IPv6的描述见3.4节)。在向IPv6过渡的过程中,IPv4的“海洋”中会不断出现IPv6“岛屿”。在图3-11中,A和B就是这样的岛屿。在岛屿的边界处,IPv6数据包被封装成IPv4的格式,并以该种方式在IPv4网络中传输。

看另一个例子,移动IP协议(其描述见3.4.5节)通过建立从本地基站到任一网络位置的隧道,来将IP数据包传输到互联网上的任何移动主机。中间的网络结点不需要为处理移动IP协议而加以修改。IP组播协议在处理方式上也与此相似,依靠一些支持IP组播路由的路由器来决定路由,但通过使用标准IP地址的路由器来传输IP数据包,另一个例子是在串行链路上传输IP数据包的PPP协议。

时间: 2024-10-28 22:13:19

《分布式系统:概念与设计》一3.3.6 拥塞控制的相关文章

《分布式系统:概念与设计》一第3节 练习

前 言 在互联网和Web持续发展并且对我们社会的每个方面都产生影响的时候,这本教材的第5版问世了.本书的介绍性章节提到互联网和Web对诸多(如金融.商业.艺术.娱乐等)应用领域的影响以及对信息社会的普遍影响.它还强调了诸如Web搜索和多人在线游戏等应用领域中的需求.从分布式系统的角度出发,这些开发在应用的范围.多个现代系统所支持的工作负载和系统大小等方面正在对底层系统架构提出实质性的新需求.重要的趋势包括网络技术上不断增加的多样性和普遍性(包括不断增加的无线网络的重要性).移动和无处不在计算元素

《分布式系统:概念与设计》一1.2 分布式系统的例子

1.2 分布式系统的例子 本节给出能激发读者学习积极性的当代分布式系统的例子,用于说明分布式系统所扮演的无处不在的角色和相关应用的多样性. 如1.1节所提及的那样,网络无处不在,成为我们现在认为理所当然的日常服务(互联网和相关的万维网.Web搜索.在线游戏.电子邮件.社会网络.电子商务,等等)的基础.为了进一步说明这一点,可参考图1-1,它描述了一系列所选的关键商务或社会应用部门,强调了相关的分布式系统技术已公认或新出现的应用. 正如所看到的,分布式系统包含近些年许多最重要的技术发展,因此理解底

《PADS 9.5电路设计与仿真从入门到精通》——第一章 绪论 1.1 PCB的基本概念及设计工具

第一章 绪论 PADS 9.5电路设计与仿真从入门到精通 本章主要介绍PADS的基本概念及特点,包括PCB设计的一般原则.基本步骤.标准规范等.着重介绍了美国Mentor Graphics公司的PCB设计软件:PADS 9.5,包括了PADS 9.5的发展过程以及它的新特点.PADS 9.5是一款非常优秀的PCB设计软件,它具有完整强大的PCB绘制工具,界面和操作十分简洁,希望用户好好学习本书,以便更加方便地使用PADS 9.5软件. 1.1 PCB的基本概念及设计工具 PADS 9.5电路设计

《分布式系统:概念与设计》一练习

练习 1.1 列出能被共享的五种类型的硬件资源和五种类型的数据或软件资源,并举出它们在实际的分布式系统中发生共享的例子. 1.2 在不参考外部时间源的情况下,通过本地网络连接的两台计算机的时钟如何同步?什么因素限制了你描述的过程的准确性?由互联网连接的大量的计算机的时钟是如何同步的?讨论该过程的准确性. 1.3 考虑1.2.2节讨论的大型多人在线游戏的实现策略.采用单一服务器方法表示多个玩家游戏状态的好处是什么?这存在什么问题以及如何解决? 1.4 一个用户随身携带可以无线连网的PDA,来到一个

《分布式系统:概念与设计》一2.3.1 体系结构元素

2.3.1 体系结构元素 为了理解一个分布式系统的基础构建块,有必要考虑下面四个关键问题: 在分布式系统中进行通信的实体是什么? 它们如何通信,特别是使用什么通信范型? 它们在整个体系结构中扮演什么(可能改变的)角色,承担什么责任? 它们怎样被映射到物理分布式基础设施上(它们被放置在哪里)? 通信实体 上述前两个问题是理解分布式系统的关键:什么是通信和这些实体如何相互通信为分布式系统开发者定义了一个丰富的设计空间.它对从面向系统和面向问题的角度解决第一个问题是有帮助的. 从系统的观点,回答通常是

《分布式系统:概念与设计》一2.4.1 交互模型

2.4.1 交互模型 2.3节对系统体系结构的讨论表明分布式系统由多个以复杂方式进行交互的进程组成.例如: 多个服务器进程能相互协作提供服务,前面提到的例子有域名服务(它将数据分区并复制到互联网中的服务器上)和Sun的网络信息服务(它在局域网的几个服务器上保存口令文件的复制版本). 对等进程能相互协作获得一个共同的目标.例如,一个语音会议系统,它以类似的方式分布音频数据流,但它有严格的实时限制. 大多数程序员非常熟悉算法的概念--采取一系列步骤以执行期望的计算.简单的程序由算法控制,算法中的每一

《分布式系统:概念与设计》一3.1 简介

3.1 简介 要构建分布式系统所使用的网络,首先需要众多的传输介质,包括电线.电缆.光纤以及无线频道:然后需要一些硬件设备,包括路由器.交换机.网桥.集线器.转发器和网络接口:最后还需要软件组件,包括协议栈.通信处理器和驱动器.上述因素都会影响分布式系统和应用程序所能达到的最终功能和性能.我们把为分布式系统提供通信设施的软硬件组件称为通信子系统.计算机和其他使用网络进行通信的设备称为主机.结点则指的是在网络上的所有计算机或者交换设备.互联网是一个通信子系统,它为所有接入的主机提供通信服务.互联网

《分布式系统:概念与设计》一1.1 简介

1.1 简介 计算机网络无处不在.互联网也是其中之一,因为它是由许多种网络组成的.移动电话网.协作网.企业网.校园网.家庭网.车内网,所有这些,既可单独使用,又可相互结合,它们具有相同的本质特征,这些特征使得它们可以放在分布式系统的主题下来研究.本书旨在解释影响系统设计者和实现者的连网的计算机的特征,给出已有的可帮助完成设计和实现分布式系统任务的主要概念和技术.我们把分布式系统定义成一个其硬件或软件组件分布在连网的计算机上,组件之间通过传递消息进行通信和动作协调的系统.这个简单的定义覆盖了所有可

《分布式系统:概念与设计》一第2章 系统模型

第2章 系统模型 本章提供三个重要且互补的解释方法,以便有效地描述和讨论分布式系统的设计:物理模型考虑组成系统的计算机和设备的类型以及它们的互连,不涉及特定的技术细节.体系结构模型是从系统的计算元素执行的计算和通信任务方面来描述系统:这里计算元素或是指单个计算机或是指通过网络互连的计算机集合.客户-服务器和对等模型是分布式系统中的两种最常使用的体系结构模型.基础模型采用抽象的观点描述大多数分布式系统面临的单个问题的解决方案.在分布式系统中没有全局时间,所以不同计算机上的时钟未必给出相同的时间.进

《分布式系统:概念与设计》一1.5 挑战

1.5 挑战 1.2节的例子试图说明分布式系统的范围,并提出在设计中出现的问题.在许多系统中,遇到了重大的挑战并且已经得到解决.随着分布式系统的应用范围和规模的扩展,可能会遇到相同的和其他的挑战.本节我们描述主要的挑战. 1.5.1 异构性 互联网使得用户能在大量异构计算机和网络上访问服务和运行应用程序.下面这些均存在异构性(即存在多样性和差别): 网络: 计算机硬件: 操作系统: 编程语言: 由不同开发者完成的软件实现. 虽然互联网由多种不同种类的网络组成(见图1-3),但因为所有连接到互联网