切换到宽版
  • 7689阅读
  • 69回复

[水电工程]计算机网络技术 [复制链接]

上一主题 下一主题
离线游春波

发帖
6734
金钱
54611
贡献值
193
交易币
209
好评度
1569
家乡
广东省河源市
性别
只看该作者 30楼 发表于: 2009-11-18
3.4 网络层 Pgo^$xn'6  
Pgo^$xn'6  
  网络层是OSI参考模型中的第三层,介于运输层和数据链中路层之间。它在数据路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向运输层提供最基本的端到端的数据传送服务。网络层关系到通信子网的运行控制,体现了网络应用环境中资源子网访问通信子网的方式,是OSI模型中面向数据通信的低三层(也即通信子网)中最为复杂、关键的一层。 Pgo^$xn'6  
  网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括路由选择、阻塞控制和网际互连等。 Pgo^$xn'6  
Pgo^$xn'6  
 3.4.1 通信子网的操作方式和网络层提供的服务 Pgo^$xn'6  
Pgo^$xn'6  
  端点之间的通信是依靠通信子网中的节点间的通信来实现的,在OSI模型中,网络层是网络节点中的最高层,所以网络层将体现通信子网向端系统所提供的网络服务。在分组交换方式中,通信子网向端系统提供虚电路和数据报两种网络服务,而通信子网内部的操作也有虚电路的数据报两种方式。 Pgo^$xn'6  
Pgo^$xn'6  
 1.虚电路操作方式 Pgo^$xn'6  
Pgo^$xn'6  
  在虚电路操作方式中,为了进行数据传输,网络的源节点的目的节点之间先要建立一条逻辑通路,因为这条逻辑通路不是专用的,所以称之为“虚”电路。每个节点到其它任一节点之间可能有若干条虚电路支持特定的两个端系统之间的数据传输,两个端系统之间也可以有多条虚电路为不同的进程服务,这些虚电路的实际路径可能相同也可能不同。 Pgo^$xn'6  
  节点间的物理信道在逻辑上均可看做由多条逻辑信道组成,这些逻辑信道实际上由节点内部的分组缓冲器来实现。所谓占用某条逻辑信道,实质上是指占用了该段物理信道上节点分配的分组缓冲器。不同的逻辑信道在节点内部通过逻辑信道号加以区分,各条逻辑信道异步时复用同一条物理信道。 Pgo^$xn'6  
  一条虚电路可能要经过多个中间节点,在节点间的各段物理信道上都要占用一条逻辑信道用以传送分组。由于各节点均独立地为通过的虚电路分配逻辑信道,也即同一条虚电路通过各段信道所获取的逻辑信道可能是不相同的,所以各节点内部必须建立一张虚电路表,用以记录该点的各条虚电路所占用的各个逻辑信号。 Pgo^$xn'6  
  为使节点能区分一个分组属于哪条虚电路,每个分组必须携带一个逻辑信道;同样,同一条虚电路的分组在各段逻辑信道上的逻辑信道可能也不相同。传输中,当一个分组到达节点时,节点根据其携带的逻辑信道号查找虚电路表,以确定该分组应发往的下一个节点及其下一段信道上所占用的逻辑信道号,有该逻辑信道号替换分组中原先的逻辑信道号后,再将该分组发往下一个节点。 Pgo^$xn'6  
  各节点的虚电路表是在虚电路建立过程中建立的。比如,与A节点相连的源端系统要经中间节点B、C跟与D节点相连的目的端系统建立一条虚电路,源端系统可发出一个呼叫请求分组,该分组除了包含目的地址外,还包含源端系统所选取的不用的最小逻辑信道号N。A节点收到请求分组后在A节点与下一节点B间所有已使用的逻辑信道号之外选取一个最小编号NA,并将请求分组中的逻辑信道N替换成该逻辑信道号NA,再将分组成发送给节点B。此后的各节点依次逐个根据自身实际情况选取新的逻辑信道号(如NB、NC、ND等)来替换收到的分组中的逻辑信道号。最后,目的节点D将请求分组传送给连接它的端系统。在此过程中,每个节点的虚电路表中要记录两个逻辑信道:前一个节点所选取的逻辑信道号和本节点所选取的逻辑信道号。这样便使得虚电路所跨越的每一段连接上的逻辑信道号都是唯一的。 Pgo^$xn'6  
  图3.16给出一个虚电路表建立的示例,这里假设建立了6条虚电路。由于虚电路上的数据是双向传输的,为保证两节点之间正、反两个方向的虚电路不相混淆,在一个节点选取逻辑信道号来替换其前一节点的逻辑信道号时,不仅要考虑与下一节点之间的逻辑信道号不相同,还在考虑与下一节点作为另一个条反向虚电路的上一节点头时所选取的逻辑信道号相区别。例如,在建立虚电路1-BAE时(这里1-BAE表示源节点为B,建立虚电路时选取1为逻辑信道号,并经A传送到E),在节点B中,尽管A节点是第一次作为B节点的下一节点,但由于虚电路0-ABCD中A到B间已使用了逻辑信道号0,因此在出路一栏选B到A间的逻辑信道号为1。这样,当从节点A发来一个分组时,若它所携带的
有志者事竟成
离线游春波

发帖
6734
金钱
54611
贡献值
193
交易币
209
好评度
1569
家乡
广东省河源市
性别
只看该作者 31楼 发表于: 2009-11-18
逻辑信道号为0,刚说明是虚电路ABCD上的正向分组;若为1,则说明虚电路BAE上的反向分组。对于虚电路2-BFE的建立也是同样情况。 Pgo^$xn'6  
Pgo^$xn'6  
Pgo^$xn'6  
Pgo^$xn'6  
Pgo^$xn'6  
Pgo^$xn'6  
Pgo^$xn'6  
图3.16 虚电路建立示例 Pgo^$xn'6  
  各节点的虚电路表空间和逻辑信道号都是网络资源,当虚电路拆除时必须回收。这可通过某端系统发出一个拆链请求分组,告知虚电路中各节点删除虚电路表是有关表项来实现。 Pgo^$xn'6  
Pgo^$xn'6  
 2.数据报操作方式 Pgo^$xn'6  
