anchor.diff:  
   [.text-center]
   .OS jitter of ChibiOS 2.6.8 on STM32F407 (24h)
  -image::udp/os-jitter-embedded.png[link="../images/udp/os-jitter-embedded.png"]
  +image::udp/os-jitter-embedded.png[link="../images/udp/os-jitter-embedded.png", width="100%"]
   
   The two figures below show the round-trip time for all packets and the corresponding percentile distribution. There were a total of 8.5 million messages. None of them were lost and none of them arrived out of order.
   
   [[img-rtt-24h]]
   [.text-center]
   .RTT for 200 byte payload (24h)
  -image::udp/rtt-baseline.png[link="../images/udp/rtt-baseline.png"]
  +image::udp/rtt-baseline.png[link="../images/udp/rtt-baseline.png", width="100%"]
   
   [.text-center]
   .Zoomed in view of RTT for 200 byte payload (10min)
  -image::udp/rtt-baseline-zoomed.png[link="../images/udp/rtt-baseline-zoomed.png"]
  +image::udp/rtt-baseline-zoomed.png[link="../images/udp/rtt-baseline-zoomed.png", width="100%"]
   
   90% of all packets arrived within 194us and a jitter of less than 1 microsecond. Roughly 80us of this time was spent on the wire, so using chips that support Gigabit (rather than 100Mbit) could lower the round-trip time to ~120us. Above the common case, there were three different periodically reoccuring modes that resulted in additional latency.
   
  
positive.code: 
  [.text-center]
  .UDP / IPv4 / Ethernet II Frame Structure
  image::udp/ethernet-ip-udp-header.png[link="../images/udp/ethernet-ip-udp-header.png"]
  
  Although this overhead may seem high for traditional automation applications with small payloads (<10 bytes), it quickly amortizes when communicating with smarter devices. For example, each one of our http://hebirobotics.com/products/[X-Series] actuators contains more than 40 sensors (position, velocity, torque, 3-axis gyroscope, 3-axis accelerometer, several temperature sensors, etc.) that get combined into a single packet that uses between 185 and 215 bytes payload. Typical feedback packets from an I/O Board are even larger and require about 300 bytes. When comparing overhead it is also important to consider the available bandwidth, i.e., sending 100 bytes over Gigabit Ethernet (even over 100 Mbit/s) tends to be faster than sending a single byte using traditional non-Ethernet based alternatives such as RS485 or CAN Bus.
  
  
negative.code: 
  [.text-center]
  .Operating system jitter of Scientific Linux 6.6 with MRG Realtime
  image::udp/os-jitter-linux-rt.png[link="../images/udp/os-jitter-linux-rt.png", width="100%"]
  
  The two figures below show the round-trip time for each measurement. It may be surprising, but there was again no packet loss or re-ordering of packets from any single source. 
  
  