基本概念
- $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\newline
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\newline
\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\newline
1-P & W\geq2B’+1
\end{cases}
$$
HDLC(High Level Data Link Control)
ISO 3009, ISO 4335
- 站点类型
- 主站 – 负责链路控制操(命令)
- 从站 – 在主站的控制下操作(响应)
- 混合站 – 结合了主站和从站的特点
- 链路设置
- 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
- 判断
- 接收端收到连续五个 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 比特指明帧类型
- use of Poll/Final (P/F) bit depends on context
- FCS (Frame Check Sequence Field)
- 一般采用 16 bit CRC 或 32 bit CRC
运行方式
- 初始化:通过 6 个置位方式命令之一请求初始化
- 数据传送
- 拆链:发送一个拆链帧(DISC)宣布连接终止