软件测试管理

当前位置:首页 > 软件测试管理

《计算机网络:自顶向下方法》第四章

第四章 网络层


在前一章中我们学习了运输层依赖于网络层的主机到主机的通信服务,提供各种形式的进程到进程的通信。我们也学习了运输层工作时不具备任何有关网络层实际实现这种服务的知识。因此也许你现在想知道,这种主机到主机通信服务的真实情况是什么?是什么使得它工作起来的呢?


在本章中我们将学习网络层实际是怎样实现主机到主机的通信服务的。我们将看到,与运输层和应用层不同的是,在网络中的每一台 主机和路由 器中都有一个网络层部分。正因如此,网络层协议是协议栈中最具挑战性( 因而也是最有趣)的部分。


网络层也是协议栈中最复杂的层次之一, 因此我们将在这里涉及大量的知识。我们的学习从网络层的概述和它能够提供的服务开始。我们将仔细考察两种用于构造网络层分组交付的方法,即数据报模式和虚电路模式,并且理解编址在传递分组到目的主机所起的重要作用。


在本章中,我们将对网络层的转发( forwarding)功能和路由选择( routing)功能做重要区分。转发涉及分组在单一的路由器中从一条人链路到一条出链 路的传送。路由选择涉及一个网络的所有路由器,它们经路由选择协议共同交互,以决定分组从源到目的地结点所采用的路径。当你继续本章学习时,心中要记住这个区别。


为了加深对分组转发的理解,我们将“进入”路由器内部来观察它的硬件体系结构和组织。接下来我们将观察在因特网中的分组转发,以及令人称颂的网际协议(IP)。 我们将研究网络层编址和IPv4的数据报格式。然后我们将探讨网络地址转换(NAT)、数据报分段、因特网控制报文协议(ICMP) 和IPv6。


然后我们将注意力转向网络层的路由选择功能。我们将看到路由选择算法的任务是决定从发送方到接收方的好的路径(等价地为路由)。我们将首先学习路由选择算法的理论,关注两种最为流行的算法类型:链路状态和距离矢量算法。因为路由选择算法的复杂性随着网络路由器数量的增加会有相当大的增长,因此我们也会关注等级制路由选择方法。当我们涉及因特网的自治系统内部的路由选择协议(RIP、 OSPF 和IS-IS)和因特网的自治系统之间的路由选择协议(BCP)时,我们将看到理论是如何付诸实践的。最后我们讨论广播和多播路由选择。


总的来说,本章有3个主要部分:第一部分(4.1 节和4.2节)涉及了网络层功能和服务;第二部分(4.3节和4.4节)涉及了转发;最后第三部分(4.5 节到4.7节)涉及了路由选择。


4.1概述


图4-1显示了一个具有H1和H2两台主机和在H1与H2之间的路径上有几台路由器的简单网络。假设HI正在向H2发送信息,考虑这些主机与中间路由器的网络层所起的作用。HI中的网络层取得来自于HI运输层的报文段,将每个报文段封装成一个数据报(即一个网络层的分组),然后将该数据报向相邻路由器R1发送。在接收方主机H2,网络层接收来自相邻路由器R2的数据报,提取出运输层报文段,并将其向上交付给H2的运输层。路由器的主要作用便是将数据报从人链路转发到出链路。注意到图4-1中所示路由器具有截断的协议栈,即没有网络层以上的部分,因为(除了控制目的外)路由器不运行我们在第2、3章学习过的应用层和运输层协议。


《计算机网络:自顶向下方法》第四章


4.1.1转发和路由选择


网络层的作用从表面上看极为简单,即将分组从一台发送主机移动到一台接收主机。为此,需要两种重要的网络层功能:


●转发。当一个分组到达路由器的一条输人链路时,路由器必须将该分组移动到适当的输出链路。例如,来自主机H1到路由器R1的一个分组,必须向在H2路径上的下一台路由器转发。在4.3节中,我们将深人路由器内部观察,考察分组在路由器中是如何实际从一条输人链路转发到一条输出链路的。


●路由选择。当分组从发送方流向接收方时,网络层必须决定这些分组所采用的路由或路径。计算这些路径的算法被称为路由选择算法( routing algorthm)。例如,一个路由选择算法将决定分组从H1到H2流动所遵循的路径。


