Telnet можно использовать для ручного выполнения действий, выполняемых программами автоматически. При подключении к серверу я заметил, что он автоматически выполняет трехстороннее рукопожатие для установления TCP-соединения. Это можно сделать вручную в telnet? Если нет, то какая программа может это сделать?
2 ответа
Если под "вручную" вы подразумеваете «дать команду telnet
на отправку пакетов SYN и ACK», то нет. Это делается операционной системой, которая должна отслеживать все параметры TCP для соединения - порядковые номера, размер окна и т.д.
Для программы было бы возможно использовать необработанные IP-сокеты и управлять уровнем TCP самостоятельно. Но это вообще невероятно бессмысленная вещь - она скопирует много кода из ядра.
Если вы пытаетесь узнать, как работает TCP, попробуйте Scapy. Он может создавать и отправлять пакеты, используя заданные параметры, включая TCP. (Вам, вероятно, придется использовать анализатор пакетов, чтобы следить за такими вещами, как SYN+ACK.)
Книга Стивенса «Иллюстрированный TCP/IP, том 1» объясняет, что происходит при создании и использовании TCP-соединения. Да, это было какое-то время ((c) 1994), но иногда объяснения, которые даются, когда технология является новой, имеют большую глубину, чем что-либо после.
Чтобы увидеть подробности происходящего в сети, вам нужна копия Wireshark (http://www.wireshark.org). Когда вы поймете, как заголовок и сообщение структурированы и упакованы, Wireshark покажет вам структуру, и вы сможете перейти к битовым полям.