透明传输¶
来源:
计算机网络 / 数据链路层/透明传输.md
在数据链路层透明传输表示,无论什么比特组合的数据,都可以按照原样没有差错地通过这个数据链路层,换而言之,数据链路层对这些数据来说是透明的
为什么需要透明传输¶
当数据都是文本时,数据部分不会出现帧定界符这样的控制字符,不管从键盘上输入什么样的字符,都可以放在帧中传输过去,这样的传输就是透明传输
数据中出现帧定界符时的问题¶
但是当数据中恰好有和帧定界符二进制相同的数据部分时,数据链路层会错误地找到帧的边界,从而导致部分帧被收下,剩下的部分则不被视为一个完整的帧,而被丢弃

字节填充 / 字符填充解决透明传输问题¶
需要设法使得数据中的控制字符在接收端不被解释为控制字符
办法就是在控制字符前面加一个转义字符ESC,ASCII hex是1B,然后再接收端的数据链路层删掉这个ESC
如果数据中也有ESC,那就再加上一个ESC,当接收端接收到两个连续的ESC时,就会删除其中前面的一个
