2011-10-22 5 views

答えて

1

「libpcap」と「rawソケット」は異なるトピックです。

LibpcapはLinux用のパケットキャプチャライブラリで、eth0などのネットワークインターフェイスを通過するトラフィック/パケットをキャプチャするために使用されます。

Windowsでは、Winpcapライブラリも同じことを行います。

Rawソケットは、OSによって提供されるソケットAPIの機能であり、アプリケーションで定義されたヘッダでパケットを送信するために使用でき、OSでは定義できません。したがって、rawソケットを使用して、IP、TCPヘッダーを指定してパケットを送信することができます。

Rawソケットは常にLinux上で使用できます。 Windowsのrawソケットは、Windows XPおよびWindows XP(SP1)でのみ使用できました。

winpcapライブラリには、Windows上でwinpcapを使用してrawソケット機能を実現できる任意のコンテンツを持つパケットを送信する機能があります。

10

libpcapは異なるオペレーティングシステムで異なるメカニズムを使用します。 Linuxの場合、インタフェースおよびのLinuxリンク層タイプ(ARPHRD_値)を知っているかどうかによって、そのリンク層タイプのインタフェースが有用なリンク層ヘッダ(PPP)を生成するかどうかによって、PF_PACKET rawソケットまたはcookedソケットが使用されますインターフェースはネットワーク層プロトコル識別子を見ることができません)。 Irixでは、RAWPROTO_SNOOPプロトコルでPF_RAWソケットを使用します。他のシステムでは、rawソケットはまったく使用しません。

Rawソケットは、リンクレイヤーを気にすることなく(つまり、ネットワークデバイスドライバーではなくIPレイヤーにプラグインする)未処理のIPv4パケットの送受信など、さまざまな目的で使用できます。 rawリンク層にアクセスする必要がある場合、ほとんどのOSのrawソケットはそれをサポートしていません(前の段落のLinuxとIrixは明白な例外です)。しかし、libpcapはそうします。

+0

Windowsでは、低レベルのネットワークドライバを使用してデータをキャプチャします。 RAWソケットは、現代版のWindowsでは管理者に制限されています。 –

関連する問題