在讨论网络层时,许多作者经常互换地使用转发和路由选择这两个术语。我们在本书中将更为精确地使用这些术语。转发是指将分组从一个输人链路接口转移到适当的输出链路接口的路由器本地动作。路由选择是指网络范围的过程,以决定分组从源到目的地所采取的端到端路径。用驾驶的例子进行类比,考虑在1.3.1节中旅行者所历经的从宾夕法尼亚州到佛罗里达州的行程。在这个行程中,该驾驶员到佛罗里达州经过了途中的许多立交桥。我们能够认为转发就像通过单个立交桥的过程:一辆汽车沿道路上进入立交桥的一个人口,并且决定应当走哪条路来离开该立交桥。我们能够认为路由选择是规划从费城到佛罗里达州行程的过程:在着手行程之前,驾驶员查阅地图并在许多可能的路径中选择一条,其中每条路径都由一系列经立交桥连接的路段组成。


每台路由器具有一张转发表(forwardingtable)。路由器通过检查到达分组首部字段的值来转发分组,然后使用该值在该路由器的转发表中索引查询。存储在转发表项中的该首部的值指出了该分组将被转发的路由器的输出链路接口。分组首部中的该值可能是该分组的目的地址或该分组所属连接的指示,这取决于网络层协议。图4-2 提供了一个例子。在图4-2中,一个首部字段值为0111的分组到达路由器。路由器在它的转发表中索引,决定该分组的输出链路接口是接口2。然后路由器在内部将该分组转发到接口2。在4.3节中我们深入路由器内部,更为详细地研究这种转发功能。


《计算机网络:自顶向下方法》第四章


你也许现在想知道路由器中的转发表是如何配置的。这是一个关键问题,它揭示了路由选择和转发间的重要相互作用关系。如图4-2中所示,路由选择算法决定了插入路由器的转发表中的值。路由选择算法可能是集中式的( 例如,算法在某个中心场点执行,并向每台路由器下载路由选择信息),或是分布式的(即,使用运行在每台路由器上的分布式路由选择算法的一部分)。在任何一种情况下,都是路由器接收路由选择协议报文,该信息被用于配置其转发表。通过考虑网络中的一种假想情况(不真实的,但技术上是可行的),其中所有的转发表是由人类网络操作员直接配置而在路由器中物理地存在,转发和路由选择功能的区别和不同能被进一步说明。 在这种情况下,不需要任何路由选择协议!当然,该人类操作员将需要彼此交互,以确保该转发表配置得能使分组到达它们想要到达的目的地。也很可能出现下列现象:人工配置更容易出错,并且对于网络拓扑的变化,响应起来比路由选择协议慢。因此,我们庆幸所有网络具有转发和路由选择功能。


当我们讨论术语时,需要指出经常交互使用的两个其他术语,而我们将要更为小心地使用它们。我们将约定术语分组交换机是指一台通用分组交换设备,它根据分组首部字段中的值,从输人链路接口到输出链路接口转移分组。某些分组交换机称为链路层交换机(link- layer switches) (在第5章仔细学习),基于链路层字段中的值做转发决定。其他分组交换机称为路由器( router),基于网络层字段中的值做转发决定。(为了全面理解这种重要区别,你可能要回顾1.5.2节,在那里我们讨论了网络层数据报和链路层帧及其关系。)市场销售资料经常将具有以太网接口的路由器称为“三层交换机”,但它们实际上是三层设备,混淆了相关概念。因为在本章中我们关注的是网络层,所以我们使用术语路由器代替分组交换机。当我们谈论虚电路网络中的分组交换机时,我们甚至将使用词汇路由器(很快将讨论)。


连接建立


我们刚才说过网络层有两个重要的功能,转发和路由选择。但我们很快将看到在某些计算机网络中,实际上有第三种重要的网络功能,即连接建立( connection setup)。回想我们学习TCP时,当数据能从发送方流向接收方之前,需要三次握手。这允许发送方和接收方建立所需的状态信息( 例如,序号和初始流控制窗口长度)。以类似的方式,某些网络层体系结构如ATM、帧中继、MPLS ( 我们将在5.8节学习),要求从源到目的地沿着所选择的路径彼此握手,以便在给定源到目的地连接中的网络层数据分组能够开始流动之前建立起状态。在网络层,该过程被称为连接建立。我们将在4.2节中仔细学习连接建立。


4.1.2 s网络服务模型


在钻研网络层之前,我们将以开阔的视野来考虑网络层可能提供的不同类型的服务。当位于发送主机的运输层向网络传输分组时(即在发送主机中将分组向下交给网络层),运输层能够指望网络层将该分组交付给目的地吗?当发送多个分组时,它们会按发送顺序按序交付给接收主机的运输层吗?发送两个连续分组的时间间隔与接收到这两个分组的时间间隔相同吗?网络层会提供关于网络中拥塞的反馈信息吗?在发送主机与接收主机中连接运输层的通道的抽象视图(特性)是什么?对这些问题和其他问题的答案由网络层提供的服务模型所确定。网络服务模型( network service model)定义了分组在发送与接收端系统之间的端到端运输特性。


