Я занимаюсь базовым сетевым программированием с использованием c/C++. То, что я пытаюсь сделать, это создать пакеты с заголовками, заполненными моими собственными значениями (вместо ядра), отправить пакет на какой-то сервер и получить ответ. Я смог создать структуры заголовков tcp/ip и заполнить поля, такие как seq_num и т. Д. В качестве примера я отправил SYN-пакет хосту на каком-то порту и проверил, отвечает ли хост действительным SYN_ACK.Заполнение IP-адреса источника в сыром сокете, чтобы получить действительный ответ
Мне интересно, что нужно поместить в поле source_address и source_port в заголовке ip/tcp, чтобы получить действительный ответ. Использование локального адреса (127.0.0.1) не будет работать правильно, так как целевая машина не сможет отправить ответ.
Я должен использовать только raw_sockets, не могу использовать SOCK_STREAM и т. Д. Используя ОС Linux.
Я думаю, вы отправите IP-адрес сетевого интерфейса, который вы слушаете. IP должен быть действительным с точки зрения удаленного сайта. – usr