Building a Reliable Multicast Service based on Composite Protocols

Similar documents
Building a Reliable Multicast Service Based on Composite Protocols

Multicast Communications

Multicast Communications. Slide Set were original prepared by Dr. Tatsuya Susa

Multicast service model Host interface Host-router interactions (IGMP) Multicast Routing Distance Vector Link State. Shared tree.

CSE 123A Computer Networks

What is Multicasting? Multicasting Fundamentals. Unicast Transmission. Agenda. L70 - Multicasting Fundamentals. L70 - Multicasting Fundamentals

Review. Some slides are in courtesy of J. Kurose and K. Ross

Broadcast Routing. Multicast. Flooding. In-network duplication. deliver packets from source to all other nodes source duplication is inefficient:

IP Multicast. Falko Dressler Regionales Rechenzentrum Grundzüge der Datenkommunikation IP Multicast

Why multicast? The concept of multicast Multicast groups Multicast addressing Multicast routing protocols MBONE Multicast applications Conclusions

CSCE 463/612 Networks and Distributed Processing Spring 2018

PIM-SM Multicast Routing

Lecture 19: Multicast. CSE 123: Computer Networks Stefan Savage

Design and Implementation of Composite Protocols

Exercises to Communication Systems

Network Layer II. Getting IP addresses. DHCP client-server scenario. DHCP client-server scenario. C compiler. You writing assignment 2

Internet Multicast Routing

PIM Configuration. Page 1 of 9

Lecture 6. TCP/IP Network Layer (4)

DATA COMMUNICATOIN NETWORKING

Configuring IP Multicast Routing

Module 7 Implementing Multicast

DD2490 p IP Multicast routing. Multicast routing. Olof Hagsand KTH CSC

Configuring IP Multicast Routing

IP Multicast Optimization: Optimizing PIM Sparse Mode in a Large IP Multicast Deployment

Advanced Networking. Multicast

List of groups known at each router. Router gets those using IGMP. And where they are in use Where members are located. Enhancement to OSPF

Configuring Bidirectional PIM

IP Multicast Technology Overview

Next Generation MULTICAST In-band Signaling (VRF MLDP: Profile 6)

Computer Networks. Wenzhong Li. Nanjing University

IP Multicast Routing Protocols

Configuring IP Multicast Routing

Acknowledgments. Part One - Introduction to the TCP/IP Protocol

IP Multicast Survival Guide Part 2

Exercises to Communication Systems

Configuring IP Multicast Routing

Multicast routing protocols

CSCI-GA Operating Systems. Networking. Hubertus Franke

Topic: Multicast routing

Multicast Configuration

MULTICAST EXTENSIONS TO OSPF (MOSPF)

Configuring IP Multicast

Multicast H3C Low-End Ethernet Switches Configuration Examples. Table of Contents

ETSF10 Internet Protocols Routing on the Internet

Cache and Forward Architecture

Stack Local Packet Memory Interface Requirements

Basic Multicast Troubleshooting Tools

ETSF10 Internet Protocols Routing on the Internet

Developing IP Muiticast Networks

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Auxiliary Protocols

Department of Computer Science and Engineering. COSC 4213: Computer Networks II (Fall 2005) Instructor: N. Vlajic Date: November 3, 2005

Multicast Tool and Utility Commands

Design of Link and Routing Protocols for Cache-and- Forward Networks. Shweta Jain, Ayesha Saleem, Hongbo Liu, Yanyong Zhang, Dipankar Raychaudhuri

Advanced Network Training Multicast

Broadcast and Multicast Routing

CS 268: IP Multicast Routing

Multicast Communications. Tarik Čičić, 4. March. 2016

IPv4 IGP Troubleshooting. IPv4 Routing Workflow. IPv4 routing can be subdivided into three discrete steps

This module describes how to configure IPv6 Multicast PIM features.

Multicast EECS 122: Lecture 16

Implementing IPv6 Multicast

Distributed Systems Multicast & Group Communication Services

Table of Contents 1 IGMP Configuration 1-1

Today s Plan. Class IV Multicast. Class IV: Multicast in General. 1. Concepts in Multicast What is Multicast? Multicast vs.

Multicast overview. Introduction to multicast. Information transmission techniques. Unicast

Financial Services Design for High Availability

Ahmed Helmy Assistant Professor of Computer Engineering University of Southern California.

Fundamental Questions to Answer About Computer Networking, Jan 2009 Prof. Ying-Dar Lin,

IPv6 PIM. Based on the forwarding mechanism, IPv6 PIM falls into two modes:

Multicast Quick Start Configuration Guide

IPv6 Multicast: PIM Sparse Mode

IP Multicasting: Explaining Multicast Cisco Systems, Inc. All rights reserved. Cisco Academy

3. Evaluation of Selected Tree and Mesh based Routing Protocols

Last time. Network layer. Introduction. Virtual circuit vs. datagram details. IP: the Internet Protocol. forwarding vs. routing

Networking and Internetworking 1

Table of Contents 1 MSDP Configuration 1-1

Date: June 4 th a t 1 4:00 1 7:00

Chapter 5.6 Network and Multiplayer

IPv6 Multicast: PIM Sparse Mode

IP MULTICAST EXPLAINED

IP Multicast Technology Overview

Networking: Network layer

Contents. Configuring MSDP 1

Mesh-Based Content Routing Using XML

ICS 351: Today's plan. routing protocol comparison encapsulation network dynamics multicasting in general IP multicasting IGMP PIM

How well do you know PIM Assert Mechanism?

Introduction to TCP/IP networking

Multicast Source Discovery Protocol (MSDP)

Configuring MLD. Overview. MLD versions. How MLDv1 operates. MLD querier election

Chapter 19 Network Layer: Logical Addressing

Master Course Computer Networks IN2097

Table of Contents 1 PIM Configuration 1-1

IP Multicast. Overview. Casts. Tarik Čičić University of Oslo December 2001

CS118 Discussion 1A, Week 6. Zengwen Yuan Dodd Hall 78, Friday 10:00 10:50 a.m.

Multicast overview. Introduction to multicast. Information transmission techniques. Unicast

MVPN: Inter-AS Option B

Internet Protocol, Version 6

Table of Contents Chapter 1 IPv6 PIM Configuration

ETSF10 Internet Protocols Routing on the Internet

Transcription:

Building a Reliable Multicast Service based on Composite Protocols Sandeep Subramaniam Master s Thesis Defense The University of Kansas 06.13.2003 Committee: Dr. Gary J. Minden (Chair) Dr. Joseph B. Evans Dr. Perry Alexander

Outline Motivation Composite Protocol (CP) Framework Design of a composable service multicast example Implementation of service over Ensemble Testing and Performance Evaluation Summary & Future Work 2

Basic definitions Protocol component Single function entity that embeds minimal protocol functionality E.g. checksum, reliable-delivery, fragment Composite protocol Collection of protocol components arranged in orderly fashion E.g. An IP-like composite protocol would consist of forwarding, fragment and checksum protocol components. Composable service Collection of 2 or more co-operating composite-protocols. E.g. multicast consists of multicast routing, group management and replication of data 3

Advantages of Composite Protocols Protocols implemented as collections of single-function components Reusability Flexibility Aid in formal verification, building correct protocols. Customization, fine tuned protocol stacks Properties-in Protocol-out 4

Motivation Motivation for composable service Apply the composite protocol approach to wider range of protocols Data and control plane protocols demonstrate feasibility and applicability Expand the library of protocol components Address issues of inter-protocol communication Building a network service addresses all above needs. Reliable multicast service chosen as an ideal example 3 co-operating protocols operating in tandem Reliable replication of data (multicast forwarding) Multicast routing Group management 5

Composite Protocol Framework ENDPOINT A ENDPOINT B Composite Protocol X Composite Protocol Y Composite Protocol Y Composite Protocol X Packet Memory TSM RSM TSM RSM TSM RSM TSM RSM TSM RSM Global Memory TSM RSM Packet Memory TSM RSM Global Memory TSM RSM Packet Memory TSM RSM TSM RSM TSM RSM TSM RSM 6

Design of a Composable Service - Steps Decomposition Identify key functional entities in the monolithic counterpart. Specification of protocol components using AFSMs Represent each component as a pair of SMs (TSM & RSM) Specify local,, packet and global memory requirement Identify data and control events Building the stacks Linear composition to yield composite protocol Deployment stacks to place on a particular network node Global memory objects for inter-stack communication 7

Step 1 - Decomposition (Multicast Service) Multicast routing based on DVMRP Group Management based on IGMP DVMRP Neighbor Discovery Route Exchange Spanning Tree Pruning Grafting IGMP Join/Leave Data Multicast Forwarding Reliable Multicast In-order Multicast 8

Step 2 Specification Each functional component has to confirm to CP specs. Independent of other components Each protocol component specification consists of Pair of AFSMs TSM and RSM Memory requirements Packet memory bits on the wire or component header Local memory maintaining local state information Memory - memory local to the stack but pertaining to packet Global memory external memory requirements Events: Data: packet arrival from component above/below Control : timers, application-component interaction Specify assumptions and parameters 9

Building the Stacks Step 3 Group related components into composite protocol - linear composition Try re-using existing components Reliable Multicast Multicast Routing Basic Multicast Application Grafting Reliable Multicast Pruning Spanning Tree Group Management Application Multicast Forward Multicast Forward Unicast Forward Route Exchange Application TTL TTL Neighbor Discovery Join_Leave Fragment Fragment Fragment Fragment Checksum Checksum Checksum Checksum Replicator Replicator 10

