当前位置: 首页 > news >正文

什么是TCP/UDP/HTTP?

文章目录

      • 一、先搞懂:协议的“层级”关系
      • 二、逐个解析:TCP、UDP、HTTP 是什么?
        • 1. 传输层协议:TCP(Transmission Control Protocol,传输控制协议)
          • 核心特性:
          • 适用场景:
        • 2. 传输层协议:UDP(User Datagram Protocol,用户数据报协议)
          • 核心特性:
          • 适用场景:
        • 3. 应用层协议:HTTP(HyperText Transfer Protocol,超文本传输协议)
          • 核心特性:
          • 工作流程(以打开网页为例):
      • 三、关键区别:TCP vs UDP vs HTTP
      • 四、延伸:三者的“协作关系”举例

TCP、UDP 和 HTTP 是计算机网络中核心的协议,但分属不同的层级,承担着不同的功能。要理解它们的区别与联系,首先需要明确 OSI 七层模型TCP/IP 四层模型 的背景——协议按“分工”被划分到不同层级,下层为上层提供基础服务。

一、先搞懂:协议的“层级”关系

我们用更易理解的 TCP/IP 四层模型 来定位三者:

层级(TCP/IP 模型)核心功能包含的关键协议
应用层(Application)直接为用户应用(如浏览器、聊天软件)提供服务HTTP、HTTPS、FTP、DNS 等
传输层(Transport)负责“端到端”的数据传输(如从你的电脑到服务器)TCP、UDP
网络层(Internet)负责“跨网络”的路由选择(如数据从家里的网络传到阿里云服务器)IP(IPv4/IPv6)
网络接口层(Link)负责物理设备的数据传输(如网线、WiFi 信号)Ethernet、WiFi 等

简单说:HTTP 是应用层协议,依赖传输层的 TCP 协议来传递数据;TCP 和 UDP 是传输层协议,直接为上层应用提供传输能力。

二、逐个解析:TCP、UDP、HTTP 是什么?

1. 传输层协议:TCP(Transmission Control Protocol,传输控制协议)

TCP 是一种 面向连接、可靠、有序 的传输协议,核心目标是“保证数据准确、完整地到达目的地”,类似“打电话”——先接通,再说话,确保对方听清楚。

核心特性:
  • 面向连接:数据传输前必须通过“三次握手”建立连接,传输结束后通过“四次挥手”断开连接(类似打电话前拨号、挂电话后断线)。
    • 三次握手:确认双方“发送/接收能力正常”(A问“在吗?”→B答“在,你呢?”→A答“在,开始传”)。
    • 四次挥手:确保双方“数据都传完了”再断开(避免一方还在发,另一方已断线)。
  • 可靠传输
    • 超时重传:如果发送的数据没收到对方的“确认回执(ACK)”,会重新发送。
    • 差错校验:通过校验和检查数据是否在传输中损坏,损坏则丢弃重传。
    • 流量控制:根据接收方的处理能力调整发送速度(避免接收方“忙不过来”)。
    • 拥塞控制:根据网络拥堵情况调整发送速度(避免网络“堵车”)。
  • 有序传输:数据按发送顺序到达(比如发送“1-2-3”,接收方不会收到“2-1-3”)。
适用场景:

需要“可靠性”优先的场景,哪怕牺牲一点速度:

  • 网页浏览(HTTP 基于 TCP)
  • 文件传输(FTP)
  • 邮件发送(SMTP)
  • 数据库交互(MySQL)
2. 传输层协议:UDP(User Datagram Protocol,用户数据报协议)

UDP 是一种 无连接、不可靠、无序 的传输协议,核心目标是“快速传输”,类似“发短信”——直接发送,不确认对方是否接收,也不保证顺序。

核心特性:
  • 无连接:不需要建立/断开连接,直接发送数据,开销极小(比 TCP 快很多)。
  • 不可靠:不保证数据到达、不校验顺序、不重传丢失的数据(发送后“不管了”)。
  • 面向数据报:数据以“数据报”为单位传输(每个数据报独立,最大64KB)。
适用场景:

需要“速度”优先,能容忍少量数据丢失的场景:

  • 实时音视频(直播、视频通话,丢1帧不影响整体体验)
  • 在线游戏(延迟比丢包更致命,卡顿比偶尔“瞬移”难接受)
  • 广播/组播(如局域网设备发现)
  • DNS 查询(请求小、要求快,丢了重发即可)
3. 应用层协议:HTTP(HyperText Transfer Protocol,超文本传输协议)

HTTP 是 用于传输超文本(如HTML、图片、视频)的应用层协议,是浏览器与服务器通信的“通用语言”。它本身不负责数据传输,而是依赖传输层的 TCP 协议 来实现可靠传输(HTTP/3 开始支持 UDP,但目前主流仍是 HTTP/1.1 和 HTTP/2,基于 TCP)。

