|Previous ||Table of Contents ||Next |
Understanding & Selecting Network Protocols
This chapter helps you understand the basic types of protocols and uses that information to build a deeper understanding of how to implement them in your network. The main objectives in this chapter are to understand the difference between distance vector and link state protocols and to provide you with information that will assist you in selecting the correct routing protocol for your network. This chapter covers the following important objectives:
- Routing protocols. Fundamental portions of understanding routing protocols are discussed. All types of routing table associations are provided and discussed, as well how a protocol algorithm is designed and what determines proper operation.
- Distance vector protocols. What distance vector protocols are and how they operate are discussed. This information is provided in theory and then again through a practical discussion of a distance vector protocol, such as RIP.
- Link state protocols. The fundamentals of link state protocols are extensively discussed. A practical example is provided through the discussion of Intermediate System-Intermediate System (IS-IS), one of the more intriguing link state protocols.
- Selecting a network protocol. One of the most practical objectives required by all network designers is the ability to understand the importance of how to select a network protocol. This information is presented, comparing and contrasting three different routing protocols using real-world concerns.
Routing network traffic through the use of routing protocols within any network involves two basic activities: determining optimal routing paths and transporting data packets through your network
In this chapter, the transportation of data packets will be referred to as switching. Switching is relatively straightforward. Routing path determination, on the other hand, can be very complex.
Routing path determination may be based on a variety of metrics or a combination of different metrics. Software implementations of routing algorithms calculate route metrics to determine the optimal routes to a destination.
To aid in the process of path determination, routing algorithms initialize and maintain routing tables, which contain route information. Route information varies, depending on the routing algorithm used. There are three primary ways of building these routing tables, which are referred to as associations: destination/next hop associations, destination/metric associations, and destination/path associations.
Destination/Next Hop Associations
Some routing algorithms fill routing tables with destination/next hop associations. These associations tell a router that a particular destination can be gained optimally by sending the packet to the node identified in next hop. For example, Router A knows that to get to Router C, the destination, the next hop is through Router B.
Other algorithms provide destination/metric associations. These associations tell a router that a particular destination is some metric (sometimes referred to as distance) away. The router compares metrics to determine optimal routes. Metrics differ depending on the design of the routing algorithm that is being used. The routing algorithm being used is a function of the routing protocol. For example, Router A knows that to get to Router C, the destination, the next hop is through Router B. However, the route is down, which results in an infinite metric, so the next optimal route is through the ISDN backup. This backup obviously has a lower cost than infinity, so routing is preserved.
Still other routing algorithms provide destination/path associations. These associations relate destinations to the path to be taken to reach a certain destination. Routers simply forward packets along this path until they reach the appropriate destination.
Routers communicate with one another (and maintain their routing tables) through the transmission of a variety of messages. The routing update message is one such message. Routing updates generally consist of all or a portion of a routing table. Routing updates are the means by which routers communicate path information between each another. By using this path information from other routers, routers can determine optimal routes to various network destinations. Routing updates may be sent on a regular basis, when a network topology change affects route paths, or in both cases.
Switching algorithms are relatively simple, and they are basically the same for many routing protocols. In most cases, switching algorithms operate as follows. A host determines that it must send a packet to another host. Having acquired a routers address, the source host sends a packet addressed specifically to a routers physical (MAC layer) addressbut with the protocol (network layer/IP address) address of the destination hostvia the default gateway.
Upon examining the packets destination protocol (network layer/IP address) address, the router determines that it either knows or does not know how to forward the packet to the next hop or link to reach the required destination. When the router does not know where to forward the packet, the packet is dropped. When the router knows what the next hop is to the destination, it sends the packet to that hop. This is accomplished by changing the destination physical address (MAC layer) to that of the next hop and transmitting the packet out the appropriate interface.
The next hop might or might not be the destination host address. If its not, the next hop is usually to another router, which executes the same switching decision process as previously described. As the packet moves through the network, its physical address changes, but its destination protocol address (IP address) remains constant.
Routing Algorithm Design Goals
Routing protocols are written and proposed in draft Request for Comments (RFCs). The person (or persons) writing them typically tries to maintain a clear set of goals for the new or updated protocol. Routing algorithms often have one or more of the following design goals:
- Simplicity/low CPU and memory overhead
- Rapid convergence
|Previous ||Table of Contents ||Next |