7. TCP 和 UDP 的区别

总结

  1. TCP 面向连接,需要三次握手建立连接,UDP 无连接,不需要握手,直接发送数据。
  2. UDP 有较好的实时性,效率比 TCP 高。
  3. TCP 面向字节流,实际上是 TCP 把数据看成一连串无结构的字节流,UDP 是面向报文的,一次交付一个完整的报文,报文不可分割,报文是 UDP 数据报处理的最小单位。
  4. 每一条TCP连接时一对一的,UDP可以一对多,多对一,多对多。
  5. UDP 分组首部开销小,八个字节,TCP 首部开销大约 20 字节。
  6. UDP 适合一次性传输较小数据的网络应用,如 DNS、SNMP。

以下是对你的笔记内容进行丰富和结构化后的 Markdown 版本,涵盖 TCP 与 UDP 的核心区别、适用场景、协议对比等内容:


TCP 和 UDP 的区别详解

TCP(Transmission Control Protocol)和 UDP(User Datagram Protocol)是传输层的两个核心协议,它们在可靠性、连接方式、性能等方面有显著差异。理解它们的区别对于网络编程、系统优化和应用选型至关重要。


一、核心区别对比表

特性TCPUDP
连接方式面向连接(需要三次握手建立连接)无连接(直接发送数据)
可靠性可靠传输(确认机制、重传机制)不可靠传输(不保证送达)
流量控制/拥塞控制支持不支持
传输方式面向字节流面向报文
是否支持多播不支持(点对点)支持(可一对多、多对一、多对多)
首部开销较大(20~60 字节)小(仅 8 字节)
实时性较差(延迟较高)好(低延迟)
应用场景文件传输、网页浏览、邮件等视频会议、DNS 查询、游戏、广播

二、详细特性说明

1. 连接方式不同

  • TCP:面向连接

    • 在通信前需通过 三次握手 建立连接。
    • 通信结束后通过 四次挥手 断开连接。
    • 确保通信双方都准备好接收和发送数据。
  • UDP:无连接

    • 发送方无需建立连接,直接发送数据包。
    • 接收方收到数据后也无需确认。
    • 更适合轻量级、快速的数据交互。

2. 数据传输可靠性

  • TCP:可靠传输

    • 提供确认应答、超时重传、滑动窗口等机制保障数据完整性。
    • 适用于要求数据不能丢失的场景(如文件下载、网页加载)。
  • UDP:不可靠传输

    • 不提供确认机制、重传机制。
    • 数据可能丢包、乱序或重复。
    • 但正因为如此,它具备更低的延迟和更高的效率。

3. 数据处理方式不同

  • TCP:面向字节流

    • 数据被视为连续的字节流,没有固定的消息边界。
    • 操作系统自动拆分和拼接数据,可能导致“粘包”问题。
    • 需要应用层自行定义消息格式来区分数据边界。
  • UDP:面向报文

    • 每个 sendto() 调用对应一个完整的报文。
    • 接收端每次调用 recvfrom() 都会获取一个完整的消息。
    • 报文不可分割,是 UDP 处理数据的最小单位。

4. 通信模式

  • TCP:一对一

    • 每条 TCP 连接只能有两个端点(客户端和服务端)。
    • 无法实现广播或多播功能。
  • UDP:支持多播

    • 可以实现:
      • 一对一
      • 一对多(广播/组播)
      • 多对一
      • 多对多
    • 适用于音视频广播、在线游戏等场景。

5. 首部开销对比

  • TCP 首部:至少 20 字节,最多 60 字节(包含选项字段)

    • 包括源端口、目标端口、序列号、确认号、窗口大小、校验和等信息。
  • UDP 首部:固定 8 字节

    • 仅包括源端口、目标端口、长度、校验和。
    • 更加简洁高效,适合小数据包快速传输。

6. 应用场景对比

协议典型应用场景示例
TCP需要可靠传输HTTP/HTTPS、FTP、SMTP、POP3、SSH
UDP实时性强、容忍丢包DNS、SNMP、VoIP、视频会议、在线游戏、IoT 传感器数据上报

三、总结一句话

TCP 是“讲求可靠”的协议,适用于必须确保数据完整性的场景;UDP 是“追求速度”的协议,适用于对实时性要求高、能容忍少量丢包的场景。


