Presentation of the project

What is the ROHC library for?

The ROHC library 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.

Why compressing network headers?

In streaming applications, such as VoIP, network headers corresponds to around 60% of the total amount of data transmitted. Such large overheads may be tolerable in local wired links where capacity is often not an issue, but are excessive for WAN and wireless systems where bandwidth is scarce. Source: Wikipedia.

What is the ROHC protocol?

Robust Header Compression (ROHC) is a standardized method to compress the IP, UDP , RTP and TCP headers of Internet packets.

The ROHC protocol defined by the IETF takes advantage of the information redundancy in headers of:

Redundant information is transmitted in first packets only. Next packets contain variable information only, eg. identifiers or sequence numbers. Theses fields are furthermore transmitted in a adequate compressed form to save some more bits.

Learn more…

What performances may be expected?

The ROHC protocol is especially efficient for network traffic with small payloads, such as VoIP traffic. In such scenarios, a 65% bandwidth gain may be expected on IPv4 networks. 73% for IPv6 networks.

For VoIP traffic on IPv4 networks, every packet contains 40 bytes of network headers for only 20 bytes of payload. On IPv6 networks, 60 bytes of headers for 20 bytes of payload. In steady state, theses 40/60-byte network headers may be compressed down to 1 byte.

Learn more…

Which features are supported?

The ROHC library supports several ROHC standards defined by the IETF. The RFC 3095 is probably the most important one.

The library compresses the following types of traffic (IP means IPv4 and IPv6):

Double IP headers are supported in order to compress IP tunnels.

Full list of supported RFCs and features…

Which licensing terms?

Since version 1.7.0, the library is published as Opensource under the GNU LGPL license version 2.1 or at your option any later version.

Before version 1.7.0, the library was published under the GNU GPL license version 2 or at your option any later version.

The project is the resulting work of many contributors (large & small companies and individuals).

Learn more…

Releases

Next major release: 2.1.0 Git branch roadmap
Current stable release: 2.0.0 download release notes
Previous stable release: 1.7.0 download release notes

History

2016:

2015:

2014:

2013:

2012:

2011:

2010:

2009:

2008:

2007:

back to top