Это довольно большая проблема для решения.Даже до «сырых сокетов» будет довольно много работы.
Во-первых, с современным BIOS ваша сетевая карта обычно не настраивается по умолчанию, поэтому вам потребуетсяиметь дело с конфигурацией PCI , чтобы настроить его на наличие некоторых портов, видимых для процессора.Это даст вам базовую возможность заставить процессор фактически общаться с сетевой картой.
Во-вторых, вам нужно будет найти некоторую документацию по конкретному чипсету, который он использует, чтобы вы знали, какчитать и записывать данные сети.С некоторыми старыми картами это было довольно легко, но большинство новых карт действуют как мастера шины с оборудованием разброса / сбора.Программирование их для выполнения даже простой передачи может быть нетривиальным.Хотя это полностью зависит от аппаратного обеспечения.
В-третьих, вам потребуется разработать значительную часть стека IP, чтобы иметь возможность использовать даже необработанные сокеты.На аппаратном уровне у вас в основном есть две возможности: получать любые пакеты, которые поступают, и отправлять пакеты на указанные MAC-адреса - или другие аппаратные адреса, если ваша карта не (и не похожа / не действует) на Ethernet.
Следующая пара слоев поверх этого будет ARP resolver (чтобы вы могли использовать IP-адреса вместо MAC-адресов) и DNS-клиент (чтобы вы могли использовать обычные имена адресоввместо чего-то вроде пунктирных квадратов. Наряду с этим, вы, вероятно, захотите создать программное обеспечение, которое знает, как создавать / понимать IP-дейтаграммы .