《计算机网络体系结构》学习笔记之 第四章 OSI下三层(三)

•第三节网络层协议与X.25
一、网络层基本功能
1.网络层概述
网络层是OSI参考模型中的第三层,它建立在数据链路层所提供的两个相邻端点之间的数据帧的传送功能之上,将数据从源端经过若干中间节点传送到目的端。从而向运输层提供最基本的端到端的数据传送服务。网络层是处理端到端数据传输的最底层,体现了网络应用环境中资源子网访问通信子网的方式。
网络层主要完成以下几方面的功能:
•路由控制:
利用网络拓扑结构等网络状态,选择分组传送路径。这是网络层的主要功能。在大多数子网中,分组的整个旅途需要经过多次转发。无线广播网络是唯一的例外。
•拥塞控制:
控制和预防网络中出现过多的分组。当到达通信子网中某一部分的分组数高于一定的阈值,使得该部分网络来不及处理这些分组时,就会使这部分以至整个网络的性能下降。这种情况称为拥塞。拥塞带来的影响可见下图。
  《计算机网络体系结构》学习笔记之 第四章 OSI下三层(三)_第1张图片
图4.12
•透明传输:
透明传输就是不管所传数据是什么样的比特组合,都应当能够在链路上传送。当所传数据中的比特组合恰巧出现了与某一个控制信息完全一样时,必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输的透明的。
•异种网络的互联:
解决不同网络在寻址、分组大小、协议等方面的差异。不同类型的网络对分组大小,分组结构等的要求都不相同,因此要求在不同种类网络交界处的路由器能够对分组进行处理,使得分组能够在不同网络上传输。
•分组生成和装配:
运输层报文与网络层分组间的相互转换。运输层报文通常很长,不适合直接在分组交换网络中传输。在发送端,网络层负责将运输层报文拆成一个个分组,再进行传输。在接收端,网络层负责将分组组装成报文交给运输层处理。
2.网络层提供的服务
网络层为运输层提供服务,它通常是通信子网的边界。网络层向运输层提供的服务应具有以下特点:
•服务与通信子网的技术无关。
•通信子网的数量、类型和拓扑结构对运输层透明。
•运输层得到的网络地址应该采用同一编址的方式。即使跨越了多个局域网和广域网也应如此。
对于网络层应提供的服务,两个观点争论得很激烈。一个观点认为不管怎样设计,通信子网注定是不可靠的,因此差错控制和流量控制必须由主机自己完成,即网络层提供的服务是无连接的。另一个观点认为,通信子网应该提供一种可靠的、面向连接的服务。所谓连接是两个对等实体为进行数据通信而进行的一种结合。面向连接的网络服务是在数据交换之前,必须先建立连接,当数据交换结束后,终止这个连接。无连接服务是两个实体之间的通信不需要事先建立好一个连接,通信所需的资源无需事先预定保留,所需的资源是在数据传输时动态地进行分配的。
面向连接和面向无连接的服务各有其适用场合,面向连接的服务是可靠的报文序列服务;无连接服务却不能防止报文的丢失、重复或失序,但无连接服务灵活方便,并且迅速。因此,当前的网络层既提供面向连接的服务,即虚电路方式,又提供面向无连接的服务,即数据报方式。
面向连接和无连接两种服务方式的争论,实质就是将复杂的功能放在何处的问题。在面向连接服务中,它们被置于网络层(通信子网),而在面向无连接服务中,则被置于运输层(主机)。
3.路由选择
路由选择是网络层功能的一部分,负责确定所收到的分组应传送的外出路线。即在具有许多节点的广域网里,应通过哪条通路才能将数据从源主机传到所要通信的目的主机。如果子网内部采用数据报方式,对收到的每一个分组都必须重新作一次路由选择,因为对于每个分组来说,上次到达的最佳路由可能已经改变。然而,如果子网内部采用虚电路方式,则只需要在建立虚电路时作一次路由选择,然后分组就在这条先前建立的路由上传送。
一个理想的路由选择算法应具有如下特点:
•算法必须是正确的。不仅要求算法本身正确,而且应该达到数据通信所要求的目标,以满足用户的业务要求。
•算法在计算上应简单。由于在每个节点上都要进行路由选择的计算,因此必然要增加分组的时延,计算简单可以使时延减少。
•算法应能适应通信量和网络拓扑的变化,即有自适应性。当网络中的通信量或拓扑结构发生变化时,算法能自适应的改变路由。
•算法应具有稳定性。当通信量和网络拓扑发生变化时,路由算法应收敛于一个可以接受的解,而不应产生过多的振荡。所谓振荡就是指由算法得出的路由是在一些路由之间来回不停地变化。
•算法应是公平的。算法应对所有用户都是平等的。例如,若使某一对用户的端到端时延最小,但却不考虑其他的用户,这就不符合公平性的要求。
•算法应是最佳的。这里的"最佳"是指以最低的费用来实现路由算法。
4.拥塞控制
计算机通信子网的基本任务是要保证网内分组自由无阻地畅通传送。实际上如果不加任何控制的话,分组并不是任何时候都能够畅通的,有时候网内流量会严重不均,有些节点和链路上的分组堆积,造成拥塞。严重的拥塞会无法解脱,最后会使分组完全停止流通,既送不出也输不进,称为死锁。所以控制流量、避免拥塞、解除死锁是计算机通信子网的又一重要任务。
当到达通信子网中某一部分的分组数高于一定的阈值,使得该部分网络来不及处理这些分组时,就会使这部分以至整个网络的性能下降。这种情况称为拥塞。
计算机网络所以会产生拥塞首先是因为网络的资源容量总是有限的,但并不是说增加网络资源就可以使拥塞问题迎刃而解。
因此,研究如何解决拥塞是非常必要的。
与拥塞控制容易混淆的一个概念是流量控制。流量控制的作用是保证发送方不会以高于接收方能承受的速率传输数据,一般涉及到接收方向发送方发送反馈。而拥塞控制则是确保通信子网能够有效为主机传递分组,是一个全局性的问题。涉及到所有主机、路由器。
到目前为止,已经提出了许多种拥塞控制算法。主要分为两大类:开环(open-loop)和闭环(closed-loop)。
开环的关键在于它致力于通过良好的设计来避免拥塞出现,确保问题在一开始就不会发生,比如决定何时接受新的通信,何时丢弃分组,以及丢弃哪些分组等,它们在作出决定时不考虑当前网络的状态。
设计人员试图在各种层次上使用恰当的策略来阻止拥塞出现。下表给出数据链路层、网络层和运输层所使用策略对拥塞的影响。
表4.1
策略
运输层
重传策略、失序缓存策略、确认策略、流量控制策略、
超时探测
网络层
子网内虚电路 / 数据报、分组排队及服务、分组丢弃策略、
路由选择算法、分组生命周期管理
数据链路层
重传策略、确认策略、流量控制策略、分组丢失策略

