TCP/IP 协议基础总结
一、网络模型: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 分片
- MTU(最大传输单元):链路层 / 网络层能传输的最大帧 / 包,默认以太网 MTU 为 1500 字节,Cisco 设备可通过 MTU、IP MTU 等命令分别配置不同报文的最大传输长度。
- IP 分片规则:数据包超过出接口 MTU 时,DF=0 则分片,DF=1 则丢弃;分片仅在目标主机重组,通过标识符(同包分片标识相同)、标志位(MF=1 表示后续有分片,MF=0 为最后一片)、分段偏移量(标识分片在原包中的位置,单位 8 字节)实现正确重组。
三、TCP 与 UDP:传输层两大核心协议
传输层为应用层提供端到端通信服务,核心为 TCP 和 UDP 协议,二者特性互补,适用于不同业务场景。
(一)TCP 协议:面向连接的可靠传输
Transmission Control Protocol(传输控制协议),核心是面向连接、可靠传输,适用于对可靠性要求高的应用(如 HTTP、FTP)。
- 核心特性:全双工通信、有序传输、差错校验、超时重传、流量控制,数据传输分建立连接、传输数据、断开连接三阶段。
- TCP 包头:基础 20 字节,含源 / 目标端口(16 位,1024 以下为知名端口)、序号 / 确认号(32 位,实现有序传输与确认)、窗口(16 位,滑动窗口大小,用于流量控制)、编码位(6 位 TCP Flag,如 SYN = 建立连接、FIN = 断开连接、ACK = 确认、RST = 复位等)。
- 核心工作机制
- 三次握手:建立 TCP 连接,协商 TCP MSS(最大分段长度,解决大报文不通问题,网络设备可通过
ip tcp adjust-mss干预协商); - 传输确认 / 超时重传:接收端对收到的数据按字节确认,发送端超时未收到确认则重传丢失数据;
- 滑动窗口:实现流量控制,拥塞时减小窗口,传输稳定时逐步增大窗口;
- 四次断开(可简化为三次):释放 TCP 连接,支持半关闭选项,保障双方数据均传输完成。
- 三次握手:建立 TCP 连接,协商 TCP MSS(最大分段长度,解决大报文不通问题,网络设备可通过
(二)UDP 协议:无连接的高效传输
User Datagram Protocol(用户数据报协议),核心是无连接、高效传输,适用于对延迟敏感、可容忍少量丢包的应用(如 DNS、TFTP、视频流)。
- 核心特性:无连接、不可靠(无确认、无重传),仅提供简单校验和差错控制,无流量控制,包头小(仅 8 字节)、开销低、传输效率高,可靠性由应用层保障。
- UDP 包头:共 8 字节,含源 / 目标端口、长度(UDP 总长度,包头 + 数据)、校验和(校验包头 + 数据,计算时涉及伪 IP 头部)。
- 校验和:计算覆盖伪 IP 头部、UDP 头部及数据,数据非 16 位整数倍时需填充,是 UDP 唯一的差错控制手段。
四、上层协议标识:各层协议的识别规则
网络各层通过特定标识字段识别上层协议 / 应用,实现数据正确提交至对应进程,核心标识规则及常用值如下:
- 数据链路层:通过以太网类型号提交至网络层,如 IPv4=0x0800、ARP=0x0806、IPv6=0x86dd;
- 网络层:通过IP 协议号提交至传输层,如 ICMP=1、TCP=6、UDP=17、OSPF=89;
- 传输层:通过端口号(TCP/UDP 独立)提交至应用层进程,1024 以下为知名端口,如 TCP 的 HTTP=80、HTTPS=443,UDP 的 DNS=53、DHCP=67/68。
五、核心总结
- TCP/IP 协议栈是实际网络通信的基础,基于五层模型实现从物理比特流到应用层服务的端到端通信,核心是分层解耦,各层各司其职且向下层提供服务、向上层获取服务;
- 网络层 IP 协议实现全网寻址与路由,是互连的核心,但仅提供尽力而为的无连接服务,可靠性由传输层 TCP 保障;
- 传输层 TCP 与 UDP 为应用层提供两种互补服务:TCP 的可靠连接适用于高可靠性需求,UDP 的无连接高效适用于低延迟需求;
- 各层通过专属标识字段实现协议 / 应用的精准识别,是数据在协议栈中正确流转的关键,熟记常用类型号、协议号、端口号是排查网络问题的基础。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)