Kodo - Cross-platform Network Coding Software Library

Size: px
Start display at page:

Download "Kodo - Cross-platform Network Coding Software Library"

Transcription

1 Kodo - Cross-platform Network Coding Software Library

2 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 Industry On campus start-up Steinwurf ApS founded in Taking over the rights for Kodo and development. Library source code fully available. Licenses: a. Free for Research / Educational b. Paid Commercial

3 Where does Kodo fit? 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

4 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.

5 Using Kodo Kodo depends on three external libraries All dependencies are header-only (we just set the include path). In total you need to download these four libraries to use Kodo in your application. 1. Sak is a set of generic C++ components. 2. Fifi contains finite field arithmetic. 3. Boost C++ libraries (slowly being replaced by C++11). 4. Kodo itself is also header-only Options for building/using Kodo: a. Using makefile (generic solution) b. Waf build script Visual Studio solution generator

6 Using Kodo From the kodo/examples/sample_makefile example: # The include path to the kodo sources kodo_dir =../../src # The include path to the sak sources sak_dir = ~/dev/bundle_dependencies/sak-master/src # The include path to the fifi sources fifi_dir = ~/dev/bundle_dependencies/fifi-master/src # The include path to the boost sources boost_dir = ~/dev/bundle_dependencies/boost-master/boost-lib # Invoke the compiler all: g++ main.cpp -o test --std=c++0x -I $(boost_dir) -I $(fifi_dir) -I $(kodo_dir) -I $(sak_dir)

7 Example: Simple encoding / decoding Encodes and decodes a single generation. Try changing the field size, symbol size and symbols and monitor the payload use and symbols needed to decode. Use-case example: Reliable multicast / broadcast Example basic.cpp

8 Review example // Set the number of symbols (i.e. the generation size in RLNC // terminology) and the size of a symbol in bytes uint32_t max_symbols = 16; uint32_t max_symbol_size = 1400; symbols Number of packets in a block / generation Increase -> Larger computational complexity Increase -> Larger per-packet overhead (coding coefficients) Increase -> Larger per-packet decoding delay Increase -> Less protocol complexity Increase -> Less dependency on field size symbol size The size of a symbol in bytes Depends on the transport used (TCP, UDP, other)

9 Review example Finite field (rule of thumb) Increase -> Larger computational complexity Increase -> Larger decoding probability typedef kodo::full_rlnc_encoder<fifi::binary8> rlnc_encoder; typedef kodo::full_rlnc_decoder<fifi::binary8> rlnc_decoder; For a field size of q we use log2(q) bits per coefficient The number of coefficients per packet equal the number of symbols Example fifi::binary = 1 bit per coefficient fifi::binary8 = 1 byte per coefficient fifi::binary16 = 2 bytes per coefficients

10 Review example rlnc_encoder::factory encoder_factory(max_symbols, max_symbol_size); auto encoder = encoder_factory.build(); rlnc_decoder::factory decoder_factory(max_symbols, max_symbol_size); auto decoder = decoder_factory.build(); In use: encoder encoder encoder factory pool Free: encoder encoder encoder encoder encoder Factories Pre-allocates resources for all configurations below the max values Initializes encoders / decoders Can recycle resources - internal pool of encoders / decoders When a encoder/decoders goes out of scope

11 Review Example payload Buffer containing coded data to be transmitted from encoder to decoder payload size The payload buffer size bytes std::vector<uint8_t> payload(encoder->payload_size()); std::vector<uint8_t> block_in(encoder->block_size()); uint32_t bytes_used = encoder->encode( &payload[0] ); block size The total number of application bytes we can encode and decode with this configuration bytes used The number of bytes that we have to transmit over the network (bytes used <= payload size)

12 std::vector<uint8_t> payload(encoder->payload_size()); std::vector<uint8_t> block_in(encoder->block_size()); Review Example uint32_t bytes_used = encoder->encode( &payload[0] ); Payload size header symbol id coded payload Optional information about the coded symbols Describes how the coded payload was produced (the coding coefficients) The coded payload (linear combination of original data)

13 Adding loss Encoder Decoder sent received Notice we finish anyway In fact we will always finish (if error < 1) This "feature" is called rate-less. Example add_loss.cpp Notice that the bytes used increases Happens after sending symbols payloads This is because we exit the "systematic" phase

14 Systematic What does it mean Send everything uncoded once first Avoid if We do not know the state of our receivers We have multiple sources sending at the same time Advantages If we have no errors we pay nothing for the coding If we do have errors we benefit from systematic symbols in the decoding Example turn_systematic_off.cpp

15 Seed based encoder / decoder symbols RNG(seed) 4 byte byte fifi::binary8 fifi::binary bit Purpose Reduce the overhead by the added coding coefficients Disadvantage Does not support recoding Example seed_codes.cpp

16 Example: Recoding Recoding is one of the key features of a RLNC code. In this example we will look at how to recode packets using Kodo. Use-case example: Relay network, p2p, multi-path. Example recoding.cpp

17 Customizing an Encoder / Decoder Kodo is a set of building blocks rather than one specific code. It is meant to be modified. Use-cases: You want to change which symbols are included based on receiver feedback. You want to track the time elapsed since a specific decoder last received a packet. You want to collect statistics about the decoding You want to encode and decode using a sliding window...

