2012-03-24 17 views
1

私は、大学プロジェクト用のLinuxカーネル用のカスタムUDPプロトコルを実装しようとしています。私はまた、プロトコルを使用して通信するユーザーランドプログラムを実装する必要があります。サンプルコードを含む詳細なガイドが必要ですが、どこにも見つかりませんでした。ほとんどの本は理論を扱っていますが、私は何かをもっと実用的にしたいと思います。ファイルを変更し、Linuxカーネル用に特別に実装する機能です。Linuxカーネルのカスタムネットワークプロトコル

+0

なぜカーネルで何かする必要がありますか? –

+0

"custom udp"とは、UDPを実装しているsocket.h関数がうまく動作しないことを意味しますか? – Castilho

+0

その純粋な学習目的のために。 – user361697

答えて

0

を、IPV4のUDP実装はです-abc/net/ipv4/udp.c

これは良い出発点です。このUDP実装が他のネットワーク層プロトコルにエクスポートする機能をチェックして、このプロトコルの独自のバージョンを作成し、独自の機能を他のネットワーク層プロトコルにエクスポートし、そこでそこから呼び出すことができます。

たとえば、ネットワークレイヤプロトコル(IP)が着信パケットの処理を終了すると、上位レイヤプロトコルがUDPの場合はudp_rcv()を呼び出してUDPにパケットを配信します(値17、IANAに従って、プロトコルフィールドIPV4のヘッダーの)。