RmNet和CDC-ECM區別:更像是兩種撥號方式的區別,RmNet獲取公網(wǎng)IP,ECD-ECM獲取局域網(wǎng)IP。
在高通平臺上,rmnet driver 和標準的CDC-ECM是有區別的,rmnet 也是屬于CDC-ECM
他們具體的區別在于對于USB命令的封裝以及使用的USB接口,端點(diǎn)定義方式不同
如果是使用rmnet,那么發(fā)起data call是通過(guò)QMI工具發(fā)的QMI命令,QMI工具為QMICM,QMICM集成了QMI命令
而通過(guò)標準的CDC-ECM發(fā)起data call,則是發(fā)送標準的ECM命令。
如果是QMICM建立的data call,不走router的,所以它的IP地址獲得的是公網(wǎng)IP。
而通過(guò)標準的CDC-ECM建立的data call,是走router的,獲得的IP地址是私有的IP如192.168開(kāi)頭
NDIS和Rndis區別:NDIS是一種規范,定義了網(wǎng)絡(luò )驅動(dòng)接口的api。RNDIS是一種技術(shù),是將TCP/IP封裝在USB報文里,實(shí)現網(wǎng)絡(luò )通信。
1,RNDIS是指Remote NDIS,基于USB實(shí)現RNDIS實(shí)際上就是TCP/IP over USB,就是在USB設備上跑TCP/IP,讓USB設備看上去像一塊網(wǎng)卡。
2,NDIS(Network Driver Interface Specification)是網(wǎng)絡(luò )驅動(dòng)程序接口規范的簡(jiǎn)稱(chēng)。它橫跨傳輸層、網(wǎng)絡(luò )層和數據鏈路層,定義了網(wǎng)卡或網(wǎng)卡驅動(dòng)程序與上層協(xié)議驅動(dòng)程序之間的通信接口規范,屏蔽了底層物理硬件的不同,使上層的協(xié)議驅動(dòng)程序可以和底層任何型號的網(wǎng)卡通信。 NDIS為網(wǎng)絡(luò )驅動(dòng)程序創(chuàng )建了一個(gè)完整的開(kāi)發(fā)環(huán)境,只需調用NDIS函數,而不用考慮操作系統的內核以及與其他驅動(dòng)程序的接口問(wèn)題,從而使得網(wǎng)絡(luò )驅動(dòng)程序可以從與操作系統的復雜通訊中分離,極大地方便了網(wǎng)絡(luò )驅動(dòng)程序的編寫(xiě)。另外,利用NDIS的封裝特性,可以專(zhuān)注于一層驅動(dòng)的設計,減少了設計的復雜性,同時(shí)易于擴展驅動(dòng)程序棧。
NDIS支持三種類(lèi)型的網(wǎng)絡(luò )驅動(dòng)程序: NDIS網(wǎng)卡驅動(dòng)程序(NICdrivers) 網(wǎng)卡驅動(dòng)程序是網(wǎng)卡與上層驅動(dòng)程序通信的接口,它負責接收來(lái)自上層的數據包,或將數據包發(fā)送到上層相應的驅動(dòng)程序,同時(shí)它還完成處理中斷等工作。 NDIS中間驅動(dòng)程序 (InterMediateProtocolDrivers):中間驅動(dòng)程序位于網(wǎng)卡驅動(dòng)程序和協(xié)議驅動(dòng)程序之間,它向上提供小端口(Minport)函數集,向下提供協(xié)議(protocol)函數集,因此對于上層驅動(dòng)程序而言,它是小端口驅動(dòng)程序。對于底層的驅動(dòng)程序,它是協(xié)議驅動(dòng)程序。 NDIS協(xié)議驅動(dòng)程序 (Upper Level Protocol Drivers):協(xié)議驅動(dòng)程序執行具體的網(wǎng)絡(luò )協(xié)議,如IPX/SPX、TCP/IP等。協(xié)議驅動(dòng)程序為應用層客戶(hù)程序提供服務(wù),接收來(lái)自網(wǎng)卡或中間驅動(dòng)程序的信息。
3,RAS是典型的撥號實(shí)現,需要利用Windows mobile的PPP協(xié)議棧實(shí)現連接配置和建立 rndis,Remote Network Driver Interface Specification,既是RemoteNDIS,既是遠程網(wǎng)絡(luò )驅動(dòng)接口規范?;赨SB實(shí)現RNDIS實(shí)際上就是TCP/IP over USB,就是在USB設備上跑TCP/IP,讓USB設備看上去像一塊網(wǎng)卡。
轉載自:https://www.cnblogs.com/ricks/p/9448712.html