Chapter4数据链路层 ■4.1数据链路层的基本概念与功能 ■4.2差错检测与校正 ■4.3基本数据链路协议 ■4.4滑动窗口(S1 ide Windows)协议 ■4.5面向位的协议HDLC ■4.6面向字节的数据链路层协议-PPP 1
1 Chapter 4 数据链路层 ◼ 4.1数据链路层的基本概念与功能 ◼ 4.2差错检测与校正 ◼ 4.3基本数据链路协议 ◼ 4.4滑动窗口(Slide Windows)协议 ◼ 4.5面向位的协议HDLC ◼ 4.6面向字节的数据链路层协议-PPP
Chapter4数据链路层 ■4.1数据链路层的基本概念与功能 ■4.2差错检测与校正 ■4.3基本数据链路协议 ■4.4滑动窗口(S1 ide Windows)协议 ■4.5面向位的协议HDLC ■4.6面向字节的数据链路层协议-PPP 2
2 Chapter 4 数据链路层 ◼ 4.1数据链路层的基本概念与功能 ◼ 4.2差错检测与校正 ◼ 4.3基本数据链路协议 ◼ 4.4滑动窗口(Slide Windows)协议 ◼ 4.5面向位的协议HDLC ◼ 4.6面向字节的数据链路层协议-PPP
4.1数据链路层的基本概念 链路(1ik):是连接相邻节点的通信信道,中间没有任何其他的交换节点。 点对点链路:链路的两端都只有一个节点,一个节点发送,另一个节点接收,带 宽独占。 点对多点链路(广播链路,共享链路):链路上有多个节点,带宽共享,需要媒 体访问控制(MAC)机制来控制多个用户对信道的访问。 通信方式:单工通信、半双工通信和全双工通信 。单工通信:是指消息只能单方向传输的工作方式。 半双工通信:是指数据可以沿两个方向传送,但同一时刻一个信道只允许单方向 传送双工。 全双工(Full Duplex)是指在通信的任意时刻,两个节点间可以同时双向传输信 号。TDD(Time Division Duplex,时分双工)是移动通信中上下行在同一频段上按 照时间分配交叉进行传输,FDD(Frequency Division Duplex,频分双工)是指上 下行在不同频段同时进行传输。 除了物理线路外,还必须有通信协议来控制数据的传输。这些用软件或硬件 实现的协议构成了网络的数据链路层。 。现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。 3 一般的适配器都包括了数据链路层和物理层这两层的功能
3 4.1数据链路层的基本概念 ◼ 链路(link):是连接相邻节点的通信信道,中间没有任何其他的交换节点。 ◼ 点对点链路:链路的两端都只有一个节点,一个节点发送,另一个节点接收,带 宽独占。 ◼ 点对多点链路(广播链路,共享链路):链路上有多个节点,带宽共享,需要媒 体访问控制(MAC)机制来控制多个用户对信道的访问。 ◼ 通信方式:单工通信、半双工通信和全双工通信 ◼ 单工通信:是指消息只能单方向传输的工作方式。 ◼ 半双工通信:是指数据可以沿两个方向传送,但同一时刻一个信道只允许单方向 传送双工。 ◼ 全双工(Full Duplex)是指在通信的任意时刻,两个节点间可以同时双向传输信 号。TDD(Time Division Duplex,时分双工)是移动通信中上下行在同一频段上按 照时间分配交叉进行传输,FDD(Frequency Division Duplex,频分双工)是指上 下行在不同频段同时进行传输。 ◼ 除了物理线路外,还必须有通信协议来控制数据的传输。这些用软件或硬件 实现的协议构成了网络的数据链路层。 ◼ 现在最常用的方法是使用适配器(即网卡)来实现这些协议的硬件和软件。 ◼ 一般的适配器都包括了数据链路层和物理层这两层的功能
发送方 接收方 主机A AP1 AP2 主机B 高层 缓存四 帧 帧 缓存 数据链路层 数据链路 在两个对等的数据链路层之间画出一个数字管道, 而在这条数字管道上传输的数据单位是帧。 节点 0110010100 0011100101 节点 数据链路层 4
◼ 在两个对等的数据链路层之间画出一个数字管道, 而在这条数字管道上传输的数据单位是帧。 4 数据链路层 主 机 A 缓存 主 机 B 数据链路 AP1 AP2 缓存 发送方 接收方 帧 高层 帧 节点 0110010100 0011100101 节点 数据链路层
数据链路层的功能 向网络层提供良好的服务接口 ■将物理层的比特流编成帧 ■差错控制 ■流量控制 5
数据链路层的功能 ◼ 向网络层提供良好的服务接口 ◼ 将物理层的比特流编成帧 ◼ 差错控制 ◼ 流量控制 5
4.1.1为网络层提供服务 无确认、无连接的服务 源端可以不需要建立连接就向目的端发送独立的数据帧, 而目的端也不需要对收到的帧进行确认。 有确认、无连接的服务 ·源端可以不需要建立连接就向目的端发送独立的数据帧, 但目的端需要对收到的帧进行确认。 面向连接的服务 ·源端与目的端在通信前要先建立连接,然后在此连接上 互相传输数据帧,每一个帧都被编号,数据链路层保证 传送的帧被对方收到,且只收到一次,双方通信完毕后 拆除连接。 6
6 4.1.1为网络层提供服务 ◼ 无确认、无连接的服务 ◼ 源端可以不需要建立连接就向目的端发送独立的数据帧, 而目的端也不需要对收到的帧进行确认。 ◼ 有确认、无连接的服务 ◼ 源端可以不需要建立连接就向目的端发送独立的数据帧, 但目的端需要对收到的帧进行确认。 ◼ 面向连接的服务 ◼ 源端与目的端在通信前要先建立连接,然后在此连接上 互相传输数据帧,每一个帧都被编号,数据链路层保证 传送的帧被对方收到,且只收到一次,双方通信完毕后 拆除连接
三种服务的对比(无差错传输时) 无连接无确认 无连接有确认 面向连接 A B A B A 连接请求 B DATA DATA 连接响应 DATA DATA 逐跳确认 DATA DATA DATA DATA DATA 端到端数据确认 数据确认 间 DATA
三种服务的对比(无差错传输时) A B A B 时 间 无连接无确认 无连接有确认 A B 面向连接 连接请求 连接响应 数据确认 端到端数据确认 逐跳确认
识别或表示一个帧的起 始和结尾 4.1.2成帧(framing) 1.字符计数 ■每一个帧的头上描述帧的长度 512345678980123457 第一帧 第二帧 第三帧 缺点:帧头出错不光影响本数据帧,还影响后续的帧。 8
8 4.1.2成帧(framing) ◼ 1.字符计数 ◼ 每一个帧的头上描述帧的长度 识别或表示一个帧的起 始和结尾 5 1 2 3 4 5 6 7 8 9 8 0 1 2 3 4 5 7 第一帧 第二帧 第三帧 缺点:帧头出错不光影响本数据帧,还影响后续的帧
识别或表示一个帧的起 始和结尾 4.1.2成帧(framing) 2.字符填充的标志字节法 ■在帧的起始和结尾用特殊的字符标志 例如:用ASCII字符DLE STX表示帧的起始,DLE ETX表示结尾。 在发送端检查数据中是否有DLE字样,如果有的话,就 在它前面插入DLE,到接收端的链路层再将两个或两个 以上的DLE,去掉一个DLE还原。 9
9 4.1.2成帧(framing) ◼ 2.字符填充的标志字节法 ◼ 在帧的起始和结尾用特殊的字符标志 例如:用ASCII字符DLE STX表示帧的起始,DLE ETX表示结尾。 识别或表示一个帧的起 始和结尾 在发送端检查数据中是否有DLE字样,如果有的话,就 在它前面插入DLE,到接收端的链路层再将两个或两个 以上的DLE,去掉一个DLE还原
DLE STX A DLE B DLE ETX (a) DLE STX A DLE DLE B DLE ETX (b) Stuffed DLE DLE STX A DLE B DLE ETX (c) 10
10