The wiki contains documentation about the ROHC library and the ROHC protocol itself.
Note: the creation of wiki accounts is disabled due to spam; if you want an account, ask for it on the project mailing list.
The RObust Header Compression (ROHC) protocol aims at reducing bandwidth usage on network links with limited capacity or expensive costs, such as mobile networks or satellite links. It defines a lossless compression scheme for network headers. It leaves the network payload unchanged.
The resources below describes the ROHC protocol in more details:
complete this section with more details on specific part of the ROHC protocol and profiles.
Using existing tools and applications:
Develop your own application:
This section lists some of the applications based on the ROHC library. Some are developed within the ROHC library itself because they are useful as debug tools; some are developed in external locations to allow them to evolve at their own pace.
For versions >= 1.6.0 of the library only
The ROHC sniffer is a lightweight application for testing the robustness of the ROHC library. The sniffer passively captures all the traffic on a network interface, compresses it, decompresses it, then compares it with the original traffic. If any of the previous steps fails, the sniffer stops and reports the problem.
In some aspect, the ROHC sniffer replaces the ROHC over UDP tunnel because it allows testing the library with real traffic without any impact on the network or on other applications:
For versions 1.6.x and 1.7.x of the library only. Use the AFL fuzzer instead for versions >= 2.0.0.
For versions >= 1.7.0 of the library only
The ROHC stats application makes it easy to gather some (de)compression statistics from one network flow (in PCAP format). The tool outputs statistics in CSV format with the following tab-separated fields:
Once the ROHC library and tools are installed, get some more help with:
$ man rohc_stats
$ rohc_stats --help
A helper shell script is also provided to generate an HTML page with pretty graphs on it:
$ ./rohc_stats.sh network_flow.pcap ./network_flow_stats/ $ firefox ./network_flow_stats/index.html
The IP/ROHC application a tunnel application similar the ROHC/UDP tunnel, but designed for production! It was designed and developed by Viveris Technologies.
The application compresses the IP packets that it receives on a TUN interface with the ROHC library. Then it encapsulates the ROHC packets in IP packets (to avoid the UDP overhead). Because of that it is named IP/ROHC (iprohc in code). In addition, frame packing is implemented: several ROHC packets are put together in one single IP header to reduce the tunnel overhead even more.