私は、大学プロジェクト用のLinuxカーネル用のカスタムUDPプロトコルを実装しようとしています。私はまた、プロトコルを使用して通信するユーザーランドプログラムを実装する必要があります。サンプルコードを含む詳細なガイドが必要ですが、どこにも見つかりませんでした。ほとんどの本は理論を扱っていますが、私は何かをもっと実用的にしたいと思います。ファイルを変更し、Linuxカーネル用に特別に実装する機能です。Linuxカーネルのカスタムネットワークプロトコル
1
A
答えて
0
は、あなたが試してみました:
(プログラミングLinuxのソケット、パート2:UDPを使用して):
のLinuxのLinuxカーネルで
0
を、IPV4のUDP実装はです-abc/net/ipv4/udp.c
これは良い出発点です。このUDP実装が他のネットワーク層プロトコルにエクスポートする機能をチェックして、このプロトコルの独自のバージョンを作成し、独自の機能を他のネットワーク層プロトコルにエクスポートし、そこでそこから呼び出すことができます。
たとえば、ネットワークレイヤプロトコル(IP)が着信パケットの処理を終了すると、上位レイヤプロトコルがUDPの場合はudp_rcv()
を呼び出してUDPにパケットを配信します(値17、IANAに従って、プロトコルフィールドIPV4のヘッダーの)。
関連する問題
- 1. Linuxカーネルのインストール
- 2. Linuxカーネルのlist.h
- 3. Linuxカーネルのバディシステムアロケータ
- 4. Linuxカーネルのメジャーページフォルトハンドラ
- 5. Linuxカーネルのピンマルチプレキシング
- 6. Linuxカーネル `min`マクロ
- 7. cleanup_module Linuxカーネル
- 8. Linuxカーネル機能
- 9. ガットエラー:Linuxカーネル
- 10. Linuxカーネルでは
- 11. glibとlinuxカーネル
- 12. Linuxカーネルmmu create_page_tables
- 13. linuxカーネル開発
- 14. 設定Linuxカーネル
- 15. は、Linuxカーネル
- 16. Linuxカーネル開発
- 17. LinuxカーネルのI2Cライトアクノリッジポーリング
- 18. Linuxカーネルでのプリエンプション
- 19. Linuxカーネルのnr_cpusブートパラメータ
- 20. 組み込みLinuxカーネルとデスクトップLinuxカーネルの相違
- 21. どのLinux OSにLinuxカーネル2.6.32
- 22. Linuxカーネルの機能set_user_nice
- 23. LinuxカーネルのTCP/IPスタック
- 24. LinuxカーネルTCPソケットの変更
- 25. Linuxカーネルのメモリ破損
- 26. Linuxカーネルのstdlib.h代替?
- 27. Linuxカーネル、iptablesのとvmallocサイズ
- 28. x86-64ビットプロセッサーのPAE - Linuxカーネル
- 29. Linuxカーネル:マルチプロセッサシステムのschedule()関数
- 30. linuxカーネルaioの機能
なぜカーネルで何かする必要がありますか? –
"custom udp"とは、UDPを実装しているsocket.h関数がうまく動作しないことを意味しますか? – Castilho
その純粋な学習目的のために。 – user361697