引言

我们在前面几期文章中,不止一次提到过网络模型,虽然对于之前的内容来讲,是否理解网络模型并不影响对知识的理解,但是要想深入网络这个话题,网络模型始终是一个绕不开的话题。本文将对常见的两种网络模型做简单的介绍。

OSI参考模型

OSI(Open System Interconnect)中文翻译为开放式系统互联,一般会称为OSI参考模型。OSI参考模型是1984年由ISO正式推出的,其初衷是制定一套全面的计算机网络标准,全世界的用户可以方便地进行数据交换,从而带来新的合作和商机。
OSI参考模型最大的特点是逻辑分层。在网络初具规模之前,各个商业公司以及研究机构几乎都是独立发展的。因此OSI模型分层的主要目的是为解决不同网络互连时所遇到的兼容性问题,以帮助不同类型的主机设备实现数据传输。
OSI定义的网络框架有七层,从数据发送的角度看,依次如下(数据接收正好相反):

  • 应用层(Application):处理应用程序用于与网络通信的技术。
  • 表示层(Presentation):负责数据格式转换、数据加密。
  • 会话层(Session):建立、管理和终止网络节点之间的连接。
  • 传输层(Transport):定义传输数据的协议端口号,以及流控和差错校验。
  • 网络层(Network):负责在网络中进行网络消息的路由。
  • 数据链路层(Data Link):建立逻辑连接、进行硬件地址寻址、差错校验等功能。
  • 物理层(Physical):规定了在载体上发送和接收数据的硬件方法。

下图描述了数据从发送到接收在各层之间的传递过程(图片源自网络,侵删)。
image.png
有关各层的具体细节我们以后会更加详细的讨论。

从底向上,一共有七层,依次编号。我们有时候说某一层的时候,会直接用对应层号代替,比如路由器属于网络层设备,我们就说路由器是三层设备,HTTP协议属于应用层,我们就说HTTP协议是七层协议。

TCP/IP协议族

TCP/IP协议族是指一系列网络协议的总和,并不单单指TCP协议与IP协议。它定义了设备如何接入互联网以及数据之间如何相互传输。与OSI参考模型不同,TCP/IP协议族更偏向于实际使用,而OSI参考模型更偏向于学术。
我们一般把TCP/IP协议族分为4层,并且基本可以和OSI参考模型对应起来。参考下面表格。

OSI参考模型 TCP/IP协议族 协议举例
Layer 7 应用层 应用层 HTTP、FTP、DNS
Layer 6 表示层
Layer 5 会话层
Layer 4 传输层 传输层 TCP、UDP
Layer 3 网络层 网络层 IP、ICMP
Layer 2 数据链路层 数据链路层/网络接口层 Ethernet、IEEE 802.11、CSMA/CD
Layer 1 物理层

理解了TCP/IP协议族的主要协议是理解整个网络的关键,同样,有关各协议的具体细节我们以后会更加详细的讨论。

对于TCP/IP协议族,我们通常不会对其分层进行编号,而是直接称呼层名。

其他

协议

我们迄今为止已经提到过许多次“协议”这个词语了。如何理解网络中的协议呢?
数据要在网络上从源主机到达目的目的,网络通信的参与方必须遵循相同的规则,这些规则就是协议。如果主机A没有按规则发送主机B可以理解的数据,那就是A没有遵守协议,B虽然接收到了数据,但是无法处理,此次数据发送的结果就是失败的。

OSI vs. TCP/IP

OSI和TCP/IP都是在20世纪70年代开始发展的,但是实际中使用的网络都是基于TCP/IP搭建起来的,TCP/IP成为了网络的事实标准,而OSI更多用于学术界。原因为何?
现在常见的每种技术标准都是当初从很多技术中竞争胜出的,而这种胜出有时不仅仅是技术的优劣,更重要的是和标准的推出者所占的市场份额以及实用性来决定的。起初ISO制定了七层网络模型,但是企业在实际生产研发时发现并不太实用,觉得太繁琐,而OSI在后期发展也极为缓慢,以至于大幅落后于TCP/IP,所以业界通常都用 TCP/IP ,而OSI基本上只作为参考模型存在了。

后记

本次我们非常简略的介绍了两种网络模型:OSI模型和TCP/IP协议族,下次我们继续介绍其他网络中的概念或协议。当我们介绍完网络中的基本概念和主要协议后,会提出一个实际的场景,帮大家把所有的知识都串起来,希望大家持续关注。