我们首先从数据链路层开始分析,重传策略决定超时时限及重发内容。时限太短会很快超时,造成发送方稠密重传,大大加重了系统负荷。时限太长,发送者的重发操作过于松懈,使接收者放弃出错后所有失序的包,这些包在稍后仍要重发,也会引起系统额外负荷。确认策略同样影响着拥塞,如果每个分组立即确认,确认分组产生许多额外的信息量。可是,如果确认被加到传送信息上捎带送回,则可能会引起超时重传。紧密的流控模式(如:小窗口)会减小数据率,但有助于改善拥塞情况。
在网络层,虚电路及数据报方式的选择也会影响拥塞。因为许多拥塞控制算法仅对虚电路子网起作用。分组排队和服务策略与处理分组的顺序有关,分组丢弃策略也就是在没有空间时,按什么规则选择丢弃的分组。一个较好的策略可以缓解拥塞,而一个坏的策略则可以使拥塞更严重。路由选择算法的好坏是影响拥塞的重要因素,好的算法可以帮助控制拥塞,而一个不太好的算法都会向已经拥塞的线路上发送更多信息,加重拥塞。最后分组的生命周期也会影响拥塞。周期太长,丢失分组会消耗系统很多时间,防碍正常工作。周期太短,分组可能在到达目的地前夭折,增加了重发概率。
运输层与数据链路层存在同样的问题,但确定超时时限更困难。因为在网络中的传输时间要比在两个路由器间的线路上传输时间更难以预测。如果时限太短,会引起不必要重发。
二、分组交换,虚电路工作原理及其特性
分组交换又称包交换,它是现代计算机网络的技术基础。1966年6月,英国国家物理实验室(NPL)的戴维斯(Davies)首次提出"分组"(Packet)一词。1969年12月美国的分组交换网ARPANET投入运行。从此,计算机网络的发展就进入了一个新的纪元,分组交换网的出现成为现代电信时代的开始。
1.电路交换
从通信资源的分配角度来看,"交换"就是按照某种方式动态地分配传输线路的资源。在电路交换中,进行数据传输的两个节点之间必须先建立一条专用的通信路径(连接),在该路径间可能经过许多中间节点,连接两个相邻节点的物理链路可能有多条逻辑信道,其中某一条逻辑信道专供这条连接使用。在两个节点的数据传输完成后释放该连接,该连接所分配的逻辑信道也得以释放。采用电路交换的数据传输一般分为电路建立、数据传输和电路释放三个阶段。电路交换的关键点就是:在通话的全部时间内用户始终占用端到端的固定传输带宽。
电路交换方式的优点是:一旦连接建立后,网络对用户是透明的,数据以一固定速率传输,传输可靠,不会丢失、失序,没有延迟。但是电路交换方式有时可能是非常浪费的。因为一旦连接建立好后,即便两个站点间没有数据要传输,网络资源也没法供其他用户使用。例如终端和计算机间通信等交互式应用,大多数时间信道处于空闲状态。同时,如果连接生命期非常短,连接建立和释放带来的开销可能会得不偿失。因此,电路交换一般适用于系统间要求高质量的大量数据传输。公共电话网是电路交换的一个很好的例子。
2.报文交换
与电路交换不同,报文交换采取存储-转发的形式传送数据。发送方将发送的信息组成报文,在报文头上填写接收方的地址,将报文交给网络,网络中的报文交换机根据报文的目的地址和路由选择算法转发给下一个交换机,如果转发的线路繁忙就把该报文存储在交换机中,待线路空闲后再进行转发。各个报文到达目的地的路径可能不同。
3.报文分组交换
在分组交换网中,数据是以分组的形式传输的,如果源端有一个很长的消息要发送,该消息被分成若干个分组,每个分组除了用户数据外还包含一些控制信息,以便能够正确地把该分组通过网络传送给目的节点。
分组的传送也采用存储--转发的形式,即网络节点根据分组控制信息,把分组送到下一节点,下一节点收到分组后,暂时保存下来并排队等待传输,然后该节点通过分组控制信息选择下一节点。
分组交换具有以下三个显著的特点:
•节点暂时存储的是一个个分组,而不是整个数据报文。
•分组是暂时存储在节点的内存中,而不是保存在节点的外存中,从而保证了较高的交换速率。
•分组交换采用的是动态分配信道的策略,极大地提高通信线路的利用率。
分组交换的优点是信道利用率有了很大的提高。在电路交换方式中,信道供某条连接专用,而在分组交换中,信道实际上供所有正在传输的站点共享使用。分组交换也存在一些缺点。例如:分组在各节点存储转发时因排队而造成一定的时延;由于每个分组中必须携带一些控制信息而产生一定的额外开销;分组交换网的管理和控制比较复杂。
虚电路和数据报
分组交换方式又可分为虚电路方式和数据报方式。
在虚电路方式中,为进行数据传输,源和目的节点间必须为分组的传输预先建立一条逻辑通路。这条传输数据的逻辑通道和电路交换中的连接类似,叫做虚电路。之所以是"虚"的,是因为这条电路不是专用的,分组仍然在每个节点处首先被缓冲,并排队等待转发。源主机首先发起一个虚呼叫,即发送一个特定格式的呼叫分组到目的主机,要求进行通信,同时也寻找一条合适的路由。若目的主机同意通信,就发回响应,这样在源主机和目的主机之间就建立了一条虚电路。以后源主机向目的主机传送的所有分组都必须沿着这条虚电路进行传送。在数据传送完毕后,还要将这条虚电路释放掉。每个节点到其他节点之间可能同时有若干条虚电路,也可能同时与多个节点间存在虚电路。每条虚电路支持特定的两个端系统之间的数据传输,两个端系统之间也可以有多条虚电路为不同的进程服务,这些虚电路的实际路由可能相同,也可能不同。由于采用了存储转发技术,所以这种虚电路和电路交换的连接有很大的不同。在电路交换网络中,两个用户在通话期间自始至终地占用一条端到端的物理信道。当我们占用一条虚电路进行计算机通信时,由于采用的是存储转发的分组交换,所以只是断续地占用一段又一段的链路。
在数据报方式中,每个分组的传输是被单独处理的,与先前传送的分组无关。每个分组被称为一个数据报。每个数据报自身必须包含有目的地的完整地址信息。主机只要想发送数据就随时可以发送。每个分组独立地选择路由。这样,先发送出去的分组不一定先到达目的站主机。这就是说,数据报不能保证按发送数据顺序交付给目的站。当需要把数据按发送顺序交付给目的主机时,在目的站还必须把收到的分组缓存一下,等到能够按顺序交付主机时再进行交付。当网络发生拥塞时,网络中的某个节点可以将一些分组丢弃。所以,数据报提供的服务是不可靠的,它不能保证服务质量,而是一种"尽最大努力交付"的服务。
虚电路和数据报的比较:
表4.2
 
