如何手动进行 TCP 握手

如何手动进行 TCP 握手

Telnet 可用于手动执行程序自动执行的操作。当我连接到服务器时,我注意到它会自动进行三次握手以建立 TCP 连接。可以在 telnet 中手动完成吗?如果不行,那么什么程序可以做到这一点?

答案1

如果“手动”是指“指示telnet发送 SYN 和 ACK 数据包”,则不是。这是由操作系统完成的,它需要跟踪连接的所有 TCP 参数 - 序列号、窗口大小等。

程序可以使用原始 IP 套接字并自行管理 TCP 层。但这通常是一件毫无意义的事情——它会复制很多来自内核的代码。

如果你想了解 TCP 的工作原理,请尝试斯卡皮。它可以使用给定的参数(包括 TCP)创建和发送数据包。(不过,您可能必须使用数据包嗅探器来监视诸如 SYN+ACK 之类的东西。)

答案2

Stevens 所著的《TCP/IP 图解,第 1 卷》一书解释了创建和使用 TCP 连接的过程。是的,这本书问世已有一段时间了 ( (c) 1994 ),但有时,当一项技术刚刚问世时,给出的解释比后来的任何解释都更深入。

要查看网络上正在发生的事情的详细信息,请复制 Wireshark (http://www.wireshark.org) 就是您所需要的。当您了解标头和消息的结构和打包方式时,wireshark 会向您显示结构,您可以深入到位字段。

相关内容