组帧

组帧

面向字节的组帧

  • 最早的组帧方法:把每一帧看成一个字节(字符)集
    • 源于终端与大型机的连接

起止标识法

  • 特定字符表示帧的开始与结束
  • 实例:二进制同步通讯协议BISYNC
  • 数据帧的透明传输
    • 任意比特组合的数据都能通过数据链路层
    • 如果数据负载中也包含了特殊字符该如何处理
      • 字符填充法:通过转义符对数据传输中的该特殊符号进行转义

字节计数法

  • 帧中的字节数放在首部的一个字段中
  • 实例:数字数据通信消息协议DDCMP
  • 缺点:若Count出错,可能会产生累计多个错误

面向比特的组帧

  • 特点

    • 不关心字节的边界,它只是把帧看成比特集

    • 比特可能来自某个字符集,如ASCII码,或者可能是一幅图像中的像素值或一个可执行文件的指令和操作数

  • 实例

    • 由IBM开发的同步数据链路控制(SDLC)协议
      • ISO将SDLC标准化为高级数据链路控制协议(HDLC)
    • Beginning Sequence 和Ending Sequence:01111110(标志字段)
    • 在链路空闲时,也发送这个序列,以保证发方、收方的时钟同步
  • 数据帧的透明传输

    • 任意比特组合的数据都能通过数据链路层
    • 问题:01111110可能出现在帧的任何地方
  • 解决办法

    • 发送方:当一串比特流尚未加上标志字段时,先用硬件扫描整个帧(用软件也可实现,但要慢一些),只要发现5个连续的1,则立即填入一个0
    • 接收方:先找到开始点 01111110,然后再定结束点,在接收了连续的5个1之后,就可以根据下一位决定是填充位还是结束到达,下一位为:
      • 0,必为填充的0,丢弃此位;
      • 1,再看下一位:若为0,则为帧结束;若为1,则出错(表示出现连续7个1)