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

即时通讯为什么不采用UDP的连接方式呢

即时通讯为什么不采用UDP的连接方式呢

博主今天从网络上找了几个比较关注的热点的内容进行讲解 

1.首先介绍一下UDP连接的缺点

  1. 不可靠:UDP是一种无连接的传输协议,它不提供数据包的可靠传输保证。这意味着当使用UDP进行通信时,数据包可能会丢失、重复、乱序或损坏,而且没有机制来自动纠正这些问题。对于实时通讯应用,如语音或视频通话,丢失的数据包或乱序的数据会导致严重的质量下降。
  2.  不支持流量和拥塞控制:DP没有内置的流量控制和拥塞控制机制。这意味着当网络拥塞或带宽受限时,UDP应用程序无法自动调整发送速率或适应网络条件。这可能导致过度发送数据包,进一步加重网络拥塞,并增加数据丢失的可能性。
  3. 不能穿越防火墙,不能进行net转换:由于UDP是无连接的,它在穿越防火墙或执行网络地址转换时可能会遇到问题。防火墙通常会限制对UDP端口的访问,并且UDP数据包的源IP地址和端口在经过NAT后可能会被修改,导致通信中断或无法建立连接。
  4. 需要自己定义错误处理和重传机制:由于UDP不提供可靠性保证,应用程序需要自己实现错误处理和重传机制来确保数据的可靠传输。这需要额外的开发工作,并增加了应用程序的复杂性。

2.简单说一下UDP的优点

UDP并不是一无是处的,在部分场景下也是应用十分广泛的

  1. 低延迟:UDP在通信过程中不需要建立连接和维护状态,数据包的传输延迟较低。由于没有TCP的握手和重传机制,UDP可以更快地将数据发送到目标主机。
  2. 带宽利用率高:由于UDP没有拥塞控制机制,它可以以较高的速率发送数据。对于实时性要求较高的应用,如实时音视频传输、游戏等,UDP能够更好地满足需求。
  3. 简单轻量:UDP的协议头相对简单,只有较少的字段,包含源端口、目标端口、数据长度等。相对于TCP来说,UDP的实现更加简单、轻量,对系统资源的消耗较少。
  4. 广播和多播:UDP支持广播和多播的特性,可以将数据一次性发送给多个接收方,适用于实现组播通信和广播传输。

3.UDP的应用场景

UDP用于的实时通讯一般指的就是视频一类的不是文字一类的,要是发消息丢了那是不行的。

UDP的应用场景比较好记忆的。

  1. 实时性要求较高的应用:UDP适用于那些对传输延迟要求较高,可以容忍丢包的应用。例如,实时音视频通信、在线游戏中的实时数据传输等。

  2. DNS(Domain Name System):域名解析通常使用UDP协议进行查询和响应,因为UDP在速度和带宽利用率方面更为适合。

  3. 日志收集:在日志收集系统中,UDP常用于将日志数据快速传输到中央日志服务器,以减少传输延迟和系统资源消耗。

  4. 广播和多播应用:UDP支持广播和多播的特性,可以用于组播通信、实时数据分发等

 最后,简单的总结一下,TCP连接是基于1对1的方式的,UDP连接是基于1对多的连接的方式的。

综上所述,尽管UDP在一些特定场景下具有优势(如实时性要求高、数据量小等),但对于及时通讯这样对数据可靠性和稳定性要求较高的应用来说,UDP的无连接性和不可靠性使其不适合作为建立连接的主要协议。UDP采用的传输的方式是采用的广播的机制。

相关文章:

即时通讯为什么不采用UDP的连接方式呢

即时通讯为什么不采用UDP的连接方式呢 博主今天从网络上找了几个比较关注的热点的内容进行讲解 1.首先介绍一下UDP连接的缺点 不可靠:UDP是一种无连接的传输协议,它不提供数据包的可靠传输保证。这意味着当使用UDP进行通信时,数据包可能会丢…...

二叉树(纲领篇)

文档阅读 文档阅读 二叉树解题的思维模式分两类: 1、是否可以通过遍历一遍二叉树得到答案?如果可以,用一个 traverse 函数配合外部变量来实现,这叫「遍历」的思维模式。 2、是否可以定义一个递归函数,通过子问题&a…...

day41—选择题

