2011-10-22 15 views
12

Stavo diventando un po 'confuso sull'uso di socket raw e libcap. Può, chiunque nel semplice sottolineare vantaggi dell'utilizzo di entrambi. Ho letto pochi collegamenti, ma mi rende confuso.libpcap usa socket raw sotto di loro?

risposta

1

"libpcap" e "raw socket" sono argomenti diversi.

Libpcap è una libreria di acquisizione pacchetti per linux che viene utilizzata per acquisire il traffico/i pacchetti che passano attraverso un'interfaccia di rete come eth0.

Su Windows la libreria Winpcap fa la stessa cosa.

I socket raw sono una funzionalità dell'API del socket fornita dal sistema operativo che può essere utilizzata per inviare pacchetti con intestazioni definite dall'applicazione e non dal sistema operativo. Quindi usando i socket raw possiamo specificare l'IP, le intestazioni TCP e inviare i pacchetti.

I socket raw sono disponibili su Linux da sempre. Sui socket raw di Windows erano disponibili solo in Windows XP e Windows XP (SP1).

Su windows la libreria winpcap ha una funzione per inviare pacchetti con contenuto arbitrario, il che significa che è possibile ottenere funzionalità raw socket con winpcap su Windows.

10

libpcap utilizza diversi meccanismi su diversi sistemi operativi. Su Linux, usa i socket PF_PACKET raw o cotti, a seconda che conosca il tipo di livello di collegamento Linux (valore ARPHRD_) per l'interfaccia e se le interfacce di quel tipo di livello di collegamento producono un'utile intestazione link-layer (PPP le interfacce no, quindi non è possibile vedere l'identificatore del protocollo di livello di rete). Su Irix, utilizza prese PF_RAW con il protocollo RAWPROTO_SNOOP. Su altri sistemi, non usa affatto socket grezzi.

Le prese RAW possono essere utilizzate per un numero di scopi, come l'invio e la ricezione di pacchetti IPv4 raw senza doversi preoccupare del livello di collegamento (ad esempio, si collegano al livello IP piuttosto che al driver di periferica di rete). Se hai bisogno di accedere al livello del link non elaborato, i socket non elaborati sulla maggior parte dei sistemi operativi non supportano questo (Linux e Irix sono ovvie eccezioni, come nel paragrafo precedente), ma libpcap lo fa.

+0

Su Windows, utilizza un driver di rete di livello inferiore per acquisire i dati. Le prese RAW sono riservate agli utenti amministratori nelle moderne versioni di Windows. –