mchling 2022-04-24 17:01 采纳率: 0%
浏览 59

TCP客户端收到三次重复ACK后没有立刻重发丢失的报文,快速重传没有起到作用是什么原因?(协议-tcp/ip|语言-c++|操作系统-linux)

客户端在给服务端发送数据的过程中发现服务端收到的数据时有时无,从客户端网卡上抓包发现,当客户端收到三次重复ACK后,没有立刻重发丢失的报文,而是继续不停的发送新报文,造成服务端也在不停的回复相同的ACK,由于新发送的报文迟迟没得到服务端的ACK确认,导致客户端发送缓存区迅速膨胀,客户端send开始返回-1值,等待了6-10秒后,客户端才重发丢失的报文,感觉客户端快速重传机制没有生效,但不知道问题出在哪。
在客户端网卡上的具体抓包信息如下面两张图所示,第一张图是开始时正常的发和回,第二张图后半段出现丢包,服务端一直回复ack 37431,但是客户端却一直不重发seq 37431段的包,而是继续发新包导致发送缓存区迅速膨胀。

img

img

我用wireshark又抓了一遍,从下图中可以明显看出,地址为31的客户端明明收到了很多[tcp dup ack]包,但是没有触发快速重传,而是到最后超时重传了[tcp retransmission]包

img

  • 写回答

1条回答 默认 最新

  • 7ACE 2022-04-24 17:24
    关注

    文字描述不好分析问题,如果方便,可以单独共享下数据包文件。

    评论

报告相同问题?

问题事件

  • 修改了问题 4月26日
  • 修改了问题 4月25日
  • 创建了问题 4月24日

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题