IntervalZero RTX64 4.x 帮助文档

⌘K
  1. 主页
  2. 文档
  3. IntervalZero RTX64 4.x 帮助...
  4. RT-TCP/IP 栈
  5. RT-TCP/IP 组件

RT-TCP/IP 组件

RT-TCP/IP 协议栈与网络抽象层 (NAL) 进行通信。通过运行在 RTSS 下的实时网络设备 (RTND) 驱动程序访问物理传输层(网卡)。本部分介绍构成 RT-TCP/IP 栈的组件。

NAL 加载网络驱动程序,RT-TCP/IP 栈作为 NAL 应用程序运行时使用该驱动程序。同时,PCI/PCIe 设备必须从 Windows 转换为 RTX64 控制。对于支持 RTX64 的网络设备,RTND 网络驱动程序可以配置为多个接收和发送队列(DMA 缓冲区环)。

NAL 支持通过以太网类型过滤将数据传送到特定的接收队列。多个 NAL 应用程序可以使用同一接口的不同网络队列。RT-TCP/IP 栈作为 NAL 应用程序运行,使用接口的默认接收队列(接收未过滤的数据),以及相同编号的发送队列。同时,其他 NAL 应用程序可以使用接口的其他网络队列。

RT-TCP/IP 栈由内部缓冲区管理系统,定时器系统组成,在运行时使用多个线程来完成任务。每个线程的优先级可以独立设置。RT-TCP/IP 定时器系统使用协议栈内部定时器线程处理所有与 TCP/IP 时间相关的功能。

每个网络接口运行一个中断服务线程来处理所有中断,以及一个接收线程处理所有接收相关的事务。

用户可以在 RTX64 控制面板中配置 RT-TCP/IP 栈。

RT-TCP/IP 栈架构流程

RT-TCP/IP 栈和 NAL 通信


缓冲区管理

出于性能原因,RT-TCP/IP 栈具有一个内部缓冲区管理系统。它在堆栈启动时静态分配内存。网络驱动程序用于接收和发送数据的缓冲区不是该内存的一部分。栈发送和接收的数据包,是由网络驱动程序在接收和发送函数中复制的。

栈所需的内存量取决于众多因素。包括套接字队列的大小,用于传输的应用程序缓冲区大小,套接字数量,网络接口数量,以及预分配的设备接收缓冲区数量。栈预分配的大部分内存都用于您的数据。RT-TCP/IP 栈内部使用非常少的数据。


内存要求

RT-TCP/IP 协议栈运行时,需要一块内存来存储其内部信息(数据包缓冲区和各种控制信息)。该内存块在启动期间分配,其大小由 RTX64 控制面板中TCP/IP 栈堆分配的内存(Memory allocated for the TCP/IP Stack heap)设置。要分配的内存量取决于系统上可用的内存量以及预期的网络流量。

如果不确定应该分配多少内存供给 RT-TCP/IP 协议栈,建议使用较大值,如 10,000。当分配给 TCP/IP 栈的内存太少时,可能会发生致命错误。当内存耗尽时,TCP/IP 栈会将 WSAENOBUFS 返回给应用程序。提示用户增大该值。


栈定时器系统

栈定时器系统是 RT-TCP/IP 的主要组件。它负责通知栈已经过去的时间量。这对于协议栈来说非常重要。RT-TCP/IP 栈必须知道 TCP 数据包需要多长时间才能到达远程系统。协议栈还必须知道 ARP 条目在 ARP 表中存在的时间。此外,栈定时器系统为其内部路由条目提供定时器。RT-TCP/IP 协议栈使用定时器线程处理所有与 RT-TCP/IP 定时器相关的功能。


接收线程

RT-TCP/IP 栈接收线程的主要功能是等待来自驱动程序的中断服务线程 (IST) 通知。当有新数据包要接收时,驱动程序 IST 都会向接收线程发出信号。然后接收线程开始处理设备驱动程序传入的数据包。首先通过 NAL 调用驱动程序的接收例程 (RtndReceive() ),然后开始处理数据包。栈使用接收线程(在控制面板中配置该线程)处理所有传入数据包。


中断服务线程(IST)

中断服务线程 (IST) 位于接口驱动程序中,在 NAL 进程的上下文中被调用。网络接口卡 (NIC) 发生中断时,IST 服务运行。通常情况下,IST 通过向 NIC 确认中断,然后向接收线程发出信号来响应接收中断。


接口

接口是指 NAL 使用地址将实时网络设备 (RTND) 驱动程序关联,该驱动程序负责配置网络接口卡 (NIC) 并与之交互。RTND 驱动程序使用的所有网卡都必须由 RTX64 控制。


虚拟网络

RTX64 虚拟网络由 Windows 虚拟 RTX64 以太网适配器和 RT-TCP/IP 栈使用的 RTX64 虚拟 NIC 组成。

RTX64 虚拟网络接口 (RtTCPIPVirtualNIC) 定义了虚拟网络中点对点连接的 RTSS 一端。如果安装了虚拟网络功能,并设置了默认 IP 地址和驱动程序关联,则表示系统提供此接口。RT-TCP/IP 栈将在接口启用时,加载 RTX64 虚拟 NIC 驱动程序 (RtTCPIPVirtualNIC.rtdll)。

Windows 虚拟 RTX64 以太网适配器是 Windows 栈加载的 NDIS 驱动程序(Rtx64VMini.sys)。


以太网过滤器驱动程序

以太网过滤器驱动程序与接口关联。主要用于过滤所有传入和传出流量,以及生成新的网络流量。


回环(Loopback)

回环功能要求 TCP-IP 栈正在运行。有关此功能的更多信息,参阅多播数据反射器(Multicast Data Reflector)示例。