2016计算机网络技术(施晓秋编)教案:第四章 数据链路层
第四章 数据链路层
教学目标
数据链路层的功能
成帧
差错控制
流量控制
数据链路层的协议例子
重点与难点
成帧(帧,地址,位填充,字符填充)
差错控制(校验码,CRC,拉回方式,选择重发) 流量控制(滑动窗口协议)
面向连接的服务与面向无连接的服务
HDLC,PPP
数据链路层概述
1、数据链路层的功能
实现两个相邻的机器间的无差错的传输。 利用物理层提供的原始比特流传输服务,向网络层提供可靠的数据传输服务。
1、 相邻结点的概念
同属物理层设备(包括线缆)连接的结点。见书P59图4.1
3、数据链路层的问题
, 如何识别相邻的机器
--编址与寻址
, 如何实现可靠的数据传输
--差错控制和流量控制
, 如何识别数据流的开始与结束
--成帧
4、成帧
, 数据链路层所传送的不再是原始的比特流,而应具备相应的语法和语义,以达到可靠传
输的功能。
, 数据链路层将从网络层接收的分组(Packet)组成帧后传送给物理层,通过物理层传送到
对方的数据链路层。
, 帧:数据链路层规定最小的数据传送逻辑单位 , 数据链路层协议要规定帧的类型与格式
类型包括控制信息帧与数据信息帧等,格式则规定帧所包含的域)。
, 帧的基本组成—域
1、 帧定界(开始与结束)
2、 地址字段(用于寻址)
3、 帧类型(或长度/控制)字段
4、 数据
5、 帧校验字段(差错控制)
帧的示意图
1
帧的开始 地址 帧类型或长度 数据 帧校验 帧的结束
上图只是帧的一般组成,不同的数据链路层协议所规定的帧格式可能会与其存在微小的区别。
, 帧的地址
帧中的地址属于物理或硬件地址
网卡地址(局域网)
链路标识(广域网)
用于设备或机器的物理寻址
, 帧的定界
定界就是标识帧的开始与结束
常用的帧定界方法:
带字符填充的首尾界符法
带位填充的首尾标志法
字符计数法
, 首尾界符法
每一帧以ASCII字符序列DLE STX开始,以DLE ETX结束。
DLE为Data Link Escape 的缩写,STX意味着Start of Text, ETX代
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
End of Text。
其缺点是成帧完全依赖于8位字符在首尾界符法中,由于数据中可能会出现DLE STX
或DLE ETX,从而干扰帧的正常定界
字符填充法可用于解决上述问题。即发送端在数据中所遇到的DLE前再插入一个附加
的DLE,而接收端则忽略两个连续DLE的前一个。
DLE STX DLE ETX … Data …
, 字符填充
在首尾界符法中,由于数据中可能会出现DLE STX或DLE ETX,从而干扰帧的正常定
界
字符填充法可用于解决上述问题。即发送端在数据中所遇到的DLE前再插入一个附加
的DLE,而接收端则忽略两个连续DLE的前一个。
2
Data
DLE STX DLE DLE ET … …
X DLE STX DLE DLE DLE ET … …
X , 首尾标记法
每一帧使用一个特殊的位模式“01111110”作为开始和结束标记。
该位模式又称为flag
位模式允许数据帧包含任意个数的比特,也允许每个字符采用任意比特的编码。 01111110 … Data … 01111110
, 位填充
在首尾标记法中,由于数据中可能会出现与标记相同的位串,从而干扰帧的正常定界 位填充法可用于解决上述问题。即发送端在数据中若遇到5个连续的“1”时,则在其后自动插队入一个“0”。该技术简称“逢五1插0”;接收端则忽略5个连续的“1”后面的“0”,简称“逢五1删0” 。
Data
01111110 … 111111 … 111110 … 01111110 01111110 … 1111101 … 1111100 … 01111110
, 字符计数法
在帧头中使用一个字段来标明帧内的字符数,通常该字段称为帧长字段。 如果发生传输错误,则可能更改帧长的值,从而导致帧的同步出现问题。 该方法通常与上述其他方法结合使用。
5、差错控制
, 差错类型
, 差错衡量
, 差错控制
3
A、差错类型
在物理层的讨论中,我们已经讨论了物理信道中所存在的各类噪声,噪声会引起数据
传输中的错误。
根据噪声的类型不同,差错分为随机错和突发错。
, 热噪声?随机错
, 冲击噪声(如EMI,RFI)?突发错
B、差错的衡量
差错由误码率来衡量:Pe=错误接收的码元数/接收的码元总数
误码率越低,信道的传输质量越高。
C、差错控制
由于信道中的噪声是客观存在的,不管信道质量多高,都要进行差错控制。
差错控制通过发现传输中的错误,来采取相应的措施。
D、差错控制的核心
差错控制的核心是对传送的数据信息加上与其满足一定关系的冗余码,形成一个加强
的、符合一定规律的发送序列。
接收端利用相同的规律进行检查从而发现错误,所加入的冗余码称校验码。
校验码的分类:
纠错码
检错码
, 纠错码
纠错码不仅能发现传输中的错误,还能利用纠错码中的信息自动纠正错误。
对应的差错控制措施为自动向前纠错。
汉明码(Hamming code)为典型的纠错码,具有很高的纠错能力。 , 检错码
检错码用来发现传输中的错误,但不能自动纠正所发现的错误。
对应的差错控制措施为反馈重发纠错 。
常见的检错码有:
奇偶校验码
循环冗余校验码(CRC)
6、反馈重发
含义:由于检错码不能自动纠正所发现的错误,所以当接收方发现错误时,要给发送方反馈信息要求重发。
常见的实现方法:
停止等待方式
连续工作方式
1)拉回方式(back to n)
2)选择重发方式(selective)
1)拉回方式
含义:假定发送方连续发送了m帧,而接收方在对收到的数据帧进行校验后发现第
n帧出错,于是接收方给发送方出错信息要求发送方重发第n帧及第n帧以后的所
有帧。换言之,一旦接收方发现第n帧出错,则丢弃第n帧及第n帧以后的所有帧。
代价:信道的带宽
2)选择重发方式
含义:假定发送方连续发送了m帧,而接收方在对收到的数据帧进行校验后发现第n
4
帧出错(n?m) ,于是接收方给发送方出错信息要求发送方重发第n帧。换言之,
一旦接收方发现第n帧出错,则丢弃第n帧,但缓存第n帧以后的所有正确帧。
代价:存储空间
7、奇偶校验
, 垂直奇偶校验:在面向字符的数据传输中,在每个字符的7位信息码后附加一个
校验位0或1,使整个字符中“1”的个数构成奇数个(奇校验)或偶数个(偶校
验)。
, 水平奇偶校验:在发送字符块的末尾附加一个校验字符,且该字符中的第i位是
针对所有字符的第i位所进行的校验。
, 垂直水平奇偶校验:垂直奇偶校验和水平奇偶校验技术的综合。对每个字符作垂
直校验,对整个字符块作水平校验。
见书p65 图4.3
8、循环冗余校验 (Cyclic Redundancy Check ,简称CRC)
, 工作原理:多项式除法,将余式作为冗余信息传送。又称多项式校验 , 数的除法与多项式除法的比较
数的除法:被除数=除数*商+余数
多项式除法:被除多项式=除式*商+剩余多项式(换言之,被除多项式减去剩余多
项式可以用除式整除)
CRC的工作原理
A、将要发送的二进制数序列看成是一个多项式。n位的数据序列对应n-1次多项式。
P(x)=an-1xn-1 +an-2xn-2 + a1x + a0
选定除式,被选作除式的多项式称为生成多项式,常见的生成多项式有: CRC-12: G(x)=x12 +x11 +x3 + x2 + x + 1 CRC-16: G(x)=x16 +x15 + x2 + 1 CRC-CCITT: G(x)=x16 +x12 + x5 + 1 CRC-32: G(x)=x32 +x26 +x23 + x22 + x16 +x12+ x11 +x10 +x8 + x7 + x5 +x4 + x2 + x
+ 1
B、将P(x)乘以 G(x)的最高幂次作为被除式,作多项式除式。除法采用“加法不进位,减法不借位”的规则,即相当于异或操作
将所得到的余式多项式R(x)重新转换为二进制数,作为冗余码。
注意:冗余码的位数与G(x)幂次相同,(请学生思考为什么,) 将冗余码加在原传送数据后面,构成发送序列。
接收方收到后,将接收序列用同样的生成多项式去除。若余式为零,则表示无差错;否则,
说明
关于失联党员情况说明岗位说明总经理岗位说明书会计岗位说明书行政主管岗位说明书
传输过程中出现了错误。
C、CRC的例子(1)
要发送的二进制数序列为“110011”,6位的数据序列对应5次多项式:
P(x)=x5+x4+x+1
选定的生成多项式为:
G(x)=x4 +x3 + 1
(最高次数为4,相当于11001)
被除多项式为:
P(x)x4, x9+x8+ x5+ x4
(相当于1100110000)
5
0000 1 1
11001 1100110000
11001
10000
11001
1001
多项式除法后得到冗余码为1001,所以相应的数据发送序列为110011 1001 CRC校验可以由软件或硬件来实现,现多采用超大规模集成电路芯片以硬件方式实现。
D、CRC的检错能力
全部单个错
全部离散的二位错
全部奇数个错
全部长度小于或等于K的突发错( K为生成多项式的最高幂次)
以1-(1/2)K-1的概率检出长度为K+1位的突发错
习题:
现有信息位1111101要发送,采用的生成多项式为: G(x)=x4 +x2 +x+1请问实际发送时的比特序列是什么,
4.5数据链路层提供的服务
可以将数据链路层
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
成能提供各种服务,实际的服务因系统的不同而不同。 有三种基本的服务:
, 无确认的无连接服务
, 有确认的无连接服务
, 有确认的面向连接的服务
A、无确认的无连接服务
源机器向目标机器发送独立的数据帧,而目的机器不对收到的帧作确认。
由于线路上的噪声而造成的帧丢失,数据链路层不作努力去恢复,而将该工作留给上层
(通常为传输层)。
事先不存在建立连接,事后也不存在释放
适用于误码率较低的信道,如大多数的局域网中。
B、无确认的无连接服务
源机器向目标机器发送独立的数据帧,而目的机器不对收到的帧作确认。
由于线路上的噪声而造成的帧丢失,数据链路层不作努力去恢复,而将该工作留给上层
(通常为传输层)。
事先不存在建立连接,事后也不存在释放
6
适用于误码率较低的信道,如大多数的局域网中。
C、有确认的面向连接的服务
传送数据前,事先要建立一条连接
在连接上所传送的每一帧都要编上号,数据链路层保证每一帧都收到,且每一帧只被正
确接收一次,并保证所有帧的按正确的顺序被接收。
真正为网络层提供了可靠的无差错传输服务。
适用于误码率较高的不可靠信道,如某些广域网链路。
4.4 流量控制
由于系统性能的不同,如硬件能力(包括CPU,存储器等)和软件功能的差异,会导致发送方与接收方处理数据的能力有所不同。
流量控制的作用是使发送方所发出的数据流量,使其发送速率不要超过接收方所能接收的速率。
流量控制的关键是需要有一种信息反馈机制,使发送方能了解接收方是否能接收到 存在各种不同的流量控制机制。如简单的停等协议,而滑动窗口协议则将确认与流量控制巧妙地结合在了一起。
1、滑动窗口协议
, 在滑动窗口协议中,每一个要发送的帧都有包含一个序列号,其范围从0到某一个值。
若帧中用以表达序列号的字段长度为n,则最大值为2n-1。
, 任何时候发送方保持着一组序列号,对应于允许发送的帧,并且这些帧被认为在发送窗
口内。
, 任何时候接收方也保持着一组序列号,对应于允许接收的帧,并且这些帧被认为在接收
窗口内。接收窗口的大小等于发送方未收到接收方的确认之前所能发送的最多帧。 , 发送窗口与接收窗口可以不具有相同的窗口上限与下限,也可不具有相同的窗口大小。 , 在某些协议中,窗口大小在传输过程中还可动态调整。
滑动窗口协议的例子:见书p71 图4.8
2、数据链路层协议的例子--HDLC
HDLC为英文High level data link control 的缩写,称为高能数据链中控制协议,由ISO
颁布。前身为IBM开发的SDLC(Synchronous data link control)
面向位的协议(采用Flag和位填充)
? 0 8 8 8 16 8
Flag Flag 地址 控制字段 数据 帧校验 01111110 01111110
A C I FCS
范围A、C、I 范围A、C、I 首尾标记法 首尾标记法
采用CRC-16 采用CRC-16
信息字段为任意长,但校验效率随着数据长度的增加而下降。
HDLC的三种帧类型
HDLC帧中的控制字段给出了不同的帧类型,包括信息帧、监控帧和无符号帧。 I帧用于发送数据,并具有确认/差错和流量控制
7
NEXT 0 SEQ(3位序列号) P/F (下一发送序列号)
S帧用于协调双方通信状态,包括差错和流量控制
TYPE NEXT 1 0 P/F (2位) (下一发送序列号)
U帧用于数据链路控制,包括建立连接和拆除连接
1 1 TYPE P/F Modifier
HDLC的工作示意图
A B A发送无符号帧请求建立连接 1 ModifieP/Modifier
1 r F B发送无符号帧确认建立连接 1 ModifieP/Modifier
1 r F
A发送编号为0的数据帧 0 0 P/F 0
A发送编号为1的数据帧 0 1 P/F 0 B发送编号为0的数据帧,并0 0 P/F 2 对A的第1帧进行确认
A发送无符号帧请求断开连接 1 ModifieP/Modifier
1 r F B发送无符号帧确认断开连接 1 ModifieP/Modifier 1 r F
HDLC的差错控制示意图
8
A发送编号为1的数据帧 0 1 P/F 0 B A
B发送编号为0的数据帧,并0 0 P/F 2 对A的第1帧进行确认
A发送编号为2的数据帧,并对0 2 P/F 1
B的第0帧进行确认
A发送编号为3的数据帧 0 3 P/F 1
B发送监控帧
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
第2帧出1 1 P/F 2 错,并要求选择重发 0 1
A重发编号为2的数据帧 0 2 P/F 1
A继续发送编号为4的数据帧 0 4 P/F 1
A发送无符号帧请求断开连接 1 ModifieP/Modifier
1 r F B发送无符号帧确认断开连接 1 ModifieP/Modifier 1 r F
3、数据链路层协议的另一例子--PPP
1. PPP为英文point-to-point 的缩写,称为点到点协议,由IETF颁布。前身为SLIP
(Serial Line IP)。
2. PPP由一系列的子协议组成,其中包括:
, 链路控制协议LCP:用于建立、测试和拆除数据链路的连接,并协商相应的
连接选项,包括是否需要身份验证及验证的方式。
, 网络控制协议NCP:以独立于网络层的方法来协商网络层所支持的协议,使
得PPP可以支持不同的网络层协议(如后面地学到的IP或IPX)
1或2 > 0 2或4 1 1 1 1
Flag 地址 控制字段 帧校验 Flag 协议 有效载01111110 11111111 C FCS 01111110
荷
说明有效载荷中说明有效载荷中
全“1”表示所有的分组所采用的的分组所采用的可变长,缺省为缺省值为00000011,可变长,缺省为缺省值为00000011,站的状态都为了协议 协议 表示无序号的帧,即1500字节 表示无序号的帧,即1500字节 接收帧
不提供确认服务 不提供确认服务
你能给出所知道的PPP使用的例子吗,
Homework
复习本章内容
并用200到400字来说明你现在对数据链路层的认识。(形式不限)
9
10