计算机网络笔记:Data Link Layer

date
Jun 23, 2021
slug
computer-networks-data-link-layer
status
Published
summary
Sittin' here in silence on my own
type
Post
tags
ComputerScience
  • 基本作用:将网络层下发的数据包封装成帧数据,发送给下一跳地址。
  • 主要功能
    • 帧同步
    • 差错控制
    • 流量控制
    • 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)

    If you have any questions, please contact me.