Making Ethernet Work for Real-Time Systems


Not long ago, watching videos on the Internet required patience and tolerance - streams would often pause, break up, or turn into a blocky mess before resuming. Today, binge-watching HD streams on Netflix is a reality for many, thanks to higher-speed links, better video algorithms, and smarter networks that give preferential treatment to streaming content. Advances in network technology are even enabling what would have been unthinkable before – using commercial Ethernet technology for high-performance real-time embedded systems, even in safety-critical airborne applications.

Say Aloha to Collisions

Ethernet traces its origins to a research project at the University of Hawaii – ALOHAnet. In 1971 this network used radio links to connect users across the Hawaiian Islands to a time-sharing computer. The key innovation was random access to a shared medium – every terminal could transmit onto the same frequency at any time. If two terminals started transmitting at the same time, they would interfere with each other – a so-called “collision”. When this happened the terminals would detect the collision and stop transmitting, then wait before sending again. When this approach was adapted to work on another shared medium – coaxial cable – Ethernet was born.

Before Ethernet, network technologies that shared a cable would give each connected device a fixed slice of the bandwidth – for example using time-division multiplexing (TDM) – or make everyone take turns accessing the network. This reduced the capacity of the network by forcing each sender to wait its turn, even if nobody else had data to send. As the network grew, the available capacity had to be divided into ever smaller slices, reducing the throughput available to anyone. With Ethernet, every connected system can access full network capacity when needed, which makes the network faster. But collisions introduce unpredictable delays – a major problem for real-time systems.

Fortunately, collisions are no longer an issue in Ethernet networks. Today, non-blocking switches give each computer a dedicated link, eliminating contention for a shared medium. With collisions eliminated, there are no longer random delays in Ethernet networks. Designers of real time systems can use the latency through a switch to calculate a worst-case delay from sender to receiver – and plan their software accordingly.

Quality of Service – Real-Time Rides First Class

Today’s Ethernet switches don’t just eliminate collisions – they offer a range of features for managing network data. One common family of features implements “Quality of Service” (QoS) – a system for classifying types of network traffic and applying different policies to different types. In systems where real-time traffic shares the network with other, non-real-time traffic, QoS can be used to ensure that real-time data is prioritized. When there is congestion – traffic destined for an output interface exceeds the link speed – packets will queue up in the switch waiting their turn to be sent. If all traffic waits in the same queue, real-time traffic can be delayed. But QoS features allow real-time traffic to be sent into a priority queue that is always serviced first.

Deterministic Ethernet – Enforcing Real-Time Rules