Android wifi上網跟4G上網的區別

看書的小蝸牛發表於2018-05-10

手機上網可以用Wifi,也可以用4G,這兩者究竟有什麼區別,Wifi模組跟4G無限通訊模組用的是同一種上網媒介嗎,一個4G手機是否兩塊網路卡呢?手機的MAC地址說的是誰的呢,比如,當你通過系統API獲取MAC地址的時候,獲取的是哪種MAC地址呢?本文由MAC地址(作為裝置唯一標識)問題引出,簡單分析下兩種上網方式的區別,掃盲,高手勿拍磚:

  • Wifi上網跟4G上網用的是同一塊“網路卡”嗎
  • Wifi上網跟4G上網的“MAC”地址是同一個嗎
  • 兩者在實現方式上有什麼不同呢(TCP/IP協議)

首先來看第一個問題,Wifi上網跟4G上網用的是同一塊“網路卡”嗎,答案是否定的,一般而言,Wifi上網用的是乙太網卡,擁有48位唯一的MAC地址,而4G上網則通過手機內部的基帶模組來實現無線上網的目的。

手機Wifi上網跟4G上網硬體設施的區別

從硬體環境上來說,手機連結一個無線路由器,通過Wifi上網,走的還是乙太網,在鏈路層,用的是乙太網協議,也就是說,這種上網模式完全可以看做是手機連線了一根網線,所以其媒介仍可以看做傳統意義上的網路卡:

手機wifi上網模型.png

而4G上網用的是蜂窩網路,訊號以電磁波的形式在空氣中進行傳播,傳送到距離最近的基站,基站通過交換機轉發到覆蓋目標裝置的基站,並通知目標裝置,回傳結果,這種上網模式在鏈路層,用的一般是PPP(Point-to-Point Protocol)協議,而其上網媒介用的則是無線通訊專用的無線基帶通訊模組:

手機4G上網模型.png

硬體上的不同,決定了其在軟體系統上必定採取不同的適配方式。

Wifi上網跟4G上網在TCP/IP協議上的區別

Wifi上網可以看做是網路卡裝置上網,仍然遵循IEEE 802,鏈路層走的是乙太網,支援ARP/RARP,同時在鏈路層採用乙太網協議進行幀資料封裝,前面分別是48位目標MAC地址跟源MAC地址

螢幕快照 2018-03-30 下午5.44.33.png

而4G流量上網的時候,鏈路層走的是PPP協議,該協議下沒有MAC地址的概念。

PPP協議資料幀格式

Wifi上網跟4G上網的“MAC”地址是同一個嗎

答案很明顯:不是,4G上網壓根沒有MAC地址的概念,相對應的每個無線通訊模組都有IMEI(國際移動裝置識別碼(International Mobile Equipment Identity),來標識每一個無線通訊模組。

總結

本文簡單介紹下手機兩種上網方式的區別,主要是理清MAC地址的概念,整個4G上網跟電話涉及到的是Android RIL框架的知識,將來有時間,再分析。

作者:看書的小蝸牛 Android wifi上網跟4G上網的區別

僅供參考,歡迎指正

相關文章