首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从服务器上消除TCP重传/TCP DUP ACK?

如何从服务器上消除TCP重传/TCP DUP ACK?
EN

Ask Ubuntu用户
提问于 2021-02-18 06:19:58
回答 1查看 1K关注 0票数 2

应用程序

简介

我们有一个应用程序,它从TCP协议(IOT设备)接收数据到我们的Ubuntu服务器。两端发送它的数据互相收到确认,以保持它的通信和接受下一个相应的消息。

问题

我们经常注意到服务器接收重复的数据。只有当IOT设备丢失或中断与服务器的连接时,才会发生这种情况。基本上,如果设备没有从服务器接收到任何信息,它就会不断地重传重复的数据。

我们发现了什么,

我们从服务器上提取了一个tcpdump,并使用Wire软件进行了检查。我们注意到,在设备发送重复数据之前,很少有服务器继续尝试TCP重传/TCP(请参阅附加的黑色高亮显示行)。我们认为这是从设备接收重复数据的原因,因为根据Wire日志,设备没有正确地从服务器接收确认信息。

Queston

  1. 我们是否可以从服务器端消除TCP重传/TCP DUP ACK?我的意思是增加每次传输的等待时间间隔?或者其他的?
  2. 还是这个问题完全取决于设备的连通性?
  3. 还有其他方法来调查这个问题吗?
EN

回答 1

Ask Ubuntu用户

发布于 2022-06-13 00:33:29

我认为您所描述的是TCP通信的完全正常行为,在这种情况下,对方没有足够快的响应。

看看101596和101611包。由于对甲方从乙方发送的1015946 FIN,ACK数据包没有回复,甲方再次发送相同的数据包。这是序列号101611。Wireshark把它看作是一种复制,而实际上是这样的。时差为14:52:01.188-14:52:00.444=744毫秒。

由于在另一个1472 ms中再次没有来自B的响应,侧A再次尝试(第三次)使用分组101634。

然后连接就恢复了。乙方的回复重复,收到甲方延迟的多个数据包等。

TCP连接的一个特性是,当它没有收到响应时,它会一次又一次地重复相同的数据包。经过多次尝试之后,经过长时间超时之后,它可以声明连接不成功,并提前终止它。

  1. 在我看来,没有理由人为地删除重复的数据包。确保连接不中断,另一方及时作出反应。然后复制品就消失了。
  2. 是的,这个问题完全取决于设备的连接。
  3. 作为一种分析方法,您可以使用TCP序列的详细分析和数据包时间的监视。
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1317319

复制
相关文章

相似问题

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