[计算机网络](十四) 停止-等待协议

143 阅读1分钟

一. Why need 停止-等待协议 ?

除了比特出差错,底层信道还会出现丢包问题。丢包: 物理线路故障、设备故障、病毒攻击、路由信息、错误等原因,会导致数据包的丢失!!!

传输的数据(包)在不同层的叫法不同:

  • 链路层 ---
  • 网络层 --- IP数据报分组
  • 传输层 --- 报文段

二. 研究停止-等待协议的前提

1395.png

三. 停止-等待协议的两种应用情况

1》无差错情况:

1396.png

即不会出现差错,发送一个数据帧就停止并等待,等到确认后再发送下一个数据帧。因此用 1 bit来编号就够!!!

2》有差错情况:

(1) 数据丢失或检测到帧出错

1397.png

  • 发完一个帧后,必须要保留它的副本!!!
  • 数据帧和确认帧必须进行编号
  • 发送端发完一个数据帧后,就会开启一个计时器,如果没有在规定时间内收到确认帧,就会重新再发一遍数据帧!!!

(2) 确认帧 ACK 丢失:

1398.png

  • 如果迟迟没有收到确认帧,会再发一遍,而接收方收到新的后,会把之前收到的的丢弃,重新确认该帧!!!

(3) 确认帧 ACK 迟到:

1399.png

  • 发送方收到迟到的确认帧后立马丢弃!!!

3》停止-等待协议性能分析:

简单!!!但效率太低!!!

1400.png

1401.png

四. 总结

1402.png