High-Resolution Timer-Based Packet Pacing Mechanism on the Linux Operating System

Ryousei TAKANO  Tomohiro KUDOH  Yuetsu KODAMA  Fumihiro OKAZAKI  

IEICE TRANSACTIONS on Communications   Vol.E94-B   No.8   pp.2199-2207
Publication Date: 2011/08/01
Online ISSN: 1745-1345
DOI: 10.1587/transcom.E94.B.2199
Print ISSN: 0916-8516
Type of Manuscript: Special Section PAPER (Special Section on Deployment and Operation of New Internet Technology: Challenges and Approaches)
packet pacing,  high-resolution timer,  TCP segmentation offload,  

Full Text: PDF(1.2MB)>>
Buy this Article

Packet pacing is a well-known technique for reducing the short-time-scale burstiness of traffic, and software-based packet pacing has been categorized into two approaches: the timer interrupt-based approach and the gap packet-based approach. The former was originally hard to implement for Gigabit class networks because it requires the operating system to handle too frequent periodic timer interrupts, thus incurring a large overhead. On the other hand, a gap packet-based packet pacing mechanism achieves precise pacing without depending on the timer resolution. However, in order to guarantee the accuracy of rate control, the system must be able to transmit packets at the wire rate. In this paper, we propose a high-resolution timer-based packet pacing mechanism that determines the transmission timing of packets by using a sub-microsecond resolution timer. The high-resolution timer is a light-weight mechanism compared to the traditional low-resolution periodic timer. With recent progress in hardware protocol offload technologies and multicore-aware network protocol stacks, we believe high-resolution timer-based packet pacing has become practical. Our experimental results show that the proposed mechanism can work on a wider range of systems without degrading the accuracy of rate control. However, a higher CPU load is observed when the number of traffic classes increases, compared to a gap packet-based pacing mechanism.