数据报子网
虚电路子网
延时
分组传输延时
电路建立,分组传输延时
路由选择
每个分组单独选择路由
建立虚电路时选择路由,以
后所有分组都使用该路由
状态信息
子网无需保存状态信息
每个节点要保存一张虚电路表
地址
每个分组包括源和目的的
完整地址
每个分组含有一个短的虚电
路号
节点失败
的影响
除了在崩溃时正在该节点处理
的分组都丢失外,无其他影响
所有经过失效节点的虚电路
都要被终止
拥塞控制
如果有足够的缓冲区分配给已
经建立的虚电路,则容易控制

 如果两个端系统间要长时间进行数据传输,特别是在交互式应用中每次传输的数据很短的情况下,使用虚电路方式更加合适些,它免去了数据报方式中每个分组必须包括地址信息而带来的不合适的额外开销,但是每个节点必须维持一张虚电路的表格。
数据报方式则免去了呼叫建立阶段,它传输少数几个分组时的速度比使用虚电路要简便灵活得多。每个数据报可以临时根据网路中的流量情况来选取路由,不像虚电路中每个分组都必须按照连接建立时的路径传送。每个节点没有额外开销,只是每个分组在每个节点都要进行路由选择,会影响分组传输延迟。
由于数据报不保证按顺序交付,也不保证丢失和不重复,因此需要主机承担端到端的差错控制。在使用虚电路的情况下,网络应保证分组按顺序交付,而且不丢失、不重复;当采用数据报服务时,端到端的流量控制由主机来负责。当采用虚电路服务时,端到端的流量控制由网络负责。另外,因为每个数据报分组独立进行路由选择,当节点发生故障时,后续的数据报分组就可另选路由,因而提高了可靠性。在使用虚电路时,节点发生故障就必须重新建立另一条虚电路。数据报服务还很适合于将一个分组发送到多个地址(即广播或组播)。虚电路要比数据报更容易进行拥塞控制。这是因为,在虚电路建立好后,可以预约所需的网络资源,当分组到来时,所需的带宽和路由器的缓冲区已经预留好了,可以立即转发。而对于数据报,避免拥塞则更困难些。
三、路由算法
路由选择算法是网络层软件的一部分,负责确定所收到分组应传送的外出路线。如子网内部采用数据报,对收到的每个分组都要重新做路由选择,因为对每个分组来说,路由可能发生改变。然而,如果子网内部采用虚电路,则当建立一条新虚电路时,仅需要做一次路由选择决策,以后数据就在这条事先建立的路由上传送。
1.路由选择的机制
路径选择的方法在出现计算机网络之前早已存在。
例如交通管理中,在公路交叉路口树立路牌指示器,指明各条叉路的去向的目的地就是一种简单的路径选择方法。司机根据自己所去的目的地,查一下路牌就知道应该走哪一条路。又例如邮政自动分拣机也可看作是一种路选装置,分拣机中存放一张分拣表,列出了邮政编码与分拣邮筒的对应关系。信封上要求用户写上目的地的邮政编码,分拣机鉴别了这一编码,再查一下分拣表,即可决定这封信投到哪个分拣邮筒中去。计算机网络的路径选择也有同样的过程,被传送的报文分组就象信件一样要求写上报文号、分组号及目的地地址。而网络节点就好象分拣机,必须设立一张路径选择表。表中开列了目的地址与输出链路的对应关系。节点根据报文分组所载目的地址查一下路选表即可决定该报文分组应该从哪条链路上发送出去,这就是路径选择。然而,计算机网络的路径选择要比邮政分拣复杂得多,这是因为计算机网络节点上的路径选择表在一般情况下不是固定不变的,而是需要根据网络不断变化着的运行情况,随时修改、更新。每一网络都有反映自己特定要求决定修改路选表的原则,这些原则可体现为程序的一种算法,网络节点根据算法,经过运算才能确定路径的选择。
2.路由选择算法分类
分组交换机转发分组的前提是有路由表存在,所谓"路由算法"就是用于产生路由表的算法。在专门研究广域网的路由选择问题时,可用图论中的"图"来表示整个广域网,用节点表示广域网中的分组交换机(路由器),用节点之间的边表示广域网中的链路。连接在分组交换机上的计算机与路径选择无关,一般不在图中画出。
倘若从路由算法能否随网络的通信量或拓扑自适应地进行调整变化来划分,则路由选择算法只有两大类,即非自适应路由选择策略与自适应路由选择策略。非自适应路由选择策略又叫静态策略,它不根据实际测量或估计的网络当前通信量和拓扑结构来作路由选择,而是按照某种固定的规则来进行路由选择。其特点是简单和开销小,但不能及时适应网络状态的变化。自适应路由选择策略又叫动态路由,它根据拓扑结构以及通信量的变化来改变路由,其特点是能较好地适应网络状态的变化,但实现起来比较复杂。
3.非自适应路由选择算法
•固定路由法
在每个节点保持一张路由表,这些表是在整个系统进行配置时生成的,并且在此后的一段时间内保持固定不变。当网络拓扑结构固定不变并且通信量也相对稳定时,采用固定路由法是最好的。
将网络内任何两个节点之间的最短通路事先计算好,然后根据这些最短通路制成路由表,存放在各个节点中。每个分组都可以在所到达的节点中查找到下一站应转发到哪一个节点。可见这种路由选择策略的关键就是要算出给定网络中任意两个节点之间的最短通路。该算法就是Dijkstra算法。以下简单介绍一下该算法的原理。
给定带权有向图G=(V,E),E中每一条弧(w,v)都有非负的权。指定V中的一个顶点v1作为源点,找从源点v1出发到图中所有其他各顶点的最短路径。Dijkstra提出了一个按路径长度递增的次序产生最短路径的算法。这个算法的描述如下:把图中所有顶点分成两组,第一组是已求出最短路径的顶点集合S。S集合的初态是源点v1;第二组是尚未确定最短路径的顶点集合T(即V-S),T集合的初态是包含除源点之外图中所有的顶点。按路径长度递增的顺序逐个把T集合中的顶点加到S集合中去,直到从源点v1出发可以到达的所有顶点都在S集合中。在这个过程中,总保持从v1到S集合各顶点的最短路径长度都不大于从v1到T集合的任何顶点的最短路径长度。另外,每个顶点对应一个距离,S集合中顶点的距离是从vI到此顶点的最短路径长度。T集合中顶点的距离是v1到此顶点的只包括S中顶点为中间顶点的当前最短路径长度。一个具体算法如下:
1.假设用带权的邻接矩阵cost来表示有n个顶点的带权有向图,cost[i][j]表示弧(vi,vj)上的权值。若(vi,vj)不存在,则置cost[i][j]为无穷大。S为已找到从v出发的最短路径的终点的集合,它的初始状态为v。那么,从v出发到图上其余各顶点(终点)vi可能达到的最短路径的长度的初值为dist[i]=cost[v][i]。
2.从T集合中选择w,使得dist[w]=Min{dist[i]|vi∈V-S},w就是当前求得的一条从出发的最短路径的终点。从T中删除w,并入S集合,令S=S∪{w}。
3.修改从v出发到T集合中各顶点的最短路径长度。如果dist[w]+cost[w][i]<dist[i],则修改dist[i]使dist[i]=dist[w]+cost[w][i]。
4.重复操作2、3共n-1次。
此时数组dist记录了从顶点v到图中其余各顶点的最短路径。
•分散通信量法
这种方法是事先在每个节点的内存中设置一个路由表,但此路由表中给出几个可供采用的输出链路,并且对每条链路赋予一个概率。当一个分组到达该节点时,此节点即产生一个从0.00到0.99的随机数,然后按此随机数的大小,查表找出相应的输出链路。与固定路由相比,这种方法可使网内的通信量更加平衡,因而可得到较小的平均分组时延。
•随机走动法
这种方法又称为随机徘徊,其特点是当分组到达某个节点时就随机地选择一条链路作为转发的路由。在非自适应的路由选择算法中,若可能发生节点或链路的故障,那么随机走动法已被证明是非常有效的,它使得路由算法具有较好的稳健性。
•扩散法
这种方法是当某个节点收到一个不是给它的分组时,就向所有与此节点相连的链路(除收到该分组的链路)转发出去。当网络通信量很小时,扩散法可使分组的延迟最小。
显然,这种扩散会产生大量的,实际上是无穷多的重复分组,必须采取某种手段来限制它的数量。一种方法是在每个分组头上附加跳计数器,当分组每经过一跳时,计数器值就减1。当计数器减为零时,放弃该分组。理想状态是置计数器初值为从源节点到目标节点间的跳数。如果发送方不知道跳数是多少,可将计数器初始化为最坏情况下的数值,即最长路径值(等于子网的整个直径)。
另一种抑制扩散的办法是记录哪些分组已经扩散过,避免第二次扩散它们。为达到这一目的,源端路由器在每个从其主机接收的分组中设置一序号,网络中的每个路由器为每一个源端路由器保存一张表,表中指明曾接收的分组来自该源端的分组序号。当收到某源端发来的分组后,若从对应表中发现它的序号,表明它曾被扩散过,则丢弃此分组。为防止表无限制地增长,可为表加一个计数器。如果计数器值为k,表示直到k的序号都已经记录下来,这样低于k的表项就可以不再需要了。
一个较有实用价值的扩散法是选择扩散法。在这种算法中,路由器不是将分组发送到除发来线路外的所有线路上,而是送到很接近正确方向的线路上。之所以可能做到这一点是因为向东方传送的分组,就不需要向西方发送。
扩散法并不很实际,但对某些特殊情况有用。如在军事应用中,网络上可能有大量的路由器被不断损坏,需要靠扩散法来增强路由选择的健壮性。在分布式数据库应用中,当并发修改多个数据时,扩散法也很有用。扩散法还可以作为衡量其它路由算法的尺度,由于扩散法并行选择每一条可能的路径,所以它总能选择到最短路径。没有什么算法能产生一个更短的路径。
4.自适应路由选择算法
自适应可以从时间上考虑,即在某个时候根据当时的情况调整路由。自适应也可从空间上考虑,即在网络的某个局部范围做出应调整路由的决定,或在调整路由时所根据的某些网络状态信息是来自网络的某个局部范围。现在流行的分布式路由选择策略都是从时间上和空间上进行考虑的。
(1)分布式路由选择策略
•距离向量
距离向量路由算法(DistanceVectorRouting)的思想很简单。每个节点都保存有一张路由表,每一项对应着一个目的地。路由表中每一项包括到对应目的地的下一跳地址,另外还包括一个测量出的到目的地的距离的度量值(metric)。当节点初始化时,对于它能直接相连的目的地,路由表都包括了一项,距离值为0。
每个节点把它的路由表定期向它的相邻节点传递。当节点收到一条更新消息后,它将对每个目的地的路由和度量值进行检查。如果发现一条更好的路由,或发现一条新的路由,则更新本节点的路由表。
路由器很容易测知它到每一个邻居的距离。如果使用跳数度量距离,则是1;若是队列长度,路由器可以简单计算每个队列;如果是延迟,路由器可以直接发出一个ECHO分组,它只要求接收者打上时间戳立即返回,就可测得结果。
作为一个例子,设用延迟来度量距离,路由器知道到达每一个邻居的延迟。每隔Tms各个路由器发向它的每个邻居发一张表,表中有到达各个目的地的估计延迟。它也接收每个邻居发来的相似的表。假想某路由器收到邻居x发来的表,其中有一项标明由路由器x到路由器i的估计延迟为xi。若该路由器知道自己到邻居x的延迟为mms,它也就能知道由自己通过x到达i将花去m+xi的时间。通过与每一个邻居交换信息并计算,每个路由器可以找出到达各目标节点花费的最短时间及所用的线路。这样,老的路由表就不再使用了,被新的路由表取代。
距离向量路由算法在理论上行得通,但在实际应用中却有缺陷:尽管能得出正确答案,但可能速度非常慢,特别是对好消息能迅速做出反应,而对坏消息的反馈则非常缓慢,存在所谓记数到无穷的问题。设想由一个路由器到目标x的最短距离很大,假定该路由器在下一次与邻居交换向量表时获知,由邻居A到达x有一更短的延迟,则该路由器将选择通过A发送信息到x的路径。可见在一次向量交换中,好消息就被处理了。

