如何手动进行 TCP 握手

ton*_*sid 4 networking telnet internet connection tcp

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

use*_*686 9

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

有可能为一个程序使用原始IP套接字,并全部由自己管理的TCP层。但这通常是一件非常无意义的事情——它会从内核复制大量代码。

如果您想了解 TCP 的工作原理,请尝试Scapy。它可以使用给定的参数(包括 TCP)创建和发送数据包。(不过,您可能必须使用数据包嗅探器来观察诸如 SYN+ACK 之类的事情。)