Java - java.net中的TCP三方握手?

时间:2014-03-20 23:42:43

标签: java sockets tcp

简介

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

我查看了可用的软件,但我没有设法找到任何可以模拟TCP三方握手的东西。

然后我找到 Java套接字。我看了很多教程,但我发现它们很不清楚。此外,它们似乎有一个高级视图,这不允许我操纵SYN,SYN-ACK,ACK序列。

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

实际问题:

  • 有人可以告诉我 java.net 中哪些类/方法处理为TCP三方握手发送SYN,SYN-ACK和ACK消息?

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

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

以上三种中的任何一种都足以让我到达我想要的地方。任何帮助都将非常感谢!我研究的时间越长,在干草堆中寻找谜语的感觉就越多。

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:-1)

  

有人可以告诉我java.net中哪些类/方法处理为TCP三方握手发送SYN,SYN-ACK和ACK消息?

他们都不是。

  

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

Java教程的自定义网络跟踪,但它没有处理TCP的各个方面,例如Java没有实现的握手。

  

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

纯Java中没有任何内容。