
1) 【一句话结论】在航天测控无线链路中,链路层可靠性通过CRC错误检测、ARQ(自动重传请求,如滑动窗口重传)结合滑动窗口流量控制实现,链路中断后通过序列号标记未确认数据并从重传队列恢复,确保数据完整、有序且不丢失。
2) 【原理/概念讲解】
老师:首先讲错误检测,链路层常用CRC(循环冗余校验),通过预设生成多项式计算校验码附加在数据帧后,接收端验证校验码是否正确,若错误则丢弃帧。可以类比“给包裹贴标签”,标签是校验码,接收端核对标签是否匹配,若标签错误说明包裹内容出错。
接着讲重传策略,核心是ARQ(自动重传请求),分为两种:
然后讲流量控制,用滑动窗口协议,接收端根据自身缓冲区大小控制发送端发送速率,避免发送端发送过快导致接收端缓冲区溢出(拥塞)。比如接收端缓冲区能存N帧,发送端最多发送N帧,接收端确认后窗口滑动,继续发送。
最后讲链路中断后的数据恢复,发送端维护重传队列,记录所有未确认的帧序列号,链路中断后重新建立连接时,按序列号顺序从队列中重传未确认数据,确保数据不丢失且顺序正确。
3) 【对比与适用场景】
| 策略类型 | 定义 | 特性 | 使用场景 | 注意点 |
|---|---|---|---|---|
| 停止等待ARQ | 发送一帧后等待ACK,超时重传 | 单帧传输,ACK确认 | 链路质量差、数据量小 | 效率低,链路利用率低 |
| 连续ARQ(滑动窗口) | 连续发送多帧,按序确认 | 多帧传输,窗口控制速率 | 数据量大、链路质量较好 | 需序列号,处理复杂 |
| 滑动窗口流量控制 | 接收端缓冲区控制发送速率 | 动态调整发送速率 | 链路带宽有限、接收端处理能力有限 | 需同步窗口大小,避免拥塞 |
4) 【示例】(伪代码,停止等待ARQ)
while (有数据):
发送帧(data, seq_num) # 附加序列号和CRC校验码
等待ACK(seq_num) # 接收端确认
if (超时): # 超时未收到ACK
重传帧(data, seq_num)
while (有数据):
接收帧(f) # 接收数据帧
if (CRC校验正确): # 校验正确
if (seq_num == 期望序列号): # 序列号匹配
上层处理数据
发送ACK(seq_num) # 确认
期望序列号 = (期望序列号 + 1) % 2
else:
发送NACK(seq_num) # 序列号不匹配
else:
丢弃帧
5) 【面试口播版答案】
在航天测控无线链路中,链路层可靠性设计需解决错误检测、重传和流量控制。首先,错误检测用CRC校验,接收端验证数据完整性,错误则丢弃;重传策略采用ARQ(如滑动窗口连续重传),提高效率;流量控制用滑动窗口,接收端根据缓冲区大小控制发送速率,避免拥塞。链路中断后,发送端维护重传队列,记录未确认的帧序列号,中断恢复后按序列号重传未确认数据,确保数据不丢失且顺序正确。具体来说,发送端发送帧时附加序列号和CRC校验码,接收端验证后按序确认,未确认的帧在发送窗口内等待,接收端通过滑动窗口控制发送速率,中断后通过序列号和重传队列恢复数据。
6) 【追问清单】
7) 【常见坑/雷区】