MPLS (by alaric)
So how's it all work?
Well, with IP routing, the routers have to be quite smart. Each IP packet has a destination address, saying which computer it's meant for, and then protocol and port information saying what kind of packet it is. A simple router just looks at the destination address, and consults a routing table to decide where to pass the packet on to. Since each network has a range of contiguous addresses, like all the houses on the same street, the routing table lists ranges of addresses along with the name of the adjacent router packets for that destination should be sent to. For each packet, the router has to scan the table, find the address range matching the destination of the packet, and forward the packet to the specified router.
In the background to all this, a routing protocol runs; each router advertises to its neighbours what destination address ranges it has directly connected to it. It also advertises address ranges its neighbours have told it they can reach, but these advertisments contain a 'hop count'; zero for a directly connected address range, one for an address range reachable via a neighbour, two for one reachable via a neighbour of a neighbour, etc. And so all of the routers know how to reach all of the address ranges. Often a router will receive two advertisments for the same address range, via different routes; it'll keep the one with the lowest hop count, and remember the other(s) as backups in case the favoured route disappears.
When a link to a neighbour router goes down, the router quickly starts advertising the fact that it no longer has that route. This information ripples out across the network, until all the routers know. This is the healing process.
Now, that's a simple router. It can only route packets based upon their destination. More complex routers let the routing table entries also specify protocol and port information, allowing different routes for different priorities of traffic, with complex systems of rules set up by administrators to specify how the different traffic classes should be routed. This is so messy, it's very rarely done. More often, that facility is used only on the edges of networks to divert different protocols to different servers for security or load-balancing purposes. And sometimes you'll want to route based on the source addresses of packets, too, to give different quality of service to different users of the network.
Needless to say, it's all this routing-table scanning that makes routers complex, and the nature of the routing advertisments that makes them slow to respond to failures.
But MPLS does it very differently.
By Ben, Sun 1st Apr 2007 @ 6:41 pm
The problem with all this stuff on a 'home' network is that there just aren't enough users to play with.
Now I've got an additional full time user on my network, stuff will be used more. So a wired network is needed (and I'm going to Gb just for fun), and I've just had to look up instructions for transfering calls on Asterisk. But even with two people, it still hasn't got the usage to really try funky stuff out.
I suppose you could always connect up the cats or something.