TCP/IP 网络模型详解

TCP/IP 是互联网的核心协议栈,它将复杂的网络通信抽象为四层分层结构,每一层专注于特定的职责,层与层之间通过标准接口交互,既保证了兼容性,又简化了开发和维护难度。它不是单一协议,而是以 TCP 和 IP 为核心的上百个协议的集合,是目前全球互联网的事实工业标准。

一、TCP/IP 模型整体架构

TCP/IP 模型采用自顶向下的四层设计,从上层到下层依次为:应用层 → 传输层 → 网络层 → 网络接口层

  • 上层依赖下层提供的服务,下层为上层屏蔽底层实现细节
  • 发送数据时:数据从上到下逐层封装(添加各层头部)
  • 接收数据时:数据从下到上逐层解封装(剥离各层头部)
  • 应用层工作在用户态,传输层及以下工作在操作系统内核态

二、分层详细讲解

1. 应用层(Application Layer)

核心职责

直接面向用户和应用程序,提供具体的业务功能,是唯一与用户交互的层级。应用层只关心业务数据的格式和语义,完全不需要关心数据如何在网络中传输。

核心协议

表格

协议 全称 用途 默认端口
HTTP 超文本传输协议 网页资源传输 80
HTTPS 安全超文本传输协议 加密的网页资源传输 443
DNS 域名系统 域名 ↔ IP 地址解析 53
FTP 文件传输协议 文件上传与下载 20 (数据)/21 (控制)
SMTP 简单邮件传输协议 发送邮件 25
POP3/IMAP 邮局协议 / 互联网消息访问协议 接收邮件 110/143
SSH 安全外壳协议 远程安全登录 22
数据单位

消息 / 报文(Message),例如 HTTP 请求报文、HTTP 响应报文。

补充知识
  • 应用层协议可以自定义,只要通信双方约定好数据格式即可(如 RPC 协议、WebSocket 协议)
  • 不同的应用对应不同的应用层协议,例如浏览器用 HTTP/HTTPS,邮件客户端用 SMTP/POP3

2. 传输层(Transport Layer)

核心职责

为应用层提供 ** 端到端(进程到进程)** 的通信服务,解决 “数据发给哪个应用” 的问题。它屏蔽了底层网络的细节,让应用层看起来像是在两个进程之间直接传输数据。

核心协议

TCP/IP 传输层有两个完全不同的协议,分别适用于不同的业务场景:

(1)TCP(传输控制协议)
  • 特性:面向连接、可靠传输、字节流、流量控制、拥塞控制
  • 适用场景:对数据完整性要求高的场景,如网页浏览、文件传输、邮件发送
  • 核心机制
    • 三次握手建立连接、四次挥手断开连接
    • 超时重传:丢失的数据包会自动重发
    • 序号与确认号:解决数据包乱序和丢包问题
    • 滑动窗口:实现流量控制,防止发送方发送过快导致接收方溢出
    • 拥塞控制:根据网络拥塞程度调整发送速率
(2)UDP(用户数据报协议)
  • 特性:无连接、不可靠、面向数据报、传输效率高、延迟低
  • 适用场景:对实时性要求高、允许少量丢包的场景,如视频通话、直播、游戏
  • 核心优势:不需要建立连接,没有握手和挥手的开销,头部只有 8 字节(TCP 头部至少 20 字节)
关键概念:端口号
  • 作用:唯一标识一台主机上的不同应用进程
  • 范围:16 位整数,0~65535
  • 分类:
    • 知名端口(0~1023):固定分配给常用服务,如 80 (HTTP)、443 (HTTPS)
    • 注册端口(1024~49151):分配给普通应用程序
    • 动态端口(49152~65535):客户端临时使用,由操作系统自动分配
数据单位
  • TCP:段(Segment),当应用层数据超过 MSS(最大报文段长度,默认 1460 字节)时,TCP 会将数据拆分为多个段
  • UDP:数据报(Datagram),不进行分段,超过 MTU 时由网络层负责分片

3. 网络层(Internet Layer)

核心职责

实现主机到主机的通信,解决 “数据从哪台主机来,到哪台主机去” 的问题。核心功能是寻址路由

  • 寻址:通过 IP 地址唯一标识互联网上的每一台主机
  • 路由:选择数据包从源主机到目的主机的最佳传输路径
核心协议
(1)IP 协议(网际协议)
  • 版本:IPv4(32 位地址)和 IPv6(128 位地址,解决 IPv4 地址耗尽问题)
  • IP 地址结构:分为网络号主机号两部分
    • 网络号:标识主机所在的子网
    • 主机号:标识子网内的具体主机
  • 子网掩码:用于计算 IP 地址的网络号和主机号,例如 255.255.255.0(/24)表示前 24 位是网络号
  • 核心特性:无连接、不可靠、尽力传输,只负责把数据包送到目的地,不保证送达,可靠性由上层 TCP 保证
(2)ICMP 协议(互联网控制消息协议)
  • 作用:用于网络诊断和错误报告
  • 典型应用:ping(测试网络连通性)、traceroute(追踪数据包传输路径)
