在前一篇我们主要介绍了OSI网络模型,顺便还提到了TCP/IP网络模型,关于TCP/IP协议栈和OSI七层模型的关系,必须要科普一下TCP/IP的历史了,先来了解一下几个比较重要的时间点。
TCP/IP网络系统最初是20世纪60年代,冷战时期由美国国防部主导开发的阿帕网,目的是为美国军方作为冷战时期对标准数据通信系统的支撑。1969年,已经实现的阿帕网,当时只有4台主机连接成一个网络,这4个节点分别是四个大学,使用的网络通信是NCP协议。阿帕网开发出来后,有一个很严重的问题就是阿帕网对于不同网络之间不能通信,在tcp/ip协议栈还没有诞生的时候,当时美军中陆军用的电脑是DEC系列产品,海军用的电脑是Honeywell中标机器,空军用的是IBM公司中标的电脑,每一个军种的电脑都是不同公司的产品,电脑中使用的网络通信系统也都是各自公司自己开发的,相互不兼容,也就无法通信共享资源,为了解决这个问题,美国国防部计划开发一套网络通信系统。
直到1975年tcp/ip协议栈的诞生,主要由卡恩和瑟夫开发。
1982年tcp/ip协议规范诞生,IETF委员会通过RFC规范文档,unix操作系统开始使用tcp/ip通信。
1983年ARPA网被分成2部分,用于军事和国防部门的军事网(MILNET)和用于民间的ARPANET网(最初的互联网模型)。
1990年代,整个网络向公众开放,1991年8月,蒂姆·伯纳斯-李在瑞士欧洲核子研究组织创建了HTML、HTTP和最初几个网页之后两年,他开始宣扬其万维网项目。
1996年,“Internet”(互联网)一词被广泛的流传,互联网的前身就是阿帕网。
为什么会有OSI七层网络模型?
从tcp/ip的发展史的几个时间点可以看出,由于当时各大科技巨头都开发了自己的网络通信规范,造成对于使用不同网络通信规范的电脑来说相互之间不兼容,导致无法通信的。
为了解决这个问题,直到1982年ISO组织才站出来提出并指定OSI七层网络模型的标准,并开发了一套OSI协议栈的网络通信规范,但由于历史原因,最终只有美国国防部开发的tcp/ip协议网络通信规范保留下来,至于原因,应该是当时tcp/ip协议栈整个体系发展经过这么多年不断的完善,相对来说已经比较成熟了。
对于后来居上的OSI七层网络模型,从理论上来说对于网络的分层划分是非常完美的,但从实际的应用来说并不理想,终究只是一个理论标准。而实际我们经常谈论网络中用到的通信模型一般是tcp/ip协议栈的四层模型:即应用层,传输层,网络层,网络接口层。而OSI七层模型更多是在教科书中见得比较多。
到这里,相信你对OSI七层模型和TCP/IP四层模型应该比较了解了。
现在我们再来说说OSI网络模型和TCP/IP网络模型之间各自的特点。
如果你之前对OSI网络模型和TCP/IP网络模型比较了解的话,应该知道其实他们之间还是有很多相同之处的,比如都有协议栈的概念,且协议之间彼此独立,都采用了分层的思想。
但它们也有不同的地方,首先,OSI网络模型分七层,而TCP/IP网络模型分四层。另外,在面向连接和无连接的通信上也有所区别,OSI模型的网络层支持无连接和面向连接的通信,但是传输层只支持面向连接的通信,而TCP/IP模型的网络层只支持无连接通信,但是传输层支持面向连接和无连接的通信。
不管是OSI模型还是TCP/IP模型,都并不完美。对于OSI参考模型和协议的设计工作者从一开始就试图建立一个全世界范围的计算机网络都要遵守的统一标准,但事实却正好相反,OSI最终只成为了一个理论上的标准。
而造成这样的原因之一是OSI模型和协议自身的缺点,其中会话层和表示层这两层几乎是空的,而另外的数据链路层和网络层包含内容太多,有很多的重复的内容,OSI模型以及相应的服务和协议都非常复杂,实现起来困难,有些功能,例如编址,差错控制都会在每一层上重复出现,这势必会降低通信效率。而另一个原因就是OSI模型出现的时机要比TCP/IP协议晚
。