3

Linux の tcp データ パスの概要はわかりますか (パスが実際に異なる場合は 2.4 ではなく 2.6)? tcp/ip スタック処理のさまざまな段階のパケットはどこにありますか?

パケットが tcp セグメントにパックされ、次に ip パケットにパックされる方法。どのようにネットワークカードに送信されますか? (一連の I/O regs 書き込みと DMA を使用して?) 「書き込み」syscall ハンドラ (いくつかの深いコールスタックを使用) でネットワーク カードに送信されますか、それとも別の瞬間に送信されますか?

4

2 に答える 2

4

http://www.linuxfoundation.org/collaborate/workgroups/networking/kernel_flow

これがあなたの望むものだと思います。これは、sendmsg() から dev_hard_start_xmit() までのプロセスを示しています。これは、ネット スタックがパケットを NIC ドライバーに渡す場所です。

于 2010-05-03T21:43:12.047 に答える
3

これを試してください: The Linux TCP/IP Stack: Networking for Embedded Systems

The Linux TCP/IP Stack: Networking for Embedded Systems /by Thomas Herbert (著者) .The Linux TCP/IP Stack: Networking for Embedded Systems は、組み込みシステム プロジェクトで Linux TCP/IP スタックを実装および使用するための詳細なガイドを提供します。 . 最初に TCP/IP ネットワークの概要を説明し、適用可能なネットワーク標準に​​関する背景情報を示します。そこから、Linux 2.6 での TCP/IP 実装について詳しく説明します。データのパケットは、送信側システムからスタックを通過してネットワークに流れ出します。、受信側マシンのスタックの入力側に戻ります。このユニークなアプローチにより、プログラマーはプロセス全体の「内部」を見ることができます。テキスト全体を通して、ソケット、ネットワーク インターフェイス、アプリケーション層プロトコル、および実際的な考慮事項など、組み込みシステムを実装するエンジニアにとって特に関心のあるトピックについて説明します。これは、組み込みシステムのプログラマーとエンジニア、および 2.6 カーネルでの Linux TCP/IP の実装について詳しく知りたいネットワークの専門家にとって優れたリソースです。

于 2010-04-22T15:44:18.130 に答える