Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.

Slides:



Advertisements
Similar presentations
Fraunhofer FOKUS 2007 VoIP Defender The Future of VoIP Protection Fraunhofer FOKUS Institute, Germany.
Advertisements

ICS 434 Advanced Database Systems
Part 2: Preventing Loops in the Network
Umut Girit  One of the core members of the Internet Protocol Suite, the set of network protocols used for the Internet. With UDP, computer.
Mohit Chamania, 16/06/2014 Architecting the Open Source PCE A Service Oriented Approach.
Netscape Application Server Application Server for Business-Critical Applications Presented By : Khalid Ahmed DS Fall 98.
Approaches to EJB Replication. Overview J2EE architecture –EJB, components, services Replication –Clustering, container, application Conclusions –Advantages.
Network Management Overview IACT 918 July 2004 Gene Awyzio SITACS University of Wollongong.
Technical Architectures
Internet Networking Spring 2006 Tutorial 12 Web Caching Protocols ICP, CARP.
Rheeve: A Plug-n-Play Peer- to-Peer Computing Platform Wang-kee Poon and Jiannong Cao Department of Computing, The Hong Kong Polytechnic University ICDCSW.
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
Lesson 11-Virtual Private Networks. Overview Define Virtual Private Networks (VPNs). Deploy User VPNs. Deploy Site VPNs. Understand standard VPN techniques.
1 Spring Semester 2007, Dept. of Computer Science, Technion Internet Networking recitation #13 Web Caching Protocols ICP, CARP.
Managing Agent Platforms with the Simple Network Management Protocol Brian Remick Thesis Defense June 26, 2015.
Implementing Remote Procedure Calls an introduction to the fundamentals of RPCs, made during the advent of the technology. what is an RPC? what different.
Tesseract A 4D Network Control Plane
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
DISTRIBUTED PROCESS IMPLEMENTAION BHAVIN KANSARA.
Mapping Techniques for Load Balancing
Gursharan Singh Tatla Transport Layer 16-May
VLAN Trunking Protocol (VTP) W.lilakiatsakun. VLAN Management Challenge (1) It is not difficult to add new VLAN for a small network.
Distributed Process Implementation Hima Mandava. OUTLINE Logical Model Of Local And Remote Processes Application scenarios Remote Service Remote Execution.
EstiNet Network Simulator & Emulator 2014/06/ 尉遲仲涵.
OMNET++. Outline Introduction Overview The NED Language Simple Modules.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
The Design Discipline.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
ProCol~ A jEdit Plugin for Remote Project Collaboration Justin Dieters Spring 2004 CS470 Final Presentation.
An Introduction to Software Architecture
DAT602 Database Application Development Lecture 12 C/S Model Database Application.
LWIP TCP/IP Stack 김백규.
Chapter Three Network Protocols By JD McGuire ARP Address Resolution Protocol Address Resolution Protocol The core protocol in the TCP/IP suite that.
CHEN Ge CSIS, HKU March 9, Jigsaw W3C’s Java Web Server.
Towards the scalability of a Service-oriented PCE architecture for IoT scenarios Vitor Barbosa C. Souza Xavi Masip Bruin Eva Marin Tordera CRAAX - Technical.
Unit – I CLIENT / SERVER ARCHITECTURE. Unit Structure  Evolution of Client/Server Architecture  Client/Server Model  Characteristics of Client/Server.
Improving pS-PS Service Architecture , perfSONAR-PS Developers Meeting Aaron Brown, Andrew Lake, Eric Pouyoul.
11 SECURING NETWORK COMMUNICATION Chapter 9. Chapter 9: SECURING NETWORK COMMUNICATION2 OVERVIEW  List the major threats to network communications. 
Framework for MDO Studies Amitay Isaacs Center for Aerospace System Design and Engineering IIT Bombay.
X-WindowsP.K.K.Thambi The X Window System Module 5.
1 © 2003, Cisco Systems, Inc. All rights reserved. CCNP 1 v3.0 Module 1 Overview of Scalable Internetworks.
VMware vSphere Configuration and Management v6
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
PCE-based Computation for Inter-domain P2MP LSP draft-zhao-pce-pcep-inter-domain-p2mp-procedures-00.txt Quintin Zhao, Huawei Technology David Amzallag,
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Computer Simulation of Networks ECE/CSC 777: Telecommunications Network Design Fall, 2013, Rudra Dutta.
Data Communications and Networks Chapter 9 – Distributed Systems ICT-BVF8.1- Data Communications and Network Trainer: Dr. Abbes Sebihi.
Company LOGO Network Management Architecture By Dr. Shadi Masadeh 1.
The overview How the open market works. Players and Bodies  The main players are –The component supplier  Document  Binary –The authorized supplier.
By Nitin Bahadur Gokul Nadathur Department of Computer Sciences University of Wisconsin-Madison Spring 2000.
Copyright © 2004, Keith D Swenson, All Rights Reserved. OASIS Asynchronous Service Access Protocol (ASAP) Tutorial Overview, OASIS ASAP TC May 4, 2004.
E-commerce Architecture Ayşe Başar Bener. Client Server Architecture E-commerce is based on client/ server architecture –Client processes requesting service.
Chapter 12: Architecture
Netscape Application Server
Chapter 3 Internet Applications and Network Programming
PCEP Extensions For Transporting Traffic Engineering (TE) Data
Layered Architectures
CHAPTER 3 Architectures for Distributed Systems
Chapter 3: Windows7 Part 4.
Ch > 28.4.
Replication Middleware for Cloud Based Storage Service
ONOS Drake Release September 2015.
Northbound API Dan Shmidt | January 2017
An Introduction to Computer Networking
Interpreter Style Examples
Chapter 12: Physical Architecture Layer Design
Neutron at Scale Justin Hammond - Developer
Software models - Software Architecture Design Patterns
An Introduction to Software Architecture
Chapter 5 Architectural Design.
Presentation transcript:

Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation Element (PCE) Emulator Mohit Chamania, Marek Drogon, Admela Jukan

