因疫情影响,只能宅在家里,便决定系统地学习一下计算机网络的相关知识。以下内容都是基于我的理解所写,可能存在差错。

说到计算机网络,不能绕开的便是网络通信协议。 网络通信协议,指的是在计算机网络中进行数据交换时应当遵守的规则。在互联网诞生初期,存在着各种各样的网络通信协议体系架构,比如IBM公司的SNA和DEC公司的DNA。这导致了遵循不同协议的网络之间无法进行通信。为了解决这一问题,ISO(国际标准化组织: International System Organization)在20世纪80年代制定并推出了一个网络体系架构的参考模型,即著名的OSI/RM(开放系统互联参考模型:Open System Interconnection Reference Model)。

OSI/RM
OSI/RM

OSI/RM将网络架构系统地分为了七层,由顶至下分别为:
1.应用层:
面向用户的一层,为应用的运行提供环境和支持。

2.表示层:
为在传输之前对数据进行编码、解码、解压缩、及数据格式的转换等提供规则。
3.会话层:
对通信的会话双方进行资格和权限的审查。
4.传输层:
为两个主机中进程之间的通信提供服务,建立端到端的通信信道,对数据进行分段/分组( Segment)和重组,按端口号寻址,提供可靠(比如:TCP)或者不可靠(比如UDP)的数据传输。此层位于整个分层体系的中间位置,起着承上启下的至关重要的作用,在它之上的层统称为资源子网,主要任务是数据处理,在它之下的层则称为通讯子网,主要任务是数据通讯。并且对上层屏蔽了下层的网络操作细节。
5.网络层
负责为网络中的不同主机之间提供通信服务,维持和终止通过中间设备的连接,此层数据为一个一个的包(Packet),此层的代表有路由器。并且负责在网络中自动寻径(逻辑寻址)和拥塞控制,主要是为了解决不同子网间的通信。
6.数据链路层:
根据目标主机MAC地址将数据组装成字节类型的帧,并控制两个网络实体之间数据链路的建立、维持和释放,进行物理寻址,一般是为了解决同一网络内节点之间的通信,调节发送速率,比如说20Mbps(MAC地址),此层的代表设备有交换机。
7.物理层:
此层为最底层,数据以Bit流形式发送和接收。包括对网络设备物理接口的规定,比如形状,针数,数据传输的形式和规则,代表有网卡。具有机械、电气、功能、过程特性。

在OSI/RM中,每层为上层提供服务,并接受下层的服务,而两个网络实体之间必须为同等层数和相同顺序的架构才可进行通信,两个网络实体之间位于同等位置的层称为对等层,对等层之间才可进行通信(抽象的、逻辑的、虚拟的),对等层之间传递的数据单位为PDU( Protocol Data Unit)。

还有一个著名的标准,即IEEE802标准,此标准由IEEE(电气与电子工程协会:Institute of Electrical and Electronics Engineers)制定,主要涉及OSI/RM当中的数据链路层和物理层。该标准将数据链路层分为两部分:逻辑链路层(LLC)和介质访问控制层(MAC)。此两层的标准在如今已经很少使用。

我们可以试着描述一下OSI/RM的整个通信流程,以此来了解OSI/RM通信的细节。以通过FTP下载文件为例。首先,位于发送方(Server)应用层的文件经FTP应用程序处理,在数据的开头加上属于FTP即应用层的头( Header);然后数据进入表示层,在表示层经过编码,加解密等操作后,也会在数据的开头加上标识表示层的头,之后才进入下一层......以此类推,每经过一层,在每层对应的操作完成后,都会在数据的头部加上标识本层的头部信息然后才进入下一层,直到数据链路层。数据链路层特殊的地方在于,不仅需要在数据的头部加上信息,在数据的尾部也需要添加标识信息,这标示着对数据处理的整个过程的完成,加上尾部信息有利于接收方校验数据的完整性。数据链路层之后便是物理层,在本层数据以Bit流的形式通过光纤、无线等传输介质传输到接收方(Client)。数据到达接收方之后,由物理层进入,由下至上前进,每经过一层,便解开对应层的头部信息,最后到达应用层的时候,便恢复为最初的数据,最终呈现为我们需要的文件。由此,基于OSI/RM的一次网络通信便完成了。

如今的网络体系并没有完全遵造OSI/RM的七层分级,但OSI/RM的贡献仍然是不可忽视的,此后的网络架构设计都参考了OSI/RM,因此,对OSI/RM的学习有助于对其他体系和协议的学习和理解,比如广泛使用的TCP/IP协议簇。