锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / 基于UDP的数据传输协议UDT / UDT简介
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发

三、UDT简介


3.1 UDT特性

UDT协议的特性包括以下几个方面:

1) 基于UDP的应用层协议;

2) 面向连接的、可靠的协议;

3) 双工的协议;

4) 单播的数据流;

5) 新的拥塞控制算法,并且具有可扩展的拥塞控制框架。

面向连接:意味着两个使用协议的应用在彼此交换数据之前必须先建立一个连接。

UDT是逻辑上存在的连接通道。

可靠性:包序号机制;接收者的ACK响应和丢包报告;ACK序号机制;重传机制(基 于丢包报告和超时处理)。

连接的维护:握手;Keep-alive;关闭连接。

双工的:每个UDT实例包含发送端和接收端的信息。

新的拥塞控制算法:不同于基于窗口的TCP拥塞控制算法(慢启动和拥塞避免),是混 合的基于窗口的、基于速率的拥塞控制算法。

可扩展的拥塞控制框架:开源的代码和拥塞控制的C++类架构,可支持开发者派生专 用的拥塞控制算法。

UDT支持可靠的数据流(STREAM)和不可靠的消息(DGRAM)。数据流语意上和TCP的 数据流相似;不可靠的消息语意上可以视为SCTP协议[RFC4960]的子集。

3.2 层次架构

UDT协议框架的分层架构如下图所示:

UDT协议分层架构图

应用程序使用UDT Socket的API接口,如同使用系统的Socket一样。UDT提供了一个 拥塞控制类(CC)。CC包含了一个必要的用户自定义的回调函数集合,用以处理不同的控制 事件。应用程序可以自定制,派生拥塞控制类。

UDT位于UDP之上的应用层。应用程序通过UDT Socket交换数据。

内存拷贝为了减少处理时间,绕过了UDT。

3.3 软件架构

下图着眼于分层里的UDT部分,展现了UDT的软件架构:


UDT软件架构

上图的实线表示数据流,虚线表示控制流。

阴影的块(Buffer和Loss List)是4个数据组件。空白的块(API、UDP Channel 、Sender 、Receiver和Listener)是功能组件。

因为UDT是双向的,所有的UDT实体都有相同的结构。

被发送的数据转发给Sender的缓冲区,然后被Sender发送给UDP通道。

在连接的另一侧,Receiver从UDP通道读取数据,转发给Receiver的缓冲区,重新 排序数据以及检查信息包的丢失。Receiver也处理接收到的控制包信息。它更新Sender的 丢失链表(当NAK控制包被接收)和Receiver的丢失链表。一些控制事件会触发Receiver去 更新拥塞控制模块(负责Sender的包发送)。

应用程序可以从Receiver缓冲区里读取数据。

UDT的Socket选项能控制Sender/Receiver(同步模式),缓存管理模块(缓存大小), UDP通道(UDP的Socket选项),Listener(待办订单)和CC(拥塞控制算法)。这些选项可以 从这些模块中读取,并且通过API模块提供给应用程序。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内