Linux TCP 堆栈不将数据转发到我的应用程序

Linux TCP 堆栈不将数据转发到我的应用程序

我正在使用curl 发送HTTP 请求,但curl 应用程序未收到响应。我尝试使用 tcpdump 对其进行调试,发现远程服务器正在响应数据(发现 HTTP 302),但我的curl 应用程序未从 Linux tcp 堆栈获取该数据。

我的卷曲请求是:curl -v --max-redirs 10 http://8.8.8.8:85 -L

About to connect() to 8.8.8.8 port 85 (#0)
 Trying 8.8.8.8... connected
 Connected to 8.8.8.8 (8.8.8.8) port 85 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.16.2.3 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
> Host: 8.8.8.8:85
> Accept: */*
>

它挂在这里,等待来自服务器的数据

我已将跟踪文件复制到聚碳酸酯文件

请让我知道数据包中是否有问题,或者调试 TCP 堆栈以了解为什么会丢弃数据的方法,尽管它在wireshark wrt 校验和和其他参数中看起来不错。

答案1

通过仔细对比痕迹发现了问题。中间有一个有故障的代理服务器,它与数据长度和确认号不正确匹配。

谢谢

相关内容