Introduction to Packet Scheduling ECE 1545
Packet Switch Output Scheduling Switch Fabric Routing Table Forwarding Decision Routing Table Forwarding Decision Routing Table Forwarding Decision
Packet Scheduling Packet scheduling algorithm determines the order in which backlogged packets are transmitted on an output link Allocates output bandwidth Controls packet delay scheduler
Flows and Classes A flow is a single end-to-end data stream In a virtual circuit network, it is a connection In a datagram network it is a transport level flow A class is a group of flows with common characteristics Belong to the same application (video, data) Belong to the same service (port number) Have common header fields (e.g., DiffServ field)
Desirable Properties of a Packet Scheduler Protection among flows Misbehaving flows do not affect well-behaving flows Guarantees Differentiate between different types of traffic Give guarantees on delay and rate Flexible Accommodate wide range of service requests Simple Easy to implement
Packet Scheduling Packet scheduling algorithms are mostly work-conserving, i.e., the scheduler transmits packets as long as there are packets waiting Non-workconserving: Even though there are packets waiting, scheduler may not transmit
First-Come-First Served (FIFO) Packets are transmitted in the order of their arrival Advantage: Very simple to implement Disadvantage: Cannot give different service to different types of connections Each flow (even with low data rate) can experience long delays
Static Priority Also called Head-of-Line (HOL) queueing: Each traffic flow belong to a class Each class has a priority One FIFO queue for each class Transmit from the highest priority queue with a backlog Advantage: Simple Disadvantage: Tends to “starve” the lower priority classes
Earliest Deadline First (EDF) Each flow is associated with a delay index (d1, d2, d3) Packet from flow i that arrives at time t is assigned deadline t+di Packets are transmitted in the order of their deadlines
Fair Queueing Attempts to implement a scheduler that serves all flows with a backlog at the same rate Emulates a bitwise Round Robin scheduling algorithm Not easy to implement Fair Queuing in a packet network FIFO Fair Queueing
Weighted Round Robin (WRR) Deficit Round Robin (DRR) An approximation of fair queueing: One FIFO queue for each flow Operates in “rounds”, where each queue with a backlog is visited once in a round Packet sizes are considered when determining the amount of traffic that can be sent in a round