Effnet ROHC-TCP™

Effnet provides a highly portable, efficient and fully compliant software implementation of RObust Header Compression TCP (ROHC-TCP) technology which is based on IETF standards RFC 5795 (RFC 4995) and RFC 6846 (RFC 4996) first published in 2007. Effnet's research and development team has been actively involved in the standardization process. Effnet ROHC-TCP™ provides significant link efficiency improvements for TCP traffic e.g web, email etc and particularly for TCP acknowledgement packets. It is robust and maintains high compression efficiency even in presence of high BER, long RTT, packet loss and pre- and on-link reordering.

Effnet ROHC-TCP™ header chain support

ROHC-TCP header chains

Both IPv4 and IPv6 are supported, with extension headers.

Support for AH, GRE, MINE and ESP-NULL headers.

Common applications of Effnet ROHC-TCP™


The 3GPP LTE and NR specifications recommend ROHC-TCP for efficient use of radio resources. Satellite mobile broadband systems like BGAN, GMR can efficiently deliver their broadband services using Effnet ROHC-TCP™. The software supports broadcast and multicast applications as well as unidirectional and bi-directional links. It can also be used on various types of satellite links such as DVB-S, DVB-S2, DVB-RCS. Effnet ROHC-TCP™ provides improved bandwidth efficiency when used together with Protocol Enhancement Proxies on satellite networks, bandwidth optimization techniques in WAN optimizers, TCP accelerators and on backhaul links.

ROHC for backhaul satellite

Multiple Internet packet size studies* are in agreement that at least 40% of all IPv4 packets carry no or only a few bytes of payload i.e. packet sizes are at or very near to header size (IPv4+TCP). One study of IPv6 packets shows the same trend. Even more remarkable in that study is that for IPv6, 60-80% of the packets carry more header data than packet data. Effnet ROHC-TCP™ would be very beneficial in these cases.

Average packet size (w/o ROHC) (bytes) Average packet size (w ROHC) (bytes) Savings (%)
TCP Ack (w/o options) 40 10 75
TCP Ack (Timestamp) 52 13 75

*Packet size studies at www.caida.org

Effnet ROHC-TCP™ is a member of the Effnet Header Compression family. All products work together seamlessly and are easy to integrate into customer’s products. One or more products can be delivered as a package to fulfill requirements of standards e.g. complete Effnet ROHC™ family for 3GPP LTE and NR.

Effnet ROHC-TCP™ is designed to be easily adapted to a variety of operating systems and hardware platforms. The implementation is developer-friendly and available both for user space, kernel space, debugging and testing and for link layer integration such as PPP according to RFC 3241.

Highlights of the latest version, 2.8

  • Added a feature to backup and restore context memory to nonvolatile memory for power saving purposes.
  • Improved code safety and stability.

General features

  • Fully compliant with IETF standards RFC 5795 & RFC 6846
  • Lightweight implementation suitable for low-end devices
  • Highly portable ANSI C code with no operating system dependencies
  • Platform, endianness and byte-order independent
  • Highly configurable with compile and run-time options
  • Highly modular with external memory management
  • Multi-threading support

Standards based functions:

  • Profiles: 0x0006 (ROHC-TCP) is supported.
  • All the compressor and decompressor states and the state transition.
  • Both modes: Unidirectional (U-mode), Bi-directional Optimistic (O-mode) and mode transitions.
  • Encoding methods: LSB, W-LSB, Offset IP-ID encoding, Self-describing variable-length values
  • Context initialization using IR packet.
  • Optimistic approach and periodic context refresh.
  • Compression and decompression of IPv4 and IPv6 with extension headers.
  • Compression and decompression of AH, GRE, ESP-NULL and MINE headers.
  • Compression and decompression of TCP header.
  • Dealing with changes in semi-static fields, e.g., TTL, TOS and DF-bit.
  • Heuristics for detection of IP-ID behavior.
  • Dealing with changes in IP-ID behavior.
  • All packet types supported.
    • Packet types for both random and sequential IP-ID are supported.

Effnet Classifier and Context Manager (EFFRCCM™)


The classification and context management is an essential component of header compression function. Even though RFC 5795 and RFC 6846 do not standardize it, Effnet provides this component together with Effnet ROHC-TCP™. The classifier and context manager provides following functions:

  • Handles typical classification requirements for header compression flows.
  • Performs exact matching on all required header fields for ROHC, including IP version (IPv4 or IPv6), IP protocol number, TTL/Hop count, Source address, Source port, Destination address, Destination port, Flow label, IPSEC SPI, Minimal Encapsulation source and destination address, and IPv6 routing header.
  • Handles GRE headers (sometimes used for tunneling).
  • Handles IPv6 extension headers (sometimes used within IPv4, if tunneled).
  • Detects and avoids fragmentation and IPv4 options.
  • Provides profile hint for a packet based on header chain present.
  • Provides sufficient information for CID management.
  • Provides context associated with a packet via context management.


Effnet provides support and maintenance services covering problem reporting, bug fixes, updates, training, consulting and integration. A sample application code together with detailed documentation covering well defined and easy to use API is provided to speed up the process of integration.