首页 > 其他分享 >UDP协议的收发操作

UDP协议的收发操作

时间:2023-08-22 18:13:50浏览次数:34  
标签:协议 UDP TCP 发送 收发 重发 数据 送达

大多数的应用程序都用TCP协议来收发数据,但当然也有例外。有些应用程序不使用TCP协议,而是使用UDP协议来收发数据。向DNS服务器查询IP地址的时候我们用的也是UDP协议。

不需要重发的数据用UDP发送更高效

由于我们需要将数据高效且可靠地发送给接收方。为了实现可靠性,tcp协议要求确认对方是否收到了我们发送的数据,如果没有还需要再发一遍。并且为了实现高效的传输,我们要避免重发已经送达的包,而是只重发那些出错的或者未送达的包。TCP之所以复杂,就是因为要实现这一点。

使用udp的场景

  1. 需要发送的数据很短

某些情况下我们要发送的数据很短,用一个包就能装得下。如果只有一个包,就不用考虑哪个包未送达了,因为全部重发也只不过是重发一个包而已,这种情况下我们就不需要TCP这样复杂的机制了。而且,如果不使用TCP,也不需要发送那些用来建立和断开连接的控制包了。此外,我们发送了数据,对方一般都会给出回复,只要将回复的数据当作接收确认就行了,也不需要专门的接收确认包了。像DNS查询等交换控制信息的操作基本上都可以在一个包的大小范围内解决,这种场景中就可以用UDP来代替TCP

  1. 音频和视频数据

音频和视频数据必须在规定的时间内送达,一旦送达晚了,就会错过播放时机,导致声音和图像卡顿。如果像TCP一样通过接收确认响应来检查错误并重发,重发的过程需要消耗一定的时间,因此重发的数据很可能已经错过了播放的时机。一旦错过播放时机,重发数据也是没有用的,因为声音和图像已经卡顿了,这是无法挽回的。当然,我们可以用高速线路让重发的数据能够在规定的时间内送达,但这样一来可能要增加几倍的带宽才行
此外,音频和视频数据中缺少了某些包并不会产生严重的问题,只是会产生一些失真或者卡顿而已,一般都是可以接受的。在这些无需重发数据,或者是重发了也没什么意义的情况下,使用UDP发送数据的效率会更高。

注:内容来源于书籍:网络是怎样连接的

标签:协议,UDP,TCP,发送,收发,重发,数据,送达
From: https://www.cnblogs.com/Qiuq-L/p/17649330.html

相关文章

  • 你每天都在使用的 HTTP 协议,到底是什么鬼?
    假期过去了,金三银四招聘季也就要来了,春节期间和一位面试官交流面试心得。他说面试一年多,每当问起面试者对HTTP的了解时,经常出现这样的情形: 面试官:请问你了解HTTP协议吗?前端开发:这不是应该后端清楚的吗?后端开发:这不应该是前端知道的吗?面试官:......其实无论是前端还是后端,都需要......
  • ⛳ TCP 协议详解
    ⛳TCP协议详解TCP/IP协议包含了一系列的协议,也叫TCP/IP协议族(TCP/IPProtocolSuite,或TCP/IPProtocols),简称TCP/IP。TCP/IP协议族提供了点对点的连接机制,并且将传输数据帧的封装、寻址、传输、路由以及接受方式,都予以标准化。......
  • swif开发之--协议的使用
    以前在oc构建的项目中,如果这个页面需要构建一些指定的页面,一般我会重新创建个集成与UIView的类,然后同时创建XXX.xib文件,然后直接在上面拖拽控件,非常快速,当然也可以手动布局!个人更喜欢可视化布局!在swift下,其实实现的逻辑也是一样的,布局风格也相仿,里面加了一个代理传值,具体代码如下:1,......
  • Http协议和WebSocket协议
    HTTP(HypertextTransferProtocol)是一种用于在网络上传输超文本数据的协议,它是Web通信的基础。而WebSocket是一种在单个TCP连接上进行全双工通信的协议,它提供了实时的、双向的通信机制。下面是它们的区别和应用场景:区别:HTTP是基于请求-响应模式的协议,每次请求都需要客户端发......
  • CAN通讯-使用Python收发CAN数据保姆级教程(包含完整代码)
    CAN通讯-使用Python收发CAN数据配置环境1.环境配置1.1安装CAN通讯需要的包1.2安装kvaser_drivers以及KvaserCanKing2.使用Python收发数据2.1接发数据代码如下:2.1.1接收数据代码2.1.2发送数据代码2.2验证发送数据2.2.1使用KvaserCanKing接收数据2.2.2......
  • sokit使用方法,检测TCP和UDP端口响应。
    输入IP和端口sokit中文版下载链接:https://github.com/sinpolib/sokit/releases/download/v1.3.20111130/sokit-1.3-win32-chs.zip......
  • 直播平台源码搭建协议讲解篇:传输控制协议TCP
    简介:由于直播平台在当今时代发展的越来越迅速,使得直播平台的技术功能越来越智能,让用户在直播平台中能够和其他用户进行实时互动,让用户可以获取到全世界最新的资讯,让一些用户可以作为主播获得工作,让另一些用户作为观众获得放松快乐等,所以直播平台源码搭建也成为了众多创业者想要涉......
  • 「30 天沉淀 90 mins」Day 1 CPU缓存一致性相关问题——MESI协议
    参考资料小林Coding,也是这里没想到居然讲了这个;先简单复习一下冯诺依曼模型——运算器、控制器、存储器、输入设备、输出设备,以及他们如何交互寄存器分类:通用寄存器,用来存放需要进行运算的数据,比如需要进行加和运算的两个数据。程序计数器,用来存储CPU要执行下一......
  • IMAP协议的历史及其工作原理
    IMAP(InternetMessageAccessProtocol)是一种邮件获取协议,它的历史可以追溯到1986年,由美国斯坦福大学研发。然而,尽管IMAP在当时已经存在,但并没有被广泛使用。直到2010年,随着网易的3.2亿免费邮箱用户全面默认开通IMAP服务,并升级服务提供更高级别的SSL加密,IMAP协议才开始得到广泛应用......
  • RunnerGo中WebSocket、Dubbo、TCP/IP三种协议接口测试详解
    大家好,RunnerGo作为一款一站式测试平台不断为用户提供更好的使用体验,最近得知RunnerGo新增对,WebSocket、Dubbo、TCP/IP,三种协议API的测试支持,本篇文章跟大家分享一下使用方法。WebSocket协议WebSocket是一种在单个TCP连接上进行全双工通信的API技术。相比于传统的HTTP请求,We......