ARQ-自动重传请求机制
- 停止请求重传
- 连续请求重转
缘由
在不稳定的信道传输中,需要一个机制保证传输分组的完整性。
停止请求重传
发送方每发送一个分组,都需要等待接受方的响应 ack,直道接受成功,才继续发送下一个分组。
如在规定时间内接受不到 ack, 则重新发送该分组。缺点:如果包往返时间较长,效率低,串行。
连续请求重传
在一个窗口内连续发送一批分组,不必等到全部接受 ack,接到序列顺序最后一个 ack,窗口向前滑动,继续发送在窗口内未发送的分组..
- 窗口的实现实际上是操作系统开辟的一个缓存空间
累计确认: 丢失确定的 ack,没有关系,只要下次受到比上次大的 ack,就说明之前的已经接受到了。
窗口滑动协议: 流量控制问题
发送窗口:
- 已收到确认
- 已发送,未确认 : 发送窗口
- 待发送 : 可用窗口
- 未发送
流量控制
窗口并不是一成不变的,而是根据实际情况进行调整
拥塞控制算法
- 慢启动- 指数
- 拥塞避免- 线性
- 拥塞发生:(超时重传,快速恢复)
超时重传:窗口大小置 1,门阀置原来窗口一半
快速恢复:窗口为原来一半,门阀置原来窗口一半,然后 拥塞窗口 cwnd = ssthresh + 3
- https://www.zhihu.com/question/32255109
- TCP 协议的滑动窗口具体是怎样控制流量的? - 小林 coding 的回答 - 知乎
https://www.zhihu.com/question/32255109/answer/2300299799