Ntrip协议简介

article/2025/10/6 17:04:44

Ntrip通讯协议1.0

什么是Ntrip

CORS(Continuously Operating Reference Stations)就是网络基准站,通过网络收发GPS差分数据。用户访问CORS后,不用单独架设GPS基准站,即可实现GPS流动站的差分定位。

访问CORS系统,就需要网络通讯协议。NTRIP( Networked Transport of RTCM via Internet Protocol)是CORS系统的通讯协议之一。

系统组成

使用NTRIP通讯协议的CORS系统,其组成请参考下图

1 Ntrip系统组成

NtripSource        用来产生GPS差分数据,并把差分数据提交给NtripServer

NtripServer        负责把GPS差分数据提交给NtripCaster

NtripCaster        差分数据中心,负责接收、发送GPS差分数据

NtripClient        登录NtripCaster后,NtripCasterGPS差分数据发送给它

NtripSource  NtripServer 一般已经集成到一台GPS基准站内,GPS基准站产生差分数据(扮演着NtripSource的角色),然后再通过网络发送给NtripCaster(扮演着NtripServer的角色)

NtripSource  NtripServer也可以分开:GPS基准站产生差分数据,然后通过串口发送给一个程序,这个程序再把差分数据发送给NtripCaster。这里GPS基准站扮演着NtripSource的角色,程序扮演着NtripServer的角色。

NtripCaster一般就是一台固定IP地址的服务器,它负责接收、发送差分数据。给NtripClient发送差分数据时有两种方案:一是直接转发NtripSource产生的差分数据;二是通过解算多个NtripSource的差分数据,为NtripClient产生一个虚拟的基准站(即VRS)。

NtripClient一般就是GPS流动站。登录NtripCaster后,发送自身的坐标给NtripCasterNtripCaster选择或产生差分数据,然后发送给NtripClient。这样GPS流动站即可实现高精度的差分定位。

3 NtripServer

NtripServer访问NtripCaster的步骤

1、与NtripCaster建立TCP连接;

2、给NtripCaster发送如下数据(↙表示\r\n0DH0AH):

SOURCE letmein /Mountpoint

Source-Agent: NTRIP NtripServerCMD/1.0

上面的Mountpoint是挂载点名称,注意它前面的/不能省略。NtripServer可能有多个,挂载点用来区分它们。

上面的letmein是此挂载点对应的密码。没有密码,随便一个程序都能连上挂载点,整个系统就很容易受到恶意攻击。

"Source-Agent: NTRIP NtripServerCMD/1.0"这一行不是必需的。它说明了NtripServer的软件名称和版本号。这里的软件名称为NtripServerCMD,版本号为1.0

3NtripCasterNtripServer的回复

挂载点、密码均有效,返回:

ICY 200 OK

挂载点或密码无效,返回:

ERROR - Bad Password

4NtripServerNtripCaster发送差分数据

NtripCaster回复ICY 200 OK后,NtripServer就可以给NtripCaster发送差分数据了。

4 NtripClient

NtripClient访问NtripCaster,一般有两个目的:获取源列表、获取差分数据。下面分别进行介绍。

4.1 获取源列表

多个NtripServerNtripCaster发送差分数据,这样NtripCaster获得的差分数据就有多个。NtripClient在获取差分数据之前,需要知道差分数据有几个?分别是什么格式的?……这就需要获取源列表,获取步骤如下:

1、与NtripCaster建立TCP连接;

2、给NtripCaster发送如下数据:

GET / HTTP/1.0

User-Agent: NTRIP GNSSInternetRadio/1.4.10