(3)ARP 协议(地址解析协议)
  • 作用:根据 IP 地址获取对应的 MAC 地址
  • 工作原理:在局域网内广播 ARP 请求,询问 “谁拥有这个 IP 地址”,拥有该 IP 的主机返回自己的 MAC 地址
  • ARP 缓存:操作系统会缓存 IP-MAC 映射关系,有效期约几分钟,避免重复广播
关键概念
  • MTU(最大传输单元):以太网默认 MTU 为 1500 字节,即一个 IP 数据包的最大长度。如果 IP 数据包超过 MTU,会被分片为多个小数据包,到达目的地后再重组
  • 路由表:路由器和主机中维护的一张表,记录了不同子网的转发路径。数据包转发时,会根据目的 IP 地址查询路由表,选择下一跳的地址
数据单位

包(Packet)


4. 网络接口层(Network Interface Layer)

TCP/IP 模型将 OSI 模型的数据链路层物理层合并为网络接口层,是整个模型的最底层,负责在物理网络上传输原始的二进制数据。

(1)数据链路层(子层)
  • 核心职责:实现相邻节点之间的可靠传输,解决 “数据在同一个局域网内发给哪个设备” 的问题
  • 核心协议:以太网协议(最常用)、PPP 协议(拨号上网)
  • 关键概念:MAC 地址
    • 全称:媒体访问控制地址,是网卡的物理地址,全球唯一
    • 长度:48 位,通常表示为 12 个十六进制字符,如 00:1A:2B:3C:4D:5E
    • 作用:在局域网内唯一标识一台设备,数据链路层通过 MAC 地址寻址
  • 数据单位:帧(Frame),由 MAC 头部、IP 数据包、帧尾(FCS 校验和)组成
  • 核心功能:
    • 封装成帧:将网络层的 IP 包加上 MAC 头部和帧尾
    • 差错检测:通过帧尾的 FCS 校验和检测传输过程中是否出错
    • 透明传输:保证任何二进制数据都能正确传输
(2)物理层(子层)
  • 核心职责:将数据链路层的帧转换为电信号、光信号或无线电波,在物理介质上传输
  • 物理介质:网线(双绞线)、光纤、WiFi、蓝牙等
  • 不关心数据的含义,只负责传输 0 和 1 的比特流

三、数据封装与解封装全过程

以浏览器访问网页为例,数据在 TCP/IP 模型中的传输过程如下:

发送方(客户端):从上到下逐层封装

  1. 应用层:浏览器生成 HTTP 请求报文(包含请求行、请求头、请求体)
  2. 传输层:给 HTTP 报文加上 TCP 头部(源端口、目的端口、序号、确认号等),形成 TCP 段
  3. 网络层:给 TCP 段加上 IP 头部(源 IP 地址、目的 IP 地址、协议号等),形成 IP 包
  4. 网络接口层
    • 数据链路层:给 IP 包加上 MAC 头部(源 MAC、目的 MAC)和帧尾(FCS),形成以太网帧
    • 物理层:将以太网帧转换为电信号,通过网线发送出去

传输过程

  • 数据包经过交换机时,根据 MAC 地址转发到同一局域网内的目标设备
  • 数据包经过路由器时,剥离 MAC 头部,根据目的 IP 地址查询路由表,选择下一跳,重新封装 MAC 头部后转发
  • 重要特性:传输过程中,源 IP 和目的 IP 始终不变(不考虑 NAT),源 MAC 和目的 MAC 每经过一个路由器都会改变

接收方(服务器):从下到上逐层解封装

  1. 物理层:将电信号转换为以太网帧,交给数据链路层
  2. 数据链路层:检查 MAC 地址是否为本机地址,验证 FCS 校验和,剥离 MAC 头部和帧尾,将 IP 包交给网络层
  3. 网络层:检查 IP 地址是否为本机地址,剥离 IP 头部,将 TCP 段交给传输层
  4. 传输层:根据端口号找到对应的应用进程(如 80 端口的 Web 服务器),剥离 TCP 头部,将 HTTP 请求报文交给应用层
  5. 应用层:Web 服务器处理 HTTP 请求,生成 HTTP 响应报文,再按照相同的封装过程返回给客户端

四、TCP/IP 模型 vs OSI 七层模型

OSI 是国际标准化组织制定的理论模型,共 7 层,但过于复杂,没有实际落地;TCP/IP 是工业界实际使用的标准,两者的对应关系如下:

表格

OSI 七层模型 TCP/IP 四层模型 核心功能
应用层 应用层 提供应用业务功能
表示层 应用层 数据格式转换、加密解密
会话层 应用层 建立和管理会话
传输层 传输层 端到端通信
网络层 网络层 主机到主机通信、路由
数据链路层 网络接口层 相邻节点通信、MAC 寻址
物理层 网络接口层 传输比特流

五、核心总结

TCP/IP 四层模型通过分层思想,将复杂的网络通信拆解为独立的模块,每一层只专注于自己的职责:

  • 应用层:管 “做什么”(业务数据)
  • 传输层:管 “发给谁”(进程到进程)
  • 网络层:管 “走哪条路”(主机到主机)
  • 网络接口层:管 “怎么传”(物理传输)
Logo

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

更多推荐