-1

在客户端,sftp 应用程序向 ssh 服务器端口 22 发送一些数据包。

SFTP 应用程序向 TCP 发送数据包,从以太网捕获我们可以看到 sftp 数据包从应用程序发送到 TCP 和 TCP 发送到数据包到服务器,但 TCP 没有从服务器收到 TCP ACK,所以 TCP 在几秒钟后再次发送数据包但仍然没有响应从服务器..

似乎服务器没有收到来自客户端的数据包。

客户端 SFTP 连接在选择中等待 TCP recv,超时时间为 120 秒,在 120 秒后应用程序从选择中获得超时并关闭 SFTP 操作并出现超时错误。

在捕获中,我可以看到 TCP 多次重新传输数据包,但无法接收服务器 TCP ACK。

场景: 1. 超时仅在某个时候发生。2. 在这个问题之后,下一个 SFTP opration[upload] 在同一台服务器上成功。3. 看来网络没有问题,因为下一次上传工作正常。4.客户端和服务器都有SOLARIS OS 5.我们无法在我们的实验室环境中重现此问题 6.此问题仅在真实客户网络中发生。7. Appln是C语言的。SSH 服务器是 Open SSH 服务器。

我想知道: 1.我们如何找到TCP没有recv ACK repply form Server的原因。2. solaris 中的任何 TCP 系统设置是否会导致此问题。3. 请提供任何信息,以便我们解决此问题。

4

1 回答 1

1

我假设您的拓扑如下所示:

           10.25.190.12               10.10.10.10
           [e1000g0]                  [eth0]
SFTP_Client--------------Network------------OpenSSH_Server

您需要做两件事:

  1. 确定您的客户端和服务器之间是否经常出现重大数据包丢失。TCP 可以容忍一些丢包,但是如果你开始丢包很多(这真的很难量化),它会在某些情况下放弃。我建议两种检测数据包丢失的方法……第一种是mtr,第二种是pingmtr更可取,因为您可以获得每跳的丢失统计信息(见下文)。mtr 10.10.10.10从客户端运行并mtr 10.25.190.12从服务器。有时,丢包是路径相关的,所以当你真的想确定它的来源时,从两边都做是很有用的。如果您发现数据包丢失,请先与您的网络管理员一起修复它;否则你就是在浪费时间。在修复丢包的过程中,您可能也会修复这个 TCP ACK 问题。

  2. 如果没有明显的数据包丢失,您需要同时嗅探连接的两端snooptshark(您可以tsharkSunFreeware获得),直到您再次看到问题。当您发现这种缺少 TCP ACK 的情况时,请确定:A) OpenSSH_Server 是否发送了 ACK,以及 B) SFTP_Client 是否收到了它。如果客户端在其以太网接口上收到 ACK,那么您可能需要开始在您的软件中寻找线索。您应该将您的嗅探限制为客户端和服务器的 IP 地址。以我的经验,这种问题是可能的,但不是常见问题;90+% 的时间,这只是网络丢包。

示例输出mtr

mpenning@mpenning-T61:~$ mtr -n 4.2.2.4
HOST: mpenning-T61              Loss%   Snt   Last   Avg  Best  Wrst StDev
  1. 10.239.84.1                0.0%    407    8.8   9.1   7.7  11.0   1.0
  2. 66.68.3.223                0.0%    407   11.5   9.2   7.1  11.5   1.3
  3. 66.68.0.8                  0.0%    407   19.9  16.7  11.2  21.4   3.5
  4. 72.179.205.58              0.0%    407   18.5  23.7  18.5  28.9   4.0
  5. 66.109.6.108               5.2%    407   16.6  17.3  15.5  20.7   1.5 <----
  6. 66.109.6.181               4.8%    407   18.2  19.1  16.8  23.6   2.3
  7. 4.59.32.21                 6.3%    407   20.5  26.1  19.5  68.2  14.9
  8. 4.69.145.195               6.4%    406   21.4  27.6  19.8  79.1  18.1
  9. 4.2.2.4                    6.8%    406   22.3  23.3  19.4  32.1   3.7
于 2011-12-08T09:27:35.853 回答