Accept: */*

Connection: close

"User-Agent: NTRIP GNSSInternetRadio/1.4.10"说明了NtripClient的软件名称和版本号。这里的软件名称为GNSSInternetRadio,版本号为1.4.10

3NtripCaster将返回如下数据,然后自动断开TCP连接

SOURCETABLE 200 OK

Server: NTRIP Trimble NTRIP Caster

Content-Type: text/plain

Content-Length: 441

Date: 02/Jun/2010:14:13:32 UTC

STR;RTCM23;RTCM23;RTCM 2.3;1(1),3(10),18(1),19(1);2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;

STR;CMR;CMR;CMR;CMR;2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;

STR;CMRP;CMRP;CMR+;CMR;2;GPS;SGNET;CHN;31;121;1;1;Trimble GPSNet;None;B;N;0;;

STR;DGPS;DGPS;RTCM 2.1;RTCM 2.1;2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;

STR;RTCM3X;RTCM3X;RTCM 3.X;1004(1),1005/1007(5),PBS(10);2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;

ENDSOURCETABLE

源列表数据以SOURCETABLE开头,以ENDSOURCETABLE结尾。

200 OK 表示一切正常。

"Server: NTRIP Trimble NTRIP Caster"是对NtripCaster软件的说明。

"Date: 02/Jun/2010:14:13:32 UTC"表示当前时刻。其格式并不固定,如:

Date: Sun, 01 May 2016 08:40:39 中国标准时间↙

以下内容就是源列表数据。"Content-Length: 441"表示源列表数据的字节数为441,含每行结尾的\r\n

STR;RTCM23;RTCM23;RTCM 2.3;1(1),3(10),18(1),19(1);2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;

STR;CMR;CMR;CMR;CMR;2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;

STR;CMRP;CMRP;CMR+;CMR;2;GPS;SGNET;CHN;31;121;1;1;Trimble GPSNet;None;B;N;0;;

STR;DGPS;DGPS;RTCM 2.1;RTCM 2.1;2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;

STR;RTCM3X;RTCM3X;RTCM 3.X;1004(1),1005/1007(5),PBS(10);2;GPS;SGNET;CHN;31;121;1;1;SGCAN;None;B;N;0;;

源列表数据中,一行表示一个挂载点。每行以分号分隔,其含义请见下表

序号

示例

 

1 

STR 

类型STR/CAS/NET,这里只对STR进行说明

2 

RTCM23

挂载点(Mountpoint

3 

RTCM23 

identifier 

4 

RTCM 2.3

差分数据格式

5 

1(1),3(10) 

数据11秒输出一次);数据310秒输出一次)

6 

2

载波相位数据 0—无 1—单频 2—双频

7 

GPS

导航系统,如:GPSGPS+GLOEGNOS

8 

SGNET

网络

9 

CHN

国家

10 

31

纬度

11

121

经度

12 

1

是否需要发送NMEA0—不需要 1—需要

13 

1

基站类型:0—单基站 1—网络

14 

SGCAN

产生此数据流的软件名称

15 

None

压缩算法

16 

B

访问保护 NNone BBasic DDigest

17 

N

Y/N

18 

0

比特率

19 

   

上文提到,NtripCasterNtripClient发送差分数据时分两种情况:

1、直接转发NtripSource产生的差分数据。在这种情况下,NtripClient只要指定挂载点即可;

2、通过解算多个NtripSource的差分数据,为NtripClient产生一个虚拟的基准站。在这种情况下,NtripClient不仅要指定挂载点,还要发送自身的坐标给NtripCasterNtripCaster根据这个坐标才能产生虚拟基准站。

NtripClientNtripCaster发送自身坐标,用到的就是NMEA里的GGA数据。上表的第12个数据说明了是否需要给NtripCaster发送GGA数据,0表示不需要,1表示需要。

4.2 获取差分数据

NtripClient获取差分数据的过程如下:

1、与NtripCaster建立TCP连接;

2、给NtripCaster发送如下命令

GET /RTCM23 HTTP/1.0

User-Agent: NTRIP GNSSInternetRadio/1.4.10

Accept: */*

Connection: close

Authorization: Basic VXNlcjpQd2Q=

上面的RTCM23是挂载点名称。

VXNlcjpQd2Q=是用户名、密码的Base64编码,解码后就是User:Pwd。也就是说用户名为User、密码为Pwd,它们之间以冒号分隔。

3NtripCaster的回复

如果用户名、密码、挂载点均有效,将返回如下数据:

ICY 200 OK

Server: Trimble-iGate/1.0

Date: Wed, 18 May 2016 07:20:55 中国标准时间↙

200 OK 表示一切正常。注意:有的服务器只返回200 OK,其余数据行不返回;有的服务器返回的200 OK后面没有回车、换行

如果用户名、密码、挂载点无效,将返回如下数据:

HTTP/1.0 401 Unauthorized

4、给NtripCaster发送GGA数据

GGA数据的示例如下

$GPGGA,230331,3115.27393,N,12133.89226,E,1,09,1.0,19.31,M,1,M,,*7F

注意:

1如上文所述,有的挂载点需要发送GGA数据,有的挂载点不需要发送GGA数据;

2UTC时刻格式必须为hhmmss,如:80331是不行的,必须改为080331

3)校验码必须正确。

5NtripCaster收到GGA数据后,将给NtripClient发送差分数据。

转载至:http://blog.csdn.net/hanford/article/details/53025771


http://chatgpt.dhexx.cn/article/B0RXLaY4.shtml

相关文章

NTP技术介绍

NTP 简介 NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP基于UDP报文进行传输,使用的UDP端口号为123。 使用NTP的目的是对网络内所…

NTPv4协议解析

前言 本文的撰写基于RFC5905.NTP 是时间网络控制协议,V4版本相交V3版本,修复了V3存在的一些问题。尤其是NTPV4的拓展时间戳鼓励使用浮动双数据类型,这样使得NTP能够更好的支持1ns的场景,轮询间隔也从上一代的最多1024s拓展到了36…

NTP 网络时间协议

目录 基本原理 结构 工作模式 单播C/S模式 对等体模式 广播模式 组播模式 多播模式 NTP访问控制 访问权限 KOD 认证功能 配置 NTP用于在一系列分布式时间服务器与客户端之间同步时钟。基于IP和UDP。NTP报文通过UDP传输,端口号是123. NTP主要应用于网络中…

