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:
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.
Application Application Program Program \ / Internet Module Internet Module Internet Module \ / \ / LNI-1 LNI-1 LNI-2 LNI-2 \ / \ / Local Network 1 Local Network 2 Transmission Path Figure 2