The IP Routing Process
Introduction
We are going to take a look at what happens when routing occurs on a
network. When I was new to the networking area, I thought that all you
needed was the IP Address of the machine you wanted to contact but so
little did I know. You actually need a bit more information than just
the IP Address !
The process we are going to explain is fairly simple and doesn't really
change, no matter how big your network is.
The Example:
In our example, we have 2 networks, Network A
and Network B. Both networks
are connected via a router (Router A)
which has 2 interfaces: E0
and E1.
These interfaces are just like the interface on your network card (RJ-45),
but built into the router.
Now, we are going to describe step by step what happens
when Host A
(Network A)
wants to communicate with Host
B (Network B)
which is on a different network.

1) Host A
opens a command prompt and enters >Ping
200.200.200.5.
2) IP works with the Address Resolution Protocol (ARP)
to determine which network this packet is destined for by looking at the
IP address and the subnet mask of the Host A.
Since this is a request for a remote host, which means it is not destined
to be sent to a host on the local network, the packet must be sent to
the router (the gateway for Network A) so
that it can be routed to the correct remote network (which is Network
B).
3) Now, for Host A to send the packet to
the router, it needs to know the hardware address of the router's interface
which is connected to its network (Network A),
in case you didn't realise, we are talking about the MAC (Media Access
Control) address of interface E0. To get
the hardware address, Host A looks in its
ARP cache - a memory location where these
MAC addresses are stored for a few seconds .

4) If it doesn't find it in there it means that either a
long time has passed since it last contacted the router or it simply hasn't
resolved the IP address of the router (192.168.0.1)
to a hardware address (MAC). So it then sends an ARP
broadcast. This broadcast contains the following "What
is the hardware (MAC) address for IP 192.168.0.1 ?
". The router identifies that IP address as its own and must
answer, so it sends back to Host A a reply,
giving it the MAC address of its E0 interface.
This is also one of the reasons why sometimes the first "ping"
will timeout. Because it takes some time for an ARP
to be sent and the requested machine to respond with its MAC address,
by the time all that happens, the TTL (Time To Live) of the first ping
packet has expired, so it times out !

5) The router responds with the hardware address of its
E0 interface, to which the 192.168.0.1
IP is bound. Host A now has everything it
needs in order to transmit a packet out on the local network to the router.
Now, the Network Layer hands down to the Datalink Layer the packet it
generated with the ping (ICMP echo request), along with the hardware address
of the router. This packet includes the source and destination IP address
as well as the ICMP echo request which was specified in the Network Layer.

6) The Datalink Layer of Host A creates
a frame, which encapsulates the packet with the information needed to
transmit on the local network. This includes the source and destination
hardware address (MAC) and the type field which specifies the Network
Layer protocol e.g IPv4 (that's the IP version we use), ARP. At the end
of the frame, in the FCS portion of the frame,
the Datalink Layer will stick a Cyclic Redundancy Check (CRC) to make
sure the receiving machine (the router) can figure out if the frame it
received has been corrupted. To learn more on how the frame is created,
visit the Data Encapsulation
- Decapsulation.
7) The Datalink Layer of Host A hands the
frame to the Physical layer which encodes the 1s and 0s into a digital
signal and transmits this out on the local physical network.
8)The signal is picked up by the router's E0
interface and reads the frame. It will first do a CRC check and compare
it with the CRC value Host A added to this frame, to make sure the frame
is not corrupt.
9)After that, the destination hardware address (MAC) of the received
frame is checked. Since this will be a match, the type field in the frame
will be checked to see what the router should do with the data packet.
IP is in the type field, and the router hands the packet to the IP protocol
running on the router. The frame is stripped and the original packet that
was generated by Host A is now in the router's
buffer.

10) IP looks at the packet's destination IP address to determine if the
packet is for the router. Since the destination IP address is 200.200.200.5,
the router determines from the routing table that 200.200.200.0 is a directly
connected network on interface E1.

11) The router places the packet in the buffer of interface
E1. The router needs to create a frame to
send the packet to the destination host. First, the router looks in the
ARP cache to determine whether the hardware
address has already been resolved from a prior communication. If it is
not in the ARP cache, the router sends an
ARP broadcast out E1
to find the hardware address of 200.200.200.5

12) Host B responds with the
hardware address of its network interface card with an ARP
reply. The router's E1 interface now has
everything it needs to send the packet to the final destination.

13)The frame generated from the router's E1
interface has the source hardware address of E1
interface and the hardware destination address of Host
B's network interface card. However, the most important thing here
is that even though the frame's source and destination hardware address
changed at every interface of the router it was sent to and from, the
IP source and destination addresses never changed. The packet was never
modified at all, only the frame changed.
14) Host B receives the frame and runs a
CRC. If that checks out, it discards the frame and hands the packet to
IP. IP will then check the destination IP address. Since the IP destination
address matches the IP configuration of Host B,
it looks in the protocol field of the packet to determine the purpose
of the packet.

15) Since the packet is an ICMP echo request, Host
B generates a new ICMP echo-reply
packet with a source IP address of Host B
and a destination IP address of Host A. The
process starts all over again, except that it goes in the opposite direction.
However, the hardware address of each device along the path is already
known, so each device only needs to look in its ARP
cache to determine the hardware (MAC) address
of each interface.
And that just about covers our routing analysis. If you found it confusing,
take a break and come back later on and give it another shot. Its really
simple once you grasp the concept of routing.
|