A protocol suite that implements the Internet architecture and draws its origins from the ARPANET Reference Model (ARM)
It serves as a basis to the creation of the Internet
It is connection-oriented and connectionless
The primary goal of the Internet architecture is that it should be able to interconnect multiple distinct networks and that multiple activities should be able to run simultaneously on the resulting inter connected network.
Initial concept was based largely on the telephone network where a call was established by a connection from one telephone and another. This was called circuit switching.
Packet switching was developed in the 1960’s. Packets are carried though the network somewhat independently. Packets coming from different sources or senders can be mixed together and pulled apart later, which is called multiplexing.
Packets are stored in buffer memory and processed in first-in first-out (FIFO) method.
It has 3 different multiplexing methods:
- Statistical multiplexing
- Time-division multiplexing (TDM)
- Static multiplexing
It is categorized as connection-oriented network. Examples are X.25 and Frame Relay
In the late 1960’s, datagram was developed. It is a special type of packet in which all the identifying information of the source and final destination resides inside the packet itself. Thus, connectionless network could be built.
End to End Argument and Fate Sharing
End-to-End argument – It states that important functions (i.e. error control, encryption) should usually not be implemented at low levels but on the end host.
Fate sharing – Placing all the necessary state to maintain an active communication association at the same location with the communicating endpoints.
Error Control and Flow Control
Circuit-switched or virtual circuit switched networks constitute some overhead when dealing with errors (i.e. connection establishment) as an alternative best-effort delivery was adopted by Frame Relay and the Internet protocol. It does not expend much effort to ensure data is delivered without error. It uses check sums to detect errors.