Linux I';m无法通过HTTP POST请求将XML数据从特定客户端发送到特定服务器。如何调试?

Linux I';m无法通过HTTP POST请求将XML数据从特定客户端发送到特定服务器。如何调试?,linux,networking,Linux,Networking,我正在使用Java程序将一些XML数据从远程客户机发布到我们的服务器上。我已独立检查了整个系统的各个组件,并得出以下结论: 客户端能够成功获取对同一服务器的GET请求的响应。因此,可以排除与名称解析相关的问题。 其他网络中的客户端代码能够将数据发布到我们的服务器。因此,服务器代码工作正常。 尝试将相同的数据从同一客户端发布到不同的服务器成功。此外,其他网络中的系统正在运行相同版本的客户端。因此,客户端代码也可以工作。 我尝试使用以下方法通过CURL发布XML文件: curl --header '

我正在使用Java程序将一些XML数据从远程客户机发布到我们的服务器上。我已独立检查了整个系统的各个组件,并得出以下结论:

  • 客户端能够成功获取对同一服务器的GET请求的响应。因此,可以排除与名称解析相关的问题。
  • 其他网络中的客户端代码能够将数据发布到我们的服务器。因此,服务器代码工作正常。
  • 尝试将相同的数据从同一客户端发布到不同的服务器成功。此外,其他网络中的系统正在运行相同版本的客户端。因此,客户端代码也可以工作。
  • 我尝试使用以下方法通过CURL发布XML文件: curl --header 'content-type: text/xml;charset=UTF-8' --data @5.xml -X POST http://myserver.com/updates curl——标题的内容类型:text/xml;charset=UTF-8'--data@5.xml-X POSThttp://myserver.com/updates 但这也挂断了。因此,我得出结论,问题不在于Java部分,而在于网络本身。
  • 执行netstat-ntavp将显示以下输出:
    Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp6 0 6250 192.168.1.50:32771 www.xxx.yyy.zzz:80 ESTABLISHED 活动Internet连接(服务器和已建立) Proto Recv-Q Send-Q本地地址外部地址状态 tcp6 0 6250 192.168.1.50:32771 www.xxx.yyy.zzz:80已建立 客户端系统长时间保持这种状态,显示发送队列中有几千字节等待。我同时检查了服务器日志,没有等待读取的字节。该状态也显示为已建立,因此我必须得出结论,TCP握手过程进行得很顺利。我被困在这里了。 我可以在哪里查找更多信息以找出导致此问题的原因?客户端和服务器上的操作系统都是Ubuntu 10.04

    更新: 显然,问题并不局限于HTTP帖子。我将请求的XML部分转储到一个文件中,并尝试使用FTP和SCP将其复制到服务器。这两次尝试都失败了。因此,目前的情况是:

  • 客户端能够向其他服务器发送请求和文件。
  • 服务器能够处理来自其他客户端的HTTP请求和文件上载。
  • 文件实际上是从客户端传输到服务器的,但连接似乎没有关闭。
  • 我使用tcpdump捕获了服务器上的数据包,发现来自服务器的某些数据包的校验和不正确。 更新2
    请忽略有关校验和的更新,因为我遇到并验证了客户端确实正在接收具有正确校验和的TCP数据包

    问题通过将MTU设置为1400的值来解决,如对的回答中所建议的

    虽然这两个问题起初看起来不同,但根本原因却是相同的