6.1 网络层服务及其实现
ISO 为网络层定义了两种服务——面向连接的服务( ISO 8348 )和无连接服( ISO 8473 )。面向连接的服务意味着可靠的顺序提交,即分组应该按照发送的顺序无差错地交给用户。实现无连接的服务则简单得多,没有建立和拆除连接开销。每个分组独立地到达目的端,不保证可靠和有序,纠错和排序功能由用户(传输层)自己完成。
特点:面向连接的服务适合传送大的数据文件。无连接的服务在电子资金转账、文献检索、数据库访问等方面有广泛的应用。
( P107 图 6.1 )从数据链路层开始都向上面的邻层分别提供面向连接的服务和无连接的服务,只有物理层提供一种服务。
在通信子网内部用数据报方式实现无连接的网络服务,用虚电路实现面向连接的网骆服务。在两种服务和两种实现方式的四种组合中有三种是可供选择的:
内部虚电路实现面向连接的服务。
内部数据报实现面向连接的服务。
内部数据报实现无连接的服务。
内部虚电路实现无连接的服务。(没实际意义)
几种网络中实现网络服务的方法:
ARPANET . ARPANET 提供两种服务,并分别称其为数据报服务和虚电路服务,但是在通信子网内部只有数据报一种实现方法。每一个报文最多可包含 8063 bit 数据。 ARPANET 内部是一个两级结构的数据报网络。把报文划分成最大可包含 1008 bit 的分组,最多可得到 8 个这样的分组。每个分组都作为数据报独立传送到达目的端 IMP .
TYMNET . TYMNET 网络内部用虚电路支持面向连接的网络服务,网络把用户主机看作是字符流(而不是分组流)的源。为了支持虚电路, TYMNET 网中每一个网络结点都维持一个缓冲池和许多下标矢量。一对结点之间的物理链路可同时支持几条虚电路,每一条虚电路对应一个逻辑信道。
在以上两个例子中, ARPANET 内部使用数据报提供面向连接的和无连接的两种服务, TYMNET 内部则用虚电路提供面向连接的服务。 DECnet 网络层用数据报提供无连接的网络服务,面向连接的服务由上层提供; SNA 和 TYMNET 一样,网络层用虚电路提供面向连接的网络服务。
6.2 路由选择
网络层的主要功能是把数据分组人选源结点传送到目标结点,所以为传送的数据分组造反合适的路径就是网络层要解决的关键问题。
各种衫或建议使用的路由选择算法都是基于最小费用的准则,如传输延迟最小、经过的结点数最少等等。现有的算法分为两大类:一类是固定式路由选择算法,另一类是自适应式路由选择算法。
所谓固定式路由选择,并不是一成不变,所谓自适应式路由选择,也不是适应得越快越好。(判断)
最少通路的更一般的说法是最少费用通路。在实际网络中使用的最短通路算法有两种:一种是 Dijkstra 的向前搜索法,另一种是 Ford Fulkerson 的向后搜索法。对两种算法的优缺点的详细比较可从下面几个方面考虑:网络费用参数从测量点传递到路由计算点的通信开销;计算路由时需要存储的信息量;计算的复杂性;算法对链路费用变化的响应速度等。(重点掌握 Dijkstra 算法)
路由选择策略:( 1 )固定式路由选择:是一种最简单的路由选择策略。每一对源和目标之间的通路都是按照某种最小费用准则预先选择好的。( 2 )扩散式路由选择。( 3 )随机式路由选择:仍然保持了扩散式的简单性和坚强性。( 4 )自适应式路由选择。
自适应式路由选择的优缺点:缺点
最佳路由的计算更复杂,更频繁,因而开销更大;
惧到的路由信息要传播到计算路由的结点,或者计算的结果要传播到转发分组的结点,这些都增加了网络的负载;
自适应式算法对网络参数的变化瓜太快会引起网络流的振荡,反应太慢则得不到最佳路由,为了减少这些风险要经常对算法本身的某些参数进行调整,这又增加了网络管理的难度。
优点:( 1 )能极大地改善网络的性能;( 2 )能对网络的通信量进行控制。
各种自适应算法分为以下三类:
孤立式自适应策略:一种简单的孤立式自适应算法是让转发结点把每一个收到的分组发送给等待队列长度 Q 最短的输出链路,即所谓的“热土豆法”。英国的 NPL 网中就使用了这种方法,并称为分叉路由计算法。
分布式自适应策略;
集中式自适应策略。
1969 年 ARPANET 开始运行时就采用了分布式自短短适应路由选择算法。
6.3 交通控制
交通控制技术有三种类型:
流量控制:流量控制是指调节两点之间的传输速率,即由收方根据它的接收速率控制发送过程,避免出现来不及接收的情况,通常用某种形式的滑动窗口协议来实现流量控制。
拥挤控制。拥挤控制不同于流量控制,它的目的是保持网络中分组数不要超过某一限度,因为一旦这一界限被打破,网络性能将显著下降。
引起吞吐率衰减的主要原因是资源的浪费。
每个结点的存储缓冲区是有限的,如果某个中间结点的存储缓冲区被塞满了,则经过该结点的所有信息流动都会受阻,即使线路带宽有富余,分组也不能通过,于是引起吞吐率降低。
拥挤:随着负载的增加而引起吞吐率的下降叫拥挤。
获知网络中是否发生拥挤的方法:
由拥挤的结点向所有的源结点发送一种控制分组,报告网络中产生拥挤的情况。
利用路由信息。
使用端—端之间的探测分组。
交换结点可以把拥挤信息加入到经过的分组上传送给其他结点。
拥挤控制机制主要解决的问题是如何获取网络中发生拥挤的信息,利用这种信息进行控制的方法则因具体实现技术而不同。其目的都是限制进入通信子网的分组数,因而也间接限制了转发结点中的队列长度。
防止死锁:多个用户进程等待已分配的资源获得释放,并且进程对资源的等待和占用关系形成环路条件。
在网络中可能形成死锁状态的资源是缓冲区。
当一个方向传输的分组占用了太多的缓冲资源时必然影响其他方向的分组有序流动,最终造成死锁。
三种死锁形式:
最简单的一种死锁是直接存储—转发死锁。解决的方法是:如果不允许结点中的缓冲区全部分配给一个传输方向,或者对每一 3 传输方向都分配固定大小的缓冲区,这种死锁就不会发生。
另外一种死锁是间接存储—转发死锁。解决方法:采用结构化的缓冲池技术可防止发生这种死锁。在拥挤的民政部下,“低级的”分组被丢弃,网络尽量把“高级的”分组送往它们的目的地。
最后的一种死锁是重装配死锁。这种死锁在 ARPANET 这样的数据报网络中最容易出现。 ARPANET 采用的缓冲区管理方法称为最小分配是最大限制的共享分配法。
交通控制技术的分级: 跳步级控制作用于通信子网内部的相邻结点之间,主要目的是平滑结点之间的信息流,防止局部缓冲区的拥挤和死锁; 网络访问级的控制是根据网络内部拥挤的程度限制进入网络的分组数; 进出口级的控制由源和目标结点之间的协议实现,用于防止目标结点缓冲区发生拥挤; 会话级控制关系到一对用户主机之间的流控,由传输层协议实现。(简答、多选)
ARPANET 中的效能控制: ARPANET 每个结点的缓冲池有 40 个缓冲区,和结点相连的每条链路分配一个输出缓冲区和 2 个缓冲区,另外给通向主机的端口分配 10 个装配缓冲区。这些缓冲区就是所谓的永久性最小分配。(填空)
ARPANET 的窗口和报文编号机制支持进出口结点之间的流量控制、排序、差错控制。 ARPANET 还有另外一种机制防止装配缓冲区死锁。这种机制要求源结点在发送一个多分组报文之前先预约装配缓冲区。
对于无连接的数据服务, ARPANET 不进行两级流控。当目标结点不没有自由缓冲区时,进来的分组被丢弃。
TYMNET 中的交通控制: TYMNET 对虚电路实施网络访问级和跳步级两级流控。
6.4 X.25 公共数据网
公共数据网 PDN ( Public Data Network )是在整个国家或世界范围内提供公共电信服务的数据通信网。
X.25 标准分为三个协议层:物理层、链路层和分组层。
物理层规定用户主机或终端(即 DTE )和网络之间的物理接口,这一层的协议采用 X.21 建议或 X.21 bis 建议。
链路层提供可靠的数据传输链路,这一层的标准叫做 LAP — B ( Link Access Procedure — Balanced ),它是 HDLC 的子集。
分组层提供外部虚电路服务,这一层协议的 X.25 建议的核心,特别称为 X.25 PLP 协议( Packer Layer Protocol )。
3 . X.25 分组层协议 PLP :虚电路的建立和拆除、分组类型和格式、流控和差错控制以及分组排序。
虚电路的建立和拆除:
X.25 的分层提供虚电路服务。有两种形式的虚电路:一种是虚呼叫 VC ( Virtual Calls ),一种是永久虚电路 PVC(Permanent Virtual Circuits) .虚呼叫是动态建立的虚电路,有呼叫建立、数据传送和呼叫清除等几个过程。永久虚电路是由网络指定的固定虚电路,像专用线一样,无需建立和消除连接,可直接传送数据。
分组中的虚电路代号信息用 12 位表示( 4 位组号和 8 位信道号)。除代号 0 为属于所有虚电路的诊断分组保留外,建立虚电路时可以使用其余的 4095 个代号,因而理论上说一个 DTE 最多可建立 4095 个虚电路。(简答)
当呼入代号区或呼出代号区溢出时可指派双向选择区的代号。显然,这种代号分区方法避免了呼叫冲突。
分组类型和格式:
分组头中第三个字节的最低位用来区分数据分组和其他的控制分组。
X.25 使用由 CCITT X.121 建议定义的编址系统,这个系统类似于公共交换电话网,其 DTE 的地址由三个部分组成,最多可包含多达 14 位十进制数字。这当中有国家代码 3 位,网络代码 1 位,其余 10 位为网内地址代码。
流控和差错控制
X.25 默认的窗口大小是 2 ,但是对于 3 位顺序号窗口最大可设置为 7 ,对 7 位的顺序号,窗口最大可设置为 127 .
X.25 的差错控制采用后退 N 帧 ARQ 协议。
分组排序
X.25 能够识别分组组成的序列。
X.25 定义了 A 、 B 两种类型的数据分组: A 型分组的 M 位置 1 , D 位置 0 ,分组长度为网络允许的最大长度; B 型分组是除 A 型分组之外的任何分组。一个完备分组序列由 0 个或多个 A 型分组后跟 1 个 B 型分组组成。
习题:
为什么 TYMNET 中不会发生死锁?
答:因为 TYMNET 采用访问级和跳步级两级流量控制,因此不会发生死锁。
2 . X.25 网络的第 2 级和第 3 级都有流控机制,两种流控都是必要的吗?为什么?
答:是必要的。因为虚电路方式两层都要有流控(数据链路层、网络层)。因为其不能单独为每一条虚电路进行控制。