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 [2014/03/25 19:09]
didier [Software architecture] UDP -> raw IP
iprohc-overview [2018/04/23 13:51] (current)
didier merge with general presentation from summary
Line 7: Line 7:
 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. 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]] 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.+[[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 GPL version 2 (or later) license.+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 ===== ===== 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).+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. IP encapsulation means less overhead, but it also means that NAT gateways won't handle it well in many cases.+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.
  
  
Line 23: Line 27:
 {{ :​wiki:​iprohc:​iprohc_clients_server.png | one server handles several clients }} {{ :​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 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.+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 }} {{ :​wiki:​iprohc:​iprohc_channels.png | client and server use two channels }}
  
-Both the client and the server uses TUN interfaces ​to fake network interfaces.+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}} {{ :​wiki:​iprohc:​iprohc_tun.png | client and server use a TUN interface}}
  
 ===== 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.1395774568.txt.gz · Last modified: 2014/03/25 19:09 by didier