バインディング(2)はネットワークデバイスをどのように選択しますか?

バインディング(2)はネットワークデバイスをどのように選択しますか?

背景

私は、非IPネットワークプロトコルと関連ネットワークデバイスドライバ(非イーサネットハードウェア)のカーネルスペース実装を作成しようとしています。私のプロトコルを使ってソケットを私のドライバに接続する方法を理解するのは困難ですが、プロトコルとドライバの開発に関するいくつかのリソースが見つかりました。

目的は、ユーザー空間のプログラムをbind(socket(AF_TERRIBLE_IDEA, ...), ...);実行のために呼び出すだけでできるだけ機能させることです。

目的は同時にカーネル空間での開発にもっと慣れることであるため、ユーザ空間への移行は理想的ではありません。

質問

いつ製本呼び出し後、カーネルはソケットを接続するデバイス(したがってデバイスドライバ)をどのように知ることができますか?

ベストアンサー1

見る生ソケットそしてパケットソケット、これは、ユーザー空間で非標準ネットワークプロトコルを実装するように特別に設計されています。

他のアプリケーションがドライバに接続する方法は完全にあなた次第であり、最良の選択は実装する詳細に依存します。

このbindコマンドは、さまざまなコンテキストでさまざまなタスクを実行します。通常、「必要な基本データを提供します」のバリエーションです。それできる特に標準プロトコル(使用しない)の場合、特定のソースアドレスおよび/またはネットワークインタフェースを表示しますが、必須ではありません。だから考えのようにはなりません。

おすすめ記事