核心特性:
  • 基于请求-响应:由客户端(如浏览器)主动发“请求”,服务器被动回“响应”(一问一答)。
  • 无状态:服务器不保存客户端的历史状态(比如第一次请求和第二次请求,服务器默认认为是两个独立的客户端),需要用 Cookie、Session 来“记住”状态。
  • 明文传输:HTTP 传输的数据是未加密的,可能被中途拦截、篡改(这也是 HTTPS 出现的原因,HTTPS 是 HTTP + SSL/TLS 加密层)。
  • 可扩展:通过“请求头”“响应头”支持各种扩展(如缓存控制、压缩、认证)。
工作流程(以打开网页为例):
  1. 浏览器解析网址(如 www.baidu.com),通过 DNS 查询得到服务器的 IP 地址;
  2. 浏览器通过 TCP 与服务器建立连接(三次握手);
  3. 浏览器发送 HTTP 请求(如“GET /index.html”,请求首页的 HTML);
  4. 服务器处理请求,返回 HTTP 响应(包含 HTML 内容和状态码,如 200 表示成功);
  5. 浏览器解析响应内容,渲染出网页;
  6. 连接按需断开(HTTP/1.1 支持“长连接”,可复用连接减少握手开销)。

三、关键区别:TCP vs UDP vs HTTP

维度TCPUDPHTTP
所属层级传输层传输层应用层
连接性面向连接(三次握手/四次挥手)无连接依赖 TCP 连接(间接面向连接)
可靠性可靠(重传、校验、有序)不可靠(不重传、无序)可靠(依赖 TCP 的可靠性)
速度慢(开销大)快(开销小)中等(依赖 TCP,加应用层逻辑)
核心目标保证数据准确完整保证传输速度规范超文本的请求与响应
典型用途文件传输、网页基础传输音视频、游戏浏览器-服务器通信(网页、接口)

四、延伸:三者的“协作关系”举例

当你用浏览器看直播时:

  1. HTTP 协议:浏览器先通过 HTTP 向直播平台服务器发送“请求直播流地址”的指令,服务器返回响应(包含直播流的 URL);
  2. TCP 协议:HTTP 的请求/响应数据,通过 TCP 协议可靠地传到服务器/浏览器;
  3. UDP 协议:直播的音视频流,通过 UDP 协议快速传输(因为实时性优先,容忍少量丢包)。

总结:TCP 和 UDP 是“运输工具”(TCP 是快递车,慢但稳;UDP 是赛车,快但糙),HTTP 是“货物运输的规则”(规定了“送什么、怎么问、怎么答”),三者协同实现了互联网的信息传递。

http://www.dtcms.com/a/407028.html

相关文章:

  • 解决银行任务池场景并发问题
  • 济南企业免费建站3d渲染网站建设
  • git实用命令
  • 面相对象程序设计与模块
  • 四川泰龙建设集团公司官方网站网站服务器 要求
  • 主频72Mhz采用高性能的32 位ARM®Cortex®-M0+ 内核的PY32C673芯片
  • Linux 内核编译,打包
  • android网站开发教程建筑行业网站开发
  • 网站建设一般收费广告设计公司图片
  • C++项目:仿muduo库高并发服务器---------LoopThreadPool模块和TcpServer模块的实现
  • S7-200 SMART GET/PUT 指令深度解析:从参数到故障排查(S7 协议的客户端 - 服务器通信)上
  • C++11之异常
  • 网站开发软硬件网站建设应注意什么
  • wordpress全站注明国外代理ip地址 免费
  • LightDM 深度解析:图形登录管理器的机制、TTY 映射与嵌入式调试实战
  • Dlib库 人脸应用实例 疲劳监测
  • 11.2. Linux 防火墙管理
  • VMware+RockyLinux+ikuai+docker+cri-docker+k8s 自用 实践笔记(三)
  • 基于全基因组做UGT基因家族,发Top期刊(纯生信)
  • 网店网站模板wordpress get_pages
  • 自己做视频网站的流程关键词排名点击软件首页
  • h5免费建站网站自动化采集
  • C语言字符串函数详解:字符处理、strlen、strcpy、strcat等使用与模拟实现
  • Alibaba Cloud Linux 3 +Docker 部署 ThinkPHP6 (宝塔环境)
  • ps免费素材网站有哪些wordpress虚拟3d网站
  • springBoot 集成Neo4j 实战演示
  • 深圳专业网站建设平台网页深圳龙华区发达吗
  • 正点原子【第四期】Linux之驱动开发学习笔记-6.1 pinctrl和gpio子系统
  • 网站要跟换域名怎么做wordpress支持大数据处理
  • 【LeetCode 每日一题】165. 比较版本号