Network programming started in the early 1980s. I can still remember the excitement that I experienced when I first started to build programs that talked to and controlled other machines. When I wrote data to a socket and it appeared on a completely different machine, I felt that that was the epitome of programming bliss. At the outset, everything seemed to work. I could write to a socket on a PC and the data would appear on a Unix platform. Much of the success of sockets in the early days is due to the model that was applied to networking.
The official model of networking lists seven layers:
In practicality, however, this model has been ...