IP Forwarding and Routing Protocols Part 1
IP Forwarding on a shoestring Part 1!
The INTERNET is a packet-switching network that enables its attached devices for example your personal computer ( PC ) to exchange information with other devices. The information exchange could take many different forms and from a user level it could be checking your bank balance with Internet banking, buying a book on an amazon website, watching a movie online or downloading your favorite song. Hypertext Transfer Protocol ( HTTP ) makes up the majority of Internet traffic and is the protocol behind the World Wide Web ( WWW ). HTTP which relies on Transmission Control Protocol ( TCP ) as the transport protocol and has become so prevalent as a web communication protocol that most software vendors are developing their applications to specifically utilize web technology, meaning the end-user can use their local web browser on their personal computers to access a variety of resources including various text, images, video streaming and file transfers. In order for these upper layer protocols ( HTTP ) to work efficient and offer an acceptable user experience, elements lower down in the Open Systems Interconnection ( OSI ) communication module need to be fine tuned and operational for data transfers.
The TCP/IP protocol suite supports two transport protocols ( Layer 4 ) : Transmission Control Protocol (TCP ) and User Datagram Protocol ( UDP ). TCP provides a host-to-host communication service in a reliable fashion while UDP provide host-to-host communication in an unreliable fashion. TCP offers a number of services better suited for applications that require certain service guarantee and need error correction and detection. UDP on the other hand offers fewer services and is useful for situations where packet loss is less sensitive but time delays are more problematic. UDP transport would be suited for online gaming while TCP would be suited for web browsing. This information is traversed across the INTERNET backbone via the Network ( Layer 3 ) and Data Link layer ( Layer 2 ) it is encoded in long strings of bits called packets. Packets describe a chunk of data going from the IP ( Internet Protocol ) layer to the network interface ( Data Link Layer ). A packet is not exactly the same as a datagram and can be either an IP datagram or a fragment of an IP datagram. Note: The terminology “packet” refers to the Ethernet payload which consists of the IP header and the user data. The terminology frame refers to the data link headers and the payload. As this packets travel through the INTERNET from their source ( your personal computer ) to their destination ( Amazon website ), certain decisions are made by each device the packet traverses. These decisions are known as routing decisions and they determine if the packet should go this way or that way. The devices making these decision are called routers.
These devices have a table known as a routing tables which tells them how and where to forward the packets. The routing table is populated by either a dynamic process or a static process by what is known as a routing protocol. A static routing protocol is specific to that device, manually configured and is not automatically populated to other routers. A dynamic process runs distributed algorithms that the routers run among themselves in order to make the correct routing decision. An example of a dynamic routing protocol is OSPF and a static routing protocol would be a static route. A router’s routing protocol may take the form of Distance Vector Algorithms or Link-State Algorithms. Distance Vector Algorithms are simpler in their approach and usually try to find paths with a simple metric, such as the number of router hops ( devices ) to the destination. A router runs its algorithm and determines the best path to a particular destination, the router then notifies all of its neighboring routers of its current path; concurrently the router’s neighbors are also notifying the router of their best paths. It may be the case that the router after seeing all the other best paths from its neighboring devices notices that there is a better path through one of its neighbors. If so, the router updates its routing table with the better paths. In comparison to a Distance Vector Algorithm ( distributed calculation ), a link state algorithm employ a replicated database approach. Each router contributes to pieces of the database, essentially every device adds a piece in order to create a full map of the network. Instead of advertising a list of distances to each known destination, the router advertises the states of its local links ( interfaces ). These link state advertisements are then advertised to the other routers , together all these messages combine to complete a full database of the network which is synchronized between each router through regular intervals. Essentially, link state protocols must flood information about the topology to every device in the network, the distance ( path ) vector protocols must process the topology change information at every hop through the network.
Routing protocols continually reevaluate its contents and the process of finding new information after there has been a change in the network is called convergence. A network that is deemed to be high available means not only having a redundant physical topology but also having fast convergence so that service degradation or interruption is avoided. Convergence should be design efficiently at a layer 2 and Layer 3 level. Fast convergence of Layer 2 environments are designed with enhancements to the Spanning Tree protocol ( STP ), notably PVST+. In L3 environments we prefer routing protocols that can find new information ( next hops ) quickly, that is, protocols having a short convergence. You might conclude from the descriptions of both link state and distance Vector protocol that link state algorithms will always converge more quickly than distance or path vector protocols. This isn’t the case and both converge extremely quickly if the underlying network has been designed and optimized for their operation.