【停止和等待,GoBackN和选择性重复之间的区别】可靠的数据传输是计算机网络中的主要问题之一。该服务部门掌握在TCP协议。主要的流量控制协议-停止和等待, 返回N和选择性重复。
停止并等待–
发送方发送数据包并等待数据包的ACK(确认)。 ACK到达发送方后, 它将发送行中的下一个数据包。如果未收到ACK, 它将再次重新发送前一个数据包。
返回N–
发送方发送等于窗口大小的N个数据包。一旦发送了整个窗口, 发送方便等待累积的ACK发送更多数据包。在接收器端, 它仅接收有序数据包, 并丢弃无序数据包。与丢包的情况一样, 整个窗口将被重新发送。
选择性重复–
发送方发送窗口大小为N的数据包, 而接收方确认所有数据包是否按顺序接收。在这种情况下, 接收方维护一个缓冲区以容纳乱序的数据包并对它们进行排序。发送方有选择地重新传输丢失的数据包并将窗口向前移动。
差异:
属性 | 停止并等待 | 返回N | 选择性重复 |
---|---|---|---|
发件人窗口大小 | 1 | ? | ? |
接收器窗口大小 | 1 | 1 | ? |
最小序号 | 2 | N + 1 | 2N |
效率 | 1 /(1 + 2 * a) | N /(1 + 2 * a) | N /(1 + 2 * a) |
确认类型 | 个人 | 累积的 | 个人 |
接收端支持的订单 | – | 仅按订单交货 | 以及无序交货 |
丢包情况下的重传次数 | 1 | ? | 1 |
- a =传播延迟与传输延迟之比,
- 在N = 1时, 将” 返回N” 有效地减少为” 停止并等待” , / li>
- 当” 返回N” 累积地确认打包时, 它会拒绝乱序的数据包,
- 由于选择性重复支持接收乱序数据包(在接收到数据包后对窗口进行排序), 因此它使用独立确认来确认数据包。
推荐阅读
- 结构化,半结构化和非结构化数据之间的差异
- SQL和NoSQL之间有什么区别(有哪些区别?)
- Spring和Spring Boot之间有什么区别()
- 假脱机和缓冲之间有什么区别()
- C#中SortedList和SortedDictionary之间的区别
- #yyds干货盘点# Centos7安装kvm虚拟机(使用virt-install管理)
- 鸿蒙轻内核源码分析(虚拟文件系统VFS)
- FFHLinux下配置小熊派-鸿蒙·叔设备开发(南向)的开发环境
- 磁盘读写测试--基于dd工具