Pgo^$xn'6  
  在数据报操作方式中,每个分组被称为一个数据报,若干个数据报构成一次要传送的报文或数据块。每个数据报自身携带有足够的信息,它的传送是被单独处理的。一个节点接收到一个数据报后,根据数据报中的地址信息和节点所存储的路由信息,找出一个合适的出路,把数据报原样地发送到下一个节点。 Pgo^$xn'6  
  当端系统要发送一个报文时,将报文拆成若干个带有序号和地址信息的数据报,依次发给网络节点。此后,各个数据报所走的路径就可能不同了,因为各个节点在随时根据网络的流量、故障等情况选择路由。由于名行其道,各数据报不能保证按顺序到达目的节点,有些数据报甚至还可能在途中丢失。在整个数据报传送过程中,不需要建立虚电路,但网络节点要为每个数据报做路由选择。 Pgo^$xn'6  
Pgo^$xn'6  
 3.虚电路服务 Pgo^$xn'6  
Pgo^$xn'6  
  虚电路服务是网络层向运输层提供的一种使所有分组按顺序到达目的端系统的可靠的数据传送方式。进行数据交换的两个端系统之间存在着一条为它们服务的虚电路。 Pgo^$xn'6  
  为了建立端系统之间的虚电路,源端系统的运输层首先向网络层发出连接请求,网络层则通过虚电路网络访问协议向网络节点发出呼叫分组;在目的端,网络节点向端系统的网络层传送呼叫分组,网络层再向运输层发出连接指示;最后,接收方运输层向发起方发回连接响应,从而使虚电路建立起来。此后,两个端系统之间就可以传送数据。数据由网络层拆成若干个分组送给通信子网,由通信子网将分组传送到数据接收方。 Pgo^$xn'6  
  上述虚电路的服务是网络层向运输层提供的服务,也是通信子网端向系统提供的网络服务。但是,提供这种虚电路服务的通信子网内部的实际操作既可是虚电路方式的,也可以是数据报方式的。以虚电路操作方式的网络,一般总是提供虚电路服务。OSI中面向连接的网络服务就是虚电路服务。在虚电路操作方式,端系统的网络层同通信子网节点的操作是一致的。SNA就是采用这种虚电路操作支持虚电路服务方式的实例。 Pgo^$xn'6  
  以数据报方式操作的网络,也可以提供虚电路服务,即通信子网内部节点按数据报方式交换数据,而与端系统相连的网络节点则向端系统提供虚电路报务.对于端系统来说,它的网络层与节点间通信仍像虚电路操作方式的网络节点间一样,先建立虚电路,再交换数据分组,最后拆除电路.但实际上,每个分组被网络节点分成若干个数据报,附加上地址、序号、逻辑信道等信息分送到目的节点。目的节点再将数据报进行排序,拼成原来的分组,送给目的端系统。因此,源端系统和源网络节点之间、目的节点和目的端系统之间的网络层按虚电路操作方式交换分组,而目的节点和源节点之间则按数据报交方式完成分组的交换。尽管通信子网的数据报交换是不可靠的,但是两端原网络节点做了许多诸如排序、重发等额外工作,从而满足了虚电路服务的要求。例如,在ARPANET中,其内部使用数据报操作方式,但可以向端系统提供数据报和虚电路两种服务。 Pgo^$xn'6  
Pgo^$xn'6  
 4.数据报服务 Pgo^$xn'6  
Pgo^$xn'6  
  数据报服务一般仅由数据报交换网来提供。端系统的网络层同网络节点中的网络层之间,一致地按照数据报操作方式交换数据。当端系统要发送数据时,网络层给该数据附加上地址、序号等信息,然后作为数据报以发送给网络节点;目的端系统收到的数据报可能是不按序到达的,也可能有数据报的丢失。例如,在ARPANET、DNA等网络中,就提供了数据报服务。数据报服务与OSI的无连接网络服务类似。 Pgo^$xn'6  
  由虚电路交换网提供数据报服务的组合方式并不常见。可以想像有这么一种特殊情况:一个端系统的网络层已经构造好了用于处理数据报的服务,而当它要接入以虚电路方式操作的网络时,网络节点就需要做一些转换工作。当端系统向网络节点发送一个携带有完整地址信息的数据报时,若发向同一地址的数据报数量足够大,则网络节点可以为这些数据报同目的节点间建立一条虚电路,所有相同址的数据报均在这条虚电路上传送时,这条虚电路便可以拆除。所以,这种数据报服务具有了虚电路服务的通信质量,但这样做既不经济,效率也低。 Pgo^$xn'6  
Pgo^$xn'6  
 3.4.2 路由选择  Pgo^$xn'6  
Pgo^$xn'6  
  通信子网为网络源节点和目的节点提供了多条传输路径的可能性。网络节点在收到一个分组后后,要确定向下一节点传送的路径,这就是路由选择。在数据报方式中,网络节点要为每个分组路由做出选择;而在虚电路方式中,只需在连接建立时确定路由。确定路由选择的策略称
有志者事竟成
离线游春波

发帖
6734
金钱
54611
贡献值
193
交易币
209
好评度
1569
家乡
广东省河源市
性别
只看该作者 32楼 发表于: 2009-11-18
路由算法。 Pgo^$xn'6  
  设计路由算法时要考虑诸多技术要素。首先,考虑是选择最短路由还是选择最佳路由;其次,要考虑通信子网是采用虚电路的还是采用数据报的操作方式;其三,是采用分布式路由算法,即每节点均为到达的分组选择下一步的路由,还是采用集中式路由算法,即由中央节点或始发节点来决定整个路由;其四,要考虑关于网络拓朴、流量和延迟等网络信息的来源;最后,确定是采用静态路由选择策略,还是动态路由选择策略。 Pgo^$xn'6  
Pgo^$xn'6  
 1.静态路由选择策略 Pgo^$xn'6  
