千锋教育-做有情怀、有良心、有品质的职业教育机构

当前位置:首页  >  关于学院  >  技术干货  >  物联网技术干货  >  正文

UDP如何实现可靠传输

来源:千锋教育
发布时间:2022-09-28 17:22:30
分享

  UDP不属于连接协议,具有资源消耗少,处理速度快的优点,所以通常音频,视频和普通数据在传送时,使用UDP较多,因为即使丢失少量的包,也不会对接受结果产生较大的影响。

UDP如何实现可靠传输

  传输层无法保证数据的可靠传输,只能通过应用层来实现了。实现的方式可以参照tcp可靠性传输的方式,只是实现不在传输层,实现转移到了应用层。

  最简单的方式是在应用层模仿传输层TCP的可靠性传输。

  下面不考虑拥塞处理,可靠UDP的简单设计。

  1、添加seq/ack机制,确保数据发送到对端

  2、添加发送和接收缓冲区,主要是用户超时重传

  3、添加超时重传机制。

  详细说明:

  送端发送数据时,生成一个随机seq=x,然后每一片按照数据大小分配seq。数据到达接收端后接收端放入缓存,并发送一个ack=x的包,表示对方已经收到了数据。发送端收到了ack包后,删除缓冲区对应的数据。时间到后,定时任务检查是否需要重传数据。

  目前有如下开源程序利用udp实现了可靠的数据传输。分别为RUDP、RTP、UDT。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

上一篇

相关推荐

  • c语言编程是什么意思 C语言编程是指使用C语言进行软件开发和编码的过程。C语言是一种通用的、高级的编程语言,由DennisRitchie在20世纪70年代早期开发。它在软件开发领域广泛应用,包括系统级编程、嵌入式系统开发、
  • 为什么不直接使用IP协议而要额外增加一个UDP/TCP协议呢? 但每台计算机中需要有多个通信通道,并将多个通信通道分配给不同的进程使用(关于进程,可以参考Linux进程基础)。一个端口就代表了这样的一个通信通道。UDP协议实现了端口,从而让数据包可以在送到IP地址的基础上,进一步可以送到某个端口。
  • 在驱动调试过程中遇到过oops没?你是怎么处理的? oops含义: Oops 这个单词含义为“惊讶”,当内核出错时(比如访问非法地址)打印出来的信息被称为 Oops 信息。1、出错信息描述,说明发生哪类错误,例如: “Unable to handle kernel NULL pointer dereference at virtual address 00000000”
  • 描述一下你用过的uboot的启动过程 启动流程如下: 启动方式为内部rom启动,然后加载第一阶段启动代码到内部iRAM中执行,第一阶段代码运行后将uboot镜像搬移到内存上执行,uboot的启动过程中大致完成了如下操作:
  • 找以下中断服务程序中的问题 中断是嵌入式系统中重要的组成部分,这导致了很多编译开发商提供一种扩展—让标准C支持中断。具代表事实是,产生了一个新的关键字 __interrupt。
  • 说明物联网的层次结构 感知层由各种传感器以及传感器网关构成,包括二氧化碳浓度传感器、温度传感器、湿度传感器、二维码标签、RFID标签和读写器、摄像头、GPS等感知终端。感知层的作用相当于人的眼耳鼻喉和皮肤等神经末梢,它是物联网识别物体、采集信息的来源,其主要功能是识别物体,采集信息。