UDT(一):概览

news/2024/11/15 22:19:24/文章来源:https://www.cnblogs.com/zhijun1996/p/18397636

1. 参考链接

  • 官网

    https://udt.sourceforge.io/

  • 谷博士对UDT的简单介绍

    https://udt.sourceforge.io/doc/udt-2009.ppt

  • 获取UDT源码

    https://sourceforge.net/projects/udt/files/udt/4.11/udt.sdk.4.11.tar.gz/download?use_mirror=pilotfiber

  • UDT讨论贴

    https://sourceforge.net/p/udt/discussion/

  • KCP项目,作者提到了关于KCP/TCP/UDT的对比测试

    https://github.com/skywind3000/kcp/wiki/KCP-Benchmark

2. UDT简介

2.1 UDT是什么

  • UDT(UDP-based Data Transfer Protocol) 是一种用于高性能数据传输的网络协议,适用于需要高带宽和低延迟的应用场景

  • 设计初衷是克服TCP在高延迟和高丢包率网络环境中的不足

2.2 为什么需要UDT

(1) 首先来看一下TCP的缺陷

  • TCP虽然保证了数据可靠性,但是在高带宽/高延迟环境下,TCP的表现不佳
  • 带宽利用率低:
    • TCP的慢启动机制:导致TCP的传输带宽是逐步增加的,造成TCP连接的初始阶段带宽利用率低
    • 当网络rtt非常大时:TCP的慢启动过程将会非常耗时,需要花费更长的时间才能达到TCP的峰值带宽
    • TCP的拥塞控制机制:导致在发生丢包时,拥塞窗口会大幅降低,实际利用的带宽可能远低于实际可用的带宽,导致带宽闲置;并且在之后会再次进入慢启动阶段,无法有效利用带宽
  • 面对高带宽延迟产品时表现不佳
    • 典型的如卫星网络,国外有马斯克的星链计划,国内的千帆星链计划等
    • 卫星链路的特点就是延时较高,丢包率较高
    • 实测中国卫通的某一款产品,rtt基本在500~600ms之间,测试时的丢包率甚至能达到50%,在这样的网络环境下,TCP慢启动阶段耗时长,丢包后恢复慢,拥塞窗口调整滞后...等等问题,导致TCP几乎处于不可用的状态

(2) 再来看一下UDP的缺陷

  • 没啥好说的,当然就是无连接,不可靠了

(3) 因此需要一种新的传输协议,既能够保证数据可靠性,也能够充分利用网络带宽,在发生拥塞或丢包时能够快速恢复

(4) 当然也有其它的方案可以实现上述要求,如谷歌的quic、林伟大神的KCP...等。之所以先来研究UDT,是因为音视频传输领域广泛使用的SRT协议,就是基于UDT来实现的,我司的项目又深度使用了SRT协议,先为以后研究SRT协议打个基础吧

3. 源码编译

  • 获取源码,最新的是4.11版本

    https://sourceforge.net/projects/udt/files/udt/4.11/udt.sdk.4.11.tar.gz/download?use_mirror=pilotfiber

  • 在Ubuntu中完整构建源码,包含libudt.so和示例程序

    $ make -e
    

  • 单独构建示例程序

    udt4$ cd app && make
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/792436.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

南沙信C++陈老师解一本通题:1075:药房管理

​题目描述】随着信息技术的蓬勃发展,医疗信息化已经成为医院建设中必不可少的一部分。计算机可以很好地辅助医院管理医生信息、病人信息、药品信息等海量数据,使工作人员能够从这些机械的工作中解放出来,将更多精力投入真正的医疗过程中,从而极大地提高了医院整体的工作效…

跨越网络边界:内外网数据摆渡最优方案!

随着网络技术的演进,网络攻击、数据窃取、数据泄露事件也愈发频繁,给企业造成损失和负面影响,企业数据防泄漏治理是大趋势,也是自身迫切需求。网络隔离技术作为网络安全和数据安全的重要保障手段被广泛应用到各个行业领域,对于金融行业,国家出台的《金融行业信息系统信息…

