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:

Details on RT-TCP/IP

Configuring the stack

Available utilities

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:

Configuring the stack

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:

Configuring the stack

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:

Configuring the interface

Managing devices

Writing RTND drivers

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:

Details on filter drivers

Configuring filter drivers

Managing devices

Writing filter drivers

 

 

 


Copyright © 1996-2018 by IntervalZero. All rights reserved.

IntervalZero.com | Support | Send Feedback