我们有一个运行在Tomcat下的本地networking的Web应用程序。 我们的客户使用此Web应用程序遇到奇怪的问题 假设Tomcat服务器在host1上运行,并在host2上的浏览器中打开webapp URL。
主机2上的任何浏览器开始打开页面并下载内容“挂起”几个小时。 我们做了大量的实验,发现任何大于2000字节的内容都会导致浏览器请求挂起。 尝试在Internet Explorer 8,Opera 12,Firefox。 同时,如果用户从互联网上打开网站,它的工作原理。 从运行Tomcat的同一个host1中打开webapp正常工作。 本地networking是由D-Link DGS-3120-48TC交换机组织的。
附加信息。 在实验过程中,我们注意到在主机上安装了XP Tweaker。 该工具的networking设置:
这可能是简单的PMTU发现在path1的某个地方被破坏,所以你的服务器发送的数据包比能够通过客户主机的数据包大。 尝试减lessMTU到1300,看看是否会有任何帮助。
你要修改MTU的一方并不重要 – 在客户端减less它也应该减lessTCP连接build立时向服务器报告的MSS,所以它将发送较小的数据包。 在服务器端减less它会立即将数据stream分解成更小的段。
如果你看到这种帮助,一定不要在那里停下来,但是修理PMTUD 。
1很有可能是你的责备 – 如果ICMP在你的防火墙configuration中以错误的方式被过滤掉了,那么ICMP碎片所需的消息就不会进入你的服务器的TCP堆栈,从而有效地打破了PMTUD,导致数据包超过了MTU,无法通过MTU小于服务器MTU的路由器。