【问题标题】:How to disable fragmentation: Tomcat8 SSL return 2 reassembled SSL segments如何禁用碎片:Tomcat8 SSL 返回 2 个重新组装的 SSL 段
【发布时间】:2016-03-20 21:16:00
【问题描述】:

我们在 Tomcat8 上运行了一个应用程序,在 https 获取响应中,有 2 个重新组装的 SSL 段。

有什么方法可以关闭它并发送一个 TCP 数据包? enter image description here

【问题讨论】:

    标签: java tomcat ssl https segment


    【解决方案1】:

    恐怕答案是“可能不是”,但我们首先要确定您的网络是否在做正确的事情。响应中的最大分段大小受您的客户端在 TCP 握手中发送的 MSS(最大分段大小)值的限制。

    由于您可以看到正在进行的重组,我假设您已经安装了 Wireshark 或 tcpdump。查看您的客户端在对话开始时发送的SYN 数据包。找到 TCP 选项并在其中找到 MSS 值。大多数以太网硬件的正常值是 1460 字节。

    增加 MSS 的一种方法是启用 jumbo frames(如果您的本地网络硬件支持)。

    另请注意,在复杂环境中,“智能”路由器和防火墙能够拦截和修改(即减少)MSS 值以应对其自身的限制。在像这样的环境中,你真的必须在连接的两端都有wireshark才能看到整个画面。

    【讨论】:

    • 感谢您的 cmets,我现在修复它。而对于 MSS,我的数据包大小约为 2700 字节,而 MSS 为 1460 字节,为什么在 Wireshark 中我看不到它分为两部分?对于 2 个重新组装的 SSL 段,它们处于 TLS 级别。
    【解决方案2】:

    在Tomcat6中,只有一个数据包,大小约为2700字节。 而在 Tomcat8 中,它是 2 个重组的 SSL 段。一个是 290 包含标题,另一个是左边带有 xml 正文。

    通过将端口更改为“org.apache.coyote.http11.Http11Nio2Protocol”,它运行良好。我也试过“org.apache.coyote.http11.Http11Nio1Protocol”,它会发送两个包,对于“org.apache.coyote.http11.Http11Protocol”,它只会发送一个包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-25
      • 2018-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多