为什么我在 LAN 上(通过交叉!)连接时 TCP 连接延迟很长?

为什么我在 LAN 上(通过交叉!)连接时 TCP 连接延迟很长?

我测量了连接到同一 Cisco 交换机的两台 Linux 计算机从发送 TCP SYN 到获取 SYN/ACK 大约需要 100-150 毫秒的时间。考虑:

  • 机器非常强大,并且它们和交换机的负载都不会很重。
  • 通过分析两台机器上的 tcpdumps 日志,我发现问题不在于端点,而在于网络本身(客户端看到 100-150 毫秒的延迟,但服务器在大约 10 毫秒内处理响应)。
  • 只有 SYN 请求较慢。之后,正常的 TCP 数据包会立即收到 ACK。

所以,我的问题是:

  • 我是不是觉得这太过分了?
  • 我应该瞄准什么样的延迟?
  • 我该怎么做才能进一步诊断和解决这个问题?

编辑- 我们已将交换机从方程式中移除。两台计算机现在通过交叉电缆连接,但我们仍然看到问题。两台计算机都处于全双工、100 MBPS 状态。

答案1

普通嫌疑犯:

  • 双工不匹配

    • 检查开关是否存在碰撞或错误
    • 检查主机是否存在冲突或错误

    如果发现冲突,则表明该端为半双工,应设置为全双工。如果发现错误,请检查另一端是否有冲突。如果两端都有错误,则可能是电缆有问题。

  • DNS 超时
    • 登录到一台主机,使用 nslookup 查找另一台主机的 IP。您应该很快就能得到一个名称或错误

答案2

好吧,糟糕。看来我误读了 tcpdump 和 wireshark 日志。我得到的延迟是 100 微秒,而不是毫秒!

替代文本http://ironicsurrealism.blogivists.com/files/2009/10/homer-simpson-doh.gif

答案3

您检查过电缆了吗?电缆损坏和/或接线不良都会导致重试,从而大大增加延迟。

答案4

这似乎是从美国一侧到另一侧的延迟。交换机是否受管理?您可以连接到交换机并检查问题吗?我预计本地网络上的延迟小于 1-2 毫秒

相关内容