如何假装成很懂互联网的样子,TCP/IP的故事
TCP/IP的设计堪称完美。三十年来底层的带宽、延时、还有介质都发生了翻天覆地的变化,顶层也多了很多应用,但TCP/IP却安如泰山。它不但战胜了国际标准化组织的OSI 七层模型,而且目前还看不到被其他方案取代的可能。第一代从事TCP/IP工作的工程师,到了退休年龄也在做着朝阳产业。
按理说OSI是权威组织,七层模型应该是科学的。为什么反而会不受欢迎呢?普度大学的特聘教授Douglas Comer在他的文章里这样说过:
“(研究人员)最近有了一些惊人的发现:我们都知道这个七层模型是一个小组完成的,但我们不知道的是,这个小组深夜在酒吧里谈论美国的娱乐八卦。后来他们把迪斯尼电影里7个小矮人的名字写在餐巾纸上,有个人开玩笑说7对于网络分层是个好数字。第二天上午在标准化***会的会议上,他们传阅了那张餐巾纸,然后一致同意他们昨晚喝醉时的重大发现。那天结束时,他们又给七个层次重新起了听上去更科学的名字,于是模型就诞生了。
(下表是Douglas对这个小组的极尽嘲讽,我翻译不出其中的神韵,所以干脆贴出原文。)
Layer |
Dwarf |
Name |
Explanations |
1 |
Sleepy |
Physical |
The group new that physical connections are boring, and figured it might as well assign the physical layer to dwarf “Sleepy”. As it happens, a Layer 1 protocol specification does indeed put everyone to sleep (just try reading one late at night). |
2 |
Sneezy |
Link |
If you monitor a network and watch the pattern of packets emitted by a computer, you’ll immediately understand the relationship between link-layer protocols and “Sneezy”. |
3 |
Happy |
Network |
Everyone’s happy with the network layer. Well… to be honest, the only network layer protocol that makes everyone’s happy is the Internet Protocol. Unfortunately, the Internet protocol isn’t part of OSI, and wasn’t really built to follow the OSI model (the model didn’t include internetworking). But, the designers had good intentions. |
4 |
Doc |
Transport |
This one’s obvious — it definitely takes a Ph.D. to understand the subtleties of a transport layer protocol. |
5 |
Dopey |
Session |
Yep, even the designers realized that having a separate session layer is a dopey idea. They decided to follow Disney’s approach of adding comic relief, so they stuck in a completely unnecessary layer and laughed about it. |
6 |
Bashful |
Presentation |
Another little joke. The designers realized that sooner or later someone would create a presentation layer protocol. However, the group decided to classify such protocols as too “bashful” to appear in public. So, even if a presentation protocol is produced, no one gets to see it. |
7 |
Grumpy |
Application |
Programmers who design network applications are incredibly grumpy — they complain about the efficiency of other layers, the fundamental abstractions of the network, the long hours, the difficulty of debugging, and the API they are forced to use. And users add to the grumpiness because users never complain about protocols at other layers; they only complain about applications. |
这个故事告诉我们:如果你是标准***会中的工程师,不要和同事喝酒——深夜在酒吧里开的一个拙劣玩笑,却可能成为业界几十年挥之不去的噩梦。”
Douglas是网络界德高望重的前辈。他回到普度大学之前曾是Cisco的Vice President of Research,同时更是久负盛名的技术作家,所以我愿意相信他的说法。而业界普遍对待OSI模型的抵触态度,更是一个有力的佐证。幸好到了今天,OSI模型已经名存实亡了,它对人类的影响只停留在还没来得及更新的教科书上。