Since the new devices, although faster than before, are still much lower in power than desktop PCs, the issue of careful data handling arises, to maximize use of DMA resources on the device and minimize (or eliminate) copying of data (zero-copy). The NCM protocol has elaborate provisions for this. See link below for careful protocol comparisons. The USB-eth module in Linux makes the computer running it a variation of an Ethernet device that uses USB as the physical medium. It creates a Linux network interface, which can be assigned an IP address and otherwise treated the same as a true Ethernet interface. Any applications that work over real Ethernet interfaces will work over a USB-eth interface without modification, because they can't tell that they aren't using real Ethernet hardware. On Linux hosts, the corresponding Ethernet-over-USB kernel module is called usbnet. The Bahia Network Driver is a usbnet-style driver available for Win32 hosts. The approach allows devices with very limited communications hardware to operate over IP networks. The Linux kernel for the iPAQ uses this communications strategy exclusively, since the iPAQ hardware has neither an accessible legacy (RS-232/RS-422) serial port nor a dedicated network interface. SEGGER provides an IP over USB implementation for USB devices that does not require any driver installation on the host regardless of the host OS. Upon starting the USB connection, the software package determines, which host it is connected to, and then starts the required class, RNDIS or CDC-ECM (Communication Device Class, Ethernet Control Model) and all IP-Services required for operation. Micrium with IS2T jointly provide an Ethernet over USB implementation that can be used both from Java and C/C++.