Использует ли libpcap необработанные сокеты под ними? - PullRequest
12 голосов
/ 22 октября 2011

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

Ответы [ 2 ]

10 голосов
/ 30 октября 2011

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

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

1 голос
/ 29 ноября 2011

"libpcap" и "raw sockets" - это разные темы.

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

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

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

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

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

...