Main differences between the ISO/OSI model and TCP/IP
The similarities between the various protocols are based on the assumption that they are both based on the concept of a stack of independent protocols and that they have similar functionality in both for the various levels. On the contrary, the differences concern the fact that the OSI model was born as a reference model (very useful for general discussions), the protocols only come later; TCP/IP instead is born with protocols, the reference model comes afterwards. The fact that the OSI model was born before the related protocols had on one hand benefits and on the other negative consequences: the model was, and still is, very general (point in favor); there was insufficient experience in designing the levels (minus point). For example: the data-link level (originally designed for point-to-point lines) had to be split to manage broadcast networks; and finally the idea of internetworking was completely lacking: one thought of a separate network, managed by the state, for each nation. The protocols of the TCP/IP architecture are instead the starting point of the project, so the architecture is very efficient (point in favor); the reference model is not general, as it only describes this particular architecture (minus point) and it is difficult to replace the protocols if necessary (minus point).
Comparison of ISO/OSI and TCP/IP protocol stacks
The OSI protocols failed to establish themselves on the market for a number of reasons: Inappropriate time choice: the definition of the protocols arrived too late, that is when the TCP/IP ones had already been considerably diffused; companies didn’t feel like investing resources in the development of a further network architecture; the unhappiness of technological choices: the seven levels (and the related protocols) were actually dictated by the IBM SNA architecture, rather than by design considerations; great complexity and consequent implementation difficulties; session and presentation levels are useless; the not optimal attribution of functions to the various levels: some functions appear in many levels eg. error and flow control in all levels and other functions are completely missing eg. network security and management; the unfortunate implementation: the first realizations were slow and inefficient, while at the same time TCP/IP was very well implemented (and moreover free!). Indeed, the protocols of the TCP/IP architecture have instead been implemented efficiently from the beginning, so they have become more and more successful, and therefore have enjoyed a growing support that has made them even better. However, even the TCP/IP architecture is not without problems, in fact: the TCP/IP architecture has no utility as a model (it serves no other purpose than to describe itself); there is no clear distinction between protocols, services and interfaces, which makes the evolution of architecture more difficult; some design choices are beginning to weigh today (eg, IP addresses just 16 bits). In conclusion: the OSI model is excellent as a “model”, while its protocols have had little success; TCP/IP is excellent (for now and still believed for many years with the introduction of IPv6) as a network architecture, but useless as a model.