Pgo^$xn'6  
  静态路由选择策略不用测量也不需利用网络信息,这种策略按某种固定规则进行路由选择,其中还可分为泛射路由选择、固定路由选择和随机路由选择三种算法。 Pgo^$xn'6  
  (1)泛射路由选择法。这是一种最简单的路由算法。一个网络节点从某条线路收到一个分组后,再向除该线路外的所有线路重复发送收到分组。结果,最先到达目的的节点的一个或若干个分组肯定经过了最短的路径,而且所有可能的路径都被尝试过。这种方法用于诸如军事网络等强壮性要求很高的场合。即使有的网络节点遭到破坏,只要源、目间有一条信道存在,则泛射路由选择仍能保证数据的可靠传送。另外,这种方法也可用于将一个分组数据源传送到所有其它节点的广播式数据交换中。它还可被用来进行网络的最短路径及最短传输延迟的测试。 Pgo^$xn'6  
  (2)固定路由选择。这是一种使用较多的简单算法。每个网络节点存储一张表格,表格中每一项记录着对应某个目的节点的下一节点或链路。当一个分组到达某节点时,该节点只要根据分组上的的地址信息,便可从固定的路由表中查出对应的目的节点及所应选择的下一节点。一般,网络中都有一个网络控制中心,由它按照最佳路由算法求出每对源、目节点的最佳路由,然后为每一节点构造一个固定路由表并分发给各个节点。固定路由选择法的优点是简便易行,在负载稳定,拓扑结构变化不大的网络中运行效果很好。它的缺点是灵活性差,无法应付网络中发生的阻塞和故障。 Pgo^$xn'6  
  (3)随机路由选择。在这种方法中,收到分组的节点,在所有与之相邻的节点中为分组随机选择出一个节点。方法虽然简单,但实际路由不是最佳路由,这会增加不必要的的负担,而且分组传输延迟也不可预测,故此法应用不广。 Pgo^$xn'6  
Pgo^$xn'6  
 2.动态路由选择策略 Pgo^$xn'6  
Pgo^$xn'6  
  节点的路由选择要依靠网络当前的状态信息来决定的策略,称动态路由选择策略。这种策略能较好地适应网络流量、拓扑结构的变化,有利于改善网络的性能。但由于算法复杂,会增加网络的负担。独立路由选择、集中路由选择和分布路由选择是三种动态路由选择策略的具体算法。 Pgo^$xn'6  
  (1)独立路由选择。在这类路由算法中,节点不仅根据自己搜集到
有志者事竟成
离线游春波

发帖
6734
金钱
54611
贡献值
193
交易币
209
好评度
1569
家乡
广东省河源市
性别
只看该作者 33楼 发表于: 2009-11-18
的有关信息做出路由选择的决定,与其它节点不交换路由选择信息。这种算法虽然不能正确确定距离本节点较远的路由选择,但还是能较好地适应网络流量和拓扑结构的变化。一种简单的独立路由选择算法是Baran在1964年提出的热土豆(Hot Potato)算法:当一个分组到来时,节点必须尽快脱手,将其放入输出队列最短的方向上排队,而不管该方向通向何方。  Pgo^$xn'6  
  (2)集中路由选择。集中路由选择也像固定路由选择一样,在每个节点上存储一张路由表。不同的是,固定路由选择算法中的节点路由表由人工制作,而在集中路由选择算法中的节点路由表由路由控制中心RCC(Routing Control Center)定时根据网络状态计算、生成并分送到各相应节点。由于RCC利用了整个网络的信息,所以得到的路由选择是完美的,同时也减轻了各节点计算路由选择的负担。  Pgo^$xn'6  
  (3)分布路由选择。在采用分布路由选择算法的网络中,所有节点定期地与其每个相邻节点交换路由选择信息。每个节点均存储一张以网络中其它节点为索引的路由选择表,,网络中每个节点占用表中一项。每一项又分为两个部分,一部分是所希望使用的到目的节点的输出线,另一部分是估计到目的的节点所需要的延迟或距离。度量标准可以是毫秒或链路段数、等待的分组数、剩余的线路和容量等。 Pgo^$xn'6  
Pgo^$xn'6  
 3.4.3 阻塞控制 Pgo^$xn'6  
Pgo^$xn'6  
  阻塞现象是指到达通信子网中某一部分的分组数量过多,使得该部分网络来不及处理,以致引起这部分乃至整个网络性能下降的现象,严重时甚至会导致网络通信业务陷入停顿,即出现死锁现象。这种现象跟公路网中经常所见的交通拥挤一样,当节假日公路网中车辆大量增加时,各种走向的车流相互干扰,使每辆车到达目的地的时间都相对增加(即延迟增加),甚至有时在某段公路上车辆因堵塞而无法开动(即发生局部死锁)。 Pgo^$xn'6  
  网络的吞吐量与通信子网负荷(即通信子网中正在传输的分组数)有着密切的关系。当通信子网负荷比较小时,网络的吞吐量(分组数/秒)随网络负荷(每个节点中分组的平均数)的增加而线性增加。当网络负荷增加到某一值后,若网络吞吐量反而下降,则表征网络中出现了阻塞现象。在一个出现阻塞现象的网络中,到达某个节点的分组将会遇到无缓冲区可用的情况,从而使这些分组不得不由前一节点重传,或者需要由源节点或源端系统重传,从而使通信子网的有效吞吐量下降。由此引起恶性循环,使通信子网的局部甚至全部处于死锁状态,最终导致网络有效吞吐量接近为零。 Pgo^$xn'6  
Pgo^$xn'6  
 1.阻塞控制方法 Pgo^$xn'6  
