这篇文章转载自我的公众号
前言
前几年我爷爷总是想弄明白我到底是干啥的。有一次他问我说:“你说你是个工程师,你都搞啥工程啊,有啥用啊?”我说:“爷爷,我的工作就是为了让手机更好更快的上网打电话。”我爷爷表示,“手机上网我也玩不明白啊”。
其实即便年轻人,对网络很熟悉,对手机玩的很溜的人,大部分除了见过写着“中国移动”四个大字的铁塔和听说过路由器以外,对非wifi状态下手机是如何上网的也是不清楚的。那今天我们来简单说说移动通信LTE网络。
移动通信LTE网络的架构
首先我们把整个移动通信网络简单分成三部分:
- 无线接入网
- 承载网
- 核心网
无线接入网(E-UTRAN)由多个eNB组成,eNB由BBU+RRU组成,分别是基带处理和射频单元。无线接入网负责对UE无线信号的收发处理,并与核心网通信。无线设备一般在室外,我们能见到的铁塔,基站和基站旁边的小屋子都是。
核心网(EPC)一般在我们看不到的地方,比如某个地市的移动公司的机房里。核心网由多个设备组成,每个设备简化的功能如下:
- MME负责跟踪手机位置和对手机进行接入控制等等
- S/PGw负责手机上网业务的数据转发等等
- HSS负责号码签约和开户的信息等等
- PCRF负责限速和策略等等
承载网负责以上设备之间的通信,由光纤,路由器,交换机,防火墙等设备处理数据转发。一般也在我们看不到的地方。
以上设备再加上UE(终端)就成为简单的端到端4G LTE网络。其他诸如IMS(多媒体和高清语音业务),定位广播业务等等不在基础流程里,就不赘述了。
那手机又是如何有了信号的呢?
LTE手机开机流程
手机开机后,首先按照PLMN(可以理解为运营商的ID)列表,在表内逐一尝试搜索接入该PLMN的小区(即cell)并驻留,成功后通过无线向核心网发起附着请求(请求接入核心网)。
核心网收到手机的附着请求后,要经过多个设备间的互相交互,才能最后准许手机接入网络。极简化后如下:
- 双向鉴权:手机和核心网互相验证对方合法性。
- MME通知S/PGw建立承载(就是一条手机去往互联网的通路)。
- 一切完成后,MME通知手机附着完成,手机回复OK。
如果觉着这三条不过瘾的朋友,可以看下面大图,或者移步3GPP(行业组织)规范的23.401。
但是既然简述嘛,就不赘述这么麻烦的流程了,而且还指望看到这里的同学继续往下看,而不是被这个大图唬住了。这个流程看似复杂繁琐,但是实际,一般几百毫秒就完成了,甚至更短。这时看一下手机的信号那里,运营商和4G的标志就有了。
那么现在你即便什么都不做,手机里自带的某些功能或者各种自启动的APP已经开始工作了。比如,操作系统先去自己的网站查查系统是否有更新呀,某些APP开始去DNS查询自己服务器的IP呀,等等等等。
最后问题就剩下,手机又是怎么上网的呢?我的数据如何到达APP的服务器呢?
手机的上网数据传输路径
这就要往回说到建立承载的时候。所谓承载(像一个VPN一样),我们可以理解为这是一个从手机到运营商提供的互联网之间的一个通路,这个通路上主要处理用户上网业务的设备就是无线的eNodeB和核心网的S/PGw。
上图是网络设备转发用户面上网数据的协议栈。可见这个通路上,用户的数据基本都被运营商的设备所封装起来。在核心网里用来封装真实上网数据的就是GTP-U协议,核心网在转发上网数据时用这个协议将真实上网数据裹起来在运营商内部传输。直到数据通过PGw之后,PGw(网关)将GTP-U协议的包裹去掉,按照手机原来的目的IP地址将数据路由出去。
鉴于国内公网地址资源不多,核心网给手机一般分配私网地址(比如10.x.x.x),而访问比如baidu.com必然需要公网地址,那么数据从网关转发后,一般还需要过防火墙,用NAT技术(地址翻译)实现私网地址到公网地址的转换。
这样,再经过公网上各种路由器等网络设备,手机用户的上网数据终于到达APP的服务器了。
结语
写的有点多了,希望大家不要看困了~~~
当然,也可以一言以蔽之,为啥能上网,是因为我交话费啦!