数据通信

数据链路层

2019-03-21 08:00 CST
2019-12-26 10:13 CST

基本概念

  • $d$: 链路长度
  • $v$: 传播速度
  • $L$: 帧长度(比特)
  • $B=RD$: 链路比特长度
  • $B'$: 链路帧长度
性能指标
传输时间(transmission time) 与帧长度有关, $T=\frac{L}{R}$
传播时间(propagation time) 与链路有关,$D=\frac{d}{v}$
处理时延
排队时延 等待被传输的时间

流量控制

  • 确保发送的数据不会超出接收实体接收数据能力的技术
  • Fragmentation:把大块的数据切分成小数据块传输
    • 接收方缓存有限
    • 重传大小小
    • 避免一个站点长时间占用媒体传输

停止等待流量控制 Stop and Wait

  • (S)Send Data $\rightarrow$ (R)Receive Data & Send ACK $\rightarrow$ (S)Receive ACK & Send Data'
  • $T_F=D+T+D+t_{ack}+t_{proc}=2D+T$
  • $a=\frac{D}{T}=\frac{B}{L}$
  • $U=\frac{T}{T_F}=\frac{1}{1+2a}$

滑动窗口流量控制

参数
滑窗字段大小 $k$
帧编号 $0\sim2^{k}-1$
窗口大小 $W\leq 2^{k}-1$
帧类型
F$_n$ 数据帧,当窗口用完后停止发送
RR$_n$ 已接受到$n-1$的帧,准备接受$n$(双方更新窗口)
RNR$_n$ 已接受到$n-1$的帧,停止接受
捎带 双工时F$_n$捎带确认信息

$$U=\begin{cases} \frac{W}{2B'+1} & W<2B'+1\
1 & W\geq2B'+1 \end{cases}$$

差错控制

  • ARQ 自动重传请求:将不可靠数据链路变为可靠数据链路
    • 差错检测
    • 肯定确认
    • 超时重传
    • 否认重传
  • $N_r$: the expected number of transmission of a frame

Stop-and-Wait ARQ

  • 帧损伤:(R) Detect and Drop $\rightarrow$ (S) 超时重传
  • 确认损伤:(S) 超时重传 $\rightarrow$ (R) ACK0/ACK1 确认
  • $U=\frac{T}{N_rT_F}=\frac{1-P}{1+2B'}$
  • $N_r=\frac{1}{1-P}$

Go-Back-N ARQ

参数
滑窗字段大小 $k$
帧编号 $0\sim2^{k}-1$
窗口大小 $W\leq 2^{k}-1$
发送方缓存大小 $W$
接受方窗口大小 1
  • 帧损伤:(R) Detect, Drop all Data after i and Send REJi $\rightarrow$ (S) Resend all Data after i
  • RR损伤:超时重传
  • $N_r=\sum_{i=1}^{\infty}f(i)P^{i-1}(1-P)$
    • Each error generates a requirement to retransmit K frames rather than just one frame
    • $f(i)=1+(i-1)K$
    • $N_r=\frac{1-P+KP}{1-P}$
      • $K=2a+1,W\geq(2B'+1)$
      • $K=W,W<(2B'+1)$

$$U=\begin{cases} \frac{W(1-P)}{(2B'+1)(1-P+WP)} & W<2B'+1\
\frac{1-P}{1+2B'P} & W\geq2B'+1 \end{cases}$$

Selective Reject ARQ

参数
滑窗字段大小 $k$
帧编号 $0\sim2^{k}-1$
窗口大小 $W\leq 2^{k-1}$
发送方缓存大小 $W$
接受方窗口大小 $W$

$$U=\begin{cases} \frac{W(1-P)}{2B'+1} & W<2B'+1\
1-P & W\geq2B'+1 \end{cases}$$

ISO 3009, ISO 4335

  • 站点类型
    • 主站 – 负责链路控制操(命令)
    • 从站 – 在主站的控制下操作(响应)
    • 混合站 – 结合了主站和从站的特点
  • 链路设置
    • 非平衡设置:1主多从
    • 平衡设置:2个混合站
  • HDLC数据传送方式
    • NRM 正常响应方式
      • 非平衡设置:Command$\leftrightarrow$Response
    • ABM 异步平衡方式
      • 平衡设置:Command/Response$\leftrightarrow$Command/Response
      • 使用最广泛
    • ARM 异步响应方式
  • 特点
    • 同步传输
    • 传输以帧的形式进行
    • 一个帧格式满足所有数据和控制信息

HDLC 帧结构

Flag Address Control Information FCS Flag
8 8 8/16 variable 16/32 8
  • Flag
    • 01111110 在帧的两端起定界作用
    • 比特填充:帧中每出现五个1后插入附加0
      • 避免帧中间出现01111110导致误判
    • 判断
      • 接收端收到连续五个1
      • if 6th bit is 0, deleted
      • if 6th bit is 1 and 7th bit is 0, accepted as flag
      • if 6th 7th bits are 1, error
  • Address
    • 标识别传输或准备接收这个帧的从站
    • 长度可以扩展
    • 11111111 用于广播
  • Control
    • 开头的1-2比特指明帧类型
      • I-frame
      • S-frame
      • U-frame
    • use of Poll/Final (P/F) bit depends on context
  • FCS (Frame Check Sequence Field)
    • 一般采用16 bit CRC或32 bit CRC

运行方式

  • 初始化:通过6个置位方式命令之一请求初始化
  • 数据传送
  • 拆链:发送一个拆链帧(DISC)宣布连接终止