文章目录 1.某主机的IP 地址为 180.80.77.55,子网掩码为 255.255.252.0。若该主机向其所在子网发送广播分组,则目的地址可以是(D)2.ARP 协议的功能是(A)3.以太网的MAC 协议提供的是(A&#xff0…...

Vue3 watch 监听对象数组中对象的特定属性

在 Vue 3 中,可以使用 watch 函数来监听对象数组中对象的特定属性。可以通过在回调函数中遍历数组来检查对象的特定属性是否发生变化,并在变化发生时执行相应的操作。 一、监听对象的特定属性 例如,假设有一个名为 items 的对象数组&#x…...

请求策略库alova小记

官方文档地址:https://alova.js.org/zh-CN/get-started/overview 定义 alova是一个简单编码即可实现特定场景的高效请求的请求策略工具。 场景痛点 现在一般的请求场景,一般分为两个部分: 请求部分。一般用axios等库触发http请求&#xf…...

[C++]string的使用

目录 string的使用:: 1.string类介绍 2.string常用接口说明 string相关习题训练:: 1.仅仅反转字母 2.找字符串中第一个只出现一次的字符 3.字符串里面最后一个单词的长度 4.验证一个字符串是否是回文 5.字符串相加 6.翻转字符串…...

Kali Linux 操作系统安装详细步骤——基于 VMware 虚拟机

1. Kali 操作系统简介 Kali Linux 是一个基于 Debian 的 Linux 发行版,旨在进行高级渗透测试和安全审计。Kali Linux 包含数百种工具,适用于各种信息安全任务,如渗透测试,安全研究,计算机取证和逆向工程。Kali Linux 由…...

R语言APSIM模型应用及批量模拟实践技术

查看原文>>>基于R语言APSIM模型高级应用及批量模拟实践技术 目录 专题一、APSIM模型应用与R语言数据清洗 专题二、APSIM气象文件准备与R语言融合应用 专题三、APSIM模型的物候发育和光合生产模块 专题四、APSIM物质分配与产量模拟 专题五、APSIM土壤水平衡模块 …...

破解马赛克有多「容易」?

刷短视频时,估计大家都看过下面这类视频,各家营销号争相曝光「一分钟解码苹果笔刷背后内容」的秘密。换汤不换药,自媒体们戏称其为「破解马赛克」,殊不知让多少不明真相的用户建立起了错误的认知,也让苹果笔刷第 10086…...

【.NET基础加强第八课--委托】

.NET基础加强第八课--委托 委托(Delegate)委托操作顺序实例多播委托—委托链实例实例委托传值 委托(Delegate) 委托(Delegate) 是存有对某个方法的引用的一种引用类型变量 委托操作顺序 1,定义一个委托类…...

jetcache:阿里这款多级缓存框架一定要掌握

0. 引言 之前我们讲解了本地缓存ehcache组件,在实际应用中,并不是单一的使用本地缓存或者redis,更多是组合使用来满足不同的业务场景,于是如何优雅的组合本地缓存和远程缓存就成了我们要研究的问题,而这一点&#xff…...

干货 | 如何做一个简单的访谈研究?

Hello,大家好! 这里是壹脑云科研圈,我是喵君姐姐~ 心理学中研究中,大家常用的研究方法大多是实验法、问卷调查法等,这些均是定量研究。 其实,作为质性研究中常用的访谈法,可对个体的内心想法进…...

4年外包出来,5次面试全挂....

我的情况 大概介绍一下个人情况,男,毕业于普通二本院校非计算机专业,18年跨专业入行测试,第一份工作在湖南某软件公司,做了接近4年的外包测试工程师,今年年初,感觉自己不能够再这样下去了&…...

基于遗传算法优化的核极限学习机(KELM)分类算法-附代码

基于遗传算法优化的核极限学习机(KELM)分类算法 文章目录 基于遗传算法优化的核极限学习机(KELM)分类算法1.KELM理论基础2.分类问题3.基于遗传算法优化的KELM4.测试结果5.Matlab代码 摘要:本文利用遗传算法对核极限学习机(KELM)进行优化,并用于分类 1.KE…...

评判需求优先级5大规则和方法(纯干货):

在划分用户需求时,需秉承需求任务紧跟核心业务指标,按照一定的规则和方法进行优先级的划分。 常见评判需求优先级规则有:四象限法则、KANO模型、二八原则、产品生命周期法、ROI评估法。 一、四象限法则 四象限法则是以【重要】和【紧急】程度…...

c++ 11标准模板(STL) std::vector (七)

定义于头文件 <vector> template< class T, class Allocator std::allocator<T> > class vector;(1)namespace pmr { template <class T> using vector std::vector<T, std::pmr::polymorphic_allocator<T>>; }(2)(C17…...

Contest3137 - 2022-2023-2 ACM集训队每月程序设计竞赛(1)五月月赛

A 1! 5! 46 169 有一种数字&#xff0c;我们称它为 纯真数。 它等于自身每一个数位的阶乘之和。请你求出不超过n的所有 纯真数。(注&#xff1a;纯真数不含有前导0&#xff09;数据范围1e18 纯真数只有四个&#xff0c;注意0!1 1,2,145,40585 int n;cin>>n;int res[]{…...

如何使用 YOLOv8 神经网络检测图像中的物体

对象检测是一项计算机视觉任务,涉及识别和定位图像或视频中的对象。它是许多应用的重要组成部分,例如自动驾驶汽车、机器人和视频监控。 多年来,已经开发了许多方法和算法来查找图像中的对象及其位置。执行这些任务的最佳质量来自使用卷积神经网络。 YOLO 是这项任务最流行的…...

Python每日一练:小艺读书醉酒的狱卒非降序数组(详解快排)

文章目录 前言一、小艺读书二、醉酒的狱卒三、非降序数组总结 前言 今天这个非降序数组&#xff0c;阅读解理小学水平&#xff0c;说起来都是泪啊。我折腾了一天都没搞定&#xff0c;从冒泡写到快速排序。换了几种都还不行&#xff0c;我又给快排加上插入排序。结果还是不能全…...

手麻系统源码,PHP手术麻醉临床信息系统源码,手术前管理模块功能

手麻系统源码&#xff0c;PHP手术麻醉临床信息系统源码&#xff0c;手术前管理模块功能 术前管理模块主要有手术排班、手术申请单、手术通知单、手术知情同意书、输血血液同意书、术前查房记录、术前访视、风险评估、手术计划等功能。 功能&#xff1a; 手术排班&#xff1a;…...

AUTOSAR - ComM - 学习一 :基础知识+配置

目录 1、概述 1.1、总览 1.2、功能描述 1.3、依赖关系 2、功能SPEC 2.1、PNC...

手把手教你搭建ROS阿克曼转向小车之(增量式PID代码实现)

在上一篇文章中我们已经成功的把编码器的反馈值给计算出来&#xff0c;这篇文章将会讲解怎么使用反馈回来的速度值进行PID计算&#xff0c;从而闭环控制电机的速度。 PID算法介绍 1.开环控制系统 开环控制系统(open-loop control system)是指被控对象的输出(被控制量)对控制器…...

C语言函数大全-- t 开头的函数

C语言函数大全 本篇介绍C语言函数大全-- t 开头的函数 1. tan&#xff0c;tanf&#xff0c;tanl 1.1 函数说明 函数声明函数功能double tan(double x)计算 以弧度 x 为单位的角度的正切值&#xff08;double&#xff09;float tanf(float x)计算 以弧度 x 为单位的角度的正…...

安卓系统APP稳定性测试分析的研究报告

目录 第一章&#xff1a;概念 第二章&#xff1a;重要性 第三章&#xff1a;意义和作用 第四章&#xff1a;行业现状 第五章&#xff1a;常见测试方法和工具 第六章&#xff1a;实际测试场景 第七章&#xff1a;测试方案 第八章&#xff1a;测试方法 第九章&#xff1…...

【Java基础】集合

一、集合概述 为了方便对多个对象进行存储和操作&#xff0c;集合是一种Java容器&#xff0c;可以动态地把多个对象引用放入容器中 数组存储的特点 一旦初始化后&#xff0c;长度不可改变&#xff0c;元素类型不可改变提供的方法很少&#xff0c;对于添加、删除、获取实际元…...

【Android入门到项目实战-- 9.1】—— 传感器的使用教程

目录 传感器的定义 三大类型传感器 1、运动传感器 2、环境传感器 3、位置传感器 传感器开发框架 1、SensorManager 2、Sensor 3、SensorEvent 4、SensorEventListener 一、使用传感器开发步骤 1、获取传感器信息 1)、获取传感器管理器 2)、获取设备的传感器对象列…...

