专栏首页Android源码框架分析Android wifi上网跟4G上网的区别

Android wifi上网跟4G上网的区别

手机上网可以用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上网的区别

仅供参考,欢迎指正

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android 3G/4G流量上网原理简析

    手机一般会提供两种上网方式:Wifi或者3G/4G上网,Wifi上网其实就是利用网卡通过以太网上网;3G/4G则是通过基带,利用蜂窝网络进行上网,之前已经简单的...

    看书的小蜗牛
  • 听说你Binder机制学的不错,来面试下这几个问题(一)

    看书的小蜗牛
  • RecyclerView定制:通用ItemDecoration及全展开RecyclerView的实现不同场景RecyclerView实现

    看书的小蜗牛
  • Sql自动配置器原理及其说明

    简介:Sa设置辅助器设计的初衷是为了抛开繁琐与重复的配置,这种繁琐到了一定程度回使人厌烦,重复到了一种程度让人觉得无趣,为了解决这种厌烦与无趣,她就出现与产生了...

    Java中文社群-磊哥
  • ElasticSearch(7.2.2)-es之query_string查询

    cwl_java
  • 如何避免Fundebug插件干扰Console输出

    Fundebug
  • array_shift() 函数

    实例 删除数组中的第一个元素(red),并返回被删除元素的值: <?php $a=array("a"=>"red","b"=>"green","c"=...

    似水的流年
  • array_shift() 函数

    似水的流年
  • 苹果iOS企业移动化生态系统意外的领导者

    在诺基亚塞班系统和黑莓操作系统各占智能手机市场半壁江山的情况下,iOS系统竟异军突起,意外地成为了企业移动化领导性操作系统,这大概连苹果公司本身都没有料到。消费...

    人称T客
  • 什么是差分数组?

    如果给你一个包含5000万个元素的数组,然后会有频繁区间修改操作,那什么是频繁的区间修改操作呢?比如让第1个数到第1000万个数每个数都加上1,而且这种操作时频...

    xujjj

扫码关注云+社区

领取腾讯云代金券