首先理解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流程在定位中所处的位置如下图所示

#mermaid-svg-Ep7TTJUxibUqsc2T {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Ep7TTJUxibUqsc2T .error-icon{fill:#552222;}#mermaid-svg-Ep7TTJUxibUqsc2T .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-Ep7TTJUxibUqsc2T .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-Ep7TTJUxibUqsc2T .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-Ep7TTJUxibUqsc2T .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-Ep7TTJUxibUqsc2T .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-Ep7TTJUxibUqsc2T .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-Ep7TTJUxibUqsc2T .marker{fill:#333333;stroke:#333333;}#mermaid-svg-Ep7TTJUxibUqsc2T .marker.cross{stroke:#333333;}#mermaid-svg-Ep7TTJUxibUqsc2T svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-Ep7TTJUxibUqsc2T .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-Ep7TTJUxibUqsc2T .cluster-label text{fill:#333;}#mermaid-svg-Ep7TTJUxibUqsc2T .cluster-label span{color:#333;}#mermaid-svg-Ep7TTJUxibUqsc2T .label text,#mermaid-svg-Ep7TTJUxibUqsc2T span{fill:#333;color:#333;}#mermaid-svg-Ep7TTJUxibUqsc2T .node rect,#mermaid-svg-Ep7TTJUxibUqsc2T .node circle,#mermaid-svg-Ep7TTJUxibUqsc2T .node ellipse,#mermaid-svg-Ep7TTJUxibUqsc2T .node polygon,#mermaid-svg-Ep7TTJUxibUqsc2T .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-Ep7TTJUxibUqsc2T .node .label{text-align:center;}#mermaid-svg-Ep7TTJUxibUqsc2T .node.clickable{cursor:pointer;}#mermaid-svg-Ep7TTJUxibUqsc2T .arrowheadPath{fill:#333333;}#mermaid-svg-Ep7TTJUxibUqsc2T .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-Ep7TTJUxibUqsc2T .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-Ep7TTJUxibUqsc2T .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-Ep7TTJUxibUqsc2T .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-Ep7TTJUxibUqsc2T .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-Ep7TTJUxibUqsc2T .cluster text{fill:#333;}#mermaid-svg-Ep7TTJUxibUqsc2T .cluster span{color:#333;}#mermaid-svg-Ep7TTJUxibUqsc2T div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-Ep7TTJUxibUqsc2T :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

手机发起定位
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。

学习笔记:AGPS-SUPL架构相关推荐

  1. motan学习笔记 二 motan架构分析

    motan学习笔记 一 微博轻量级RPC框架Motan motan学习笔记 二 motan架构分析 motan学习笔记 三 motan Demo 分析 motan学习笔记 四 motan Demo 之 ...

  2. 架构mysql_MySQL学习笔记之MySQL架构

    MySQL 最重要.最与众不同的特性是它的存储引擎架构,这种架构的设计将查询处理及其他系统任务和数据的存储/提取相分离.这种处理和存储分离的设计可以在使用时根据性能.特性,以及其他需求来选择数据存储的 ...

  3. 5G 学习笔记 - NSA - ENDC架构

    我们先来看下ENDC/EN-DC总体网络架构(37.340): 再看一下各种Cell Group(MCG/SCG), Cell(PCell, PSCell, SpCell...)及Bearer(MCG ...

  4. Istio服务网格实践指南 学习笔记(二) Istio架构

    个人学习Istio系列  学习笔记 Istio架构篇 本篇部分参考原书 https://jimmysong.io/istio-handbook/ 仅为个人学习笔记 这幅图中描述了以下内容: 1.Ist ...

  5. 安信可TG-12F模组学习笔记 ① 在AliOS-Thing架构上快速开发实现一个天猫精灵插座。

    文章目录 一.前言 二.环境搭建 获取SDK 三.编译代码和烧录固件 四.烧录阿里云五元组 第一步:获取到模块的mac地址 第二步:到阿里云新建产品: 第三步:人即交互设置: 第四步:生成调试设备: ...

  6. MySQL实战45讲学习笔记:MySQL架构(第一讲)

    一.MySQL逻架构图 二.连接器工作原理刨析 1.连接器工作原理图 2.原理图说明 1.连接命令 mysql -h$ip -P$port -u$user -p 2.查询链接状态 3.长连接端连接 1 ...

  7. Qt学习笔记-----Model/View架构

    为了实现数据的存储和表现分离,Qt提供了Model/View架构,包括三个部分,分别是模型(Model),视图(View),委托(delegate). Model用于访问底层数据,也就是说为其他组件访 ...

  8. Nhibernate 3.0 cookbook学习笔记 配置与架构

    NHibernate项目中都有App.config,主要是用来配置项目中的日志与数据库等. 典型的App.config配置文件(这里包括log4net): View Code <?xml ver ...

  9. SOA学习笔记001---SOA 服务架构之简介及理解

    SOA 英文: Service-Oriented Architecture,面向服务的架构. 是一种面向通用集成服务的.松耦合的架构实现方式,是web时代服务发展的产物: 使用"分层&quo ...

  10. Docker 学习笔记(Docker 架构 / 镜像 / 容器 / 常用命令 / Dockerfile / 镜像仓库)

    Docker 1. Docker 入门 1.1 Docker 是什么 1.2 Docker 和 虚拟机 1.3 镜像 容器 仓库 1.4 Docker 架构 1.5 Docker 安装 1.6 doc ...

最新文章

  1. Android OpenCV 边缘检测 Canny 的使用
  2. Android LayoutInflater 的使用
  3. caffe prototxt分析
  4. 在Python中对子进程进行非阻塞读取
  5. vscode 默认初始化_VSCode设置初始化模板
  6. 分布式缓存系统之Memcached
  7. 计算机网络:第一章 概述
  8. crontab命令的使用
  9. 阿里开发者们的第16个感悟:让阅读源码成为习惯
  10. [HDU]1723Distribute Message
  11. python三本经典书籍-Python入门经典书籍有哪些?有这三本就够了
  12. Substance PBR Guide
  13. hdu 4128 Running relay (线性规划转半平面交)
  14. 完美卸载SQL Server2014数据库
  15. Servlet原理:
  16. ubuntu显卡驱动掉了重新装
  17. 日常记账后,图表查看账目类别
  18. 2022 年七大前沿科技:每一项都能改变世界
  19. 文献阅读:SNCSE: Contrastive Learning for Unsupervised Sentence Embedding with Soft Negative Samples
  20. 从几何角度切入最近邻

热门文章

  1. WIN10专业版如何调整系统字体大小
  2. 客户端的gzip解压
  3. NX/UG二次开发—装配—实现标准件库添加组件效果
  4. 英飞凌TC297 PSPR与DSPR
  5. 大数据第三季--spark(day1)-徐培成-专题视频课程
  6. 图像直方图均衡 matlab,图像直方图均衡化
  7. Fall 2020 Berkeley cs61a hw02答案
  8. 微信棋牌H5游戏开发教程以及如何有效防止被人恶意攻击
  9. 浅谈前端开发过程中使用的代理方法
  10. matlab 图例legend中实现换行