All networks within an internetwork must be connected to a router, and wherever a router has an interface
on a network that interface must have an address on the network. This address is the originating point for
reachability information.
Figure 4.1 shows a simple three-router internetwork. Router A knows about networks 192.168.1.0,
192.168.2.0, and 192.168.3.0 because it has interfaces on those networks with corresponding addresses
and appropriate address masks. Likewise, router B knows about 192.168.3.0, 192.168.4.0, 192.168.5.0,
and 192.186.6.0; router C knows about 192.168.6.0, 192.168.7.0, and 198.168.1.0. Each interface
implements the data link and physical protocols of the network to which it is attached, so the router also
knows the state of the network (up or down).
At first glance, the information-sharing procedure seems simple. Look at router A:
1. Router A examines its IP addresses and associated masks and deduces that it is attached to
networks 192.168.1.0, 192.186.2.0, and 192.168.3.0.
2. Router A enters these networks into its route table, along with some sort of flag indicating that the
networks are directly connected.
3. Router A places the information into a packet: "My directly connected networks are 192.168.1.0,
192.186.2.0, and 192.168.3.0."
4. Router A transmits copies of these route information packets, or routing updates, to routers B and
C.
5. Routers B and C, having performed the same steps, have sent updates with their directly
connected networks to A. Router A enters the received information into its route table, along with
the source address of the router that sent the update packet. Router A now knows about all the
networks, and it knows the addresses of the routers to which they are attached.
This procedure does seem quite simple. So why are routing protocols so much more complicated than
this? Look again at Figure 4.1.
What should router A do with the updates from B and C after it has recorded the information in
the route table? Should it, for instance, pass B's routing information packet to C and pass C's
packet to B?
If router A does not forward the updates, information sharing may not be complete. For instance,
if the link between B and C does not exist, those two routers would not know about each other's
networks. Router A must forward the update information, but this step opens a whole new set of
problems.
If router A hears about network 192.168.4.0 from both router B and router C, which router should
be used to reach that network? Are they both valid? Which one is the best path?
What mechanism will be used to ensure that all routers receive all routing information while
preventing update packets from circulating endlessly through the internetwork?
The routers share certain directly connected networks (192.168.1.0, 192.168.3.0, and
192.168.6.0). Should the routers still advertise these networks?
These questions are almost as simplistic as the preceding preliminary explanation of routing protocols,
but they should give you a feel for some of the issues that contribute to the complexity of the protocols.
Each routing protocol addresses these questions one way or another, as will become clear in following
sections and chapters.