What is the reason show server logical port error

5 posts / 0 new
Last post
Offline
Last seen: 3 years 11 months ago
Joined: 08/11/2019
Posts: 28
What is the reason show server logical port error

Hello,

I have a question for the packages in wireshark.

I only set 7400 port to transfer data, but why we can see in wireshark shows

Server Logical Port Request (7414), Server Logical Port Request (7416), Server Logical Port Request (7418)

and  server logical port error?

AttachmentSize
Binary Data porblem.pcapng405.61 KB
Keywords:
Offline
Last seen: 3 years 5 months ago
Joined: 08/20/2012
Posts: 25

Hello Kay,

It is expected for Connext to use multiple ports. Please take a look at this documentation on how the ports are chosen. The port numbers are a function of both Domain ID and Participant index. Does that clarify what you are seeing in WireShark?

Regards,
Tom

Offline
Last seen: 3 years 11 months ago
Joined: 08/11/2019
Posts: 28

Hello Tom,

Does the document mean I can use port_offset to let 7412.7416... packages disappear?

but I already use server_bind_port in User_QoS_Profile:

     <participant_qos>
        <discovery>
          <initial_peers>
            <element>tcpv4_lan://140.118.121.79:7400</element>
          </initial_peers>
        </discovery>
        <property>
          <value>
            <element>
              <name>dds.transport.TCPv4.tcp1.server_bind_port</name>
              <value>7400</value>
            </element>
          </value>
        </property>
      </participant_qos>
what should I do to solve it ? I still confuse it.
 
--Kay
Fernando Garcia's picture
Offline
Last seen: 4 months 5 days ago
Joined: 05/18/2011
Posts: 199

Hi Kay,

When you enable the TCP transport and you add a remote peer that uses TCP, like you do in your example with tcpv4_lan://140.118.121.79:7400, DDS sends discovery traffic and user traffic to only the TCP port and destination you specify.

As you can see in the Wireshark trace, Connext DDS sends both regular RTPS messages (which is labeled as "RTPS" on wireshark) and RTI-TCP messages to your destination address. RTI-TCP messages are part of an internal control protocol that Connext DDS uses to manage the TCP connection thorugh which you send DDS (RTPS) data. As you can see, both RTPS and RTI-TCP have 140.118.121.79 as the destination address and 7400 as their destination port; Connext DDS does not use any extra ports when using TCP.

When Tom mentioned that Connext DDS uses multiple ports he was referring to Connext DDS over UDP. When you use UDP DDS applications will listen on different UDP ports for multicast discovery traffic, unicast discovery traffic, multicast user traffic, unicast user traffic, etc. Those port numbers are the "logical ports" that the TCP transport uses internally to identify different types of RTPS traffic, but unlike in UDP, these are simply logical ports and all traffic is sent to the same TCP port (140.118.121.79:7400 in your case). You don't need to configure any offset to tune the value of these ports, and some of the errors the internal RTI-TCP reports may be normal.

Besides the Wireshark capture, are you running into any issues when communicating over TCP?

Best regards,
Fernando

Offline
Last seen: 3 years 11 months ago
Joined: 08/11/2019
Posts: 28

Hello Fernando,

As you mentioned, I only set 7400 port in QoS.xml which I attach.

In my wireshark, I can see "RTI-TCP  Server Logical Port Request (7410)" and "Server Logical Port Error  (no matching receive resource for requested port)"

How can I solve it?  Does it cause by subscriber?  (picture only_run_sub.png : it seems open more than one port)

 

I have another question,

why I remove <1>"export NDDS_DISCOVERY_PEERS="tcpv4_lan://140.118.122.107:7400" in env (bashrc)

and I also remove <2>

        <property>
          <value>
            <element>
              <name>dds.transport.TCPv4.tcp1.server_bind_port</name>
              <value>7400</value>
            </element>
          </value>
        </property>
 it still can work via USER_QOS_PROFILES.xml ? so when should I use <1> and <2>?
 
Thank you very much.
 
 --Kay