第五章数据链路控制及其协议
5.1 定义和功能( 1)
5.1.1 定义
要解决的问题
- 差错控制、流控。
ISO关于数据链路层的定义
- 数据链路层的目的是为了提供功能上和规程上的方法,以便建立、维护和释放网络实体间的数据链路。
结点( node):网络中的主机( host)和路由器( router
)称为结点
链路( link):通信路径上连接相邻结点的通信信道称为链路。
数据链路层协议定义了一条链路的两个结点间交换的数据单元格式,以及结点发送和接收数据单元的动作。
5.1 定义和功能( 2)
端到端( end to end)与点到点( point to point
)
- 从源结点( source node)到目的结点( destination
node)的通信称为端到端通信,通信路径( path)可能由多个链路组成。
- 在相邻结点间的一条链路上的通信称为点到点通信。
虚拟数据通路,实际数据通路
- Fig,3-1
5.1 定义和功能( 2)
数据链路控制规程
- 为使数据能迅速、正确、有效地从发送点到达接收点所采用的控制方式。
数据链路层协议应提供的最基本功能
- 数据在数据链路上的正常传输(建立、维护和释放)
- 定界与同步,也处理透明性问题
- 差错控制
- 顺序控制
- 流量控制
- 寻址
5.1 定义和功能( 3)
5.1.2 为网络层提供服务
为网络层提供三种合理的服务
- 无确认无连接服务,适用于
误码率很低的线路,错误恢复留给高层;
实时业务
大部分局域网
- 有确认无连接服务,适用于不可靠的信道,如无线网。
- 有确认有连接服务
5.1 定义和功能( 4)
5.1.3 成帧( Framing)
将比特流分成离散的帧,并计算每个帧的校验和。
成帧方法:
- 字符计数法
在帧头中用一个域来表示整个帧的字符个数
缺点:若计数出错,对本帧和后面的帧有影响。
Fig,3-3
- 带字符填充的首尾字符定界法
起始字符 DLE STX,结束字符 DLE ETX
字符填充
Fig,3-4
缺点:局限于 8位字符和 ASCII字符传送。
5.1 定义和功能( 5)
- 带位填充的首尾标记定界法
帧的起始和结束都用一个特殊的位串,01111110”
,称为标记 (flag)
,0”比特插入删除技术
Fig,3-5
- 物理层编码违例法
只适用于物理层编码有冗余的网络
802 LAN,Manchester encoding or Differential
Manchester encoding 用 high-low pair/low-high
pair表示 1/0,high-high/low-low不表示数据,可以用来做定界符。
5.1 定义和功能( 6)
5.1.4 差错控制
一般方法:接收方给发送方一个反馈(响应)。
出错情况
- 帧(包括发送帧和响应帧)出错;
- 帧(包括发送帧和响应帧)丢失
通过计时器和序号保证每帧最终交给目的网络层仅一次是数据链路层的一个主要功能。
5.1.5 流量控制
基于反馈机制
流量控制主要在传输层实现
5.2 错误检测和纠正
差错出现的特点:随机 (单字节),连续突发(
burst)
处理差错的两种基本策略
- 检错:发送方在每个数据块中加入足够的冗余信息,使得接收方能够判断接收到的数据是否有错,但不能判断哪里有错。
- 纠错:发送方在每个数据块中加入足够的冗余信息,使得接收方能够判断接收到的数据是否有错,并能纠正错误。
检错
-冗余:检错采用冗余技术,即在信息中加上附加比特
冗余校验技术:
1、垂直冗余校验或奇偶校验( VRC):在每个数据单元中都加一个校验位,使得 1(包括校验位)
的总数为偶数。
只有当发生差错的位数是奇数时,才能检测出差错
。
2 纵向冗余校验( LRC):将一个数据块分成几行,
并将校验位组成的冗余行添加到整个数据块中。
-提高了突发差错检测的可能性。
3 循环冗余校验( CRC)
-CRC码生成,( 1)在数据单元尾部加上 n个 0,n是比预定除数的位数( n位 +1)少 1。( 2)采用二进制除法除以加长的数据单元,产生 CRC码。( 3)
用 n位 CRC码替换 n个 0。
-多项式 G(x),110001,表示成多项式 x5 + x4 + 1
原因:较短、容易证明。
- G(x)选择:
发方、收方事前商定;
不被 x除尽,必须被 x+1整除生成多项式必须比传输信息对应的多项式短。
四个多项式已成为国际标准
- CRC-12 = x12 + x11 + x3 + x2 + x + 1
- CRC-16 = x16 + x15 + x2 + 1
- CRC-CCITT = x16 + x12 + x5 + 1
- CRC-32
性能:
-能检测出所有影响奇数位的突发差错
-能检测出所有长度小于或等于多项式阶数的突发差错
-可以非常高的概率检测出长度大于多项式阶数的突发差错
4校验和
- 发送方,( 1)将数据单元分成 k段,每段 n比特
( 2)反码方式求和( 3)对结果取反得校验和( 4)将校验和与数据一起发送
-接收方( 1)将数据单元分成 k段,每段 n比特( 2)反码方式求和( 3)和取反( 4)结果为 0,则接受反码方式求和:比特按列相加,若最后一列有进位,则结果加 1
-性能:能检测所有奇数个比特错误和大多数偶数个比特错误。主要用在高层协议。
例如,10101001 00111001
反码求和为 11100010 校验和 00011101
若出错 10101111 11111001 00011101
反码求和为 11000110 求反 00111001
纠错纠错码比检错码复杂,冗余位多一般纠正错位不超过三位
1 单比特纠错纠错码必须指明差错出现的位置对于 m位数据 r为冗余位,则 2**r必须大于或等于 m+r+1,才能纠错
2 海明码定位冗余位:
- 码位从左边开始编号,从,1”开始;
- 位号为 2的幂的位是校验位,其余是信息位;
- 每个校验位使得包括自己在内的一些位的奇偶值为偶数(或奇数)。
- 为看清数据位 k对哪些校验位有影响,将 k写成 2的幂的和。
- 例,11 = 1 + 2 +4+ 8
计算冗余比特:
r1,1,3,5,7,9,11
r2,2,3,6,7,10
r4,4,5,6,7
r8:8,9,10,11
海明码工作过程
- 每个码字到来前,接收方计数器清零;
- 接收方检查每个校验位 k (k = 1,2,4 …) 的奇偶值是否正确;
- 若第 k 位奇偶值不对,计数器加 k;
- 所有校验位检查完后,若计数器值为 0,则码字有效;若计数器值为 m,则第 m位出错。
- 若校验位 1,2,8出错,则第 11位变反。
- Fig,3-6
使用海明码纠正突发错误
- 可采用 k个码字( n = m + r) 组成 k? n 矩阵,按列发送,接收方恢复成 k? n 矩阵
- kr个校验位,km个数据位,可纠正最多为 k个的突发性连续比特错。
1 2 3 4 5 6 7 8 9 10 11
1 1 1 1 1
2 2 2 2 2
4 4 4
8 8 8
5.3 基本的数据链路层协议( 1)
5.3.1 无约束单工协议( An Unrestricted Simplex
Protocol)
工作在理想情况,几个前提:
- 单工传输
- 发送方无休止工作(要发送的信息无限多)
- 接收方无休止工作(缓冲区无限大)
- 通信线路(信道)不损坏或丢失信息帧
工作过程
- 发送程序,取数据,构成帧,发送帧;
- 接收程序:等待,接收帧,送数据给高层
- Fig,3-9
5.3 基本的数据链路层协议( 2)
5.3.2 单工停等协议( A Simplex Stop-and-Wait
Protocol)
增加约束条件:接收方不能无休止接收。
解决办法:接收方每收到一个帧后,给发送方回送一个响应。
工作过程
- 发送程序:取数据,成帧,发送帧,等待响应帧;
- 接收程序:等待,接收帧,送数据给高层,回送响应帧。
- Fig,3-10
5.3 基本的数据链路层协议( 3)
5.3.3 有噪声信道的单工协议( A Simplex Protocol for a
Noisy Channel)
增加约束条件:信道(线路)有差错,信息帧可能损坏或丢失。
解决办法:出错重传。
带来的问题:
- 什么时候重传 ——定时
- 响应帧损坏怎么办(重复帧) ——发送帧头中放入序号
- 为了使帧头精简,序号取多少位 —— 1位(只与前趋和后趋序号不同即可)
发方在发下一个帧之前等待一个肯定确认的协议叫做 PAR(
Positive Acknowledgement with Retransmission)或
ARQ( Automatic Repeat reQuest)
5.3 基本的数据链路层协议( 4)
工作过程
- Fig,3-11
注意协议 3的漏洞
- 由于确认帧中没有序号,超时时间不能太短,否则协议失败。因此假设协议 3的发送和接收严格交替进行。
- Fig,3-11的实现是正确的,确认帧有序号发送接收
0
0
1
ACK
ACK
5.4 滑动窗口协议( 1)
单工 ——> 全双工
捎带 /载答( piggybacking):暂时延迟待发确认
,以便附加在下一个待发数据帧的技术。
- 优点:充分利用信道带宽,减少帧的数目意味着减少“
帧到达”中断;
- 带来的问题:复杂。
本节的三个协议统称滑动窗口协议,都能在实际
(非理想)环境下正常工作,区别仅在于效率、
复杂性和对缓冲区的要求。
5.4 滑动窗口协议( 2)
滑动窗口协议( Sliding Window Protocol)工作原理:
- 发送的信息帧都有一个序号,从 0到某个最大值,0 ~ 2n - 1,一般用 n个二进制位表示;
- 发送端始终保持一个允许发送的帧的序号表,称为发送窗口。发送窗口的下界表示要发送的下一个帧的序号,上界表示未得到确认的帧的编号。发送窗口大小 = 上界 - 下界,大小可变;
- 发送端每发送一个帧,序号取下界值,下界加 1;每接收到一个正确响应帧,上界加 1;
- 接收端有一个接收窗口,不一定与发送窗口相同。接收窗口的上界表示允许接收的序号最大的帧,下界表示希望接收的帧;当收到新帧的时候,下界右移,发送确认帧后,上界右移。
- 接收窗口容纳允许接收的信息帧,落在窗口外的帧均被丢弃。序号等于下界的帧被正确接收,并产生一个响应帧,上界、下界都加 1。接收窗口大小不变。
- Fig,3-12
5.4 滑动窗口协议( 3)
5.4.1 一比特滑动窗口协议( A One Bit Sliding
Window Protocol)
协议特点
- 窗口大小,N = 1,发送序号和接收序号的取值范围,0
,1;
- 可进行数据双向传输,信息帧中可含有确认信息(
piggybacking技术);
- 信息帧中包括两个序号域:发送序号和接收序号(已经正确收到的帧的序号)
工作过程
- Fig,3-13
5.4 滑动窗口协议( 4)
存在问题能保证无差错传输,但是基于停等方式;
若双方同时开始发送,则会有一半重复帧;
Fig,3-14
效率低,传输时间长。
5.4 滑动窗口协议( 5)
5.4.2 退后 n帧协议( A Protocol Using Go Back n)
为提高传输效率而设计
- 例:
卫星信道传输速率 50kbps,往返传输延迟 500ms,若传
1000bit的帧,使用协议 4,则传输一个帧所需时间为,发送时间 + 信息信道延迟 + 确认信道延迟(确认帧很短,忽略发送时间) = 1000bit / 50kbps + 250ms + 250ms =
520ms
信道利用率 = 20 / 520? 4%
- 一般情况
信道带宽 b比特 /秒,帧长度 L比特,往返传输延迟 R秒,则信道利用率为 (L/b) / (L/b + R) = L / (L + Rb)
- 结论
传输延迟大,信道带宽高,帧短时,信道利用率低。
5.4 滑动窗口协议( 6)
- 解决办法
连续发送多帧后再等待确认,称为流水线技术(
pipelining)。
- 带来的问题
信道误码率高时,对损坏帧和非损坏帧的重传非常多
两种基本方法
- 退后 n帧( go back n)
接收方从出错帧起丢弃所有后继帧;
接收窗口为 1;
对于出错率较高的信道,浪费带宽。
Fig,3-15(a)
5.4 滑动窗口协议( 7)
- 选择重传( selective repeat)
接收窗口大于 1,先暂存出错帧的后继帧;
只重传坏帧;
对最高序号的帧进行确认;
接收窗口较大时,需较大缓冲区。
Fig,3-15(b)
注意,Fig,3-15(b)中可能出现的错误
5.4 滑动窗口协议( 8)
退后 n帧协议
- 发送方有流量控制,为重传设缓冲;
发送窗口未满,EnableNetworkLayer
发送窗口满,DisableNetworkLayer
- 发送窗口大小 < 序号个数( MaxSeq + 1);
考虑 MaxSeq = 7的情况
1 发送方发送 帧 0 ~ 7;
2 序号为 7 的帧的确认被捎带回发送方;
3 发送方发送另外 8 个帧,序号为 0 ~ 7;
4 另一个对帧 7 的捎带确认返回。
问题:第二次发送的 8 个帧成功了还是丢失了?
5.4 滑动窗口协议( 9)
Wt+Wr<2**n
- 退后 n帧重发;
- 由于有多个未确认帧,设多个计时器。
- 工作过程
Fig,3-16
- 计时器实现
Fig,3-17
7 0 1 2 3 4 5 6 7 0 1 2 3 4
Wt Wt
Wr
5.4 滑动窗口协议( 10)
P5协议实现分析
- 事件驱动
Network_layer_ready(内部事件)
发送帧(帧序号,确认序号,数据)
Frame_arrival (外部事件)
检查帧序号,落在接收窗口内则接收,否则丢弃;
检查确认序号,落在发送窗口内则移动发送窗口,否则不做处理。
Cksum_err (外部事件)
丢弃
timeout (内部事件)
退后 n帧重传
- 计时器处理
启动,发送帧时启动
停止,收到正确确认时停止
超时则产生 timeout事件
5.4 滑动窗口协议( 11)
5.4.3 选择重传协议( A Protocol Using Selective Repeat)
目的
- 在不可靠信道上有效传输时,不会因重传而浪费信道资源,采用选择重传技术。
基本原理
- 发送窗口大小,MaxSeq,接收窗口大小,(MaxSeq+1)/2
保证接收窗口前移后与原窗口没有重叠;
设 MaxSeq = 7,若接收窗口 = 7,发方发 帧 0 ~ 6,收方全部收到,接收窗口前移( 7 ~ 5),确认帧丢失,发方重传帧
0,收方作为新帧接收,并对帧 6确认,发方发新帧 7 ~ 5,
收方已收过帧 0,丢弃新帧 0,协议出错。
Fig,3-19
5.4 滑动窗口协议( 12)
- 发送窗口下界,AckExpected,上界:
NextFrameToSend接收窗口下界,FrameExpected,上界,TooFar
- 缓冲区设置
发送方和接收方的缓冲区大小应等于各自窗口大小;
- 增加确认计时器,解决两个方向负载不平衡带来的阻塞问题;
- 可随时发送否定性确认帧 NAK。
工作过程
- Fig,3-18
5.4 滑动窗口协议( 13)
P6协议实现分析
- 事件驱动
Network_layer_ready(内部事件)
发送帧(帧类型,帧序号,确认序号,数据)
Frame_arrival (外部事件)
若是数据帧,则检查帧序号,落在接收窗口内则接收,否则丢弃;不等于接收窗口下界还要发 NAK
若是 NAK,则选择重传;
检查确认序号,落在发送窗口内则移动发送窗口,否则不做处理。
Cksum_err (外部事件)
发送 NAK
timeout (内部事件)
选择重传
Ack_timeout (内部事件)
发送确认帧 ACK
5.4 滑动窗口协议( 14)
- 计时器处理
启动,发送数据帧时启动
停止,收到正确确认时停止
超时则产生 timeout事件
- Ack计时器处理
启动,收到帧的序号等于接收窗口下界或已经发过
NAK时启动
停止,发送帧时停止
超时则产生 ack_timeout事件小结
可靠传输
- 通过确认和重传机制
- 传输层协议,如 TCP,也提供可靠传输服务
- 链路层的可靠传输服务通常用于高误码率的连路上,如无线链路。
5.6 常用的数据链路层协议( 1)
ISO和 CCITT在数据链路层协议的标准制定方面做了大量工作,各大公司也形成了自己的标准。
数据链路层协议分类
- 面向字符的链路层协议
ISO的 IS1745,基本型传输控制规程及其扩充部分( BM和 XBM)
IBM的二进制同步通信规程( BSC)
DEC的数字数据通信报文协议( DDCMP)
- 面向比特的链路层协议
IBM的 SNA使用的数据链路协议 SDLC( Synchronous Data Link
Control protocol);
ANSI修改 SDLC,提出 ADCCP( Advanced Data
Communication Control Procedure);
ISO修改 SDLC,提出 HDLC( High-level Data Link Control);
CCITT修改 HDLC,提出 LAP( Link Access Procedure)作为
X.25网络接口标准的一部分,后来改为 LAPB。
5.6 常用的数据链路层协议( 2)
5.6.1 高级数据链路控制规程 HDLC
1976年,ISO提出 HDLC( High-level Data Link Control
)
HDLC的组成
- 帧结构
- 规程元素
- 规程类型 语义
- 使用 HDLC的语法可以定义多种具有不同操作特点的链路层协议。
HDLC的适用范围
- 计算机 ——计算机
- 计算机 ——终端
- 终端 —— 终端
}语法
5.6 常用的数据链路层协议( 3)
数据站(简称站 station),由计算机和终端组成
,负责发送和接收帧。 HDLC涉及三种类型的站:
- 主站( primary station):主要功能是发送命令(包括数据),接收响应,负责整个链路的控制(如系统的初始、流控、差错恢复等);
- 次站( secondary station):主要功能是接收命令,发送响应,配合主站完成链路的控制;
- 组合站( combined station):同时具有主、次站功能
,既发送又接收命令和响应,并负责整个链路的控制。
HDLC适用的链路构型
- 非平衡型
点 — 点式主站 次站
5.6 常用的数据链路层协议( 4)
多点式
适合把智能和半智能的终端连接到计算机。
- 平衡型
组合式 (对称方式:工作与非平衡方式,链路控制权交替)
适合于计算机和计算机之间的连接
HDLC不支持多点平衡方式,因此局域网中要引入媒体访问协议组合站 组合站主站 次站次站 次站,.,
主站主站次站次站逻辑通道
5.6 常用的数据链路层协议( 5)
HDLC的基本操作模式模式指在一次交换中涉及到的两个设备之间的关系,模式描述了由谁控制链路
- 正规响应模式 NRM( Normal Response Mode)
适用于点 —点式和多点式两种非平衡构型。只有当主站向次站发出探询后,次站才能获得传输帧的许可。
- 异步响应模式 ARM( Asynchronous Response Mode)
适用于点 —点式非平衡构型。次站可以随时传输帧,
不必等待主站的探询。但主站仍负责链路的初始化、建立、释放和差错恢复。使用较少。
- 异步平衡模式 ABM( Asynchronous Balanced Mode)
适用于通信双方都是组合站的平衡构型,也采用异步响应,双方具有同等能力。
5.6 常用的数据链路层协议( 6)
帧结构
- 定界符
01111110
空闲的点到点线路上连续传定界符
- 地址域( Address)
在非平衡传送数据时总是次站地址;在平衡方式传送数据时是目的地址。
点到点线路,有时用来区分命令和响应。
若帧中的地址是接收该帧的站的地址,则该帧是命令帧;
若帧中的地址是发送该帧的站的地址,则该帧是响应帧。
5.6 常用的数据链路层协议( 7)
- 控制域( Control)
序号
使用滑动窗口技术,3位序号,发送窗口大小为 7
确认
其它
- 数据域( Data)
任意信息,任意长度(上层协议 SDU有上限)
- 校验和( Checksum)
CRC校验
生成多项式,CRC-CCITT
5.6 常用的数据链路层协议( 8)
帧类型
- 信息帧( Information)
- 监控帧( Supervisory)
- 无序号帧( Unnumbered)
控制域
- Fig,3-25
- 序号( Seq)
使用滑动窗口技术,3位序号,发送窗口大小为 7
- 捎带确认( Next)
捎带第一个未收到的帧序号,而不是最后一个已收到的帧序号
5.6 常用的数据链路层协议( 9)
- 探询 /结束 P/F位( Poll/Final)
命令帧置,P”,响应帧置,F”。有些协议,P/F位用来强迫对方机器立刻发监控帧;
多终端系统中,计算机置,P”,允许终端发送数据;
终端发向计算机的帧中,最后一个帧置为,F”,其它置为,P”。
- 类型( Type)
,00”表示确认帧 RR( RECEIVE READY);
,01”表示否定性确认帧 REJ( REJECT)。
,10”表示接收未准备好 RNR( RECEIVE NOT
READY)
,11”表示选择拒绝 SREJ( SELECTIVE REJECT)
HDLC和 ADCCP允许选择拒绝,SDLC和 LAPB不允许
。
5.6 常用的数据链路层协议( 10)
无序号帧
- 可以用来传控制信息,也可在不可靠无连接服务中传数据。
命令
- DISC( DISConnect)
- SNRM( Set Normal Response Mode)
- SARM( Set Asynchronous Response Mode)
- SABM( Set Asynchronous Balanced Mode)
HDLC和 LAPB使用。
- SABME SABM的扩展
- SNRME SNRM的扩展
- FRMR( FRaMe Reject)
校验和正确,语义错误
5.6 常用的数据链路层协议( 11)
- 无序号确认 UA( Unnumbered Acknowledgement)
对控制帧进行确认,用于确认模式建立和接受拆除命令。
- UI( Unnumbered Information)
HDLC的功能组合
- 三种站,两种构型,三种操作模式,以及规程元素中定义的各种帧的各种组合产生多种链路层协议。
- HDLC定义了选择构成链路层协议的良序结构:
选择站构型 ——> 基本操作模式 ——> 基本帧种类
——> 12种任选功能 ——> 得到协议
B,I00 B,I10 B,I20 B,I30,F C,RR0,F
B,RR0,P C,RR0,P主站 A
次站 B 次站 C
(地址,帧名,N(S)N(R),P/F)
1、轮询 /响应 (从站向主站发信息)
主机到站点 A:监管帧 P=1,RR(接收就绪 ),地址 =A
站点 A到主机:信息帧,N( S) =0,N( R) =0,F=0,地址 =A
信息帧,N( S) =1,N( R) =0,F=1,地址 =A
主机到站点 A:监管帧 P=0,RR(接收就绪 ),地址 =A
2、轮询 /响应 (主站向从站发信息)
主机到站点 A:监管帧 P=1,RNR(准备接收,并回应 ),地址 =A
站点 A到主机:监管帧,RR,N( R) =0,F=1,地址 =A
主机到站点 A:信息帧 P=0,N( S) =0,N( R) =0,地址 =A
站点 A到主机:监管帧,RR,N( R) =0,F=1,地址 =A
3、对等设备(采用异步平衡方式 ABM,两站点地位相同)
A向 B发 U帧,P=1,TYPE=11,MODIFIER=100,设置 ABM
方式建立 ABM链路
B向 A发 U帧,F=1,TYPE=00,MODIFIER=110,接受请求进行通信发信息帧
5.6 常用的数据链路层协议( 12)
5.6.2 X.25的链路层协议 LAPB
X.25协议
- 分组级,PLP
- 帧级,X.25 LAP( Link Access Procedure),X.25 LAPB(
Balanced)
- 物理级,X.21
,X.25协议规程使用 HDLC规程的原理和术语”
X.25 LAP,HDLC非平衡规程帧的基本清单 + 任选功能 2、
8,12,也可组成主站 —次站式平衡规程。
X.25 LAPB,HDLC组合站平衡规程帧的基本清单 + 任选功能 2,8,11,12。
因此,X.25 LAP,LAPB是 HDLC的子集。
5.6 常用的数据链路层协议( 13)
X.25的帧格式与 HDLC完全相同
X.25链路级的命令和响应格式 命令 响应 控制域编码信息帧 I( 信息 ) 0 N (S ) P N (R)
监控帧 RR( 接收准备好 )
RN R( 接收未准备好 )
REJ( 拒绝 )
RR( 接收准备好 )
RN R( 接收未准备好 )
REJ( 拒绝 )
1 000
1 010
1 01 1
P /F
P /F
P /F
N (R)
N (R)
N (R)
S A RM ( 置异步响应模式 ) D M ( 拆除模式 ) 1 1 1 1 P /F 000
S A BM ( 置异步平衡模式 ) 1 1 1 1 P 100
D IS C( 拆除 ) 1 100 P 010
UA( 无序号确认 ) 1 100 F 1 10
无序号帧
CM D R( 命令拒绝 )
F RM R( 帧拒绝 )
1 1 10 F 001
5.6 常用的数据链路层协议( 14)
X.25 LAPB的各种检错和纠错措施
a 帧格式上采用 CRC校验,只检错,不纠错,丢弃出错帧;
b 设立超时机制,计时器超时重传,重传 N次,则向上层协议报告。
超时机制用来检错,重传用来纠错。
c 帧序号若接收方发现帧序号错,就发拒绝帧给发送方,发送 方重传,既检错也纠错。
d 采用 P/F位来进行校验指示发送置为 P 的命令帧,等待置为 F 的响应帧,能及时发现远程数据站是否收到命令帧。
规程规定,a 必须使用; b,c,d 组合使用。
5.6 常用的数据链路层协议( 15)
5.6.3 Internet数据链路层协议
点到点通信的两种主要情形
- 路由器到路由器( router-router leased line connection)
- 通过 modem拨号上网,连到路由器或接入服务器( Access
Server)( dial-up host-router connection)
PPP不使用序号和确认机制
-开销大。对于链路层出错不大的情况,PPP合理
-数据链路层的可靠不能保证整个网络的传输可靠
-PPP采用 CRC校验,保证无错接收
-无线的情况,增加编号机制等。
小结
介绍三种主要数据链路层协议,HDLC,LAPB(
面向比特)和 PPP(面向字符)
HDLC具有三种站,两种构型,三种操作模式
X.25 LAPB是 HDLC的子集
PPP 提供差错校验、支持多种协议、允许动态分配 IP地址、支持认证
PPP帧没有序号域,不使用滑动窗口技术。
5.1 定义和功能( 1)
5.1.1 定义
要解决的问题
- 差错控制、流控。
ISO关于数据链路层的定义
- 数据链路层的目的是为了提供功能上和规程上的方法,以便建立、维护和释放网络实体间的数据链路。
结点( node):网络中的主机( host)和路由器( router
)称为结点
链路( link):通信路径上连接相邻结点的通信信道称为链路。
数据链路层协议定义了一条链路的两个结点间交换的数据单元格式,以及结点发送和接收数据单元的动作。
5.1 定义和功能( 2)
端到端( end to end)与点到点( point to point
)
- 从源结点( source node)到目的结点( destination
node)的通信称为端到端通信,通信路径( path)可能由多个链路组成。
- 在相邻结点间的一条链路上的通信称为点到点通信。
虚拟数据通路,实际数据通路
- Fig,3-1
5.1 定义和功能( 2)
数据链路控制规程
- 为使数据能迅速、正确、有效地从发送点到达接收点所采用的控制方式。
数据链路层协议应提供的最基本功能
- 数据在数据链路上的正常传输(建立、维护和释放)
- 定界与同步,也处理透明性问题
- 差错控制
- 顺序控制
- 流量控制
- 寻址
5.1 定义和功能( 3)
5.1.2 为网络层提供服务
为网络层提供三种合理的服务
- 无确认无连接服务,适用于
误码率很低的线路,错误恢复留给高层;
实时业务
大部分局域网
- 有确认无连接服务,适用于不可靠的信道,如无线网。
- 有确认有连接服务
5.1 定义和功能( 4)
5.1.3 成帧( Framing)
将比特流分成离散的帧,并计算每个帧的校验和。
成帧方法:
- 字符计数法
在帧头中用一个域来表示整个帧的字符个数
缺点:若计数出错,对本帧和后面的帧有影响。
Fig,3-3
- 带字符填充的首尾字符定界法
起始字符 DLE STX,结束字符 DLE ETX
字符填充
Fig,3-4
缺点:局限于 8位字符和 ASCII字符传送。
5.1 定义和功能( 5)
- 带位填充的首尾标记定界法
帧的起始和结束都用一个特殊的位串,01111110”
,称为标记 (flag)
,0”比特插入删除技术
Fig,3-5
- 物理层编码违例法
只适用于物理层编码有冗余的网络
802 LAN,Manchester encoding or Differential
Manchester encoding 用 high-low pair/low-high
pair表示 1/0,high-high/low-low不表示数据,可以用来做定界符。
5.1 定义和功能( 6)
5.1.4 差错控制
一般方法:接收方给发送方一个反馈(响应)。
出错情况
- 帧(包括发送帧和响应帧)出错;
- 帧(包括发送帧和响应帧)丢失
通过计时器和序号保证每帧最终交给目的网络层仅一次是数据链路层的一个主要功能。
5.1.5 流量控制
基于反馈机制
流量控制主要在传输层实现
5.2 错误检测和纠正
差错出现的特点:随机 (单字节),连续突发(
burst)
处理差错的两种基本策略
- 检错:发送方在每个数据块中加入足够的冗余信息,使得接收方能够判断接收到的数据是否有错,但不能判断哪里有错。
- 纠错:发送方在每个数据块中加入足够的冗余信息,使得接收方能够判断接收到的数据是否有错,并能纠正错误。
检错
-冗余:检错采用冗余技术,即在信息中加上附加比特
冗余校验技术:
1、垂直冗余校验或奇偶校验( VRC):在每个数据单元中都加一个校验位,使得 1(包括校验位)
的总数为偶数。
只有当发生差错的位数是奇数时,才能检测出差错
。
2 纵向冗余校验( LRC):将一个数据块分成几行,
并将校验位组成的冗余行添加到整个数据块中。
-提高了突发差错检测的可能性。
3 循环冗余校验( CRC)
-CRC码生成,( 1)在数据单元尾部加上 n个 0,n是比预定除数的位数( n位 +1)少 1。( 2)采用二进制除法除以加长的数据单元,产生 CRC码。( 3)
用 n位 CRC码替换 n个 0。
-多项式 G(x),110001,表示成多项式 x5 + x4 + 1
原因:较短、容易证明。
- G(x)选择:
发方、收方事前商定;
不被 x除尽,必须被 x+1整除生成多项式必须比传输信息对应的多项式短。
四个多项式已成为国际标准
- CRC-12 = x12 + x11 + x3 + x2 + x + 1
- CRC-16 = x16 + x15 + x2 + 1
- CRC-CCITT = x16 + x12 + x5 + 1
- CRC-32
性能:
-能检测出所有影响奇数位的突发差错
-能检测出所有长度小于或等于多项式阶数的突发差错
-可以非常高的概率检测出长度大于多项式阶数的突发差错
4校验和
- 发送方,( 1)将数据单元分成 k段,每段 n比特
( 2)反码方式求和( 3)对结果取反得校验和( 4)将校验和与数据一起发送
-接收方( 1)将数据单元分成 k段,每段 n比特( 2)反码方式求和( 3)和取反( 4)结果为 0,则接受反码方式求和:比特按列相加,若最后一列有进位,则结果加 1
-性能:能检测所有奇数个比特错误和大多数偶数个比特错误。主要用在高层协议。
例如,10101001 00111001
反码求和为 11100010 校验和 00011101
若出错 10101111 11111001 00011101
反码求和为 11000110 求反 00111001
纠错纠错码比检错码复杂,冗余位多一般纠正错位不超过三位
1 单比特纠错纠错码必须指明差错出现的位置对于 m位数据 r为冗余位,则 2**r必须大于或等于 m+r+1,才能纠错
2 海明码定位冗余位:
- 码位从左边开始编号,从,1”开始;
- 位号为 2的幂的位是校验位,其余是信息位;
- 每个校验位使得包括自己在内的一些位的奇偶值为偶数(或奇数)。
- 为看清数据位 k对哪些校验位有影响,将 k写成 2的幂的和。
- 例,11 = 1 + 2 +4+ 8
计算冗余比特:
r1,1,3,5,7,9,11
r2,2,3,6,7,10
r4,4,5,6,7
r8:8,9,10,11
海明码工作过程
- 每个码字到来前,接收方计数器清零;
- 接收方检查每个校验位 k (k = 1,2,4 …) 的奇偶值是否正确;
- 若第 k 位奇偶值不对,计数器加 k;
- 所有校验位检查完后,若计数器值为 0,则码字有效;若计数器值为 m,则第 m位出错。
- 若校验位 1,2,8出错,则第 11位变反。
- Fig,3-6
使用海明码纠正突发错误
- 可采用 k个码字( n = m + r) 组成 k? n 矩阵,按列发送,接收方恢复成 k? n 矩阵
- kr个校验位,km个数据位,可纠正最多为 k个的突发性连续比特错。
1 2 3 4 5 6 7 8 9 10 11
1 1 1 1 1
2 2 2 2 2
4 4 4
8 8 8
5.3 基本的数据链路层协议( 1)
5.3.1 无约束单工协议( An Unrestricted Simplex
Protocol)
工作在理想情况,几个前提:
- 单工传输
- 发送方无休止工作(要发送的信息无限多)
- 接收方无休止工作(缓冲区无限大)
- 通信线路(信道)不损坏或丢失信息帧
工作过程
- 发送程序,取数据,构成帧,发送帧;
- 接收程序:等待,接收帧,送数据给高层
- Fig,3-9
5.3 基本的数据链路层协议( 2)
5.3.2 单工停等协议( A Simplex Stop-and-Wait
Protocol)
增加约束条件:接收方不能无休止接收。
解决办法:接收方每收到一个帧后,给发送方回送一个响应。
工作过程
- 发送程序:取数据,成帧,发送帧,等待响应帧;
- 接收程序:等待,接收帧,送数据给高层,回送响应帧。
- Fig,3-10
5.3 基本的数据链路层协议( 3)
5.3.3 有噪声信道的单工协议( A Simplex Protocol for a
Noisy Channel)
增加约束条件:信道(线路)有差错,信息帧可能损坏或丢失。
解决办法:出错重传。
带来的问题:
- 什么时候重传 ——定时
- 响应帧损坏怎么办(重复帧) ——发送帧头中放入序号
- 为了使帧头精简,序号取多少位 —— 1位(只与前趋和后趋序号不同即可)
发方在发下一个帧之前等待一个肯定确认的协议叫做 PAR(
Positive Acknowledgement with Retransmission)或
ARQ( Automatic Repeat reQuest)
5.3 基本的数据链路层协议( 4)
工作过程
- Fig,3-11
注意协议 3的漏洞
- 由于确认帧中没有序号,超时时间不能太短,否则协议失败。因此假设协议 3的发送和接收严格交替进行。
- Fig,3-11的实现是正确的,确认帧有序号发送接收
0
0
1
ACK
ACK
5.4 滑动窗口协议( 1)
单工 ——> 全双工
捎带 /载答( piggybacking):暂时延迟待发确认
,以便附加在下一个待发数据帧的技术。
- 优点:充分利用信道带宽,减少帧的数目意味着减少“
帧到达”中断;
- 带来的问题:复杂。
本节的三个协议统称滑动窗口协议,都能在实际
(非理想)环境下正常工作,区别仅在于效率、
复杂性和对缓冲区的要求。
5.4 滑动窗口协议( 2)
滑动窗口协议( Sliding Window Protocol)工作原理:
- 发送的信息帧都有一个序号,从 0到某个最大值,0 ~ 2n - 1,一般用 n个二进制位表示;
- 发送端始终保持一个允许发送的帧的序号表,称为发送窗口。发送窗口的下界表示要发送的下一个帧的序号,上界表示未得到确认的帧的编号。发送窗口大小 = 上界 - 下界,大小可变;
- 发送端每发送一个帧,序号取下界值,下界加 1;每接收到一个正确响应帧,上界加 1;
- 接收端有一个接收窗口,不一定与发送窗口相同。接收窗口的上界表示允许接收的序号最大的帧,下界表示希望接收的帧;当收到新帧的时候,下界右移,发送确认帧后,上界右移。
- 接收窗口容纳允许接收的信息帧,落在窗口外的帧均被丢弃。序号等于下界的帧被正确接收,并产生一个响应帧,上界、下界都加 1。接收窗口大小不变。
- Fig,3-12
5.4 滑动窗口协议( 3)
5.4.1 一比特滑动窗口协议( A One Bit Sliding
Window Protocol)
协议特点
- 窗口大小,N = 1,发送序号和接收序号的取值范围,0
,1;
- 可进行数据双向传输,信息帧中可含有确认信息(
piggybacking技术);
- 信息帧中包括两个序号域:发送序号和接收序号(已经正确收到的帧的序号)
工作过程
- Fig,3-13
5.4 滑动窗口协议( 4)
存在问题能保证无差错传输,但是基于停等方式;
若双方同时开始发送,则会有一半重复帧;
Fig,3-14
效率低,传输时间长。
5.4 滑动窗口协议( 5)
5.4.2 退后 n帧协议( A Protocol Using Go Back n)
为提高传输效率而设计
- 例:
卫星信道传输速率 50kbps,往返传输延迟 500ms,若传
1000bit的帧,使用协议 4,则传输一个帧所需时间为,发送时间 + 信息信道延迟 + 确认信道延迟(确认帧很短,忽略发送时间) = 1000bit / 50kbps + 250ms + 250ms =
520ms
信道利用率 = 20 / 520? 4%
- 一般情况
信道带宽 b比特 /秒,帧长度 L比特,往返传输延迟 R秒,则信道利用率为 (L/b) / (L/b + R) = L / (L + Rb)
- 结论
传输延迟大,信道带宽高,帧短时,信道利用率低。
5.4 滑动窗口协议( 6)
- 解决办法
连续发送多帧后再等待确认,称为流水线技术(
pipelining)。
- 带来的问题
信道误码率高时,对损坏帧和非损坏帧的重传非常多
两种基本方法
- 退后 n帧( go back n)
接收方从出错帧起丢弃所有后继帧;
接收窗口为 1;
对于出错率较高的信道,浪费带宽。
Fig,3-15(a)
5.4 滑动窗口协议( 7)
- 选择重传( selective repeat)
接收窗口大于 1,先暂存出错帧的后继帧;
只重传坏帧;
对最高序号的帧进行确认;
接收窗口较大时,需较大缓冲区。
Fig,3-15(b)
注意,Fig,3-15(b)中可能出现的错误
5.4 滑动窗口协议( 8)
退后 n帧协议
- 发送方有流量控制,为重传设缓冲;
发送窗口未满,EnableNetworkLayer
发送窗口满,DisableNetworkLayer
- 发送窗口大小 < 序号个数( MaxSeq + 1);
考虑 MaxSeq = 7的情况
1 发送方发送 帧 0 ~ 7;
2 序号为 7 的帧的确认被捎带回发送方;
3 发送方发送另外 8 个帧,序号为 0 ~ 7;
4 另一个对帧 7 的捎带确认返回。
问题:第二次发送的 8 个帧成功了还是丢失了?
5.4 滑动窗口协议( 9)
Wt+Wr<2**n
- 退后 n帧重发;
- 由于有多个未确认帧,设多个计时器。
- 工作过程
Fig,3-16
- 计时器实现
Fig,3-17
7 0 1 2 3 4 5 6 7 0 1 2 3 4
Wt Wt
Wr
5.4 滑动窗口协议( 10)
P5协议实现分析
- 事件驱动
Network_layer_ready(内部事件)
发送帧(帧序号,确认序号,数据)
Frame_arrival (外部事件)
检查帧序号,落在接收窗口内则接收,否则丢弃;
检查确认序号,落在发送窗口内则移动发送窗口,否则不做处理。
Cksum_err (外部事件)
丢弃
timeout (内部事件)
退后 n帧重传
- 计时器处理
启动,发送帧时启动
停止,收到正确确认时停止
超时则产生 timeout事件
5.4 滑动窗口协议( 11)
5.4.3 选择重传协议( A Protocol Using Selective Repeat)
目的
- 在不可靠信道上有效传输时,不会因重传而浪费信道资源,采用选择重传技术。
基本原理
- 发送窗口大小,MaxSeq,接收窗口大小,(MaxSeq+1)/2
保证接收窗口前移后与原窗口没有重叠;
设 MaxSeq = 7,若接收窗口 = 7,发方发 帧 0 ~ 6,收方全部收到,接收窗口前移( 7 ~ 5),确认帧丢失,发方重传帧
0,收方作为新帧接收,并对帧 6确认,发方发新帧 7 ~ 5,
收方已收过帧 0,丢弃新帧 0,协议出错。
Fig,3-19
5.4 滑动窗口协议( 12)
- 发送窗口下界,AckExpected,上界:
NextFrameToSend接收窗口下界,FrameExpected,上界,TooFar
- 缓冲区设置
发送方和接收方的缓冲区大小应等于各自窗口大小;
- 增加确认计时器,解决两个方向负载不平衡带来的阻塞问题;
- 可随时发送否定性确认帧 NAK。
工作过程
- Fig,3-18
5.4 滑动窗口协议( 13)
P6协议实现分析
- 事件驱动
Network_layer_ready(内部事件)
发送帧(帧类型,帧序号,确认序号,数据)
Frame_arrival (外部事件)
若是数据帧,则检查帧序号,落在接收窗口内则接收,否则丢弃;不等于接收窗口下界还要发 NAK
若是 NAK,则选择重传;
检查确认序号,落在发送窗口内则移动发送窗口,否则不做处理。
Cksum_err (外部事件)
发送 NAK
timeout (内部事件)
选择重传
Ack_timeout (内部事件)
发送确认帧 ACK
5.4 滑动窗口协议( 14)
- 计时器处理
启动,发送数据帧时启动
停止,收到正确确认时停止
超时则产生 timeout事件
- Ack计时器处理
启动,收到帧的序号等于接收窗口下界或已经发过
NAK时启动
停止,发送帧时停止
超时则产生 ack_timeout事件小结
可靠传输
- 通过确认和重传机制
- 传输层协议,如 TCP,也提供可靠传输服务
- 链路层的可靠传输服务通常用于高误码率的连路上,如无线链路。
5.6 常用的数据链路层协议( 1)
ISO和 CCITT在数据链路层协议的标准制定方面做了大量工作,各大公司也形成了自己的标准。
数据链路层协议分类
- 面向字符的链路层协议
ISO的 IS1745,基本型传输控制规程及其扩充部分( BM和 XBM)
IBM的二进制同步通信规程( BSC)
DEC的数字数据通信报文协议( DDCMP)
- 面向比特的链路层协议
IBM的 SNA使用的数据链路协议 SDLC( Synchronous Data Link
Control protocol);
ANSI修改 SDLC,提出 ADCCP( Advanced Data
Communication Control Procedure);
ISO修改 SDLC,提出 HDLC( High-level Data Link Control);
CCITT修改 HDLC,提出 LAP( Link Access Procedure)作为
X.25网络接口标准的一部分,后来改为 LAPB。
5.6 常用的数据链路层协议( 2)
5.6.1 高级数据链路控制规程 HDLC
1976年,ISO提出 HDLC( High-level Data Link Control
)
HDLC的组成
- 帧结构
- 规程元素
- 规程类型 语义
- 使用 HDLC的语法可以定义多种具有不同操作特点的链路层协议。
HDLC的适用范围
- 计算机 ——计算机
- 计算机 ——终端
- 终端 —— 终端
}语法
5.6 常用的数据链路层协议( 3)
数据站(简称站 station),由计算机和终端组成
,负责发送和接收帧。 HDLC涉及三种类型的站:
- 主站( primary station):主要功能是发送命令(包括数据),接收响应,负责整个链路的控制(如系统的初始、流控、差错恢复等);
- 次站( secondary station):主要功能是接收命令,发送响应,配合主站完成链路的控制;
- 组合站( combined station):同时具有主、次站功能
,既发送又接收命令和响应,并负责整个链路的控制。
HDLC适用的链路构型
- 非平衡型
点 — 点式主站 次站
5.6 常用的数据链路层协议( 4)
多点式
适合把智能和半智能的终端连接到计算机。
- 平衡型
组合式 (对称方式:工作与非平衡方式,链路控制权交替)
适合于计算机和计算机之间的连接
HDLC不支持多点平衡方式,因此局域网中要引入媒体访问协议组合站 组合站主站 次站次站 次站,.,
主站主站次站次站逻辑通道
5.6 常用的数据链路层协议( 5)
HDLC的基本操作模式模式指在一次交换中涉及到的两个设备之间的关系,模式描述了由谁控制链路
- 正规响应模式 NRM( Normal Response Mode)
适用于点 —点式和多点式两种非平衡构型。只有当主站向次站发出探询后,次站才能获得传输帧的许可。
- 异步响应模式 ARM( Asynchronous Response Mode)
适用于点 —点式非平衡构型。次站可以随时传输帧,
不必等待主站的探询。但主站仍负责链路的初始化、建立、释放和差错恢复。使用较少。
- 异步平衡模式 ABM( Asynchronous Balanced Mode)
适用于通信双方都是组合站的平衡构型,也采用异步响应,双方具有同等能力。
5.6 常用的数据链路层协议( 6)
帧结构
- 定界符
01111110
空闲的点到点线路上连续传定界符
- 地址域( Address)
在非平衡传送数据时总是次站地址;在平衡方式传送数据时是目的地址。
点到点线路,有时用来区分命令和响应。
若帧中的地址是接收该帧的站的地址,则该帧是命令帧;
若帧中的地址是发送该帧的站的地址,则该帧是响应帧。
5.6 常用的数据链路层协议( 7)
- 控制域( Control)
序号
使用滑动窗口技术,3位序号,发送窗口大小为 7
确认
其它
- 数据域( Data)
任意信息,任意长度(上层协议 SDU有上限)
- 校验和( Checksum)
CRC校验
生成多项式,CRC-CCITT
5.6 常用的数据链路层协议( 8)
帧类型
- 信息帧( Information)
- 监控帧( Supervisory)
- 无序号帧( Unnumbered)
控制域
- Fig,3-25
- 序号( Seq)
使用滑动窗口技术,3位序号,发送窗口大小为 7
- 捎带确认( Next)
捎带第一个未收到的帧序号,而不是最后一个已收到的帧序号
5.6 常用的数据链路层协议( 9)
- 探询 /结束 P/F位( Poll/Final)
命令帧置,P”,响应帧置,F”。有些协议,P/F位用来强迫对方机器立刻发监控帧;
多终端系统中,计算机置,P”,允许终端发送数据;
终端发向计算机的帧中,最后一个帧置为,F”,其它置为,P”。
- 类型( Type)
,00”表示确认帧 RR( RECEIVE READY);
,01”表示否定性确认帧 REJ( REJECT)。
,10”表示接收未准备好 RNR( RECEIVE NOT
READY)
,11”表示选择拒绝 SREJ( SELECTIVE REJECT)
HDLC和 ADCCP允许选择拒绝,SDLC和 LAPB不允许
。
5.6 常用的数据链路层协议( 10)
无序号帧
- 可以用来传控制信息,也可在不可靠无连接服务中传数据。
命令
- DISC( DISConnect)
- SNRM( Set Normal Response Mode)
- SARM( Set Asynchronous Response Mode)
- SABM( Set Asynchronous Balanced Mode)
HDLC和 LAPB使用。
- SABME SABM的扩展
- SNRME SNRM的扩展
- FRMR( FRaMe Reject)
校验和正确,语义错误
5.6 常用的数据链路层协议( 11)
- 无序号确认 UA( Unnumbered Acknowledgement)
对控制帧进行确认,用于确认模式建立和接受拆除命令。
- UI( Unnumbered Information)
HDLC的功能组合
- 三种站,两种构型,三种操作模式,以及规程元素中定义的各种帧的各种组合产生多种链路层协议。
- HDLC定义了选择构成链路层协议的良序结构:
选择站构型 ——> 基本操作模式 ——> 基本帧种类
——> 12种任选功能 ——> 得到协议
B,I00 B,I10 B,I20 B,I30,F C,RR0,F
B,RR0,P C,RR0,P主站 A
次站 B 次站 C
(地址,帧名,N(S)N(R),P/F)
1、轮询 /响应 (从站向主站发信息)
主机到站点 A:监管帧 P=1,RR(接收就绪 ),地址 =A
站点 A到主机:信息帧,N( S) =0,N( R) =0,F=0,地址 =A
信息帧,N( S) =1,N( R) =0,F=1,地址 =A
主机到站点 A:监管帧 P=0,RR(接收就绪 ),地址 =A
2、轮询 /响应 (主站向从站发信息)
主机到站点 A:监管帧 P=1,RNR(准备接收,并回应 ),地址 =A
站点 A到主机:监管帧,RR,N( R) =0,F=1,地址 =A
主机到站点 A:信息帧 P=0,N( S) =0,N( R) =0,地址 =A
站点 A到主机:监管帧,RR,N( R) =0,F=1,地址 =A
3、对等设备(采用异步平衡方式 ABM,两站点地位相同)
A向 B发 U帧,P=1,TYPE=11,MODIFIER=100,设置 ABM
方式建立 ABM链路
B向 A发 U帧,F=1,TYPE=00,MODIFIER=110,接受请求进行通信发信息帧
5.6 常用的数据链路层协议( 12)
5.6.2 X.25的链路层协议 LAPB
X.25协议
- 分组级,PLP
- 帧级,X.25 LAP( Link Access Procedure),X.25 LAPB(
Balanced)
- 物理级,X.21
,X.25协议规程使用 HDLC规程的原理和术语”
X.25 LAP,HDLC非平衡规程帧的基本清单 + 任选功能 2、
8,12,也可组成主站 —次站式平衡规程。
X.25 LAPB,HDLC组合站平衡规程帧的基本清单 + 任选功能 2,8,11,12。
因此,X.25 LAP,LAPB是 HDLC的子集。
5.6 常用的数据链路层协议( 13)
X.25的帧格式与 HDLC完全相同
X.25链路级的命令和响应格式 命令 响应 控制域编码信息帧 I( 信息 ) 0 N (S ) P N (R)
监控帧 RR( 接收准备好 )
RN R( 接收未准备好 )
REJ( 拒绝 )
RR( 接收准备好 )
RN R( 接收未准备好 )
REJ( 拒绝 )
1 000
1 010
1 01 1
P /F
P /F
P /F
N (R)
N (R)
N (R)
S A RM ( 置异步响应模式 ) D M ( 拆除模式 ) 1 1 1 1 P /F 000
S A BM ( 置异步平衡模式 ) 1 1 1 1 P 100
D IS C( 拆除 ) 1 100 P 010
UA( 无序号确认 ) 1 100 F 1 10
无序号帧
CM D R( 命令拒绝 )
F RM R( 帧拒绝 )
1 1 10 F 001
5.6 常用的数据链路层协议( 14)
X.25 LAPB的各种检错和纠错措施
a 帧格式上采用 CRC校验,只检错,不纠错,丢弃出错帧;
b 设立超时机制,计时器超时重传,重传 N次,则向上层协议报告。
超时机制用来检错,重传用来纠错。
c 帧序号若接收方发现帧序号错,就发拒绝帧给发送方,发送 方重传,既检错也纠错。
d 采用 P/F位来进行校验指示发送置为 P 的命令帧,等待置为 F 的响应帧,能及时发现远程数据站是否收到命令帧。
规程规定,a 必须使用; b,c,d 组合使用。
5.6 常用的数据链路层协议( 15)
5.6.3 Internet数据链路层协议
点到点通信的两种主要情形
- 路由器到路由器( router-router leased line connection)
- 通过 modem拨号上网,连到路由器或接入服务器( Access
Server)( dial-up host-router connection)
PPP不使用序号和确认机制
-开销大。对于链路层出错不大的情况,PPP合理
-数据链路层的可靠不能保证整个网络的传输可靠
-PPP采用 CRC校验,保证无错接收
-无线的情况,增加编号机制等。
小结
介绍三种主要数据链路层协议,HDLC,LAPB(
面向比特)和 PPP(面向字符)
HDLC具有三种站,两种构型,三种操作模式
X.25 LAPB是 HDLC的子集
PPP 提供差错校验、支持多种协议、允许动态分配 IP地址、支持认证
PPP帧没有序号域,不使用滑动窗口技术。