Open menghoumenghou opened 3 years ago
我部署了一套Kcptun系统,连接如下: PC--Linux 网关上部署的Kcptun client--远程Linux服务器上部署的Kcptun serer--远程Linux服务器上部署的Squid proxy--目标网站 测试发现不管我怎么调节参数,PC在通过以上部署模式向最终的web服务器上传文件,当文件超过一定大小时(1M),上传一定失败. 在PC上抓包可以看到Linux 网关上部署的Kcptun向PC发送了窗口降低为0的数据包,但是不久之后又增大了窗口,继续发送,但是抓包上看来回这样几次,上传就失败了,在Kcptun client上查看未发现明显的关于失败原因的日志.
曾经以为是MTU的问题,因为PC和Linux网关之间MTU是1500, 而Kcptun client和server之间的MTU是1440, 所以猜测是不是fragment太多,造成失败? 于是通过iptables 将kcptun client监听的tcp端口的mss修改为1400,甚至1300,但是问题仍然存在.
如果将kcptun client直接部署在PC上,则上传文件没有问题.
请各位帮忙看看这会是哪里的问题? 谢谢.
抓了一下PC和Linux网关上Kcptun client之间的TCP通信,可以看到连接一开始的Windows size就特别小,后面流控时降为0, 然后越来越小,直到只有159,然后可以看到是PC发出了RST消息. PC 102, GW 1 Kcptun Client listen on 10801.zip
@xtaci 烦请帮忙看看这个可能会是什么原因,抓包文件请见附件.
我部署了一套Kcptun系统,连接如下: PC--Linux 网关上部署的Kcptun client--远程Linux服务器上部署的Kcptun serer--远程Linux服务器上部署的Squid proxy--目标网站 测试发现不管我怎么调节参数,PC在通过以上部署模式向最终的web服务器上传文件,当文件超过一定大小时(1M),上传一定失败. 在PC上抓包可以看到Linux 网关上部署的Kcptun向PC发送了窗口降低为0的数据包,但是不久之后又增大了窗口,继续发送,但是抓包上看来回这样几次,上传就失败了,在Kcptun client上查看未发现明显的关于失败原因的日志.
曾经以为是MTU的问题,因为PC和Linux网关之间MTU是1500, 而Kcptun client和server之间的MTU是1440, 所以猜测是不是fragment太多,造成失败? 于是通过iptables 将kcptun client监听的tcp端口的mss修改为1400,甚至1300,但是问题仍然存在.
如果将kcptun client直接部署在PC上,则上传文件没有问题.
请各位帮忙看看这会是哪里的问题? 谢谢.