TCP vs UDP:何时使用以及 TCP 与 HTTP 的关系

发布: (2026年1月31日 GMT+8 15:35)
4 min read
原文: Dev.to

Source: Dev.to

TCP 与 UDP 是什么?(高级概览)

TCP(Transmission Control Protocol)

  • 可靠的、面向连接的网络协议。
  • 使用三次握手建立连接。
  • 保证数据到达目的地时不丢失且不损坏。
  • 保持数据包的正确顺序,并在需要时重新传输丢失的数据包。
  • 由于这些检查,TCP 比 UDP 更慢,但极其可靠。

UDP(User Datagram Protocol)

  • 快速的、无连接的网络协议。
  • 在不建立连接或检查是否到达的情况下发送数据包。
  • 不保证交付、顺序或对丢失数据的重传。
  • 这使得 UDP 更快,但可靠性较低。

常见使用场景

  • TCP:聊天应用、消息应用、电子邮件、文件下载、网页浏览(HTTP/HTTPS)。
  • UDP:视频通话、直播流、在线游戏、语音通话。

TCP 与 UDP 的关键区别

特性TCPUDP
连接类型面向连接无连接
握手需要三次握手无握手
可靠性保证交付(会重传)不保证,也不重传
数据包顺序保持顺序可能无序到达
速度由于开销较慢更快
错误检查是(校验和、重传)最小(仅校验和)
典型应用聊天、电子邮件、下载、网页浏览流媒体、游戏、VoIP

何时使用 TCP

当数据准确性比速度更重要且数据丢失不可接受时使用 TCP。

  • 数据必须正确且按顺序交付。
  • 示例:
    • 发送重要邮件。
    • 下载文件。
    • 聊天或消息传递,信息完整性至关重要。

如果能确保数据不被损坏,少量延迟是可以接受的。

何时使用 UDP

当速度至关重要且偶尔的数据丢失可以容忍时,尤其是实时通信,使用 UDP。

  • 低延迟比完美可靠性更重要。
  • 示例:
    • 视频通话。
    • 直播流。
    • 在线游戏。

如果丢失了少量数据包,继续进行比等待重传更好。

什么是 HTTP 以及它的定位

HTTP(HyperText Transfer Protocol) 定义:

  • 请求的数据是什么。
  • 返回的数据是什么。

决定数据如何安全传输;这由传输层(TCP 或 UDP)负责。

HTTP 请求/响应示例

GET / HTTP/1.1
Host: www.facebook.com
HTTP/1.1 200 OK
Content-Type: text/html

...HTML content...

浏览器发送 HTTP 请求,服务器处理后返回包含请求资源的 HTTP 响应。

HTTP 与 TCP 的关系

  • HTTP 位于 TCP 之上,并使用 TCP 可靠地传输网页数据。
  • HTTP 只定义通信规则(请求/响应格式)。
  • 可靠性、顺序和重传由 TCP 处理。

因此,传统 HTTP 选择 TCP,因为网页需要正确、完整的数据。虽然 UDP 更快,但其缺乏可靠性使其不适用于大多数 HTTP 流量。

总结

  • TCP:可靠、有序、较慢——适用于对正确性至关重要的数据。
  • UDP:快速、无序、可靠性较低——适用于实时媒体,速度比偶尔丢失更重要。
  • HTTP:需要可靠性 → 使用 TCP 作为传输协议。
Back to Blog

相关文章

阅读更多 »

cURL 入门:向互联网发送消息

什么是 cURL?用非常简单的话来说,cURL 代表 Client URL。把它想象成一个没有按钮、图像或颜色的网页浏览器。它是一个命令行工具……

cURL 入门

介绍 在本文中我们将涵盖:- 什么是服务器以及为什么需要与其通信 - 用非常简单的语言解释 cURL 是什么 - 程序员为何使用 cURL - Mak...