ROHC: compress your VoIP traffic Didier Barvaux - - PowerPoint PPT Presentation

rohc compress your voip traffic
SMART_READER_LITE
LIVE PREVIEW

ROHC: compress your VoIP traffic Didier Barvaux - - PowerPoint PPT Presentation

Header compression The ROHC protocol The ROHC library Perspectives ROHC: compress your VoIP traffic Didier Barvaux didier.barvaux@toulouse.viveris.com didier@rohc-lib.org July, 7th 2014 Viveris Technologies ROHC: compress your VoIP traffic


slide-1
SLIDE 1

Header compression The ROHC protocol The ROHC library Perspectives

ROHC: compress your VoIP traffic

Didier Barvaux didier.barvaux@toulouse.viveris.com didier@rohc-lib.org July, 7th 2014

Viveris Technologies ROHC: compress your VoIP traffic

slide-2
SLIDE 2

Header compression The ROHC protocol The ROHC library Perspectives

Agenda

1

Header compression

2

The ROHC protocol

3

The ROHC library

4

Perspectives

Viveris Technologies ROHC: compress your VoIP traffic

slide-3
SLIDE 3

Header compression The ROHC protocol The ROHC library Perspectives

Me

2000-2001: newbie 2003-2005: diploma from ENSEEIHT 2005: daily job on Linux at Viveris Technologies

http://www.viveris.fr/

2007: ROHC library http://rohc-lib.org/ 2013: Open Source workgroup at Viveris

http://opensource.viveris.fr/ Viveris Technologies ROHC: compress your VoIP traffic

slide-4
SLIDE 4

Header compression The ROHC protocol The ROHC library Perspectives problem statement existing protocols

1

Header compression problem statement existing protocols

2

The ROHC protocol

3

The ROHC library

4

Perspectives

Viveris Technologies ROHC: compress your VoIP traffic

slide-5
SLIDE 5

Header compression The ROHC protocol The ROHC library Perspectives problem statement existing protocols

Header compression: why?

Header size Header size is a concern on network links

Viveris Technologies ROHC: compress your VoIP traffic

slide-6
SLIDE 6

Header compression The ROHC protocol The ROHC library Perspectives problem statement existing protocols

Header compression: why?

Header size Header size is a concern on network links For VoIP traffic, only 20 of 60 bytes for useful data

Viveris Technologies ROHC: compress your VoIP traffic

slide-7
SLIDE 7

Header compression The ROHC protocol The ROHC library Perspectives problem statement existing protocols

Header compression: why?

Header size Header size is a concern on network links For VoIP traffic, only 20 of 60 bytes for useful data Is header compression still useful? An old idea...

designed for low-speed serial links in 1990 today network links are much larger

...but still useful

slow links still exists (GSM, UMTS...) larger links are congested data traffic may be expensive on links (satellite)

Viveris Technologies ROHC: compress your VoIP traffic

slide-8
SLIDE 8

Header compression The ROHC protocol The ROHC library Perspectives problem statement existing protocols

existing protocols

Protocols defined by the IETF RFC 1144, 1990: Compressing TCP/IP Headers for Low-Speed Serial Links RFC 2507, 1999: IP Header Compression (IPHC) RFC 2508, 1999: Compressing IP/UDP/RTP Headers for Low-Speed Serial Links (CRTP) RFC 3095, 2001: RObust Header Compression (ROHC)

Viveris Technologies ROHC: compress your VoIP traffic

slide-9
SLIDE 9

Header compression The ROHC protocol The ROHC library Perspectives definition protocol

1

Header compression

2

The ROHC protocol definition protocol

3

The ROHC library

4

Perspectives

Viveris Technologies ROHC: compress your VoIP traffic

slide-10
SLIDE 10

Header compression The ROHC protocol The ROHC library Perspectives definition protocol

What ROHC is?

RObust Header Compression (ROHC) A network protocol that compresses away protocol headers

Viveris Technologies ROHC: compress your VoIP traffic

slide-11
SLIDE 11

Header compression The ROHC protocol The ROHC library Perspectives definition protocol

What ROHC is?

RObust Header Compression (ROHC) A network protocol that compresses away protocol headers Objectives efficient & robust on cellular links extensible framework IPv4, IPv6, UDP, UDP-Lite, RTP, TCP, ESP, GRE...

Viveris Technologies ROHC: compress your VoIP traffic

slide-12
SLIDE 12

Header compression The ROHC protocol The ROHC library Perspectives definition protocol

What ROHC is?

RObust Header Compression (ROHC) A network protocol that compresses away protocol headers Objectives efficient & robust on cellular links extensible framework IPv4, IPv6, UDP, UDP-Lite, RTP, TCP, ESP, GRE... Standard IETF standard http://www.ietf.org/ ROHC Working Group (WG) http://datatracker.ietf.org/wg/rohc/charter/ RFC 3095 and 22 others 2 versions: ROHCv1 and ROHCv2

Viveris Technologies ROHC: compress your VoIP traffic

slide-13
SLIDE 13

Header compression The ROHC protocol The ROHC library Perspectives definition protocol