18 Mixin-Layers / Parameterized inheritance In this context a mixin is not a stand-alone class but represents a "slice" of functionality. The slices are then combined to compose the final functionality. In C++ we do this through templates. Kodo heavily relies on this technique. Flexibility Performance 1. template<class T> 2. class foo 3. { 4. public: 5. T m_t; 6. }; foo<int> f1; 10. foo<my_other_type> f2;

19 Mixin-Layers 1. template<class Super> 2. class add_layer : public Super 3. { 4. public: int add(int a, int b) 7. { 8. return a + b; 9. } 10. }; class final_layer 13. { }; class calculator 16. : public add_layer<final_layer> > 17. { }; 1. int main() 2. { 3. calculator calc; 4. std::cout << calc.add(4,2) << std::endl; 5. return 0; 6. } Output: 6

20 Mixin-Layers (adding functionality) 1. template<class Super> 2. class sub_layer : public Super 3. { 4. public: int subtract(int a, int b) 7. { 8. return a - b; 9. } 10. }; class calculator 14. : public sub_layer< 15. add_layer<final_layer> > 16. { }; 1. int main() 2. { 3. calculator calc; 4. std::cout << calc.add(4,2) << std::endl; 5. std::cout << calc.subtract(2,5) << std::endl; 6. return 0; 7. } Output: 6-3

21 Mixin-Layers (customize functionality) 1. template<class Super> 2. class modulo_layer : public Super 3. { 4. public: int add(int a, int b) 7. { 8. return Super::add(a,b) % 5; 9. } int subtract(int a, int b) 12. { 13. int res = 14. Super::subtract(a,b) % 5; 15. return res < 0? res + 5 : res; 16. } 17. }; class calculator 20. : public modulo_layer< 21. sub_layer< 22. add_layer<final_layer> > > 1. int main() 2. { 3. calculator calc; 4. std::cout << calc.add(2,2) << std::endl; 5. std::cout << calc.subtract(2,2) << std::endl; 6. return 0; 7. } Output: 1 2

22 Example: Layers used in the simple encoding / decoding 1. Open the full_vector_codes.hpp file in the kodo/src/kodo/rlnc folder. Each layer implements a specific API with a specific purpose. Read more in the "Hacking Kodo" section of the manual. Your custom functionality may be added as a layer Example add_layer.cpp

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

24

25

26

27 Kodo Documentation Manual API

28 Encoding real data Roughly two classes objects and streams. Objects have a fixed size and data is not useful until the entire object has been decoded. Streams are typically unbound and can provide useful data on-the-fly and can have delay constraints

29 Example: Storage Encoding / Decoding In this example we will look at how you encode a file or large buffer easily with Kodo Use-case: Reliable transmission of fixed buffers / files for e.g. distributed storage, software updates etc. disk 1 disk 2 disk n

30 Example: Sliding window Encoding / Decoding In this example we will look at how encode / decode content produced on the fly (variable bit-rates). Use-case: Implementation of stream based protocols e. g. for reliable video and audio streaming.

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

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

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

Transport protocols Introduction

Transport protocols Introduction Transport protocols 12.1 Introduction All protocol suites have one or more transport protocols to mask the corresponding application protocols from the service provided by the different types of network

More information

Chapter 7. The Transport Layer

Chapter 7. The Transport Layer Chapter 7 The Transport Layer 1 2 3 4 5 6 7 8 9 10 11 Addressing TSAPs, NSAPs and transport connections. 12 For rarely used processes, the initial connection protocol is used. A special process server,

More information

Lecture 8: February 19

Lecture 8: February 19 CMPSCI 677 Operating Systems Spring 2013 Lecture 8: February 19 Lecturer: Prashant Shenoy Scribe: Siddharth Gupta 8.1 Server Architecture Design of the server architecture is important for efficient and

More information

Internet Streaming Media. Reji Mathew NICTA & CSE UNSW COMP9519 Multimedia Systems S2 2006

Internet Streaming Media. Reji Mathew NICTA & CSE UNSW COMP9519 Multimedia Systems S2 2006 Internet Streaming Media Reji Mathew NICTA & CSE UNSW COMP9519 Multimedia Systems S2 2006 Multimedia Streaming UDP preferred for streaming System Overview Protocol stack Protocols RTP + RTCP SDP RTSP SIP

More information

Internet Streaming Media

Internet Streaming Media Multimedia Streaming Internet Streaming Media Reji Mathew NICTA & CSE UNSW COMP9519 Multimedia Systems S2 2006 preferred for streaming System Overview Protocol stack Protocols + SDP SIP Encoder Side Issues

More information

Internet Streaming Media. Reji Mathew NICTA & CSE UNSW COMP9519 Multimedia Systems S2 2007

Internet Streaming Media. Reji Mathew NICTA & CSE UNSW COMP9519 Multimedia Systems S2 2007 Internet Streaming Media Reji Mathew NICTA & CSE UNSW COMP9519 Multimedia Systems S2 2007 Multimedia Streaming UDP preferred for streaming System Overview Protocol stack Protocols RTP + RTCP SDP RTSP SIP

More information

Computer Networks. Sándor Laki ELTE-Ericsson Communication Networks Laboratory

