TCP 在交互式会话中挂断

TCP 在交互式会话中挂断

我所在机构的内部网络出现了问题。我坐在 A 前面,试图连接到另一个城市的服务器 B。

我的 ssh 会话经常挂断,尤其是当我有大量屏幕输出或在 $PAGER 中翻页或在 GNU screen 中更改窗口时。在 ssh 会话中,X11 转发太慢而无法使用。

我的 vrdp 会话(使用 VBoxHeadless)也经常挂断,通常是当我在远程客户操作系统内拖动窗口时发生。

我尝试使用 tcpdump 来找出原因,并注意到在挂断之前,来自 A 的许多带有 PSH 标志的数据包被发送,过了一会儿,来自 B 的许多 ACK 数据包被同时发送。

从 A 到 B ping 延迟为 40ms,traceroute 给出 4 跳。wget 给出的吞吐量平均约为 50Mbps,但速度非常不稳定。沿途所有三台路由器都装有 Cisco IOS 12.X(使用 nmap 识别)。

问题似乎出在哪里?我该如何进一步调查此类问题?任何提示或想法都值得赞赏。

答案1

可能是 mtu(最大传输单元)问题。如果突然出现大量流量,连接会因为一个数据包太大而挂起。如果路径 mtu 发现不起作用,则可能会发生这种情况。尤其是对于 DSL 连接,因为 pppoe 的开销会降低 mtu。通常,人们会在 DSL 链路上使用 MSS 限制来缓解此问题。

您可以使用 ping 测试 mtu:使用 ping -s host 向远程主机发送 ping。从大小 100 开始,逐百增加到 1500(正常以太网 mtu)

嗨嗨。

答案2

我同意,我们不得不多次调整 MTU 大小来纠正同样的问题。800 对于 DSL 连接来说是一个合适的大小。

戴夫

相关内容