【问题标题】:Java Socket - Sending SSL Segments - How to suppress?Java Socket - 发送 SSL 段 - 如何抑制?
【发布时间】:2012-08-21 15:02:45
【问题描述】:

我想通过java.net.Socket 发送消息。

消息是:001C020000C0154C000404850D9583CC00000004560B00E42080004C

对于我的应用程序,我需要通过 TCP packet 发送此消息。

但是检查 Wireshark 发生的事情是,我可以看到,它将消息分为 两个重新组合的 SSL 段:

  1. 00
  2. 1C020000C0154C000404850D9583CC00000004560B00E42080004C

如何抑制这种行为?

我的代码是:

OutputStream os = m_sslsocket.getOutputStream();
os.flush();
write(hex2Byte("001C020000C0154C000404850D9583CC00000004560B00E42080004C");
os.flush();

其中hex2Byte 将十六进制字符串转换为字节数组。

编辑: 谢谢你们的cmets。

无论如何,我通过 WireShark 观察时的协议栈如下所示:

如您所见,有两个 SSL 段,其中一个是 00 另一个有其余的。 如何抑制它,只有一个片段?

以上是我写入输出流的结果。

(不要担心红色。那只是因为 IP 校验和卸载到网络设备。)

【问题讨论】:

  • “TCP 数据包”和“SSL 段”是什么意思?您的问题并没有真正的意义,因为 TCP 是面向流的而不是面向数据包的。即使您的 TCP 流被分割成多个 IP 数据包,这对接收端也绝对没有影响。

标签: java sockets ssl segment


【解决方案1】:

对于我的应用程序,我需要通过一个 TCP 数据包发送此消息。

运气不好,不管有没有 SSL,TCP 都不能可靠地做到这一点。调整你的期望。这是一个字节流协议。

【讨论】:

  • 由于某种原因,这在 Winx64 上不起作用。这似乎是一个硬件问题。它适用于 winx86。
  • @Byron-LimTimothySteffan 所以你很幸运。不要指望它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-04
  • 2016-10-25
  • 2021-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多