リモートNDIS【RNDIS】Remote Network Driver Interface Specification
概要

USBでは、機器の種類ごとに共通の機能と制御方法を「USBクラス」として規定している。マウスやキーボードを扱う「HIDクラス」(Human Interface Device)や、ストレージを扱う「マスストレージクラス」などがあり、対応機器であればOS標準のドライバで動作する。リモートNDISは、このうちネットワーク機器を扱うためのクラスである。
NDIS(Network Driver Interface Specification)とは、イーサネット(Ethernet)や無線LAN(Wi-Fi)に接続するネットワークカードを制御する標準仕様で、主にWindowsで採用されている。本来はパソコン内部に装着するネットワークカード(NIC)向けの仕様だが、リモートNDISはこの通信データをUSBのデータ転送フレームに格納し、USB経由でやり取りできるようにしたものである。米マイクロソフト(Microsoft)社が独自に定めた仕様が他社製品にも広まった。
接続された機器は、パソコン側からは通常のイーサネット機器と同様に認識され、有線LANや無線LANのアダプタと同じ扱いで通信できる。AndroidスマートフォンでUSBテザリングを利用する際、専用ドライバなしで接続できるのも、リモートNDISによってOS標準のネットワークドライバが機器を認識し、制御しているためである。
この仕組みにより、機器の開発元は製品ごとに独自ドライバを開発・配布する必要がなくなり、利用者も事前のドライバ導入なしに、様々なメーカーのUSB通信機器を利用できる。WindowsやAndroidをはじめ多くのOSで標準ドライバが用意されている。一方、LinuxやmacOSでは標準規格の「通信デバイスクラス」(CDC:Communication Device Class)に基づく「CDC-ECM」や「CDC-NCM」が用いられることが多い。