Kodo - Cross-platform Network Coding Software Library. Morten V. Pedersen - Aalborg University / Steinwurf ApS mvp@es.aau.dk



Similar documents
Kodo: An Open and Research Oriented Network Coding Library Pedersen, Morten Videbæk; Heide, Janus; Fitzek, Frank Hanns Paul

Mathematical Modelling of Computer Networks: Part II. Module 1: Network Coding

Network Coded Software Defined Networking: Design and Implementation

Implementation and Evaluation of Certificate Revocation List Distribution for Vehicular Ad-hoc Networks

Implementation and Performance Evaluation of Distributed Cloud Storage Solutions using Random Linear Network Coding

We are presenting a wavelet based video conferencing system. Openphone. Dirac Wavelet based video codec

Assignment #3 Routing and Network Analysis. CIS3210 Computer Networks. University of Guelph

TREK GETTING STARTED GUIDE

UVOIP: CROSS-LAYER OPTIMIZATION OF BUFFER OPERATIONS FOR PROVIDING SECURE VOIP SERVICES ON CONSTRAINED EMBEDDED DEVICES

Mobile IP Network Layer Lesson 02 TCP/IP Suite and IP Protocol

The Secure Sockets Layer (SSL)

Chapter 6 CDMA/802.11i

TREK GETTING STARTED GUIDE

CS 557- Project 1 A P2P File Sharing Network

Parallelization of video compressing with FFmpeg and OpenMP in supercomputing environment

Linux Kernel Architecture

Voice over IP. Demonstration 1: VoIP Protocols. Network Environment


ECU State Manager Module Development and Design for Automotive Platform Software Based on AUTOSAR 4.0

Huffman Movement DCT. Encoding H.261 Detection. video Raw video Interframe coding data. Inverse Inverse Memory

Computer Networks Practicum 2015

How To Secure Cloud Computing

An Introduction to VoIP Protocols

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

