移动数据通信网络工作原理(SGSN&GGSN)

Posted 皖南笑笑生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了移动数据通信网络工作原理(SGSN&GGSN)相关的知识,希望对你有一定的参考价值。

最近公司在做移动网络的优化和治理工作,借这个机会,好好学习了下移动网络底层传输的工作原理,并将结果分享出来。

1 移动网络的演进

GSM(Global System For Mobile Communications)是第一代移动通信网络,也就是常用的2G移动电话系统。其做出的改变是将信令和语音信道都转换成数字式的。
GPRS(General Packet Radio Service)是第二代移动通信系统,在GSM的基础上,采用分组交换传输数据的高效率方式,利用“包交换”(Packet-Switched)将数据封装成许多独立的封包,再将这些封包一个一个传送出去,效率比GSM高的多,因为这样做,只有在需要传输时,才会占用带宽。GPRS核心网元包括SGSN(Serving GPRS Support Node)和GGSN(Gateway GPRS Support Node)
UMTS(Universal Mobile Telecommunications System)在GPRS的基础上,引入了WCDMA空中接口技术,“空中接口”相对于有线通信中的线路接口,是基站和移动电话之间的无线传输规范,它定义每个无线信道的使用频率。UMTS被称为第三代移动通信系统。同时,GPRS/UMTS也成为了一个完整的3G移动通信技术标准。
LTE(Lang Term Evolution)是目前普遍应用的4G通信的主流技术,原有3G核心网的SGSN和GGSN功能归并后重新被划分,生成新的逻辑网元:移动管理实体(MME)和服务网关(Serving Gateway)。换言之,3G和4G核心网络的逻辑架构是不同的,演进过程中需要对SGSN和GGSN的软硬件进行升级。
综上所述,GPRS/UMTS起到了承前启后的作用,其工作原理与机制也被4G、5G所沿用并优化。因此我们详细来看GPRS/UMTS系统。

2 GPRS/UMTS网络架构

简单来说,GPRS/UMTS的网络架构主要包括两部分:无线接入网络(RAN)和核心网(CN)。如下图所示:

2.1 无线接入网RAN

无线接入网(Radio Access Network),简称RAN。RAN中包括的设备包括有:基站(Node B)和无线网络控制器(RNC),主要的功能就是控制用户通过无线接入到移动通信网络中来。
其中,基站的作用是为了数据的无线传递,而RNC主要用于管理和控制它下面的多个基站,并决定接入到核心网。

2.2 无线核心网CN

现阶段,3G核心网由电路域(CS域)和分组域(PS域)两部分组成,分别负责传统语音业务和分组域业务(数据和多媒体业务),我们只看PS域。
PS核心网主要由SGSN和GGSN两部分组成。统称为GSN,GSN的功能包括:

  1. 过滤和用户访问控制:通过数据包过滤功能过滤出未经授权和未经请求的消息,所有这类消息由用户控制处理。在用户请求访问外部分组数据网之前,可以发起对用户身份的鉴权流程。
  2. 计费:收集必要的话单数据,以支持按照签约付费或者按照流量付费。
  3. 中继:把从一个节点收到的数据转发到路由表指定的下一个节点。
  4. 路由:路由功能按照消息的目的地址决定转发的下一个节点,并选择传输路径。
  5. 地址转换和映射:地址转换是把一个地址变成不同种类的一个地址,比如把一个分组数据网络协议地址变成一个内部网络地址,使得该数据能在内部网络上路由。地址映射是把一个地址变成相同种类的另一个地址,以便在内部网络上路由和中继。
  6. 封装:封装是在一个数据单元上增加地址和控制信息,以便在内部网络或者之间的网络上路由。去封装是把地址和控制信息,从数据包上去掉,以恢复原始数据单元。
  7. 隧道:隧道功能是在内部或之间的网络上把封装后的数据从一个封装点传送到另一个去封装点。一个隧道一条双向点到点的路径。只有隧道端点能够识别。
  8. 移动性管理:移动性管理功能用于在内部或之间,跟踪移动台当前的位置

SGSN

SGSN主要用于为在其地理范围内的移动站传递数据包,相当于无线网络中的路由节点。它可以进行分组路由和转发,移动性管理(附着,去附着和位置管理),逻辑链路管理,鉴权以及计费功能。SGSN的位置寄存器保存着位置信息,比如当前的小区。
SGSN的主要功能包括:
1 完成和GGSN的通信,通过GTP协议将用户数据传递给GGSN,并将GGSN返回的数据传递给用户
2 当用户地理位置发生变化,执行移动性管理。

