一、为什么需要网络分层模型?
网络通信涉及众多设备和复杂的流程。为了管理这种复杂性,实现不同厂商设备间的兼容性,并促进技术的模块化发展,计算机网络被设计为分层结构。每一层专注于特定的功能,并为其上层提供服务,同时使用其下层提供的服务。
核心目的:标准化不同设备间的通信,将复杂问题分解为多个可管理的小问题。
二、主流网络分层模型
-
OSI 七层模型 (Open Systems Interconnection Model):
-
定位:一个理论上完善的国际标准,用于指导网络协议的设计。
-
分层:
- 应用层:为应用程序提供网络服务 (HTTP, FTP, SMTP, DNS)。
- 表示层:数据格式转换、加密、压缩。
- 会话层:建立、管理和终止会话。
- 传输层:提供端到端的可靠或不可靠数据传输 (TCP, UDP)。
- 网络层:数据包的路由和转发,逻辑寻址 (IP, ICMP, IGMP)。
- 数据链路层:相邻节点间的数据传输,物理寻址 (MAC地址)。
- 物理层:比特流在物理介质上的传输。
-
-
TCP/IP 四层模型:
-
定位:事实上的工业标准,当前互联网运行的基础。
-
分层:
- 应用层:对应OSI的应用层、表示层、会话层 (HTTP, FTP, DNS)。
- 传输层:对应OSI的传输层 (TCP, UDP)。
- 网际层 (Internet Layer):对应OSI的网络层 (IP)。
- 网络接口层 (Link Layer):对应OSI的数据链路层和物理层。
-
-
五层参考模型 (教学常用):
-
定位:为了便于教学和理解,对OSI和TCP/IP模型进行折中。
-
分层:
- 应用层 (同TCP/IP应用层)
- 传输层 (同TCP/IP传输层)
- 网络层 (同TCP/IP网际层)
- 数据链路层 (对应OSI数据链路层)
- 物理层 (对应OSI物理层)
-
三、核心分层功能详解 (以五层模型为基础)
1. 应用层 (Application Layer)
- 核心功能:直接为用户的应用程序提供网络通信服务,定义应用程序之间数据交换的格式和规则。
- 常见协议:HTTP (Web访问), FTP (文件传输), SMTP (邮件发送), DNS (域名解析), Telnet (远程登录)。
- 特点:运行在用户态,应用程序通过应用层协议进行交互,不关心数据在网络中的具体传输细节。
2. 传输层 (Transport Layer)
-
核心功能:为不同主机上运行的应用程序进程之间提供端到端的逻辑通信。
-
关键要素:
-
端口号 (Port Number):用于区分同一主机上的不同应用程序进程。
-
主要协议:
-
TCP (Transmission Control Protocol - 传输控制协议):
- 特点:面向连接、可靠的字节流服务。
- 机制:通过序列号、确认应答、超时重传、滑动窗口(流量控制)、拥塞控制等机制保证数据按序、无差错、不丢失、不重复地到达。
- 数据单元:TCP段 (Segment)。
- 应用:HTTP, FTP, SMTP 等对可靠性要求高的场景。
-
UDP (User Datagram Protocol - 用户数据报协议):
- 特点:无连接、不可靠的数据报服务,尽力而为。
- 优势:开销小,传输效率高,实时性较好。
- 数据单元:UDP数据报 (Datagram)。
- 应用:DNS, DHCP, 实时音视频等对实时性要求高、能容忍少量丢包的场景。
-
-
-
数据分段:当应用层数据过大时 (如TCP中的MSS - Maximum Segment Size),传输层会将其分割成更小的数据块进行传输。
3. 网络层 (Network Layer / Internet Layer)
-
核心功能:负责将数据包从源主机跨网络路由转发到目标主机,实现主机到主机的通信。
-
关键要素:
- IP协议 (Internet Protocol):网络层的核心协议,提供无连接、不可靠的数据包传输服务。
- IP地址 (IP Address):全球唯一的逻辑地址,用于标识网络中的一台主机或路由器接口。分为网络号和主机号(通过子网掩码区分)。
- 路由 (Routing):根据目标IP地址,在复杂的网络中为数据包选择最佳的传输路径。路由器是实现路由的关键设备。
- 数据分片 (Fragmentation):当IP数据包大小超过链路的最大传输单元 (MTU) 时,IP层会将其分片传输,并在目标主机重组。
-
数据单元:IP数据包 (Packet / Datagram)。
4. 数据链路层 (Data Link Layer)
-
核心功能:负责在同一物理链路上的相邻节点之间(点到点或广播)传输数据帧。
-
关键要素:
- MAC地址 (Media Access Control Address):物理地址或硬件地址,固化在网卡上,用于在局域网内唯一标识网络设备。
- 帧 (Frame):数据链路层的数据传输单元。IP数据包被封装在帧中传输。
- ARP (Address Resolution Protocol - 地址解析协议):用于将IP地址解析为对应的MAC地址,以便在局域网内通信。
-
常见技术:以太网 (Ethernet), Wi-Fi (IEEE 802.11)。
5. 物理层 (Physical Layer)
- 核心功能:负责在物理传输介质上传输原始的比特流 (0和1)。
- 关注点:定义接口的机械特性、电气特性、功能特性、过程特性,如电压、线缆规格、数据传输速率、连接器类型等。
- 传输介质:双绞线、同轴电缆、光纤、无线电波等。
所以说,网络接口层主要为网络层提供「链路级别」传输的服务,负责在以太网、WiFi 这样的底层网络上发送原始数据包,工作在网卡这个层次,使用 MAC 地址来标识网络上的设备。
四、数据封装与解封装
数据在发送方从上层向下层传递时,每一层都会在数据前部(有时是尾部)添加该层的控制信息(头部/尾部),这个过程称为封装。在接收方,数据从下层向上层传递时,每一层会移除相应的控制信息,称为解封装。
-
发送过程 (封装):
网络接口层的传输单位是帧(frame),IP 层的传输单位是包(packet),TCP 层的传输单位是段(segment),HTTP 的传输单位则是消息或报文(message)。但这些名词并没有什么本质的区分,可以统称为数据包。
- 应用层: 用户数据 (Message)
- 传输层: TCP头部 + 用户数据 = TCP段 / UDP头部 + 用户数据 = UDP数据报
- 网络层: IP头部 + TCP段/UDP数据报 = IP数据包
- 数据链路层: 帧头 + IP数据包 + 帧尾 = 数据帧
- 物理层: 将数据帧转换为比特流
-
接收过程 (解封装): 与上述过程相反。
五、总结
网络分层模型将复杂的网络通信问题模块化,使得不同层级可以独立发展和标准化,极大地促进了互联网的普及和发展。理解这些模型是掌握计算机网络知识的基石。
Comments NOTHING