USBを介したイーエフネット - 百科事典
USB over Ethernetは、USBリンクをEthernetネットワークの一部として使用し、USB(例えばPCIやPCIeの代わりに)を通じてEthernet接続を提供する方法です。
プロトコル
USBを通じてEthernetスタイルのネットワークを構成するためのプロトコルは数多く存在します。これらのプロトコルの使用は、USBデバイスとのデータ交換をアプリケーションに依存しないようにすることで、ビデオやMTP(メディア転送プロトコル)などの専門的なプロトコルに代わるものです。USBは物理的なEthernetではありませんが、主要なオペレーティングシステムのネットワークスタックは、特定の下位層のトランスポートが不要でIEEE 802.3フレームを転送するように設定されています。
主な業界プロトコルは、リモートNDIS(RNDIS、マイクロソフトのベンダープロトコル)、Ethernetコントロールモデル(ECM)、Ethernetエミュレーションモデル(EEM)、およびネットワークコントロールモデル(NCM)です。後者3つはUSB Implementers Forum(USB-IF)のより大きな通信デバイスクラス(CDC)プロトコルグループの一部です。これらはUSB-IFからダウンロード可能です(以下を参照ください)。RNDIS仕様はマイクロソフトのウェブサイトから入手できます。実際の標準として、ECMなどの一部の標準では、初期のシステムにはなかったUSBリソースの使用を指定しています。しかし、標準のサブセットの軽微な修正により、そのプラットフォーム上での実際の実装が可能になります。驚くほど、最も現代的なプラットフォームでも軽微な調整が必要であり、そのためこれらのサブセットのサポートがまだ必要です。
これらのプロトコルの中で、ECMは最もシンプルなものと分類できます。フレームは単一ごとに変更なしに送信および受信されます。これは、プロトコルが発行された時点でのUSB 1.1フルスピードシステム(64バイトのパケット)に対して適切な戦略でしたが、512バイトのパケットを使用するUSB 2.0ハイスピードシステムに対しては適していません。Ethernetフレームは64から1522バイトの範囲があります。この最大値は、3つのUSBハイスピードパケットまたは24のUSBフルスピードパケットにほぼ等しいです。
USBシステムは、各パケットが転送として送信され、短いパケットまたは特別なZLP(ゼロ長さパケット)で終わる最大長さのパケットのシリーズとして動作します。これに続き、バスラテンシーが発生し、別の転送が開始できるまで何も送信されません。この問題はバス占用を減少させ、バス時間の相当部分を無駄にします。24フレームごとに一つのギャップは目に見えませんが、3フレームごとに一つのギャップは、スループットに非常に大きなコストとして見られます。
USBがより速くなると、デバイスはより多くのデータを利用し、その結果、大量のデータを送信する需要が生まれます。デバイスに保存されるためのデータや、無線リンクを通じて中継されるデータです(3GPPロングテームエボリューションを参照ください)。
これらの新しいデバイスはデスクトップPCよりもはるかに低い電力消費で、そのため、デバイス上でのDMAリソースの最大限の利用とデータのコピー(ゼロコピー)を最小限に抑えたり、排除したりする慎重なデータ処理の問題が発生します。NCMプロトコルには、このための詳細な規定があります。プロトコル比較のリンクを以下に示します。
Linux固有のドライバー
LinuxのUSB-ethモジュールは、USBを物理媒体として使用するEthernetデバイスのバリアントとして動作するコンピュータを作成します。Linuxネットワークインターフェースを作成し、IPアドレスを割り当て、実際のEthernetインターフェースと同じように処理できます。実際のEthernetインターフェースで動作するアプリケーションは、修正なしでUSB-Ethernetインターフェースで動作します。なぜなら、適切かどうかの区別はありません。
Linuxホスト上では、対応するUSB over Ethernetのカーネルモジュールはusbnetと呼ばれます。Bahia Network DriverはWin32ホスト向けのusbnetスタイルのドライバーです。このアプローチは、非常に限られた通信ハードウェアを持つデバイスがIPネットワーク上で動作できるようにします。iPAQのLinuxカーネルは、iPAQのハードウェアにはアクセス可能なレガシーセリアポートも、専用のネットワークインターフェースもないため、この通信戦略を唯一使用しています。
参考文献
(以下に省略)
外部リンク
CDC Subclass Specification for Ethernet Emulation Model Devices 1.0(以下に省略)