3.1.2三个基本问题 ■ 数据链路层协议有许多种,但有三个基本问题 则是共同的。这三个基本问题是: 1.封装成帧 2.透明传输 3.差错控制
3.1.2 三个基本问题 ◼ 数据链路层协议有许多种,但有三个基本问题 则是共同的。这三个基本问题是: 1. 封装成帧 2. 透明传输 3. 差错控制
1.封装成帧 ■ 封装成帧(framing)就是在一段数据的前后分别添加首 部和尾部,然后就构成了一个帧。确定帧的界限。 ■首部和尾部的一个重要作用就是进行帧定界。 帧开始 IP数据报 帧结束 发送 帧首部 帧的数据部分 帧尾部 ≤MTU 数据链路层的帧长 从这里开始发送 用帧首部和帧尾部封装成帧
1. 封装成帧 ◼ 封装成帧 (framing) 就是在一段数据的前后分别添加首 部和尾部,然后就构成了一个帧。确定帧的界限。 ◼ 首部和尾部的一个重要作用就是进行帧定界。 课件制作人:谢希仁 帧结束 帧首部 IP 数据报 帧的数据部分 帧尾部 MTU 数据链路层的帧长 从这里开始发送 帧开始 发送 用帧首部和帧尾部封装成帧
用控制字符进行帧定界的方法举例线 ■ 当数据是由可打印的ASC码组成的文本文件时,帧 定界可以使用特殊的帧定界符。 ■ 控制字符SOH(Start Of Header)放在一帧的最前面, 表示帧的首部开始。另一个控制字符EOT(End Of Transmission)表示帧的结束。 帧开始符 帧结束符 SOH 装在帧中的数据部分 EO 帧 发送在前 用控制字符进行帧定界的方法举例
用控制字符进行帧定界的方法举例 ◼ 当数据是由可打印的 ASCII 码组成的文本文件时,帧 定界可以使用特殊的帧定界符。 ◼ 控制字符 SOH (Start Of Header) 放在一帧的最前面, 表示帧的首部开始。另一个控制字符 EOT (End Of Transmission) 表示帧的结束。 SOH 装在帧中的数据部分 帧 帧开始符 帧结束符 发送在前 EOT 用控制字符进行帧定界的方法举例
2. 透明传输 如果数据中的某个字节的二进制代码恰好和SOH或 EOT一样,数据链路层就会错误地“找到帧的边界” 出现了“EOT” 完整的帧 发送 数据部分 在前 SOH EOT EOT 被接收端 被接收端当作无效帧而丢弃 误认为是一个帧 数据部分恰好出现与EOT一样的代码
2. 透明传输 ◼ 如果数据中的某个字节的二进制代码恰好和 SOH 或 EOT 一样,数据链路层就会错误地“找到帧的边界” 。 SOH EOT 出现了“EOT” 被接收端 被接收端当作无效帧而丢弃 误认为是一个帧 数据部分 EOT 完整的帧 发送 在前 数据部分恰好出现与 EOT 一样的代码
解决透明传输问题 ■ 解决方法:字节填充(byte stuffing)或字符填充 (character stuffing). ■发送端的数据链路层在数据中出现控制字符“SOH'或 “E0T”的前面插入一个转义字符“ESC”(其十六进制 编码是1B)。 ■接收端的数据链路层在将数据送往网络层之前删除插 入的转义字符。 如果转义字符也出现在数据当中,那么应在转义字符 前面插入一个转义字符ESC。当接收端收到连续的两 个转义字符时,就删除其中前面的一个
解决透明传输问题 ◼ 解决方法:字节填充 (byte stuffing) 或字符填充 (character stuffing)。 ◼ 发送端的数据链路层在数据中出现控制字符“SOH”或 “EOT”的前面插入一个转义字符“ESC” (其十六进制 编码是 1B)。 ◼ 接收端的数据链路层在将数据送往网络层之前删除插 入的转义字符。 ◼ 如果转义字符也出现在数据当中,那么应在转义字符 前面插入一个转义字符 ESC。当接收端收到连续的两 个转义字符时,就删除其中前面的一个