PPP撥號和NDIS撥號的區別:

PPP撥號和NDIS撥號的區別:

參考網址:

https://blog.csdn.net/xingyuan1hao/article/details/89279730

https://blog.csdn.net/opencpu/article/details/8050139

https://bbs.csdn.net/topics/390677893?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

   

大家好,最近公司在做4G相關的產品,拿到手的4G模塊廠家說要通過NDIS方式上網,以前做3G的時候都是通過PPP走modem來做的,這個NDIS方式上網有點陌生,在Windows或者linux下安裝完驅動之後本地連接會多一個網卡出來。
現在的問題是廠家的撥號軟件還沒出來,就算出來的話估計對LINUX的支持也很少,有對NDIS這一塊比較瞭解的可否給點參考建議,如何通過NDIS模式來進行上網。

例如:在linux下3G走modem可以用PPPD來做,windows下3G走modem可以建立PPP撥號連接來完成。 

總結:

1、PPP是3G之前包括3G針對modem的產物,在linux下3G走modem可以用PPPD來做,windows下3G走modem可以建立PPP撥號連接來完成。 

2、NDIS是從4G開始針對ECM虛擬網卡的產物,在linux下4G走ECM可以用dhcpd來做爲應用層,windows下4G走ndis協議撥號可以建立連接。 

 

Modem撥號和NDIS撥號的以太網幀格式比較:
Modem撥號,PPP屬於數據鏈路層協議,它使用HDLC協議格式來封裝數據幀,而在數據流中如果遇到
0x7D,則表示後面的數據是控制信息,當它出現的時候,設備需從數據模式切換成控制模式,病處理
這些信息,設備需要對每一個字節的數據進行解析,並作出相應的處理,佔用較多的資源。

NDIS撥號,Ethernet協議是通過使用不同的以太網幀的包頭來區分控制信息和數據信息,一個以太網幀
的包頭大小是固定的14字節,所以對於每一個幀,設備只需要處理其包頭即可。

ppp通過pppd進行撥號,NDIS通過gobinet進行撥號。分別採用各自不同的原理,進行網絡通信撥號。

 

NDIS介紹:

NDIS(Network Driver Interface Specification)是網絡驅動程序接口規範的簡稱。它橫跨傳輸層、網絡層和數據鏈路層,定義了網卡或網卡驅動程序與上層協議驅動程序之間的通信接口規範,屏蔽了底層物理硬件的不同,使上層的協議驅動程序可以和底層任何型號的網卡通信。 NDIS爲網絡驅動程序創建了一個完整的開發環境,只需調用NDIS函數,而不用考慮操作系統的內核以及與其他驅動程序的接口問題,從而使得網絡驅動程序可以從與操作系統的複雜通訊中分離,極大地方便了網絡驅動程序的編寫。另外,利用NDIS的封裝特性,可以專注於一層驅動的設計,減少了設計的複雜性,同時易於擴展驅動程序棧。

NDIS支持三種類型的網絡驅動程序:

NDIS網卡驅動程序(NICdrivers) 網卡驅動程序是網卡與上層驅動程序通信的接口,它負責接收來自上層的數據包,或將數據包發送到上層相應的驅動程序,同時它還完成處理中斷等工作。

NDIS中間驅動程序 (InterMediateProtocolDrivers):中間驅動程序位於網卡驅動程序和協議驅動程序之間,它向上提供小端口(Minport)函數集,向下提供協議(protocol)函數集,因此對於上層驅動程序而言,它是小端口驅動程序。對於底層的驅動程序,它是協議驅動程序。

NDIS協議驅動程序 (Upper Level Protocol Drivers):協議驅動程序執行具體的網絡協議,如IPX/SPX、TCP/IP等。協議驅動程序爲應用層客戶程序提供服務,接收來自網卡或中間驅動程序的信息。

 

NDIS可以劃分成應用層(DHCP client/server)、傳輸層(UDP)、網絡層(ARP/IP)、鏈路層(Ethernet II)、物理層(USB)。
NDIS物理層:
   ECM(Ethernet Control Model)是標準的NIC(網絡接口卡)設備接口,與Ethernet協議相對應。

   NCM(Network Control Model)是ECM協議的改進版,將多個以太網包組成一個NTB包在USB總線上傳輸,提高寬帶利用率。

ECM/NCM就是NDIS的物理層

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章