OSI 七层模型与 TCP/IP 模型概述

1 国际标准化组织 (ISO)

在早期,很多公司都使用自己内部的私有协议,对公司而言,在计算机生态中采用自家的协议无疑是最踏实可靠的,而且每个公司都希望自己的协议成为行业标准。随之发生的就是通信协议越来越多,但却相互不兼容,这对于整个网络通信的发展是极为不利的。要解决这一问题,就需要一个“领头羊”来定制标准,统一通信协议,这个“领头羊”就是国际标准化组织 (ISO, Open System Interconnect)

2 OSI 七层模型

ISO 在 1985 年制定了开放式系统互联模型 Open System Interconnect,简称 OSI 模型。OSI 模型也被称作七层模型,它将网络通信分为七层,分别是应用层、表示层、会话层、传输层、网络层、数据链路层和物理层。

2.1 物理层

物理层作为 OSI 模型的最底层,是通信数据传输的基础。物理层的职责是为上层屏蔽物理设备和传输媒介,利用传输媒介为通信的两端建立、管理和释放物理连接,实现数据比特流的透明传输,保证比特流正确地传输到对端。

物理层的传输媒介包括双绞线、电缆、光纤、无线电波等,传输的数据内容被称作信号。在物理层传输媒介中传输的信号分为模拟信号数字信号两种,比如电话线、有线电视的同轴电缆传输的就是模拟信号,光纤传输的就是数字信号。

物理层的协议有很多种,比如 DSLISDN10BASE-T 等,这些协议保证了在物理层传输的数据的编排规则。物理层协议分为两类,分别是点对点通信线路物理层协议广播通信线路物理层协议,其中广播通信线路又分为有线通信线路无线通信线路

2.2 数据链路层

数据链路层的职责是确保数据按照一定的格式被封装,并且能够可靠、透明地将数据传输到对端,它管理整个数据链路的建立、维持和释放。

数据链路层在物理层之上,在数据链路层中传输的数据单元叫作。帧包含地址段数据段等信息,地址段含有发送节点和接收节点的地址(如 MAC),数据段包含实际要传输的数据,数据链路层根据对应的协议重新编排这些信息,让这些信息按照一定的格式组装成帧。除了对物理层的原始数据进行封装,数据链路层还会对数据的传输进行错误检测和纠正,保证数据的传输是可靠的,因为在物理层的媒介上传输的数据难免会受到各种不确定的干扰而产生差错。

数据链路层的协议有 FDDIHDLC以太网协议 (Ethernet)点对点协议 (PPP) 等。

2.3 网络层

网络层的职责是提供路由寻址能力,并且它具备一定的拥塞控制、流量控制能力,使两端能够互联且通过通信子网选择最合适的路径。

网络层在数据链路层之上,它将数据链路层的帧转换为数据包,然后通过一系列的寻址和路由算法计算后,确定数据包的传输路径,将数据从一个网络节点发送到下一个节点。

网络层的协议包括 IPICMP、RIP、 IGMP 等。

2.4 传输层

传输层位于网络层之上,它是具备数据传输能力的最上层,它在 OSI 模型中非常重要。

每个机器可能有多个进程,为了能够准确地将数据传输到对端的进程,传输层在网络层的基础上增加了端口的概念

除了保证端到端的数据传输,传输层也提供了流量控制、拥塞控制、多路复用、失败重传等能力。

在传输层传输的数据单元叫做报文,在这一层的协议有 TCP、UDP、SPX 等。

2.5 会话层

会话也是一个连接,是在传输层连接基础上的更高一层抽象,它不关心连接的地址、端口号等信息,一个会话既可以是一对一,也可以是一对多、多对一、多对多的。

举个例子:有 A、B、C 三个人,A 给 B 打电话,此时建立了 A 与 B 之间的传输层连接,当 A 与 B 交流完毕后,B 把电话直接交给了 C,C 便可直接与 A 进行会话,而不需要重新建立连接。

会话层建立在传输层上,它不关心传输连接的建立细节,只负责会话管理,比如建立会话、维持会话、终止会话等。它保证了会话数据的可靠传输,同时提供一定的会话权限认证能力。

2.6 表示层

表示层的职责是确保从一端的应用层发送的数据可以被另一端正确读取,它需要处理的是数据的表示问题,比如数据格式处理、数据编解码、协商和建立数据交换格式等。它解决了各应用程序之间在数据格式表示上的差异。除此之外,表示层还提供了数据压缩、解压、加密、解密等数据处理能力。

该层的协议有 WEPWPAKerberos 等。

2.7 应用层

应用层是 OSI 模型的最高层,它与应用程序的关系最为密切,它的职责是为应用程序提供服务,规定应用程序中通信的相关细节,完成用于希望在网络上完成的各种工作,它是各种应用程序和网络之间建立联系的桥梁。此外,该层还负责协调各个应用程序之间的工作。

在应用层上可以实现各种服务,比如文件传输服务 (FTP)、远程登陆服务 (Telnet) 等,这些形形色色的服务都有不同的协议,所以应用层的协议十分丰富,比如 HTTP、FTP、NFS、SMTP 等。

3 TCP/IP 模型

从整个 OSI 模型的设计来看,每一层职责明确,每一层管辖的范围也非常清晰,一次通信会逐层处理互不影响,这种分层设计思想可以让开发者更容易理解数据传输过程。但 OSI 模型只是个理论模型,并没有定义实现过程,在实际落地时如果采用七层模型,反而会被其复杂性拖慢定制周期,影响网络的发展。所以在后续的实践中,逐渐演化出了四层模型,即 TCP/IP 模型。

TCP/IP 模型将 OSI 模型简化为应用层、传输层、网络层和网络接口层这四个层次,使其更容易实现。其中:

  • 应用层对应 OSI 模型中的“应用层+表示层+会话层”;
  • 传输层网络层直接对应 OSI 模型中的“传输层”跟“网络层”;
  • 网络接口层对应 OSI 模型中的“数据链路层+物理层”。

由于“网络接口层”的职责不是很明确,为了降低理解成本,我们更习惯将这一层替换为“数据链路层+物理层”,也就是业界常提的“五层模型”。


欢迎关注我的公众号,第一时间获取文章更新:

微信公众号

相关内容