Routing and Forwarding Processes
For a long time, the term routing has been used interchangeably with the term forwarding. However, it is common today to differentiate these two notions.
In this book, as well as in the industry, the term routing is used to describe the functionality performed by the control software of the routers. This includes routing table maintenance, processing of static routes, dynamic routing protocols, and so on. The term forwarding is used to refer to the process of moving transit packets from one interface to another. The forwarding process includes looking through the forwarding table, making the forwarding decision, and sending the packet out of an interface. It is essential to understand the difference between the two processes, and this book emphasizes this in several places. This chapter discusses the concepts of both routing and forwarding processes.
3.1 Packet-Switched Technologies
The two main types of packet-switched technologies used in networks today are virtual-circuit (VC) and datagram networks. The difference between the two is in the datadelivery mechanism used on the network layer. Both types belong to the packet-switching group of telecommunication technologies, so the intermediate network devices decide where to send the packets carrying user data. The criteria taken into consideration while making this decision, as well as the procedures performed by the hosts and intermediate devices, depend on the type of the network.
Networks that use the virtual-circuit strategy can be compared to common circuit-switching telephone networks. When users of a telephone network need to communicate informationa voice or fax messagethey explicitly establish a connection with the remote end by dialing a number. The network reacts by selecting and connecting the circuits, routing the call and allocating available resources for the connection. When the connection is established, it is used for the information transfer. When data is sent through the connection, the network does not perform any additional routing tasks for this connection, because the data flows along an already defined path.
Operation of VC-oriented packet-switching networks is similar. When one host needs to send some data to another, a connection through the network is opened before the transmission starts. In opening the connection, the source device specifies the called addresssimilar to dialing a telephone numberwhich is used by the network to route the call and to allocate bandwidth. When the network receives the call request, the network devices consult their routing tables to determine how the call-establishment request should be directed. The routing table is used only during the call setup. As the call traverses the network, the intermediate network devices create virtual circuits on the physical links and update their switching tables. The entries in the switching tables contain information about the virtual-circuit cross-connections. This information is used during data transfer. After the connection is established, the two hosts do not specify source or destination addresses in the data packets but rather include the identifier of the virtual circuit. This identifier is used to index within the switching table and to find the outbound interface and the new VC identifier. If either side decides to disconnect, it sends an explicit command to the network device it is connected to, which in turn requests other devices along the connection to release the resources.
Datagram networks operate on a different concept, which can be compared to that of the postal service. People sending letters to each other don't have to establish a connection beforehand. They simply provide proper address information and drop the letter at their local post office. The post office sends the letter to another post office closer to the destination. The letter traverses a set of post offices until it reaches the one local to the addressee.
In a datagram network, a host constructs a packet that includes the source and destination addresses. The packet is sent to the nearest network device, which in turn passes it to another device, closer to the destination. When it receives the packet, a network device performs a routing decision, also called a forwarding decision, based on the destination address of the packet and the contents of its routing table. The decision is made for every packet in every intermediate device.
This is the main difference between a datagram network and a virtual-circuit network. Devices in VC-oriented networks have to route only one packet per connection, the call setup; all other packets that belong to the same VC are switched using the switching table. Datagram network devices have to route every packet; each network device looks up its routing table and decides where to send the packet.
Both technologies have their pros and cons. For example, in virtual-circuit network devices, the code responsible for data transfer is very simple and efficient. Using only the switching table, it needs fewer CPU and RAM read cycles for data processing than do datagram network devices. At the same time, rerouting of already established connections, necessary in case of a topology change, can be a problem in virtual-circuit networks. Datagram networks adapt much faster, as every packet is routed at each hop. The adaptation, or convergence, time depends on how long it takes to propagate correct routing information. In most situations, it depends on the convergence time of the dynamic routing protocol used in the network. With modern protocols, such as OSPF and EIGRP, this time can be measured in seconds.