问题:
客户端A,客户端B分别连接 pptp server ,客户端A通过ssh登录客户端B,vim 打开文件卡死。
猜想:
网络mtu大过了中间的网络mtu值。分别在server client执行[code]netstat -i[/code]可以看到ppp0默认的mtu值都在300左右。
原理:
MTU:Maximum Transmission Unit 网络上传送的最大数据包,单位字节,默认一般是1500。
大于mtu的包,在系统层会被拆成多个来发。
各层级的网络路由设备,会协商大家的mtu,选择一个最小的。
协商mtu的时候要发送ICMP包,很多厂商的防火墙会关闭它的传输(防ddos等)。真凶在此。
在无法实现协商mtu的时候,各种事件都会影响mtu的确定,实际表现为在传大文件的时候,寻找mtu的过程中,数据包丢了。原理在此。
解决方案:
解决下载慢:
[quote]
server: /etc/ppp/options.pptpd 最后一行添加 mtu 1500
[/quote]
解决上传慢的问题:
[quote]
client: ifconfig ppp0 mtu 1500
[/quote]