Программа Socket для демонстрации связи на канальном уровне в сети без использования IP-адреса - PullRequest
2 голосов
/ 07 сентября 2011

Как все мы знаем, что внутри сети связь осуществляется по MAC-адресу, а не по IP-адресу. Поэтому я всегда думал, что можем ли мы написать программу с сокетами в парадигме сервер-клиент, которая использует для связи только MAC-адрес, но не IP-адрес, то есть структура sock_in должна быть оставлена ​​незаполненной, а внутри локальной сети они должны иметь возможность общаться .

1 Ответ

4 голосов
/ 07 сентября 2011

Необработанные сокеты, как указано в примере выше (Карл), могут дать вам доступ к заголовку L3.Однако обратите внимание, что в более современных Windows (XP SP3, Vista и 7) необработанные сокеты сильно ограничены уровнем сокетов, что затрудняет отправку произвольных данных по вашему выбору.

Вы также можетеиспользуйте специальные библиотеки, которые обеспечивают гораздо более сырой доступ к адаптеру Ethernet. WinPcap (для Windows) или libpcap (для Linux) позволит вам манипулировать всеми пакетными данными, включая заголовок Ethernet, и действительно отправлять любой другой протокол L2, который вы пожелаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...