По разным причинам я пытаюсь создать и отправить необработанные TCP-пакеты на удаленный хост (например, google.com) с необработанными сокетами. Я пытаюсь использовать pcap, так что необработанный код сокета может быть перенесен в Windows в какой-то момент.
Выглядит довольно просто ...
1. сетевой заголовок
2. заголовок ip
3. заголовок tcp
4. сегмент (необязательно)
2,3,4 просты. № 1 - проблема, потому что я не знаю, что использовать для MAC-адреса назначения google.com. Из того, что я могу сказать, ARP бесполезно сообщать мне, что MAC, потому что я должен быть подключен к маршрутизатору Google, чтобы он работал. Загвоздка.
Итак, это заставляет меня задать этот вопрос:
Должен ли я использовать MAC-адрес моего маршрутизатора в качестве MAC-адреса назначения в заголовке Ethernet при отправке на хост, не находящийся в локальной сети? И когда пакет пересылается, каждый маршрутизатор, с которым он сталкивается, вырывает этот заголовок Ethernet и заменяет его соответствующими MAC-адресами источника / назначения, чтобы он попадал на Google.com? Это единственное, что звучит разумно.
Примечание: я думаю это была мотивация, но вопрос так и не был решен:
как определить MAC-адрес назначения