{"id":3287,"date":"2020-03-23T00:50:32","date_gmt":"2020-03-23T00:50:32","guid":{"rendered":"\/kb\/?post_type=ht_kb&#038;p=3287"},"modified":"2020-11-25T03:12:53","modified_gmt":"2020-11-25T03:12:53","slug":"raw-tcpip-connections","status":"publish","type":"ht_kb","link":"https:\/\/www.use-snip.com\/kb\/knowledge-base\/raw-tcpip-connections\/","title":{"rendered":"Raw TCP\/IP Connections"},"content":{"rendered":"<p>A RAW TCP\/IP data stream connection can be set up for those (often older) GNSS Base Station devices which do not implement the <a href=\"\/kb\/knowledge-base\/question-what-is-an-ntrip\/\">NTRIP<\/a> protocol.\u00a0 [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]\u00a0 Such older devices cannot act as <a href=\"\/kb\/knowledge-base\/question-what-is-an-ntrip-server\/\">NTRIP Servers<\/a> to forward their data to <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> acting as an <a href=\"\/kb\/knowledge-base\/question-what-is-an-ntrip-caster\/\">NTRIP Caster<\/a> in the normal way.\u00a0 The RAW TCP\/IP feature allows bringing such machines into your network without additional hardware or software devices.<\/p>\n<p style=\"padding-left: 80px;\"><span style=\"color: #008000;\"><em><strong>Note:<\/strong> <\/em><\/span>This mode is for remote machines that need to connect and then <em>send data <strong>to<\/strong><\/em> 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.\u00a0 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.\u00a0 You can set up suitable Caster entry details with the <em>Manual Caster<\/em> 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.<\/p>\n<p>To create a new RAW TCP\/IP data stream, press the <em><strong>Add New Port<\/strong><\/em> button on the <a href=\"\/kb\/knowledge-base\/raw-tcpip-streams-tab\/\"><strong>RAW TCP\/IP<\/strong><\/a> tab.<\/p>\n<p>This in turn brings up the <strong>Edit RAW TCP Server Slot<\/strong> dialog box (below) where the port number to be used (as well as other items) is entered.<\/p>\n<p><a href=\"\/kb\/wp-content\/uploads\/2017\/03\/EditRawTCPport.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3333 size-full\" src=\"\/kb\/wp-content\/uploads\/2017\/03\/EditRawTCPport.png\" alt=\"EditRawTCPport\" width=\"338\" height=\"411\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/03\/EditRawTCPport.png 338w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/03\/EditRawTCPport-247x300.png 247w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/03\/EditRawTCPport-41x50.png 41w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/03\/EditRawTCPport-320x389.png 320w\" sizes=\"auto, (max-width: 338px) 100vw, 338px\" \/><\/a><\/p>\n<p>These values are entered for the new RAW TCP\/IP server port that will be opened when the <strong>Save<\/strong> button is pressed.<\/p>\n<h3>Settings<\/h3>\n<p>The control settings are described further below.<\/p>\n<h4>Port Number<\/h4>\n<p>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.\u00a0 These values start at port number 3000 and proceed upwards checking for the first non-used port.<\/p>\n<p>When the user enters a new port number, <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> then checks for any existing conflicts and will note any that are found.\u00a0 The user may use <em>any<\/em> value from 1 to 65535 as long as the machine is not using that port for another service.\u00a0 [If the port cannot be used, an error message is shown when the service is started]<\/p>\n<p>Ports in the range 1~1023 (so-called &#8220;well known ports&#8221;) are in general to be avoided due to the risk of conflicts with other services on the host machine.\u00a0 But you are free to use them if you are certain that they are not used on the machine.\u00a0 For example, it would be unusual (but not unknown) to use port 80 (http web services) for an inbound RAW TCP\/IP connection.\u00a0 When using any of these <em>well known ports<\/em>, a cautionary message is provided to the user.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3337\" src=\"\/kb\/wp-content\/uploads\/2017\/03\/EditRawTCPport-PortWarning.png\" alt=\"EditRawTCPport-PortWarning\" width=\"415\" height=\"156\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/03\/EditRawTCPport-PortWarning.png 415w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/03\/EditRawTCPport-PortWarning-300x113.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/03\/EditRawTCPport-PortWarning-50x19.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/03\/EditRawTCPport-PortWarning-320x120.png 320w\" sizes=\"auto, (max-width: 415px) 100vw, 415px\" \/><\/p>\n<p>If a selected port&#8217;s number is known to be a conflict with other SNIP service, an error message is shown.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3336\" src=\"\/kb\/wp-content\/uploads\/2017\/03\/EditRawTCPport-PortError.png\" alt=\"EditRawTCPport-PortError\" width=\"411\" height=\"149\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/03\/EditRawTCPport-PortError.png 411w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/03\/EditRawTCPport-PortError-300x109.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/03\/EditRawTCPport-PortError-50x18.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/03\/EditRawTCPport-PortError-320x116.png 320w\" sizes=\"auto, (max-width: 411px) 100vw, 411px\" \/><\/p>\n<p>The IP value used is, by default, the same IP that <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> is currently using to service <a href=\"\/kb\/knowledge-base\/question-what-is-an-ntrip-client\/\">NTRIP Clients<\/a>.\u00a0 This process also supports multi-homed PCs (PC which have multiple network cards) that <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> supports.<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008000;\"><strong>Note<\/strong><\/span>: The remote sending device would then send its raw data to this port [in the first image the IP:Port would be:\u00a0 192.168.2.105:3004]\u00a0\u00a0 This IP value can be registered with DNS if desired and can use port forwarding from your firewall.\u00a0 When the connection occurs, the mountPt names will be used (as well as the Caster Table entry details) in the local Caster table.<\/p>\n<h4>Allow Only This IP to connect<\/h4>\n<p>This is a very important button <span style=\"text-decoration: underline;\"><span style=\"color: #008000; text-decoration: underline;\">and should be checked whenever possible<\/span><\/span>.\u00a0 When checked, it then limits the remote IP that can connect to the one value that is specified.\u00a0 If the button is <strong>not checked<\/strong>, then any IP located anywhere in the world can connect to your machine.\u00a0 Further, only the first connection which is made will be accepted (all secondary connections are refused).<\/p>\n<h4>IP<\/h4>\n<p>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 <em>Allow Only This IP to connect<\/em> is checked).<\/p>\n<h4>MountPt<\/h4>\n<p>The is the mountPt name which will be used to publish this data stream in <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span>&#8216;s Caster Table.<\/p>\n<p>You can enter any valid mountPt name you desire and <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> 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).<\/p>\n<p>If the <strong>Configure<\/strong> button is pressed, the normal <a href=\"\/kb\/knowledge-base\/editing-caster-entries\/\">Caster Table dialog<\/a> is presented and the user can fill in additional details about the data stream.\u00a0 This is most valuable when the data stream is <a href=\"\/kb\/knowledge-base\/supported-caster-data-formats\/\">not<\/a> in an RTCM3 format.<\/p>\n<p style=\"padding-left: 30px;\"><span style=\"color: #008000;\"><strong>Note<\/strong><\/span>: Unlike the &#8220;normal&#8221; 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.\u00a0 The data sender is oblivious to these values.<\/p>\n<h4>Parse<\/h4>\n<p>This check box enables the RTCM3 message parsing process to occur on the stream.\u00a0\u00a0 As a best practice, always check this box unless the stream does not consist of <a href=\"\/kb\/knowledge-base\/an-rtcm-message-cheat-sheet\/\">RTCM Rev3 messages<\/a>.\u00a0 <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> supports many other <a href=\"\/kb\/knowledge-base\/supported-caster-data-formats\/\">data stream formats<\/a>, but does not parse all of them.\u00a0\u00a0 When parsing is enabled, then <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> will automatically set up various Caster Table entry details for you.\u00a0 [The process of creating the final Caster Table entry takes up to ~180 seconds while the data steam is analyzed for content.\u00a0 During that time a temporary Caster Table entry is published to allow rapid <a href=\"\/kb\/knowledge-base\/question-what-is-an-ntrip-client\/\">NTRIP Client<\/a> connection during startup.]<\/p>\n<h4>Logging<\/h4>\n<p>This check box enables <a href=\"\/kb\/knowledge-base\/saving-data-into-log-files\/\">logging<\/a> of the data stream using the current <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> settings for file rates, compression, and remote FTP transfers.<\/p>\n<p>&nbsp;<\/p>\n<p>All of these dialog values are stored in the *.ini file for SNIP and will be restarted each time <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> is restarted.\u00a0 When a slot is removed (right click and select the <strong>Remove<\/strong> menu item), then all setup details for that slot are lost.\u00a0 The Caster Table entry details can be edited using the slot&#8217;s right click menu as well.<\/p>\n<hr \/>\n<h3>Connection States<\/h3>\n<p>Any RAW TCP\/IP slot can be in one of three connection states.\u00a0 This is shown in each slot in a color-coded background similar to that used with other tabs for their data stream slots.<\/p>\n<ul>\n<li>Stopped (in <strong><span style=\"color: #ff0000;\">red<\/span><\/strong>, and no connection can occur)<\/li>\n<li>Waiting (in <strong><span style=\"color: #ffff00;\">yellow<\/span><\/strong>, a connection will occur when a suitable client connects)<\/li>\n<li>Active (in <strong><span style=\"color: #008000;\">green<\/span><\/strong>, a suitable client has already connected and may be sending data)<\/li>\n<\/ul>\n<p>A further detail is that &#8220;a suitable client&#8221; may be a specific defined IP value or <span style=\"text-decoration: underline;\">any<\/span> IP depending on how the slot was set up. \u00a0 Variations in the status line text allows you to easily see which way the port was setup.<\/p>\n<p>The image below shows how each of these states is displayed.\u00a0 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).\u00a0 Finally, Example4 is in a stopped state (and will not accept any connections).<\/p>\n<p><a href=\"\/kb\/wp-content\/uploads\/2017\/03\/RawTab-ConnectionStates.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-3358 size-full\" src=\"\/kb\/wp-content\/uploads\/2017\/03\/RawTab-ConnectionStates.png\" alt=\"RawTab-ConnectionStates\" width=\"865\" height=\"300\" srcset=\"https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/03\/RawTab-ConnectionStates.png 865w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/03\/RawTab-ConnectionStates-300x104.png 300w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/03\/RawTab-ConnectionStates-768x266.png 768w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/03\/RawTab-ConnectionStates-50x17.png 50w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/03\/RawTab-ConnectionStates-600x208.png 600w, https:\/\/www.use-snip.com\/kb\/wp-content\/uploads\/2017\/03\/RawTab-ConnectionStates-320x111.png 320w\" sizes=\"auto, (max-width: 865px) 100vw, 865px\" \/><\/a><\/p>\n<h3>PFAT<\/h3>\n<p>Once a connection is active, all the normal <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/introducing-pfat\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span style=\"color: #993300;\"><strong>PFAT<\/strong>\u00ae <\/span><\/a>setting can also be made to the data in the stream.\u00a0 For further details about <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/pfat-parse-settings\/\" target=\"_blank\" rel=\"noopener noreferrer\">PFAT use<\/a> please see these lead articles about <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/pfat-filter-settings-and-uses\/\" target=\"_blank\" rel=\"noopener noreferrer\">filtering<\/a>, <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/pfat-translate-settings-uses\/\" target=\"_blank\" rel=\"noopener noreferrer\">translation<\/a>, and <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/pfat-add-settings-and-uses\/\" target=\"_blank\" rel=\"noopener noreferrer\">adding<\/a> message content to the data stream.<\/p>\n<p>Other functionality such as RTCM <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/message-monitoring\/\" target=\"_blank\" rel=\"noopener noreferrer\">message decoding<\/a> or <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/navigation-filter-types\/\" target=\"_blank\" rel=\"noopener noreferrer\">navigation filters<\/a> etc., are the same for RAW TCP\/IP stream as for any other stream type.<\/p>\n<hr \/>\n<p style=\"text-align: center;\"><strong>CAUTION<\/strong><\/p>\n<p>Please notice the <span style=\"color: #ff0000;\"><strong>Caution<\/strong> <\/span>note shown in the <strong>Edit RAW TCP Server Slot<\/strong> dialog.\u00a0 Using this feature causes <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> 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.\u00a0 Opening a non-NTRIP port on any machine does involve a degree of additional security risk.\u00a0 As a best practice, using the <a href=\"\/kb\/knowledge-base\/the-pushed-streams-tab\/\"><strong>PUSH-In<\/strong><\/a> tab with the normal <a href=\"\/kb\/knowledge-base\/question-what-is-an-ntrip\/\">NTRIP protocol<\/a> process is to be preferred whenever possible.\u00a0 To repeat, the RAW TCP\/IP is intended to be used with those devices that <em>do not<\/em> or <em>cannot<\/em> implement this protocol.\u00a0 And when creating a RAW TCP\/IP data stream you are strongly urged to <span style=\"text-decoration: underline;\"><strong>always<\/strong><\/span> limit the IP that can connect to the single value.\u00a0 This serves to prevent 3rd parties from abusing the open port.\u00a0 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<span style=\"color: #0000ff;\"><strong> SNIP<\/strong><\/span> on that machine.<\/p>\n<p>&nbsp;<\/p>\n<h3>Other common ways to connect a Base Station:<\/h3>\n<p>Does your Base Station have a built-in <a href=\"\/kb\/knowledge-base\/question-what-is-an-ntrip-server\/\">NTRIP Server<\/a>?\u00a0 Connect it to <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> using a <a href=\"\/kb\/knowledge-base\/the-pushed-streams-tab\/\">PUSH-In slot<\/a>.<\/p>\n<p>Does your Base Station have a <a href=\"\/kb\/knowledge-base\/adding-serial-uart-data-streams\/\">serial port<\/a>?\u00a0 Connect it to <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> using a <a href=\"\/kb\/knowledge-base\/the-serial-streams-tab\/\">Serial-UART slot<\/a>.<\/p>\n<p>Does your Base Station reside on an <a href=\"\/kb\/knowledge-base\/question-what-is-an-ntrip-caster\/\">NTRIP Caster<\/a>?\u00a0 Connect it to <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> using a <a href=\"\/kb\/knowledge-base\/the-relay-streams-tab\/\">Remote-Relay slot<\/a>.<\/p>\n<p>If your Base Station is remote from the <span style=\"color: #0000ff;\"><strong>SNIP<\/strong><\/span> Caster and has a serial port but no internet connectivity, you can connect it using various 3rd party dongles over the internet.\u00a0 See <a href=\"https:\/\/www.use-snip.com\/kb\/knowledge-base\/rs232-over-the-internet\/\">this article<\/a> for typical setup instructions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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.\u00a0 [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]\u00a0 Such [&hellip;]<\/p>\n","protected":false},"author":13,"comment_status":"open","ping_status":"closed","template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"ht-kb-category":[112],"ht-kb-tag":[310,309],"class_list":["post-3287","ht_kb","type-ht_kb","status-publish","format-standard","hentry","ht_kb_category-general","ht_kb_tag-pre-ntrip","ht_kb_tag-raw-tcpip"],"_links":{"self":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/3287","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb"}],"about":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/types\/ht_kb"}],"author":[{"embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/comments?post=3287"}],"version-history":[{"count":31,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/3287\/revisions"}],"predecessor-version":[{"id":7171,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb\/3287\/revisions\/7171"}],"wp:attachment":[{"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/media?parent=3287"}],"wp:term":[{"taxonomy":"ht_kb_category","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-category?post=3287"},{"taxonomy":"ht_kb_tag","embeddable":true,"href":"https:\/\/www.use-snip.com\/kb\/wp-json\/wp\/v2\/ht-kb-tag?post=3287"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}