如何提高UDP的可靠性
TCP是通过确认机制和超时重传机制实现可靠传输
UDP
UDP它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。传输层无法保证数据的可靠传输,只能通过应用层来实现了。实现的方式可以参照tcp可靠性传输的方式,只是实现不在传输层,实现转移到了应用层。
关键在于两点,从应用层角度考虑:
1 提供超时重传,能避免数据报丢失。
2 提供确认序列号,可以对数据报进行确认和排序。
本端:首先在UDP数据报定义一个首部,首部包含确认序列号和时间戳,时间戳是用来计算RTT(数据报传输的往返时间),从何计算出合适的RTO(重传的超时时间)。然后以等-停的方式发送数据报,即收到对端的确认之后才发送下一个的数据报。当时间超时,本端重传数据报,同时RTO扩大为原来的两倍,重新开始计时。
对端:接受到一个数据报之后取下该数据报首部的时间戳和确认序列号,并添加本端的确认数据报首部之后发送给对端。根据此序列号对已收到的数据报进行排序并丢弃重复的数据报。
转载于:https://www.cnblogs.com/home123/p/7499608.html
如何提高UDP的可靠性相关推荐
- UDP套接字编程以及提高UDP可靠性的方法
★UDP套接字 服务器:①创建套接字socket():②绑定bind():③udp收发:recvfrom,sendto(TCP中的收发可以当成文件用read.write完成:UDP必须将数据报完整收回 ...
- 了解这些电源知识能提高机房供电可靠性
前言: 如果说:"供配电是数据中心机房的生命线",这句话一点也不夸张,因为离开了电我们的机房是连一分钟也运行不了的,因此要建一个好的机房,首先要将供配电解决好,而机房的供配电系统就 ...
- 大数据之-Hadoop之HDFS_NameNode多目录配置_把元数据存放多份_放到namenode的多个文件夹下_提高元数据的可靠性_案例---大数据之hadoop工作笔记0076
然后我们再来看一下hadoop的namenode的多目录配置,其实就是 把namenode的元数据,我们在多个目录中都放置一份,这样来提高元数据的可靠性,但是这样的做法,效果有限 因为如果nameno ...
- 计算机网络可靠性的重要指标,浅谈如何提高计算机网络的可靠性
浅谈如何提高计算机网络的可靠性 1提高计算机网络的可靠性是势在必行的 近年来,计算机网络不断发展,各行各业的主要业务都依赖于计算机网络.下面,笔者将列举几个具有代表性的行业对计算机网络的依赖性. 1. ...
- 计算机网络功能中的提高系统的可靠性指的是,计算机网络知识:计算机网络的功能...
计算机网络的功能主要表现在以下四个方面: 1.数据传送 数据传送是计算机网络的最基本功能之一,用以实现计算机与终端或计算机与计算机之间传送各种信息. 2.资源共享 充分利用计算机系统硬.软件资源是组建 ...
- 样本量计算PASS软件提高临床研究可靠性的利器
临床研究样本量的计算是医学研究中非常重要的一步,正确的样本量计算可以提高研究的可靠性和准确性.PASS是一款广泛应用的临床研究样本量计算软件,该软件以其简单易用.功能齐全和准确性高等特点而受到广泛的欢 ...
- 保证计算机网络的稳定运行,[计算机如何连接网络]浅谈如何提高计算机网络的可靠性...
<[计算机如何连接网络]浅谈如何提高计算机网络的可靠性>由会员分享,可在线阅读,更多相关<[计算机如何连接网络]浅谈如何提高计算机网络的可靠性(3页珍藏版)>请在装配图网上搜索 ...
- UDP的可靠性传输详解
文章目录 UDP和TCP的区别 TCP UDP 为什么要使用UDP传输可靠性数据 如何使用UDP传输可靠性数据 KCP的使用方式 kcp配置模式 kcp的协议头 UDP和TCP的区别 Tcp和udp都 ...
- 固态硬盘可靠性_您可以通过使用较少的总容量来提高硬盘的可靠性吗?
固态硬盘可靠性 Your computer has a massive hard drive that you significantly underuse. Would decreasing the ...
最新文章
- 你一定需要知道的高阶JAVA枚举特性!
- 11. jsp与servlet之间页面跳转及参数传递实例
- Windows API的时间结构体、时间转换及时间获取
- 用C语言编写贪吃蛇项目描述,刚学C语言,想写一个贪吃蛇的代码
- VS2010附加进程调试DLL时断点无法断下的解决方法
- pyqt5 qlabel无法显示图片_实战PyQt5: 011-单选框控件QRadioButton
- mysql数据库导出导入设置编码
- php pdo 新建数据库,php – 使用PDO数据库类而不是每次都创建新...
- 2014025673《嵌入式系统程序设计》第三、四周学习总结
- srs部署到ubuntu 18.04 server
- trans系列是sci几区_怎么确定SCI论文期刊是几区的?
- Unity-Timeline制作动画(快来制作属于你的动画吧)
- js制作的炫酷3D太阳系行星运行效果
- 项目管理之如何做好项目经理
- Android Native APP开发笔记:文件存储与访问
- Java 执行 JS 脚本工具
- 关于left / right / stereo / mono
- 科技公司LOGO在线制作设计
- 大一python基础编程试卷_2020年大学慕课Python编程基础试题及答案
- python奥运会_用python分析kaggle_奥运会数据的案例
热门文章
- 【HDU - 1757】A Simple Math Problem (矩阵快速幂)
- ACM与Java -- 大整数类的常用函数一览表
- 【HDU - 2066】:一个人的旅行(Dijkstra算法)
- Python开发常用工具库
- 动手学无人驾驶(4):基于激光雷达点云数据3D目标检测
- android 仿真翻页动画,Android 两Activity之间动画效果(1)---------翻页效果
- matlab的diray在哪,matlab笔记
- linux查看cpu占用最多的进程,Linux下查看占用CPU资源最多的几个进程
- 华为鸿蒙2.0操作页面,华为鸿蒙2.0开面界面确认,这一变化你可懂
- 尚硅谷李老师笔记3DQL