Activity Not Available

Project Summary

  Analyzed 3 months ago based on code collected 3 months ago.

PSPacer (Precise Software Pacer) is a qdisc kernel module which realizes precise transmission bandwidth control. It makes bursty traffic which is often generated by TCP smooth without any special hardware.

Bursty traffic can degrade the communication performance, because it causes buffer overflow at intermediate network nodes and results in packet losses. In a bursty traffic, packets are sent back to back. By adding a short pause in between the packets, traffic bursts can be avoided.

PSPacer controls the interval between outgoing packets very precisely. The key idea of PSPacer is to determine transmission timing of packets by the number of bytes transferred. If packets are transferred back to back, the timing a packet is sent can be determined by the number of bytes sent before the packet. PSPacer fills the gaps between time aligned "real packets" (the packets which are sent by user program) by "gap packets". The real packets and gap packets are sent back to back, and thus the timing of transmission of each real packet can be precisely controlled by adjusting the gap packet size. As the gap packets, the IEEE 802.3x PAUSE frames are used. PAUSE frames are discarded at a switch input port, and only real packets go through the switch keeping the original intervals.

In the past, some software-based pacing schemes have been proposed. These schemes use timer interrupt based packet transmission timing control. Therefore, to achieve precise pacing, they require the operating system to maintain a high resolution timer, which could incur a large overhead.


In a Nutshell, pspacer...


5 Other

Lines of Code



30 Day Summary

Dec 25 2014 — Jan 24 2015

12 Month Summary

Jan 24 2014 — Jan 24 2015



Be the first to rate this project
Click to add your rating
Review this Project!