NTP协议简介

NTP协议简介 一. datec dates分析1. 同步流程2. 缺陷 二. NTP(**Network Time Protocol**)1. NTP概述 [1、2、3、7]2. NTP的时钟同步原理与授时精度分析 [3、1、10]NTP的时钟同步原理NTP的授时精度分析 3. NTP中其它的提高授时精度的措施[1、6]参考资料 三. 对NTP改进以获得更高…

ntp同步详解

一、ntp服务是什么 1.定义 NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。 2.发展 首次记载在Internet Engineering Note之中,其精确度为数百毫秒。 稍后出现了首个时间协议的规范RFC-778,它被命…

NTP协议代码实现

本文将讲解NTP的代码实现和调试过程的一些记录。 首先,进行NTP报文结构体的构建。 //宏定义 #define NTP_TIMESTAMP_DELTA 2208988800ull //number of seconds between 1900 and 1970,1900-1970的时间差 #define SEC_TIME_ZONE (8*60*60) //B…

什么是Ntrip?Ntrip协议简介

文章目录 Ntrip通讯协议1.0Ntrip是什么?Ntrip系统组成NtripServerNtripClient4.1 获取源列表4.2 获取差分数据 其他资料 Ntrip通讯协议1.0 Ntrip是什么? NTRIP是在互联网上进行RTK数据传输的协议。所有的 RTK数据格式(NCT,RTCM&…

网络时间协议NTP介绍

定义 网络时间协议NTP(Network Time Protocol)是TCP/IP协议族里面的一个应用层协议。NTP用于在一系列分布式时间服务器与客户端之间同步时钟。NTP的实现基于IP和UDP。NTP报文通过UDP传输,端口号是123。 目的 随着网络拓扑的日益复杂&#xf…

计算机网络中网络时间协议NTP是什么原理?

NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。在计算机的世界里,时间非常地重要,例如对于火箭发射这种科研活动,对时间的统一性和准确性要求就非常地高,是按照A这台计算机的时…

NTP协议实现

本文出处: http://www.eefocus.com/html/10-04/94667s.shtml 10.4 实验内容 ——NTP协议实现 1.实验目的 通过实现NTP协议的练习,进一步掌握Linux网络编程,并且提高协议的分析与实现能力,为参与完成综合性项目打下良好…

NTP

NTP(Network Time Protocol) 网络时间协议 NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议。它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度…

NTP与PTP

NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP基于UDP报文进行传输,使用的UDP端口号为123。 使用NTP的目的是对网络内所有具有时钟的…

通信协议 - ntp时间同步

概述 NTP(Network Time Protocol)网络时间协议基于UDP,用于网络时间同步的协议,使网络中的计算机时钟同步到UTC,再配合各个时区的偏移调整就能实现精准同步对时功能。提供NTP对时的服务器有很多,比如微软的NTP对时服务…

NTP协议原理

什么是NTP协议 当第一次听到NTP时,完全不知道是什么概念,只好问度娘。度娘搜到的答案如下: 看了度娘的解释后,才大概明白该协议是进行网络对时的协议,比如当自己的电脑时间不对,可以从另外一台电脑病基于…

网络时间协议NTP

网络时间协议NTP(Network Time Protocol)是TCP/IP协议族里面的一个应用层协议。NTP用于在一系列分布式时间服务器与客户端之间同步时钟。 随着网络拓扑的日益复杂,整个网络内设备的时钟同步将变得十分重要。如果依靠管理员手工修改系统时钟&a…

NTP网络时间协议

转自https://www.sohu.com/a/206862105_130560 SNPT 秒级时间精度 NTP授时精度与NTP服务器与用户间的网络状况有关:广域网授时精度通常能达50ms级,但有时超过500ms;局域网授时不存在路由器路径延迟问题,因而授时精度理论上可以提…

NTP协议解析

NTP(Network Time Protocol,网络时间协议)是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。NTP基于UDP报文进行传输,使用的UDP端口号为123。 使用NTP的目的是对网络内所有具有时钟的…

NTP协议详解

前言 NTP(Network Time Protocol)网络时间协议基于UDP,用于网络时间同步的协议,使网络中的计算机时钟同步到UTC,再配合各个时区的偏移调整就能实现精准同步对时功能。提供NTP对时的服务器有很多,比如微软的NTP对时服务…

NTP 协议

NTP: Network Time Protocal 一、定义:为实现高精确度的时间同步,而设计的网络时钟同步协议。在Linux系统中,它的最新实现是NTP 4.0(一个分布式的网络时钟同步程序)。相关定义和实现参看RFC1305和www.ntp.org。NTP协议…

NTP(Network Time Protocol)协议详解

一、NTP的基本概念: NTP(Network Time Protocol)------网络时间协议-----应用层协议,用来在分布式时间服务器和客户端之间进行时间同步。 二、采用NTP的目的: 是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟…