Whether we have the funeral in New Orleans style (with a lot of brass and, well, other stuff), or in the more somber style we’re all so accustomed to– or even perhaps dance down the road singing, “ding dong, the model’s dead” — it’s time to pack the seven layer model into a virtual coffin and bury it. It’s done. It’s kaput. It’s just not really all that useful any longer. Let’s go through a bit of history, and then duly and respectfully bury it.
The seven layer model was originally designed by a team of researchers, led by Charles Bachman, in the 1970’s, while working on a distributed database system. The original idea was to divide the problem set involved in transporting database records across an ARPANET like network. The ISO happened to be working on a suite of protocols that would solve the same set of problems (TCP/IP was considered a little “researchy” and “ad hoc” at the time, as I recall). In the initial meetings within the ISO, Bachman’s team presented the seven layer model they had developed; the model was quickly adopted and standardized as part of ISO 7498, and the OSI network protocol suite was designed based on this model.
This bit of history should resolve one question network engineers ask all the time: why doesn’t the seven layer model match the TCP/IP suite of protocols? The simple answer is: TCP/IP was designed around a four layer model (the DoD model), rather than the world famous seven layer model. The seven layer model was not designed to be the end-all model for network operations. Seven was not a magical number. The model was designed to allow adding more layers as needed, over time. Why haven’t we added more? More on that in a moment.
Given the wide use of this model, why is it dead?
Let me turn the question around: when was the last time you actually appealed to the seven layer model when troubleshooting a real network problem? What about the last time you used the model in actually explaining how a real network protocol works? Does MPLS fit into the model? What about software defined networks? How does the seven layer model hold up when you consider our penchant of driving everything through a single port in order to get around middle boxes? How many of these layers does a router or switch actually touch? Hmmm…
So what was the model originally designed for? To aid in the development of network protocols. By dividing the problem of transporting data up into specific types of services operating in specific places in the network, the seven layer model helps us form a mental model of the interaction points, of Application Programming Interfaces (APIs), and the jobs of each protocol within a stack, that make a network actually work. By standing in this spot, the seven layer model might actually be useful if you code network stacks on a host device. For a router or switch person, someone who focuses on the stuff that forwards packets in the real world, the value doesn’t seem to be there.
the seven layer still has it’s uses — it’s just to say that it’s time for us network engineers, the folks who focus on the actual routers and switches, to stop focusing on a model that only barely speaks to the protocols and technologies we work with on a daily basis. It’s time to think more deeply about the stack, and the interaction plane between network protocols, than in terms of nice, clean, neatly defined APIs.
What should we replace the venerable seven layer model with? More on that in a future post.