1.5 KiB
lec16
Now we'll look at an introduction to how routing (sort of) works, with a few constraints.
Constraints for Routing
We know that no router can have a link to every other router in the world so we know that most data will have to hop over a few routers at least to get pretty much anywhere(welcome to heuristics). To add onto this constraint, each router will only have knowledge of the routers directly around it. This means we have a small, easy to update catalog of nearby routers, which hopefully small enough where searching it doesn't take too long.
Further more each router must have some kind of "length" concept to determine how "far away" nearby routers are. This could be a ping time to send data to those nodes, or maybe a physical distance. Whatever the case may be, we have a length or distance to the surrounding nodes.
In essence, these are the only constraints we have to build a routing algorithm. We know that we have tools like Dijkstra's algorithm but the problem is that with a huge network, say the size of the whole internet we will waste countless amounts of time. For this reason we have to come up with some kind of good enough, nice one bro algorithm.
Routing Algorithm Goals
-
Finish Fast
- graph traversal is cool and all but people have things to do. So we want to reach the end as fast as possible
-
Easy Execution
- Individual nodes might be comprised of old hardware, slow and sluggish, so give them something easy to compute