A library for the RObust Header Compression (ROHC) protocol. It provides an easy and robust way for applications to reduce their bandwidth usage on network links with limited capacity or expensive costs. Headers of network packets are compressed with the ROHC protocol and algorithms.
Introduction
------------
This piece of software is an implementation of RObust Header Compression for
Linux (or other Unix-compatible OS). The library can be used to add ROHC
compression/decompression capabilities to an application.
Official website: http://rohc-lib.org/
Mailing list: [email protected]
Mailing list archives: http://lists.launchpad.net/rohc/
Bugtracker: http://bugs.launchpad.net/rohc
License
-------
The project is licensed under the GNU LGPL version 2.1 or later, see the COPYING
and AUTHORS files for more details.
Some network captures or small scripts used for testing are under the GNU GPL
version 2 or later.
Libraries
---------
The sources are in the src subdirectory. The sources are separated into three
libraries:
- a library that contains the routines used for both the compression and the
decompression processes
- a library that handles the compression process
- a library that handles the decompression process
See the INSTALL file to learn to build the libraries.
Automated tests
---------------
The test subdirectory contains several test applications. See the INSTALL file
to learn how to use these tools.
Statistics
----------
The statistics subdirectory contains an application that generates some
compression statistics. The generate_statistics.sh script outputs a HTML report
with the statistics results. The Gnuplot tool is required.
See the INSTALL file to learn how to use the statistics application and the
generate_statistics.sh script.
Python binding
--------------
As of version 2.0.0, a Python binding was added. It is not as CPU performant as
the C library, so it is only recommended for testing or rapid prototyping. See
the INSTALL file to learn building and installing the Python binding.
The Python binding supports both Python 2.7 and Python 3.x.
References
----------
RFC 3095 RObust Header Compression (ROHC): Framework and four profiles:
RTP, UDP, ESP, and uncompressed.
http://www.ietf.org/rfc/rfc3095.txt
RFC 3096 Requirements for robust IP/UDP/RTP header compression.
http://www.ietf.org/rfc/rfc3096.txt
RFC 3828 The Lightweight User Datagram Protocol (UDP-Lite).
http://www.ietf.org/rfc/rfc3828.txt
RFC 3843 RObust Header Compression (ROHC): A Compression Profile for IP.
http://www.ietf.org/rfc/rfc3843.txt
RFC 4019 RObust Header Compression (ROHC): Profiles for User Datagram
Protocol (UDP) Lite.
http://www.ietf.org/rfc/rfc4019.txt
ROHC library The Open Source ROHC library described by the README file you are
currently reading.
http://rohc-lib.org/
ROHC Linux A GPL-licensed implementation of ROHC over PPP for the 2.4 Linux
kernel. The ROHC library is mainly based on this software.
http://rohc.sourceforge.net/
UDP-Lite An UDP-Lite implementation for the Linux kernel.
http://www.erg.abdn.ac.uk/users/gerrit/udp-lite/