Pgo^$xn'6  
  (1)缓冲区预分配方法。该法用于虚电路分组交换网中。在建立虚电路时,让呼叫请求分组的途经的节点为虚电路预先分配一个或多个数据缓冲区。若某个节点缓冲器已被占满,则呼叫请求分组另择路由,或者返回一个“忙”信号给呼叫者。这样,通过途经的各个节点为每条虚电路开设的永久性缓冲区(直到虚电路拆除),就总能有空间来接纳并转送经过的分组。此时的分组交换跟电路交换很相似。当节点收到一个分组并将它转发出去之后,该节点向发送节点返回一个确认信息。该确认一方面表示接收节点已正确收到分组,另一方面告诉发送节点,该节点已空出缓冲区以备接收下一个分组。上面是“等一等”协议下的情况,若节点之间的协议允许多个未处理的分组存在,则为了完全消除阻塞的可能性,每个节点要为每条虚电路保留等价于窗口大小数量的缓冲区。这种方法不管有没有通信量,都有可观的资源(线路容量或存储空间)被某个连接占有,因此网络资源的有效利用率不高。这种控制方法主要用于要求高带宽和低延迟的场合,例如传送数字化语音信息的虚电路。 Pgo^$xn'6  
  (2)分组丢弃法。该法不必预先保留缓冲区,当缓冲区占满时,将到来的分组丢弃。若通信子网提供的是数据报服务,则用分组丢弃法来防止阻塞发生不会会引起大的影响。但若通信子网提供的是虚电路服务,则必须在某处保存被丢弃分组的备份,以便阻塞解决后能重新传送。有两种解决被丢弃分组重发的方法,一种是让发送被丢弃分组的节点超时,并重新发送分组直至分组被收到;另一种是让发送被丢弃分组的节点在一定次数后放弃发送,并迫使数据源节点超时而重新开始发送。但是不加分辨地随意丢弃分组也不妥,因为一个包含确认信息的分组可以释放节点的缓冲区,若因节点无空余缓冲区来接收含确认信息的分组,这便使节点缓冲区失去了次释放的机会。解决这个问题的方法可以为每条输入链路永久地保留一块缓冲区,以用于接纳并检测所有进入的分组,对于捎带确认信息的分组,在利用了所捎带的确认释放缓冲区后,
有志者事竟成
离线游春波

发帖
6734
金钱
54611
贡献值
193
交易币
209
好评度
1569
家乡
广东省河源市
性别
只看该作者 34楼 发表于: 2009-11-18
再将该分组丢弃或将该捎带好消息的分组保存在刚空出的缓冲区中。 Pgo^$xn'6  
  (3)定额控制法。这种方法在通信子网中设置适当数量的称做“许可证”的特殊信息,一部分许可证在通信子网开始工作前预先以某种策略分配给各个源节点,另一部分则在子网开始工作后在网中四处环游。当源节点要发送来自源端系统的分组时,它必须首先拥有许可证,并且每发送一个分组注销一张许可证。目的节点方则每收到一个分组并将其递交给目的端系统后,便生成一张许可证。这样便可确保子网中分组数不会超过许可证的数量,从而防止了阻塞的发生。 Pgo^$xn'6  
Pgo^$xn'6  
 2.死锁及其防止 Pgo^$xn'6  
Pgo^$xn'6  
  阻塞的极端后是死锁。死锁是网络中最容易发生的故障之一,即使在网络负荷不很重时也会发生.死锁发生时,一组节点由于没有空闲缓冲区而无法接收和转发分组,节点之间相互等待,既不能接收分组也不能转发分组,并一直保持这一僵局,严重时 至导致整个网络的瘫痪.此时,只能靠人工干预来重新启动网络,解除死锁.但重新启动后并未消除引起死锁的隐患,所以可能再次发生死锁.死锁是由于控制技术方面的某些缺陷所引起的,起因通常难以捉摸、难以发现,即使发现,也常常不能立即修复。因此,在各层协议中都必须考 如何避免死锁问题。  Pgo^$xn'6  
  (1)存储转发死锁及其防止。最常见的死锁是发生在两个节点之间的直接存储转发死锁。例如,A节点的所有缓冲区装满了等待输出到B节点的分组,而B节点的所有缓冲区也全部装满了等待输出到A节点的分组;此时,A节点不能从B节点接收分组,B节点也不能从A节点接收分组,从而造成两节点间的死锁。这种情况也可能发生在一组节点之间,例如,A节点企图向B节点发送分组、B节点企图向C节点发送分组,这种情形称做间接存储转发死锁。当一个节点处于死锁状态时,所有与之相连的链路将完全被阻塞。 Pgo^$xn'6  
  一种防止存储处于死锁的方法是,每个节点设置M+1个缓冲区,并以0到M编号。M为通信子网的直径,即从任一源节点到任一目的节点间的最大链路段数。每个源节点仅当其为0号缓冲区时才能接收源端系统来的分组,而此分组仅能转发给1号缓冲区空闲的相邻节点,再由该节点将分组转发给它的2号缓冲区空闲的相邻节点......最后,该公组或者顺利到达目的节点并被递交给目的端系统,或者到了某个节点编号为M 的缓冲区中再也转发不下去,此时一定发生了循环,应该将该分组丢弃。由于每个分组都是接照编号递增规则分配缓冲区,所以节点之间不会相互等待空闲缓冲区而发生死锁现象。这种方法的不足之处在于,当某节点虽然有空闲缓冲区,但正巧没有所需要的特性编号的缓冲区时,分组仍要等待,从而造成了缓冲区和链路的浪费。 Pgo^$xn'6  
  另一种防止存储转发死锁的方法是,使每个分组上都携带一个全局性的惟一的“时间戳”,每个节点要为每条链路保留一个特殊的接收缓冲区,而其它缓冲区均可用于存放中转分组。在每条输出链路的队列上分组时间戳顺序排队。例如,节点A要将分组送到节点B,若B节点没有空闲缓冲区,但正巧有要送到A节点的分组,此时A、B节点可通过特殊的接收缓冲区交换分组;若B节点既没有空闲缓冲区,也没有要送
有志者事竟成
离线游春波

发帖
6734
金钱
54611
贡献值
193
交易币
209
好评度
1569
家乡
广东省河源市
性别
只看该作者 35楼 发表于: 2009-11-18
到A节点的分组,B节只好强行将一个出路方向大致与A节点方向相同的分组与A节点互相交换分组,但此时A节点中的分组必须比B节点中的分组具有更早的时间戳,这样才能保证子网中某个最早的分组不受阻挡地转发到目的地。由此可见,每个分组最终总会成为最早的分组,并总能一步一步地发送到目的节点,从而避免了死锁现象的发生。 Pgo^$xn'6  
  (2)重装死锁及其防止。死锁中比较严重的情况是重装死锁。假设发给一个端系统的报文很长,被源节点拆成若干个分组发送,目的节点要将所有具有相同编号的分组重新装配成报文递交给目的端系统,若目的节点用于重装报文的缓冲区空间有限,而且它无法知道正在接收的报文究竟被拆成多少个分组,此时,就可能发生严重的问题:为了接收更多的分组,该目的节点用完了它的缓冲空间,但它又不能将尚未拼装完整的报文递送给目的端系统,而邻节点仍在不断地向它传送分组,但它却无法接收。这样,经过多次尝试后,邻节点就会绕道从其它途径再向该目的节点传送分组,但该目的节点已被死锁,其周边区域也由此发生了阻塞。下面几种方法可用以避免重装死锁的发生: Pgo^$xn'6  
  ①允许目的节点将不完整的报文递交给目的端系统; Pgo^$xn'6  
  ②一个不能完整重装的报文能被检测出来,并要求发送该报文的源端系统重新传送; Pgo^$xn'6  
  ③每个节点配备一个缓冲空间,用以暂存不完整的报文。 Pgo^$xn'6  
  ①、②两种方法不能很满意地解决重装死锁,因为它们使端系统中的协议复杂化了。一般的设计中,网络层应该对端系统透明,也即端系统不该考虑诸如报文拆、装只类的事。⑶方法虽然不涉及端系统,但使每个节点增加了开销。 Pgo^$xn'6  
