Q: 组帧的四种方法是什么?
A: 1、字符计数法。
2、字符(节)填充法。
3、零比特填充法。
4、违规编码法。
2.2.2 字符计数法
Q: 字符计数法如何实现组帧?
A: 字符计数法在帧首部使用一个计数字段来标明帧内字符数,接收方根据该字段确定帧的结束位置。

读取第一个字节我们即可知道发送的一个帧字节的总长度,例如下面第一个是 5,那么表示这一个帧为 5 个字节,一直到 4 为止;第 3 帧中第一个字节是 8,那么表明这个帧是包含 8 个字节,一直到 6 结束。
Q: 字符计数法的缺点是什么?
A: 计数字段容易受传输错误的影响,一旦计数字段出错,会导致后续帧解析错误。
2.2.3 字符填充法
Q: 字符填充法如何实现透明传输?
A: 字符填充法在数据部分中出现与帧定界符相同的字符前插入转义字符,接收方遇到转义字符时,将其删除,并将后面的字符视为数据。

2.2.4 零比特填充法
Q: 零比特填充法如何实现透明传输?
A: 零比特填充法在数据部分中出现连续 5 个 1 时,在后面添加一个 0,接收方收到连续 5 个 1 时,删除后面的 0。

2.2.5 违规编码法
Q: 违规编码法如何实现透明传输?
A: 违规编码法使用特殊的比特编码来表示帧的起始和终止,例如在曼彻斯特编码中使用高-高或低-低电平表示帧定界符。
ieee802.1 就采用了这种编码方式。
2.2.6 四种方法的小结
Q: 目前比较常用的帧同步方法有哪些?
A: 目前比较常用的帧同步方法是比特填充和违规编码法。
因为字符计数法中计数字段的脆弱性和字节填充法实现上的复杂性与不兼容性,
对于字节计数法中 Count 字段的脆弱性(一旦第一个值有差错,那么就会影响后面所有的读取)。
字符填充实现上比较复杂和而不具备兼容性。