2011-08-07 24 views
0

パケットのtcp処理が完了し、パケットがユーザ空間に与えられる(またはソケット受信キューに追加される)前に、私の関数を呼び出してユーザデータを処理します。 Linuxカーネルで同じことをする方法はありますか? ありがとうLinuxカーネルのtcp処理後のパケット処理

答えて

0

まず、パケットはTCPによってユーザー空間に送信されません。データのみが送信されます(バイト)。すべてを(独自のカーネルコードや傍受システムコール(および、そのようなtcp_inputなどおそらく内部TCP機能)あなたはパケットを傍受してみましょう

  • 使用するNetlinkソケットを書く

    • :あなたはあなたができるデータを傍受したい場合そのヘッダ)
    • 使用転送のソケット(上記と同じ)あなたがそれらを持っている場合
    • 使用rawソケット(あなたがパケットのコピーを取得し、あなたがそれらを変更したり、伝播するからそれらを停止することはできません)
  • 関連する問題