3.5 Route Calculation
3.5.2 The initiation of routing updates
Routing protocols can instruct a router to update neighbors after a specific amount of time has passed, after a certain event has occurred, or both. Time-driven routing protocols wait for the update timer to expire and then send an update. For example, RIP sends a complete update every 30 seconds by default even if its routing table is unchanged since the last update. By contrast, protocols that are event-driven do not require the router to update neighbors until the router detects a change in the network topology. Link-state protocols (and EIGRP) send a partial update that concerns only the changed information. Other protocols may send their entire table when triggered by an event.

As you might expect, routing protocols that are exclusively time-driven react poorly to topology changes. If a router detects a change but has to wait 30 seconds before alerting neighbors, routing in that network could break down. It could take several minutes before such a network's routers converge. In the meantime, routers unaware of the change may send packets the wrong way, leading to routing loops or loss of connectivity.

On the other hand, routing protocols that are exclusively event-driven theoretically could go months without sending updates. If there is no other mechanism to ensure that routers regularly communicate (such as a Hello protocol), routers could base their routing decisions on dangerously outdated information.

For these reasons, most routing protocols use a combination of time-driven and event-driven updates. RIP is time-driven, but Cisco's implementation of RIP sends triggered updates whenever a change is detected. Likewise, topology changes trigger immediate updates in IGRP routers, regardless of the update timer. Without triggered updates, RIP and IGRP would perform miserably.

Protocols that are primarily event-driven typically use timers as well. For instance, OSPF routers typically assign a MaxAge to routing information. Once information has reached its MaxAge, it can no longer be used in the routing table, and a new update must be requested.