OSI七层模型


ISO介绍

国际标准化组织(International Organization for Standardization,ISO)简称ISO,是一个全球性的非政府组织,是国际标准化领域中一个十分重要的组织。ISO国际标准组织成立于1946年,

ISO负责目前绝大部分领域(包括军工、石油、船舶等垄断行业)的标准化活动。ISO现有117个成员,包括117个国家和地区。中国是ISO的正式成员,代表中国参加ISO的国家机构是中国国家技术监督局(CSBTS)。

网络模型介绍

在上世纪70年代,不同的厂商的计算机之间采用的都是本厂的通信协议,不同厂商间的计算机是无法通信的,为了解决这个问题,ISO组织专门成立了一个小组,目的是写出一套公共通信协议,实现不同厂商计算机之间通信互联。

实际上只是Honeywell Information System公司的一个小组完成的,小组的技术负责人是Charlie Bachman,这个小组主要是为了开发一些原型系统而成立的,主要关注数据库系统的设计。70年代中,为了支持数据库系统的访问,需要一个结构化的分布式通信系统体系结构。

在1977年提出了一个七层的体系结构模型,他们内部称之为分布式系统体系结构(DSA)

与此同时,1977年英国标准化协会向国际标准化组织(ISO)提议,为了定义分布处理之间的通信基础设施,需要一个标准的体系结构。结果,ISO就开放系统互联(OSI)问题成立了一个专委会(TC 97, Subcomittee 16),指定由美国国家标准协会(ANSI)开发一个标准草案,在专委会第一次正式会议之前提交。

Bachman [1] 参加了ANSI早期的会议,并提交了他的七层模型,这个模型就成了提交ISO专委会的唯一的一份草案。1978年发布了这个临时版本,1979年稍作细化之后,成了最终的版本。

OSI七层模型

osi七层模型简图.png

以下为你全面介绍 ISO 七层模型,它是网络通信的标准分层架构,各层分工明确且相互协作,共同保障数据的有序传输:

1. 物理层(Physical Layer)

功能: 物理层是网络通信的基础,主要负责在物理媒介上传输原始的比特流(0 和 1)。它定义了诸如电压、接口形状、传输速率等物理特性,确保不同设备之间能够进行物理连接和信号传输。

协议与设备

  • 常见的协议有 EIA/TIA-232、RS-485 等,这些协议规定了数据在物理线路上的传输方式。
  • 相关设备包括集线器、双绞线、光纤、RJ45 接口等,它们是实现物理层传输的硬件基础。

工作示例: 当你将网线插入电脑的网口时,物理层就开始工作。它会把数据转换成电信号,通过双绞线进行传输,同时确保传输过程中的电压和时序符合标准。

功能: 数据链路层主要负责在相邻节点之间可靠地传输数据帧。它通过 MAC 地址来识别设备,并采用 CRC 校验等方式进行差错检测,以保证数据的准确性。

子层与协议

  • 该层分为逻辑链路控制(LLC)子层和介质访问控制(MAC)子层。LLC 子层负责建立和维护数据链路,MAC 子层则控制设备对共享介质的访问。
  • 常见的协议有 Ethernet(MAC 地址)、PPP(用于拨号连接)、ARP(地址解析协议)等。

工作示例: 当你在局域网中发送数据时,数据链路层会将网络层传来的数据包封装成帧,并添加源 MAC 地址和目标 MAC 地址。然后通过 ARP 协议获取目标设备的 MAC 地址,最后将帧发送到物理层进行传输。

3. 网络层(Network Layer)

功能: 网络层的主要任务是为数据在网络中的传输选择最佳路径。它通过 IP 地址来标识设备,并使用路由协议(如 OSPF、RIP)来动态更新路由表,确保数据能够高效地到达目的地。

协议与设备

  • 核心协议是 IP(IPv4/IPv6),它为网络中的设备分配唯一的 IP 地址,实现逻辑寻址。
  • 相关设备包括路由器、三层交换机等,它们能够根据路由表对数据包进行转发。

工作示例: 当你访问一个网站时,网络层会根据目标 IP 地址,使用路由协议计算出一条从源设备到目标设备的最优路径。然后将传输层传来的数据段封装成数据包,并添加源 IP 地址和目标 IP 地址,通过路由器沿着这条路径进行转发。

4. 传输层(Transport Layer)

功能: 传输层负责在端到端之间提供可靠的或不可靠的数据传输服务。它通过端口号来区分不同的应用程序,并使用流量控制和拥塞控制等机制来保证数据传输的质量。

协议

  • TCP(传输控制协议)是一种面向连接的、可靠的协议。它通过三次握手建立连接,使用序列号和确认号来保证数据的有序传输,通过滑动窗口机制进行流量控制,能够确保数据完整无误地到达目的地。
  • UDP(用户数据报协议)是一种无连接的、不可靠的协议。它传输速度快,延迟低,但不保证数据的可靠性,适用于对实时性要求较高的应用,如视频流、DNS 查询等。

