**This is an old revision of the document!** ----
======== IP/ROHC tunnel ======== ===== 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). In addition, frame packing is implemented: several ROHC packets are put together in one single IP header to reduce the tunnel overhead even more. ===== 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. 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 UDP 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. Both the client and the server uses TUN interfaces to fake network interfaces. ===== Supported platforms ===== The application was tested under Linux, and more especially Debian Squeeze, CentOS 5, Arch, and Gentoo. It should however work on every Linux distributions. If not, 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.