北京交通大学电气工程学院 黄彧第四章 数据链路层主要内容基本内容,数据链路层的基本概念、三个基本问题,PPP协议。
重点掌握:
链路与数据链路的区别实现帧定界、透明传输和差错检测的基本计算方法
PPP协议的帧格式
4.1 数据链路层的基本概念链路 (link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
一条链路只是一条通路的一个组成部分。
数据链路 (data link):物理链路 + 通信协议。
现在最常用的方法是使用网络适配器(拨号适配器、局域网适配器)。
一般的适配器都包括了数据链路层和物理层这两层的功能。
数据链路层的简单模型局域网 广域网主机 H1 主机 H
2
路由器 R1 路由器 R
2
路由器 R3
电话网 局域网主机 H1 向 H2 发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层
R1 R2 R3
H1 H2从层次上来看数据的流动数据链路层的简单模型局域网 广域网主机 H1 主机 H
2
路由器 R1 路由器 R
2
路由器 R3
电话网 局域网主机 H1 向 H2 发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层
R1 R2 R3
H1 H2仅从数据链路层观察帧的流动简化模型数据链路层主机
A
缓存主机
B
数据链路
AP2AP1
缓存发送方 接收方帧高层帧
4.2 三个基本问题帧定界,发送方要让接受方知道所发送的帧是从什么地方开始什么地方结束;
透明传输,传送的比特组合不受限制;
差错检测,判断数据传输的是否正确。
帧定界帧定界 framing:确定帧的界限,发送方在帧的前后加入标记,接收方根据标记识别帧。
IP数据报帧的 数据部分帧首部 帧尾部帧开始 帧结束数据链路层的帧长数据链路层帧的数据部分长度 <链路层协议规定的 MTU
帧的 数据部分SOH EOT
透明传输当传输的数据当中出现用做帧定界的控制字符时,会怎么样?
SOH EOTEOT
数据部分完整的帧被接收方误认为是一个帧被接收方当作无效帧丢弃解决方法:字节插入、比特插入字节插入 byte stuffing
字节插入,将在数据出现的控制字符转换为另一个字符。
SOH EOTESC
完整的帧
EOT SOH
帧开始符帧结束符
SOH EOTESC ESC ESCz y x
经字节插入后发送的数据比特插入数据中某一段比特组合恰好出现和 F 字段一样的情况
0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0
会被误认为是 F 字段发送端在 5 个连 1 之后填入 0 比特再发送出去填入 0 比特
0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0
在接收端将 5 个连 1 之后的 0 比特删除,恢复原样在此位置删除填入的 0 比特
0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0
PPP协议在 SONET/SDH链路上同步传输时使用零比特填充法零比特插入 /删除工作过程差错检测奇偶校验( parity check)
循环冗余校验( Cyclic Redundancy
Check,CRC)
奇偶校验( parity check)
奇偶校验码,在发送的数据块后加 1个校验位,使结果中 1的个数为奇数(奇校验)或偶数(偶校验)。
如:数据 1011000
偶校验 校验位为 1 - 10110001
奇检验 校验位为 0 - 10110000
特点:
方法简单,检错能力差用于通信要求较低的环境循环冗余检验在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术 —— 多项式除法检测错误。
假设待传送的数据 M = 1010001101
(共 k bit)。我们在 M的后面再添加供差错检测用的 n bit 冗余码 一起发送。
冗余码的计算用二进制的模 2运算进行 2n 乘 M 的运算,这相当于在 M 后面添加 n 个 0。
得到的 (k + n) bit 的数除以事先选定好的长度为 (n + 1) bit 的数 P,得出商是
Q 而余数是 R,余数 R 比除数 P 至少要少 1 个比特。
冗余码的计算举例设 n = 5,P = 110101,模 2 运算的结果是:商 Q = 1101010110,
余数 R = 01110。
将余数 R 作为 冗余码 添加在数据 M 的后面发送出去,即发送的数据是
101000110101110,或 2nM + R。
1101010110 ← Q 商除数 P → 110101 101000110100000 ← 2nM 被除数
110101
111011
110101
111010
110101
111110
110101
101100
110101
110010
110101
01110 ← R 余数循环冗余检验的原理说明帧检验序列 FCS
在数据后面添加上的冗余码称为 帧检验序列 FCS (Frame Check Sequence)。
循环冗余检验 CRC 和帧检验序列 FCS
并不等同。
CRC 是一种常用的 检错方法,而 FCS 是添加在数据后面的 冗余码 。
FCS 可以用 CRC 这种方法得出,但 CRC
并非用来获得 FCS 的惟一方法。
接收端差错检测接收端收到数据后除以 P,得到的余数应当是 0。 只要得出的余数 R 不为 0,就表示检测到了 差错 。
但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错 。
多项式表示:生成多项式 P(x)=X5+X4+X2+1。
常用的生成多项式:
CRC-16=X16+X15+X2+1
CRC-CCITT=X16+X12+X5+1
CRC-
32=X32+X26+X23+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1
CRC例题生成多项式
X16+X15+X13+X12+X10+X9+X8+X7+X2 +1
用 16进制表示为,H?
CRC的生成多项式为 G(x)=X4+X3+X2+1,
接收端收到的码字为 110110011001。试问该码字是否出错?
1B785
解题方法:生成多项式 11101,用 110110011001/11101,如果整除则没有出错,否则出错。结果表明不能整除,出错。
4.3 因特网的点对点协议 PPP
现在全世界使用得最多的数据链路层协议是 点对点协议 PPP (Point-to-Point
Protocol)。
用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。
用户接入 Internet的方法一种是使用拨号电话线接入,另一种是使用专线接入 。
PC机 Modem
PSTN Internet
拨号 电话线接入方法
Modem Pool
使用 TCP/IP
的客户进程路由选择进程
PC机 专线设备
Internet
专线接入方法:如 xDSL,DDN,X.25
专线设备
ISP网络专线用户拨号入网的示意图路由器调制解调器调制解调器因特网服务提供者 (ISP)用户家庭拨号电话线使用 TCP/IP 的
PPP 连接使用 TCP/IP 的客户进程路由选择进程至因特网…
PC 机
4.3.1 PPP 协议特点
1992 年制订了 PPP 协议。经过 1993
年和 1994 年的修订,现在的 PPP 协议已成为因特网的正式标准 [RFC 1661]。
PPP协议有三个组成部分一个将 IP 数据报封装到串行链路的方法。
链路控制协议 LCP (Link Control
Protocol)。
网络控制协议 NCP (Network Control
Protocol)。
PPP不需要的功能纠错 error correction—— PPP是不可靠传输协议流量控制序号多点线路半双工或单工链路
4.3.2 PPP 协议的帧格式
PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。
标志字段 F仍为 0x7E (符号,0x”表示后面的字符是用十六进制表示。十六进制的 7E的二进制表示是 01111110)。
地址字段 A只置为 0xFF。地址字段实际上并不起作用。
控制字段 C通常置为 0x03。
PPP 协议的帧格式
PPP 有一个 2 个字节的协议字段。
当协议字段为 0x0021 时,PPP 帧的信息字段就是
IP 数据报。
若为 0xC021,则信息字段是 PPP 链路控制数据。
若为 0x8021,则表示这是网络控制数据。
IP 数据报
1 21 1字节 1 2不超过 1500 字节
PPP 帧先发送
7E FF 03
F A C FCS F
7E协议 信 息 部 分首部 尾部透明传输问题当 PPP 用在同步传输链路时,协议规定采用硬件来完成比特填充(和 HDLC 的做法一样)。
当 PPP 用在异步传输时,就使用一种特殊的 字符填充法 。
字符填充法将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列 (0x7D,0x5E)。
若信息字段中出现一个 0x7D 的字节,则将其转变成为 2 字节序列 (0x7D,0x5D)。
若信息字段中出现 ASCII 码的控制字符
(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。
例题一个 PPP帧的数据部分是
7D 5E FE 27 7D 5D 7D 5D 65 7D 5E
试问真正的数据是什么?
7E FE 27 7D 7D 65 7E
零比特填充法同步传输时采用零比特填充法使一帧中两个 F 字段之间不会出现 6 个连续 1。
在发送端,当一串比特流数据中有 5 个连续 1 时,就立即填入一个 0。
在接收帧时,先找到 F 字段以确定帧的边界。接着再对比特流进行扫描。每当发现 5 个连续 1 时,就将其后的一个 0
删除,以还原成原来的比特流。
PPP 协议的工作状态当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。
这些分组及其响应选择一些 PPP 参数,和进行网络层配置,NCP 给新接入的 PC机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。
通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。
PPP 协议的状态图建立失败失败
NCP 配置鉴别成功通信结束载波停止检测到载波双方协商一些选项鉴别网络打开终止静止小结掌握实现帧定界、透明传输的基本方法掌握 CRC检验的算法掌握 PPP协议的特点及其数据帧的具体格式作业,P86 5,6,8
重点掌握:
链路与数据链路的区别实现帧定界、透明传输和差错检测的基本计算方法
PPP协议的帧格式
4.1 数据链路层的基本概念链路 (link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。
一条链路只是一条通路的一个组成部分。
数据链路 (data link):物理链路 + 通信协议。
现在最常用的方法是使用网络适配器(拨号适配器、局域网适配器)。
一般的适配器都包括了数据链路层和物理层这两层的功能。
数据链路层的简单模型局域网 广域网主机 H1 主机 H
2
路由器 R1 路由器 R
2
路由器 R3
电话网 局域网主机 H1 向 H2 发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层
R1 R2 R3
H1 H2从层次上来看数据的流动数据链路层的简单模型局域网 广域网主机 H1 主机 H
2
路由器 R1 路由器 R
2
路由器 R3
电话网 局域网主机 H1 向 H2 发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层
R1 R2 R3
H1 H2仅从数据链路层观察帧的流动简化模型数据链路层主机
A
缓存主机
B
数据链路
AP2AP1
缓存发送方 接收方帧高层帧
4.2 三个基本问题帧定界,发送方要让接受方知道所发送的帧是从什么地方开始什么地方结束;
透明传输,传送的比特组合不受限制;
差错检测,判断数据传输的是否正确。
帧定界帧定界 framing:确定帧的界限,发送方在帧的前后加入标记,接收方根据标记识别帧。
IP数据报帧的 数据部分帧首部 帧尾部帧开始 帧结束数据链路层的帧长数据链路层帧的数据部分长度 <链路层协议规定的 MTU
帧的 数据部分SOH EOT
透明传输当传输的数据当中出现用做帧定界的控制字符时,会怎么样?
SOH EOTEOT
数据部分完整的帧被接收方误认为是一个帧被接收方当作无效帧丢弃解决方法:字节插入、比特插入字节插入 byte stuffing
字节插入,将在数据出现的控制字符转换为另一个字符。
SOH EOTESC
完整的帧
EOT SOH
帧开始符帧结束符
SOH EOTESC ESC ESCz y x
经字节插入后发送的数据比特插入数据中某一段比特组合恰好出现和 F 字段一样的情况
0 1 0 0 1 1 1 1 1 1 0 0 0 1 0 1 0
会被误认为是 F 字段发送端在 5 个连 1 之后填入 0 比特再发送出去填入 0 比特
0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0
在接收端将 5 个连 1 之后的 0 比特删除,恢复原样在此位置删除填入的 0 比特
0 1 0 0 1 1 1 1 1 0 1 0 0 0 1 0 1 0
PPP协议在 SONET/SDH链路上同步传输时使用零比特填充法零比特插入 /删除工作过程差错检测奇偶校验( parity check)
循环冗余校验( Cyclic Redundancy
Check,CRC)
奇偶校验( parity check)
奇偶校验码,在发送的数据块后加 1个校验位,使结果中 1的个数为奇数(奇校验)或偶数(偶校验)。
如:数据 1011000
偶校验 校验位为 1 - 10110001
奇检验 校验位为 0 - 10110000
特点:
方法简单,检错能力差用于通信要求较低的环境循环冗余检验在数据链路层传送的帧中,广泛使用了循环冗余检验 CRC 的检错技术 —— 多项式除法检测错误。
假设待传送的数据 M = 1010001101
(共 k bit)。我们在 M的后面再添加供差错检测用的 n bit 冗余码 一起发送。
冗余码的计算用二进制的模 2运算进行 2n 乘 M 的运算,这相当于在 M 后面添加 n 个 0。
得到的 (k + n) bit 的数除以事先选定好的长度为 (n + 1) bit 的数 P,得出商是
Q 而余数是 R,余数 R 比除数 P 至少要少 1 个比特。
冗余码的计算举例设 n = 5,P = 110101,模 2 运算的结果是:商 Q = 1101010110,
余数 R = 01110。
将余数 R 作为 冗余码 添加在数据 M 的后面发送出去,即发送的数据是
101000110101110,或 2nM + R。
1101010110 ← Q 商除数 P → 110101 101000110100000 ← 2nM 被除数
110101
111011
110101
111010
110101
111110
110101
101100
110101
110010
110101
01110 ← R 余数循环冗余检验的原理说明帧检验序列 FCS
在数据后面添加上的冗余码称为 帧检验序列 FCS (Frame Check Sequence)。
循环冗余检验 CRC 和帧检验序列 FCS
并不等同。
CRC 是一种常用的 检错方法,而 FCS 是添加在数据后面的 冗余码 。
FCS 可以用 CRC 这种方法得出,但 CRC
并非用来获得 FCS 的惟一方法。
接收端差错检测接收端收到数据后除以 P,得到的余数应当是 0。 只要得出的余数 R 不为 0,就表示检测到了 差错 。
但这种检测方法并不能确定究竟是哪一个或哪几个比特出现了差错 。
多项式表示:生成多项式 P(x)=X5+X4+X2+1。
常用的生成多项式:
CRC-16=X16+X15+X2+1
CRC-CCITT=X16+X12+X5+1
CRC-
32=X32+X26+X23+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1
CRC例题生成多项式
X16+X15+X13+X12+X10+X9+X8+X7+X2 +1
用 16进制表示为,H?
CRC的生成多项式为 G(x)=X4+X3+X2+1,
接收端收到的码字为 110110011001。试问该码字是否出错?
1B785
解题方法:生成多项式 11101,用 110110011001/11101,如果整除则没有出错,否则出错。结果表明不能整除,出错。
4.3 因特网的点对点协议 PPP
现在全世界使用得最多的数据链路层协议是 点对点协议 PPP (Point-to-Point
Protocol)。
用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。
用户接入 Internet的方法一种是使用拨号电话线接入,另一种是使用专线接入 。
PC机 Modem
PSTN Internet
拨号 电话线接入方法
Modem Pool
使用 TCP/IP
的客户进程路由选择进程
PC机 专线设备
Internet
专线接入方法:如 xDSL,DDN,X.25
专线设备
ISP网络专线用户拨号入网的示意图路由器调制解调器调制解调器因特网服务提供者 (ISP)用户家庭拨号电话线使用 TCP/IP 的
PPP 连接使用 TCP/IP 的客户进程路由选择进程至因特网…
PC 机
4.3.1 PPP 协议特点
1992 年制订了 PPP 协议。经过 1993
年和 1994 年的修订,现在的 PPP 协议已成为因特网的正式标准 [RFC 1661]。
PPP协议有三个组成部分一个将 IP 数据报封装到串行链路的方法。
链路控制协议 LCP (Link Control
Protocol)。
网络控制协议 NCP (Network Control
Protocol)。
PPP不需要的功能纠错 error correction—— PPP是不可靠传输协议流量控制序号多点线路半双工或单工链路
4.3.2 PPP 协议的帧格式
PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。
标志字段 F仍为 0x7E (符号,0x”表示后面的字符是用十六进制表示。十六进制的 7E的二进制表示是 01111110)。
地址字段 A只置为 0xFF。地址字段实际上并不起作用。
控制字段 C通常置为 0x03。
PPP 协议的帧格式
PPP 有一个 2 个字节的协议字段。
当协议字段为 0x0021 时,PPP 帧的信息字段就是
IP 数据报。
若为 0xC021,则信息字段是 PPP 链路控制数据。
若为 0x8021,则表示这是网络控制数据。
IP 数据报
1 21 1字节 1 2不超过 1500 字节
PPP 帧先发送
7E FF 03
F A C FCS F
7E协议 信 息 部 分首部 尾部透明传输问题当 PPP 用在同步传输链路时,协议规定采用硬件来完成比特填充(和 HDLC 的做法一样)。
当 PPP 用在异步传输时,就使用一种特殊的 字符填充法 。
字符填充法将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列 (0x7D,0x5E)。
若信息字段中出现一个 0x7D 的字节,则将其转变成为 2 字节序列 (0x7D,0x5D)。
若信息字段中出现 ASCII 码的控制字符
(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。
例题一个 PPP帧的数据部分是
7D 5E FE 27 7D 5D 7D 5D 65 7D 5E
试问真正的数据是什么?
7E FE 27 7D 7D 65 7E
零比特填充法同步传输时采用零比特填充法使一帧中两个 F 字段之间不会出现 6 个连续 1。
在发送端,当一串比特流数据中有 5 个连续 1 时,就立即填入一个 0。
在接收帧时,先找到 F 字段以确定帧的边界。接着再对比特流进行扫描。每当发现 5 个连续 1 时,就将其后的一个 0
删除,以还原成原来的比特流。
PPP 协议的工作状态当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。
PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。
这些分组及其响应选择一些 PPP 参数,和进行网络层配置,NCP 给新接入的 PC机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。
通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。
PPP 协议的状态图建立失败失败
NCP 配置鉴别成功通信结束载波停止检测到载波双方协商一些选项鉴别网络打开终止静止小结掌握实现帧定界、透明传输的基本方法掌握 CRC检验的算法掌握 PPP协议的特点及其数据帧的具体格式作业,P86 5,6,8