Before looking at the elements of TCP/IP, it is best to begin with a brief review of the responsibilities of a protocol system.
A protocol system such as TCP/IP must be responsible for the following tasks:
Dividing messages into manageable chunks of data that will pass efficiently through the transmission medium.
Interfacing with the network adapter hardware.
Addressing: The sending computer must be capable of targeting data to a receiving computer. The receiving computer must be capable of recognizing a message that it is supposed to receive.
Routing data to the subnet of the destination computer, even if the source subnet and the destination subnet are dissimilar physical networks.
Performing error control, flow control, ...