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

13、TCP和UDP的区别【高频】

  • TCP是面向字节流的,它是按一个字节一个字节地传输数据的,并不关心传输了多少报文段;而UDP面向报文的,它是以报文为单位传输数据的,并保留了原始报文的边界,并不拆分

  • TCP是面向连接的,传输数据前经过三次握手简历连接;而UDP是无连接的,在输出数据前不需要任何准备,因此也没有建立连接的时延

  • TCP只能单播传输(点对点);而UDP是无连接的,所以它的传播方式更加灵活:可以单播,多播,广播(一对多、多对一皆可)

  • TCP通过校验和、确认应答、超时重传、流量控制等机制,可以保证传输的数据 按序到达,不会丢失和重复;而UDP不能保证数据是否能正确传输

  • TCP 通过拥塞控机制,可以根据网络的拥塞情况,调整传输速率;而UDP没有拥塞控制,网络拥塞时也不会降低自己的传输速率

  • TCP报文首部至少有 20字节,包括 序列号、确认号、选项字段等信息;而UDP报文首部只有 8字节并且是固定不变的,开销较小

    TCP:
    在这里插入图片描述

    UDP:
    在这里插入图片描述

  • TCP 的数据大小如果大于 MSS 大小,则会在传输层分片和组装。如果中途丢失一个分片,只需要传输丢失的这一个分片即可。

    UDP 的数据大小如果大于 MTU(以太网中一般是1500字节) 大小,则会在 IP 层进行分片和组装。但是如果中途丢了一个分片,则就需要重传所有的数据包,影响效率。所以通常 UDP 的报文要小于 MTU。

MSS和MTU

img

在这里插入图片描述

MSS:maximum segment size,最大分节大小,为TCP数据包每次传输的最大数据分段大小。MSS值为MTU值减去IPv4 Header(20 Byte)和TCP header(20 Byte)得到

MTU:maximum transmission unit,最大传输单元,由硬件规定,如以太网的MTU为1500字节。主要在数据链路层

  • TCP 适用于 需要可靠传输 的应用,比如 网页浏览、文件传输等;而 UDP 适用于 对实时性要求高 的应用,比如 语音通话、视频会议等

http://www.kler.cn/a/573858.html

相关文章:

  • Linux部署Redis集群
  • 如何用deepseek写游戏(思路教程分享)【附图文】
  • Flink:大数据处理的“双面侠”
  • 【报错:HikariPool-1 - Exception during pool initialization.】
  • Gpt翻译完整版
  • Linux kill 命令
  • Elasticsearch:解锁深度匹配,运用Elasticsearch DSL构建闪电般的高效模糊搜索体验
  • java基础(算法用)
  • 【JavaEE】-- 多线程(初阶)3
  • Python-07PDF转Word
  • 20250304在Ubuntu20.04的GUI下格式化exFAT格式的TF卡为ext4格式
  • Lua如何实现面向对象的三大特性?
  • React事件动态挂在到组件上
  • Vue 组件通信 - 父传子
  • 阿里 DataWorks:数据治理、安全中心、数据质量核心功能梳理
  • 3.激活函数:神经网络中的非线性驱动器——大模型开发深度学习理论基础
  • 访问grafana的api
  • 人工智能之数学基础:矩阵的秩
  • K8S学习之基础八:pod的状态和重启策略
  • Unity插件-Mirror使用方法(五)组件介绍(​Network Identity)