Present an overview of the PCE emulator developed at IDA Describe the design motivations and subsequent implementations for different PCE components Outline areas for innovation in developing and extending the PCE server architecture 2 In this Talk We will..

PCE architecture Overview PCE Emulator PCE Server Implementation PCE Client Implementation Challenges In Implementation 3 Outline

Path Computation Element (PCE) is a centralized server to facilitate constrained path computation Provide support of complex computation algorithms without increasing complexity of network hardware Easy to deploy and scale with different network sizes. 4 PCE Overview

5 R1 R2 R3 R4 R5 R6 Three Primary Components Path Computation Element (PCE) Path Computation Client (PCC) Traffic Engineering Database (TED) PCE TED PCC Responsible for serving computation requests Client on Network Nodes to send requests to PCE Database to store Traffic Engineering information used by PCE TED updated using TE information from Network control/management Plane 1 PCC connects to the PCE and sends a path computation request 2 PCE uses TE information from TED to compute path request 3 PCE communicates the computed path to the PCC 4 Network Node uses computed path info to being reservation 5

PCE architecture Overview PCE Emulator PCE Server Implementation PCE Client Implementation Challenges In Implementation 6 Outline

Designed as a general purpose PCE with four primary design goals – Should be easily extensible to evaluate extensions to the PCEP protocol and state machine – Reusable: Require minimal effort to incorporate topological and network specific path computation features into the PCE – Scalable: Should have capability to support a large number of PCEP requests in the network. – Low Overhead: Should run on typical commercial hardware 7 PCE Emulator Overview

The implementation of the PCE and the PCC contain common functions including State machine, network I/O and PCEP protocol implementations Differences include: – PCE implementing a path computation function – PCC implementing an client interface to facilitate other applications to interact with the PCE. TED implemented as a separate package using Java based Graph library 8 PCE Emulator Overview

PCE architecture Overview PCE Emulator PCE Server Implementation PCE Client Implementation Challenges In Implementation 9 Outline

10 PCE Server Overview Computation Layer Session Handler Network Layer Three primary layers – Network I/O layer – Session Handler – Computation Layer Use of layers with standard Interfaces to facilitate extensibility PCE Protocol implemented as a Java package Each layer can be duplicated/replaced with a different implementation supporting the defined inter-layer interfaces.

11 PCEP Package Overview PCEPMessage MessageFrameHeader PCEPObjectHeaderPCEPObject HeaderObjectHeaderObjectHeader The PCEP Protocol is used for communication between the PCC and the PCE Each PCEP message consists of a Message Header and a Message Frame The Message Frame consists of multiple PCEP Objects Each Object itself consists of an Object header and body Message hierarchy duplicated in the package which can be extended to add new messages/objects

All PCEP messages and objects use a standard interface which can be easily extended Use a single Factory to generate all PCEP messages (Single point of logic for ease of implementation) Message conformity forced by providing checks on required objects – additional objects can be inserted easily with minimal effort All inter-layer interfaces only use PCEPMessage types, and are therefore compatible with new message types 12 PCEP Extensibility

13 Network Layer Overview SelectorMap(Address,Socket) Sockets PCE Protocol Session Handler Map(Address,Statemachine) Computation Handler Graph Library Timer In Msg. New Conn State Machines Thread Pool Register With Session Handler Register new Connection Socket Primary function to facilitate Network I/O with remote peers Designed to support large number of concurrent sessions with low traffic volumes Use of Asynchronous Network I/O means that one process handles all incoming messages / connection requests New Connection ArrivesConnection Registered

