Node to Node delivery (also called point to point delivery):
It means that the data (frame will be the exact name) is delivered from one node to other. The important thing to note is:
- Node can be any device eg- computers or routers.
- This delivery is ONE HOP AWAY - this means that the two nodes are adjacent. There is a link between them.
Host to Host delivery:
It means that the data (packet will be the exact name) is delivered from one host to another host.
- Hosts can only be computers (not routers).
- This delivery is SEVERAL HOPS AWAY - this means the two computers may/may not be directly connected.
The important point is to realize that Host to Host delivery works by using Node to Node delivery.
When Host S wants to send data to Host D, it performs a node to node delivery of the data to the next router in the path to D. That router performs a node to node delivery of data to the next router in the path to D. This goes on until the data reaches the Host D.
The Data link layer DLL is responsible for all node to node deliveries.
The network layer is responsible for the Host to Host delivery.
Now the process to process (also called end to end):
You see the data that S wants to send to D was actually generated by some Application running on S. So this data that is sent to D should be received by the appropriate application on D.
Eg: when using mail app you send a mail to your friend, then that friend can check the mail using the mail app. So the data you sent (mail) is associated with the mail app.
So, actually the data sent from S to D has to be sent from Application on S to Application on D. This is called process to process (or end to end or app to app) delivery.
Once the data reaches D, it is given to the right process. This is taken care by Transport Layer.