TCP/IP协议族体系结构
现在的Internet的主流协议族为TCP/IP协议族,这是一个分层、多协议的通信体系。TCP/IP协议族采用四层体系结构,自上而下分别为:应用层、传输层、网络层、数据链路层。每一层封装不同的通信职责,下层为上层提供服务,最终实现全球范围内的数据通信。

图中展示了TCP/IP协议族各层的主要协议及其关系。数据从应用层向下逐层封装,经过物理介质传输后,在对端逐层解封并交付。
01. 数据链路层
数据链路层负责在两个相邻节点之间的物理链路上,实现”帧”的可靠传输。它处理的是同一网络段内(如同一个局域网)设备之间的通信,不涉及跨网络转发。
核心功能:
- 成帧:将网络层交下来的IP数据报封装成”帧”,添加帧头和帧尾(含MAC地址、校验序列等)。
- 物理寻址:使用MAC地址(48位物理地址,如
00:11:22:33:44:55)唯一标识网络中的物理设备。 - 差错检测:通过CRC(循环冗余校验)等机制检测帧在传输中是否出现比特错误,出错则丢弃该帧。
- 介质访问控制:当多台设备共享同一传输介质时(如Wi-Fi),协调谁在何时发送数据,避免冲突。
主要协议:
- 以太网(Ethernet):最主流的有线局域网技术,使用CSMA/CD(载波侦听多路访问/冲突检测)机制,广泛部署于家庭和企业网络。
- PPP(点对点协议):用于拨号上网、专线连接等点对点场景,包含LCP(链路控制协议)和NCP(网络控制协议)两个子协议,分别负责链路建立和网络层配置。


详细内容见:数据链路层:NCP与LCP协议详解(二)
02. 网络层
网络层的核心任务是实现跨网络的数据传输——将数据包从源主机,经过沿途多个路由器的接力转发,最终送达目标主机。如果说数据链路层解决的是”同一网络内的通信”,网络层解决的就是”不同网络之间的通信”。
核心功能:
- IP寻址:为互联网上的每台主机分配一个全局唯一的IP地址(IPv4为32位,如
192.168.1.1;IPv6为128位),用于在网络中定位目标设备。 - 路由选择:路由器通过路由协议(如OSPF、BGP)维护路由表,为每个数据包计算从源到目标的最佳转发路径,实现”逐跳转发”。
- 异构网络互联:互联网由以太网、Wi-Fi、4G/5G、光纤等不同类型的网络组成,IP协议统一封装上层数据,屏蔽底层网络差异,使它们能够透明协作。
主要协议:
- IP(Internet Protocol,因特网协议):网络层的核心协议,根据数据包的目的IP地址决定如何投递信息。IPv4报文首部包含版本、TTL(生存时间)、协议类型、源/目的IP地址等关键字段。
- ICMP(Internet Control Message Protocol,因特网控制报文协议):IP的辅助协议,用于网络诊断和错误报告。典型应用:
ping测试主机连通性,traceroute跟踪数据包传输路径。 - ARP(Address Resolution Protocol,地址解析协议):工作在IP与数据链路层之间,负责将IP地址解析为MAC地址——局域网内的实际通信依赖MAC地址,主机通过ARP广播获取目标设备的MAC地址。


详细内容见:网络层:IP协议与跨网络通信(三)
03. 传输层
传输层为两台主机上的应用程序提供端到端(end-to-end)的通信。如果说网络层把数据送到了”目标主机”,传输层则负责把数据精准投递到”目标主机上的具体应用程序”。
传输层只关心通信的起始端和目的端,并不在乎数据包的中转过程——这是它和网络层在职责上的根本区别。
核心功能:
- 端口寻址:通过16位端口号(范围 0-65535)区分主机上运行的不同应用进程。例如:Web服务默认使用80端口,DNS使用53端口。
- 多路复用与分用:发送方多个应用的数据可以共享同一条网络层连接;接收方根据端口号将数据分发给对应的应用程序。
- 可靠性 / 高效性取舍:根据应用场景,在”可靠传输”和”高效传输”之间做出选择。
主要协议:
-
TCP(Transmission Control Protocol,传输控制协议):面向连接、可靠的传输协议。通信前通过”三次握手”建立连接;通过序列号、确认应答、超时重传保证数据不丢不错;通过滑动窗口进行流量控制,防止发送方过快导致接收方溢出。适用于网页浏览(HTTP/HTTPS)、文件下载(FTP)、邮件传输(SMTP)等对数据完整性要求高的场景。
-
UDP(User Datagram Protocol,用户数据报协议):无连接、不可靠、轻量的传输协议。无需建立连接即可直接发送数据;不保证数据到达、不保证顺序、丢失不重传;头部开销仅8字节(TCP至少20字节)。适用于视频通话、在线游戏、直播等实时性优先、可容忍少量丢包的场景。

