WSL2ですべてのWindowsネットワークインターフェイスを表示して有効にする方法は?

WSL2ですべてのWindowsネットワークインターフェイスを表示して有効にする方法は?

私は現在、マルチパスTCP(MTCP)をWSL2に統合するプロジェクトを進めている学生です。しかし、我々は大きな問題に直面した。 WSL2は「基本」ネットワークインターフェイスのみを公開するため、MTCPの最適な動作には不十分です。カーネルを再コンパイルして MTCP をイネーブルにしても複数のインタフェースが必要なため、期待どおりに実行されません。私の質問は、提案されたMTCPサポートネットワークアーキテクチャについてあなたの考えは何ですか?もっと簡単な方法がありますか、それとも改善できるものがありますか?事前に感謝し、良い一日を過ごしてください:)

アーキテクチャ分析は次のとおりです。

サーバーアプリケーション(Windows):

  • インターフェースモニター:このコンポーネントはネットワークインタフェースを監視します。クライアントは定期的にサーバーにインターフェイスのリストを要求し、この情報に基づいてインターフェイスを追加または削除します。あるいは、サーバーはこの情報をWSLファイルシステム上のファイルに書き込むことができ、クライアントはそのファイルを読み取ってそのインターフェースを更新します。

  • TAPインターフェースからパケットを受信する:クライアントがTAPインターフェースを生成した後、サーバーはデータパケットの受信を担当するスレッドを生成します。クライアントは、インターフェイス更新を介してパケットを送信するために適切なポートに関する通知を受け取ります。各TAPインターフェイスは専用ポートに対応します。

  • NATパケット:パケット受信を処理するスレッドでは、サーバーはそのIPフィールドを変更してNAT(Network Address Translation)を実行します。これは、TCPパケットの変更を簡素化するPcapPlusPlusなどのライブラリを使用して簡素化できます。

  • パケット送信: StackOverflow の一部のスレッドでは、Windows が生のパケットを直接送信することを制限すると提案しています。そのインターフェイスに直接データを送信するためのオプションを探索しています。

クライアントアプリケーション(WSL2):

  • TAP インターフェイスの生成: クライアントはそれに応じて TAP インターフェイスを作成または削除し、インターフェイスの更新に応答します。

  • インターフェースモニタリング:TAP インターフェイスが作成されると、クライアントは libpcap というライブラリを使用して、TAP インターフェイスからパケットをスニッフィングします。

  • UDP経由でパケットを送信する:各インターフェイスは、キャプチャされたデータパケットが正しく送信されることを保証するために専用ポートに接続されています。

  • 答えを受ける: スレッドは実際の Windows インターフェースから応答を受け取り、TAP インターフェースに書き込まれます。

ベストアンサー1

おすすめ記事