一个数据包的“旅程”
1. IP:把数据包送达目的主机
计算机在网络中的地址称为 IP 地址。访问任何网站,本质上都是你的计算机向另一台计算机请求信息的过程。
简化的 IP 网络三层传输模型:

2. UDP:把数据包送达应用程序
IP 协议负责将数据包发送给指定的计算机,但这还不够,因为计算机上运行着各种不同的程序。
- 定义:“用户数据包协议(User Datagram Protocol)”,简称 UDP。
- 作用:UDP 中最重要的信息是端口号。IP 通过 IP 地址把数据包发送给指定的电脑,而 UDP 通过端口号把数据包分发给正确的程序。
- 特点:UDP 不保证数据的可靠性,但传输速度非常快,适用于对实时性要求高但对丢包不敏感的应用(如视频会议、在线游戏)。
简化的 UDP 网络四层传输模型:

3. TCP:把数据完整地送达应用程序
对于要求数据传输**可靠性(Reliability)**的应用,如果直接使用 UDP 传输会面临两个主要问题:
- 丢包:数据包在传输过程中容易丢失。
- 乱序:大文件会被拆分成多个小数据包传输,这些数据包可能经过不同的路由、在不同时间到达。UDP 无法将这些乱序包还原为原始文件。
TCP(Transmission Control Protocol,传输控制协议) 是一种面向连接的、可靠的、基于字节流的传输层通信协议。相对于 UDP,TCP 具备以下核心特点:
- 重传机制:针对数据包丢失的情况,TCP 提供重传功能。
- 排序机制:TCP 引入了数据包排序,保证乱序到达的数据包能被重新组合成完整的文件。
简化的 TCP 网络四层传输模型:

TCP 连接的生命周期
一个完整的 TCP 连接生命周期包含三个阶段:“建立连接”、“传输数据”和“断开连接”。

建立连接阶段
- 该阶段通过“三次握手”来建立客户端和服务器之间的连接。
- TCP 提供面向连接的通信传输。面向连接是指在数据通信开始之前,先做好两端之间的准备工作。
- 三次握手:指在建立一个 TCP 连接时,客户端和服务器总共要发送三个数据包以确认连接的建立。
传输数据阶段
- 在该阶段,接收端需要对每个数据包进行确认操作。即接收端收到数据包后,需发送确认数据包给发送端。
- 重发机制:若发送端在规定时间内未收到确认消息,则判断数据包丢失,触发重发。
- 排序重组:大文件被拆分的小数据包到达接收端后,接收端会根据 TCP 头中的序号进行排序,从而保证组成完整的数据。
断开连接阶段
- 数据传输完毕后,需要终止连接。
- 此阶段涉及“四次挥手”,以确保双方都能安全断开连接,释放资源。
总结
- 数据包传输:互联网中的数据通过数据包传输,传输过程面临丢失或出错的风险。
- IP 协议:负责将数据包准确送达目的主机。
- UDP 协议:负责通过端口号将数据包分发给具体的应用程序,速度快但不可靠。
- TCP 协议:保证数据的完整性和可靠性。其连接生命周期分为三个阶段:
- 建立连接(三次握手)
- 传输数据(确认、重传、排序)
- 断开连接(四次挥手)