推荐一款开源、高效、灵活的Redis桌面管理工具:Tiny RDM!支持调试与分析功能!

1、引言 在大数据和云计算快速发展的今天,Redis作为一款高性能的内存键值存储系统,在数据缓存、实时计算、消息队列等领域发挥着重要作用。然而,随着Redis集群规模的扩大和复杂度的增加,如何高效地管理和运维Redis数据库成为了许多开发者和运维人员面临的挑战。Tiny RDM(T…

河道漂浮物识别 智慧水利 智慧水务

河道漂浮物识别根据智能视频分析,漂浮物检验报警设备自动分析识别视频图像信息内容,不用人工干涉;河道漂浮物识别监控区域里的河面漂浮物,出现异常状况时更快开展预警信息,真真正正完成预警信息、正常的检验、规范化管理,合理帮助管理者最大限度地降低乱报和少报;还能够…

智慧港口安全预警AI智能视频分析平台

智慧港口安全预警AI智能视频分析平台,各种算法识别精度达到90%以上,实现对动火作业的智能化全过程监管,减少港口安全事故发生的可能性,智慧港口安全预警AI智能视频分析平台紧跟港口物流智能化视频分析平台的发展趋势,从人力监管模式转变为高效、精准的智能化监管模式,提高…

工地安全帽佩戴识别

工地安全帽佩戴识别根据安装在现场施工工地的各种各样监控系统,创建智能监管和防护系统软件,开展面部识别、个人行为识别和安全帽子识别,工地安全帽佩戴识别合理填补施工现场监管中传统式方式和技术性的缺点,真真正正完成预警信息、正常的检验、规范化管理。工地安全帽佩戴…

视频图像智能识别系统

视频图像智能识别系统根据优化算法对项目现场封闭地区开展监控和防卸,对项目现场实时全天候监控识别分析,当监测到有人的身体进入时,视频图像智能识别系统会全自动警报和警示,适用三种颜色智能展现不一样情况,数据可视化监管 。在项目施工作业区域开展侵入监管,如安全防护…

智能视频图像识别

智能视频图像识别系统选用人工智能识别算法技术,能够随时监控和剖析现场各大品牌相机中的视频图像。智能视频图像识别系统软件关键运用相机拍摄的图像开展智能实时分析,抓拍监控识别和检作业现场的违规操作及行为,并向责任人推送信息。与传统监控系统软件对比,智能视频图像…

Qt/C++编写的Onvif调试助手调试神器工具/支持云台控制/预置位设置等/有手机版本

一、功能特点广播搜索设备,支持IPC和NVR,依次返回。 可选择不同的网卡IP进行对应网段设备的搜索。 依次获取Onvif地址、Media地址、Profile文件、Rtsp地址。 可对指定的Profile获取视频流Rtsp地址,比如主码流地址、子码流地址。 可对每个设备设置Onvif用户信息,用于认证获取…

Javascript-原型/原型链

OOP 面向对象 对象是什么?为什么要面向对象?面向对象的优势? 特点:迁移更灵活、代码复用性高、高度模块化的体现,例如vue中new Vue() 对象 对象是对单个物体的简单抽象 =>怎么让多个对象产生关联 对象是基础 也是容器(可以承载其他的对象) => 属性、方法、对象字面…

在keil中使用git

目录在keil中使用git搜集官方相关帮助1.application note2.软件附带帮助文件基础准备git命令行MDK版本操作步骤1.Abstract(摘要)2.Introduction3.Workflows3.1.Centralized Workflow4.Using Git with Vision4.1.Project Files under Version Control4.2.Files that do not need…

VMware ESXi 7.0U3q macOS Unlocker 标准版和厂商定制版更新 OEM BIOS 2.7 支持 Windows Server 2025

VMware ESXi 7.0U3q macOS Unlocker 标准版和厂商定制版更新 OEM BIOS 2.7 支持 Windows Server 2025VMware ESXi 7.0U3q macOS Unlocker 标准版和厂商定制版更新 OEM BIOS 2.7 支持 Windows Server 2025 VMware ESXi 7.0U3q macOS Unlocker & OEM BIOS 2.7 标准版和厂商定…