计算机网络五层模型分别为应用层、传输层、网络层、数据链路层和物理层,每层都承载着不同的功能,各层协议协同工作,保障数据高效、准确地在网络中传输。
一、应用层(Application Layer)
应用层处于网络模型的最顶层,直接面向用户应用程序,负责处理用户的具体需求,如文件传输、网页浏览、邮件收发等。它基于传输层协议,通过不同的应用层协议为各类应用提供数据封装与交互接口,并且部分协议指定了默认端口。
1. HTTP/HTTPS 协议
HTTP(超文本传输协议)和 HTTPS(超文本传输安全协议)是 Web 应用的核心协议。HTTP 是明文传输,而 HTTPS 在 HTTP 基础上通过 TLS/SSL 加密传输数据,保障信息安全。
- 基于协议与端口:两者均基于 TCP 协议,HTTP 默认使用端口 80,HTTPS 默认使用端口 443。
- 工作原理:采用请求 - 响应模式。客户端向服务器发送请求报文,请求报文中包含请求方法(如 GET、POST)、URL、头部信息等;服务器接收到请求后,处理请求并返回响应报文,响应报文包含状态码(如 200 表示成功、404 表示资源未找到)、数据内容(如 HTML、JSON 格式的数据)。
- HTTP/1.1 特点:支持持久连接(Keep - Alive),减少了建立和关闭 TCP 连接的开销;支持管线化请求,允许客户端在未收到前一个请求的响应时,就发送下一个请求,提高了传输效率。HTTPS 在通信前通过 SSL/TLS 握手过程建立加密通道,具体步骤如下:
- 客户端向服务器发送 ClientHello 消息,包含客户端支持的 SSL/TLS 版本、加密算法列表等信息。
- 服务器返回 ServerHello 消息,确认使用的 SSL/TLS 版本、选择的加密算法,并发送服务器证书(包含公钥)。
- 客户端验证服务器证书有效性,然后生成随机数(Pre - Master Secret),使用服务器公钥加密后发送给服务器。
- 服务器使用私钥解密得到 Pre - Master Secret,结合之前通信的信息生成会话密钥,用于后续数据加密传输。
- 实际应用与最新进展:HTTP/2 在 HTTP/1.1 基础上进行了多路复用、头部压缩等优化,进一步提升性能;HTTP/3 基于 UDP 协议,采用 QUIC 协议,减少了连接建立延迟,增强了网络抗丢包能力,在移动网络等不稳定环境中表现出色。
2. FTP 协议(文件传输协议)
FTP 用于在客户端与服务器之间进行文件的上传和下载,同时支持目录浏览和权限控制。
- 基于协议与端口:基于 TCP 协议,使用两个端口,控制连接端口为 21,用于传输命令和响应;数据连接端口为 20,用于传输文件数据。
- 工作原理 - 双连接模式:
- 控制连接:在整个 FTP 会话期间持续存在,客户端和服务器通过控制连接发送和接收命令,如登录验证(USER、PASS 命令)、目录操作(CWD 命令)等。
- 数据连接:每次进行文件传输时建立,传输完成后关闭。数据连接分为主动模式和被动模式:
- 主动模式:服务器主动连接客户端的数据端口(通常为随机端口),存在防火墙穿越问题,因为防火墙可能会拦截服务器发起的连接。
- 被动模式:客户端主动连接服务器的一个随机端口(由服务器通过 PASV 命令告知客户端),更适用于复杂网络环境。
- 应用场景:常用于网站部署时上传网页文件、企业内部文件共享等,但由于其传输数据未加密,逐渐被更安全的 SFTP(SSH File Transfer Protocol,基于 SSH 协议)替代。
3. SMTP/POP3/IMAP 协议(邮件协议)
这三种协议共同构成了电子邮件系统的核心。
- SMTP(简单邮件传输协议):用于邮件的发送,支持从客户端到服务器以及服务器到服务器之间的邮件传输。
- 基于协议与端口:基于 TCP 协议,默认端口为 25。
- 工作原理:采用命令 - 响应模式,常见命令包括 HELO(标识客户端身份)、MAIL FROM(指定发件人)、RCPT TO(指定收件人)、DATA(开始传输邮件内容)等。SMTP 支持中继转发,邮件可以通过多个 SMTP 服务器接力传输到目标服务器。
- POP3(邮局协议版本 3):用于从邮件服务器下载邮件到客户端,通常在下载后,服务器会删除已下载的邮件(可配置保留)。
- 基于协议与端口:基于 TCP 协议,默认端口为 110。
- 应用场景:适用于仅在单一设备上查看邮件的用户,但不便于多设备同步邮件。
- IMAP(互联网消息访问协议):允许客户端远程管理邮件,邮件保留在服务器上,支持在客户端进行邮件搜索、分类、标记等操作。
- 基于协议与端口:基于 TCP 协议,默认端口为 143。
- 优势:多设备同步邮件状态,例如在一台设备上删除邮件,其他设备也会同步更新;支持在线浏览邮件头部信息,按需下载邮件正文和附件,节省流量。
4. DHCP 协议(动态主机配置协议)
DHCP 自动为客户端分配 IP 地址、子网掩码、网关、DNS 服务器等网络配置参数,简化了网络管理。
- 基于协议与端口:基于 UDP 协议,服务器端口为 67,客户端端口为 68。
- 工作原理(DORA 流程):
- Discover:新接入网络的客户端以广播形式发送 DHCP Discover 报文,寻找可用的 DHCP 服务器,报文中包含客户端的 MAC 地址等信息。
- Offer:接收到 Discover 报文的 DHCP 服务器向客户端发送 DHCP Offer 报文,包含分配的 IP 地址、子网掩码、租期等配置参数,一个客户端可能收到多个服务器的 Offer。
- Request:客户端选择一个服务器,广播 DHCP Request 报文,确认接受该服务器提供的 IP 地址及配置,同时告知其他服务器不再接受它们的 Offer。
- Acknowledge:被选中的服务器返回 DHCP ACK 报文,正式确认 IP 地址分配,客户端收到后开始使用该 IP 地址。
- 租期管理:IP 地址有一定租期,客户端在租期过半时会向服务器发送 DHCP Request 报文请求续租,如果服务器同意则延长租期;若未成功续租,客户端会在租期到期后释放 IP 地址,重新申请。
5. SNMP 协议(简单网络管理协议)
SNMP 用于网络设备(如路由器、交换机、服务器等)的管理和监控,通过该协议可以获取设备的运行状态、性能指标等信息。
- 基于协议与端口:基于 UDP 协议,管理端向设备发送请求使用端口 161,设备主动向管理端发送通知(如设备故障告警)使用端口 162。
- 工作原理 - 管理者 - 代理模式:
- 管理者:通常是网络管理工作站,运行 SNMP 管理软件,负责发送管理请求(如 GET 请求获取设备信息、SET 请求修改设备配置)。
- 代理:存在于被管理设备中,维护设备的管理信息库(MIB),MIB 是一个树状结构,存储设备的各种参数(如接口流量、CPU 利用率)。当接收到管理者的请求时,代理从 MIB 中提取数据并返回给管理者;当设备发生重要事件(如链路中断)时,代理主动向管理者发送 Trap 或 Inform 通知。
- 版本演进:SNMP 经历了 SNMPv1、SNMPv2c、SNMPv3 的发展,SNMPv1 安全性较低,SNMPv2c 增强了功能和性能,SNMPv3 在安全性方面有显著提升,支持用户认证、加密传输等。
二、传输层(Transport Layer)
传输层处于网络层之上,负责端到端的数据传输,为应用层提供进程标识(通过端口号区分不同应用进程),并确保数据可靠或高效地传递。主要包括 TCP 和 UDP 两种协议。
1. TCP 协议(传输控制协议)
TCP 是一种面向连接、可靠的传输协议,适用于对数据准确性要求高的应用场景。
- 核心机制:
-
三次握手建立连接:
- 第一次握手:客户端向服务器发送 SYN(同步序列号)报文,其中包含初始序列号(seq = x),表示客户端请求建立连接。
- 第二次握手:服务器接收到 SYN 报文后,回复 SYN + ACK 报文,其中 SYN 表示同意建立连接,ACK 用于确认客户端的请求,序列号(seq = y)是服务器的初始序列号,确认号(ack = x + 1)表示期望收到客户端的下一个序列号为 x + 1 的数据。
- 第三次握手:客户端收到服务器的 SYN + ACK 报文后,回复 ACK 报文,确认号(ack = y + 1),表示确认收到服务器的 SYN 报文,连接正式建立。
-
四次挥手关闭连接:
- 第一次挥手:客户端数据发送完毕后,向服务器发送 FIN(结束)报文,请求关闭连接,序列号(seq = a)。
- 第二次挥手:服务器收到 FIN 报文后,回复 ACK 报文,确认号(ack = a + 1),表示已收到客户端的关闭请求,但服务器可能还有数据未发送完,此时连接进入半关闭状态,客户端不再发送数据,但仍可接收服务器数据。
- 第三次挥手:服务器数据发送完毕后,向客户端发送 FIN 报文,序列号(seq = b),请求关闭连接。
- 第四次挥手:客户端收到服务器的 FIN 报文后,回复 ACK 报文,确认号(ack = b + 1),连接正式关闭。
-
可靠传输机制:
- 序列号与确认号:每个 TCP 报文段都包含序列号(Seq),用于标识数据在数据流中的位置;接收方通过确认号(Ack)告知发送方已成功接收的数据,发送方根据确认号判断哪些数据需要重传。
- 超时重传:发送方发送数据后启动定时器,如果在规定时间内未收到确认,就重传数据。超时时间会根据网络情况动态调整。
- 滑动窗口:用于流量控制,发送方和接收方各自维护一个窗口大小,窗口大小表示接收方当前可以接收的数据量。发送方根据接收方的窗口大小调整发送速率,避免接收方缓冲区溢出。
- 拥塞控制:包括慢开始、拥塞避免、快重传和快恢复等算法。慢开始阶段,发送方初始拥塞窗口较小,随着数据成功传输,逐渐增大窗口;拥塞避免阶段,窗口增长速度变慢;当检测到丢包时,触发快重传和快恢复机制,快速恢复网络传输效率。
- 应用场景:HTTP、HTTPS、FTP、SMTP、POP3、IMAP 等应用都基于 TCP 协议,因为这些应用需要确保数据准确无误地传输。
2. UDP 协议(用户数据报协议)
UDP 是一种无连接、不可靠的传输协议,以高效、低延迟为特点,适用于对实时性要求高的应用场景。
- 特点与优势:无连接特性使得 UDP 无需像 TCP 那样进行三次握手和四次挥手,直接封装应用层数据形成 UDP 报文(包含源端口、目的端口、数据长度、校验和、数据部分)进行传输;没有确认和重传机制,传输开销小,延迟低,适合实时性应用,如视频流(如在线视频、视频会议)、语音通话(如 VoIP、微信语音)、DNS 查询(DNS 默认使用 UDP,在报文过大时切换到 TCP)、网络游戏(如《英雄联盟》《王者荣耀》,对实时性要求高,少量数据丢失可容忍)。
- 校验与不可靠性:UDP 虽然有校验和字段用于检测数据错误,但不保证数据一定能正确到达接收端,也不保证数据顺序。如果接收方检测到错误,会直接丢弃报文,不会通知发送方重传。
- 与 TCP 对比:
特性 | TCP | UDP |
---|---|---|
连接性 | 面向连接 | 无连接 |
可靠性 | 可靠(重传、确认) | 不可靠(无重传) |
传输效率 | 低(开销大) | 高(开销小) |
应用场景 | 网页、文件传输 | 视频会议、DNS、游戏数据 |
首部长度 | 20 字节(固定部分) | 8 字节 |
三、网络层(Network Layer)
网络层负责数据包的路由和寻址,将数据从源主机传输到目标主机,实现跨网络的数据传输。主要协议包括 IP 协议、ICMP 协议、ARP 协议等。
1. IP 协议(网际协议)
IP 协议是网络层的核心协议,目前主要有 IPv4 和 IPv6 两个版本。
- IPv4 协议:采用 32 位地址,理论上可提供约 43 亿个地址,但由于地址分配不合理等原因,IPv4 地址已基本耗尽。IPv4 数据包头部包含版本号(4 位,值为 4)、首部长度(4 位,标识头部字节数)、区分服务(8 位,用于 QoS)、总长度(16 位,数据包总字节数)、标识(16 位,用于分片重组)、标志(3 位,如是否允许分片)、片偏移(13 位,标识分片在原始数据中的位置)、生存时间(TTL,8 位,每经过一个路由器减 1,为 0 时丢弃)、协议(8 位,标识上层协议,如 6 表示 TCP,17 表示 UDP)、首部校验和(16 位,用于头部错误检测)、源 IP 地址(32 位)、目的 IP 地址(32 位)等字段。
- IPv6 协议:为解决 IPv4 地址不足问题而诞生,采用 128 位地址,地址数量极其庞大。IPv6 数据包头部简化,固定头部为 40 字节,包含版本号(4 位,值为 6)、流量类别(8 位,用于 QoS)、流标号(20 位,标识同一流的数据包)、有效载荷长度(16 位,数据部分长度)、下一个首部(8 位,标识上层协议或扩展首部)、跳数限制(8 位,类似 IPv4 的 TTL)、源地址(128 位)、目的地址(128 位)等字段。IPv6 支持扩展首部,可灵活添加功能(如分段、认证、加密)。
- 路由过程:
- 源主机根据目标 IP 地址,查询本地路由表。路由表中包含目标网络地址、子网掩码、下一跳地址、出接口等信息。如果目标 IP 地址与本地网络匹配,则直接通过 ARP 协议获取目标 MAC 地址进行传输;否则,根据路由表确定下一跳路由器的 IP 地址。
- 数据包被发送到下一跳路由器,路由器接收到数据包后,根据目标 IP 地址再次查询自己的路由表,更新 IP 头部的 TTL 字段(减 1),如果 TTL 为 0,则丢弃数据包并发送 ICMP 超时报文给源主机,然后将数据包转发到下一跳路由器。
- 数据包经过多个路由器的逐跳转发,最终到达目标主机所在网络,目标主机接收数据包,剥离 IP 头部,将数据交给传输层处理。
2. ICMP 协议(互联网控制报文协议)
ICMP 用于在网络层传递错误报告和控制信息。
- 常见报文类型:
- 回显请求与应答(类型 8/0):ping 命令基于此原理,客户端向目标主机发送 ICMP 回显请求报文,目标主机收到后回复 ICMP 回显应答报文,通过往返时间(RTT)判断网络连通性和延迟。
- 目标不可达(类型 3):当路由器无法将数据包转发到目标地址时,向源主机返回该报文,根据不同的代码(如网络不可达、主机不可达、端口不可达等)指示具体的不可达原因。
- 超时(类型 11):当数据包的 TTL 减为 0 时,路由器丢弃数据包并向源主机发送 ICMP 超时报文,traceroute 命令利用此机制,通过逐渐增加 TTL 值,追踪数据包从源主机到目标主机经过的路由器路径。
- 重定向(类型 5):当路由器发现数据包的下一跳不是最优路径时,向源主机发送 ICMP 重定向报文,告知源主机更优的下一跳地址,帮助源主机更新路由表。
3. ARP 协议(地址解析协议)
ARP 用于将 IP 地址解析为对应的 MAC 地址,因为数据链路层的传输需要 MAC 地址来定位主机。
- 工作原理:
- 主机 A 需要向主机 B(IP 地址为 192.168.1.2)发送数据,首先查询本地 ARP 缓存表,查看是否存在 IP 地址 192.168.1.2 对应的 MAC 地址。
- 若 ARP 缓存中无主机 B 的 MAC 地址,主机 A 以广播形式发送 ARP 请求报文,报文中包含自己的 IP 地址、MAC 地址以及目标 IP 地址(192.168.1.2)。
- 所有主机接收请求,目标主机 B 回复 ARP 应答报文(包含自己的 MAC 地址)。
- 主机 A 更新 ARP 缓存,使用主机 B 的 MAC 地址封装数据帧。
4. RARP 协议(反向地址解析协议)
- 作用:通过 MAC 地址获取 IP 地址(常用于无盘工作站启动时获取 IP),现已被 DHCP 替代。
四、数据链路层(Data Link Layer)
作用:将网络层的 IP 数据包封装为帧,负责同一链路内主机间的数据传输,处理物理地址(MAC)和错误检测。
1. Ethernet 协议(以太网协议)
- 应用场景:局域网(LAN)中最常用的协议,定义以太网帧格式。
- 帧结构:
- 前导码:7 字节 10101010,用于同步接收端时钟。
- 帧开始定界符:1 字节 10101011,标识帧开始。
- 源 MAC 地址(6 字节)、目的 MAC 地址(6 字节):数据链路层寻址。
- 类型字段(2 字节):标识上层协议(如 0x0800 表示 IP 协议)。
- 数据字段(46-1500 字节):封装网络层数据包。
- CRC 校验码(4 字节):用于检测帧传输中的错误。
- 介质访问控制(CSMA/CD):早期以太网通过载波侦听多路访问 / 冲突检测机制,避免多个主机同时发送数据导致冲突。
2. PPP 协议(点到点协议)
- 作用:用于点对点链路(如拨号上网、路由器间连接),支持身份验证(PAP/CHAP)和链路配置。
- 组成部分:
- LCP(链路控制协议):建立、配置和测试数据链路连接。
- NCP(网络控制协议):支持不同网络层协议(如 IP、IPX)的配置。
- 封装格式:帧头(标志位、地址、控制)+ 协议字段 + 数据 + FCS(帧校验序列)。
3. HDLC 协议(高级数据链路控制协议)
- 作用:用于同步通信链路(如专线),面向比特流传输,支持全双工通信,无差错控制(需上层处理)。
4. 802.11 协议(Wi-Fi 协议)
- 作用:无线局域网的数据链路层协议,定义无线信道的访问控制(CSMA/CA,冲突避免)和加密机制(WPA/WPA2)。
五、物理层(Physical Layer)
作用:定义物理介质的电气特性、机械特性、传输速率和信号编码方式,实现比特流的透明传输。
1. 物理介质标准
- 双绞线(Ethernet):如 CAT5e(支持 100Mbps)、CAT6(支持 1Gbps),用于有线局域网。
- 光纤(Fiber Optic):通过光信号传输,支持高速长距离传输(如 10Gbps、100Gbps),常见标准有 IEEE 802.3ah(EPON)。
- 无线介质:电磁波(如 Wi-Fi 的 2.4GHz/5GHz 频段)、微波(用于卫星通信)。
2. 电气与信号标准
- IEEE 802.3(以太网物理层):定义双绞线 / 光纤的电气特性,如传输速率(10Mbps、100Mbps、1Gbps 等)。
- RS-232/RS-485:串行通信标准,用于串口设备连接(如老式调制解调器)。
- 信号编码:如曼彻斯特编码(以太网)、NRZ(不归零码,光纤通信)。
3. 接口标准
- RJ-45:双绞线接口,用于以太网连接。
- SC/LC/FC:光纤接口,用于光纤网络。
总结:五层模型协议交互流程示例
以网页浏览(HTTP)为例,数据传输流程如下:
- 应用层:浏览器生成 HTTP 请求,封装数据。
- 传输层:TCP 协议将数据分段,添加源端口(如 50000)和目的端口(80),三次握手建立连接。
- 网络层:IP 协议添加源 IP 和目的 IP,查询路由表确定路径。
- 数据链路层:Ethernet 协议封装 IP 包为帧,添加源 MAC 和目的 MAC,通过 CRC 校验。
- 物理层:将帧转换为电信号 / 光信号,通过网线 / 光纤传输。
- 接收端按相反顺序解封装,最终应用层解析 HTTP 响应,渲染网页。
通过各层协议的协同,实现了从应用需求到物理传输的完整数据通信过程。