【问题标题】:Java - TCP Three Way Handshake in java.net?Java - java.net 中的 TCP 三向握手?
【发布时间】:2014-03-20 23:42:42
【问题描述】:

简介:

作为我大学研究的一部分,我必须找出在滥用 TCP 三向握手 时占用了多少物理内存。更准确地说:当客户端没有回复 ACK 时,服务器就会挂起为它们保留的内存。

我浏览了可用的软件,但没有找到任何可以让我模拟 TCP 三向握手的软件。

然后我找到了Java Sockets。我浏览了许多教程,但我发现它们非常不清楚。而且,他们似乎有一个高级视图,不允许我操纵 SYN、SYN-ACK、ACK 序列。

因此,我使用反编译工具进入了实际的 java.net。我查看了各种类,但找不到对正在发送的实际 SYN 消息的任何引用。有些方法听起来像是他们做的事情,但我只能找到方法调用及其接口定义。找不到实际的方法代码!

实际问题:

  • 谁能告诉我 java.net 中的哪些类/方法处理发送 TCP 三向握手的 SYN、SYN-ACK 和 ACK 消息?

  • 如果有人知道关于 Java Sockets 的任何好的教程,请在此处参考?我发现的那些让我很困惑(其中一些是由 Oracle 制造的!)。

  • 如果有人知道任何允许模拟 TCP 三向握手的程序,请在此处参考。

以上三个中的任何一个都可能足以让我到达我想要的地方。任何帮助将不胜感激!我研究的时间越长,就越感觉像是在大海捞针。

【问题讨论】:

    标签: java sockets tcp


    【解决方案1】:

    Java 不实现 TCP/IP。 Java 调用操作系统来完成它。因此,您要阅读的代码在操作系统内核中,而不是在任何地方的 Java 中。你可以考虑阅读linux内核源码。

    【讨论】:

      【解决方案2】:

      谁能告诉我 java.net 中的哪些类/方法处理 TCP 三向握手发送 SYN、SYN-ACK 和 ACK 消息?

      没有。

      如果有人知道有关 Java Sockets 的任何好的教程,请在此处参考?我发现的那些让我很困惑(其中一些是由 Oracle 制造的!)。

      Java 教程的自定义网络跟踪,但它不涉及 TCP 的方面,例如 Java 未实现的握手。

      如果有人知道任何允许模拟 TCP 三向握手的程序,请在此处参考。

      在纯 Java 中没有。

      【讨论】:

      • 哦,我不需要纯 Java 的。在这种情况下,我对纯代码感兴趣,只是因为我找不到可以为我做这件事的软件。所以我想自己写一个。如果有任何软件可以用来模拟你知道的违反握手,请注意。
      • @downvoter 我很想知道为什么这个答案被否决了。请解释一下。
      • @Mossey 您可以使用一些 JNI 或众多 JPcap 实现之一自己编写。
      猜你喜欢
      • 2017-07-08
      • 2012-04-04
      • 1970-01-01
      • 1970-01-01
      • 2014-04-06
      • 1970-01-01
      • 2020-09-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多