I had always looked to the OSI model as a _frame_ thought which a communition channel can be analysed. If I intercept my internet cable, I assume I can idealy measure the signal and fit it on the 7 layers of the OSI model. I fail (honestly) to see how that is a failure, as seems to be the starting point. Isn't the OSI model _one_ way to look at a medium?
That was not the original intention. That is the story that for some reason network professors continue to tell themselves as a reason to teach this model. The original intent was for there to be 7 clear layers, with various protocols for each.
Why the profs stick so close to this instead of teaching a more realistic model is beyond me. Why use an inaccurate theoretical model when you could use an accurate one instead? It's going to be simplified relative to reality either way, as befits a model, but it might as well be a correct simplification. I mean, it's not like the OSI 7-layer model is a mathematical truth or anything... it's just an artifact produced by a committee a long time ago.
To anyone leaping up to defend it, let me set the frame I'll be judging the defenses by in advance: If the real world was as it is today except there was no such thing as the OSI model, and someone proposed the 7-layer model today as a model for understanding the network for the very first time, would you really consider your defense as a reason to go with it, even despite the fact the model is actively inaccurate? I don't think inertia is an adequate defense to stick with something, when we aren't even using it anyhow... what real inertia does it have?
Why do you say the OSI model is unrealistic? Writing the simplest Hello World web service call takes advantage of the OSI model, even though you might not notice it unless you also write network drivers and manufacture network cards. In fact, I've worked at companies where it would be accidentally accurate if you simply labelled the dev teams with the layer of the OSI model their work corresponds with. You practically can't read a network sniffer trace unless you understand the OSI reference model.
The layers do not reflect reality. The higher up you go, the less obvious the mapping to the things that really exist gets, and the mapping is getting fuzzier over time (or, phrased another way, the OSI model is not only unrealistic, but increasingly unrealistic).
This is as opposed to possible meanings of the phrase, like "impractical". It is probably theoretically possible to write something that really would have seven clear layers, though I have to hedge; a lot of really high-performance stuff is even fuzzier than the consumer stuff. The recent trend towards userland-level networking at the highest performance end pretty much collapses layer 3 and above into one application. But it would at least ship bytes from here to there, it's certainly not an impossible design. It just isn't the real one. (And I'd have grave concerns about its performance at the top end.)
I have to admit this is another trend in programming that I just Do Not Get. This bizarre insistence on taking some inappropriate model, then with malice aforethought deliberately squinting at things that manifestly do not fit into the model until your vision is so fuzzy that they do seem to fit together, then yelling at anyone who dares point out you've damn near closed your eyes and probably aren't seeing clearly. See also every web framework's desperate need to insist that they are MVC, even as the lines that must be drawn between the various components to show where the M, V, and C are wildly and drunkenly veer hither and yon in a terrifically convoluted manner, criss-crossing dozens of components, instead of simply explaining what they actually are. I just don't get it. Models aren't blueprints, let alone the very definition of virtue. If they don't work, dispose of them.
> You practically can't read a network sniffer trace unless you understand the OSI reference model
I read these all the time. I can't remember the last time I needed to know what the OSI layers were called; they're utterly irrelevant to networking as near as I can tell.
You don't need the OSI model to understand layers of abstraction. Since the OSI model doesn't fit the observed layers very well, it seems pretty useless from that perspective.