为什么是可靠的?
确定接收方能收到发送方要发送的数据。
怎么确定的?
只要接收方没收到某些数据,发送方就会重新发送,这里就利用了ARQ协议
ARQ协议
Automatic Repeat reQuest:自动重传请求
一个文件可能很大,因此就需要将大文件分成多个数据段,分批进行发送,这个分段的操作是在传输层做的。
发送方在发送完一段数据后就会停止等到,直到收到接收方收到数据的确认才会重新发送下一段数据。
如果长时间没有收到接收方收到数据的确认,发送方就会继续发送之前发送过的数据,这就是超时重传。
![](https://img.haomeiwen.com/i1154538/7fcd5b4465e6602a.jpg)
序号、确认号
序号:发送数据的开始序号
确认号:希望发送方下次发送数据的开始序号
连续ARQ协议+滑动窗口协议
一次性发送一段数据,等到接收方确认之后再发送下一段数据,这种方式效率比较低,为了提高效率,可以一次发送多段数据。由此,出现了连续ARQ和滑动窗口。
连续ARQ就是连续发送多段数据。
发送方和接收方各自维护了一个滑动窗口,滑动窗口的大小是由接收方确定的,限制了发送方连续发送数据的最大量。
![](https://img.haomeiwen.com/i1154538/d83e0b14eb442f15.jpg)
![](https://img.haomeiwen.com/i1154538/8a8773eb8d28e0ee.jpg)
SACK(Selective Acknowledgment:选择性确认)
有时接收方只收到了部分数据,这时需要发送方重新发送那些遗漏的数据,这时就出现了SACK机制,发送方只重传遗漏的数据。
网友评论