Использует ли libpcap необработанные сокеты под ними?

#libpcap #raw-sockets

#libpcap #необработанные сокеты

Вопрос:

Я немного запутался в использовании необработанных сокетов и libcap. Может ли кто-нибудь из простых указать на преимущества использования обоих. Я прочитал несколько ссылок, но это меня смущает.

Ответ №1:

libpcap использует разные механизмы в разных операционных системах. В Linux он использует исходные или готовые сокеты PF_PACKET, в зависимости от того, знает ли он о типе канального уровня Linux (значение ARPHRD_) для интерфейса и создают ли интерфейсы этого типа канального уровня полезный заголовок канального уровня (интерфейсы PPP этого не делают, поэтому вы не можете видеть сеть -идентификатор протокола уровня). В Irix он использует сокеты PF_RAW с протоколом RAWPROTO_SNOOP. В других системах он вообще не использует необработанные сокеты.

Необработанные сокеты можно использовать для ряда целей, таких как отправка и получение необработанных пакетов IPv4, не беспокоясь о канальном уровне (т. Е. Они подключаются к уровню IP, а не к драйверу сетевого устройства). Если вам нужен доступ к необработанному уровню ссылок, необработанные сокеты в большинстве операционных систем этого не поддерживают (Linux и Irix являются очевидными исключениями, как указано в предыдущем абзаце), но libpcap поддерживает.

Комментарии:

1. В Windows для сбора данных используется сетевой драйвер более низкого уровня. НЕОБРАБОТАННЫЕ сокеты доступны только пользователям-администраторам в современных версиях Windows.

Ответ №2:

«libpcap» и «необработанные сокеты» — это разные темы.

Libpcap — это библиотека захвата пакетов для Linux, которая используется для захвата трафика / пакетов, проходящих через сетевой интерфейс, такой как eth0.

В Windows библиотека Winpcap делает то же самое.

Необработанные сокеты — это функция API сокетов, предоставляемая ОС, которая может использоваться для отправки пакетов с заголовками, определенными приложением, а не ОС. Таким образом, используя необработанные сокеты, мы можем указать заголовки IP, TCP и отправлять пакеты.

Необработанные сокеты доступны в Linux с незапамятных времен. В Windows необработанные сокеты были доступны только в Windows XP и Windows XP (SP1).

В Windows библиотека winpcap имеет функцию отправки пакетов с произвольным содержимым, что означает, что функциональность сырых сокетов может быть достигнута с помощью winpcap в Windows.