1.封装成帧 封装成帧 raming就是在一段数据的前后分别 添加首部和尾部,然后就构成了一个帧。确定 帧的界限。 首部和尾部的一个重要作用就是进行帧定界 帧开始 P数据报 帧结束 开始 发送帧首部 帧的数据部分 帧尾部 MTU 数据链路层的帧长
1. 封装成帧 ◼ 封装成帧(framing)就是在一段数据的前后分别 添加首部和尾部,然后就构成了一个帧。确定 帧的界限。 ◼ 首部和尾部的一个重要作用就是进行帧定界。 帧结束 帧首部 IP 数据报 帧的数据部分 帧尾部 MTU 数据链路层的帧长 开始 发送 帧开始 12
用控制字符进行帧定界的方法举例 帧开始符 帧结束符 SOH 装在帧中的数据部分 EOT 帧 发送在前 13
用控制字符进行帧定界的方法举例 SOH 装在帧中的数据部分 帧 帧开始符 帧结束符 发送在前 EOT 13
2.透明传输 出现了“EOT 完整的帧 发送 数据部分 在前 SOH EOT EOT 被接收端 被接收端当作无效帧而丢弃 误认为是一个帧
2. 透明传输 SOH EOT 出现了“EOT” 被接收端 被接收端当作无效帧而丢弃 误认为是一个帧 数据部分 EOT 完整的帧 发送 在前 14
解决透明传输问题 ■发送端的数据链路层在数据中出现控制字符 “SOH"或“EOT"的前面插入一个转义字符 “ESC"(其十六进制编码是1B)。 字节填充( yte stuffing)或字符填充( character stuffing)—接收端的数据链路层在将数据送往网 络层之前删除插入的转义字符 ■如果转义字符也出现数据当中,那么应在转义字 符前面插入一个转义字符。当接收端收到连续的 两个转义字符时,就删除其中前面的一个。 15
解决透明传输问题 ◼ 发送端的数据链路层在数据中出现控制字符 “SOH”或“EOT”的前面插入一个转义字符 “ESC”(其十六进制编码是 1B)。 ◼ 字节填充(byte stuffing)或字符填充(character stuffing)——接收端的数据链路层在将数据送往网 络层之前删除插入的转义字符。 ◼ 如果转义字符也出现数据当中,那么应在转义字 符前面插入一个转义字符。当接收端收到连续的 两个转义字符时,就删除其中前面的一个。 15
用字节填充法解决透明传输的问题 帧开始符 帧结束符 原始数据 SOH EOT SOH ESC SOH EOT 字节填充字节填充 字节填充 字节填充 ESCIEOT ESCISOH ESCIESC ESCISOH EOTI 经过字节填充后发送的数据 发送 在前 16
SOH SOH EOT ESC SOH ESC EOT ESC SOH ESC ESC ESC SOH 原始数据 EOT EOT 经过字节填充后发送的数据 字节填充 字节填充 字节填充 字节填充 发送 在前 帧开始符 帧结束符 用字节填充法解决透明传输的问题 SOH 16