一、网络模型:OSI 参考模型与 TCP/IP 模型

(一)OSI 参考模型

由 ISO 于 1984 年提出,解决网络设备兼容性问题,分为 7 层,采用对等通信(同层用相同协议,下层为上层提供服务)和封装与解封装(发送方逐层加报头,接收方逐层解报头)机制,各层核心功能与数据单元如下:

表格

层级 核心功能 数据单元
应用层 为应用程序进程提供网络服务 APDU
表示层 处理数据格式、加密,定义数据结构 PPDU
会话层 建立、维护、终结应用程序会话 SPDU
传输层 端到端连接,提供可靠 / 无连接服务 段(Segment)
网络层 寻址、路由选择,异种网络互连 包(Packet)
数据链路层 介质访问、编帧、差错验证、寻址 帧(Frame)
物理层 定义电压、接口等,实现比特流传输 比特(Bit)
其中网络层分为可路由协议(IP、IPX)、不可路由协议(NETBEUI)、路由协议(RIP、OSPF、BGP);传输层分面向连接(可靠、有序,适用于高可靠性需求)和无连接(尽力而为,适用于低延迟需求)服务。

(二)TCP/IP 网络模型

对 OSI 模型进行简化,主流为五层模型,与 OSI 模型逐层对应,其协议栈按层划分了核心协议,是实际网络通信的核心模型:

表格

TCP/IP 五层模型 核心协议
应用层 DHCP、DNS、HTTP、FTP、SMTP、SNMP 等
传输层 TCP、UDP
网络层 IP、ARP、ICMP
数据链路层 Ethernet、PPP、HDLC、帧中继等
物理层 100Base-TX、1000Base-T、V.35 等

二、IP 协议:网络层核心协议

IP 协议是网络层核心的可路由协议,为传输层提供网络互连服务,核心特性与报文结构、分片机制如下:

(一)核心特点

无连接、尽力而为传输,数据包无序传送且不可靠,可靠性由上层 TCP 协议保障,仅负责数据包的寻址与路由转发。

(二)IP 包头结构

基础包头为 20 字节,含可选字段,核心字段包括:版本(IPv4 为 4)、包头长度(单位 4 字节)、TTL(存活时间,每转发一次减 1,防环路)、协议(8 位,标识上层协议,如 TCP=6、UDP=17)、源 / 目标 IP 地址,以及用于分片的标识符、标志位、分段偏移量

(三)MTU 与 IP 分片

  1. MTU(最大传输单元):链路层 / 网络层能传输的最大帧 / 包,默认以太网 MTU 为 1500 字节,Cisco 设备可通过 MTU、IP MTU 等命令分别配置不同报文的最大传输长度。
  2. IP 分片规则:数据包超过出接口 MTU 时,DF=0 则分片,DF=1 则丢弃;分片仅在目标主机重组,通过标识符(同包分片标识相同)、标志位(MF=1 表示后续有分片,MF=0 为最后一片)、分段偏移量(标识分片在原包中的位置,单位 8 字节)实现正确重组。

三、TCP 与 UDP:传输层两大核心协议

传输层为应用层提供端到端通信服务,核心为 TCP 和 UDP 协议,二者特性互补,适用于不同业务场景。

(一)TCP 协议:面向连接的可靠传输

Transmission Control Protocol(传输控制协议),核心是面向连接、可靠传输,适用于对可靠性要求高的应用(如 HTTP、FTP)。

  1. 核心特性:全双工通信、有序传输、差错校验、超时重传、流量控制,数据传输分建立连接、传输数据、断开连接三阶段。
  2. TCP 包头:基础 20 字节,含源 / 目标端口(16 位,1024 以下为知名端口)、序号 / 确认号(32 位,实现有序传输与确认)、窗口(16 位,滑动窗口大小,用于流量控制)、编码位(6 位 TCP Flag,如 SYN = 建立连接、FIN = 断开连接、ACK = 确认、RST = 复位等)。
  3. 核心工作机制
    • 三次握手:建立 TCP 连接,协商 TCP MSS(最大分段长度,解决大报文不通问题,网络设备可通过ip tcp adjust-mss干预协商);
    • 传输确认 / 超时重传:接收端对收到的数据按字节确认,发送端超时未收到确认则重传丢失数据;
    • 滑动窗口:实现流量控制,拥塞时减小窗口,传输稳定时逐步增大窗口;
    • 四次断开(可简化为三次):释放 TCP 连接,支持半关闭选项,保障双方数据均传输完成。

(二)UDP 协议:无连接的高效传输

User Datagram Protocol(用户数据报协议),核心是无连接、高效传输,适用于对延迟敏感、可容忍少量丢包的应用(如 DNS、TFTP、视频流)。

  1. 核心特性:无连接、不可靠(无确认、无重传),仅提供简单校验和差错控制,无流量控制,包头小(仅 8 字节)、开销低、传输效率高,可靠性由应用层保障。
  2. UDP 包头:共 8 字节,含源 / 目标端口、长度(UDP 总长度,包头 + 数据)、校验和(校验包头 + 数据,计算时涉及伪 IP 头部)。
  3. 校验和:计算覆盖伪 IP 头部、UDP 头部及数据,数据非 16 位整数倍时需填充,是 UDP 唯一的差错控制手段。

四、上层协议标识:各层协议的识别规则

网络各层通过特定标识字段识别上层协议 / 应用,实现数据正确提交至对应进程,核心标识规则及常用值如下:

  1. 数据链路层:通过以太网类型号提交至网络层,如 IPv4=0x0800、ARP=0x0806、IPv6=0x86dd;
  2. 网络层:通过IP 协议号提交至传输层,如 ICMP=1、TCP=6、UDP=17、OSPF=89;
  3. 传输层:通过端口号(TCP/UDP 独立)提交至应用层进程,1024 以下为知名端口,如 TCP 的 HTTP=80、HTTPS=443,UDP 的 DNS=53、DHCP=67/68。

五、核心总结

  1. TCP/IP 协议栈是实际网络通信的基础,基于五层模型实现从物理比特流到应用层服务的端到端通信,核心是分层解耦,各层各司其职且向下层提供服务、向上层获取服务;
  2. 网络层 IP 协议实现全网寻址与路由,是互连的核心,但仅提供尽力而为的无连接服务,可靠性由传输层 TCP 保障;
  3. 传输层 TCP 与 UDP 为应用层提供两种互补服务:TCP 的可靠连接适用于高可靠性需求,UDP 的无连接高效适用于低延迟需求;
  4. 各层通过专属标识字段实现协议 / 应用的精准识别,是数据在协议栈中正确流转的关键,熟记常用类型号、协议号、端口号是排查网络问题的基础。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