TCP和UDP的区别

  1. 连接:TCP 是面向连接的传输层协议,传输数据前先要建立连接;UDP 是不需要连接,即刻传输数据。
  2. 首部开销:TCP 首部长度较长,首部在没有使用「选项」字段时是 20 个字节,如果使用了「选项」字段则会变长的;UDP 首部只有 8 个字节,并且是固定不变的,开销较小。
  3. 传输方式:TCP是基于字节流传输数据的,消息之间没有边界,若数据过大在TCP层面就会进行按MSS大小进行分片,一片数据组成一个TCP报文;UDP按包进行传输,不会对数据分片,这就是说应用层一次交给UDP多长的数据,UDP就将其组成一个UDP报文交给IP层,若报文过长超过MTU大小,则IP层会进行分片,一片丢失则对于接收端整个UDP报文就丢失了,这也是UDP丢包率高的原因之一。
  4. 可靠性:TCP通过重传等机制保证数据的可靠交付和按序到达,而UDP不保证可靠交付数据。
  5. 流量/拥塞控制:TCP会通过流量控制和拥塞控制应对网络和服务器的波动;而UDP没有这些机制,有数据就发,大量的UDP数据可能会导致网络信道拥塞,因此部分运营商可能会对UDP进行限制,导致UDP丢包率进一步增加。
  6. 通信对象:TCP是一对一通信,UDP 支持一对一、一对多、多对多的交互通信。
  7. 应用场景:TCP用于要保证数据可靠交付的场景,如FTP文件传输、HTTP网络通信等;UDP不保证可靠交付,但是简单高效,通常用于对时效性有要求但是丢包率容忍度高的场景,如音视频媒体直播,或者用于数据量小的场景,如DNS协议等,或者作为基础的传输协议在这上面做功能封装,如QUIC协议就是基于UDP开发的。

在这里插入图片描述
在这里插入图片描述

引申阅读:数据包在哪些层面可能会丢失?

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

概率论的学习和整理17:EXCEL的各种期望,方差的公式

目录 1 总结 1.1 本文目标总结方法 1.2 总结一些中间关键函数 2 均值和期望 2.1 求均值的公式 2.2 求随机变量期望的公式 2.3 求随机变量期望的朴素公式 3 方差 3.1 确定数的方差 3.2 统计数的方差公式 3.3 随机变量的方差公式 3.4 EXCEL提供的直接计算方差的公式 …

CentOS目录详解

在centos中,最顶层的目录称作根目录, 用/表示。/目录下用户可以再创建目录,但是有一些目录随着系统创建就已经存在,接下来重点介绍几个常用目录。 /bin(binary)包含了许多所有用户都可以访问的可执行文件&a…

PostgreSQL MVCC的弊端优化方案

我们之前的博客文章“我们最讨厌的 PostgreSQL 部分”讨论了大家最喜欢的 DBMS 多版本并发控制 (MVCC) 实现所带来的问题。其中包括版本复制、表膨胀、索引维护和真空管理。本文将探讨针对每个问题优化 PostgreSQL 的方法。 尽管 PostgreSQL 的 MVCC 实现是 Oracle 和 MySQL 等…

如何在Appium中使用AI定位

当我们在写自动化测试脚本的时候,传统情况下一定要知道元素的属性,如id、name、class等。那么通过AI的方式定位元素可能就不需要知道元素的属性,评价人对元素的判断来定位,比如,看到一个搜索框,直接使用ai:…

【无标题】使用html2canvas和jspdf生成的pdf在不同大小的屏幕下文字大小不一样

问题:使用html2canvas和jspdf生成的pdf在不同大小的屏幕下文字大小不一样,在mac下,一切正常,看起来很舒服,但是当我把页面放在扩展屏幕下(27寸),再生成一个pdf,虽然排版一…

【算法基础:数据结构】2.3 并查集