How To Understand And Understand The Ssl Protocol ( And Its Security Features (Protocol)

SSL/TLS. What Layer? History. SSL vs. IPsec. SSL Architecture. SSL Architecture. IT443 Network Security Administration Instructor: Bo Sheng

Video Streaming with Network Coding

Leveraging the Eclipse TPTP* Agent Infrastructure

Lecture 8. IP Fundamentals

ATV Data Link Simulator: A Development based on a CCSDS Layers Framework

SIP Protocol as a Communication Bus to Control Embedded Devices

6LoWPAN Technical Overview

What s Cooking in KNIME

Network traffic monitoring and management. Sonia Panchen 11 th November 2010

SYCL for OpenCL. Andrew Richards, CEO Codeplay & Chair SYCL Working group GDC, March Copyright Khronos Group Page 1

Computer Networks. Secure Systems

Multi Stage Filtering

The new Internet Protocol securityipsec testing with TTCN-3

Web Security Considerations

Tools for Peer-to-Peer Network Simulation

Introduction to IP v6

1. Comments on reviews a. Need to avoid just summarizing web page asks you for:

CYBER SCIENCE 2015 AN ANALYSIS OF NETWORK TRAFFIC CLASSIFICATION FOR BOTNET DETECTION

Integrating Video Conferencing into Everyday Applications. Olivier Crête

Sample Syllabus (C++) CSCI 1301 Introduction to Programming Principles

A Data Centric Approach for Modular Assurance. Workshop on Real-time, Embedded and Enterprise-Scale Time-Critical Systems 23 March 2011

TECHNICAL CHALLENGES OF VoIP BYPASS

Bandwidth usage of common networking applications

Introduction VOIP in an Network VOIP 3

Architectures and Platforms

Chapter 9. IP Secure

CrownPeak Playbook CrownPeak Hosting with PHP

Introduction to Functional Verification. Niels Burkhardt

ΕΠΛ 674: Εργαστήριο 5 Firewalls

Introduction to Programming System Design. CSCI 455x (4 Units)

Introduction to Network Security. Topics

Compiling PCRE to FPGA for Accelerating SNORT IDS

Telematics. 14th Tutorial - Proxies, Firewalls, P2P

DVoIP: DYNAMIC VOICE-OVER-IP TRANSFORMATIONS FOR QUALITY OF SERVICE IN BANDWIDTH CONSTRAINED ENVIRONMENTS

Building native mobile apps for Digital Factory

Intecs S.p.A. AUTOSAR Conformance Testing: an overview

5. Security in the IPN

8 Tutorial: Using ASN.1

Intro to scientific programming (with Python) Pietro Berkes, Brandeis University

Transport layer issues in ad hoc wireless networks Dmitrij Lagutin,

APTA TransiTech Conference Communications: Vendor Perspective (TT) Phoenix, Arizona, Tuesday, VoIP Solution (101)

DEPLOYMENT GUIDE Version 1.1. DNS Traffic Management using the BIG-IP Local Traffic Manager

Windows Sockets Network Programming

NetFlow/IPFIX Various Thoughts

THE GEOMORPHIC VIEW OF NETWORKING: A NETWORK MODEL AND ITS USES

Agile Cloud supporting the Tactile Internet

CS 4803 Computer and Network Security

Cloud9 Parallel Symbolic Execution for Automated Real-World Software Testing

Voice over IP: RTP/RTCP The transport layer

, SNMP, Securing the Web: SSL

EXPLORER. TFT Filter CONFIGURATION

For version p (September 4, 2012)

COMP 112 Assignment 1: HTTP Servers

A Transport Protocol for Multimedia Wireless Sensor Networks

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

Configuring Snort as a Firewall on Windows 7 Environment

Binary Translation for Fun and Profit

OpenFlow 1.4. (Changes compared to 1.3 OpenDaylight Perspec>ve) - Abhijit Kumbhare

Voice over IP (VoIP) Overview. Introduction. David Feiner ACN Introduction VoIP & QoS H.323 SIP Comparison of H.323 and SIP Examples

10 Java API, Exceptions, and Collections

Chapter 3.2 C++, Java, and Scripting Languages. The major programming languages used in game development.

CSMA/CA. Information Networks p. 1

ΕΠΛ 475: Εργαστήριο 9 Firewalls Τοίχοι πυρασφάλειας. University of Cyprus Department of Computer Science

As enterprises conduct more and more

The Picture must be Clear. IPTV Quality of Experience

CoHaRT: Deterministic Transmission of Large Data Amounts using CoAP and Kad

Network: several computers who can communicate. bus. Main example: Ethernet (1980 today: coaxial cable, twisted pair, 10Mb 1000Gb).

Transcription:

Kodo - Cross-platform Network Coding Software Library Morten V. Pedersen - Aalborg University / Steinwurf ApS mvp@es.aau.dk

Background Academia Network coding key enabler for efficient user cooperation (p2p). Kodo developed during a 3 year research project CONE (COoperation and NEtwork Coding). Concluded 2012. Industry On campus start-up Steinwurf ApS founded in 2011. Taking over the rights for Kodo and development. Library source code fully available. Licenses: a. Free for Research / Educational b. Paid Commercial

Kodo's Position Many different requirements Deterministic vs. random, inter- vs. intra-flow, physical to application / transport layer. Current versions of Kodo implement Software & Digital Random Linear Network Coding (RLNC) Suitable for transport / application layer protocol implementations Focus on the coding Application Data Input Data partitioning Encoder Recoder Decoder Data output TCP / UDP

Kodo (the library) C++11 (staying compatible with major compilers). Designed to allow for easy experimentation and a high degree of code reuse. Very flexible design technique used called "mixin-layers" or "parameterized inheritance" using C++ templates. Low-level = ample ways of shooting yourself in the foot. With API specs. we try to mitigate this. High Performance - code generated by compiler comparable to single monolithic implementation. Helper libraries. Resource management Finite Fields

Network Coding Algorithms (Kodo v7) Don't pay for what you don't use! 1. /// A basic RLNC encoder. This type of RLNC encoder 2. /// transmits the entire encoding vector as part of the 3. /// encoded payload. It therefore allows recoding at 4. /// intermediate nodes in a network. 5. template<class Field> 6. class full_rlnc_encoder 7. : public payload_encoder< 8. systematic_encoder< 9. zero_symbol_encoder< 10. full_vector_encoder< 11. linear_block_vector_generator<block_cache_lookup_uniform, 12. linear_block_encoder< 13. finite_field_math<fifi::default_field_impl, 14. symbol_storage_shallow_partial< 15. has_bytes_used< 16. has_block_info< 17. final_coder_factory_pool<full_rlnc_encoder<field>, Field> 18. > > > > > > > > > > 19. {};

Reed Solomon Encoder/Decoder (Kodo v7) 1. template<class Field> 2. class rs_encoder 3. : public payload_encoder< 4. zero_symbol_encoder< 5. reed_solomon_encoder<vandermonde_matrix, 6. linear_block_encoder< 7. finite_field_math<fifi::default_field_impl, 8. symbol_storage_shallow_partial< 9. has_bytes_used< 10. has_block_info< 11. final_coder_factory_pool<rs_encoder<field>, Field> 12. > > > > > > > > 13. {}; Only added layer is on line 5 - everything else is reuse!

Kodo v8 Typical Codec Stack Payload Codec Layers Payload Codec API Codec Header API Codec Header Layers Symbol ID API User API Construction API Coefficient Generator API Codec Layers Codec API Utility Layers Finite Field Math API Symbol Storage API Coefficient Storage API Factory API

Kodo v8 Documentation Manual API

Kodo Testing Continuous Integration (build on every commit) Different platforms & compilers Core part of our release management

Kodo Performance Main thing: Measure raw coding speed. Catch performance regressions Research / Experimentation Memory access patterns Finite field operations Prove / test a clever algorithm

Kodo and the IRTF NWCRG Provides a solid building block for Protocol development. Experimentation with different code variants. It is well tested. It has traction: New features Supported platforms Several University projects using it. Version 8 soon to be released bring much better documentation.

The End Questions? Contributions + bug fixes please Simple procedure with sign-off Feedback / comments /questions are all very welcome! Morten V. Pedersen mvp@es.aau.dk

Getting started Code http://github.com/steinwurf/kodo See example of encode/decode in the examples folder Documentation (we are working on it) http://readthedocs.org/docs/kodo/en/latest/ Status buildbot: http://176.28.49.184:12344/