RNDIS: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{Refimprove|date=October 2011}} |
{{Refimprove|date=October 2011}} |
||
The '''Remote Network |
The '''Remote Network Driver Interface Specification (RNDIS)''' is a [[Microsoft]] [[proprietary protocol]] used mostly on top of [[USB]]. It provides a virtual [[Ethernet]] link to most versions of the [[Microsoft Windows|Windows]] operating system. A partial RNDIS specification is available from Microsoft, but Windows implementations have been observed to issue requests not included in that specification, and to have undocumented constraints.<ref>See, for example, {{Citation | title = comments in the host-side Linux implementation | url=http://lxr.linux.no/#linux+v3.4.4/drivers/net/usb/rndis_host.c#L31}}</ref> In addition, the protocol is tightly coupled to Microsoft's programming interfaces and models, most notably the [[Network Driver Interface Specification|Network Driver Interface Specification (NDIS)]], which are alien to operating systems other than Windows. These issues complicate third-party implementations. Both FreeBSD and OpenBSD natively support RNDIS. |
||
The USB Implementers Forum ([[USB-IF]]) defines at least three non-proprietary USB Communications Device Class ([[Communications Device Class|CDC]]) protocols with comparable "virtual Ethernet" functionality; one of them (CDC-ECM) predates RNDIS and is widely used for interoperability with non-Microsoft operating systems, but it has no native Windows support. |
The USB Implementers Forum ([[USB-IF]]) defines at least three non-proprietary USB Communications Device Class ([[Communications Device Class|CDC]]) protocols with comparable "virtual Ethernet" functionality; one of them (CDC-ECM) predates RNDIS and is widely used for interoperability with non-Microsoft operating systems, but it has no native Windows support. |
Revision as of 06:24, 1 June 2014
This article needs additional citations for verification. (October 2011) |
The Remote Network Driver Interface Specification (RNDIS) is a Microsoft proprietary protocol used mostly on top of USB. It provides a virtual Ethernet link to most versions of the Windows operating system. A partial RNDIS specification is available from Microsoft, but Windows implementations have been observed to issue requests not included in that specification, and to have undocumented constraints.[1] In addition, the protocol is tightly coupled to Microsoft's programming interfaces and models, most notably the Network Driver Interface Specification (NDIS), which are alien to operating systems other than Windows. These issues complicate third-party implementations. Both FreeBSD and OpenBSD natively support RNDIS.
The USB Implementers Forum (USB-IF) defines at least three non-proprietary USB Communications Device Class (CDC) protocols with comparable "virtual Ethernet" functionality; one of them (CDC-ECM) predates RNDIS and is widely used for interoperability with non-Microsoft operating systems, but it has no native Windows support.
Notes and references
- ^ See, for example, comments in the host-side Linux implementation