计算机网络笔记:Data Link Layer
date
slug
status
summary
type
tags
  • 基本作用:将网络层下发的数据包封装成帧数据,发送给下一跳地址。
  • 主要功能
    • 帧同步
    • 差错控制
    • 流量控制
    • Multiplexing
    • 安全性管理

协议栈

  • 子层:
    • 逻辑链路层
    • MAC

帧同步

Framing

  • 帧内容:ASCII传输,HEX值≤20的内容不会被打印。
  • 帧边界:
    • STX(start of text)=0x02
    • ETX(end of text)=0x03
  • 其他控制字符:
    • DLE(data link escape)=0x10
    • notion image
  • PPP协议的帧结构
    • 和HDLC相同的结构,但是使用byte stuffing
    • flags一致

Stuffing

Byte-stuffing (e.g. PPP)
  • 0x7E → flag
  • 0x7D → ctrl escape
  • 如果帧内部出现 flag 或 ctrl escape,那么把对应位置的字节替换成 0x7D + 原始octet XOR 0x20。
Bit-stuffing (e.g.HDLC)
  • 发送:帧内部每出现5个连续的1就插入一个0。最后在两头加上完整的0x7E as flag。
  • 接收:检查所有连续5个1的位置
    • 下一个bit是0,则移除
    • 下两个bit是10,说明是flag
    • 下两个bit是11,说明出错了

差错控制

  • DL层的帧都是按顺序到达的,但是可能损坏或丢失。这是这一层的差错控制的基础。
  • error checking & retransmission

Automatic Repeat Request(ARQ)

  • 保证一个信息序列按顺序抵达,无差错、无重复、无丢失。
Stop-and-Wait ARQ
  • 发送方收到当前帧的ACK以后才发送下一帧。适用于恶劣网络情况。
  • 可能有两种情况:
      1. 帧丢失。timeout没有ACK,那么重新发送即可。
      1. ACK丢失。对于sender还是timeout自动重发。注意在header里要加入帧编号,这样receiver知道自己收了两次。ACK的header也要加入帧编号。
  • 序号只需要0和1(1-bit ),但是必须有
  • 无差错传输效率:
    • 有差错传输效率:
      • 主要关注BDP的部分
      Go-Back-N ARQ
      • 保持信道占满,更加高效。
      • sender和receiver各自维护一个数据帧序列,称为窗口。发送方的窗口大小由接收方确定,防止overflow。
      • 传输过程
        • 如果最旧一帧的ACK在window用完之前回来了,那么继续下一帧的传输
        • 如果window用完了,回到最早几帧重新开始传输(或者也用timeout机制)
      • Window大小
        • Sender有窗口大小,Receiver就是1
      • 无差错传输效率:
        • 有差错传输效率:
          Selective-and-Repeat ARQ
          • 在没有收到 ACK 的情况下只返回那一帧
          • sender 和 receiver 各自维护一个窗口,ACK 到达的时候 sender 窗口前移;帧正确收到的时候 receiver 窗口前移。
          • 必须满足。否则假定 sender 没收到所有 ACK,那么还在发送,此时 receiver 窗口已经滑到了,如果 太大,已经滑到下一组编号 0 的位置了,就会误接受旧的 为新的。
          • 无差错传输效率:
            • 有差错传输效率:
                @HW3
                @HW3
                 

                Multiplexing

                • Delay
                  • Delay @Slide Chap.3 Prof. XD Wang
                    Delay @Slide Chap.3 Prof. XD Wang

                常用协议

                Point-to-Point Protocol(PPP)

                • 帧格式
                  • 名称
                    字节数
                    描述
                    标记
                    1
                    标记出帧的头或尾
                    地址
                    1
                    广播地址
                    控制
                    1
                    控制字
                    协议
                    2
                    数据报文中所使用的协议
                    信息
                    不定长(0或更多)
                    数据报文
                    冗余填充
                    不定长(0或更多)
                    可选的冗余填充
                    帧校验序列 (FCS)
                    2(或4)
                    错误校验
                • 支持很多协议:LCP, NCP, IP, OSI CLNP, IPX...

                High-Level Data Link Control (HDLC)


                © Enoch2090 2018-2024