文章目录
-
- [一. TCP UDP HTTP 的是什么?](#一. TCP UDP HTTP 的是什么?)
- [二. 核心特性对比](#二. 核心特性对比)
-
- [1. TCP(传输控制协议)](#1. TCP(传输控制协议))
- [2. UDP(用户数据报协议)](#2. UDP(用户数据报协议))
- [3. HTTP(超文本传输协议)](#3. HTTP(超文本传输协议))
- [三. 关键维度对比表](#三. 关键维度对比表)
- [四. 总结](#四. 总结)
一. TCP UDP HTTP 的是什么?
- TCP 的什么?
TCP 的全称是 Transmission Control Protocol,中文翻译为传输控制协议。是计算机网络 OSI 七层模型中传输层的核心协议之一。主要用于在不可靠的网络环境中,为应用层提供可靠,有序,面向连接的端到端数据传输服务
- UDP 的什么?
UDP 的全称是 用户数据报协议(User Datagram Protocol),是计算机网络 OSI 七层模型中传输层的核心协议之一,与 TCP 同级,设计目标是低延迟、轻量级、高效地传输数据,不保证可靠性。
- HTTP 的什么?
HTTP 的全称是 超文本传输协议(HyperText Transfer Protocol),是计算机网络 应用层 的核心协议之一,专门用于客户端与服务器之间传输超文本数据(如 HTML 页面、图片、JSON 等资源)。它的设计完全基于 TCP 传输层协议 提供的可靠连接能力,同时定义了一套标准化的「请求 - 响应」交互规则,是网页浏览、API 接口调用等场景的基础。
简单理解 HTTP 是 "应用的通信规则",TCP/UDP 是 "数据传输的底层通道
二. 核心特性对比
1. TCP(传输控制协议)
TCP 是面向连接、可靠的字节流协议 ,设计目标是保证数据准确、有序、完整地传输。
- 核心特性
- 面向连接 :通信前必须通过 三次握手 建立连接,通信结束后通过 四次挥手 断开连接,连接过程有明确的"建立-传输-断开"生命周期。
- 可靠性保障 :通过序列号、确认应答(ACK)、重传机制 解决丢包问题;通过流量控制(滑动窗口) 避免发送方速率过快导致接收方过载;通过拥塞控制避免网络拥堵。
- 字节流传输:数据被视为连续的字节序列,没有边界限制,接收方会按顺序拼接字节数据。
- 一对一通信:一个 TCP 连接只能对应两个端点,不支持广播/组播。
- 适用场景:对数据可靠性要求高的场景,比如文件传输(FTP)、网页加载(HTTP/HTTPS)、邮件发送(SMTP)、远程登录(SSH)。
2. UDP(用户数据报协议)
UDP 是无连接、不可靠的数据报协议 ,设计目标是高效、低延迟地传输数据,不保证数据的可靠性和有序性。
- 核心特性
- 无连接:通信前无需建立连接,发送方直接将数据封装成数据报发送,接收方直接接收,没有握手和挥手过程。
- 不可靠传输:没有确认应答、重传机制,数据可能丢包、乱序;也没有流量控制和拥塞控制,发送速率由应用层决定。
- 数据报传输:数据以独立的"数据报"为单位传输,每个数据报有明确的边界,接收方不会合并数据。
- 支持多播/广播:可以实现一对多、多对多的通信。
- 适用场景:对实时性要求高、可容忍少量丢包的场景,比如视频直播、语音通话(VoIP)、游戏数据传输、DNS 域名解析。
3. HTTP(超文本传输协议)
HTTP 是基于 TCP 的应用层协议,专门用于在客户端和服务器之间传输超文本数据(如 HTML、图片、JSON 等)。
- 核心特性
- 基于 TCP 连接 :HTTP 1.1 及之前默认使用"短连接"(每次请求-响应后断开连接),HTTP 1.1 支持长连接 (
Connection: keep-alive),HTTP 2 支持多路复用,进一步提升效率。 - 无状态协议:服务器不会保存客户端的会话信息,每次请求都是独立的(需要 Cookie、Session 等技术实现状态保持)。
- 明文传输:HTTP 传输的数据不加密,存在被窃听、篡改的风险(HTTPS 是 HTTP + SSL/TLS 加密,解决了安全问题)。
- 请求-响应模式:由客户端主动发起请求,服务器被动返回响应,无法实现服务器主动向客户端推送数据(需要 WebSocket 等技术补充)。
- 基于 TCP 连接 :HTTP 1.1 及之前默认使用"短连接"(每次请求-响应后断开连接),HTTP 1.1 支持长连接 (
- 适用场景:网页浏览、API 接口调用、资源(图片、文件)下载等。
三. 关键维度对比表
| 对比维度 | TCP | UDP | HTTP |
|---|---|---|---|
| 协议层级 | 传输层 | 传输层 | 应用层(基于 TCP) |
| 连接特性 | 面向连接(三次握手) | 无连接 | 基于 TCP 连接 |
| 可靠性 | 可靠(有序、无丢包) | 不可靠(可能丢包乱序) | 可靠(依赖 TCP 保障) |
| 传输单位 | 字节流 | 数据报 | 报文(请求/响应格式) |
| 速度 | 较慢(有握手、重传) | 较快(无额外开销) | 受 TCP 影响,速度中等 |
| 适用场景 | 文件传输、网页加载 | 直播、游戏、DNS | 网页浏览、API 调用 |
四. 总结
- TCP vs UDP :核心是可靠性 vs 实时性,TCP 为了可靠牺牲了速度,UDP 为了速度牺牲了可靠性。
- HTTP 与 TCP/UDP 的关系:HTTP 是"应用规则",必须跑在 TCP 这个"可靠通道"上;UDP 无法直接承载 HTTP(因为 HTTP 需要可靠传输)。
- 补充:如果需要双向实时通信(如聊天、弹幕),HTTP 无法满足,通常会用 WebSocket(基于 TCP 握手后持久化连接)或 UDP 相关的协议。