Pgo^$xn'6  
 3.4.4 X.25 协议 Pgo^$xn'6  
Pgo^$xn'6  
  CCITT提出的X.25协议描述了主机(DTE)与分机交换网(PSN)之间的接口标准,使主机不必关心网络内部的操作就能方便地实现对各种不同网络的访问。X。25实际上是DTE与PSN之间接口的一组协议,它包括物理层、数据链路层和分组层三个层次。X。25的分组级相当与OSI参考模型中的网络层,其主要功能是向主机提供多信道的虚电路服务。 Pgo^$xn'6  
Pgo^$xn'6  
 1.X.25 分组级的功能 Pgo^$xn'6  
Pgo^$xn'6  
  X.25分组级的主要功能是将链路层所提供的连接DTE-DCE的一条或多条物理链路复用成数条逻辑信道,并且对每一条逻辑信道所建立的虚电路执行与链路层单链路协议类似的链路建立、数据传输、流量控制、顺序和差错检测、链路的拆除等操作。利用X。25分组级协议,可向网络层的用户提供多个虚电路连接,使用户可以同时与公用数据网中若干个其它X。25数据终端有用户(DTE)通信。 Pgo^$xn'6  
  X.25提供虚呼叫和永久虚电路两种虚电路服务,虚呼叫即需要呼叫建立与拆除过程的虚电路服务,永久虚电路即在接入是由协商指定的不需要呼叫建立与拆除过程的虚电路服务。每条虚电路都要赋予一个虚电路号,X.25中的虚电路号由逻辑信道组号(0~15)和逻辑信道号(0~255)
有志者事竟成
离线游春波

发帖
6734
金钱
54611
贡献值
193
交易币
209
好评度
1569
家乡
广东省河源市
性别
只看该作者 36楼 发表于: 2009-11-18
组成。用于虚呼叫的虚电路号范围和永久虚电路的虚电路号应在签定服务时与管理部门协商确定与分配。 \XYidj  
  公用数据网有虚电路和数据报两种操作方式,尽管有些网络体系结构(如Ethernet)仍在使用数据报技术,但数据报服务已在1980年的修订中被从X。25标准中删去,取而代之的是一个称做快速(Fast Select)的可选扩充服务。 \XYidj  
  X.25所规定的虚电路服务属于面向连接的OSI服务方式,这正好符合OSI参考模型中的网络层服务标准定义,这就为公用数据网与OSI结合提供了可能性。OSI网络层的功能是提供独立于运输层的中继和路由选择以及其它以之相关的功能。在面向连接的网络层服务中,要进行通信的网络层实体必须首先建立连接,这在X.25中即为相应的建立虚电路的呼叫建立规程。 \XYidj  
\XYidj  
 2.X.25分组级分组格式 \XYidj  
\XYidj  
  在分组级上,所有的信息都以分组为基本单位进行传输和处理,无论是DTE之间所要传输的数据,还是交换网所用的控制信息,都以分组形式来表示,并按照链路协议穿越DTE-DCE界面进行传输。因此在链路层上传输时,分组应嵌入到信息帧(I帧)的信息字段中,即表示成如下的格式: 
\XYidj  
标记字段F \XYidj  
地址字段 \XYidj  
控制字段 \XYidj  
(分组) \XYidj  
帧校验序列FCS \XYidj  
标记字段F \XYidj  
  每个分组均由分组头和数据信息两部分组成,其一般格式如图3.17所示。 \XYidj  
  \XYidj  
 8  7  6  5  4  3  2  1 \XYidj  
(位) \XYidj  
1 \XYidj  
2 \XYidj  
3 \XYidj  
4 \XYidj  
\XYidj  
\XYidj  
通用格式标识 \XYidj  
逻辑信道组号 \XYidj  
逻辑信道号 \XYidj  
分组类型标识 \XYidj  
与分组类型有关的信息(可为空) \XYidj  
数据(可变长、可为空) \XYidj  
\XYidj  
─┬─ \XYidj  
\XYidj  
分组头 \XYidj  
\XYidj  
\XYidj  
─┼─ \XYidj  
\XYidj  
数据 \XYidj  
\XYidj  
─┴─ \XYidj  
图3.17 X.25分组的一般格式 \XYidj  
  分组格式中的数据部分(可以为空)通常被递交给高层协议或用户程序去处理,所以分组协议中不对它做进一步规定。分组头用于网络控制,主要包括DTE-DCE的局部控制信息,其长度随分组类型不同有所不同,但至少要包含前三个字节作为通用格式标识、逻辑信道标识和分组类型标识,它们的含义如下: \XYidj  
  (1)通用格式标识(GFI)。由分组中第一个字节的前四位组成,用于标志分组头中其余部分的格式。第一位(b8)称作Q位或限定位,只用于数据分组中。这是为了对分组中的数据进行特殊处理而设置的,可用于区分数据正常数据,还是控制信息。对于其它类型的分组,该位恒置为“0”。第二位(b7)称D位或传送确认位,设置该位的目的是用来指出DTE是否希望用分组接收序号P(R)来对它所接收的数据做端一端确认。在呼叫建立时,DTE之间可通过D位来商定虚呼叫期间是否将使用D位来商定虚呼叫期间是否将使用D位规程。第三、四位(b6、b5)用以指示数据分组的序号是用3位即模8(B5置“1”)还是7位即模128(b6置“1”),这两位或者取“10”,或者取“10”,或者取“01”,一旦选定,相应的分组格式也有所变化。 \XYidj  
  (2)逻辑信道标识。由第一个字节中和剩余四位(b4、b3、b2、b1)所做的逻辑信道组号(LCGN)和 \XYidj  