| 对比维度 | TCP | UDP |
|---|---|---|
| 连接方式 | 面向连接(需三次握手) | 无连接(直接发送) |
| 可靠性 | 可靠(确认+重传) | 不可靠(尽最大努力交付) |
| 传输顺序 | 有序 | 不保证顺序 |
| 首部开销 | 至少20字节 | 8字节 |
| 流量/拥塞控制 | 支持 | 不支持 |
| 典型应用 | HTTP、FTP、SMTP、SSH | DNS、直播、视频通话、在线游戏 |
详细内容见:传输层:TCP/UDP与端到端通信(一)
04. 应用层
应用层是TCP/IP协议族的最高层,直接为用户的网络应用程序提供服务。应用层协议定义了应用进程之间交换报文的类型、语法、语义和交互规则。
根据功能不同,应用层协议可分为以下几类:
1. Web浏览类
| 协议 | 端口 | 说明 |
|---|---|---|
| HTTP | 80 | 超文本传输协议,Web应用的基础,采用请求-响应模型 |
| HTTPS | 443 | HTTP的安全版本,通过SSL/TLS提供加密传输和身份验证 |
2. 文件传输类
| 协议 | 端口 | 说明 |
|---|---|---|
| FTP | 21(控制)/ 20(数据) | 文件传输协议,支持主动/被动两种模式 |
| SFTP | 22 | 基于SSH的安全文件传输,加密所有数据和凭证 |
3. 电子邮件类
| 协议 | 端口 | 说明 |
|---|---|---|
| SMTP | 25 / 587 / 465 | 负责邮件的发送和中继传输 |
| POP3 | 110 / 995 | 将邮件从服务器下载到本地,默认下载后删除 |
| IMAP | 143 / 993 | 在服务器端管理邮件,支持多设备同步 |
4. 远程登录类
| 协议 | 端口 | 说明 |
|---|---|---|
| Telnet | 23 | 明文远程终端协议,不安全,主要用于内网调试 |
| SSH | 22 | 加密的安全Shell,提供远程命令执行和文件传输 |
5. 其他重要协议
| 协议 | 传输层 | 端口 | 说明 |
|---|---|---|---|
| DNS | UDP/TCP | 53 | 域名系统,将域名解析为IP地址 |
| DHCP | UDP | 67/68 | 动态主机配置,自动分配IP地址、网关、DNS等 |
| SNMP | UDP | 161/162 | 网络设备监控与管理 |
| WebSocket | TCP | 80/443 | 全双工持久通信,适用于聊天、实时协作 |


详细内容见:应用层:协议与网络应用模型(五)
封装
封装(Encapsulation)是指发送方将应用数据逐层添加协议首部(和尾部),最终转换为物理信号发送出去的过程。每一层都在上层交下来的数据前加上自己的控制信息,接收方则通过分用逐层还原。
以用户使用浏览器访问网页为例,数据的封装过程如下:
1. 应用层 → 传输层
应用层产生原始数据(如HTTP请求报文),交给传输层。传输层根据应用类型选择TCP或UDP,在数据前添加TCP首部(含源端口、目的端口、序列号等)或UDP首部(含源端口、目的端口、长度、校验和),形成 TCP报文段(Segment) 或 UDP用户数据报。
2. 传输层 → 网络层
传输层将报文段交给网络层。网络层添加IP首部(含源IP地址、目的IP地址、TTL、协议类型等),形成 IP数据报(Packet)。此时数据包已经具备了在互联网中寻址和路由的全部信息。
3. 网络层 → 数据链路层
网络层将IP数据报交给数据链路层。数据链路层添加帧头(含目的MAC地址、源MAC地址、类型字段)和帧尾(含CRC校验序列),形成 帧(Frame)。帧是局域网内实际传输的数据单元。
4. 数据链路层 → 物理介质
数据链路层将帧转换为比特流(0和1序列),通过物理层的电信号、光信号或无线电波传输到对端设备。
应用层数据(Message) ↓ + TCP/UDP 首部传输层:TCP报文段 / UDP数据报(Segment / Datagram) ↓ + IP 首部网络层:IP数据报(Packet) ↓ + 帧头 + 帧尾数据链路层:帧(Frame) ↓ 转换为比特流物理介质:比特流(Bits)分用
分用(Demultiplexing)是封装的逆过程——接收方将收到的数据根据协议类型,逐层剥去首部并向上交付给对应的上层协议处理,最终送达目标应用进程。
- 数据链路层 → 网络层:帧头中的类型字段标识上层协议(如
0x0800表示IP、0x0806表示ARP),链路层据此将数据上交给对应的网络层协议。 - 网络层 → 传输层:IP首部中的协议字段标识上层协议(6=TCP、17=UDP、1=ICMP),IP层据此分用。
- 传输层 → 应用层:TCP/UDP首部中的目的端口号标识目标应用进程(如80=HTTP、53=DNS),传输层据此将数据交付给对应的应用程序。
封装是发送方逐层添加首部的过程,分用则是接收方逐层识别首部字段并向上交付的逆过程——两者共同构成了TCP/IP协议族数据收发的完整闭环。

总结
TCP/IP协议族的四层体系结构,每一层各司其职、协作配合:
| 层级 | 数据单元 | 核心职责 | 关键协议 |
|---|---|---|---|
| 应用层 | 报文(Message) | 为用户应用提供网络服务 | HTTP、DNS、FTP、SMTP、SSH |
| 传输层 | 报文段(Segment) | 端到端通信,端口寻址,可靠性/效率取舍 | TCP、UDP |
| 网络层 | 数据报(Packet) | IP寻址与跨网络路由转发 | IP、ICMP、ARP |
| 数据链路层 | 帧(Frame) | 相邻节点间的帧传输与差错检测 | Ethernet、PPP |
从发送方的封装(数据逐层添加首部下沉),到接收方的分用(数据逐层剥去首部上升),TCP/IP协议族以分层协作的方式,实现了从本地物理链路到全球互联网的完整通信能力。
Some information may be outdated