User Tools

Site Tools


iprohc-overview

IP/ROHC tunnel

This page presents the IP/ROHC tunnel application. Instructions for installing or running the application are given on dedicated pages.

Origins

The tunnel application was designed and developed by Viveris Technologies. Viveris Technologies is a French company working in the IT field. The company provides to the ROHC project the skills of its engineering teams in the telecommunications, network and Linux fields.

Viveris Technologies proposes the knowledge and expertise gained on the ROHC library to companies and people that are interested in network header compression, but do not have the skills or the time to integrate the ROHC mechanisms in their application or infrastructure.

The IP/ROHC application is published under the GPL version 2 (or later) license.

The IP/ROHC application is developed in a dedicated GitHub project.

Features

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.

IP encapsulation means less overhead, but it also means that NAT gateways won't handle it well in many cases.

Software architecture

The IP/ROHC application is divided into two parts: the server and the client. The server part handles sessions with several clients simultaneously.  one server handles several clients

The client and the server establish two communication channels between them: the control channel that uses TCP for reliability, and the data channel that uses raw IP for efficiency. The client establishes and closes a session on the control channel. The client transmits compressed data on the data channel. The control channel is authenticated and encrypted with TLS.  client and server use two channels

Both the client and the server uses TUN interface to fake network interfaces.  client and server use a TUN interface

Supported platforms

The application was tested under Linux, and more especially Debian, CentOS 5, Arch, and Gentoo. It should however work on every Linux distributions. If not, check for open bugs, report a bug and/or send a patch.

The application requires libyaml, gnutls, and ROHC. A RPM spec and a Debian package are available in the source tree. For more details, please refer to the instructions for installing the IP/ROHC tunnel.

FIXME make the RPM spec public and update the link

iprohc-overview.txt · Last modified: 2018/04/23 15:51 by didier