跳转至

透明传输

来源:计算机网络 / 数据链路层/透明传输.md

在数据链路层透明传输表示,无论什么比特组合的数据,都可以按照原样没有差错地通过这个数据链路层,换而言之,数据链路层对这些数据来说是透明的

为什么需要透明传输

当数据都是文本时,数据部分不会出现帧定界符这样的控制字符,不管从键盘上输入什么样的字符,都可以放在帧中传输过去,这样的传输就是透明传输

数据中出现帧定界符时的问题

但是当数据中恰好有和帧定界符二进制相同的数据部分时,数据链路层会错误地找到帧的边界,从而导致部分帧被收下,剩下的部分则不被视为一个完整的帧,而被丢弃 image.png

字节填充 / 字符填充解决透明传输问题

需要设法使得数据中的控制字符在接收端不被解释为控制字符

办法就是在控制字符前面加一个转义字符ESC,ASCII hex是1B,然后再接收端的数据链路层删掉这个ESC

如果数据中也有ESC,那就再加上一个ESC,当接收端接收到两个连续的ESC时,就会删除其中前面的一个 image.png

相关笔记