I Use This!

Project Summary

Analyzed 18 days ago. based on code collected 18 days 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

Aug 27 2015 — Sep 26 2015

12 Month Summary

Sep 26 2014 — Sep 26 2015



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