图4.13
•链路状态
距离向量算法的主要缺陷时它的可扩展性不好。这是因为路由更新消息对每个目的地都有相应的项,该路由更新消息的大小与网络规模成正比,同时距离向量算法要求所有的节点都参加,交换的信息量非常巨大。因此提出了链路状态路由算法。
链路状态路由算法要求每个路由器都有整个网络的拓扑信息。首先,每个路由器在启动后必须了解它所相邻的节点,并且要测量所有节点的状态;其次,它定期把链路状态信息传播给所有其他路由器。链路状态信息中并没有规定有关的路由,只是简单地报告它连接的链路以及链路的花费。当路由器收到一个链路状态信息时,它便更新它所了解的拓扑图。每当拓扑有变化时,就利用Dijkstra算法计算出到所有目的节点的最短路径。
如何进行链路状态信息的分发是一个非常关键的问题。其基本思想是利用扩散法。为了进行控制,每个分组包含一个序号。路由器每次发送链路状态信息分组时加1。每个路由器记录下它所见过的所有信息对(源路由器,序号)。当一个新的链路状态分组到达时,路由器先查看该分组是否已经收到过。如果重复,则丢弃它;如果是新的,就把它向除了到来链路的其他链路转发。如果一个分组的序号比目前已到达的最大序号小,则被认为已过时而拒绝。
链路状态路由算法的一个主要优点是:每个路由器根据同样的状态信息独立地作出路由计算。因为链路状态原封不动地在网中传播,故很容易调试以找出问题的所在。因为路由器在本地计算路由,故能够保证其收敛性。传播的链路状态信息只包含了和路由器直接相连的链路信息,它和网络的规模无关。因此,链路状态路由算法的可扩展性比距离向量路由算法要好。
典型的链路状态路由算法有OSPF(OpenShortestPathFirst)。
(2)集中式路由选择策略
集中式路由选择策略的核心是网控中心NCC。NCC负责全网状态信息的收集、路由计算以及路由选择的实现。集中式路由选择策略也有多种,这取决于存储在NCC中的网络信息的类型、路由的计算方法以及路由选择实现的技术。例如,路由选择实现的技术可以是从NCC周期性地把路由表发到所有的节点,也可以是以一次虚呼叫为基础实现路由选择(当然这只适用于虚电路网络)。
集中式路由选择策略的最大好处是:各个节点不需要进行路由选择计算,较容易得到更精确的路由最优化。同时还消除了路由不断变来变去的"振荡"现象,而这些问题在网络状态不太明确时最容易发生。集中式路由选择策略还可起到对进入网络的通信量的某种流量控制作用。这一特点使得集中式路由选择策略很有吸引力。例如,美国Tymshare公司的TYMNET,其Ncc不断地监视着全网的负荷。一旦负荷超过门限,网络便拒绝一切呼叫。然而在分布式控制的网络,流量控制是很难实现的。
但集中式的路由选择策略存在着两个较严重的缺点:一个缺点是在离NCC较近的地方通信量的开销较大。这是因为要周期性地从所有节点收集网络的状态信息的报告,同时还要将路由选择的命令从NCC送到网内的每一个节点;另一个更严重的缺点是可靠性问题。一旦NCC出故障,则整个网络即失去控制。为了解决这一问题,可按不同等级设置若干个NCC(TYMNET中有4个),它们彼此不间断地互相监视着。当高级别的NCC出故障时,比它低一级的NCC马上接替工作。用这种方法花费较大,并且仍会产生一些间题。在军事环境下,NCC显然是个非常容易受到攻击的目标。
为了克服集中式路由选择的缺点,可以同时综合使用几种路由选择策略。
(3)混合式路由选择策略
这时只要在每一个节点明确定义出:对于何种类型的通信量、负载以及网络的连通条件,应当采用何种的路由选择策略。
出于对线路和处理机开销的考虑,限制了可行的混合式路由选择策略只能是将集中式的和孤立的路由选择策略结合起来。集中式的路由选择策略用来寻找在稳定状态下的最佳路由,然后由NCC将路由表送到每一个节点去。而孤立的路由选择策略则用来提供对局部的拥塞和故障的迅速响应。这种响应只是暂时的,因而并不要求很精确。不需要很长时间NCC就会发现通信量以及网络拓扑的变化情况,于是就对路由表进行更新。
四、X.25协议基本内容
1X.25协议的体系结构
为了避免一台主机在不同的网络上要实现不同的网络访问协议,CCITT与1974年提出了对于公共分组交换网的标准访问协议,即X.25。
X.25规定了主机与公共交换网之间的协议,而主机不必关心网络内部标准。X.25规定了主机DTE和网络设备DCE之间的三个层次上的接口。
表4.3
分组层
PLP(packetlayerprocedure)
链路层
LAPB
物理层
V 系列 x.21x.21bis
•物理层:
相当于OSI参考模型的第一层。采用X.21物理接口,也可以选择类似于RS232C的X.21bis。
•链路层:
相当于OSI参考模型的第二层。采用LAP和LAP-B链路访问规程,当DTE与DCE之间有多个并列物理电路时允许使用多链路规程(MLP)。
•分组层:
相当于OSI参考模型的第三层。网络向主机提供多信道的虚电路业务,包括虚呼叫和永久虚电路业务。
2X.25连接的3个阶段
X.25提供几种工作方式,虚呼叫是最基本的工作方式。虚呼叫的通信过程由呼叫建立、数据传输和呼叫清除三个阶段组成。
每当一个DTE要和另一个DTE通信时,首先在它们之间建立一条虚电路。为此,由呼叫方DTE构造一个"呼叫请求分组"发给其DCE,再由子网传送到目标DCE,最后由目标端DCE转送其DTE。如果目标端DTE接收呼叫,就送回一个"呼叫接收分组",呼叫方DTE收到此"呼叫接收分组"后,它们之间的一条虚电路就建立起来了。这时两个DTE之间以进行全双工通信,利用虚电路交换信息分组。
一旦一方完成通信,就进入拆除链接阶段,由结束通信一方向对方发送"清除请求组",对方发回"消除确认分组"作为同意拆线的确认应答,此后该虚电路拆除。
工作过程如下:
(1)主叫DTE向其DCE发送一个呼叫请求分组。
(2)网络选择合适的路由将呼叫请求分组传送到被叫DCE。
(3)被叫DCE向其DTE发送一个入呼叫分组。入呼叫分组又称呼入分组。
(4)被叫DTE发送呼叫接受分组。
(5)网络按呼叫建立时的路由将呼叫接受分组传到主叫DCE。
(6)主叫DCE向主叫DTE发送呼叫接通分组,表示呼叫建立阶段结束。
(7)在建立的虚电路上进行全双工通信传送数据分组。
(8)主叫(或被叫)DTE发出释放请求分组,然后就收到本地DCE发回的释放证实分组。
(9)被叫(或主叫)DTE收到释放指示分组后,就发给本地DCE一个释放证实分组。
3X.25报文分组
X.25定义了每一种分组和它们的功能,它的分组格式采用同一个基本格式,对特定的分组略有不同。X.25的分组可以分为数据分组和控制分组两种,它们都有一个公共的部分即分组头,它由3个字节构成,如图4.14。分组头可以分为三个部分:
•通用格式标识符(GFI)
•逻辑信道群号和逻辑信道号(LCGN+LCN)
•分组类型标识符