我们现在考虑网络层能够提供的某些可能的服务。在发送主机中,当运输层向网络层传递一个分组时,能由网络层提供的特定服务包括:


●确保交付。该服务确保分组将最终到达其目的地。


●具有时延 上界的确保交付。该服务不仅确保分组的交付,而且在特定的主机到主机时延上界内(例如在100ms内)交付。


此外,能够为给定的源和目的地之间的分组流提供下列服务:


●有序分组交付。该服务确保分组以它们发送的顺序到达目的地。


●确保最小带宽。这种网络层服务模仿在发送和接收主机之间的一条特定比特率(例如1Mbps)的传输链路的行为。只要发送主机以低于特定比特率的速率传输比特(作为分组的组成部分),则分组不会丢失,且每个分组会在预定的主机到主机时延内到达( 例如在40ms内)。


●确保最大时延抖动。 该服务确保位于发送方的两个相继分组之间的时间量等于在目的地接收到它们之间的时间量(或这种间隔的变化不超过某些特定的值)。


●安全性服务。使用仅由源和目的主机所知晓的一个秘密会话密钥,在源主机中的网络层能够加密向目的主机发送的所有数据报负载。在目的主机中的网络层则能够负责解密该负载。使用这种服务,能够向源和目的主机之间的所有运输层报文段(TCP 和UDP)提供机密性。除了机密性以外,网络层能够提供数据完整性和源鉴别服务。


这只是网络层能够提供的部分服务的列表,有无数种可能的服务变种。


因特网的网络层提供了单一的服务,称为尽力而为服务( best- ffrt service)。 从表4-1看,尽力而为服务看起来是根本无服务的一种委婉说法。使用尽力而为服务,分组间的定时是不能确保被保证的,分组接收的顺序也不能保证与发送的顺序一致, 传送的分组也不能保证最终交付。给出这样的定义,一个没有向目的地交付分组的网络也符合尽力而为交付服务的定义。然而,如我们很快要讨论的那样,这样一种极为简化的网络层服务模型,是有其正当的存在理由的。


《计算机网络:自顶向下方法》第四章


其他的网络体系结构已定义和实现了许多超过因特网的尽力而为服务的服务模型。例如,ATM网络体系结构[ MFA Forum 2012; Black 1995]提供了多重服务模型,意味着可以在相同的网络中为不同的连接提供不同类别的服务。ATM网络怎样提供这种服务的讨论已经超出了本书的范围;我们这里的目的仅是注意到除了因特网的尽力而为模型外,还存在其他模型即可。两个最重要的ATM服务模型是恒定比特率和可用比特率服务:


恒定比特率(Constant Bit Rate, CBR) ATM网络服务。这是第一个被标准化的ATM服务模型,它反映了电话公司对ATM的早期兴趣,以及CBR服务在承载实时、恒定比特率的音频和视频流量方面的适用性。CBR服务的目标从概念上讲是简单的,就是使网络连接看起来就像在发送与接收主机之间存在一条专用的、固定带宽的传输链路,以使用性质相同的虚拟管道来提供分组(ATM术语称为信元)流。使用CBR服务,ATM 信元流以如下方式被承载跨越网络,即一个信元的端到端时延、信元端到端时延中的可变性(即时延抖动)及丢失或推迟交付的信元的比率都确保在特定值以下。当第一次建立CBR连接时,发送主机与ATM网络认可了这些值。


●可用比特率(Available Bit Rate, ABR) ATM网络服务。由于因特网提供了所谓的尽力而为服务,ATM的ABR也许最好被刻画为比尽力而为服务稍好一点的服务。与因特网服务模型-样,ABR服务下的信元也许会丢失。然而与因特网不同的是,信元不能被重排序(虽然它们可能丢失),对于使用ABR服务的连接来说,最小信元传输速率(MCR)是可以得到保证的。如果在给定时间内网络有足够的空闲资源,发送方也可以用比MCR更高的速率成功地发送数据。另外,如我们在3.6节中所见,ATMABR服务能够为发送方提供反馈信息(利用一个拥塞通知比特,或一个明确的速率发送),以便控制发送方在MCR和一个允许的峰值信元速率之间调整其速率。


相关内容

文章评论

表情

共 0 条评论,查看全部
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~