ブックマーク / www.fenix.ne.jp/~thomas (1)

  • How to send/receive raw packets on Linux

    Linuxではどうやって生のパケットを扱うんでしょうねって話 ★はじめに BSDではbpfを使用して生のパケットをやりとりすることができます。 ところがlinuxのカーネルにはbpfなんてものはありません。 でも、bootpやdhcp, tcpdumpなんかでプロトコル無しなパケットを やりとりしているはずです。いったいどうやっているんでしょう。 ★packetインターフェースってのがあるのよ linuxのアプリケーションでは、ネットワークインターフェースへの入出力は、 すべてsocketインターフェースを使用することになります。 socketを使用するということは、カーネルのサポートするなんらかの プロトコルを使用するということです。生のパケットをやりとりするためには packet interface(PF_PACKET)というプロトコルドライバ?を利用します。 ★具体的にはこんな感じ

  • 1