图4.14
•通用格式标识符(GFI),由分组头的第一个字节的比特5至比特8组成,它为分组定义了一些通用功能。若是控制分组,则固定为0001;若为数据分组,则分为Q(1bit)、D(1bit)和模(2bit)三个字段。字段含义见下面的数据分组一节。
•逻辑信道群号和逻辑信道号(LCGN+LCN)共12比特,用以区分DTE-DCE接口中许多不同的逻辑子通道。其中LCGN为高4比特,LCN为低8比特,可提供4095个逻辑信道号。无论是控制包还是数据包,其逻辑信道群号与逻辑信道号一起构成12位虚电路编号,除零号虚电路留作它用外,原理上,一个DTE可以提供或接通4095条虚电路。逻辑信道群号和逻辑信道号必须组合使用,各自没有独立含义。
•分组类型标识符区分了各种不同的分组。该字段最低一比特为控制位,在所有的控制包中,控制位为1。在数据包中控制位为0。DTE通过检查这一位,就可以确定新来的包中是包含数据,还是控制信息。
分组类型标识符区分了各种不同的分组。该字段最低一比特为控制位,在所有的控制包中,控制位为1。在数据包中控制位为0。DTE通过检查这一位,就可以确定新来的包中是包含数据,还是控制信息。对于数据包其类型字段除最后一位控制位之外,其它7位都具有特别的含义。各类型分组代码见左侧表4.4。
表4.4
X.25 信息包类型
3 字节
DATA
PPPMSSSO
CALLREQUEST
00001011
CALLACCEPTED
00001111
CLEARREQUEST
00010011
CLEARCONFIRMATION
00010111
INTERRUPT
00100011
INTERRUPTCONFIRMATION
00100111
RECEIVEREADY
PPP00001
RECEIVENOTREADY
PPP00101
REJECT
PPP01001
RESETREQUEST
00011011
RESETCONFIRMATION
00011111
RESTARTREQUEST
11111011
RESTARTCONFIRMATION
11111111
DIAGNOSTIC
11110001
P=捎带,S=序号,M=代序位
4X.25协议的状态转换图
以上所介绍的X.25的要点都是用自然语言描述的。这种描述方法的缺点是不够严格。因此,在X.25建议书中使用了一些状态图,它能较严格地描述各阶段的状态。如图4.17所示的连接建立阶段的状态转转移图,其他阶段的参见X.25建议书。
 