Computer Networks. Sándor Laki ELTE-Ericsson Communication Networks Laboratory Computer Networks Sándor Laki ELTE-Ericsson Communication Networks Laboratory ELTE FI Department Of Information Systems lakis@elte.hu http://lakis.web.elte.hu Based on the slides of Laurent Vanbever. Further

More information

Research on Transmission Based on Collaboration Coding in WSNs

Research on Transmission Based on Collaboration Coding in WSNs Research on Transmission Based on Collaboration Coding in WSNs LV Xiao-xing, ZHANG Bai-hai School of Automation Beijing Institute of Technology Beijing 8, China lvxx@mail.btvu.org Journal of Digital Information

More information

Chapter 4: Implicit Error Detection

Chapter 4: Implicit Error Detection 4. Chpter 5 Chapter 4: Implicit Error Detection Contents 4.1 Introduction... 4-2 4.2 Network error correction... 4-2 4.3 Implicit error detection... 4-3 4.4 Mathematical model... 4-6 4.5 Simulation setup

More information

Architectures of Communication Subsystems

Architectures of Communication Subsystems Architectures of Communication Subsystems Open System Interconnection Reference Model Computer Networks Lecture 2 http://goo.gl/pze5o8 Connection-Oriented versus Connectionless Communication 2 Connection-Oriented

More information

FECFRAME extension Adding convolutional FEC codes support to the FEC Framework

FECFRAME extension Adding convolutional FEC codes support to the FEC Framework FECFRAME extension Adding convolutional FEC codes support to the FEC Framework Vincent Roca, Inria, France Ali Begen, Networked Media, Turkey https://datatracker.ietf.org/doc/draft-roca-tsvwg-fecframev2/

More information

Dynamic Software Updating (DSU) on a Large Scale. Karla Saur

Dynamic Software Updating (DSU) on a Large Scale. Karla Saur Dynamic Software Updating (DSU) on a Large Scale Karla Saur Kitsune: A Practical DSU System Whole-program updates for C Entirely standard compilation and tools Previously with Kitsune: 2 Kitsune: A Practical

More information

COMP750. Distributed Systems. Network Overview

COMP750. Distributed Systems. Network Overview COMP750 Distributed Systems Network Overview Network Standards The purpose of a network is to allow two computers to communicate. Ex: The electrical power network in North America follows a standard to

More information

Internet Streaming Media

Internet Streaming Media Internet Streaming Media Reji Mathew NICTA & CSE UNSW COMP9519 Multimedia Systems S2 2008 Multimedia Streaming preferred for streaming System Overview Protocol stack Protocols + SDP S Encoder Side Issues

More information

Intended status: Experimental Expires: September 6, 2018 V. Roca INRIA March 5, 2018

Intended status: Experimental Expires: September 6, 2018 V. Roca INRIA March 5, 2018 NWCRG Internet-Draft Intended status: Experimental Expires: September 6, 2018 J. Detchart E. Lochin J. Lacan ISAE V. Roca INRIA March 5, 2018 Tetrys, an On-the-Fly Network Coding protocol draft-detchart-nwcrg-tetrys-04

More information

CS 11 C track: lecture 5

CS 11 C track: lecture 5 CS 11 C track: lecture 5 Last week: pointers This week: Pointer arithmetic Arrays and pointers Dynamic memory allocation The stack and the heap Pointers (from last week) Address: location where data stored

More information

Operating Systems. 16. Networking. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski

Operating Systems. 16. Networking. Paul Krzyzanowski. Rutgers University. Spring /6/ Paul Krzyzanowski Operating Systems 16. Networking Paul Krzyzanowski Rutgers University Spring 2015 1 Local Area Network (LAN) LAN = communications network Small area (building, set of buildings) Same, sometimes shared,

More information

Network Layer: Control/data plane, addressing, routers

Network Layer: Control/data plane, addressing, routers Network Layer: Control/data plane, addressing, routers CS 352, Lecture 10 http://www.cs.rutgers.edu/~sn624/352-s19 Srinivas Narayana (heavily adapted from slides by Prof. Badri Nath and the textbook authors)

More information

Raw Data Formatting: The RDR Formatter and NetFlow Exporting

Raw Data Formatting: The RDR Formatter and NetFlow Exporting CHAPTER 8 Raw Data Formatting: The RDR Formatter and NetFlow Exporting Cisco Service Control is able to deliver gathered reporting data to an external application for collecting, aggregation, storage and

More information

Chapter 6. The Protocol TCP/IP. Introduction to Protocols

Chapter 6. The Protocol TCP/IP. Introduction to Protocols Chapter 6 The Protocol TCP/IP 1 Introduction to Protocols A protocol is a set of rules that governs the communications between computers on a network. These rules include guidelines that regulate the following

More information

Transport layer issues

Transport layer issues Transport layer issues Dmitrij Lagutin, dlagutin@cc.hut.fi T-79.5401 Special Course in Mobility Management: Ad hoc networks, 28.3.2007 Contents Issues in designing a transport layer protocol for ad hoc

More information

TRANSMISSION CONTROL PROTOCOL. ETI 2506 TELECOMMUNICATION SYSTEMS Monday, 7 November 2016

TRANSMISSION CONTROL PROTOCOL. ETI 2506 TELECOMMUNICATION SYSTEMS Monday, 7 November 2016 TRANSMISSION CONTROL PROTOCOL ETI 2506 TELECOMMUNICATION SYSTEMS Monday, 7 November 2016 ETI 2506 - TELECOMMUNICATION SYLLABUS Principles of Telecom (IP Telephony and IP TV) - Key Issues to remember 1.

More information

IP Network Troubleshooting Part 3. Wayne M. Pecena, CPBE, CBNE Texas A&M University Educational Broadcast Services - KAMU

IP Network Troubleshooting Part 3. Wayne M. Pecena, CPBE, CBNE Texas A&M University Educational Broadcast Services - KAMU IP Network Troubleshooting Part 3 Wayne M. Pecena, CPBE, CBNE Texas A&M University Educational Broadcast Services - KAMU February 2016 Today s Outline: Focused Upon Protocol Analysis with Wireshark Review

More information

Data and Computer Communications. Protocols and Architecture

Data and Computer Communications. Protocols and Architecture Data and Computer Communications Protocols and Architecture Characteristics Direct or indirect Monolithic or structured Symmetric or asymmetric Standard or nonstandard Means of Communication Direct or

More information

CE693: Adv. Computer Networking

CE693: Adv. Computer Networking CE693: Adv. Computer Networking L-10 Wireless Broadcast Fall 1390 Acknowledgments: Lecture slides are from the graduate level Computer Networks course thought by Srinivasan Seshan at CMU. When slides are

More information

ELEC 691X/498X Broadcast Signal Transmission Winter 2018

ELEC 691X/498X Broadcast Signal Transmission Winter 2018 ELEC 691X/498X Broadcast Signal Transmission Winter 2018 Instructor: DR. Reza Soleymani, Office: EV 5.125, Telephone: 848 2424 ext.: 4103. Office Hours: Wednesday, Thursday, 14:00 15:00 Slide 1 In this

More information

In modern computers data is usually stored in files, that can be small or very, very large. One might assume that, when we transfer a file from one

In modern computers data is usually stored in files, that can be small or very, very large. One might assume that, when we transfer a file from one In modern computers data is usually stored in files, that can be small or very, very large. One might assume that, when we transfer a file from one computer to another, the whole file is sent as a continuous

More information

Why do we care about parallel?

Why do we care about parallel? Threads 11/15/16 CS31 teaches you How a computer runs a program. How the hardware performs computations How the compiler translates your code How the operating system connects hardware and software The

More information

14-740: Fundamentals of Computer and Telecommunication Networks

14-740: Fundamentals of Computer and Telecommunication Networks 14-740: Fundamentals of Computer and Telecommunication Networks Fall 2018 Quiz #2 Duration: 75 minutes ANSWER KEY Name: Andrew ID: Important: Each question is to be answered in the space provided. Material

More information

Question Score 1 / 19 2 / 19 3 / 16 4 / 29 5 / 17 Total / 100

Question Score 1 / 19 2 / 19 3 / 16 4 / 29 5 / 17 Total / 100 NAME: Login name: Computer Science 461 Midterm Exam March 10, 2010 3:00-4:20pm This test has five (5) questions. Put your name on every page, and write out and sign the Honor Code pledge before turning

More information

Concept Questions Demonstrate your knowledge of these concepts by answering the following questions in the space that is provided.

Concept Questions Demonstrate your knowledge of these concepts by answering the following questions in the space that is provided. 223 Chapter 19 Inter mediate TCP The Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols was developed as part of the research that the Defense Advanced Research Projects Agency

More information

Lecture 20 Overview. Last Lecture. This Lecture. Next Lecture. Transport Control Protocol (1) Transport Control Protocol (2) Source: chapters 23, 24

Lecture 20 Overview. Last Lecture. This Lecture. Next Lecture. Transport Control Protocol (1) Transport Control Protocol (2) Source: chapters 23, 24 Lecture 20 Overview Last Lecture Transport Control Protocol (1) This Lecture Transport Control Protocol (2) Source: chapters 23, 24 Next Lecture Internet Applications Source: chapter 26 COSC244 & TELE202

More information

INF3190 Mandatory Assignment:

INF3190 Mandatory Assignment: INF3190 Mandatory Assignment: Formally: This assignment must be completed individually. The submission must be approved prior to submission of the Home Exam 1. To pass the submission must meet the requirements

More information

Internet Research Task Force (IRTF) Request for Comments: 8406 Category: Informational ISSN:

Internet Research Task Force (IRTF) Request for Comments: 8406 Category: Informational ISSN: Internet Research Task Force (IRTF) Request for Comments: 8406 Category: Informational ISSN: 2070-1721 B. Adamson NRL C. Adjih INRIA J. Bilbao Ikerlan V. Firoiu BAE Systems F. Fitzek TU Dresden S. Ghanem

More information

Distributed Real-Time Control Systems. Module 26 Sockets

Distributed Real-Time Control Systems. Module 26 Sockets Distributed Real-Time Control Systems Module 26 Sockets 1 Network Programming with Sockets Sockets are probably the most widely used objects in programming networked communications. What is a socket? To

More information

Version 2.1 User Guide 08/2003

Version 2.1 User Guide 08/2003 UDP TEST TOOL TM Version 2.1 User Guide 08/2003 SimpleComTools, LLC 1 OVERVIEW Introduction................................... UDP vs. TCP................................... 3 3 SOFTWARE INSTALLATION..........................

More information

RECOMMENDATION ITU-R BT.1720 *

RECOMMENDATION ITU-R BT.1720 * Rec. ITU-R BT.1720 1 RECOMMENDATION ITU-R BT.1720 * Quality of service ranking and measurement methods for digital video broadcasting services delivered over broadband Internet protocol networks (Question

More information

CCNA Exploration Network Fundamentals. Chapter 06 Addressing the Network IPv4

CCNA Exploration Network Fundamentals. Chapter 06 Addressing the Network IPv4 CCNA Exploration Network Fundamentals Chapter 06 Addressing the Network IPv4 Updated: 20/05/2008 1 6.0.1 Introduction Addressing is a key function of Network layer protocols that enables data communication

More information

Achieving Low-Latency Streaming At Scale

Achieving Low-Latency Streaming At Scale Achieving Low-Latency Streaming At Scale Founded in 2005, Wowza offers a complete portfolio to power today s video streaming ecosystem from encoding to delivery. Wowza provides both software and managed

More information

IP Address Assignment

IP Address Assignment IP Address Assignment An IP address does not identify a specific computer. Instead, each IP address identifies a connection between a computer and a network. A computer with multiple network connections

More information

Institute of Science and Technology 2067

Institute of Science and Technology 2067 2067 1. Explain the principles of application layer protocols. What do you mean by file transfer? What are the main relationship between transport layer and network layer? What are the transport layer

More information

XORs in the Air: Practical Wireless Network Coding

XORs in the Air: Practical Wireless Network Coding XORs in the Air: Practical Wireless Network Coding S. Katti, H. Rahul, W. Hu, D. Katabi, M. Medard, J. Crowcroft MIT & University of Cambridge Can we use 3 transmissions to send traffic? 1 2 4 3 Can we

More information

Fixed bonding settings not being applied in Sputnik Direct mode.

Fixed bonding settings not being applied in Sputnik Direct mode. Teradek Cube/Brik Firmware Version 7.1.10 Release Notes page 1 of 16 New Features New features for Zixi Streaming: o Dynamic Bitrate Encoder will adapt to the network conditions by adjusting the bitrate

More information

MULTI-LAYER VIDEO STREAMING WITH HELPER NODES USING NETWORK CODING

MULTI-LAYER VIDEO STREAMING WITH HELPER NODES USING NETWORK CODING MULTI-LAYER VIDEO STREAMING WITH HELPER NODES USING NETWORK CODING Pouya Ostovari, Abdallah Khreishah, and Jie Wu Computer and Information Sciences Temple University IEEE MASS 2013 Center for Networked

More information

n Understand EC-Council s scanning methodology n Describe scan types and the objectives of scanning

n Understand EC-Council s scanning methodology n Describe scan types and the objectives of scanning Outline n Understand EC-Council s scanning methodology n Describe scan types and the objectives of scanning n Understand the use of various scanning and enumeration tools Chapter #3: n Describe TCP communication

More information

MISRA-C. Subset of the C language for critical systems

MISRA-C. Subset of the C language for critical systems MISRA-C Subset of the C language for critical systems SAFETY-CRITICAL SYSTEMS System is safety-critical if people might die due to software bugs Examples Automobile stability / traction control Medical

More information

RTP: A Transport Protocol for Real-Time Applications

RTP: A Transport Protocol for Real-Time Applications RTP: A Transport Protocol for Real-Time Applications Provides end-to-end delivery services for data with real-time characteristics, such as interactive audio and video. Those services include payload type

More information

(Refer Slide Time: 1:09)

(Refer Slide Time: 1:09) Computer Networks Prof. S. Ghosh Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecturer # 30 UDP and Client Server Good day, today we will start our discussion

More information

Network Coding: Theory and Applica7ons

Network Coding: Theory and Applica7ons Network Coding: Theory and Applica7ons PhD Course Part IV Tuesday 9.15-12.15 18.6.213 Muriel Médard (MIT), Frank H. P. Fitzek (AAU), Daniel E. Lucani (AAU), Morten V. Pedersen (AAU) Plan Hello World! Intra

More information

Media File Options. Deployment and Ongoing Management. This chapter covers the following topics:

Media File Options. Deployment and Ongoing Management. This chapter covers the following topics: This chapter covers the following topics: Deployment and Ongoing Management, page 1 Co-Resident Unified CVP Call Server, Media Server, and Unified CVP VXML Server, page 2 Bandwidth Calculation for Prompt

More information

Short Notes of CS201

Short Notes of CS201 #includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system

More information

ECE 435 Network Engineering Lecture 15

ECE 435 Network Engineering Lecture 15 ECE 435 Network Engineering Lecture 15 Vince Weaver http://web.eece.maine.edu/~vweaver vincent.weaver@maine.edu 26 October 2016 Announcements HW#5 due HW#6 posted Broadcasts on the MBONE 1 The Transport

More information

Tutorial S TEPHEN IBANEZ

Tutorial S TEPHEN IBANEZ Tutorial S TEPHEN IBANEZ Outline P4 Motivation P4 for NetFPGA Overview P4->NetFPGA Workflow Overview Tutorial Assignments What is P4? Programming language to describe packet processing logic Used to implement

More information

Peer entities. Protocol Layering. Protocols. Example

Peer entities. Protocol Layering. Protocols. Example Peer entities Protocol Layering An Engineering Approach to Computer Networking Customer A and B are peers Postal worker A and B are peers Protocols A protocol is a set of rules and formats that govern

More information

Data and Computer Communications. Chapter 2 Protocol Architecture, TCP/IP, and Internet-Based Applications

Data and Computer Communications. Chapter 2 Protocol Architecture, TCP/IP, and Internet-Based Applications Data and Computer Communications Chapter 2 Protocol Architecture, TCP/IP, and Internet-Based s 1 Need For Protocol Architecture data exchange can involve complex procedures better if task broken into subtasks

More information

CS201 - Introduction to Programming Glossary By

CS201 - Introduction to Programming Glossary By CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with

More information

Why C++? C vs. C Design goals of C++ C vs. C++ - 2

Why C++? C vs. C Design goals of C++ C vs. C++ - 2 Why C++? C vs. C++ - 1 Popular and relevant (used in nearly every application domain): end-user applications (Word, Excel, PowerPoint, Photoshop, Acrobat, Quicken, games) operating systems (Windows 9x,

More information

Media File Options. Deployment and Ongoing Management CHAPTER

Media File Options. Deployment and Ongoing Management CHAPTER CHAPTER 12 Last revised on: November 30, 2009 This chapter covers the following topics: Deployment and Ongoing Management, page 12-1 Co-Resident Call Server, Media Server, and Unified CVP VXML Server,

More information

Data and Computer Communications

Data and Computer Communications Data and Computer Communications Chapter 2 Protocol Architecture, TCP/IP, and Internet-Based Applications Eighth Edition by William Stallings Chap2: 1 Need For Protocol Architecture data exchange can involve

More information

4 rd class Department of Network College of IT- University of Babylon

4 rd class Department of Network College of IT- University of Babylon 1. INTRODUCTION We can divide audio and video services into three broad categories: streaming stored audio/video, streaming live audio/video, and interactive audio/video. Streaming means a user can listen

More information

MPEG-2. ISO/IEC (or ITU-T H.262)

MPEG-2. ISO/IEC (or ITU-T H.262) MPEG-2 1 MPEG-2 ISO/IEC 13818-2 (or ITU-T H.262) High quality encoding of interlaced video at 4-15 Mbps for digital video broadcast TV and digital storage media Applications Broadcast TV, Satellite TV,

More information

OSI Layer OSI Name Units Implementation Description 7 Application Data PCs Network services such as file, print,

OSI Layer OSI Name Units Implementation Description 7 Application Data PCs Network services such as file, print, ANNEX B - Communications Protocol Overheads The OSI Model is a conceptual model that standardizes the functions of a telecommunication or computing system without regard of their underlying internal structure

More information

Announcements. No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6

Announcements. No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6 Announcements No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6 Copyright c 2002 2017 UMaine Computer Science Department 1 / 33 1 COS 140: Foundations

More information

CS 465 Networks. Disassembling Datagram Headers

CS 465 Networks. Disassembling Datagram Headers CS 465 Networks Disassembling Datagram Headers School of Computer Science Howard Hughes College of Engineering University of Nevada, Las Vegas (c) Matt Pedersen, 2006 Recall the first 5x4 octets of the

More information

The SpaceWire Transport Protocol. Stuart Mills, Steve Parkes University of Dundee. International SpaceWire Seminar 5 th November 2003

The SpaceWire Transport Protocol. Stuart Mills, Steve Parkes University of Dundee. International SpaceWire Seminar 5 th November 2003 The SpaceWire Transport Protocol Stuart Mills, Steve Parkes University of Dundee International SpaceWire Seminar 5 th November 2003 Introduction Background The Protocol Stack, TCP/IP, SCPS CCSDS and SOIF

More information

PACE: Redundancy Engineering in RLNC for Low-Latency Communication

PACE: Redundancy Engineering in RLNC for Low-Latency Communication Received July 13, 2017, accepted August 2, 2017, date of publication August 7, 2017, date of current version October 25, 2017. Digital Object Identifier 10.1109/ACCESS.2017.2736879 PACE: Redundancy Engineering

More information

Transport Layer Review

Transport Layer Review Transport Layer Review Mahalingam Mississippi State University, MS October 1, 2014 Transport Layer Functions Distinguish between different application instances through port numbers Make it easy for applications

More information

Continuous Real Time Data Transfer with UDP/IP

Continuous Real Time Data Transfer with UDP/IP Continuous Real Time Data Transfer with UDP/IP 1 Emil Farkas and 2 Iuliu Szekely 1 Wiener Strasse 27 Leopoldsdorf I. M., A-2285, Austria, farkas_emil@yahoo.com 2 Transilvania University of Brasov, Eroilor

More information

Raw Data Formatting: The RDR Formatter and NetFlow Exporting

Raw Data Formatting: The RDR Formatter and NetFlow Exporting CHAPTER 9 Raw Data Formatting: The RDR Formatter and NetFlow Exporting Revised: September 27, 2012, Introduction Cisco Service Control is able to deliver gathered reporting data to an external application

More information

NWEN 243. Networked Applications. Layer 4 TCP and UDP

NWEN 243. Networked Applications. Layer 4 TCP and UDP NWEN 243 Networked Applications Layer 4 TCP and UDP 1 About the second lecturer Aaron Chen Office: AM405 Phone: 463 5114 Email: aaron.chen@ecs.vuw.ac.nz Transport layer and application layer protocols

More information

Foundations of Python

Foundations of Python Foundations of Python Network Programming The comprehensive guide to building network applications with Python Second Edition Brandon Rhodes John Goerzen Apress Contents Contents at a Glance About the

More information

No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6

No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6 Announcements No book chapter for this topic! Slides are posted online as usual Homework: Will be posted online Due 12/6 Copyright c 2002 2017 UMaine School of Computing and Information S 1 / 33 COS 140:

More information

BEAAquaLogic. Service Bus. MQ Transport User Guide

BEAAquaLogic. Service Bus. MQ Transport User Guide BEAAquaLogic Service Bus MQ Transport User Guide Version: 3.0 Revised: February 2008 Contents Introduction to the MQ Transport Messaging Patterns......................................................

More information

Important From Last Time

Important From Last Time Important From Last Time Volatile is tricky To write correct embedded C and C++, you have to understand what volatile does and does not do Ø What is the guarantee that it provides? Don t make the 8 mistakes

More information

Implementing Layered Designs with Mixin Layers

Implementing Layered Designs with Mixin Layers Implementing Layered Designs with Mixin Layers (joint work with Don Batory) 1 of 19 Objects as components? Modular decomposition is an ideal in software design and implementation - separation of concerns

More information

Hardware Telemetry. About Streaming Statistics Export (SSX) Packet Format. About Streaming Statistics Export (SSX), on page 1

Hardware Telemetry. About Streaming Statistics Export (SSX) Packet Format. About Streaming Statistics Export (SSX), on page 1 About Streaming Statistics Export (SSX), on page 1 About Streaming Statistics Export (SSX) Packet Format The Streaming Statistics Export (SSX) module reads statistics from the ASIC and sends them to a

More information

Chapter 28. Multimedia

Chapter 28. Multimedia Chapter 28. Multimedia 28-1 Internet Audio/Video Streaming stored audio/video refers to on-demand requests for compressed audio/video files Streaming live audio/video refers to the broadcasting of radio

More information

Layering and Addressing CS551. Bill Cheng. Layer Encapsulation. OSI Model: 7 Protocol Layers.

Layering and Addressing CS551.  Bill Cheng. Layer Encapsulation. OSI Model: 7 Protocol Layers. Protocols CS551 Layering and Addressing Bill Cheng Set of rules governing communication between network elements (applications, hosts, routers) Protocols define: Format and order of messages Actions taken

More information

Tolerating Malicious Drivers in Linux. Silas Boyd-Wickizer and Nickolai Zeldovich

Tolerating Malicious Drivers in Linux. Silas Boyd-Wickizer and Nickolai Zeldovich XXX Tolerating Malicious Drivers in Linux Silas Boyd-Wickizer and Nickolai Zeldovich How could a device driver be malicious? Today's device drivers are highly privileged Write kernel memory, allocate memory,...

More information

CS 218 F Nov 3 lecture: Streaming video/audio Adaptive encoding (eg, layered encoding) TCP friendliness. References:

CS 218 F Nov 3 lecture: Streaming video/audio Adaptive encoding (eg, layered encoding) TCP friendliness. References: CS 218 F 2003 Nov 3 lecture: Streaming video/audio Adaptive encoding (eg, layered encoding) TCP friendliness References: J. Padhye, V.Firoiu, D. Towsley, J. Kurose Modeling TCP Throughput: a Simple Model

More information

Examination 2D1392 Protocols and Principles of the Internet 2G1305 Internetworking 2G1507 Kommunikationssystem, fk SOLUTIONS

Examination 2D1392 Protocols and Principles of the Internet 2G1305 Internetworking 2G1507 Kommunikationssystem, fk SOLUTIONS Examination 2D1392 Protocols and Principles of the Internet 2G1305 Internetworking 2G1507 Kommunikationssystem, fk Date: January 17 th 2006 at 14:00 18:00 SOLUTIONS 1. General (5p) a) Draw the layered

More information

EEC-484/584 Computer Networks

EEC-484/584 Computer Networks EEC-484/584 Computer Networks Lecture 2 Wenbing Zhao wenbing@ieee.org (Lecture nodes are based on materials supplied by Dr. Louise Moser at UCSB and Prentice-Hall) Misc. Interested in research? Secure

More information

[MS-RTPRADEX]: RTP Payload for Redundant Audio Data Extensions. Intellectual Property Rights Notice for Open Specifications Documentation

[MS-RTPRADEX]: RTP Payload for Redundant Audio Data Extensions. Intellectual Property Rights Notice for Open Specifications Documentation [MS-RTPRADEX]: Intellectual Property Rights Notice for Open Specifications Documentation Technical Documentation. Microsoft publishes Open Specifications documentation ( this documentation ) for protocols,

More information

INTRODUCTORY COMPUTER

INTRODUCTORY COMPUTER INTRODUCTORY COMPUTER NETWORKS TYPES OF NETWORKS Faramarz Hendessi Introductory Computer Networks Lecture 4 Fall 2010 Isfahan University of technology Dr. Faramarz Hendessi 2 Types of Networks Circuit

More information

Networking Technologies and Applications

Networking Technologies and Applications Networking Technologies and Applications Rolland Vida BME TMIT Transport Protocols UDP User Datagram Protocol TCP Transport Control Protocol and many others UDP One of the core transport protocols Used

More information

ECE 15B COMPUTER ORGANIZATION

ECE 15B COMPUTER ORGANIZATION ECE 15B COMPUTER ORGANIZATION Lecture 13 Strings, Lists & Stacks Announcements HW #3 Due next Friday, May 15 at 5:00 PM in HFH Project #2 Due May 29 at 5:00 PM Project #3 Assigned next Thursday, May 19

More information

6 Controlling the Technomad Encoder

6 Controlling the Technomad Encoder T 6 Controlling the Technomad Encoder 6.1 User control interface The Techomad Encoder has a local web server built in. You can control the Technomad Encdoder from anywhere on your network using a standard

More information

Introduction to Networking

Introduction to Networking Introduction to Networking The fundamental purpose of data communications is to exchange information between user's computers, terminals and applications programs. Simplified Communications System Block

More information

Can network coding bridge the digital divide in the Pacific?

Can network coding bridge the digital divide in the Pacific? Can network coding bridge the digital divide in the Pacific? Ulrich Speidel, Etuate Cocker, Péter Vingelmann, Janus Heide, Muriel Médard ecoc005@aucklanduni.ac.nz Project partners, collaborators and funders

More information

CMSC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. October 25, 2018

CMSC 417. Computer Networks Prof. Ashok K Agrawala Ashok Agrawala. October 25, 2018 CMSC 417 Computer Networks Prof. Ashok K Agrawala 2018 Ashok Agrawala Message, Segment, Packet, and Frame host host HTTP HTTP message HTTP TCP TCP segment TCP router router IP IP packet IP IP packet IP

More information

CALIFORNIA SOFTWARE LABS

CALIFORNIA SOFTWARE LABS Real-time Implementation of NAT and Firewall in VxWorks CALIFORNIA SOFTWARE LABS R E A L I Z E Y O U R I D E A S California Software Labs 6800 Koll Center Parkway, Suite 100 Pleasanton CA 94566, USA. Phone

More information

How to achieve low latency audio/video streaming over IP network?

How to achieve low latency audio/video streaming over IP network? February 2018 How to achieve low latency audio/video streaming over IP network? Jean-Marie Cloquet, Video Division Director, Silex Inside Gregory Baudet, Marketing Manager, Silex Inside Standard audio

More information

Case study: Performance-efficient Implementation of Robust Header Compression (ROHC) using an Application-Specific Processor

Case study: Performance-efficient Implementation of Robust Header Compression (ROHC) using an Application-Specific Processor Case study: Performance-efficient Implementation of Robust Header Compression (ROHC) using an Application-Specific Processor Gert Goossens, Patrick Verbist, Erik Brockmeyer, Luc De Coster Synopsys 1 Agenda

More information

System Programming. Introduction to computer networks

System Programming. Introduction to computer networks Content : by Dr. B. Boufama School of Computer Science University of Windsor Instructor: Dr. A. Habed adlane@cs.uwindsor.ca http://cs.uwindsor.ca/ adlane/60-256 Content Content 1 Introduction to Computer

More information

Network Protocols. Sarah Diesburg Operating Systems CS 3430

Network Protocols. Sarah Diesburg Operating Systems CS 3430 Network Protocols Sarah Diesburg Operating Systems CS 3430 Protocol An agreement between two parties as to how information is to be transmitted A network protocol abstracts packets into messages Physical

More information

1: Introduction to Object (1)

1: Introduction to Object (1) 1: Introduction to Object (1) 김동원 2003.01.20 Overview (1) The progress of abstraction Smalltalk Class & Object Interface The hidden implementation Reusing the implementation Inheritance: Reusing the interface

More information

Distributed Real-Time Control Systems

Distributed Real-Time Control Systems Distributed Real-Time Control Systems Lecture 18 More on Boost ASIO Ethernet Communications Sockets in C++ 1 Boost Asio Communication Functions Boost Asio abstracts communication channels as streams. Streams

More information

Intro to LAN/WAN. Transport Layer

Intro to LAN/WAN. Transport Layer Intro to LAN/WAN Transport Layer Transport Layer Topics Introduction (6.1) Elements of Transport Protocols (6.2) Internet Transport Protocols: TDP (6.5) Internet Transport Protocols: UDP (6.4) socket interface

More information

Process Concept Process Scheduling Operations On Process Inter-Process Communication Communication in Client-Server Systems

Process Concept Process Scheduling Operations On Process Inter-Process Communication Communication in Client-Server Systems Process Concept Process Scheduling Operations On Process Inter-Process Communication Communication in Client-Server Systems Process Process VS Program Process in Memory Process State Process Control Block

More information

Transport Layer. The transport layer is responsible for the delivery of a message from one process to another. RSManiaol

Transport Layer. The transport layer is responsible for the delivery of a message from one process to another. RSManiaol Transport Layer Transport Layer The transport layer is responsible for the delivery of a message from one process to another Types of Data Deliveries Client/Server Paradigm An application program on the

More information