第二个字节所做的逻辑信道号(LCN)两部分组成,用以标识逻辑信道。 \XYidj  
  (3)分组类型标识。由第三个字节组成,用于区分分组的类型和功能。若该字节的最后一位(B1)为 \XYidj  
“0”,则表示分组为数据分组成;若该位为“1”,则表示分组为控制分组,可以用做呼叫请求或指示分组、释放请求或指示分组。若该字节末三位( b3、b2、b1)为全“1”,则表示该分组是某个确认或接受分组。 \XYidj  
  第四个字节及其后诸字节将依据分组类型的不同而有不同的定义。 \XYidj  
  X.25分组级协议规定了多种类型的分组。由于DTE与DCE的不对称性,所以具有相同类型编码的同类型分组,因其传输方向的不同的含义和解释,具体实现时也有所不同。为此,分组协议从本地DTE的角度出发,为它们取了不同的名称以示区别。一般来说,从DTE到DCE的分组表示本地DTE经DCE向远地DTE发送的命令请求或应答响应;反之,从DCE到DTE的分组表示DCE代表远地DTE向本地DTE发送的命令或应答响应。表3.5列出了这些分组的名称、分组类型编号及参数。表中的分组类型可归纳为图3.18所示的六种格式。
\XYidj  
表3.5 \XYidj  
X.25 分组级分组类型 \XYidj  
  \XYidj  
  \XYidj  
分组类型名称 \XYidj  
分组类型编号(位) \XYidj  
格式 \XYidj  
编号 \XYidj  
DTE->DCE \XYidj  
DTE->DCE \XYidj  
8 7 6 5 4 3 2 1 \XYidj  
呼叫 \XYidj  
建立 \XYidj  
\XYidj  
清除
\XYidj  
呼叫请求 \XYidj  
呼叫接受 \XYidj  
释放请求 \XYidj  
DTE释放确认
\XYidj  
呼叫指示 \XYidj  
呼叫接通 \XYidj  
释放指示 \XYidj  
DCE释放确认
\XYidj  
0 0 0 0 1 0 1 1 \XYidj  
0 0 0 0 1 1 1 1 \XYidj  
0 0 0 1 0 0 1 1 \XYidj  
0 0 0 1 0 1 1 1 \XYidj  
\XYidj  
\XYidj  
\XYidj  
\XYidj  
数据 \XYidj  
\XYidj  
中断
\XYidj  
DTE数据 \XYidj  
DTE中断请求 \XYidj  
DTE中断确认
\XYidj  
DCE数据 \XYidj  
DCE中断请求 \XYidj  
DCE中断确认
\XYidj  
P(R) M P(S) 0 \XYidj  
0 0 1 0 0 0 1 1 \XYidj  
0 0 1 0 0 1 1 1 \XYidj  
\XYidj  
\XYidj  
\XYidj  
流量 \XYidj  
控制 \XYidj  
\XYidj  
复位
\XYidj  
DTE RR \XYidj  
DTE RNR \XYidj  
复位请求 \XYidj  
DTE复位确认
\XYidj  
DCE RR \XYidj  
DCE RNR \XYidj  
复位请求 \XYidj  
DCE复位确认
\XYidj  
P(R) 0 0 0 0 1 \XYidj  
P(R) 0 0 1 0 1 \XYidj  
0 0 0 1 1 0 1 1 \XYidj  
0 0 0 1 1 1 1 1 \XYidj  
\XYidj  
\XYidj  
\XYidj  
\XYidj  
\XYidj  
启动
\XYidj  
重启动请求 \XYidj  
DTE重启动确认
\XYidj  
重启动指示 \XYidj  
DCE重启动确认
\XYidj  
1 1 1 1 1 0 1 1 \XYidj  
1 1 1 1 1 1 1 1 \XYidj  
\XYidj  
\XYidj  
任选 \XYidj  
DTE REJ \XYidj  
DCE REJ \XYidj  
P(R) 0 1 0 0 1 E`AYee%l  
E`AYee%l  
E`AYee%l  
  E`AYee%l  
  E`AYee%l  
  E`AYee%l  
呼叫请求、呼叫指示 E`AYee%l  
数据分组 E`AYee%l  
0 E`AYee%l  
0 E`AYee%l  
0 E`AYee%l  
1 E`AYee%l  
逻辑信道组号 E`AYee%l  
逻辑信道号 E`AYee%l  
分组类型       E`AYee%l  
主叫地址长度 E`AYee%l  
被叫地址长度 E`AYee%l  
DTE地址 E`AYee%l  
  E`AYee%l  
  E`AYee%l  
0 E`AYee%l  
0 E`AYee%l  
0 E`AYee%l  
0 E`AYee%l  
E`AYee%l  
E`AYee%l  
0 E`AYee%l  
0 E`AYee%l  
补充业务字段长度 E`AYee%l  
补充业务(0~63字节) E`AYee%l  
呼叫用户数据(0~16/128字节) E`AYee%l  
E`AYee%l  
0 E`AYee%l  
0 E`AYee%l  
0 E`AYee%l  
0 E`AYee%l  
逻辑信道组号 E`AYee%l  
逻辑信道号 E`AYee%l  
P(R)  │ M P(S) │0 E`AYee%l  
数据部分 E`AYee%l  
E`AYee%l  
流量控制分组 E`AYee%l  
0 E`AYee%l  
0 E`AYee%l  
0 E`AYee%l  
0 E`AYee%l  
逻辑信道组号 E`AYee%l  
逻辑信道号 E`AYee%l  
 P(R)    分类类型  1 E`AYee%l  
E`AYee%l  
请求、指示分组 E`AYee%l  
复位分组 E`AYee%l  
0 E`AYee%l  
0 E`AYee%l  
0 E`AYee%l  
1 E`AYee%l  
逻辑信道组号 E`AYee%l  
逻辑信道号 E`AYee%l  
分组类型      1 E`AYee%l  
原 因       1 E`AYee%l  
E`AYee%l  
0 E`AYee%l  
0 E`AYee%l  
0 E`AYee%l  
0 E`AYee%l  
逻辑信道组号 E`AYee%l  
逻辑信道号 E`AYee%l  
分组类型      0 E`AYee%l  
原 因 E`AYee%l  
诊断码 E`AYee%l  
E`AYee%l  
确认分组 E`AYee%l  
0 E`AYee%l  
0 E`AYee%l  
0 E`AYee%l  
1 E`AYee%l  
逻辑信道组号 E`AYee%l  
逻辑信道号 E`AYee%l  
分组类型      0 E`AYee%l  
E`AYee%l  
  E`AYee%l  
图3.18 X.25分组格式 E`AYee%l  
有志者事竟成
离线游春波

