Routing protocol algorithms operate using either a flat routing system or a hierarchical routing system. A hierarchical routing system uses a layered approach wherein routers are placed in logical groupings referred to domains, areas, or autonomous systems. This allows different routers within the network to perform specific tasks, optimizing the functionality performed at those layers. Some routers in the hierarchical system can communicate with other routers in other domains or areas, while some routers can only communicate with routers in the same domain or area. This reduces the amount of information that routers in the domain or area must process, which allows for faster convergence within the network.
A flat routing system has no hierarchy. In such systems, routers must typically be connected to every other router in the network and each router essentially has the same function. Such algorithms work well in very small networks, however, they are no scalable. In addition to this, as the network grows, troubleshooting becomes much more difficult because instead of just focusing your efforts on certain areas, for example, you now have to look at the entire network.
The primary advantage afforded by hierarchical routing systems is their scalability. Hierarchical routing systems also allow for easier changes to the network, in much the same way afforded by the traditional hierarchical design comprised of the Core, Distribution, and Access layers. In addition to this, hierarchical algorithms can be used to reduce routing update traffic as well as routing table size in certain areas of the network while still allowing full network connectivity.