yolov8 浅记

目录 Pre: 1. YOLOv8 概述 2. 模型结构设计 3. Loss 计算 4.训练数据增强 5. 训练策略 6、部署推理 End Pre: yolo系列发布时间&#xff1a; 先贴一下yolo各系列的发布时间&#xff08;说出来很丢人&#xff0c;我以为 yolox是 最新的&#xff09;&#xff1a; yoloX 2…...

前端009_类别模块_修改功能

第九章 1、需求分析2、Mock添加查询数据3、Mock修改数据4、Api调用回显数据5、提交修改后的数据6、效果1、需求分析 需求分析 当点击 编辑 按钮后,弹出编辑窗口,并查询出分类相关信息进行渲染。修改后点击 确定 提交修改后的数据。 2、Mock添加查询数据 请求URL: /article/…...

2022级吉林大学面向对象第一次上机测试

【注&#xff1a;解答全部为本人所写&#xff0c;仅供同学们学习时参考使用&#xff0c;请勿照搬抄袭&#xff01;】 1、 1&#xff09;略 2&#xff09;如果main,f1,g1,g2或更多的函数之间有更为复杂的调用关系&#xff0c;头文件一般按怎样的规律写呢&#xff1f; 一般情况下…...

计算机体系结构总结:内存一致性模型 Memory consistency Model

