The OSI Model is Dead To Me
Hereafter I am turning my back on the OSI model. Yes, you heard me, it’s outdated crap. I was having a meaningful discussion with someone today about how you can route other things over other protocols (basically for tunneling purposes) and we got caught up on the semantics of the stupid layering of the OSI model. It’s completely outdated. As a recap, here’s how it reads:
1) Physical, 2) Data Link 3) Network 4) Transport 5) Session 6) Presentation 7) Application. Okay, pop quiz, can you tell me where HTTP lives? Now a reasonable human being understanding the semantics of the English language would say that HTTP lives on top of transport. It’s closer to telnet then it is SSL for instance, but noooo… no, my friend. Wrong. Because you are wrong and some guy in the 70’s who has no concept of how HTTP works wrote a model and now you must understand and adhere to it. It is in fact layer 7. Application. Because HTTP is an application…. or something.
Let’s look at some of the other madness. We have network and transport that are… uhm… both packets. We have SSL sitting in the session category, because… it can maintain state and TCP can’t… or something… And again, HTTP can’t either. So… this leaves nothing for actual presentation. If HTTP is to presentation as HTML is to _____ That’s right… HTML and Java and Flash and ActiveX and AJAX and all these wonderful things we’ve since come up with have no place in the OSI model. And if you tell me they are HTTP I’m going to punch you in the face. The data: directive is exactly why it isn’t HTTP. It is in fact not HTTP, it is in fact it’s own directive. And where does our friend FTP live? You guessed it… it’s presentation too. Why didn’t I notice this before? It’s not like I haven’t had to spend hours looking at it… odd.
Why is HTTP presentation layer but telnet isn’t? They are closer together than SSL is. Okay, this OSI business has got me all worked up, I’m going to stop blathering on about it. Just in case you’re wondering where we go from here id made a good suggestion that we move to the internet protocol suite which correctly bundles HTTP, telnet and SSL all together as they rightfully should be. OSI is nonsense I tell you.



December 19th, 2006 at 9:26 pm
I don’t think the OSI model is meant to be taken to the letter. As such, its point isn’t to provide a way to classify this or that protocol or application in one of its layer. One thing the OSI model gave us and which is still very much applicable today is that a layer N only needs to know how to interface with layers N-1 and N+1. For instance, a J2EE or .NET coder should not worry whether his application rides on top of ATM or GigabitEthernet. Likewise, the IP stack needn’t know anything about the framework used by the app developer.
December 19th, 2006 at 10:08 pm
I wish I could agree with that statement, but if you’re trying to tell me that HTTP (layer 7) doesn’t need to know the IP address of the user (layer 3), I think you probably haven’t spent enough time writing web applications. Not to mention things like PoF make both TCP and IP and other network device and routing information available to web applications. OSI was a great idea, it’s just so amazingly out of date it’s not practical anymore.
December 20th, 2006 at 5:34 am
people that take the OSI model literally are the same as the people who take the Bible literally.
tell me something I didn’t learn 10 years ago when OSI had already been dead for 10 years!
December 20th, 2006 at 6:38 am
Old Systems Interconnection…is taken very seriously just ask CISCO!
December 20th, 2006 at 9:54 am
dre, I think you proved my point. If you can’t take a technical specification literally it’s time to find a new technical specification.
Who needs a technical specification that’s only sorta right when you think about what the internet looked like 20 years ago? Hell, if you think about what the internet looked like 5 years ago you are wildly behind the times.
December 20th, 2006 at 11:48 am
HTTP doesn’t strictly fit into one of the OSI model layers - the protocol itself and its applications appeared well after the conception of the OSI model. You are correct, I haven’t spent much time writing web apps but (correct me if I am wrong) AFAIK an HTTP application shouldn’t make direct socket() calls for instance - it will get the IP of the client and other parameters through data formatted by the web server (which would more or less fit at the session and presentation layers).
IMHO the OSI model is a decent model for its educational value in a CS/networking class - but that’s pretty much it.
December 20th, 2006 at 9:30 pm
IP was not designed by people who used the OSI model. Therefore nothing fits into that model. If you used a network that system designed for the OSI model everything would make sense. Unfortunately the only networks systems that use OSI are so complex nobody can understand then, thus while they can almost implement them, they have no prayer of actually debugging them.
Pity, the OSI model is so simple to explain. It just isn’t what we have in the real world.
December 21st, 2006 at 12:09 pm
Henry Miller : to me, every network stack fits into the OSI model as it was originally meant to be. But TCP/IP is broken (by design but it works very well in the real world) and protocols have to span over OSI layers.
It seems to me you are mixing TCP/IP model and OSI model RSnake.
Can you tell me where in the HTTP protocol (RFC 2616) it is said you need to care about layer 3 (routing/addressing) ? If you do so, perhaps you are writing an application that serve HTTP which handles content (HTML, Java and so on…) . And there you are, content has *nothing* to do with a networking stack (which OSI is used to describe).
Regards,
Denis