NTRIP Protocol
NTRIP (Networked Transport of RTCM via Internet Protocol) streams RTK correction data from reference stations to rovers over the internet. It is the standard mechanism for delivering RTCM3 corrections to the LC29H(BA) and LC29H(DA).
Protocol Overview
Section titled “Protocol Overview”NTRIP is built on HTTP/1.0 over TCP with three roles:
- Caster — Receives RTCM3 streams from base stations and redistributes them to clients. Typically listens on port 2101.
- Server — A base station that pushes RTCM3 data to the caster.
- Client — A rover that pulls RTCM3 data from a specific mount point and forwards it to the GNSS module over serial.
The client opens a TCP socket, sends an HTTP/1.0 GET request, and reads a continuous binary RTCM3 stream from the response body. No chunked encoding, no keep-alive, no TLS in the original spec (some modern casters support HTTPS).
NTRIP 2.0 adds the Ntrip-Version: Ntrip/2.0 header and uses standard HTTP response codes. NTRIP 1.0 uses ICY 200 OK as the success response.
Source Table Request
Section titled “Source Table Request”To discover available mount points:
GET / HTTP/1.0Host: caster.example.comUser-Agent: NTRIP lc29hNtrip-Version: Ntrip/2.0The caster responds with a source table. Stream entries use the STR prefix:
STR;mountpoint;identifier;format;format_details;carrier;nav_system;network;country;lat;lon;nmea;solution;generator;compression;auth;fee;bitrate;miscMount Point Connection
Section titled “Mount Point Connection”To connect to a specific mount point with Basic authentication:
GET /MOUNT_POINT HTTP/1.0Host: caster.example.comUser-Agent: NTRIP lc29hAuthorization: Basic base64(username:password)Ntrip-Version: Ntrip/2.0On success, the caster responds with ICY 200 OK (NTRIP 1.0) or HTTP/1.1 200 OK (NTRIP 2.0), followed by continuous binary RTCM3 frames.
GGA Position for VRS Networks
Section titled “GGA Position for VRS Networks”Virtual Reference Station (VRS) networks require the rover’s approximate position to generate corrections. The client periodically sends GGA sentences to the caster:
$GPGGA,hhmmss.ss,ddmm.mmmmm,N,dddmm.mmmmm,E,q,ss,h.h,a.a,M,g.g,M,t.t,rrrr*hhRTCM3 Binary Framing
Section titled “RTCM3 Binary Framing”RTCM3 messages arriving from the caster use binary framing:
D3 [reserved:6][length:10] [message_data] [CRC24Q:3]| Field | Bytes | Description |
|---|---|---|
| Preamble | 1 | 0xD3 |
| Reserved + Length | 2 | 6 reserved bits + 10-bit data length (0–1023) |
| Message Data | variable | RTCM3 message payload |
| CRC | 3 | CRC-24Q integrity check |
Common RTCM3 Messages
Section titled “Common RTCM3 Messages”| Message | Constellation | Description |
|---|---|---|
| 1005 | — | Base station ARP (ECEF position) |
| 1074 | GPS | MSM4 compact observables |
| 1077 | GPS | MSM7 full observables |
| 1084 | GLONASS | MSM4 |
| 1087 | GLONASS | MSM7 |
| 1094 | Galileo | MSM4 |
| 1097 | Galileo | MSM7 |
| 1124 | BeiDou | MSM4 |
| 1127 | BeiDou | MSM7 |
| 1230 | GLONASS | Code-phase bias |
Data Flow
Section titled “Data Flow”Base Station (BS variant) │ RTCM3 over serial ▼NTRIP Server (STRSVR / rtkbase) │ TCP to port 2101 ▼NTRIP Caster (rtk2go.com) │ HTTP/1.0 response ▼NTRIP Client (lc29h ntrip / QGNSS) │ RTCM3 over serial ▼RTK Rover (DA/BA variant)Connection Lifecycle
Section titled “Connection Lifecycle”- Resolve caster hostname to IP address
- Open TCP connection to caster port (default 2101)
- Send HTTP GET with mount point path and Basic auth
- Read response status (
ICY 200 OKorHTTP/1.1 200 OK) - Begin reading continuous RTCM3 binary stream
- Forward each complete RTCM3 frame to the GNSS module via serial
- Periodically send GGA position to caster (for VRS networks)
- Monitor connection health — reconnect on timeout or TCP error
- Close TCP socket when done
Timeout Recommendations
Section titled “Timeout Recommendations”| Parameter | Value | Notes |
|---|---|---|
| Connection timeout | 10 seconds | TCP connect to caster |
| Response timeout | 15 seconds | Waiting for ICY 200 OK |
| Data timeout | 30 seconds | No RTCM3 data received |
| GGA send interval | 10–60 seconds | Required for VRS |
| Reconnect backoff | 5 seconds initial, exponential | Avoid overwhelming caster |
Public Casters
Section titled “Public Casters”| Caster | Host | Port | Auth | Notes |
|---|---|---|---|---|
| rtk2go | rtk2go.com | 2101 | email (free) | Largest public caster |
| UNAVCO | caster.unavco.org | 2101 | varies | US academic network |
| HKGS | landsd-gncaster.realtime.data.gov.hk | 2101 | psi_user/psi | Hong Kong |