Building the Stacks - Stack Ordering Determine the order of stacking among components Does order matter? Property Oriented Layer N provides a property to Layer N+1 Order of component determines stack behavior E.g. reliable multicast stack Control Oriented Components in stack are independent Layer N does not provide specific property to Layer N+1 Order may affect performance not stack behavior E.g. multicast routing stack Reliable Multicast Application Reliable Multicast Multicast Forward Unicast Forward TTL Fragment Checksum Replicator Multicast Routing Grafting Pruning Spanning Tree Route Exchange Neighbor Discovery Fragment 11 Checksum

Deployment Step 4 S C1 L1 C2 C3 L2 L3 end hosts Multicast core router Multicast leaf router Multicast routing stack Group management stack Multicast data stack 12

Inter-stack Communication - Global Memory Composite Protocol X TSM RSM SM TSM RSM ENDPOINT A Global Memory Composite Protocol Y SM SM TSM RSM Packet Memory Packet Memory Packet Memory Addresses the issue of crossprotocol communication Acts as a repository for data shared among different stacks. Accessible to all components of all composite protocol instances at that endpoint Scope and extent greater than any single protocol accessing it. Functional interface for read/write Responsible for initialization and maintenance of shared info 13

Global Memory Features Separation of Protocols and Data Management Independence between protocols and global memory data management Protocol component expresses requirements for global memory access through its external functions Protocols that write to /read from global objects need not agree on internal data format Functional Interface Access to shared data only through write/read functional interfaces Encapsulates shared data Hides internal representation of global memory object WRITE READ Global Memory object WRITE READ 14

Global Memory - Features Synchronization Each object solely responsible for providing synchronized access to its shared data Synchronization not delegated to users of the shared object. Access control mechanism is implementation specific Semaphores or other mechanisms can be used Extensibility Object definition can be extended Internal data structures / external functions can be added Backward compatibility easily maintained 15

Implementation Overview of Ensemble Global Memory Implementation Operational overview of service Protocol Interaction through global memory 16

Ensemble Group communication system developed at Cornell Used as base framework for building composite protocol Reasons: Written in OCaml functional programming language, aiding for formal analysis of code Ensemble uses linear stacking of layers to form stack Event handlers executed atomically Unbounded message queues between layers Provides uniform interface Support for dynamic linking of components, adding/removing components from stack at run-time 17

Multicast Global Memory Objects Neighbor Table Stores 1-1 mapping between an interface and neighbor discovered on that interface Routing Table Repository for unicast routes Metric and next-hop information for each route prefix stored Source Tree Maintains spanning tree for each multicast source in the n/w Contains list of dependent downstream neighbors for each source 18

Multicast Global Memory Objects (contd) Prune Table Contains core and leaf interface prune-state information for each (source/group) pair in the n/w Interfaces can be in 3 states : un-pruned/pruned/grafted Group Table Stores current list of group members on each leaf interface Updated when members join/leave groups 19

Global Memory Linux Shared Memory Shared memory fastest form of IPC Single chunk of memory shared by 2 or more processes Steps in creating a global memory object Specify read/write functional interface using CamlIDL Implement functions using Linux shared memory system calls Handle concurrency issues by using semaphores Dynamically link global object with stacks at run-time 20