发帖
6734
金钱
54611
贡献值
193
交易币
209
好评度
1569
家乡
广东省河源市
性别
只看该作者 37楼 发表于: 2009-11-18
 数据分组中的数据类型编码部分,除了用M位代替I幀中的P/F位外,其它内容与数据链路级的HDLC幀格式中的控制字段C非常类似,最末位的“0”是数据类型分组的特征位。M(More data)位置“1”,代表还有后续的数据,即当前数据分组中的数据将以同一逻辑信道上的下一数据分组中的数据作为逻辑继续。P(S)P(R)分别称为分组发送顺序号和接收顺序号,它们的作用大致与幀格式中的N(S)和N(R)相当。但是,它们的主要作用是控制每条逻辑道上向分组交换网发送或从交换网接收的数据流,而不只为站点子÷之间提供确认手段。其目的是为了调节每个逻辑信道上的流量,以防止对分组交换网的压力过重。实际上,P(S)或P(R)的值用以确定一个给定的逻辑信道上的“窗口”,表示信道上的允许传送多少个未被响应的分组。能传输未响应分组的最大值称为窗口尺寸,每条虚电路的窗口尺寸是在立户或呼叫建立时分配的,但序号采用3位时最大能超过7个分组,序号采用7位时最大不能超过127个分组。 E`AYee%l  
  与数据链路级帧格式一样,分组级也包括RR、RNR和REJ三种分组,它们被称为流量控制分组,这些分组中的类型字段只包括接收顺序号P(R),而无发送顺序号P(S)。RR用于告知对方本方正在准备从给定逻辑信道上接收顺序号为P(S)的分组;RNR用于向对方表示本方目前不能在给定的逻辑信道上接收数据分组。RNR可以通过同一方向上发送的RR分组加以清除。 E`AYee%l  
  另外,分组级也包括一些无编号的分组。如是中断请求分组,它不需要等待事先已发送的其它分组而能立即向外发送,甚至在对方不能接收数据时也能发送。中断请求分组只能携带一个字节的用户数据,放在原因字段中用以向对方传送中断信息或原因。 E`AYee%l  
  X.25中还定义了很多其它类型的分组,包括释放请求/指示、复位请求/指示、重启动请求/指示等。其中除复位请求/指示分组多下个诊断代码外,其它均与中断请求分组格式相同。这些分组都包括一个“原因”字段,用以存入引入相应动作的原因。需要说明一下复位与重启动之间的差别。复位请求是为了在数据传输状态中对虚电路进行重初始准备而设置的;而重启动则为同时释放DTE-DCE界面上所有虚呼叫以及复位所有永久虚电路而设置的。 E`AYee%l  
  各类确认分组仅包含三个字节,它们分别用做对呼叫、释放、中断、复位及重启动的请求或指示的确认。 E`AYee%l  
E`AYee%l  
 3.4.5网际互连 E`AYee%l  
E`AYee%l  
 1.网际互连原理 E`AYee%l  
E`AYee%l  
  网际互连的目的是使一个网络上的用户能访问其它网络上的资源,使不同网络上的用户互相通信和交换信息。这不仅有利于资源共享,也可以从整体上提高网络的可靠性。 E`AYee%l  
  要实现网际互连,必须: E`AYee%l  
  (1)在网络之间至少提供一条物理上连接的链路,并具有对这条链的控制规程; E`AYee%l  
  (2)在不同网络的进程之间提供合适的路由实现数据交换; E`AYee%l  
  (3)有一个始终记录不同网络使用情况并维护该状态信息的统一的记费服务; E`AYee%l  
  (4)在提供以上服务时,尽可能不对互连在一起的网络的体系结构做任何修改。 E`AYee%l  
  互连的网络在体系结构、层次协议及服务等方面或多或少存在着差异,对于异构网来说(例如各种类型的局域网)差异就更大。这种差异可能表现在寻址方式、路由选择、最大长度、网络接入机制、用户接入控制、超时控制、差错恢复方法、服务、管理方式等诸方面的不同。要实现网际互连,就必须消除差异。要事现网际互连,就必须消除网络间的差异,这些都是网际互连要解决的问题。 E`AYee%l  
  局域网(LAN)、广域网(WAN)的网际互连有“LAN-LAN”,“LAN-WAN”、“WAN-WAN”和“LAN-WAN-LAN”等四种型式。由于非OSI系统要与OSI系统互连,非OSI系统之间要互连,所以,网际互连并不单纯指不同的通信子网在网络层上互连。实际上,两个网络之间要互连时,它们之间的差异可以表现在OSI七层模型中的任一层上。用于网络之间互连的中继设备称为网间连接器,按它们对不同层次的协议和功能转换,可以分为以下几类: E`AYee%l  
  (1)转发器(Repeater),在物理层间实现透明的二进制比特复制,以补偿信号衰减; E`AYee%l  
  (2)网桥(Bridge) ,提供链路层间的协议转换,在局域网之间存储和转发帧; E`AYee%l  
  (3)路由器(Router),提供链路层间的协议转换,在不同的网络之间存储和转发分组; E`AYee%l  
  (4)网关(Gateway),提供运输层及运输以上各层间的协议转换。 E`AYee%l  
  注意,由于术语的不统一性,有些文献中将上述的网桥、路由器和网关一起统称为“网关”,此时它可能指的网之间进行协议转换的网间连接器,另外,还有一种称为桥路器(Router)的产品,兼有网桥和路由器两者的功能。 E`AYee%l  
E`AYee%l  
 2.网桥 E`AYee%l  
E`AYee%l  
  网桥是一种存储转发设备,用来连接类型相似的局域网。从互连网络的结构看,网桥属于DCE级的端到端的连接;从协议层次看,网桥属于链路层范畴,存该层对数据帧进行存储转发。它既不同于只作单纯信号增强的转接器,也不同于进行网络层转换的网间连接器。但网桥仍然是一种网络连接的方法,因为局域网本身没有网络层,只有在主机站点上才有网络层或提供网络层服务的功能。 E`AYee%l  
  网桥接收帧并送到数据链路层进行差错校验,然后送到物理层再经物理传输媒体送到另一个子网。在转发帧以前,网桥对帧的内容和格式不做修改或仅做很少的修改。网桥应该有足够的缓冲空间,以便能满足高峰负荷时的要求。另外,必须具备寻址和路由选择的;逻辑功能。 E`AYee%l  
  局域网贩逻辑功能自下向上可分为物理层、媒体访问控制层(MAC)及逻辑路控制层(LLC)三层,异构局域的差异主要体现在物理及媒体访