图4.17
图中每个椭圆代表一个DTE-DCE对的状态。箭头代表状态变迁的方向,而箭头旁边的文字说明表示是谁(DTE还是DCE)发出了何种分组。例如,在正常情况下,系统处于状态1。若DTE发出呼叫请求分组,则变迁到状态2,就是DTE等待。当收到DCE发出的呼叫接通分组,则进入状态4,即数据传送状态。
[章节小结]
本章讲述了7层网络体系的低3层,物理层的理解主要从4个特性去理解,即机械特性、电气特性、功能特性和规程特性;一个最典型的例子是RS-232C。
数据链路层的功能是保证链路的点对点传输,链路的概念就是将不可靠的物理线路加上控制规程变成可靠的数据传输通道,因此数据链路层的协议要对接收的数据进行检错、纠错;其控制机制就是检错后丢弃重发,为控制链路的流量保证收发双方的同步,出现了滑动窗口协议。数据链路层的典型实例是HDLC协议。
网络层的主要功能是数据分组的路由选择和流控。网络层提供两种类型的服务:无连接方式和面向连接方式,这两种方式各有其特点。路由算法是网络层的核心内容,路由算法控制策略可分为两大类:非自适应路由选择策略与自适应路由选择策略。其中的自适应算法分布式算法常用大的有距离向量和链路状态法,一个实用的算法是Dijkstra算法。
X.25协议是一个包括了低三层的标准协议,但随着底层通信质量的提高,X.25已被帧中继所替代。

