最大传输单元

最大传输单元

我在服务器 A 中有 300 GB 的大文件。我在家尝试复制这些文件,但速度都scp非常rsync慢(80 KB/s 或更少)。

我还可以访问另一台服务器 B。我可以以20 MB/s 的速度scp将所有文件从服务器 A 复制到服务器 B。rsync

最后,我可以以20 MB/s 的速度scp将文件从服务器 B 复制到我家。rsync

有人可以帮助我理解为什么会发生这种情况(如果我可以解决它)。我是一个 Linux/网络新手,所以我很感谢任何在正确方向上的帮助。

概括:

A ->      Home  (super slow)

A -> B -> Home  (a lot faster) 

答案1

最大传输单元

路径 MTU 发现你和 之间似乎没有合作A

好的解决方案是解决这个问题,并且该网站上肯定有答案解释了如何做到这一点。

作为一个简单的解决方法,您可以在A(更重要的)和家庭系统上的路由表中设置相应目标 IP 的 MTU。

为了不浪费带宽,您应该确定该路径的最大可靠 MTU。通过跑步来做到这一点

ping -s 1472 A

数字较低。尤其是1464有很好的机会。

简短版本:一些(大多数)IP 数据包太大,因此被丢弃。您必须强制A(也许您的家庭系统也是如此,但无论如何,该方向的数据包可能足够小)发送较小的数据包。

路由表

您的路由表(在两个系统上)如下所示:

root@vm:~# ip r
default via 192.168.213.3 dev bridgeport 
192.168.213.0/24 dev bridgeport proto kernel scope link src 192.168.213.122 

用这个命令

ip route add 10.9.8.0/24 via 192.168.213.3 mtu 1480

您可以添加主机或子网的条目。您也可以使用该条目的默认网关。

您使用的设置mtu是 1500 减去 1472 和您找到的值的差值(假设为 1464):

  • 1472-1464=8
  • A-homeMTU = 1500-8 = 1492
  • ip route add ... mtu 1492
root@vm:~# ip r
default via 192.168.213.3 dev bridgeport 
10.9.8.0/24 via 192.168.213.3 dev bridgeport mtu 1480 
192.168.213.0/24 dev bridgeport proto kernel scope link src 192.168.213.122 

这不是永久设置。重新启动或(可能)网络重新加载后它将消失。ping添加此路由后再次测试。

相关内容