VoIP之RTP/RTCP协议

在VoIP领域中,一般使用RTP作为媒体的传输协议。RTP(real-time transport protocol)由rfc3550定义(其中RFC1889已经过期)。

RTP提供了一种适用于应用在端到端之间传输音频、视频等实时数据的网络传输方式。RTP没有资源预留机制,不确保实时服务的服务质量。通过RTCP控制协议监控数据传输来最大化的利用网络。RTP/RTCP是独立于传输层和网络层设计的。

RTP应用场景:
一般使用IP和UDP承载,如下图

1. 简单的多播音频会议

2. 音频和视频会议

3. 混合器和翻译器(工作在RTP层面)

  •     混合器的一个应用场景是当低带宽网络参会方加入高带宽网络会议中,为不让会议中的每个人都使用低带宽网络、降低音频编码质量,在低带宽网络区域放入一个混合器。混合器重新构造数据包,将多路音频流混合成一路音频流,按低带宽编码后发送到低带宽网络。
  •   翻译器的一个应用场景是当音频会议中的参会方在应用层防火墙之后,不允许IP报文通过时,在防火墙的两侧各安装一个翻译器,通过两个翻译器完成参会方之间的数据交换。

术语定义:

  RTP payload: RTP携带的负载数据,如音频采样或压缩的视频数据
  RTP packet: 包含RTP头和负载的数据包
  RTCP packet: RTCP数据
  Synchronization source (SSRC): 同步源标识符

RTP固定头部:

    version (V): 2 bits,  版本号
    padding (P): 1 bit, 填充标志位,如果设置为1,则在有效负载后填充额外的8位组数据,最后的                           8 位组表示填充的长度。填充的一个应用场景是一些加密算法要求固定的数据块大                            小。
     extension (X): 1 bit: 扩展位,如果设置为1, 则固定的RTP头后面跟随一个扩展头
     CSRC count (CC): 4 bits: CSRC的数量,CSRC位于固定头之后
     marker (M): 1 bit: 标记(识)位,标识位的意义由应用的文档定义。比如标识一帧视频数据                                     的边界
     payload type (PT): 7 bits: 负载类型,由RFC3551定义, 如0:PCMU,8:PCMA
     sequence number: 16 bits: 序列号,最大值65535,每发送一个RTP数据包,序列号加1。序                                     列号的作用是接收方用来检测数据丢失和重新排序数据使用。为了防止对已                                     知明文的攻击,初始序列号应该是随机生成的。
     timestamp: 32 bits: 时间戳,RTP负载中第一个8位组的采样时间,同一时间产生的数据包有                                     相同的时间戳,比如属于同一视频帧的连续多个RTP包
     SSRC: 32 bits:  同步源标识,唯一标识RTP流
     CSRC list: 贡献源列表,支持表示0~15个贡献源,每一个用32位 表示,如果超过15 个,只                             列出15个。一般是被混合器加入的,用于接收方识别出讲话者

 

RTP扩展头部:

    defined by profile: 自定义
    length: 16bit, 表示有多少个32bit扩展数据的个数
    header extension: 扩展数据

    RTCP(RTP Control Protocol):RTCP周期性的向所有参与方发送控制包来反馈RTP数据                                                       收 发质量,如丢包率等。
    RTCP报文类型:
    SR:发送者报告,发送方 发送和接收情况的统计
    RR: 接收者报告, 接收方发送和接收情况的统计 
    SDES:媒体源描述,包括CNAME
    BYE: 表示参与方退出
    APP: 应用层自定义功能

抓包实例:

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

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

相关文章

TTDP、TRDP协议

1、TTDP即列车拓扑发现协议。该协议允许网络交换机在网络拓扑结构发生改变后自动与其他网络设备进行协商,并将根据新的列车车厢的指令为网络设备分配一个IP地址。 2、TRDP 列车实时数据协议规定了TRDP-PD过程数据和TRDP-MD消息数据两种主要的通信模式,两…

通讯协议汇总

UART UART(Universal Asynchronous Receiver/Transmitter)是一种通用串行数据总线,用于异步通信。该总线双向通信,可以实现全双工传输和接收。 物理拓扑 帧结构/数据传输形式# 起始位:先发一个逻辑0,表示传输字符的开始&#xf…

十六、停止等待协议

文章目录 1、为什么要有停止等待协议2、研究停等协议的前提3、应用停等协议的两种情况3.1 无差错的情况3.2 有差错的情况3.2.1 数据帧丢失或检测到帧出错3.2.2 ACK丢失3.2.3 ACK迟到 4、停等协议的性能分析THE END 1、为什么要有停止等待协议 \qquad 除了比特出差错&#xff0c…

获取实时股票行情通达信接口

获取实时股票行情通达信接口

今天给大家带来搜题公众号搭建教程(附赠搜题接口 还支持语音图片搜题)

今天给大家带来搜题公众号搭建教程(附赠搜题接口 还支持语音搜题) 下面带大家搭建搜题公众号 首先我们需要的材料: 1.有自己的微信公众号(已经注册好的,直接登录自己公众号即可) 注册公众号教程&#xff1a…

google搜索技巧——程序员推荐

