Introduction
The ROHC library provides an easy and robust way for applications to reduce their bandwidth usage on network links with limited capacity. Headers of network packets are compressed with the ROHC protocol and algorithms.
RObust Header Compression (ROHC) is a set of standards defined by the IETF. The ROHC library is a free, opensource and efficient implementation of them. Many featuresare implemented.
License
The project is licensed under LGPL2.1+. See the COPYING and AUTHORS.md files for more details.
Library
The sources are in the src subdirectory. The sources are separated into three sub-directories:
-
the common/ sub-directory contains the routines used for both the compression and the decompression processes,
-
the comp/ sub-directory handles the compression process,
-
the decomp/ sub-directory handles the decompression process.
See the INSTALL.md file to learn to build the libraries. See also the Wiki of the project.
API documentation, tutorials and examples
The APIs for ROHC common, compression and decompression parts are available on separate pages:
Some tutorials are available on the website and wiki.
Some examples are available in the examples/ sub-directory in the sources.
Tests
Several tests may be run to check the library behaviour. See the INSTALL.md file to learn how to use these tools.
References
- RFC 3095
- ROHC: Framework and four profiles: RTP, UDP, ESP, and uncompressed.
- RFC 3096
- Requirements for robust IP/UDP/RTP header compression.
- RFC 3241
- ROHC over PPP
- RFC 3242
- ROHC: A Link-Layer Assisted Profile for IP/UDP/RTP
- RFC 3243
- ROHC: Requirements and Assumptions for 0-byte IP/UDP/RTP Compression
- RFC 3408
- ROHC: Zero-byte Support for R-mode in Extended Link-Layer Assisted ROHC Profile
- RFC 3409
- ROHC: Lower Layer Guidelines for Robust RTP/UDP/IP Header Compression
- RFC 3759
- ROHC: Terminology and Channel Mapping Examples
- RFC 3816
- ROHC: Definitions of Managed Objects (SNMP MIB) for ROHC
- RFC 3828
- The Lightweight User Datagram Protocol (UDP-Lite)
- RFC 3843
- ROHC: A Compression Profile for IP.
- RFC 4019
- ROHC: Profiles for User Datagram Protocol (UDP) Lite.
- RFC 4163
- ROHC: Requirements on TCP/IP Header Compression
- RFC 4224
- ROHC over Channels That Can Reorder Packets
- RFC 4362
- ROHC: A Link-Layer Assisted Profile for IP/UDP/RTP
- RFC 4995
- The RObust Header Compression (ROHC) Framework
- RFC 4996
- ROHC: A Profile for TCP/IP (ROHC-TCP)
- RFC 4997
- Formal Notation for RObust Header Compression (ROHC-FN)
- RFC 5225
- ROHCv2: Profiles for RTP, UDP, IP, ESP and UDP-Lite
- RFC 5795
- The RObust Header Compression (ROHC) Framework
- RFC 5856
- ROHC: Integration of ROHC over IPsec Security Associations
- RFC 5857
- ROHC: IKEv2 Extensions to Support ROHC over IPsec
- RFC 5858
- ROHC: IPsec Extensions to Support ROHC over IPsec
- RFC 6846
- ROHC: A Profile for TCP/IP (ROHC-TCP)
- ROHC library
- The Open Source ROHC library described by the documentation you are currently reading.
- ROHC Linux
- A GPL-licensed implementation of ROHC over PPP for the 2.4 Linux kernel. The ROHC library started as a fork of this project.