上一篇讨论了为什么需要了解网络。
今天详细介绍理解网络通信的两种基本模型:OSI 七层模型与 TCP/IP 模型。
想象一下给朋友寄信的过程。
先写信,把信装进信封并写上地址,再投入邮筒,由邮局分拣和投递。
网络通信也要经过几个步骤才能把数据传到目的地。
用统一、标准化的方式描述这些过程的框架,就是网络模型。
网络模型有助于不同厂商生产的计算机和设备顺利通信。
最具代表性的就是 OSI 七层模型和 TCP/IP 模型。
OSI 七层模型是国际标准化组织(ISO)于 1984 年发布的网络通信标准模型。
顾名思义,它将通信过程分成七层。每一层使用下一层的服务,并为上一层提供服务。
就像一栋七层楼,每层都有各自的用途。
OSI 七层分别是:
- 第 7 层:应用层(Application Layer)
- 第 6 层:表示层(Presentation Layer)
- 第 5 层:会话层(Session Layer)
- 第 4 层:传输层(Transport Layer)
- 第 3 层:网络层(Network Layer)
- 第 2 层:数据链路层(Data Link Layer)
- 第 1 层:物理层(Physical Layer)
可以借助英文首字母口诀“All People Seem To Need Data Processing”(人人似乎都需要数据处理)记住这七层。原文还举了韩语口诀“아파서 티내다 피났다”,并列出自底向上的韩语层名首字“물-데-네-전-세-표-응”,作为另一种记忆方式。
第 7 层:应用层(Application Layer) 🔗
职责
它是与浏览器、邮件客户端、文件传输程序等应用沟通的接口。
用户通过网络执行操作时,首先接触的是这一层。
示例
浏览网站使用的 HTTP、发送电子邮件使用的 SMTP,以及传输文件使用的 FTP,都在这一层工作。
数据单位
消息(Message)或数据(Data)。
第 6 层:表示层(Presentation Layer) 🔗
职责
将应用层的数据转换为不同计算机能够理解的通用
表示格式
。例如,进行字符编码(ASCII、UTF-8 等),或者加密、压缩数据。
示例
对数据进行加密(SSL/TLS)以便安全传输,或将图片和视频转换为指定格式,例如 JPEG、GIF 和 MPEG。
数据单位
消息(Message)或数据(Data)。
第 5 层:会话层(Session Layer) 🔗
职责
建立、维持并结束两台计算机之间的
对话(会话)
。例如,登录后保持连接,完成任务后通过退出登录断开连接。它也可以设置同步点,发生传输错误时从相应位置恢复。
示例
在线游戏需要维持与服务器的连接,视频会议也需要管理会话,避免通信中断。
数据单位
消息(Message)或数据(Data)。
第 4 层:传输层(Transport Layer) 🔗
职责
负责让数据
准确、可靠地送达
。它可以将数据分为适当大小的段,出错时重传(差错控制),并调节传输量(流量控制)。
示例
常见的 TCP 和 UDP 都在这一层工作。TCP 注重可靠传输,UDP 注重快速传输。使用 TCP 下载文件时,可以完整收到文件数据。
数据单位
段(Segment,用于 TCP)或数据报(Datagram,用于 UDP)。
第 3 层:网络层(Network Layer) 🔗
职责
为数据寻找跨越多个网络、到达目的地的
路径
,即路由。这里使用区分各计算机的逻辑地址,即 IP 地址。
示例
接入互联网并与远端服务器通信时,路由器在这一层工作,选择数据应经过的路径。
数据单位
数据包(Packet)。
第 2 层:数据链路层(Data Link Layer) 🔗
职责
让同一网络内直接相连的设备交换数据。它检测和处理物理层可能出现的错误,用帧来区分数据的边界,并使用 MAC 地址这种物理地址。
示例
计算机的网卡(网络接口卡)和交换机等设备主要在这一层工作。
数据单位
帧(Frame)。
第 1 层:物理层(Physical Layer) 🔗
职责
负责实际传输数据所需的物理连接,规定线缆类型、传输速率、电压等电气和机械属性。简单来说,它将数据编码成代表 0 和 1 的信号(比特),通过线缆以接近光速传输。
示例
以太网线、光缆、集线器和中继器等都属于这一层。
数据单位
比特(Bit)。
OSI 七层模型有助于理解网络通信,但层次较多,实际网络也不一定严格区分每一层。
实际互联网采用的是层次更少的
TCP/IP 模型
。
TCP/IP 模型最初由美国国防部(DoD)开发,比 OSI 模型更早投入使用。它基于实际使用的互联网协议,实用性较强。
TCP/IP 模型通常以四层说明,可以与 OSI 的七层对应。有些资料会使用五层划分,但四层划分更常见。
- 第 4 层:应用层(Application Layer),对应 OSI 第 5、6、7 层。
- 第 3 层:传输层(Transport Layer),对应 OSI 第 4 层。
- 第 2 层:互联网层(Internet Layer),对应 OSI 第 3 层。
- 第 1 层:网络接入层(Network Access/Interface Layer 或 Link Layer),对应 OSI 第 1、2 层。
TCP/IP 各层的职责与 OSI 中对应的层类似。
第 4 层:应用层(Application Layer)
综合了 OSI 的应用层、表示层和会话层功能,直接面向用户交互,提供 HTTP、FTP、SMTP 和 DNS 等数据交换服务。
第 3 层:传输层(Transport Layer)
与 OSI 的传输层基本相同,负责端到端(end-to-end)数据传输,并可提供可靠传输。
TCP 和 UDP 都在这一层运行,处理数据分段、差错控制与流量控制等任务。
第 2 层:互联网层(Internet Layer)
对应 OSI 的网络层,负责为数据包寻址(使用 IP 地址)和选择路径(路由),使数据包到达目的地。
核心协议是 IP(Internet Protocol)。
第 1 层:网络接入层(Network Access/Interface Layer)
对应 OSI 的物理层和数据链路层,通过网线、网卡等硬件实际传输数据,并负责同一网络内设备之间的帧传输。
以太网(Ethernet)和 Wi-Fi 都属于这一层的技术。
你可能会问:“既然实际使用的是 TCP/IP,为什么还要学习 OSI?”
OSI 是理论模型,但它细致、有条理地描述了完整的网络通信过程,有助于理解基本原理和诊断问题。
TCP/IP 则是实用模型,直接说明了今天使用的互联网如何工作。
网络开发人员和工程师了解这两种模型,就能更好地分析复杂网络环境并解决问题。
在浏览器地址栏输入 www.google.com 并按回车后,会发生什么?下面用 OSI 七层(也可以用 TCP/IP 模型)来说明这个过程。
应用层(第 7 层)
用户输入 www.google.com 后,浏览器使用 HTTP 协议生成向 Google 服务器请求网页的数据。
浏览器也可能先通过 DNS 查询 www.google.com 对应的 IP 地址。
表示层(第 6 层)
网页请求数据转换成各系统可理解的标准格式,必要时还会加密,例如使用 HTTPS 时。
会话层(第 5 层)
建立并管理浏览器与 Google Web 服务器之间的通信会话。
传输层(第 4 层)
使用 TCP 将 HTTP 请求数据拆为较小的段。
每段附有 TCP 头,其中包含序号和端口号等信息。HTTP 通常使用 80 端口,HTTPS 通常使用 443 端口。
网络层(第 3 层)
给每个 TCP 段加上包含源 IP 地址(本机)和目的 IP 地址(Google 服务器)的 IP 头,形成数据包。
路由器根据 IP 地址决定将数据转发到哪里。
数据链路层(第 2 层)
给 IP 数据包添加帧头与帧尾。
其中包含下一台设备(例如家用路由器)的 MAC 地址等信息。
物理层(第 1 层)
将帧中的数据转换成代表 0 和 1 的信号,通过线缆或无线电波实际传输。
数据到达 Google 服务器后,这个过程会反向进行,称为解封装。
数据从物理层向上交给应用层,各层逐一移除相应的头部信息,最终由 Web 服务器中的应用程序返回网页数据。
本文介绍了用于描述网络通信的 OSI 七层模型,以及实际互联网采用的 TCP/IP 模型。
OSI 将网络功能划分为七个逻辑层次,是帮助理解通信原理和排查问题的理论模型。
TCP/IP 是适应实际互联网环境的四层(有时也划分为五层)模型,可以与 OSI 的分层对应,也是互联网通信的核心协议族。
两种模型都有助于理解网络。了解各层的职责与交互方式,可以帮助开发者解决网络问题并编写更好的程序。
下一篇将详细介绍如何在网络中找到计算机,也就是 IP 地址与子网掩码。