A. When host a wants to send to host b, if they are on
the same local network then the IP protocol resolves the IP address to a
physical address using ARP (Address Resolution Protocol), and the physical
address (e.g. 00-05-f3-43-d3-3e) of the source and destination hosts are
added to the IP datagram to form a frame, and using the frame, the two
hosts can communicate directly with each other.
If the 2 hosts are not on the same local network, then they cannot
communicate directly with each other, and instead have to go through a
router. You have probably already come across a router
when you install TCP/IP, as the default gateway is just a router that you
have chosen to use as a means of communicating with hosts outside your
local network if no specific route is known. A router can be a Windows NT
computer with 2 or more network cards (one card for connection to each
separate local network) or it can be a physical hardware device, such as
Cisco routers.
Assuming our two hosts are not on the same local network, host A will
check its routing table for a router that connects to the local network of
host B. If it does not find a match then the data packets will be send to
the "default gateway". In most cases, there will not be one
router that connects straight to the intended recipient, rather the router
will know of another route to pass on your packet, which will then goto
another router etc.
For example:
Host A - 200.200.200.5
Host B - 200.200.199.6
Subnet Mask - 255.255.255.0
Router - 200.200.200.2 and 200.200.199.2
Host A's routing table - Network 200.200.199.0 use router 200.200.200.2
In this example, Host A would deduce that Host B is on a separate
network, as its Network ID is 200.200.199. Host A would then check its
routing table and see that it knows for network 200.200.199 (the zero
means all) it should send to 200.200.200.2. The router would receive the
packets and then forward them to network 200.200.199.
What actually happens is each router will have its own routing table
that will point to other routes.
To actually configure a route, you use the route
command, for example to configure a root for network 200.200.199 to use
router 200.200.200.2 you would type
route -p add 200.200.199.0 mask 255.255.255.0 200.200.200.2
The -p makes the addition permanent, otherwise it will be lost with a
reboot.
To view your existing information type route print.