Raw TCP/IP Connections

A RAW TCP/IP data stream connection can be set up for those (often older) GNSS Base Station devices which do not implement the NTRIP protocol.  [The NTRIP protocol lives on top of the HTML protocol, which in turn uses TCP/IP to send packets of data, typically containing RTCM messages]  Such older devices cannot act as NTRIP Servers to forward their data to SNIP acting as an NTRIP Caster in the normal way.  The RAW TCP/IP feature allows bringing such machines into your network without additional hardware or software devices.

Note: This mode is for remote machines that need to connect and then send data to your SNIP node. If you have a remote device that supports RAW TCP/IP but does not implement NTRIP which you want to connect to from SNIP, you can simply connect to it using the Remote-Relay tab.  The connection will send correct NTRIP details to the remote machine (which it will not understand and will ignore), and then that machine will start streaming its message traffic back to you.  You can set up suitable Caster entry details with the Manual Caster button or let SNIP compute them for you by looking at the RTCM3 message stream. The key difference is which party initiates the connection process.

To create a new RAW TCP/IP data stream, press the Add New Port button on the RAW TCP/IP tab.

This in turn brings up the Edit RAW TCP Server Slot dialog box (below) where the port number to be used (as well as other items) is entered.


These values are entered for the new RAW TCP/IP server port that will be opened when the Save button is pressed.


The control settings are described further below.

Port Number

The port number is the primary key value when creating a new RAW TCP/IP port to accept data. The dialog presents an automatically determined value which the user can use, although they may choose to enter a new value.  These values start at port number 3000 and proceed upwards checking for the first non-used port.

When the user enters a new port number, SNIP then checks for any existing conflicts and will note any that are found.  The user may use any value from 1 to 65535 as long as the machine is not using that port for another service.  [If the port cannot be used, an error message is shown when the service is started]

Ports in the range 1~1023 (so-called “well known ports”) are in general to be avoided due to the risk of conflicts with other services on the host machine.  But you are free to use them if you are certain that they are not used on the machine.  For example, it would be unusual (but not unknown) to use port 80 (http web services) for an inbound RAW TCP/IP connection.  When using any of these well known ports, a cautionary message is provided to the user.


If a selected port’s number is known to be a conflict with other SNIP service, an error message is shown.


The IP value used is, by default, the same IP that SNIP is currently using to service NTRIP Clients.  This process also supports multi-homed PCs (PC which have multiple network cards) that SNIP supports.

Note: The remote sending device would then send its raw data to this port [in the first image the IP:Port would be:]   This IP value can be registered with DNS if desired and can use port forwarding from your firewall.  When the connection occurs, the mountPt names will be used (as well as the Caster Table entry details) in the local Caster table.

Allow Only This IP to connect

This is a very important button and should be checked whenever possible.  When checked, it then limits the remote IP that can connect to the one value that is specified.  If the button is not checked, then any IP located anywhere in the world can connect to your machine.  Further, only the first connection which is made will be accepted (all secondary connections are refused).


This is the IP numerical value (in the normal xx.xx.xx.xx format) that is allowed to connect to your machine (when the check box Allow Only This IP to connect is checked).


The is the mountPt name which will be used to publish this data stream in SNIP‘s Caster Table.

You can enter any valid mountPt name you desire and SNIP will fill in the remainder of the caster table if parsing is enabled (the selected mountPt name still subject to changes from resolving any duplicate names).

If the Configure button is pressed, the normal Caster Table dialog is presented and the user can fill in additional details about the data stream.  This is most valuable when the data stream is not in an RTCM3 format.

Note: Unlike the “normal” NTRIP connection method where the sender provides its own Caster Table entry details for the Caster to use, in the Raw TCP/IP mode the entry details which were previously set up are used for the connection.  The data sender is oblivious to these values.


This check box enables the RTCM3 message parsing process to occur on the stream.   As a best practice, always check this box unless the stream does not consist of RTCM Rev3 messagesSNIP supports many other data stream formats, but does not parse all of them.   When parsing is enabled, then SNIP will automatically set up various Caster Table entry details for you.  [The process of creating the final Caster Table entry takes up to ~180 seconds while the data steam is analyzed for content.  During that time a temporary Caster Table entry is published to allow rapid NTRIP Client connection during startup.]


This check box enables logging of the data stream using the current SNIP settings for file rates, compression, and remote FTP transfers.


All of these dialog values are stored in the *.ini file for SNIP and will be restarted each time SNIP is restarted.  When a slot is removed (right click and select the Remove menu item), then all setup details for that slot are lost.  The Caster Table entry details can be edited using the slot’s right click menu as well.

Connection States

Any RAW TCP/IP slot can be in one of three connection states.  This is shown in each slot in a color-coded background similar to that used with other tabs for their data stream slots.

  • Stopped (in red, and no connection can occur)
  • Waiting (in yellow, a connection will occur when a suitable client connects)
  • Active (in green, a suitable client has already connected and may be sending data)

A further detail is that “a suitable client” may be a specific defined IP value or any IP depending on how the slot was set up.   Variations in the status line text allows you to easily see which way the port was setup.

The image below shows how each of these states is displayed.  Example1 is connected and accepting data, while Examples2 and 3 are awaiting a connection (Example2 will accept a connection only from a specific IP, while Example3 will accept a connection from any IP).  Finally, Example4 is in a stopped state (and will not accept any connections).



Once a connection is active, all the normal PFAT® setting can also be made to the data in the stream.  For further details about PFAT use please see these lead articles about filtering, translation, and adding message content to the data stream.

Other functionality such as RTCM message decoding or navigation filters etc., are the same for RAW TCP/IP stream as for any other stream type.


Please notice the Caution note shown in the Edit RAW TCP Server Slot dialog.  Using this feature causes SNIP to create a small server service operating on the selected port which will connect and accept data from any party that sends data to it.  Opening a non-NTRIP port on any machine does involve a degree of additional security risk.  As a best practice, using the PUSH-In tab with the normal NTRIP protocol process is to be preferred whenever possible.  To repeat, the RAW TCP/IP is intended to be used with those devices that do not or cannot implement this protocol.  And when creating a RAW TCP/IP data stream you are strongly urged to always limit the IP that can connect to the single value.  This serves to prevent 3rd parties from abusing the open port.  It is also may be that any 3rd party firewall services that the machine uses could require you to add an exception rule to allow in-bound connection to occur on these ports, similar to what may have been required when you first set up SNIP on that machine.


Other common ways to connect a Base Station:

Does your Base Station have a built-in NTRIP Server?  Connect it to SNIP using a PUSH-In slot.

Does your Base Station have a serial port?  Connect it to SNIP using a Serial-UART slot.

Does your Base Station reside on an NTRIP Caster?  Connect it to SNIP using a Remote-Relay slot.

If your Base Station is remote from the SNIP Caster and has a serial port but no internet connectivity, you can connect it using various 3rd party dongles over the internet.  See this article for typical setup instructions.

Was this article helpful?

Related Articles