📜  停止和等待、GoBackN 和选择性重复之间的区别

📅  最后修改于: 2021-09-28 10:49:27             🧑  作者: Mango

可靠的数据传输是计算机网络中的主要问题之一。这个服务部门掌握在TCP的手中。他们的主要流量控制协议——停止和等待、返回 N 和选择性重复。

  1. 停下来等待——
    发送方发送数据包并等待数据包的 ACK(确认)。一旦 ACK 到达发送方,它就会连续发送下一个数据包。如果没有收到 ACK,它会再次重新传输之前的数据包。
  2. 返回 N
    发送方发送 N 个与窗口大小相等的数据包。一旦整个窗口被发送,发送者就会等待一个累积的 ACK 来发送更多的数据包。在接收端,它只接收有序的数据包,丢弃无序的数据包。在数据包丢失的情况下,将重新传输整个窗口。
  3. 选择性重复——
    发送方发送窗口大小为 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 的《计算机网络》