存储一致性是为了保证多线程背景下的访存顺序&#xff0c;多线程的语句是可以交错执行&#xff0c;使得顺序不同产生不同的执行结果。 下面P2的输出结果可能是什么&#xff1f; P1, P2两个线程的语句是可以交叉执行的&#xff0c;比如1a, 2a, 2b, 1b&#xff1b;一个线程内的语…...

怎么介绍做网站技术/营销外包公司

复习总结   回顾这一周的复习情况&#xff0c;效果并不太好。我需要复习的科目很多&#xff0c;每天都是想复习哪一科就复习哪一科。有时候这一科看烦了&#xff0c;就看另一科&#xff1b;也有时候一直复习一科。事实证明这样的效果一点也不好。一周过去了&#xff0c;感受不…...

抄底券网站怎么做的/360搜索引擎优化

输入和显示字符 输入和显示字符串 在上以汇编博客中已经写到 输入 AH 01H AL 存放 输入的字符 输出 AH 02 H DL 存放输出的字符因此关键代码 &#xff1a;是 MOV AH , 01H INT 21H MOV [CHAR], AL MOV DL, [CHAR] MOV AH , 02H INT 21H 由上可以知道完整代码 应该是…...

怎么做最火的视频网站/网站测速

https://leetcode.com/problems/longest-palindromic-substring/ 题意&#xff1a;求最长回文子串 思路&#xff1a;动态规划&#xff0c;设dp[i][j]表示从i到j的子串是不是回文串&#xff0c;如果是dp[i][j]1,否则dp[i][j]0. 状态转移&#xff1a;dp[i][j]dp[i1][j-1]&…...

深圳市住房建设局网站首页/如何在网上推广自己的公司

参考&#xff1a; Android 如何有效的解决内存泄漏的问题 Java-内部类的相关知识 Android-LeakCanary检测内存泄漏 非静态内部类&#xff1a; 成员内部类&#xff0c; 局部内部类、 匿名内部类。 会有对外部类的引用。这样内部类中耗时操作在用户频繁退出重启APP相关Activi…...

家装公司网站建设方案/查排名官网

WebSphere MQ&&ActiveMQWebSphere MQ1、 中间件处于应用软件与系统软件之间&#xff0c;是一种以自己的复杂换取企业应用简单化的可复用的基础软件&#xff0c;它使用系统软件所提供的基础服务&#xff08;功能&#xff09;&#xff0c;衔接网络上应用系统的各个部分或…...

网页前端开发用什么软件/西安seo推广优化

很多人在为公司起名时&#xff0c;比较在意自己的公司名字有几个字&#xff1f;其实在生活中我们不难发现&#xff0c;公司名称几个字的都有&#xff0c;比较普遍的就是两个字、三个字、四个字的公司名称&#xff0c;企二哥今天专门讲讲三个字的公司名字如何起&#xff1f;(一)…...