四、扩展知识:何时选择 TCP?何时选择 UDP?

场景推荐协议原因
文件传输、网页访问TCP数据完整性优先
实时音视频通话UDP延迟敏感,允许轻微丢包
游戏同步(如 FPS)UDP快速响应比丢包更重要
DNS 查询UDP快速查询,短小精悍
控制指令通信(如无人机遥控)UDP实时性强,可容忍偶尔丢包

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/88469.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/88469.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS Widget 开发-7:TimelineProvider 机制全解析:构建未来时间线

在 WidgetKit 中,TimelineProvider 是小组件生命周期的核心机制之一。它控制着 数据获取时机、展示内容 与 刷新策略,是实现时间驱动内容更新的基础。 本文将介绍 TimelineProvider 的工作原理、设计模式、常见场景与高级用法,帮助大家构建智…

基于PHP/MySQL的企业培训考试系统源码,高并发、稳定运行,源码开源可二开

温馨提示:文末有资源获取方式这是一款专为企业设计的开源培训考试系统,采用PHPMySQL技术栈开发,具有高并发处理能力和稳定运行特性。系统源码完全开放,支持二次开发,可满足各类企业的培训考核需求。核心功能特点1. 高性…

时序数据库InfluxDB

一.定义 时序数据库 是一种专门用于高效存储和查询带有时间戳的数据的数据库。如果你的数据是随着时间变化而不断产生,并且你想知道过去某一时刻发生了什么,那么你应该用时序数据库。 这类数据通常具有以下特征: 数据点按时间顺序不断写入…

2025.07.09华为机考真题解析-第三题300分

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 03. 博物馆安保摄像头配置 问题描述 A先生负责为一家新开的博物馆设计安保监控系统。博物馆有多个展厅需要监控,每个展厅都有不同的面积。现在有多种型号的监控摄像头可供选择,每…

存储过程封装:复杂业务逻辑的性能优化

存储过程作为数据库层面的重要功能,能够显著提升复杂业务逻辑的执行效率。以下是存储过程在性能优化中的核心优势、实现策略和实际应用场景。一、存储过程的核心优势‌网络传输压缩‌存储过程将多条SQL语句封装为单次调用,相比应用层多次请求可减少60%-8…

逗号分隔字段统计秘籍:一条SQL实现逗号分割字段的数量分析

一、问题场景与痛点 在数据库设计中,经常会遇到统计某一些数据的最大数量最小数量等,特别是**逗号分隔字段 **的统计会显得非常困难 下面以我生产上遇到的一个问题讲解: 有个需求是在o_work_order表中统计sn字段中哪个工单号的数量最多&#…

数据库性能优化指南:解决ORDER BY导致的查询性能问题( SQL Server )

数据库性能优化指南:解决ORDER BY导致的查询性能问题 问题描述 在300万行的INTERFACE_INTERACTION_LOG表中执行以下查询: SELECT TOP 1 * FROM INTERFACE_INTERACTION_LOG WHERE 1 1AND (SENDSTATUS 0 OR SENDSTATUS -1)AND SENDMETHOD POSTAND ERRO…

Centos 7下使用C++使用Rdkafka库实现生产者消费者

1. 了解 Kafka Apache Kafka 是一个分布式流处理平台,核心功能包括: 发布/订阅消息系统:解耦生产者和消费者 分布式存储:持久化、容错的消息存储 流处理:实时处理数据流 核心概念: 概念说明BrokerKaf…

UE5多人MOBA+GAS 13、添加死亡、复活逻辑以及布娃娃含物理资产的修改调整

文章目录使用GE为角色添加定时的Tag控制死亡时间1、添加死亡Tag2、创建死亡GE,并完成相关配置3、在AbilitySystemComponent中监听属性的变化,调用GE来添加Tag到角色上4、在角色中监听ASC传入的Tag以及Tag的层数,来响应不同的函数添加死亡、复…

Jiasou TideFlow重塑AI SEO全链路自动化新标杆

