Reliable UDP

2023-11-02 05:10
文章标签 udp reliable

本文主要是介绍Reliable UDP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Reliable UDP(可靠的UDP)是一套服务品质的增强,比如拥挤控制调整,数据重传,薄化服务器算法等,这些增强可以提高服务器在数据包丢失和网络拥挤的条件下向RTP客户表现品质良好的RTP流的能力。Reliable UDP’的拥挤控制机制使系统在没有影响协议的实时本质的情况下,在行为上具备TCP协议的友好方式。

为了在英特网上处理好TCP网络流量,Reliable UDP使用数据重传和拥挤控制算法,与TCP协议采取的算法类似。另外,这些算法是经过时间考验的,可以很好地利用现有带宽。

Relibable UDP包括如下特性:

  • 客户端对服务器发出的数据包进行回应
  • 对窗口缓冲和拥挤进行控制,使服务器不超过当前可用的带宽。
  • 发生丢包时,服务器向客户重新发送数据
  • 比实时流更快的缓冲机制,称为“overbuffering”

客户端是否使用Reliable UDP取决于客户端发出的RTSP SETUP请求中的内容。

这个部分包括如下内容:

应答包

RTSP协商

应答包

在使用Reliable UDP时,服务器期望收到与自己发出的每个RTP数据包相对应的应答包。如果服务器没有收到应答,则可能会重新发送相应的数据包。客户并不需要为其收到的每一个RTP数据包发送应答包,而是可以将几个数据包的应答进行合并,并通过一个应答包一起发送给服务器。

Reliable UDP应答包在格式上是一种RTCP APP数据包。在标准的RTCP APP报头之后,应答包的有效负荷由RTP序列号以及紧跟其后的可变长度的位掩码组成。序列号标识客户端正在应答的首个RTP数据包,此外的每个被应答的RTP数据包都由位掩码中设置的一个位来表示。位掩码是相对于指定序列号的偏移量,掩码中的第一个字节高位表示比指定序列号大1的数据包,第二个位表示比指定数据包大2的数据包,以此类推。位掩码必须以多个four octets的方式发送。在掩码中将某个位设置为0,简单地表示目前客户端不希望应答这个序列号的数据包,并不意味着否定的应答。

图 2-13显示的是Reliable UDP应答包的格式。

RTSP协商

是否使用Reliable UDP通过RTSP的带外协商来确定。如果客户端希望使用Reliable UDP,则应该在其RTSP SETUP请求中包含一个x-Retransmit报头。报头的主体中含有传输协议的名称(our-retransmit),其后紧跟的是一个参数列表,以分号分隔。

目前,有一个参数可以从客户端传到服务器端:即window参数。如果包含这个参数,则window参数会告诉Reliable UDP服务器客户窗口的尺寸,以KB计。

下面是一个实例:

x-Retransmit: our-retransmit;window=128 

 

服务器必须回应报头及所有参数。如果在SETUP响应中没有x-Retransmit报头,则客户端必须假定当前这个流不使用Reliable UDP。如果服务器改变可参数值,则客户必须使用新的值。

这篇关于Reliable UDP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/328340

相关文章

VC环境下window网络程序:UDP Socket程序

最近在学Windows网络编程,正好在做UDPsocket的程序,贴上来: 服务器框架函数:              socket();    bind();    recfrom();  sendto();  closesocket(); 客户机框架函数:            socket();      recfrom();  sendto();  closesocket();

9.7(UDP局域网多客户端聊天室)

服务器端 #include<myhead.h>#define SERIP "192.168.0.132"#define SERPORT 8888#define MAX 50//定义用户结构体typedef struct{struct sockaddr_in addr;int flag;}User;User users[MAX];//用户列表void add_user(struct s

应用层简单实现udp / tcp网络通信

一、常见网络接口总结 1、创建 socket 文件描述符 (TCP/UDP, 客户端 + 服务器) int socket(int domain, int type, int protocol); domain:AF_INET:网络通信,AF_LOCAL:本地通信 type:UDP:SOCK_DGRAM,TCP:SOCK_STREAM protocol:协议编号一开始设0 返回值:文件描

[网络编程]TCP和UDP的比较 及 通过java用UDP实现网络编程

文章目录 一. 网络编程套接字TCP和UDP的特点有连接 vs 无连接可靠传输 vs 不可靠传输面向字节流 vs 面向数据报全双工 vs 半双工 二. java用UDP实现网络编程代码实现:运行代码:启动多个客户端别人能否使用?实现翻译功能 一. 网络编程套接字 网络编程套接字, 就是指操作系统提供的网络编程的api, 称为"socket api" 操作系统, 提供的sock

Java高级Day37-UDP网络编程

109.netstat指令 netstat -an 可以查看当前主机网络情况,包括端口监听情况和网络连接情况 netstat -an|more 可以分页显示 要求在dos控制台下执行 说明: LISTENING表示某个端口在监听 如果有一个外部程序(客户端)连接到该端口,就会显示一条连接信息 ctrl + c 退出指令 110.TCP连接秘密 1.当客户端连接到服务器后,

传输层协议UDP

本篇将主要介绍 UDP 协议,介绍了有关 UDP 协议的报头、协议特点、UDP 协议在操作系统中的缓冲区、UDP 协议使用的注意事项,以及有关 UDP 的 Socket 编程程序,同时重点介绍了操作系统对于 UDP 协议报文的管理。         接着介绍了有关端口号的映射。 目录 UDP协议 1. UDP协议报头 2. UDP协议特点 3. UDP的缓冲区 4.

UDP通信实现

目录 前言 一、基础知识 1、跨主机传输         1、字节序          2、主机字节序和网络字节序          3、IP转换 2、套接字 3、什么是UDP通信  二、如何实现UDP通信          1、socket():创建套接字         2、bind():绑定套接字           3、sendto():发送指定套接字文件数据

MarkTool之网络篇UDP

UDP客户端         1、连接服务端         2、校验方式         3、接收数据类型         4、发送数据类型         5、暂停显示         6、将数据区域保存到文件         7、定时发送         8、快捷指令         9、批量发送         10、历史发送

udp网络通信 socket

套接字是实现进程间通信的编程。IP可以标定主机在全网的唯一性,端口可以标定进程在主机的唯一性,那么socket通过IP+端口号就可以让两个在全网唯一标定的进程进行通信。 套接字有三种: 域间套接字:实现主机内部的进程通信的编程 原始套接字:使用网络层或者数据链路层的接口进行编程,更难更底层,例如制作抓包等网络工具 网络套接字:实现用户通信的编程 udp网络通信 服务端server 分

HTTP 协议与 TCP、UDP 协议的区别

在网络编程和互联网应用开发中,HTTP、TCP 和 UDP 是常见的网络协议。它们分别用于不同的场景,具有不同的特性和应用。本文将深入探讨 HTTP 协议与 TCP、UDP 协议的区别,并分析它们在网络通信中的具体用途。 目录: 什么是 HTTP 协议?什么是 TCP 协议?什么是 UDP 协议?HTTP 协议与 TCP、UDP 的关系HTTP、TCP 和 UDP 的区别各协议的应用场景总结