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

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


person Invictus    schedule 22.10.2011    source источник


Ответы (2)


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

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

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

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

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

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

person Silver Moon    schedule 29.11.2011

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

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

person Community    schedule 30.10.2011
comment
В Windows для сбора данных используется сетевой драйвер более низкого уровня. Сокеты RAW ограничены пользователями-администраторами в современных версиях Windows. - person Remy Lebeau; 30.10.2011