RT-TCP/IP Components
RTX64 provides an RT-TCP/IP Protocol Stack that accesses the physical transport layer (network card) via a Real-time network device (RTND) driver running under the Real-Time Subsystem (RTSS). The components that make up the RT-TCP/IP Stack are discussed below.
The RT-TCP/IP stack consists of an internal buffer management system, timer system, and, when running, uses multiple threads to accomplish its tasks. The priority of each thread can be set independently. The timer system of the RT-TCP/IP stack uses a stack internal timer thread to handle all TCP/IP time-related functions. Each network interface uses two threads, an interrupt service thread that handles all interrupt-related processing, and a receiving thread that handles all receive-related processing.
You can configure the RT-TCP/IP Stack in the RTX64 control panel under Configuring the RT-TCP/IP Stack and Drivers.
RT-TCP/IP Stack Architecture Flow
RT-TCP/IP Stack Architecture
Buffer Management
The RT-TCP/IP stack has an internal buffer management system for performance reasons. It is architected to statically allocate memory upon stack startup.
The amount of memory needed by the stack depends on many factors, including the size of your socket queue and receive queue as well as the number of pre-allocated receive buffers for the device. Most of the pre-allocated memory by the stack is used for your data. Internally, the RT-TCP/IP stack uses very minimal data.
For example, a single UDP socket entry requires less than 200 bytes for internal tracking. Memory for the socket is only allocated between Socket call and the Close call. As a result, memory is not used when the socket is not active. Maximum memory usage is dependent on the maximum number of concurrent sockets that you have open at any given time.
Stack Timer System
The stack timer system is the one of the main component of RT-TCP/IP. It is responsible for notifying the Stack of the amount of time that has elapsed. This is very important for a protocol stack. The RT-TCP/IP stack must know how long a TCP packet takes to get to a remote system. The Stack must also know the amount of time an ARP entry has been in the ARP table. Additionally, the stack timer system uses a timer for its internal routing entries. The Stack uses a timer thread to handle all RT-TCP/IP timer-related functions.
Related topics:
Receive Thread
The primary purpose of the RT-TCP/IP Stack’s receive thread is to wait on notification from a driver’s Interrupt Service Thread (IST). Whenever there is new packet to be received, the driver’s IST signals the receive thread. The receive thread then starts processing the incoming packet from the device driver. It first calls the driver’s receive routine (RtndReceive() ) and the begins processing the packet. The Stack uses receive thread, which you can configure in the control panel, to process all incoming packets.
Related topics:
Interrupt Service Thread (IST)
The Interrupt Service Thread (IST) located in the interfacing driver is called within the context of the RT-TCPIP Stack process. The Stack’s loop-back interface does not contain this thread. The IST is scheduled to run when an interrupt from the network interface card (NIC) occurs. The IST normally responds to receive interrupts by acknowledging the NIC for the interrupt and then signaling the receive thread.
Related topics:
Interface
An interface is used by the stack to associate an address with a Real-time Network Device (RTND) driver, which is responsible for configuring and interacting with Network Interface Cards (NICs). All NICs used by RTND drivers must be controlled by RTX64.
Related topics:
Virtual Network
The RTX64 Virtual Network consists of a Windows Virtual RTX64 Ethernet Adapter and a RTX64 Virtual NIC which is used by the RT-TCP/IP Stack.
RTX64 Virtual Network Interface (RtVirtualNic) defines the RTSS side of the Virtual Network point-to-point connection. This interface is provided by default if you install the Virtual Network features and sets up a default IP address and the driver association so the RT-TCP/IP Stack knows to load the RTX64 Virtual NIC driver (RtVirtualNic.rtdll
) when the interface is enabled.
Windows Virtual RTX64 Ethernet Adapter which is an NDIS driver (Rtx64VMini.sys
) that is loaded by the Windows Stack.
Related topics:
Overview
Configuring Your Virtual Network Interface
Configuring Your Windows RTX64 Virtual Ethernet Adapter
Virtual Network Driver Source
Testing Your Virtual Network
Ethernet Filter Driver
An Ethernet Filter Driver is associated with an interface. It is primarily used to filter all incoming and outgoing traffic, and to generate new network traffic.
Related topics: