可靠的数据传输是计算机网络中的主要问题之一。这个服务部门掌握在TCP的手中。他们的主要流量控制协议——停止和等待、返回 N 和选择性重复。
- 停下来等待——
发送方发送数据包并等待数据包的 ACK(确认)。一旦 ACK 到达发送方,它就会连续发送下一个数据包。如果没有收到 ACK,它会再次重新传输之前的数据包。 - 返回 N –
发送方发送 N 个与窗口大小相等的数据包。一旦整个窗口被发送,发送者就会等待一个累积的 ACK 来发送更多的数据包。在接收端,它只接收有序的数据包,丢弃无序的数据包。在数据包丢失的情况下,将重新传输整个窗口。 - 选择性重复——
发送方发送窗口大小为 N 的数据包,接收方确认所有数据包是否按顺序接收。在这种情况下,接收方维护一个缓冲区来包含乱序的数据包并对它们进行排序。发送方有选择地重新传输丢失的数据包并将窗口向前移动。
区别:
Properties | Stop and Wait | Go Back N | Selective Repeat |
---|---|---|---|
Sender window size | 1 | N | N |
Receiver Window size | 1 | 1 | N |
Minimum Sequence number | 2 | N+1 | 2N |
Efficiency | 1/(1+2*a) | N/(1+2*a) | N/(1+2*a) |
Type of Acknowledgement | Individual | Cumulative | Individual |
Supported order at Receiving end | – | In-order delivery only | Out-of-order delivery as well |
Number of retransmissions in case of packet drop | 1 | N | 1 |
在哪里,
- a = 传播延迟和传输延迟的比率,
- 在 N=1 时,Go Back N 有效地减少为停止等待,/li>
- 由于 Go Back N 累积确认打包,它拒绝无序数据包,
- 由于 Selective Repeat 支持接收无序数据包(它在收到数据包后对窗口进行排序),因此它使用独立确认来确认数据包。
参考 –
书 – Tanenbaum 的《计算机网络》