Main principles: headers only

Only headers are compressed

Viveris Technologies ROHC: compress your VoIP traffic

slide-14
SLIDE 14

Header compression The ROHC protocol The ROHC library Perspectives definition protocol

Main principles: information redundancy

Information redundancy: within one single network packet, eg. IP/UDP lengths several network packets in one stream, eg. IP addresses

Viveris Technologies ROHC: compress your VoIP traffic

slide-15
SLIDE 15

Header compression The ROHC protocol The ROHC library Perspectives definition protocol

Main principles: packet classification

Classify packets into streams: IPv4 / IPv6 IP addresses UDP/TCP ports RTP SSRC ... Exemples: RTP packets of a VoIP call, TCP packets of a TCP connection...

Viveris Technologies ROHC: compress your VoIP traffic

slide-16
SLIDE 16

Header compression The ROHC protocol The ROHC library Perspectives definition protocol

Modes of operation

Several way to operate: the Unidirectional mode (U-mode), the Bidirectional Optimistic mode (O-mode), the Bidirectional Reliable mode (R-mode).

Viveris Technologies ROHC: compress your VoIP traffic

slide-17
SLIDE 17

Header compression The ROHC protocol The ROHC library Perspectives definition protocol

Compression states

Stateful protocol: IR state: low compression, context establishment FO state: medium compression, transmit small irregular changes SO state: high compression, transmit only the sequence number

Viveris Technologies ROHC: compress your VoIP traffic

slide-18
SLIDE 18

Header compression The ROHC protocol The ROHC library Perspectives definition protocol

Profiles

Compression profiles: Uncompressed IP-only IP/UDP IP/UDP-Lite IP/UDP/RTP IP/UDP-Lite/RTP IP/ESP IP/TCP IP = IPv4, IPv4/IPv4, IPv4/IPv6, IPv6, IPv6/IPv4, IPv6/IPv6 IPv6 extension headers are handled

Viveris Technologies ROHC: compress your VoIP traffic

slide-19
SLIDE 19

Header compression The ROHC protocol The ROHC library Perspectives genesis performances applications

1

Header compression

2

The ROHC protocol

3

The ROHC library genesis performances applications

4

Perspectives

Viveris Technologies ROHC: compress your VoIP traffic

slide-20
SLIDE 20

Header compression The ROHC protocol The ROHC library Perspectives genesis performances applications

Genesis

History: 2003: initial version by Lulea University of Technologies

http://www.ltu.se/

2007: internal fork by TAS, CNES, and Viveris Technologies 2009: public version of the fork (GPLv2+) 2014: LGPLv2+ license

Viveris Technologies ROHC: compress your VoIP traffic

slide-21
SLIDE 21

Header compression The ROHC protocol The ROHC library Perspectives genesis performances applications

Genesis

History: 2003: initial version by Lulea University of Technologies

http://www.ltu.se/

2007: internal fork by TAS, CNES, and Viveris Technologies 2009: public version of the fork (GPLv2+) 2014: LGPLv2+ license Latest version 1.7.0 released on June 2014: ROHCv1 mostly supported ROHCv2 not supported yet portable

Viveris Technologies ROHC: compress your VoIP traffic

slide-22
SLIDE 22

Header compression The ROHC protocol The ROHC library Perspectives genesis performances applications

Performances

30-minute VoIP call

90000 60-byte IPv4/UDP/RTP packets every 20 ms Viveris Technologies ROHC: compress your VoIP traffic

slide-23
SLIDE 23

Header compression The ROHC protocol The ROHC library Perspectives genesis performances applications

Example

Compressing one IP/UDP/RTP packet

struct rohc comp *compressor; ... compressor = rohc comp new2(ROHC SMALL CID, ROHC SMALL CID MAX, gen random num, NULL); rohc comp enable profile(compressor, ROHC PROFILE RTP); ... rohc compress4(compressor, ip packet, &rohc packet); ... rohc comp free(compressor);

API documentation, tutorials and examples on http://rohc-lib.org/support/documentation/

Viveris Technologies ROHC: compress your VoIP traffic

slide-24
SLIDE 24

Header compression The ROHC protocol The ROHC library Perspectives genesis performances applications

Applications using ROHC

tools in sources:

stats perf sniffer fuzzer

IP/ROHC tunnel (on Launchpad) OpenSAND http://opensand.org/ used for internal projects by large companies in telecommunications

Viveris Technologies ROHC: compress your VoIP traffic

slide-25
SLIDE 25

Header compression The ROHC protocol The ROHC library Perspectives

1

Header compression

2

The ROHC protocol

3

The ROHC library

4

Perspectives

Viveris Technologies ROHC: compress your VoIP traffic

slide-26
SLIDE 26

Header compression The ROHC protocol The ROHC library Perspectives

Perspectives

Perspectives new features:

stable TCP profile, R-mode GRE ROHCv2

better CPU performances wider usage: SIP phones? IPBX? Project resources Website: http://rohc-lib.org/ Mailing-list: rohc@lists.launchpad.net IRC: #rohc on freenode

Viveris Technologies ROHC: compress your VoIP traffic