文章目录 前言谷歌搜索语法指令用引号来查询一个确切的单词或短语OR查询排除特定网站标题搜索将搜索结果限制到特定网站查看某个地区内的相关信息将结果限制为特定的文件格式 小结 前言 在昨天使用Google搜索一个异常问题的时候,不经意间发现有如下的提示 参考如上…

Google 几种常见的高级搜索技巧

1、完全匹配搜素:“使用双引号” 2、模糊匹配:使用*代替 3、排除搜素:使用-排除 4、在特定的网站内搜索:使用 site:来搜索 5、特定文件类型搜索:使用filetype: 来搜索 6、限定在url中进行搜索:i…

百度、谷歌等搜索引擎高效搜索方法 —— 更快速搜索到你想要内容

一、常用搜索方法 1、限定标题 intitle 又被称为去广告搜索法,intitle命令,即in title(在标题里)返回的的结果是网页的标题包含该关键词。一般情况下搜索的关键词都会在标题里出现,使用intitle命令一般是在特殊需求下…

巴比特 | 元宇宙每日必读:传苹果将在6月开发者大会上发布混合现实头显,售价约三千美元,分析师预计今年出货量约为20万至30万部...

摘要:据腾讯科技报道,知情人士透露称,苹果公司预计将在6月份举行的开发者大会上发布其备受期待的混合现实头显,然而这款产品依然处于试验阶段,强推不成熟产品上市有违苹果的传统和规则。许多投资者质疑:消费…

iOS之适配苹果Universal Links 和升级友盟的QQ和微信分享艰难之路

安逸的日子总是那么短暂,刚上完线,唏嘘人生是那么短暂而又漫长,刚准备进入安逸圈,结果晴天霹雳 这特么是啥 ,我没动啥代码哇,瞬间感觉蛋蛋有微微的疼痛,经过测试只有新系统(iOS13.5)的微信才会出现这个 这肯定是友盟整什么幺蛾子了,打开文档一看 瞬间明白了什么 ,我现在用的…

Android 版灵动岛插件上线;iPhone 15或将改名,并改用USB-C接口;​Swift 5.7 发布|极客头条

「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews) 一分钟速览新闻点&…

毕业论文季,你需要一个黑科技

1、风来了,两极分化严重 ChatGPT 是一种基于大型语言模型,由 OpenAI 开发,ChatGPT 的发展得益于深度学习算法的发展和硬件设备的提升。 ChatGPT深度学习模型Python语言机器学习和自然语言处理算法。 继00年的电商、15年的短视频之后&#…

新手程序员要不要学英语?

点击上方“中兴开发者社区”,关注我们 每天读一篇一线开发者原创好文 作为在中国工作的程序员,不懂得英语似乎也不妨碍找到好工作,升职加薪。但程序员这个工种则稍有不同,因为程序,尤其是高级语言,基本上都…

程序员去哪里找国外朋友来进行学习英语?

程序员有必要学习英语么?答案是肯定的!大部分优秀的计算机相关的资源(视频,文章等等)都是英文的,所以英语学习对一名优秀的程序员来说也是一门必修课. 如何能找到一名或者多么的国外朋友进行英语的学习,相信效果会更好.不过在和国外人交流之前你要拥有最基本的英语水平.这里我…

用中文编程,就不用学英语?我保证你会更头疼!

首先大概的看一下中文编码: 你以为会写中文写编程就简单了吗?这就像你以为会写汉字就会写出好文章一样。编程是和机器沟通,因此要用机器的语言而不是人类的语言。 最早的程序就是0和1的数字,不是中文也不是英文。以前的程序员&…

英文不好到底能不能学会编程?

很多初学编程的小伙伴都会问,“我英语差能学编程吗?”。 首先,对于初学编程,或者一般的应用开发,并不需要多高深的英语水平,想要学会编程,简单的初高中英语水平足够了。 现在的程序开发环境又…

英语不好,能不能学会编程?

编程的人都会问: 我英文差能学会编程吗?? 学会编程不须要多浅近的英语水平,想要学会编程,简略的英语水平足够了。当初的程序开发环境又很敌对,基本上关上之后不须要怎么配置,间接写代码就行&a…

就大学生对网络舆情态度的调查

【新生研讨课】 ** 就大学生对网络舆情态度的调查 ** 成员:王诗雅,徐江源,孙静波,彭雨扬 当今社会,网络舆情非常严重,键盘侠层出不穷,网络暴力随处可见,令人痛心!&a…

给谷歌 浏览器安装Chrome-Charset 插件解决数据输出乱码问题

1.下载 插件地址:https://github.com/jinliming2/Chrome-Charset 2.点击如图 小图标 找到更多工具->扩展程序,点击如下图 选项 后选择你 下载好 的 插件 就好了 (一定要 解压 ), 3.使用如图(安装好 后就…

2023,AI 技能学起来

这段时间,ChatGPT 算是火出圈了。不仅朋友圈转发各种 ChatGPT 的文章,连我夫人这种从来不关注科技新闻的人也问我 ChatGPT 是怎么回事。其实我算是比较早知道并关注 ChatGPT 的,去年 12 月份还写了一篇文章 AI 也会写代码了,但我并…