工作示例: 当你使用浏览器访问网页时,传输层会根据应用层的需求选择合适的协议。如果是 HTTP 协议,通常会使用 TCP 协议建立连接,确保网页数据能够完整地传输到浏览器。而如果是 DNS 查询,则会使用 UDP 协议,快速获取域名对应的 IP 地址。

5. 会话层(Session Layer)

功能: 会话层负责建立、维护和终止通信双方之间的会话连接。它能够管理会话的同步和恢复,确保通信过程的连续性。

协议与功能

  • 常见的协议有 NetBIOS、PPTP 等。
  • 其主要功能包括会话的建立(如通过握手过程协商通信参数)、会话的维护(如在通信过程中保持连接状态)、会话的终止(如正常结束或异常中断会话)以及会话的同步(如在数据传输过程中设置检查点,以便在出现故障时能够恢复到之前的状态)。

工作示例: 当你使用远程桌面连接到另一台计算机时,会话层会建立一个会话连接。在连接过程中,它会维护会话的状态,确保你能够在远程计算机上进行各种操作。如果你在操作过程中遇到网络中断,会话层会尝试恢复会话,使你能够继续之前的工作。

6. 表示层(Presentation Layer)

功能: 表示层主要负责对数据进行转换、加密和压缩,以确保不同系统之间的数据能够相互理解和兼容。

常见格式与协议

  • 常见的数据格式有 ASCII、JPEG、MP3 等,这些格式规定了数据的表示方式。
  • 加密协议有 SSL/TLS,它们能够对数据进行加密,保证数据在传输过程中的安全性。
  • 压缩协议有 ZIP、GZIP 等,能够减少数据的传输量,提高传输效率。

工作示例: 当你发送一封加密的电子邮件时,表示层会对邮件内容进行加密处理,将其转换为密文。接收方收到邮件后,表示层会对密文进行解密,恢复出原始邮件内容。此外,如果邮件中包含大文件,表示层还会对其进行压缩,以便更快地传输。

7. 应用层(Application Layer)

功能: 应用层是用户与网络之间的接口,它为用户提供了各种网络服务和应用程序。应用层协议直接与用户的应用程序交互,实现数据的交换和共享。

常见协议

  • 用于万维网的 HTTP 协议,它定义了客户端和服务器之间的通信规则,使得用户能够通过浏览器访问网页。
  • 用于文件传输的 FTP 协议,它允许用户在不同的计算机之间上传和下载文件。
  • 用于电子邮件的 SMTP(发送邮件)、POP3/IMAP(接收邮件)协议,它们实现了邮件的发送和接收功能。
  • 用于远程登录的 SSH/Telnet 协议,允许用户通过网络远程连接到其他计算机,并在其上执行命令。
  • 用于域名解析的 DNS 协议,它将域名转换为对应的 IP 地址,使得用户能够通过域名访问网络资源。

工作示例: 当你使用浏览器访问百度网站时,应用层会使用 HTTP 协议与百度服务器进行通信。浏览器会向服务器发送请求,服务器接收到请求后,会返回相应的网页内容。在这个过程中,DNS 协议会将百度的域名(www.baidu.com)解析为对应的 IP 地址,以便网络层能够正确地路由数据包。

七层模型的工作流程

七层模型的工作流程

  1. 数据封装:当数据从应用层向下传输时,每一层都会为其添加特定的头部信息(有时还会添加尾部信息),这个过程称为数据封装。例如,传输层会添加端口号,网络层会添加 IP 地址,数据链路层会添加 MAC 地址。
  2. 数据传输:封装好的数据会通过物理层在网络中进行传输。在传输过程中,每一层都会根据自己的功能对数据进行处理,确保数据能够正确地到达目的地。
  3. 数据解封装:当数据到达接收方时,会从物理层向上传输,每一层都会去除自己添加的头部信息(有时还会去除尾部信息),这个过程称为数据解封装。最终,应用层会接收到原始的数据。

七层模型的实际应用

  • 网络故障排查:当网络出现故障时,可以根据七层模型逐层进行排查。例如,如果物理层出现问题,可能会导致网络连接中断;如果网络层出现问题,可能会导致路由错误,无法到达目标设备。
  • 协议设计:七层模型为协议的设计提供了一个清晰的框架。不同的协议可以在不同的层次上工作,相互协作,共同实现复杂的网络功能。例如,HTTP 协议工作在应用层,TCP 协议工作在传输层,IP 协议工作在网络层。
  • 网络安全:七层模型也为网络安全提供了一定的参考。例如,加密可以在表示层进行,访问控制可以在网络层或传输层进行,入侵检测可以在各个层次上进行。

通过对 ISO 七层模型的深入理解,你可以更好地掌握网络通信的原理,从而在网络配置、故障排查和开发等方面更加得心应手。