•本章小结/课后习题
[课后习题]
1.常用的传输介质有哪些?
2.比较双绞线和同轴电缆各有何优缺点?
3.物理层主要解决什么问题?
4.物理层接口有哪几个方面的特性?各包含些什么内容?
5.RS-232C的电气特性是什么?
6.数据链路与链路有何区别?
7.对于选择重传协议,发送窗口大小Wt、接收窗口大小Wr和序号比特数n之间的关系是什么?为什么?
8.若信息比特为1100,则相应的海明码为多少?
9.若生成多项式为x3+1,信息比特多项式为x6+x4+1,则循环冗余码的校验码是多少?
10.若某面向比特同步规程的帧数据段中出现0100000111110101111110比特串,问比特填充后的输出是什么?
11.HDLC帧的控制字段中的P/F比特在不同配置下各有何作用?
12.比较虚电路和数据报这两种服务的优缺点。
13.一个理想的路由算法应有哪些特点?
14.路由选择有哪几种策略?各有何优缺点?
15.距离向量算法有何优缺点?
16.为什么说“只要增加一些资源就可以解决网络拥塞的问题”是不正确的?
17.X.25建立连接时分为哪几个阶段?
课后习题答案:
1.解答:
双绞线,同轴电缆,光纤,无线传输。
2.解答:
双绞线价格便宜也易于安装和使用,但就传输距离和带宽来说,性能较差。与双绞线相比,同轴电缆价格贵,但带宽大,传输距离长,抗干扰能力强。
3.解答:
由于现有的物理设备和传输介质种类繁多,通信手段也有许多不同的方式,因此,物理层的作用就是尽可能屏蔽掉这些差异,完成相邻设备间的比特流传送,使上层协议感觉不到底层物理设备及传输介质的差异。
4.解答:
有四个方面的特性:
机械特性:说明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等。
电气特性:说明在接口电缆的哪条线上出现的电压应为什么范围。
功能特性:说明某条线上出现的某一电平的电压表示何种意义。
规程特性:说明对于不同功能的各种可能事件的出现顺序。
5.解答:
采用负逻辑,逻辑0相当于对信号地线有+5――+15的电压,而逻辑1相当于对信号地线有-5――-15的电压。
6.解答:
链路就是一条无源的点到点的物理线路段,中间没有任何其他的交换节点。在进行数据通信时,两个计算机之间的通路往往是由许多的链路串接而成的。数据链路则除了必须有一条物理线路外,还必须有一些必要的规程来控制这些数据的传输。
7.解答:
Wt、Wr和n必须满足关系式:Wt+Wr<=2n。只有这样才能保证接收方能够区分新帧和重复帧。
8.解答:
海明码为0111100。
9.解答:
用1001去除10100010000,得到余数为100,即校验码。
10.解答:
填充后010000011111001011111010。
11.解答:
控制字段的P/F位,在命令帧中称为P位,在响应帧中称F比特,用来标识通信站之间的“命令―响应”信息对。
12.解答:
见正文中图示。
13.解答:
正确性、简单性、健壮性,稳定性、公平性和最优性。
14.解答:
路由策略分为非自适应路由策略和自适应路由策略两类。非自适应路由策略的优点是简单、开销小,但不能适应网变化。自适应路由策略的优点是能够根据网络当前的状态来选择最佳路由,但开销较大。
15.解答:
优点是实现简单,具有自适应性;缺点是对坏消息的传递太慢。
16.解答:
这是因为网络拥塞是一个非常复杂的问题,简单地采用上述做法,在许多情况下,不但不能解决拥塞问题,而且还可能使网络的性能更坏。例如,设想将某个节点缓冲区的容量扩展到无限大,于是凡到达该节点的分组均可在这缓冲区的队列排队,不受任何限制。由于输出线路的容量并末提高,因此在这队列中的绝大多数分组的排队等待时间将会很长,结果上层软件只好将它们重传(因为早就超时了)。由此可见,简单地增加资源不但会造成网络资源的严重浪费,而且解决不了网络拥塞的问题。
17.解答:分为三个阶段:连接建立、数据传输、连接拆除。

 

你可能感兴趣的:(职场,osi,结构,休闲,清华大学,网络体系)