引言 在Google日均处理85亿次搜索请求的数字化浪潮中,传统SEO工作流面临三大致命瓶颈:人工拓词效率低下、跨部门协作成本高企、数据监控链路断裂。因此诸如Jiasou AI SEO这样专门为AI SEO而生的Agent就应运而生了。 背景 Jiasou AIGC不仅仅可以批量生成…

CentOs 7 MySql8.0.23之前的版本主从复制

准备俩台虚拟机并启动俩台虚拟机都开启mysql后查看二进制日志是否开启先登录mysqlmysql -u root -r输入sql命令show variables like %log_bin%;如果log_bin 的value为OFF则是没有开启,跟着下面步骤开启二进制日志退出mysqlexitvim /etc/my.cnf在最底下添加log_binmy…

Leetcode 3607. Power Grid Maintenance

Leetcode 3607. Power Grid Maintenance 1. 解题思路2. 代码实现 题目链接:3607. Power Grid Maintenance 1. 解题思路 这一题思路上首先是一个DSU的思路,将所有的连通网络计算出来,并对每一个网络的节点进行归类。然后我们需要对每一个网…

开源 python 应用 开发(三)python语法介绍

最近有个项目需要做视觉自动化处理的工具,最后选用的软件为python,刚好这个机会进行系统学习。短时间学习,需要快速开发,所以记录要点步骤,防止忘记。 链接: 开源 python 应用 开发(一&#xf…

1-Kafka介绍及常见应用场景

Kafka 介绍 Apache Kafka 是一个开源的 分布式流处理平台,最初由 LinkedIn 开发,后捐赠给 Apache 软件基金会。它被设计用于高吞吐量、低延迟、可水平扩展地处理实时数据流。官网地址是:https://kafka.apache.org/ 以下是 Kafka 的核心介绍…

CH9121T电路及配置详解

目录1. CH9121T简介2. 原理图及接口2.1 参考电路2.2 CH9121T评估板2.3 差分端口2.4 网口灯显示2.5 晶振2.6 其他接口3. 使用手册及说明3.1 配置介绍3.2 默认参数3.3 串口波特率3.4 配置指令3.5 应用示例1. CH9121T简介 CH9121 是一款网络串口透传芯片,自带 10/100M…

科研数据可视化核心技术:基于 AI 与 R 语言的热图、火山图及网络图绘制实践指南

在学术研究竞争日趋激烈的背景下,高质量的数据可视化已成为科研成果呈现与学术传播的关键要素。据统计,超过 60% 的学术稿件拒稿原因与图表质量存在直接关联,而传统绘图工具在处理组学数据、复杂关联数据时,普遍存在效率低下、规范…

Windows体验macOS完整指南

一、虚拟机安装macOS专业方案1. 环境准备阶段硬件检测:进入BIOS(开机时按Del/F2键)确认开启VT-x/AMD-V虚拟化选项建议配置:i5十代以上CPU/16GB内存/256GB SSD软件准备:官网下载VMware Workstation 17 Pro获取Unlocker补…

【普及/提高−】洛谷P1577 ——切绳子

见:P1577 切绳子 - 洛谷 题目描述 有 N 条绳子,它们的长度分别为 Li​。如果从它们中切割出 K 条长度相同的绳子,这 K 条绳子每条最长能有多长?答案保留到小数点后 2 位(直接舍掉 2 位后的小数)。 输入格式 第一行两个整数 N …

imx6ull-裸机学习实验16——I2C 实验

目录 前言 I2C简介 基本特性​​ I2C 协议 起始位 停止位 数据传输 应答信号 I2C 写时序 I2C 读时序 I.MX6U I2C 简介 寄存器 地址寄存器I2Cx_IADR(x1~4) 分频寄存器I2Cx_IFDR 控制寄存器I2Cx_I2CR 状态寄存器I2Cx_I2SR 数据寄存器I2Cx_I2DR AP3216C 简介 …

【TCP/IP】5. IP 协议

5. IP 协议5. IP 协议5.1 概述5.2 IP 数据报格式5.3 无连接数据报传输5.3.1 首部校验5.3.2 数据分片与重组5.4 IP 数据报选项5.4.1 选项格式5.4.2 选项类型5.5 IP 模块的结构本章要点5. IP 协议 5.1 概述 IP 协议是 TCP/IP 协议簇的核心协议,位于网络层&#xff0…