文章目录
- 数据链路层功能概述
- 封装成帧
- 透明传输
- 组帧方法
- 字符计数法
- 字符填充法
- 零比特填充法
- 违规编码法
- 字符填充法为啥复杂和不兼容
数据链路层功能概述
类似老板让小秘书送文件给别的公司,小秘书告诉傻子怎么把该文件送到别的公司的小秘书,然后别的公司的小秘书再把该文件给她的老板
‘
封装成帧
MTU:与当前协议有关
接收方区分帧的起始和终止是通过帧首部和帧尾部的帧定界符
透明传输
类似小秘书传文件时不会在意文件的内容是啥
组帧方法
字符计数法
一个帧的计数字段错误会使得后面的帧也出错
字符填充法
首尾一个字节为起始和终止
ascll码与帧的起始字节和终止字节不会有交集
但如果是非ascll码可能会识别错误
字节填充法是防止数据中出现与帧分界符相同的比特组合的技术
字节填充(填充转义字符,告诉不用管后面的字节是是啥都当作数据)
接收时会将收到的转义字符都删掉
零比特填充法
在发送端,硬件会扫描整个帧,当检测到连续5个1的比特序列时,会自动在该序列后插入一个0。这样做的目的是为了防止数据中出现与帧分界符(例如,在HDLC协议中通常使用01111110作为帧分界符)相同的比特组合,从而避免接收端错误地识别帧边界。
违规编码法
字符填充法为啥复杂和不兼容
- 实现机制复杂:如果数据中自然出现了与填充字符相同的序列,字符填充法需要有一种机制来区分这是数据本身还是填充字符,这增加了实现的复杂性。
- 兼容性问题:由于字符填充法需要特定的处理逻辑,这可能导致在不同系统或协议之间的兼容性问题。如果一个系统使用了字符填充法,而另一个系统没有相应的解码能力,那么数据传输就会出现问题。