GGSN

GSGN作为整个GPRS/UMTS网络的网关,位于GPRS网络和外部分组交换网络(Internet)之间。网关的作用能将一种协议格式的数据转换为另一种格式的数据。
GGSN把来自的SGSN的GPRS数据包转化为适当的分组数据协议格式,比如IP,然后再把它们发送到相应的分组数据网络,比如广域有线网。反之亦然。

SGSN和GGSN的区别

所以,GGSN和SGSN的主要区别就在于,GGSN作为网关,是在不同的通信网中转换协议,而SGSN作为路由,只是在使用相同协议的网络中发送、接受以及延迟它的数据包。
另外,GGSN能够实现地址的转换,比如把无线网络内部地址(PDP地址)转换为一个分组数据网络协议地址(IP地址),而SGSN只能实现PDP地址映射,即根据一个地址,映射到相同种类的另一个地址。可见,我们常说的3、4G网络的IP地址,其实就是对应GGSN的出口IP地址

2.3 GTP隧道协议

GTP协议为GPRS/UMTS分组域核心网中的SGSN和GGSN之间的信令和用户数据提供隧道。隧道协议能够将其他协议的数据帧或包重新封装然后通过隧道发送。新的帧头提供路由信息,以便在不同网络下传递被封装的负载数据
GPRS隧道通过GTP协议封装了含有终结点标识TEID的头,用于实现路由以及多路复用。在核心网内部通过GTP协议通信,在外部数据网侧是TCP协议或者UDP协议通信,所以数据报在这两种网络间交互需要对数据报头进行处理(SGSN、GGSN都可以实现)。进入核心网时需要对数据报进行加GTP头处理,反之,则需要对数据报进行去GTP头处理。

3. 无线核心网工作原理

在GPRS/UMTS分组域核心网中,通过PDP上下文(Pocket Data Protocol, 分组数据协议)来管理用户从移动终端到GGSN及外部分组数据网的数据路由信息。PDP上下文的数据分别存储在移动终端、SGSN和GGSN中。移动用户需要使用分组数据业务时,需要先执行激活PDP上下文,激活成功后,在移动终端、SGSN和GGSN中就增加了一条新的PDP上下文记录,根据这条记录信息,SGSN和GGSN才能正确地路由和转发用户数据
所以,一个完整的分组业务过程包括三个阶段:

  • 分组域会话连接建立阶段:用户在移动终端一侧发起激活PDP上下文的请求,GPRS/UMTS接受用户的请求并建立新的PDP上下文。PDP上下文包含了映射和路由信息,用于在移动台和GGSN之间转发数据;
  • 分组域会话阶段:用户得到PDP上下文建立成功的确认后,开始使用外部分组数据网络提供的数据业务(简单说,开始使用互联网Internet服务)。GPRS/UMTS网络在移动终端和互联网之间透明地路由并转发分组数据,同时,提供数据封装功能(GTP),保证在不同网络环境下,数据与路由的正确性。
  • 分组域会话结束连接阶段:当用户不再需要使用上述数据业务时,GGSN释放PDP地址。

3.1 分组业务会话连接建立

如下图所示,移动终端发送PDP激活请求消息给SGSN,SGSN验证PDP类型,根据地址转发到GGSN。GGSN在PDP上下文表中加入一条新的记录,这条新的记录允许GGSN在SGSN和互联网之间正确地路由通信。
GGSN返回一条响应消息给SGSN,SGSN更新自己的PDP上下文表,可以在GGSN和移动终端之间正确的路由通信。并发送响应告知移动终端建连成功。

3.2 分组会话传输

当PDP上下文成功建立后,该用户就可以通过GPRS/UMTS网络,在移动终端使用分组数据网提供的各种应用程序,如HTTP、FTP、邮件和流媒体业务。

3.3 分组会话结束

当用户不再使用业务时,移动终端发送去激活消息给SGSN。SGSN发送删除PDP上下文请求给GGSN,GGSN删除PDP上下文,并返回消息给SGSN。SGSN将去激活响应消息再返回给移动终端。

4. 移动网络优化建议

移动网络传输的特性对我们的性能策略提出了新的、独特的要求。应用层协议虽然相同,但物理传输层的差别却有很多限制,如果对这些限制估计不足,就会导致响应速度慢、延迟时间摇摆不定,最终导致用户体验大打折扣。
底层的无线传输优化必须依赖于运营商,作为应用程序提供方,参考《Web性能权威指南》,我们可以做的事情包括:

4.1 APP节约用电

手机无线电模块的耗电量仅次于设备的屏幕,全功率打开无线电模块只消几小时就可耗尽电量。我们应该尽最大可能在无线电开启时传输数据,而尽量把唤醒无线电以传输数据的次数减到最少。
这里提供给开发和测试一款开源工具,可以用于测试和评估应用程序的耗电量:Application Resource Optimizer(ARO,应用资源优化器)工具包

ARO包含两个组件:收集器和分析器。其中,收集器是一个后台android应用(可以在手机或模拟器中运行),用于捕获传输的数据分组、无线模块活动息及其他与手机的交互行为。要想记录用电情况,可以打开收集器,点击记录,使用应用,然后将记录结果复制到系统中。
得到记录结果后,可以通过分析器打开它,从而得知无线电状态、电量消耗、应用的通信模式等信息。另外,分析器有一个很不错的功能,即针对常见的性能陷阱提供建议,比如没有压缩、重复传输数据,等等。

4.2 服务端推送优于客户端轮询

轮询在移动网络中代价极高,少用,尽可能使用推送和通知,且要控制推送频率。一般来说,推送比轮询效果更好。但频率过高的推送与轮询也不相上下。
对推送而言,原生应用可以访问平台专有的推送服务,因此应该尽可能使用。对Web应用来说,可以使用SSE(Server Sent Events,服务器发送事件)和WebSocket以降低延时间和协议消耗,尽可能不使用轮询和更耗资源的XHR技术。

4.3 面对多网络瞬态变化的现实

即便用户手里拿着最新的手机,也需要不断在4G、3G,甚至2G网络之间切换。我们的应用必须接受这些接口变化,作出相应调整:

  • 不要缓存或试图猜测网络状态;
  • 调度请求、监听并诊断错误;
  • 瞬态错误总会发生,不可忽视,可以采取重试策略;
  • 监听连接状态,以便采用最佳请求方式;
  • 对重试请求采用补偿算法,不要永远循环;
  • 离线时,尽可能记录并在将来发送请求;
  • 利用H5的AppCache和localStorage实现离线应用。

5. 根据移动通信原理解释常见的网络疑问

了解了移动数据核心网络的架构和工作原理后,对我们分析用户常见的一些网络现象和问题帮助很多,比如说:
场景一:在同一个地区,使用同一个运营商的同一个基站的用户出口IP是否相同?
不相同,正如我们上面说的,基站的作用其实仅仅是无线数据的传递(只涉及到物理层和数据链路层),而真正决定用户出口IP的是GGSN(GGSN将无线地址转换成IP地址)。而每个地区运营商的GGSN,使用的不只一个IP地址,而是一个IP地址池。
所以同地区运营商的用户,IP地址不同,但会处于一个网段中。同时,每个用户的IP在一定时间内会变换(GGSN会从地址池中更新IP)
场景二:为什么手机漫游到外省后上网却显示归属地 IP?
比如用户是上海联通的,来到南京,显示的仍是上海联通的IP。
漫游用户接入互联网的方案有两种:1. 归属地接入方式,2. 漫游地接入方式。苹果手机默认使用归属地接入方式。
归属地接入方式就是无论用户漫游还是在本地,最终都是通过归属地的GGSN连接到互联网的。归属地接入方式的好处就是各省之间的计费话单对账方便,缺点就是增加了时延。
漫游地接入方式顾名思义就是直接使用漫游地运营商的GGSN/P-GW接入Internet,此时用户所使用的公网IP地址就是漫游地的IP地址。漫游地接入方式的优点就是省去了数据可能要绕大半个中国甚至大半个地球的麻烦,有利于降低时延,节省长途链路资源等等。
场景三:漫游手机用户的网络问题应该如何排查?
漫游手机用户的网络问题肯定是由于漫游地运营商网络造成的。而如果采用归属地接入方式的话,网络问题有可能是归属地运营商网络造成,也有可能是由漫游地的SSGN无线核心网造成的。

以上是关于移动数据通信网络工作原理(SGSN&GGSN)的主要内容,如果未能解决你的问题,请参考以下文章

Hub&Switch工作原理,冲突域,以太网帧结构笔记(2017年10月9日 11:15:46)

GGS 双向复制字段被置NULL 问题

4G的基本工作原理是啥?

nfc的工作原理是啥?

路由器的工作原理

Netty模型篇一:Netty 线程模型架构 & 工作原理 解读