Response From Session Handler 8 Network Layer Overview SelectorMap(Address,Socket) Sockets PCE Protocol Session Handler Map(Address,Statemachine) Computation Handler Graph Library Timer In Msg. New Conn State Machines Thread Pool Register With Session Handler Register new Connection Get Socket via Address Address, Byte[] Address Byte[] Address, PCEPMessage Socket Primary function to facilitate Network I/O with remote peers Designed to support large number of concurrent sessions with low traffic volumes Use of Asynchronous Network I/O means that one process handles all incoming messages / connection requests New Message ArrivesMessage Sent To Peer

9 Session Handler Overview SelectorMap(Address,Socket) Sockets PCE Protocol Session Handler Map(Address,Statemachine) Computation Handler Graph Library Timer In Msg. New Conn State Machines Thread Pool Socket Governs the processing of PCEP message based on State Machine All state machine transitions based on either incoming messages or timeouts State machines implemented as objects with Session Handler and Timer initiating State Changes State Machine Interface: //Update state due to incoming message from Network Void updateStateNL(PCEPMessage); //Update state due to message from Computattion layer Void updateStateCL(PCEPMessage); //Update state due to a timeout Void updateState(ID nextState);

PCEP State Machines may need to be modified to add additional functions such as AA Session Handler can use different State machine implementations which implement the standard interface Different implementations can also be run at the same time e.g. different state machines for internal and inter-domain computation requests Existing implementation provided with additional (empty) function triggered at every state transition void stateTransition (ID currState, ID nextState) 10 State Machine Extensibility

Request Sent to Computation Layer 11 Session Handler Overview SelectorMap(Address,Socket) Sockets PCE Protocol Session Handler Map(Address,Statemachine) Computation Handler Graph Library Timer In Msg. New Conn State Machines Thread Pool Update State Address, PCEPRequest PCEP Request Socket Governs the processing of PCEP message based on State Machine All state machine transitions based on either incoming messages or timeouts State machines implemented as objects with Session Handler and Timer initiating State Changes Reset Timeout Event Forward to computation handler PCEP Request Arrives

Response received from Computation Layer 11 Session Handler Overview SelectorMap(Address,Socket) Sockets PCE Protocol Session Handler Map(Address,Statemachine) Computation Handler Graph Library Timer In Msg. New Conn State Machines Thread Pool Update State Address, PCEPResponse PCEP Response Socket Governs the processing of PCEP message based on State Machine All state machine transitions based on either incoming messages or timeouts State machines implemented as objects with Session Handler and Timer initiating State Changes Reset Timeout Event Forward to Network Layer Response sent to Network Layer

Request received from Session HandlerSend Response To Session Handler 12 Computation Layer Overview SelectorMap(Address,Socket) Sockets PCE Protocol Session Handler Map(Address,Statemachine) Computation Handler Graph Library Timer In Msg. New Conn State Machines Thread Pool Socket Responsible for Processing Path Computation Requests Use of custom Thread pool to serve multiple computation requests in parallel A Java Graph Library is used to provide topology information acting as TED PCEP Request Assign request to available thread in thread pool Use Graph Lib to compute path Send Response to Computation Handler PCEP Response Path Computation Completed

PCE architecture Overview PCE Emulator PCE Server Implementation PCE Client Implementation Challenges In Implementation 20 Outline

12 PCE Client Implementation SelectorMap(Address,Socket) Sockets PCE Protocol Session Handler Map(Address,Statemachine) Timer In Msg. New Conn State Machines Socket Uses the same Session Handler and Network Layer Implementation The State Machine provides interface for incoming messages from Client to the Session Handler Implemented as a simple GUI in the Emulator Client (GUI Implementation) State Machine Interface: //Update state due to incoming message from Network Void updateStateNL(PCEPMessage); //Update state due to message from local Client Void updateStateClient(PCEPMessage); //Update state due to a timeout Void updateState(ID nextState);

12 PCE Client GUI Server Address Flags Source Address Dest Address Event/Message Logging Window

PCE architecture Overview PCE Emulator PCE Server Implementation PCE Client Implementation Challenges In Implementation 23 Outline

Coordination with TED – TED implementations should be optimized for concurrent access – In order to ensure accurate path information, TED update announcement should be integrated into the PCE – Current implementation pauses processing of new requests, updates TED and restarts processing of active requests (not optimal) Integration of Security Features – Intelligence in network layer to identify and deal with DDoS attacks Implementing Priority and Load balancing – Implementing priority queuing for critical path computation requests (e.g. backup path computation) – Load-balancing across multiple PCEs implemented in same network 13 Challenges in Implementation