组帧
组帧
面向字节的组帧
- 最早的组帧方法:把每一帧看成一个字节(字符)集
- 源于终端与大型机的连接
起止标识法
- 特定字符表示帧的开始与结束
- 实例:二进制同步通讯协议BISYNC
- 数据帧的透明传输
- 任意比特组合的数据都能通过数据链路层
- 如果数据负载中也包含了特殊字符该如何处理
- 字符填充法:通过转义符对数据传输中的该特殊符号进行转义
字节计数法
- 帧中的字节数放在首部的一个字段中
- 实例:数字数据通信消息协议DDCMP
- 缺点:若Count出错,可能会产生累计多个错误
面向比特的组帧
特点
不关心字节的边界,它只是把帧看成比特集
比特可能来自某个字符集,如ASCII码,或者可能是一幅图像中的像素值或一个可执行文件的指令和操作数
实例
- 由IBM开发的同步数据链路控制(SDLC)协议
- ISO将SDLC标准化为高级数据链路控制协议(HDLC)
- Beginning Sequence 和Ending Sequence:01111110(标志字段)
- 在链路空闲时,也发送这个序列,以保证发方、收方的时钟同步
- 由IBM开发的同步数据链路控制(SDLC)协议
数据帧的透明传输
- 任意比特组合的数据都能通过数据链路层
- 问题:01111110可能出现在帧的任何地方
解决办法
- 发送方:当一串比特流尚未加上标志字段时,先用硬件扫描整个帧(用软件也可实现,但要慢一些),只要发现5个连续的1,则立即填入一个0
- 接收方:先找到开始点
01111110,然后再定结束点,在接收了连续的5个1之后,就可以根据下一位决定是填充位还是结束到达,下一位为:
- 0,必为填充的0,丢弃此位;
- 1,再看下一位:若为0,则为帧结束;若为1,则出错(表示出现连续7个1)