首先理解AGPS不同的分类格式
1、承载框架:Control plane(CP)、User plane(UP)
CP走的是专用信令通道——利用3GPP协议,稳定性高,成本高
UP走的是TCP/IP数据通道——利用SUPL协议,稳定性低,成本低
2、从具体位置计算方式:
Mobile Station Assisted(MSA):AGPS服务器计算位置
Mobile Station Based(MSB):终端计算位置
链接: link
3、从定位发起方式:
SET INIT(SI 终端始发定位请求)
Network INIT(NI 网络始发定位请求)
4、从启动方式:
冷启动、热启动、温启动
5、网络制式协议
3GPP: 2G:RRLP 3G:RRC 4G:LPP/LPPe
SUPL:1.0/2.0

SUPL流程在定位中所处的位置如下图所示

OMA-SUPL协议

SUPL架构主要包含三部分
SET(SUPL Enable Terminal):AGPS服务的客户端,例如Android智能手机

SLP(SUPL Location Platform):包含两个重要组成部分SLC和SPC
1>SLC(SUPL Location Center),和SET交互,例如处理来自SET的请求
2>SPC(SUPL Positioning Center),进行定位计算
SET直接和SPC交互, 则称为非代理工作模式。SET借助SLC与SPC交互的话, 则称为代理模式

SUPL Agent:一个需要获取位置信息的应用程序,可以运行在SET中,也可以运行在SUPL
Network中。定位请求只能由SUPL Agent发起,两种定位发起方式:
SUPL Agent在SET中—-SET Initiated请求(终端始发定位请求
SUPL Agent位于SUPL Network中—-Network Initiated请求(网络始发定位请求

其余部分:连线用于表示它们之间交互所使用的协议等信息。

网络始发定位请求时,SLP需要通知目标SET参与定位工作(终端始发定位请求中, 请求的发起者与SET在一个设备上)—-流程SUPL INIT。
SUPL INIT支持的协议很多,例如通过SIP、WAP、SMS等,或者直接利用UDP、TCP等。
SIP、 WAP或SMS等协议时需要借助移动通信领域中现有的组件(如SMS需要先通过短
信息中心SMS Center来处理)。
其他必要的组件,组件与SLP交互的协议,如SMSC、 SIP/IP Core、 WAP PRG( Wireless Application Protocol Push Proxy Gateway) 、 PAP( Push Access Protocol) 、 POTAP( Push Over The AirProtocol) 等

SET和SLP交互的流程由ULP(User Location Protocol)实现
SLP中, SLC和SPC交互的协议叫ILP( Internal Location Protocol)。

ULP流程
SET和SLP之间该如何交互以完成定位请求。
两类:
SUPL Agent在SET中—-SET Initiated请求(终端始发定位请求)
定位请求只能由SUPL Agent发起,典型的使用案例就是在Android手机中打开导航类应用, 这将触发手机发起一次定位请求。

SUPL Agent位于SUPL Network中—-Network Initiated请求(网络始发定位请求)
某些网络服务需要跟踪SET的位置, 就会使用这种方式。

(1) SET Initiated ULP工作流程

1)SET首先和SLP建立数据链接,为了保证数据的安全性, 这个链接需要基于
TLS(Transport Layer Security, 传输层安全)。
图中的D/H-SLP(Discovered/Home-SLP), H-SLP即SET所在运营商所建立的SLP, 而D-SLP为SET搜索到的SLP。

2)SET发送SUPL START命令给SLP, 该命令携带了一些参数, 包括locationId( 如
果使用移动通信网络, 则该参数包括基站的Cell Info。若使用WIFI,则参数包含AP的信息)、sETCapablilities(SET的能力, 如支持的定位数据封装协议、 支持的定位方法等)。

3)SLP回复SUPL RESPONSE命令给SET。
RESPONSE命令包含了SLP支持的定位方法(由posMethod表示),以及SLP支持的定位能力(由sLPCapabilities描述)。

4)SET发送SUPL POS INIT命令给SLP, 该命令包含了SET的初始位置等信息。

5)SET和SLP通过一个或多个SUPL POS消息来计算位置。
根据AGPS使用的模式(MSB或MSA),位置的计算方法也不尽相同。

6)当位置计算完毕后, SLP发送SUPL END命令给SET, 二者随后断开TLS链接。

(2)Network Initiated ULP工作流程

SUPL Agent位于SUPL Network,与SLP的交互遵守MLP(Mobile Location Protocol)。

1)SLP收到SUPL Agent的SLIR( Standard Location Immediate Request) 请求后, 它将发送SUPL INIT命令给SET

2)如果SET和SLP此时还没有建立数据链接, SUPL INIT将通过OMA Push消息或数据短信等方式发送给SET, SET收到SUPL INIT命令后将和SLP建立数据链接

3)SET发送SUPL POS INIT命令给SLP, 该命令包含了SET的初始位置等信息。

4)SET和SLP通过一个或多个SUPL POS消息来计算位置。

5)当位置计算完毕后, SLP发送SUPL END命令给SET, 二者随后断开TLS链接。

6)SLP最终通过SLIA( StandardLocation Immediate Answer) 将定位信息发送给SUPL Agent。