Real-Time Considerations

The RT-TCP/IP protocol stack has been configured for maximum determinism. In keeping with this goal, IP fragmentation is not enabled in the protocol stack by default, and payload sizes are limited to what can fit in a single Ethernet packet. These design choices increase datagram reliability and reduces jitter that accompanies fragment reassemble and (for TCP/IP) acknowledgement.

Under standard stacks, the IP_DONTFRAGMENT socket option, which is at the IPPROTO_IP level, is used to disable IP fragmentation. IP fragmentation on a socket is disabled by default. On the RT-TCP/IP stack, you can use this option to enable IP fragmentation. For more information on socket options, see http://msdn.microsoft.com/en-us/library/ms738586%28VS.85%29.aspx.

The following table specifies the optimized buffer sizes that may be used in this release with send, sendto, recv, and recvfrom.

Optimized buffer sizes

Socket Type

Optimized Buffer Size (bytes)

SOCK_STREAM

1460

SOCK_DGRAM

1472

If you are experiencing occasional packet resend and, therefore, large latency when sending and receiving buffers in TCP, you may need to set the driver configuration field LatencyRecvUpdated to a non-zero value (suggested value 500 microseconds)  and set the RTX Hal Timer Period to less than 100 microseconds.

To change the Hal timer period:

  1. Open the RTX Properties control panel.
  2. Select the System tab.
  3. Click Settings.
  4. Select a value less than 100 microseconds from the Hal Timer Period pull-down option.

See the RtxTcpIp NIC Driver section for modifying the LatencyRecvUpdated value in the configuration INI file.

NOTE:  Changing the LatencyRecvUpdated value to a non-zero value in the RT-TCP/IP configuration file is only suggested if you are experiencing packet resend and large latency.  Changing the LatencyRecvUpdated value can result in a general increased throughput latency.

NOTE:  Decreasing the RTX Hal Timer Period can result in a general performance hit.

The RT-TCP/IP stack improves performance by implementing no-copy mode. In this mode the driver makes use of stack's internal device queue to limit the number of packets that it must buffer internally. When RT-TCP/IP submits an outgoing packet to the device driver, the device driver copies the packet into an internal driver buffer, and starts transmission if previous transmission is not already in progress. It then returns immediately to stack without waiting for transmission to complete.

 

See Also

IntervalZero.com | Support | Give Feedback