有志者事竟成
离线游春波

发帖
6734
金钱
54611
贡献值
193
交易币
209
好评度
1569
家乡
广东省河源市
性别
只看该作者 38楼 发表于: 2009-11-18
问控制层中,图3.19给出了一个假想的网桥的工作原理图,图中的两个局域网802.X和802.Y分别为802.3、802.4和802.5MAC标准中的一种.网络中发送的数据由802.X的MAC控制信息X、LLC控制控制信息X,然后交给LLC子层加上相应控制信息Y送到802.Y局域网中,再由对方主机接收。此时,在802.Y局域网中,数据由802.Y的MAC控制信息Y、LLC控制信息L各网络协议数据单元组成。在上述过程中,由于各种局域网有其不同的物理和数据格式,所以传输过程中还要进行转换。 E`AYee%l  
E`AYee%l  
E`AYee%l  
E`AYee%l  
图3.19 网桥工作原理 E`AYee%l  
 3.路由器 E`AYee%l  
E`AYee%l  
  路由器工作网络层,用以实现不同网络间的地址翻译、协议转换和数据式转换等功能,一般用于广域网之间的连接或广域网与局域网之间的连接。常用的路由器有用于面向连接的路由器和用于无连接的路由器两种。 E`AYee%l  
  面向连接的路由器用于连接两个提供虚电路服务的广域网。一种采
有志者事竟成
离线游春波

发帖
6734
金钱
54611
贡献值
193
交易币
209
好评度
1569
家乡
广东省河源市
性别
只看该作者 39楼 发表于: 2009-11-18
第3章 计算机网络体系结构及协议
3.5 高层协议介绍 E`AYee%l  
E`AYee%l  
 3.5.1 运输层(又称传输层 E`AYee%l  
E`AYee%l  
 1.运输层在OSI中的地位和作用 E`AYee%l  
E`AYee%l  
  OSI七层模型中的物理层、数据链路层和网络层是面向网络通信的低三层协议。运输层负责端到端的通信,既是七层模型中负责数据通信的最高层,又是面向网络通信的低三层和面向信息处里的高三层之间的中间层。运输层位于网络层之上、会话层之下,它利用网络层子系统提供给它的服务区开发本层的功能,并实现本层对会话层的服务。 E`AYee%l  
  运输层是OSI七层模型中最重要、最关键的一层,是唯一负责总体数据传输和控制的一层。运输层的两个主要目的是:第一,提供可靠的端到端的通信;第二,向会话层提供独立于网络的运输服务。 E`AYee%l  
  在讨论为实现这两个目标所应具有的功能之前,先考察一下运输层所处的地位。首先,运输层之上的会话层、表示层及应用层局部包含任何数据传输的功能,而网络层又不一定需要保证发送站的数据可靠地送至目的站会话层不必考虑实际网络的结构属性连接方式等实现的细节。 E`AYee%l  
  根据运输层在七层模型中的目的和单位,它的主要功能是:对一个进行的对话或连接提供可靠的运输服务,在通向网络的单一物理连接上实现该连接的复用,在单一连接上提供端到端的序号与流量控制端到端的差错控制及恢复等服务。 E`AYee%l  
  运输层反映并扩展了网络层子系统的服务功能,并通过运输层地址提供给高层用户传输数据的通信端口,是系统间高层资源的共享不必考虑数据通信方面的问题。 E`AYee%l  
E`AYee%l  
 2.运输服务 E`AYee%l  
E`AYee%l  
  运输层的服务包括的内容有:服务的类型、服务的等级、数据的传输、用户的接口、连接管理、快速数据传输、状态报告、安全保密等。 E`AYee%l  
  (1)服务类型。 运输服务有两大类,即面向连接的服务和面向无连接服务。面向连接的服务提供运输服务用户之间逻辑连接的建立、维持和拆除,是可靠的服务,可提供流量控制、差错控制和序列控制。无连接服务,只能提供不可靠的服务。  E`AYee%l  
  需要说明的是,面向连接的运输服务与面向连接的网络层服务十分相似,两者都向用户提供连接的建立、维持和拆除,而无连接的运输服务与无连接的网络层服务业十分相似。那么,既然运输层服务与网络层服务如此相似,又为什么要将它们划分为两个层次呢?前面章节已经介绍过,网络层是通信子网的一个组成部分,网络服务质量并不可靠,如会频繁的丢失分组、网络层系统可能崩溃或不断的进行网络复位。对于这种情况,用户将束手无策,因为用户不能对通信子网加以控制,因而无法采用更优的通信处理机来解决网络服务质量低劣的问题,更不能通过改进数据链路层纠错能力来改善它。解决这个问题的唯一可能办法就是在网路层上增加一层运输层。运输层的存在,使运输服务比网络服务更可靠,分组的丢失、残缺、甚至网络的复位均可被运输层检测出来,并采取相应的补救错施。而且,因为运输服务独立于网络服务,可以采用一种标准的原预计作为运输服务,而网络服务则随不同的网络可能有很大的不同。因为运输服务是标准的,用运输服务原语编写的应用程序能广泛适应于各种网络,因而不必担心不同的通信子网所提供的不同的
有志者事竟成
快速回复
限100 字节
 
上一个 下一个