计算机网络课件 第三章 点对点信道的数据链路层
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ACK1
ACK0
ACK1
ACK0
接收结点: (1) V(R)←0。 (接收状态变量的初始化,值为预 接收数据帧序号) (2) 等待。 (3) 收到一个数据帧; 若 N(S) = V(R),则执行(4); (2) 。 否则丢弃此数据帧,然后转到(6) (4) 将收到的数据帧中的数据部分送交上层软件 (也就是数据链路层模型中的主机)。 (5) V(R)←[1 V(R)]。 (6) n←V(R); 发送确认帧 ACKn,转到(2)。
3.2
三个基本问题
(1) 帧定界 (2) 透明传输
(3) 差错检测
3.2.1
帧定界
帧定界(framing)就是确定帧的界限。
帧开始 帧首部 IP 数据报 帧的数据部分 MTU 帧结束 帧尾部
数据链路层的帧长
从这里开始发送
用控制字符进行帧定界的方法举例
帧开始符
SOH
帧结束符 装在帧中的数据部分
先发送 首部 F A C 7E FF 03 字节 1 1 1
PPP 协议的帧格式
IP 数据报 尾部
协议
2
信
息
部
分
FCS
2
F 7E 1
不超过 1500 字节 PPP 帧
标志字段 F = 0x7E (符号“0x”表示后面的字符 是用十六进制表示。十六进制的 7E 的二进制表 示是 01111110)。 地址字段A规定为0xFF。地址字段实际上并不起作 用。 控制字段C规定为0x03。
透明传输问题
当 PPP 用在异步传输时,就使用一种特殊的 字符填充法。 当 PPP 用在同步传输时,协议规定采用硬件 来完成比特填充。
字符填充
将信息字段中出现的每一个 0x7E 字节转变成为2 字节序列(0x7D, 0x5E)。 若信息字段中出现一个 0x7D 的字节, 则将其转变 成为 2 字节序列(0x7D, 0x5D)。 若信息字段中出现 ASCII 码的控制字符(即数值 小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。
零比特填充
在发送端,只要发现有5个连续1,则立即填入一 个0。接收端对帧中的比特流进行扫描。每当发现 5个连续1时,就把这5个连续1后的一个0删除。
信息字段中出现了和 标志字段 F(7E) 完全一样 的 8 比特组合
01001111110001010
会被误认为是标志字段 F
发送端在 5 个连 1 之后 填入 0 比特再发送出去
3.6
点对点协议 PPP
3.6.1 点对点协议的特点
现在使用得最多的数据链路层协议是点对点协 议 PPP (Point-to-Point Protocol)。 用户使用拨号电话线接入因特网时,一般都是 使用 PPP 协议。
用户到 ISP 的链路使用 PPP 协议
已向因特网管理机构 申请到一批 IP 地址 用 接入网 ISP 至因特网
循环冗余检验
①设f(x)为k阶信息码多项式,G(x)为r阶生成码 多项式;
②发送方用模2除法进行xrf(x)/G(x),得到余式 R(x),R(x)为r阶冗余码多项式;用模2减法进行 xrf(x)-R(x),得到待传送的CRC码多项式。 ③接收方用G(x)除多项式,若余数 R 0,则传输有 错。若得出的余数 R = 0,则判定这个帧没有差错。
A发送编号为1的信息帧:
B发送编号为0的信息帧, 并对A的第1帧进行确认: A发送无序号帧请求断开连接: B发送无序号帧确认断开连接:
0
0 1 1 1 1
1
0 M M
P/F
P/F P/F P/F
0
2 M M
3.8 数据链路层所提供的基本服务
a. 无确认的无连接服务 b. 有确认的无连接服务 c. 有确认的面向连接服务
到接收端发来的确认帧,那么还可以继续发送数
据帧。
连续ARQ协议的工作原理
时间
tf
tout 1 2 3 4 5 2
重传
A
0
DATA
3
4
5
6
B
送主机
出错(丢 弃,等 待超时 重传)
丢弃
送主机
3.5
发送方
选择重传ARQ协议
只重传帧6
帧1 2
3
4
5
6
7
NAK
8
6
9
10
接收方
出错
选择重传ARQ协议的工作原理
思考: 习题3-7(求冗余码)
3.3
停止等待协议
ACKn 表示已 经正确收到 了第n号帧的 前一个帧, 并期待收到 下一帧(第n 号帧)
ACK1
ACK0
正常情况
数据帧出错
确认帧出错
停止等待协议的算法
发送结点: (1) 从主机取一个数据帧,送交发送缓存。 (2) V(S)←0。(发送状态变量的初始化) (3) N(S)←V(S)。(发送序号N(S)) (4) 将发送缓存中的数据帧发送出去。 (5) 设置超时计时器。 (6) 等待。{等待以下(7)和(8) 中最先出现 的一个} (7) 收到确认帧 ACKn, 若 n = 1-V(S),则:从主机取一个新 的数据帧,放入发送缓存;V(S)←[1 V(S)],转到 (3)。 否则,丢弃这个确认帧,转到(6)。 (8) 若超时计时器时间到,则转到(4)。
长度(位) 8
8
8
可变
16
8
标志 F 地址 A 控制 C 数据 Data 帧校验序列 FCS 标志 F
信息帧 监控帧
0 1
N (S ) 0 1 2 3
P/F P/F P/F
N (R ) N (R ) N(R) 6 7 8
S M
4
无序号帧
1
比特序号 1
5
四种监控帧的名称和功能
第3-4比特 RR 0 0 接收准备就绪 RNR 接收未就绪 REJ 帧 名 功 能 准备收下一帧 确认序号为N(R)-1及其以前的各帧 暂停收下一帧 确认序号为N(R)-1及其以前的各帧 从N(R)起的所有帧都被否认
户
PPP 协议
PPP 协议应满足的需求
简单 封装成帧 透明性 多种网络层协议 多种类型链路 差错检测 检测活跃度(即检测连接状态) 最大传送单元(MTU) 网络层地址协商
PPP 协议不需要的功能
纠错 流量控制 序号 多点线路 半双工或单工链路
3.6.2
(1)在发送端,在发送数据之前,都必须将发送状态变 量V(S)的值写到数据帧的发送序号N(S)上。 (2)发送端在发送完数据帧时,必须在其发送缓中暂时 保留这个数据帧的副本。 (3)在接收端只接受序号正确的数据帧,并发送确认。
3.4
要点:
连续ARQ协议
在发送完一个数据帧后,不是停下来等待确认 帧,而是可以连续再发送若干个数据帧。如果收
EOT
帧
发送在前
3.2.2
透明传输
出现了“EOT” 完整的帧 数据部分
SOH EOT EOT
被接收端 误认为是一个帧 发送在前
被接收端当作无效帧而丢弃
用字节填充法解决透明传输的问题
帧开始符
SOH SOH
原始数据
EOT ESC SOH
帧结束符
EOT
字节填充
SOH ESC X
字节填充
ESC y
字节填充
先发送
IP 数据报 首部 F A C 7E FF 03 协议 2 信 息 部 分 尾部 FCS 2 F 7E 1
字节
1
1
1
不超过 1500 字节 PPP 帧
PPP 有一个 2 个字节的协议字段。 当协议字段为 0x0021 时,PPP 帧的信息字 段就是IP 数据报。 若为 0xC021, 则信息字段是 PPP 链路控制 数据。 若为 0x8021,则表示这是网络控制数据。
R1
网络层 链路层
H2 应用层
运输层
网络层 链路层
R2
网络层 链路层
R3
网络层 链路层
运输层
网络层 链路层 物理层
物理层
物理层
物理层
物理层
3.1.2 链路和数据链路
链路(link)即物理链路,是从一个结点到相邻 结点的一段物理线路,中间没有任何其他的交 换结点。 一条链路只是一条路径的一个组成部分。 数据链路(data link)即逻辑链路,除了物理线 路外,还必须有通信协议来控制这些数据的传 输。若把实现这些协议的硬件和软件加到链路 上,就构成了数据链路。
网络
失败 终止 打开
NCP 配置
通信 结束
使用PPP协议的状态图
3.7
HDLC协议
HDLC是一个在同步网上传输数据、面向 位的数据链路层协议,它是由国际标准化组 织(ISO)制定的。 HDLC是面向比特的协议,支持全双工通 信,采用位填充的成帧技术,以滑动窗口协 议进行流量控制。
3.7.1
HDLC帧结构
第三章
点到点信道的数据链路层
本 章 主 要 内 容
数据链路层基本概念
数据链路层协议Biblioteka 3.1 数据链路层的基本概念
3.1.1
主机 H1 电话网 H1 应用层
路由器 R1
数据链路层的简单模型 主机 H1 向 H2 发送数据
路由器 R2
局域网 广域网
路由器 R3 局域网
主机 H2
从层次上来看数据的流动
1
0
0 1
拒绝
SREJ
但确认序号为N(R)-1及其以前的各帧
只否认序号为N(R) 的帧
1
1
选择拒绝
但确认序号为N(R)-1及其以前的各帧
3.7.2 HDLC用于实现面向连接的可靠传输
有确认的面向连接HDLC连接建立、数据传输和连接拆除
A A发送无序号帧请求建立连接: B发送无序号帧确认建立连接: A发送编号为0的信息帧: 0 1 1 1 1 0 M M P/F P/F P/F M M 0 B
例如,已知要传送的信息为1010001101, G(X)=X5+X4+X2+1,计算冗余码的过程和结果如下:
∴传送序列T(x)=101000110101110
注意
仅用循环冗余检验 CRC 差错检测技术只能做到无 差错接受(accept)。无差错接受是指:凡是接受的 帧(即不包括丢弃的帧),我们都能以非常接近于 1 的概率认为这些帧在传输过程中没有产生差错。 也就是说:有差错的帧就丢弃而不接受。 要做到“可靠传输”(即发送什么就收到什么)就 必须再加上确认和重传机制。
010011111010001010
发送端填入 0 比特 010011111010001010 接收端删除填入的 0 比特
在接收端把 5 个连 1 之后的 0 比特删除
思考:
习题3-9、3-10
3.6.3
PPP协议的工作状态
双方协商 一些选项
检测到 载波 静止 载波 停止
建立 失败
鉴别
鉴别成功
ESC z
字节填充
ESC x EOT
发送 在前
经过字节填充后发送的数据
3.2.3
差错检测
奇偶校验
检错 循环冗余校验(CRC)
奇/偶校验
奇/偶校验的规则是在原数据位后附加一个
校验位,将其值置为“0”或“1”,使附加该位
后的整个数据码中“1”的个数成为奇数或偶数。
使用奇数个“1”进行校验的方案被称为奇校验; 对应于偶数个“1”的校验方案被称为偶校验。