首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TCP流量控制错误

TCP流量控制错误
EN

Stack Overflow用户
提问于 2016-09-23 16:05:09
回答 1查看 215关注 0票数 0

我正在尝试实现一个tcp堆栈。以下是我遵循的步骤:

  1. TCP打开: a.客户端以"0“的形式发送初始序列no "C”和Ack no的'SYN‘到服务器。 b.服务器响应SYN + ACK,使用seq no "S“和ack no "C+1”。 客户端发送的ACK+PSH序列为"C+1“和"S+1”。
  2. TCP发送和恢复: a.客户端将使用ACK标志发送数据请求,使用seq no "C+1“和ack no "S+1”发送数据。 发送方将在段中发送带有send "S+1+data“的收件,接收方将发送带有ACK的"S+1+data”,直到FIN或RST被发送为止。

在我的情况下,在数据传输期间,我没有收到几个数据包,但我可以在wireshark上看到它们。

是否有任何机制使用序列号和ack号检查无序数据和数据包丢失,并将数据包取回?

EN

回答 1

Stack Overflow用户

发布于 2016-09-23 16:16:49

如果收到一个序列号高于预期下一个序列的段,则应重新发送最后一个ACK。这会告诉发送方某些段丢失了,并且它应该立即重新发送等待确认的所有段。

更好的解决方案是在2018年RFC中实现选择性确认选项。这将允许您确认已接收到的无序段,而发送方将只重传丢失的部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39665140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档