Project Overview CS5229 Lecturer: Dr. Richard MA TA: Mostafa Rezazad.

Slides:



Advertisements
Similar presentations
Interconnection: Switching and Bridging CS 4251: Computer Networking II Nick Feamster Fall 2008.
Advertisements

Communication Networks Recitation 3 Bridges & Spanning trees.
University of Calgary – CPSC 441.  We need to break down big networks to sub-LANs  Limited amount of supportable traffic: on single LAN, all stations.
Ryu Book Chapter 1 Speaker: Chang, Cheng-Yu Date: 25/Nov./
CMPE 150- Introduction to Computer Networks 1 CMPE 150 Fall 2005 Lecture 19 Introduction to Computer Networks.
Connecting LANs: Section Figure 15.1 Five categories of connecting devices.
CSE 534 Fundamentals of Computer Networks Lecture 4: Bridging (From Hub to Switch by Way of Tree) Based on slides from D. Choffnes Northeastern U. Revised.
CS 4700 / CS 5700 Network Fundamentals Lecture 7: Bridging (From Hub to Switch by Way of Tree) Revised 1/14/13.
CPSC 441 TUTORIAL TA: FANG WANG HUBS, SWITCHES AND BRIDGES Parts of the slides contents are courtesy of the following people: Jim Kurose, Keith Ross:
1 Version 3 Module 8 Ethernet Switching. 2 Version 3 Ethernet Switching Ethernet is a shared media –One node can transmit data at a time More nodes increases.
1 Interconnection ECS 152A. 2 Interconnecting with hubs r Backbone hub interconnects LAN segments r Extends max distance between nodes r But individual.
1 Interconnecting LAN segments Repeaters Hubs Bridges Switches.
An Overview of Software-Defined Network
© 2002, Cisco Systems, Inc. All rights reserved..
Introduction to Computer Networks 09/23 Presenter: Fatemah Panahi.
Networking Components
CECS 474 Computer Network Interoperability Tracy Bradley Maples, Ph.D. Computer Engineering & Computer Science Cal ifornia State University, Long Beach.
DataLink Layer1 Ethernet Technologies: 10Base2 10: 10Mbps; 2: 200 meters (actual is 185m) max distance between any two nodes without repeaters thin coaxial.
An Overview of Software-Defined Network Presenter: Xitao Wen.
Virtual LANs. VLAN introduction VLANs logically segment switched networks based on the functions, project teams, or applications of the organization regardless.
Connecting LANs, Backbone Networks, and Virtual LANs
And how they are used. Hubs send data to all of the devices that are plugged into them. They have no ability to send packets to the correct ports. Cost~$35.
© 2006 Cisco Systems, Inc. All rights reserved. ICND v2.3—1-1 Configuring Catalyst Switch Operations Introducing Basic Layer 2 Switching and Bridging Functions.
Semester 1 Module 8 Ethernet Switching Andres, Wen-Yuan Liao Department of Computer Science and Engineering De Lin Institute of Technology
Network Redundancy Multiple paths may exist between systems. Redundancy is not a requirement of a packet switching network. Redundancy was part of the.
Network Devices.
NETWORKING COMPONENTS AN OVERVIEW OF COMMONLY USED HARDWARE Christopher Johnson LTEC 4550.
Module 8: Ethernet Switching
Review: –Ethernet What is the MAC protocol in Ethernet? –CSMA/CD –Binary exponential backoff Is there any relationship between the minimum frame size and.
15.1 Chapter 15 Connecting LANs, Backbone Networks, and Virtual LANs Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or.
LAN Devices  Purposes: Dividing the network into subnets Dividing the network into subnets Joining two networks together Joining two networks together.
OSI Model. Switches point to point bridges two types store & forward = entire frame received the decision made, and can handle frames with errors cut-through.
Data Link Layer5-1 Self-learning, forwarding: example A A’ B B’ C C’ A A’ Source: A Dest: A’ MAC addr interface TTL Switch table (initially.
Layer 2 and Switching. How Computers Communicate  In a two node flat network data can be sent without addressing.
Sem1 - Module 8 Ethernet Switching. Shared media environments Shared media environment: –Occurs when multiple hosts have access to the same medium. –For.
NET 324 D Networks and Communication Department Lec1 : Network Devices.
1 Data Link Layer Lecture 23 Imran Ahmed University of Management & Technology.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Connecting Devices CORPORATE INSTITUTE OF SCIENCE & TECHNOLOGY, BHOPAL Department of Electronics and.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Chapter 16 Connecting LANs, Backbone Networks, and Virtual LANs.
Mininet and Openflow Labs. Install Mininet (do not do this in class) Download VirtualBox Download Xming for windows (X11) Download Mininet VM for linux-ubuntu.
Objectives After completing this chapter you will be able to: Describe the different types of bridging: Transparent, Source Route and Translate Describe.
5: DataLink Layer5-1 Interconnecting with hubs r Backbone hub interconnects LAN segments r Extends max distance between nodes r Multi-tier design provides.
Computer Network Architecture Lecture 3: Network Connectivity Devices.
Jennifer Rexford Princeton University MW 11:00am-12:20pm Data-Plane Verification COS 597E: Software Defined Networking.
Created By Anoosh Samuel Abdul Razaq Qadir Hussain Asim Maaz Waheed Tayab
Computer Communication and Networking Lecture # 4 by Zainab Malik 1.
5: DataLink Layer5-1 Link-layer switches. 5: DataLink Layer5-2 Hubs … physical-layer (“dumb”) repeaters: m bits coming in one link go out all other links.
Chapter 3 Part 1 Switching and Bridging
SDN controllers App Network elements has two components: OpenFlow client, forwarding hardware with flow tables. The SDN controller must implement the network.
Mininet and Openflow Labs
Software defined networking: Experimental research on QoS
Link Layer 5.1 Introduction and services
Programming Assignment
Programming Assignment
Networking Devices.
Lab 2 – Hub/Switch Data Link Layer
MAC Addresses and ARP 32-bit IP address:
Network Data Plane Part 2
Chapter 4 Data Link Layer Switching
ARP: Address Resolution Protocol
Lab 2 – Hub/Switch Data Link Layer
Virtual LANs.
SDN basics and OpenFlow
Hubs Hubs are essentially physical-layer repeaters:
CS 4700 / CS 5700 Network Fundamentals
CS 4700 / CS 5700 Network Fundamentals
CS4470 Computer Networking Protocols
Chapter 5 Data Link Layer – Hub, Switch
Chapter 4: outline 4.1 Overview of Network layer data plane
Presentation transcript:

Project Overview CS5229 Lecturer: Dr. Richard MA TA: Mostafa Rezazad

Variety of SDN Controllers NOX/POX Ryu Floodlight OpenDaylight Pyretic Frenetic Procera RouteFlow Trema

POX: Overview A platform for building network control applications using Python Supports OpenFlow v. 1.0 only Advantages: o Widely used, maintained, supported o Relatively easy to read and write code Disadvantages: Performance

OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Preview Control Plane Data Plane ListenerControl Logic Messager 1 Parse packet and execute control logicFirst packet arrives at switchNo flow table match“PacketIn” event firedPacket sent to controllerCompose and send messageWrite flow table entrySecond packet arrives at switchFlow table matchAction PacketIn Msg Entry 1 2

Learn through an example Implement a switch o What is a switch? o What is a hub?

Simple hub Ethernet is a broadcast medium o Hub is a flooding device

Example: Simple Switch Switch layer 2: o A multiple port bridge o learn about the MAC addresses on each ports o passes MAC frames destined to those ports.

A A’A’ B B’B’C C’C’ Self-learning, forwarding: example A A’ Source: A Dest: A’ MAC addr interface TTL switch table (initially empty) A 1 60 A A’ frame destination, A’, location unknown:  flood A’ A destination A location known: A’ 4 60  selectively send on just one link

How it works? Step 1: Register event listeners to handle specific events (e.g. ConnectionUp, PacketIn) Step 2: Parse packet and execute control logics Step 3: Compose and send the OpenFlow message to the switch Controller Listener Event def launch (): 1- core.openflow.addListenerByName("PacketIn", _handle_PacketIn) 2- core.registerNew (Tutorial) Class Tutorial(EventMixin): //EventMixin is the class that raises events def __init__(self): self.listenTo(core.openflow) core.openflow_discovery.addListeners(self) //then implement all handlers you need….

How it works? Step 1: Register event listeners to handle specific events (e.g. ConnectionUp, PacketIn) Step 2: Parse packet and execute control logics Step 3: Compose and send the OpenFlow message to the switch Controller ListenerControl Logic Event def _handle_PacketIn (self, event): packet = event.parsed dst_port = table.get(packet.dst) def _handle_ConnectioUp (self, event) : log.debug(“Switch %s has come up.”, dpid_to_str(event.dpid)) Every switch connected to the controller has an id named dpid (data path id).

How it works? Step 1: Register event listeners to handle specific events (e.g. ConnectionUp, PacketIn) Step 2: Parse packet and execute control logics Step 3: Compose and send the OpenFlow message to the switch ListenerControl Logic Messager Event Msg msg = of.ofp_flow_mod() <- This instructs a switch to install a flow table entry msg.match.dl_src = packet.src another example is: msg.match.dl_dst = packet.dst _packet_out() msg.actions.append(of.ofp_action_output(port = dst_port)) event.connection.send(msg)

Example: Simple Switch def launch (): core.openflow.addListenerByName("PacketIn", _handle_PacketIn) def _handle_PacketIn (event): packet = event.parsed dst_port = table.get(packet.dst) msg = of.ofp_flow_mod() msg.match.dl_src = packet.src msg.match.dl_dst = packet.dst msg.actions.append(of.ofp_action_output(port = dst_port)) event.connection.send(msg) Step 1: Register event listener

Example: Simple Switch def launch (): core.openflow.addListenerByName("PacketIn", _handle_PacketIn) def _handle_PacketIn (event): packet = event.parsed dst_port = table.get(packet.dst) msg = of.ofp_flow_mod() msg.match.dl_src = packet.src msg.match.dl_dst = packet.dst msg.actions.append(of.ofp_action_output(port = dst_port)) event.connection.send(msg) Step 2: Parse the packet and execute control logics

Example: Simple Switch def launch (): core.openflow.addListenerByName("PacketIn", _handle_PacketIn) def _handle_PacketIn (event): packet = event.parsed dst_port = table.get(packet.dst) msg = of.ofp_flow_mod() msg.match.dl_src = packet.src msg.match.dl_dst = packet.dst msg.actions.append(of.ofp_action_output(port = dst_port)) event.connection.send(msg) Step 3: Compose and send OpenFlow message

Network slicing Divide the production network into logical slices o Each slice controls its own packet forwarding Enforce strong isolation between slices o Actions in one slice do not affect another

Example1: FlowVisor FlowVisor a transparent proxy between switches and multiple controllers FlowVisor enforces isolation between each slice OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch OpenFlow Switch FlowVisor Slice 1 Controller Slice 2 Controller Slice 3 Controller OF

OpenFlow Switch Example2: QoS-related Network Slicing Multiple queues for multiple classes Guaranteed minimum bandwidth Queue configuration is not part of the openflow Configuration defines packet treatment Openflow maps flows to queues Ref: Controller OF Q1Q2Q3Q4Q5DQ IF1 IF2 IF1IF3 IF4

Your project It is not FlowVisor It is not multiple queues (e.g., QoS) Special case where multiple bandwidth is provided Separate traffics into two slices and assign to different interfaces (not different controller not different queues) Try to keep it simple.

Lets have a look at the skeleton!

Flow Space