Due to the low price and robustness resulting from its wide acceptance and deployment, Ethernet has become an attractive candidate for real-time control networks. However, it is difficult to build a real-time control network using the standard Ethernet because the Ethernet MAC protocol-1-persistent CSMA/CD protocol-may cause unpredictable access delay. When both real-time and nonreal-time packets are concurrently transported over an ordinary Ethernet, real-time (RT) packets from a node may experience a large delay due to 1) contention with nonRT packets in the local node where they originate and 2) collision with RT and nonRT packets from the other nodes. To resolve this problem, we design, implement, and evaluate an adaptive traffic smoother. Specifically, we design two adaptive traffic smoothers, one at the kernel level and the other at the user level. The kernel-level traffic smoother is installed between the IP layer and the Ethernet MAC layer for better performance, and the user-level traffic smoother is installed on top of the transport layer for better portability. The kernel-level traffic smoother first gives RT packets priority over nonRT packets in order to eliminate contention within the local node. Second, it smoothes nonRT traffic so as to reduce collision with RT packets from the other nodes. This traffic smoothing can dramatically decrease the packet-collision probability on the network. The traffic smoother, installed at each node, regulates the node's outgoing nonRT traffic to maintain a certain rate. In order to provide a reasonable nonRT throughput while providing probabilistic delay guarantees for RT traffic, the nonRT traffic-generation rate is allowed to adapt itself to the underlying network load condition. Our implementation of the traffic smoother requires only a minimal change in the OS kernel without any modification to the current standard of Ethernet MAC protocol or the TCP or UDP/IP stack. The traffic smoother has been implemented on the Linux OS and is shown to reduce the RT message deadline-miss ratio up to two orders of magnitude under a heavily loaded condition, while the nonRT throughput drops only by half. For better portability, we also implemented and evaluated a user-level traffic smoother on top of the transport layer. Moreover, we emulate a switch using a kernel-level traffic smoother to evaluate the performance of traffic smoother in a switched Ethernet environment that can scale to a large control network.
Read full abstract