TCP是通过确认机制和超时重传机制实现可靠传输

UDP

UDP它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,所以通常音频、视频和普通数据在传送时使用UDP较多,因为它们即使偶尔丢失一两个数据包,也不会对接收结果产生太大影响。传输层无法保证数据的可靠传输,只能通过应用层来实现了。实现的方式可以参照tcp可靠性传输的方式,只是实现不在传输层,实现转移到了应用层。

关键在于两点,从应用层角度考虑:

1 提供超时重传,能避免数据报丢失。

2 提供确认序列号,可以对数据报进行确认和排序。

本端:首先在UDP数据报定义一个首部,首部包含确认序列号和时间戳,时间戳是用来计算RTT(数据报传输的往返时间),从何计算出合适的RTO(重传的超时时间)。然后以等-停的方式发送数据报,即收到对端的确认之后才发送下一个的数据报。当时间超时,本端重传数据报,同时RTO扩大为原来的两倍,重新开始计时。

对端:接受到一个数据报之后取下该数据报首部的时间戳和确认序列号,并添加本端的确认数据报首部之后发送给对端。根据此序列号对已收到的数据报进行排序并丢弃重复的数据报。

转载于:https://www.cnblogs.com/home123/p/7499608.html

如何提高UDP的可靠性相关推荐

  1. UDP套接字编程以及提高UDP可靠性的方法

    ★UDP套接字 服务器:①创建套接字socket():②绑定bind():③udp收发:recvfrom,sendto(TCP中的收发可以当成文件用read.write完成:UDP必须将数据报完整收回 ...

  2. 了解这些电源知识能提高机房供电可靠性

    前言: 如果说:"供配电是数据中心机房的生命线",这句话一点也不夸张,因为离开了电我们的机房是连一分钟也运行不了的,因此要建一个好的机房,首先要将供配电解决好,而机房的供配电系统就 ...

  3. 大数据之-Hadoop之HDFS_NameNode多目录配置_把元数据存放多份_放到namenode的多个文件夹下_提高元数据的可靠性_案例---大数据之hadoop工作笔记0076

    然后我们再来看一下hadoop的namenode的多目录配置,其实就是 把namenode的元数据,我们在多个目录中都放置一份,这样来提高元数据的可靠性,但是这样的做法,效果有限 因为如果nameno ...

  4. 计算机网络可靠性的重要指标,浅谈如何提高计算机网络的可靠性

    浅谈如何提高计算机网络的可靠性 1提高计算机网络的可靠性是势在必行的 近年来,计算机网络不断发展,各行各业的主要业务都依赖于计算机网络.下面,笔者将列举几个具有代表性的行业对计算机网络的依赖性. 1. ...

  5. 计算机网络功能中的提高系统的可靠性指的是,计算机网络知识:计算机网络的功能...

    计算机网络的功能主要表现在以下四个方面: 1.数据传送 数据传送是计算机网络的最基本功能之一,用以实现计算机与终端或计算机与计算机之间传送各种信息. 2.资源共享 充分利用计算机系统硬.软件资源是组建 ...

  6. 样本量计算PASS软件提高临床研究可靠性的利器

    临床研究样本量的计算是医学研究中非常重要的一步,正确的样本量计算可以提高研究的可靠性和准确性.PASS是一款广泛应用的临床研究样本量计算软件,该软件以其简单易用.功能齐全和准确性高等特点而受到广泛的欢 ...

  7. 保证计算机网络的稳定运行,[计算机如何连接网络]浅谈如何提高计算机网络的可靠性...

    <[计算机如何连接网络]浅谈如何提高计算机网络的可靠性>由会员分享,可在线阅读,更多相关<[计算机如何连接网络]浅谈如何提高计算机网络的可靠性(3页珍藏版)>请在装配图网上搜索 ...

  8. UDP的可靠性传输详解

    文章目录 UDP和TCP的区别 TCP UDP 为什么要使用UDP传输可靠性数据 如何使用UDP传输可靠性数据 KCP的使用方式 kcp配置模式 kcp的协议头 UDP和TCP的区别 Tcp和udp都 ...

  9. 固态硬盘可靠性_您可以通过使用较少的总容量来提高硬盘的可靠性吗?

    固态硬盘可靠性 Your computer has a massive hard drive that you significantly underuse. Would decreasing the ...

最新文章

  1. 你一定需要知道的高阶JAVA枚举特性!
  2. 11. jsp与servlet之间页面跳转及参数传递实例
  3. Windows API的时间结构体、时间转换及时间获取
  4. 用C语言编写贪吃蛇项目描述,刚学C语言,想写一个贪吃蛇的代码
  5. VS2010附加进程调试DLL时断点无法断下的解决方法
  6. pyqt5 qlabel无法显示图片_实战PyQt5: 011-单选框控件QRadioButton
  7. mysql数据库导出导入设置编码
  8. php pdo 新建数据库,php – 使用PDO数据库类而不是每次都创建新...
  9. 2014025673《嵌入式系统程序设计》第三、四周学习总结
  10. srs部署到ubuntu 18.04 server
  11. trans系列是sci几区_怎么确定SCI论文期刊是几区的?
  12. Unity-Timeline制作动画(快来制作属于你的动画吧)
  13. js制作的炫酷3D太阳系行星运行效果
  14. 项目管理之如何做好项目经理
  15. Android Native APP开发笔记:文件存储与访问
  16. Java 执行 JS 脚本工具
  17. 关于left / right / stereo / mono
  18. 科技公司LOGO在线制作设计
  19. 大一python基础编程试卷_2020年大学慕课Python编程基础试题及答案
  20. python奥运会_用python分析kaggle_奥运会数据的案例

热门文章

  1. 【HDU - 1757】A Simple Math Problem (矩阵快速幂)
  2. ACM与Java -- 大整数类的常用函数一览表
  3. 【HDU - 2066】:一个人的旅行(Dijkstra算法)
  4. Python开发常用工具库
  5. 动手学无人驾驶(4):基于激光雷达点云数据3D目标检测
  6. android 仿真翻页动画,Android 两Activity之间动画效果(1)---------翻页效果
  7. matlab的diray在哪,matlab笔记
  8. linux查看cpu占用最多的进程,Linux下查看占用CPU资源最多的几个进程
  9. 华为鸿蒙2.0操作页面,华为鸿蒙2.0开面界面确认,这一变化你可懂
  10. 尚硅谷李老师笔记3DQL