Functional Interface in CamlIDL CamlIDL stub code generator generates C stub code required for Caml/C interface based on IDL specification Neighbor Table Write Read void write_ntable([in] struct ntable_entry ntable[], [in] int num) [int32] int getneighborforinterface([in,int32] int intf) struct ntable_entry { int32 intf_addr; // interface IP address int32 nbor_addr; // neighbor IP address }; 21

Multicast Service Operational Overview Net Met Nhop 1 1 2.1 2 0 2.2 Intf Nbor 3 1 2.1 2.2 2.1 src grp intf st 1.1 G1 2.1 PG H1 prune graft G1 G1 3.1 U P 1.2 U C graft prune 2.1 A 1.1 1 B 3.1 2 3 2.2 G1 G1 Net Met Nhop 1 0 1.1 2 1 1.2 Intf Nbor 3 1 1.2 1.1 1.2 Net Met Nhop 1.2 Intf 1 0 1.2 Nbor 2 0 2.1 1.2 3 1.1 0 3.1 2.1 2.2 3.1 3.2 3.2 D G1 prune Net Met Nhop 1 1 3.1 2 1 3.1 Intf Nbor 3 0 3.2 3.2 3.1 H2 Net Dn Nbors 1 2.2,3,2 2 1.1,3.2 31.1, 2.2 Initialization Routing stack runs Neighbor Table updated Routing Table updated Source Tree updated H1, H2 joins group G1 A multicasts to group G1 H1 leaves G1 H2 leaves G1 H1 joins G1 again 22

Protocol Interactions thru Global Memory Routing stack Global Memory objects Neighbor Discovery Neighbor Table Data stack Multicast Forwarding - RSM Route Exchange Spanning Tree Pruning Grafting WRITE READ Routing Table Source Tree Prune Table Group Member Table Global Memory object WRITE READ Unicast Forwarding Multicast Forwarding Group Mgmt Join Leave Write access Read access RTable 1 RPF check Wait 10,11 SrcTree PruneTable 2,5 Leaf Intf Check 4 No leaf intfs Dnstream Check 9 3 Group member exists Intf Loop 6 7 GroupMem Check 7 8 Grp Table Prune Table No Group member Functional Interface 23

Performance Evaluation Test Setup 15 node test network Ensemble test applications similar to ping, ttcp used Metrics Stack/Component latency One-way end-to-end latency Basic Multicast Throughput Reliable Multicast Throughput Join/Leave latency Pentium III 800 MHz 256 MB RAM, 20 GB HDD 100 Mbps NICs RedHat 7.1, Linux 2.4.6 OCaml v3.06, native code Performance Improvement Factors Native-code ocamlopt compiler instead of bytecode ocamlc Reducing global memory lookups, use of caches Order of guards 24

Stack Latency vs. Message Size Stack Latency vs Msg Size (averaged for 1000 pkts, 5 runs each) 5 runs of 1000 pkts each 160 140 Global memory lookup 1 in 100 pkts Latency in micro-secs 120 100 80 60 40 20 Router Sender STACK Mcast_Fw d Fragment Checksum Replicator Receiver Stack latency increases with message size due to checksum component 0 0 200 400 600 800 1000 1200 1400 Msg Size in bytes 25

Throughput vs. Message size 50 45 Throughput vs Msg Size Averaged over 4 receivers, each 4 hops from multicast source for 1000 packets and 5 runs 5 runs, 1000 pkts each Throughput in Mbps 40 35 30 25 20 15 10 5 0 0 200 400 600 800 1000 1200 1400 1600 1800 Msg size in bytes Stack A Mcast Repl Stack B Mcast Frag Chk Repl Stack A Stack B Receivers 4 hops from source Sharp decrease after 1300 bytes due to fragmentation Stack A uses IP fragment Stack B uses fragment component 26

Reliable Multicast Throughput vs. Error rate 20 18 Reliable Multicast Throughput Averaged over 4 receivers, each 4 hops from multicast source for 1000 packets, packet size 1000 bytes 5 runs, 1000 packets each 1000 bytes Receivers 4 hops from source Throughput in Mbps 16 14 12 10 8 6 4 STACK Rel_Mcast Mcast_Fwd Ucast_Fwd Frag Checksum Rnd_Drop Replicator Random_Drop component simulated link-error rate Receiver-initiated NACK scheme used for Reliable component 2 Average Throughput 0 0 2 4 6 8 10 12 % Error Rate 27

Other metrics Component Latencies Msg Size MCAST FRAG CHKSUM REPL Node bytes (in micro-seconds) Sender 1000 26.09 8.23 20.49 7.61 Receiver 1000 3.26 3.37 19.41 5.04 Component Latencies at sender and receiver nodes Join and Leave latencies Timer (seconds) Query 0.1 Graft 0.1 Prune 0.1 Prune Join Latency Depth (milli-seconds) 1 405 2 458 3 535 Leave Latency : 146 ms Sender rate : 10 pkts/sec 28

Comparison with Linux IP Multicast Throughput in Mbps 120 100 80 60 40 20 Mrouted vs Composite Multicast Throughput Averaged over 4 receivers each 4 hops aw ay from multicast source for 1000 packets and 5 runs 0 0 500 1000 1500 2000 2500 Packet size in bytes Mrouted Throughput Composite Multicast Mrouted 3.9 evaluated on same test network Iperf tool used to measure end-to-end throughput Composite multicast just worse by a factor of 2-3. SM execution adds overhead Strict layering in framework prevents pointer arithmetic on buffers Ensemble is a userlevel program 29

Summary Novel approach for building network services from composite protocols Demonstrates applicability and feasibility of composite protocol approach to data-plane and control-plane protocols. Addresses challenging issue of inter-stack communication using global memory All components and global memory objects implemented and tested for both functionality and performance 30

Future Work The multicast service can be extended to support multipoint to multi-point model Implement complex multicast protocols like MOSPF/ PIM Security and network management protocols Improve performance Deployment of service on an active network 31

Questions? 32