User Tools

Site Tools


iprohc-overview

====== Differences ====== This shows you the differences between two versions of the page.

Link to this comparison view

iprohc-overview [2013/04/21 16:15]
didier created
iprohc-overview [2018/04/23 13:51] (current)
didier merge with general presentation from summary
Line 1: Line 1:
 ======== IP/ROHC tunnel ======== ======== IP/ROHC tunnel ========
  
-===== Features ====+This page presents the IP/ROHC tunnel application. Instructions for [[iprohc-install|installing]] or [[iprohc-run|running]] the application are given on dedicated pages.
  
-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).+===== Origins ===== 
 + 
 +The tunnel application was designed and developed by [[http://​www.viveris.fr/​|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. 
 + 
 +[[http://​www.viveris.fr/​|Viveris Technologies]] proposes the knowledge and expertise gained on the [[summary#​rohc_library|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-protocol|ROHC mechanisms]] in their application or infrastructure. 
 + 
 +The IP/ROHC application is published under the [[https://​github.com/​didier-barvaux/​iprohc/​blob/​master/​COPYING|GPL version 2 (or later) license]]. 
 + 
 +The IP/ROHC application is developed in a [[https://​github.com/​didier-barvaux/​iprohc|dedicated GitHub project]]. 
 + 
 +===== Features ===== 
 + 
 +The application compresses the IP packets that it receives on a [[wp>​TUN/​TAP|TUN interface]] with the [[summary#​rohc_library|ROHC library]]. Then it encapsulates the ROHC packets in IP packets (to avoid the [[wp>​User Datagram Protocol|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. 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 [[wp>​Network address translation|NAT gateways]] won't handle it well in many cases.
  
-===== Software architecture ====+ 
 +===== 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 IP/ROHC application is divided into two parts: the server and the client. The server part handles sessions with several clients simultaneously.
 +{{ :​wiki:​iprohc:​iprohc_clients_server.png | 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 UDP for efficiency.+The client and the server establish two communication channels between them: the control channel that uses [[wp>​Transmission Control Protocol|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 [[wp>​Transport Layer Security|TLS]]. 
 +{{ :​wiki:​iprohc:​iprohc_channels.png | client and server use two channels }}
  
-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 [[wp>TUN/TAP|TUN interface]] ​to fake network interfaces. 
- +{{ :​wiki:​iprohc:​iprohc_tun.png | client and server use a TUN interface}}
-Both the client and the server uses TUN interfaces ​to fake network interfaces.+
  
 ===== Supported platforms ===== ===== 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 was tested under [[wp>Linux]], and more especially ​[[https://​www.debian.org/​intro/​about#​what|Debian]][[http://​wiki.centos.org/​Manuals/​ReleaseNotes/​CentOS5.10|CentOS 5]][[https://​www.archlinux.org/​|Arch]], and [[https://​gentoo.org/​|Gentoo]]. It should however work on every [[wp>Linux]] distributions. If not, [[https://​bugs.launchpad.net/​rohc|check for open bugs]], [[https://​bugs.launchpad.net/​rohc/​+filebug|report a bug]] and/​or ​[[https://​rohc-lib.org/​support/​mailing-list/​|send a patch]]. 
 + 
 +The application requires [[http://​pyyaml.org/​wiki/​LibYAML|libyaml]],​ [[http://​gnutls.org/​|gnutls]],​ and [[summary#​rohc_library|ROHC]]. A RPM spec and a [[https://​github.com/​didier-barvaux/​iprohc/​tree/​master/​contrib/​packaging/​debian|Debian package]] are available in the [[https://​github.com/​didier-barvaux/​iprohc/​tree/​master/​|source tree]]. For more details, please refer to the instructions for [[iprohc-install|installing]] the IP/ROHC tunnel.
  
-The application requires libyaml, gnutls, and ROHC. A RPM spec and a Debian package are available in the source tree.+FIXME make the RPM spec public ​and update ​the link
iprohc-overview.1366560900.txt.gz · Last modified: 2013/04/21 16:15 by didier