Remember that
IP's primary task is the delivery of data packets
from one location to another.
The model of operation for transmitting a datagram from one
application program to another is illustrated by the following
scenario:
We suppose that this transmission will involve one intermediate
gateway.
The sending application program prepares its data and calls on its
local internet module to send that data as a datagram and passes the
destination address and other parameters as arguments of the call.
The internet module prepares a datagram header and attaches the data
to it. The internet module determines a local network address for
this internet address, in this case it is the address of a gateway.
It sends this datagram and the local network address to the local
network interface.
The local network interface creates a local network header, and
attaches the datagram to it, then sends the result via the local
network.
The datagram arrives at a gateway host wrapped in the local network
header, the local network interface strips off this header, and
turns the datagram over to the internet module. The internet module
determines from the internet address that the datagram is to be
forwarded to another host in a second network. The internet module
determines a local net address for the destination host. It calls
on the local network interface for that network to send the
datagram.
This local network interface creates a local network header and
attaches the datagram sending the result to the destination host.
At this destination host the datagram is stripped of the local net
header by the local network interface and handed to the internet
module.
The internet module determines that the datagram is for an
application program in this host. It passes the data to the
application program in response to a system call, passing the source
address and other parameters as results of the call.