The Router SC 504 Project Gardar Hauksson Allen Liu.

Slides:



Advertisements
Similar presentations
Topic : Process Management Lecture By: Rupinder Kaur Lecturer IT, SRS Govt. Polytechnic College for Girls,Ludhiana.
Advertisements

Delivery and Forwarding of
1 IK1500 Communication Systems IK1330 Lecture 3: Networking Anders Västberg
Bio Michel Hanna M.S. in E.E., Cairo University, Egypt B.S. in E.E., Cairo University at Fayoum, Egypt Currently is a Ph.D. Student in Computer Engineering.
1 CNPA B Nasser S. Abouzakhar Queuing Disciplines Week 8 – Lecture 2 16 th November, 2009.
1 CONGESTION CONTROL. 2 Congestion Control When one part of the subnet (e.g. one or more routers in an area) becomes overloaded, congestion results. Because.
Fundamentals of Python: From First Programs Through Data Structures
Submitters: Erez Rokah Erez Goldshide Supervisor: Yossi Kanizo.
Nick McKeown CS244 Lecture 6 Packet Switches. What you said The very premise of the paper was a bit of an eye- opener for me, for previously I had never.
What's inside a router? We have yet to consider the switching function of a router - the actual transfer of datagrams from a router's incoming links to.
Network based System on Chip Final Presentation Part B Performed by: Medvedev Alexey Supervisor: Walter Isaschar (Zigmond) Winter-Spring 2006.
Page: 1 Director 1.0 TECHNION Department of Computer Science The Computer Communication Lab (236340) Summer 2002 Submitted by: David Schwartz Idan Zak.
April 10, HOL Blocking analysis based on: Broadband Integrated Networks by Mischa Schwartz.
1 Comnet 2006 Communication Networks Recitation 5 Input Queuing Scheduling & Combined Switches.
Operating Systems (CSCI2413) Lecture 4 Process Scheduling phones off (please)
1 ENTS689L: Packet Processing and Switching Buffer-less Switch Fabric Architectures Buffer-less Switch Fabric Architectures Vahid Tabatabaee Fall 2006.
CSIT560 by M. Hamdi 1 Course Exam: Review April 18/19 (in-Class)
Cs238 CPU Scheduling Dr. Alan R. Davis. CPU Scheduling The objective of multiprogramming is to have some process running at all times, to maximize CPU.
EE 122: Router Design Kevin Lai September 25, 2002.
Lecture 11. Matching A set of edges which do not share a vertex is a matching. Application: Wireless Networks may consist of nodes with single radios,
CS 268: Lecture 12 (Router Design) Ion Stoica March 18, 2002.
Little’s Theorem Examples Courtesy of: Dr. Abdul Waheed (previous instructor at COE)
Random Early Detection Gateways for Congestion Avoidance
COMP680E by M. Hamdi 1 Course Exam: Review April 17 (in-Class)
1 Achieving 100% throughput Where we are in the course… 1. Switch model 2. Uniform traffic  Technique: Uniform schedule (easy) 3. Non-uniform traffic,
1 Netcomm 2005 Communication Networks Recitation 5.
048866: Packet Switch Architectures Dr. Isaac Keslassy Electrical Engineering, Technion Maximal.
Pipelined Two Step Iterative Matching Algorithms for CIOQ Crossbar Switches Deng Pan and Yuanyuan Yang State University of New York, Stony Brook.
Localized Asynchronous Packet Scheduling for Buffered Crossbar Switches Deng Pan and Yuanyuan Yang State University of New York Stony Brook.
Computer Networks Switching Professor Hui Zhang
Switching Techniques Student: Blidaru Catalina Elena.
Server Load Balancing. Introduction Why is load balancing of servers needed? If there is only one web server responding to all the incoming HTTP requests.
CHP-4 QUEUE.
CSE QoS in IP. CSE Improving QOS in IP Networks Thus far: “making the best of best effort”
ACN: RED paper1 Random Early Detection Gateways for Congestion Avoidance Sally Floyd and Van Jacobson, IEEE Transactions on Networking, Vol.1, No. 4, (Aug.
Chapter 11 Heap. Overview ● The heap is a special type of binary tree. ● It may be used either as a priority queue or as a tool for sorting.
CS 453 Computer Networks Lecture 18 Introduction to Layer 3 Network Layer.
1 IK1500 Communication Systems IK1500 Anders Västberg
Routers. These high-end, carrier-grade 7600 models process up to 30 million packets per second (pps).
ISLIP Switch Scheduler Ali Mohammad Zareh Bidoki April 2002.
Packet Forwarding. A router has several input/output lines. From an input line, it receives a packet. It will check the header of the packet to determine.
Crossbar Switch Project
Stress Resistant Scheduling Algorithms for CIOQ Switches Prashanth Pappu Applied Research Laboratory Washington University in St Louis “Stress Resistant.
Lecture 3 Applications of TDM ( T & E Lines ) & Statistical TDM.
An Energy Efficient MAC Protocol for Wireless LANs, E.-S. Jung and N.H. Vaidya, INFOCOM 2002, June 2002 吳豐州.
Hashtables. An Abstract data type that supports the following operations: –Insert –Find –Remove Search trees can be used for the same operations but require.
Real-Time systems By Dr. Amin Danial Asham.
T. S. Eugene Ngeugeneng at cs.rice.edu Rice University1 COMP/ELEC 429 Introduction to Computer Networks Lecture 18: Quality of Service Slides used with.
Buffered Crossbars With Performance Guarantees Shang-Tse (Da) Chuang Cisco Systems EE384Y Thursday, April 27, 2006.
Distance Vector Routing
Input buffered switches (1)
Providing QoS in IP Networks
1 Chapter 7 Network Flow Slides by Kevin Wayne. Copyright © 2005 Pearson-Addison Wesley. All rights reserved.
Operating Systems Scheduling. Scheduling Short term scheduler (CPU Scheduler) –Whenever the CPU becomes idle, a process must be selected for execution.
Scheduling Mechanisms Applied to Packets in a Network Flow CSC /15/03 By Chris Hare, Ricky Johnson, and Fulviu Borcan.
CPU Scheduling CS Introduction to Operating Systems.
Network layer (addendum) Slides adapted from material by Nick McKeown and Kevin Lai.
scheduling for local-area networks”
QoS & Queuing Theory CS352.
Topics discussed in this section:
Buffer Management in a Switch
Packet Forwarding.
Process Description and Control
Switching Techniques In large networks there might be multiple paths linking sender and receiver. Information may be switched as it travels through various.
Switching Techniques.
Computer Science Division
EE 122: Lecture 7 Ion Stoica September 18, 2001.
COMP/ELEC 429 Introduction to Computer Networks
Chapter 4: Simulation Designs
EECS 122: Introduction to Computer Networks Packet Scheduling and QoS
Presentation transcript:

The Router SC 504 Project Gardar Hauksson Allen Liu

Overview Design principals, requirements and constraints The Router – quick introduction The iSLIP algorithm Packet generation Underlying datastructures The program interface The Router – revisited

Design principles, requirements and constraints Project was open-ended, routing is a rather general term. You may see more resemblence to a network switch than to a network router in this project. Main objectives can be split into two: Creating packets and inserting them into input queues Routing the packets from input queues to output queues as efficiently as possible

Program parameters Input/output queues (q) – same number of input/output queues Number of packets per queue (n) Maximum number of packets routed per second (p) – upper bound is q (reasons shown later) Length of routing timeslot Packet generation rate Probability distribution of generated packets.

A quick peak The program flow: A thread generates packets to a random input queue. Each packet has a destination queue to go to. This thread can generate up to 1000 packets per second. Once in every timeslot (example timeslot is one second) The Router goes through all input queues and moves packets from their input queues to their destination queues. A short demo of the program might make things more clear...

Crossbar switch Each input queue can send one packet per timeslot. Each output queue can receive one packet per second. Our job is to make connections between input and output queues in a clever way. Source: Wikipedia

Crossbar switch Number of packets routed per timeslot can never exceed the number of input/output queues. (p <= q) If number of packets routed per each timeslot reaches p, then we have 100% efficiency. Packets are sent away from the output queues at a rate of 1 per queue per timeslot (total of q packets per timeslot) Why is this hard to achieve??

Routing algorithm In FIFO we just look at first packet of each queue and pass it on to the destination. If the destination is already occupied in this timeslot we have to cancel any subsequent packets going to the same destination in this timeslot. It has been shown 1 that this yields a efficiency. 1 Nick McKeown: iSLIP: A Scheduling Algorithm for Input-Queued Switches

Head of Line blocking This problem with FIFO queueing is called “Head of Line blocking” where the first packet in the queue is “Head of Line” or HOL.

HOL blocking in FIFO queues 1->11->31-> >42-> >13-> >24-> >2 3-> Input queues Output queues Only 3 packets routed when capacity is 4! In the long run, efficiency is only 58.6% HOL These packets could go to output queue 3 in this routing slot but since the HOL packet is blocking the queue, they just sit around and the queue doesn’t utilize it’s opportunity to send packets, even though it has packets to send and an idle output queue to receive them!

Virtual Output Queues (VOQ) This HOL blocking is not just a fact of life we have to accept. Being the engineers we are we can’t sleep at nights when this is the case! That’s why someone invented Virtual Output Queues (VOQ). 1 Nick McKeown: iSLIP: A Scheduling Algorithm for Input-Queued Switches

Virtual Output Queues (VOQ) VOQ is a fundamental method in iSLIP. Instead of just looking at the first packet in each input queue, we create virtual output queues in each input queue. Each input queue has one virtual output queue for each “actual” output queue. Thus, if there are q input queues and q output queues, there are a total of q 2 virtual output queues. Therefore iSLIP is not feasible for very high number of input/output queues.

Virtual Output Queues (VOQ) 1->11->31->1 2->42->1 3->13->2 4->24->4 2->3 3->2 Input queues (FIFO) HOL These input queues HOL Input queues (VOQ) become like this

Virtual Output Queues Eliminate HOL blocking Perform better when queue size is greater (the higher n the better) Simulations showed that n=50 was a good number for 100 queues. So have we solved all the problems in the world by using VOQ? No!

iSLIP If two input queues both have packets for the same output queue, which one gets to send the packet? iSLIP tackles this problem by using a Round-Robin scheme that is fair and efficient.

iSLIP iSLIP has three main steps which are iterated: REQUEST: Input queues send a request for every HOL packet to a corresponding queue GRANT: Output queues accept the highest priority request it gets and drops others. Priority is determined from which queue number is next in a fixed, round-robin schedule from a pointer g i. g i is incremented each time an output queue receives an ACCEPT from step 3. ACCEPT: Each input now looks at its grants and accepts the one that appears next in a fixed, round- robin schedule from a pointer a i. a i is updated accordingly.

iSLIP HOL Input queues Output queues REQUEST g 1 =1 g 2 =1 g 3 =1 g 4 =1 a 1 =1 a 2 =1 a 3 =1 a 4 =1 GRANT ACCEPT a 1 =2 a 2 =1 a 3 =4 g 1 =2 g 3 =4 g 4 =3 UPDATE POINTERS!

iSLIP Sharp individuals might have noticed that we actually just routed 3 packets out of 4 in last turn. Our observations showed that first iteration usually gave around 50-60% efficiency. To increase efficiency the iSLIP steps are iterated lg(q) times (7 times for 100 queues). This is the time it takes for iSLIP to converge. The a i and g i pointers are not updated until after all iterations have finished. This is to avoid starvation but won’t be discussed in detail here.

Packet generation machine Simulating network traffic is not a trivial task. Each protocol has its own characteristics and each network has its own characteristics. We decided to simulate two traffic patterns: Uniform distribution Poisson distribution The probability of a packet having a specific input/output queue is uniform. The time between generated packets is either uniformally or Poisson distributed.

Distributions Uniform probability mass function (on [a,b]) Poisson probability mass function Source: Wikipedia

Underlying datastructures The input/output queues are stored in an array with length q. Each output queue is a doubly linked list. If head/tail pointers both point to null the queue is empty. Each input queue holds an array of VOQ's. Each VOQ is a doubly linked list. Queue size is maintained in a number that is updated every time we insert/remove from the queue.

Datastructure analysis Queues Insert into (tail of) queue: O(1) Delete from (head of) queue: O(1) Get size of queue: O(1) Router Search for REQUESTS: O(q 2 ) Search for GRANTS: O(q) (average case) – O(q 2 ) worst case Search for ACCEPTS: O(q) (average case) – O(q 2 ) worst case => Routing: O(q 2* lg(q)) – lg(q) is due to iterations

User interface The next few slides will explain the user interface

# of queues (q): the number of input/output queues that the router has. For example, the figure above has 100 input/output queues. # of packets per queue (n): the number of packets capacity of a queue. Packets will be dropped if they are being inserted into a full queue. # of packets routed per timeslot (p): the number of packets the router can route per timeslot. Average time between generated packets (ms): the average time between packet generations. Length of timeslot (ms): the length of routing timeslot. For example, a value 1000 here means that each timeslot has duration of 1000ms (1 sec).

Green: low load Yellow: medium load Red: high load

Dropped output packets: the total number of packets that have been dropped while being moved from input queues to output queues during the entire routing process. Due to the structure of the program (it does not try to insert packets into full output queues) this value should always be 0. Dropped input packets: the total number of packets that have been dropped when being inserted into the router during the entire routing process. No of routed packets: the total number of packets that have been routed from input queues to output queues during the entire routing process. Average routing time (ms): the average routing time it has taken for a packet to journey through a router, i.e. the time elapsed since it entered the router until it exited the router. No of packets created: the total number of packets that have been created so far by the packet generation machine.

Packets/sec: the average number of input packets per second. Average packets routed: the efficiency of how packets are being routed from the input queues through the router. Our goal is to get this number as close to 100% as possible. For example, a 90% indicates that 90% of the routing capacity is being utilized. Average packets sent: the efficiency of how packets are being sent out by the output queues. Packets routed in last turn: the number of packets that were routed during the execution of the routing. Packets sent in last turn: the number of packets consumed at the output queues last time we routed. To achieve full throughput this number should be equal to the number of queues.

Basic Project Structure

Simulation Result The following parameters are used during the simulation: number of queues (q):100 number of packets per queue (n):50 number of packets routed per timeslot (p):100 Timeslot:1000 Simulation time:3600 Distribution type:Poisson Interval rate (ms) (#packets created per second) 7 (142)8 (125)9 (111)10 (100)11 (90)12 (83) # packet generated dropped packets from I.Q packet/sec average routing time avg packet routed97.31%97.24%96.01%92.58%83.41%77.17% avg packet sent97.28%97.22%95.98%92.56%83.38%77.15%

What we did We created a GUI We implemented an algorithm that is much better than FIFO (100% for iSLIP against 58.6% for FIFO) Our program does write to output log as well The program can be run with parameters, and without GUI which is more suitable for simulations Code and project details will be on course webpage today

Features we didn't write in this version but will write into the next one so our clients will be forced to upgrade and pay more QoS (priority queueing). Can be implemented by creating k priority queues inside each VOQ (raises the total number of queues to q 2 *k). Use real-world ip addresses instead of simple numbers. Implement routing tables from real life routers. Make the GUI more elaborate.

References McKeown, Nick (1999). "iSLIP: A Scheduling Algorithm for Input- Queued Switches". IEEE Transactions on Networking, Vol 7, No.2, April 1999 ( Gospodinov, Mitko and Gospodinoa, Evgeniya (2004). “Analysis of iSLIP scheduling algorithm for input-queuing switches”. ( Sun Microsystems. Java 2 Platform Standard Edition 5.0 API Specification ( Wikipedia contributors. "Poisson distribution". Wikipedia, The Free Encyclopedia, 26 November 2006, 12:42 UTC ( d= ) [accessed 29 November 2006] d=

Questions?

Thank you!