文章目录 并查集算法原理(重要!⭐) 经典例题836. 合并集合(重要!模板!⭐)837. 连通块中点的数量(维护连通块大小的并查集)240. 食物链(维护额外信息的并查集&…

【AI绘画】AI绘画乐趣:稳定增强扩散技术展现

目录 前言一、Stable Diffusion是什么?二、安装stable-diffusion-webui1. python安装2. 下载模型3. 开始安装:4. 汉化:5. 模型使用:6. 下载新模型:7. 基础玩法 三、总结 前言 本文将借助stable-diffusion-webui项目来…

【数据结构与算法】哈夫曼编码(最优二叉树)实现

哈夫曼编码 等长编码:占的位置一样 变长编码(不等长编码):经常使用的编码比较短,不常用的比较短 最优:总长度最短 最优的要求:占用空间尽可能短,不占用多余空间,且不…

网络版计算器

本次我们实现一个服务器版本的简单的计算器,通过自己在应用层定制协议来将数据传输出去。 协议代码 此处我们为了解耦,采用了两个类,分别表示客户端的请求和服务端的响应。 Request class Request { public:Request(){}Request(int x, int…

Unity 任意数据在Scene窗口Debug

任意数据在Scene窗口Debug 🍔效果🥪食用方法 🍔效果 如下所示可以很方便的把需要Debug的数据绘制到Scene中(普通的Editor脚本只能够对MonoBehaviour进行Debug) 🥪食用方法 💡. 新建脚本继承Z…

实例018 类似windows xp的程序界面

实例说明 在Windows XP环境下打开控制面板,会发现左侧的导航界面很实用。双击展开按钮,导航栏功能显示出来,双击收缩按钮,导航按钮收缩。下面通过实例介绍此种主窗体的设计方法。运行本例,效果如图1.18所示。 ​编辑…

如何顺势而为,让ChatGPT为教育所用?

恐惧和回避无法阻挡科技的浪潮,教育与AI的深度融合时代已经到来,如何把AI当做工具,把其成为教育的机会而非威胁,是教育体系未来不得不得面对的新变化。 接受ChatGPT作为一种教学辅助工具,成为教师的朋友或者帮手&…

Leetcode每日一题:979. 在二叉树中分配硬币(2023.7.14 C++)

目录 979. 在二叉树中分配硬币 题目描述: 实现代码与解析: dfs(后序遍历) 原理思路: 979. 在二叉树中分配硬币 题目描述: 给定一个有 N 个结点的二叉树的根结点 root,树中的每个结点上都对…

5.postgresql--COALESCE

在 PostgreSQL 中, COALESCE函数返回第一个非空参数。它通常与 SELECT 语句一起使用以有效处理空值。 COALESCE函数接受无限数量的参数。它返回第一个不为空的参数。如果所有参数都为 null,则 COALESCE函数将返回 null。 COALESCE函数从左到右计算参数&a…

doris恢复库恢复表

今天眼疾手快 不小心删了公司生产环境的表 而且碰巧这个数据没有备份的 当时哥们就呆住 还好doris升级过1.2 刚推出了恢复数据的功能~~~~~这里给老天爷磕一个了~~~~~~ 数据删除恢复 Doris为了避免误操作造成的灾难,支持对误删除的数据库/表/分区进行数据恢复&…

MongoDB初体验-安装使用教程2023.7

前言:博主第一次接触MongoDB,看了一圈网上现有的教程,不是缺少细节就是有问题没交代清楚,特整理了一下自己安装运行的过程,从下载安装到开机自启,全程细节齐全、图文并茂、简单易懂。 目录 1. 从官网下载2…

JavaWeb课程设计项目实战(03)——开发准备工作

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 在正式进入项目开发之前请先完成以下准备工作。 数据库语句 请创建数据库和表并完成数据初始化工作。 初始化数据库 请在MySQL数据库中创建名为studentinformationmanag…

Nacos服务注册和配置中心(Config,Eureka,Bus)1

SCA(Spring Cloud Alibaba)核心组件 Spring Cloud是若干个框架的集合,包括spring-cloud-config、spring-cloud-bus等近20个子项目,提供了服务治理、服务网关、智能路由、负载均衡、断路器、监控跟踪、分布式消息队列、配置管理等领域的解决方案,Spring C…

ADB 命令结合 monkey 的简单使用,超详细

一:ADB简介 1,什么是adb: ADB 全称为 Android Debug Bridge,起到调试桥的作用,是一个客户端-服务器端程序。其中客户端是用来操作的电脑,服务端是 Android 设备。ADB 也是 Android SDK 中的一个工具&…

unity背景缓动动效

这算是一个很常见的小功能,比如我们在玩横版游戏的时候,背景动画会以一定的频率运动,其实现方式也有很多种。 比如,使用UGUI的imageanimtion动画的方式,自己k桢实现。 还可以使用材质球本身的功能来实现,关…