一文读懂OSI七层模型与TCP/IP四层的区别/联系_osi七层和tcp4层关系-CSDN博客传统意义上的OSI(Open Systems Interconnection Model)是一个标准化的计算机通讯架构设计。与一般的计算机工程实践不同,这个设计架构主要是以其概念设计而非工程落地的成果闻名,换言之即便当今世界上没有一台电脑使用OSI模型规定的网络协议,但是所有人学习计算机网络都是从OSI开始的。

既然是一个标准化协议,那么必然是解决非标准化的问题——在1970年代,以IBM、DEC为首的各家巨头为了抢占市场,各自发展出来互不兼容的计算机网络协议——如果你买了IBM的终端、打印机,那么你必须用上IBM全家桶,哪怕是IBM的网线都不能给DEC用。是故天下苦其久矣,CCITT(国际电报电话咨询委员会,现在的 ITU-T)为首的电信业和ISO组织开始为网络通讯协议标准化召开会议,并且经过了各方势力激烈的斗争,ISO组织最终在1984年发布了ISO7498标准,这也就是是为大众所熟知的ISO模型。

OSI的起源

在OSI模型的发展历程中,法国计算机科学家齐默尔曼(Hubert Zimmermann)起到了关键的作用——ISO/SC16主席 Charles Bachman曾经评价齐默尔曼:“他是该委员会中最重要的人之一,就其贡献而言,他可能是最重要的人。”齐默尔曼在1980年的论文《OSI Reference Model - The ISO Model of Architecture for Open Systems Interconnection》奠定了OSI的基础,其核心重点就是解耦和分层——应用层的开发者不必关系表示层如何转换,物理层的线路变化不会影响到传输层的问题,哪怕海底电缆断了网络也可以自己找到目的地。

在参与OSI模型制定之前,齐默尔曼作为路易·普赞的副手参与了CYCLADES网络的设计,这种设计挑战了传统上以X.25虚电路为主的可靠网络通讯方式。X.25在本质上和电话线很类似,早期的电话打出去先接到拨号员告知打去哪里,拨号员就把你的电话线接到某个端口,随着电话设备的发展,逐步出现了拨号机控等方法通过输入某些数字或者预备路由表来控制数据的传播方向,很多电话中心都会有老式的机械选线器根据拨号决定接通的端口——如果是一个很长的电话路线,中间就要经过很多的转接过程,这样传输的数据既不安全也不稳定,假设中间一个站点的线路断了长途通话就会掉线——因此为了确保长途通话的稳定性,电信公司就会逐个站点确认中继和信号传输的可靠性。

X.25的思路也是一样。它是OSI模型最底3层的雏形,代表了物理层、数据链路层和网络层的通讯方式。X.25规定物理层必须采用X.21标准(也是一种插口),而在数据链路层则会为数据添加校验的头尾,数据传输中的每一条都要计算校验码,如果在其中一条校验失败了,失败的节点会要求上一个节点自动重传。网络层则定义了虚电路、具体路由,实现了多路复用和流量控制—— 使用“滑动窗口”机制,为每一段路由的传播路径控制流量,如果接收方处理不过来,可以叫发送方慢点发。与X.25的严谨安全相比,CYCLADES则非常的不安全,他是今天的TCP/IP协议的前身之一,主张的是:<u>我们不要去管网络层以下的事情,我们只需要管端到端是否可以通,如果一次不通就多试几次,如果再不成功那么就是网络底层的问题而不是我们网络的问题。

技术路线和政治路线

如果我们从OSI模型的角度来看,X.25的路由设备功能是极其冗余的。为了链路的安全性,这些数据传输都有着类似于今天TCP握手的机制,在发送正常的数据包之外,还要在上下游设备之间发送一系列控制包,这些指令包括了Call Request、Call Accepted、Receive Ready、Receive Not Ready、Clear Request。相当于每个节点之间不仅要管路由怎么走,还要管理数据链路的重传以及流量控制,兼管了OSI下3层的所有事务,一个设备如果接入了网络就要有大量精力和资源花费在维持网络上,网络上充斥着大量的控制包而不是数据包,并且还有很大的数据泄露风险。

CYCLADES的做法就是解放了中间设备的功能,让其的角色变得单一,物理链路层只是网线和接口,数据链路层只是交换机,网络层只是路由器,每一部份只需要知道自己所知道的内容。由于摒弃了“逐跳纠错”的想法,传输层面就不需要管理流量控制和建立可靠连接的控制包,大多数情况下只需要数据包,传输效率大大增加。如果我们下放到路由层面,CYCLADES通过MITRA小型机实现了基于距离矢量的传输协议,如此一来CYCLADES的节点在转发的时候也不需要具体路径只需要转发到对应的路由并更新路由表即可,无需预先连接好通讯线路,接近于我们今天网络拓扑的概念;相比之下X.25虽然也是一种分组交换技术,但是他的传输必须先确保连接的可靠性才可以进行,更加符合电话中心对于拨号连接插拔电话线到对应端口的理解。

img

imgimg然而,CYCLADES并没有成功。这个想法的问题在于,这会让电信业界失去原有的很多算力资源和预算,CYCLADES的成功意味着这个项目的资助者法国邮政、电报和电话管理局(PTT)失去了以往对于计算机网络和计算机市场的巨大影响力,只能专注于底层的路由和交换设备,那么法国电信设备商所生产的“高端”电信设备(功能可能类似于今天的“三层交换机”)都将被廉价且功能单一的交换机和路由器所取代,其部门预算将会被严重削减。在政治上,这等于自杀。由于PTT在法国是垄断事业,如果得不到PTT的首肯,那么CYCLADES就不开心继续下去。同时,CYCLADES在70年代属于小众技术,当时多数国家的电信企业基于稳定电话线路逻辑发展可靠网络,CYCLADES这种Connectionless的网络架构甚至都无法保证数据包到达的顺序,CYCLADES也长期为PTT的同僚所耻笑,这种耻笑也令CYCLADES更加特立独行。随着1974年德斯坦政府上台,法国政府计划通过扶植行业冠军打造国家冠军级的计算机网络,CYCLADES则被PTT指导下研发的Transpac网络所代替。

与此同时,昔日的美国电信巨头AT&T和美国政府龃龉不断,最终美国政府于1974年以反垄断的名义向AT&T开刀,迫使AT&T拆分其子公司;IBM也不遑多让,在1969年就被美国政府起诉,随后美国政府又指控IBM针对租赁公司和即插即用外围设备制造商采取的行动违反了反垄断法,IBM也不得不拆分了其软件和服务部门。也是因为美国政府的强势,AT&T和IBM开始允许各家厂商生产兼容其产品的替代品。如果从市场和监管的角度,任何公司都希望在这场游戏中取得头筹,一种更具兼容性的one-for-all通讯方式将会是不可或缺的,而这里的领头羊则是ARPANET——现代互联网的前身。