So to get from the input interface to the output interface, we go through a backplane. The backplane is a little network inside the router, it's a switching fabric, is used to make packets go from the inputs to the outputs. So the backplane is itself, a point-to-point switch inside the router. It allows for a simultaneous transfer of packets between any two disjoint pairs of interfaces. Earlier backplanes, they're just buses. So then with a bus, if it's a single shared media, only one pair of ports could send to each other at the same point of time. But more general backplanes allow multiple pairs of ports to communicate at the same time. A backplane is like a little network inside of a router. If you could look inside the switching fabric, there would be a bunch of inputs and there would be a little routed topology inside of wall. Packets come in and they get sorted a little bit. They get sorted in different ways so that given the header of the packet, it goes to the right outbound interface. So, it's a lot like a little network. Inside of routers, we don't actually route packets, though. Now the reason for this is that, if you have a backplane near of a switching fabric you don't want a big packet locking the whole fabric. What you want to have is you're going to have a hardware clock that goes off periodically, and every hardware clock you're going to forward data, and you'd like for all that data to be the same size so you can maximize your usage of the backplane. So to do this inside of routers, what input interfaces do is they'll take packets in and they'll chop them up into fixed-size cells. These cells are often 64 bytes, that sort of size, and these cells will have the data and they may have some control information like a little header on the data, and then they're sent in the backplane. So they're sent into a set of registers or buffers inside the backplane. Then in every clock, the backplane takes those buffers, takes that data and sends it internally, and then the sorting and routes those cells internally until they get to the right outbound interface. At the outbound interfaces, those cells are reassembled and then send out on the wire. So outside of the router, you're completely unaware of this. This is stuff that just happens inside the router for efficiency. But cells are important because they simplify the hardware and they eliminate wastage due to idle cycles. So that's the backplane. Now, if we put all the pieces together, what does a router look like? What's got this switching fabric, this interconnection network or backplane that's in the middle of the router, is used to send packets between different input ports and output ports. There's a set of interface cards that are used to receive data and sending, and these are the individual network ports. If you send data between a pair of ports, it just goes through the interconnection network. Now, in addition to this, there is a processor, there's the memory in the CPU, there's software that runs on the router. These are routing protocols run. That's something that programs the interconnection network and programs the queues, that tells these underlying pieces of hardware how to forward packets. So these are the main components of a router. On a PC router, like if you're going to set up a router on a Linux machine or a little IoT device, the interconnection network would be the bus. It would be a PCI bus, if you're using a traditional computer. The interface cards are going to be the NICs like Ethernet cards, and all forwarding and routing is done through commodity CPU. So if a IP packet comes in, it's actually going to be bubbled up and processed through the CPU and then go back down. On commercial routers, we try and offload packet processing functionality as much as we can to the underlying hardware. So the interconnection network in the interface cards are more specific, they have intelligence in them, they can process IP packets on their own. When we have packet forwarding, that's implemented in the hardware as well, is often implemented through a custom ASK. Only routing which is called the control plane, only control plane operations of the router are done through the commodity CPU and that's called the route processor. So the route processor is often implemented on a router, on a separate line card, and that's like the brain to the router, that runs the routing protocols and all that, and that tells these underlying pieces of hardware what to do. So it tells the ASK what to do, tells the backplane what to do, and so on.