Internet routing

We exposed in the previous lesson the different coexisting/complementary ways of addressing a host over the Internet network. In this lesson, we will see how this addresses are exploited to transmit data between a couple of distant hosts.

Addresses usage

There is three kind of addresses: physical (MAC), logical (IP) and human-friendly (DNS). To exchange data packets, the two firsts are mandatory. The third one is only a way to help users' memory. Physical addresses are used only at both end networks. Between them, IP addresses are used by intermediary nodes (routers) to transmit correctly data. This process is called routing.

Routing principles

Internet routing can be defined as the determination of the best next hop (router belonging to the same network) to forward data optimally to its destination. To achieve that, all Internet routing protocols use routing tables, containing entries giving the best next hop for different IP addresses. When receiving a packet, the router extracts the destination IP address, look for it in its table and forward the packet to the corresponding hop. If the destination is not in the table, the packet is sent to a default hop, called the default gateway. The main objective of routing protocols is to maintain these tables up to date.

But routing is not as simple as that. Internet is a very huge network, covering all the world. It is managed by a plethora of different authorities, with diverging policies sometimes. For this reason, Internet has been split in Autonomous Systems (AS), corresponding to connected networks belonging to the same administrative authority. Consequently, routing has been also split in two categories: internal routing (inside AS) and external routing (between AS).