Last lecture - distance-vector routing Today - Switch Design Last two lectures discussed algorithms used to decide which output to send a particular packet, based on the packet's destination address. This lecture discusses the mechanism of getting packets from the inputs of a switch/router to its outputs. Design goals a) throughput - # of packets the switch can forward each second. b) scalability - how many inputs/outputs the switch can connect. Fig. 4.19 in text illustrates a typical switch architecture. Issue of contention - traffic from different inputs go to the same output. Excess traffic needs to be buffered. Switch port - communicate with the outside world. e.g. contain fiberopotic receivers and lasers, buffers to hold packets waiting to be forwarded, etc. Switch fabric - when presented with a packet, deliver it to the right output. Buffering/queueing structure: 1) input queueing - in a purely input-queued switch packets are buffered at the input and released when they win access to both the switch fabric and the output trunk. An arbiter schedules access to the fabric depending on the status of the fabric and the output lines. Since packets leaving the input queue are guaranteed access to the fabric and the trunk, there is no need for an output queue. Advantage - the input queue memory and the links in the switch fabric need to run only as fast as the input lines. For an NxN switch, the only element that needs to run N times faster than the inputs is the arbiter. Problem - if the input queues are implemented in a FIFO order, we have the head-of-line blocking problem. Solution - separate the queues for each output port at each input, select one packet from each queue for each output port. ie. at each input, we maintain N queues, one per output. At each time step, the arbiter must select at most one packet from each input in such a way that no packets are destined to the same output port. Parallel Iterative Matching: 1) first phase: each input port requests permission to transmit a packet from the set of destination ports corresponding to packets queued at the input. 2) second phase: selects a set of input ports for packet transmission. This involves several matching rounds. In each matching round, an output grants permission to a randomly selected member of its set of requesting inputs. The input randomly selects an output and withdraws its request from the other output ports. The unmatched input and output ports then repeat the process.