Dial-up PPP NDIS RNDIS CDC ECM NCM QMI-WWAN GOBINET RMNET MBIM difference

If you are doing 3, 4, and 5G Internet access, you will often encounter the above-mentioned terms. They are all related to dial-up networking, which is always confusing. What do these concepts mean, or what are the differences?

Combining online information, we will sort it out again based on personal understanding. If there are any errors, please correct me.

PPP is used to establish point-to-point links. It was originally used for slow devices, such as the Internet via serial lines in the early days. Through a set of protocols, the data connection on the hardware link is maintained, and with security and authentication features, a billing model can be established.
We can often see parameters such as baud rate, user name, password, and authentication method in PPP dial-up scripts. Nowadays, modems or home routers use PPPoE for dial-up Internet access. PPP is also used because PPPoE is PPP over Ethernet. Use the Ethernet link to encapsulate the PPP packet into the Ethernet frame, so that the authentication and security features of PPP can continue to be used.
For 3, 4, and 5G modules, most of them are connected through the USB bus, but in the kernel, the recognition is converted to a serial device. The device name is generally ttyUSB?, where? Refers to a number, increasing from 0, a module can convert multiple ports, some are used to execute AT commands, and some are used to dial.
Since it is a serial port, the use of PPP seems to be a smooth chapter. The above is the PPP method.

Since the physical connection of the module is the USB interface, can it be directly used to transfer the USB to the network port? Moreover, the encapsulation and control of the PPP method is generally considered to be inefficient, so it is necessary to adopt this method. Fortunately, there are many methods available directly based on the USB port. Unfortunately, there are too many choices and lack of uniform standards.
Among the above concepts, except for PPP, the others are all related to this method. Let's take a look at these concepts.

NDIS: Network Driver Interface Specification, network driver interface specification. Personal understanding is something similar to an interface standard, which shields different hardware differences and appears as the same network device at the upper layer, thereby simplifying the use of the application layer.
According to network information, this concept was proposed by Windows, but not under Linux. However, similar things exist under Linux, and the concepts behind RNDIS in the title are all related to this.

RNDIS: According to network information, it refers to a technology. If it is based on USB hardware, it is TCP/IP over USB. In this case, for USB, it is how to better encapsulate TCP/IP packets into the format required by the USB bus. , A bit similar to PPPoE.

CDC: According to network data, it refers to the communication equipment under the USB specification. There are many types of devices based on the USB interface, such as sound cards, keyboards and mice, printers, and storage devices. CDC belongs to the same level as these categories. Naturally, USB network cards and USB WIFI should be such devices.
Here is an extension. Different devices have their own characteristics. As a universal serial interface, USB should be classified in order to better adapt to the characteristics of the device and do some difference processing to make more efficient use of its own bus. This is a plain view. The concepts behind CDC in the title are all related to this.

ECM, NCM: According to network information, these two are "NDIS" standards under Linux. ECM is the abbreviation of Ethernet Networking Control Model, and NCM is the abbreviation of Network Control Model. The latter includes the former.
It can be seen that ECM and NCM must meet CDC requirements on USB. If CDC-ECM appears, it will be easier to understand according to this idea. Furthermore, as a standard, if the kernel supports this method, obviously no additional drivers are needed.
Based on this information, we can imagine the main process: the user can use the CDC driver to generate network devices in a "standard" way, establish network connections, and send network data. All data that interacts with the module through the USB bus is constrained by related protocols and standards. The module reaches the module through the USB hardware, and the module can take out the control and data information according to the protocol and standard to complete the interaction with the base station. As for how the module is implemented internally, that is the module's own business.

QMI-WWAN: According to network data, it is a framework similar to ECM provided by Qualcomm under Linux. Due to Qualcomm's industry position and market share of its products, this framework is widely used.

GOBINET: According to the network information, it means that the above-mentioned QMI-WWAN driver was not added in the early kernel, and the high-university driver completed the dialing. Later, the QMI-WWAN is supported in the kernel, so there is no need to provide a separate driver.

RMNET: It feels like a variant of CDC-ECM, an efficient data transmission protocol for Qualcomm equipment. Please refer to the link: https://www.kernel.org/doc/html/latest/networking/device_drivers/cellular/qualcomm/rmnet.html

MBIM: It can be understood as "NDIS" specially prepared for mobile networks.

In fact, to sum up, I think there are two types, one is PPP and the other is NDIS. The NDIS family’s approach is to standardize and increase efficiency. For the top, try to standardize as network equipment; for the bottom, adapt to the physical channel as much as possible and use it efficiently.

 

Reference materials:

https://www.it610.com/article/1279742686252777472.htm

https://blog.csdn.net/wandersky0822/article/details/101674806?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-2&spm=1001.2101.3001.4242

https://www.cnblogs.com/ricks/p/9448712.html

https://blog.csdn.net/fyh2003/article/details/11984209

https://www.cnblogs.com/pokerface/p/5783120.html

http://bbs.raindi.net/thread-5503-1-1.html

Guess you like

Origin blog.csdn.net/wwwyue1985/article/details/112971030
ppp