Posts

Showing posts from August, 2022

What Does an OSI Layer Even Mean?

I had a tough time wrapping my head around the OSI network model. In my experience, the layers are always presented just as layers, without any explanation of what a layer actually represents or what it means for one layer to sit on top of another, or even what is being "modeled" by this model. Instead, people just say "Layer 4 includes things like TCP and UDP, it worries about letting processes talk, it introduces ports, yada yada yada." Eventually I figured it out, and in this post I want to lay out what I think is a useful perspective: a layer is a level of abstraction that solves a specific problem. (Note: I'll be talking about the five-layer OSI model, as opposed to the more detailed seven-layer model. While the specific layers are different, the ideas are the same.) What is a Layer? Consider two computers communicating through a network. Maybe they're sending text messages, or video chatting, or requesting and producing webpages. There is a deep stack