sip作为互联网中的一个网络会话协议,管理整个会话过程,自然也支持过程中需要的一些网络传输协议。sip是应用层协议,想要在网络中进行信息传递,就避免不了与网络中各层的协议产生关联,用户代理发送的请求或响应可通过任何传输协议进行传输发送,比如RTP、RTCP、UDP

1.SDP协议

SDP(Session Description Protocol)会话描述协议,与sip配合使用时处在sip的正文部分,主要负责媒体协商,也就是协商RTP等传输协议所要用到的IP地址、端口号、媒体类型(视频、语音、文本等)等信息,当然也包括所运用的传输协议,所谓描述就是描述多媒体参与会话的参数,确保参与会话的双方或多方具有一系列共同的参数(比如传输的媒体类型、传输方式、端口是否一致)。

sip协议的信令消息包含头消息和消息体两个部分,中间一般用空白行分隔开。SDP作为消息体部分,包含了很多包括头消息内容在内的参数设置,因此SDP是sip会话的最基本的要求。

sip消息格式包括请求消息格式和响应消息格式,请求消息格式包括request-line、header和message-body,响应消息格式包括staus-line、header和message-body。

2.RTP协议

RTP(Real-time Transport Protocol)是传输层的实时传输协议,基于UDP协议之上,主要用于支持音视频数据传输。RTP协议主要提供了音视频在传输层中的标准数据包格式,具体就是在音视频数据前加上RTP头,这样就形成了RTP数据包,然后接收方按照接收到的RTP包以帧为单位组成音视频数据,比如h265的裸码流打包、ps格式或者ts格式封装的数据包。

RTP头固定长度为12字节,其中包括的字段如下:

*PT(8位)指明有效荷载的类型(比如音频、图像、文本等),方便接收方对消息的解析;

*sn(sequence number,16位)字段的初始值是随机的,在发送方每发送完一个RTP包后,其的值就加1,为接收方提供检查包的丢失情况和恢复包序列的顺序,每帧的最后一个包都会被打上mark标记,以此区别每个帧;

*SSRC同步源(同一时刻到达接收端的RTP包来源)标识符,用于区别多路不同的音视频媒体流;

*V版本(占2位)、P填充(占1位,数据加密时使用)、X扩展(占1位,很少使用扩展头)、CC参与源数量(占4位)、M标记(占1位,可表示将该RTP包作为视频流每帧的开始、结束的标志)、tamestamp时间戳(32位,表示RTP包之间的时间关系)和CSRC字段。

RTP本身并不确保网络底层的可靠性,也不保证传送或防止无序传送,更不提供按时发送机制或其他服务质量(QoS)保证,RTP只是负责音视频媒体数据的传输,提供时间标志、序列号以及其他能够保证在实时数据传输时处理时间的字段。所以RTP就需要RTCP的帮忙,解决一些它解决不了的问题。

3.RTCP协议

RTCP(Real-time Transport Control Protocol)是为RTP的服务质量提供反馈(保证音视频质量)的实时传输控制协议。除此之外,RTCP还收集并传输相关媒体连接的统计信息,比如传输字节数、传输分组数、丢失分组数、时延抖动、单向和双向网络延迟等参与媒体之间的控制数据。网络应用程序可以通过RTCP的信息来提高服务质量。

RTCP头中包含有与关联RTP一样的时间戳,所以RTCP还可以实现一次会话中不同RTP数据包(媒体流)之间的同步,因为不同媒体流的时间戳的粒度不一样,所以RTCP可以将关联RTP头中的时间戳与音频或视频的采样时钟关联起来,接收方就根据该关联来同步音频和视频的播放。

RTCP的这些功能的具体实现形式来自于RTCP头中8位的报文类型字段,不同字段值表示不同的RTCP报文。比如发送报告(SR),发送方每发送一个RTP报文,也会发送一个与该RTP关联的SR报文,主要是告诉接收方当前RTP报文的发送情况,包括服务质量(QoS)保证、参与者之间的控制数据信息、时间戳等。接收报文(RR),接收方每接收到一个RTP报文,就会返回一个与该RTP关联的RR报文,告诉发送方当前RTP报文的接收情况,反馈QoS相关数据。根据RTCP收集并传输的相关媒体连接的统计信息,了解当前网络等情况,以此决定数据传输速率等。除此之外还有发送端描述报告(SDES)、结束(BYE)等报文类型。

RTCP不传输媒体流,而是为负责传输数据的RTP提供信道外的控制。RTCP解决了服务质量和保证传送的问题,但不保证传输数据的安全性,不提供数据加密或身份认证,所以还得SRTCP&SRTP(Secure Real-time Transport control Protocol&Secure Real-time Transport Protocol)安全实时传输控制协议的帮助,负责数据加密、消息认证、数据完整性保证和重放保护。

4.总结

RTP协议主要是提供了一个标准数据包(报文)格式,然后按照该格式将应用层发送方的音视频数据流进行封准后形成RTP报文,再通过UDP、IP和其他底层协议来实现该RTP报文的传输。具体为多媒体数据一般由文本、音频、视频等数据流组成,而这些数据流会以sip消息格式(消息体为SDP)被送到RTP库软件,RTP按照数据流之间的关系将其压缩编码后复用到RTP报文中,然后连同RTCP报文,加套接字通过UDP软件封装为UDP报文进行传输,到达网络层后再封装到IP数据包继续传输,到达接收端后,接收端将封装的RTP报文送到应用层,然后播放RTP里的多媒体数据流。

注:属学习笔记,如有错误,欢迎指正

2022.12.10

sip篇——SDP、RTP、RTCP协议相关推荐

  1. LIVE555 RTSP RTP/RTCP协议介绍

    LIVE555  RTSP.RTP/RTCP协议介绍 一.概述 RTSP(Real-Time Stream Protocol )是一种基于文本的应用层协议,在语法及一些消息参数等方面,RTSP协议与H ...

  2. RTP/RTCP协议介绍

    1流媒体协议 当前在Internet上传输音频和视频等信息主要有两种方式:下载和流式传输. 下载情况下,用户需要先下载整个媒体文件到本地,然后才能播放媒体文件.流式传输是指传输之前首先对多媒体进行预处 ...

  3. RTP/RTCP协议详解

    1.简介 目前,在IP网络中实现实时语音.视频通信和应用已经成为网络应用的一个主流技术和发展方向,本文详细介绍IP协议族中用于实时语音.视频数据传输的标准协议RTP( Real-time Transp ...

  4. 音视频传输-之RTP/RTCP协议

    前言 RTP/RTCP协议设计用来传输音视频数据,对应的RFC文档为:RFC3550,对应的中文版RFC3550中文版 RTP被定义为在一对一或者一对多的传输情况下工作,其目的是为了提供时间信息和实现 ...

  5. RTP/RTCP协议

    ​RTP/RTCP协议背景 流(Streaming)是近年在Internet上出现的新概念,其定义非常广泛,主要是指通过网络传输多媒体数据的技术总称.流媒体包含广义和狭义两种内涵:广义上的流媒体指的是 ...

  6. RTSP/RTP/RTCP协议流程及分析

    RTSP(实时流协议) RTSP中使用会话概念代替连接,由于它本身不与传输层绑定,因此RTSP会话在传输层支持TCP与UDP协议发送请求.RTSP客户机和服务器都可以发出请求,本身并不携带传输的媒体数 ...

  7. RTSP SDP RTP/RTCP介绍

    应用层 RTSP.SDP: 传输层 RTP.TCP.UDP: 网络层 IP SDP (1)SDP(Session Description Protocol)是服务器端生成的描述媒体文件的编码信息以及所 ...

  8. RTP/RTCP协议与RTSP协议

    基本概念 流式传输 包括顺序流式传输(Progressive Streaming)和实时流式传输(Real-time Streaming).直播场景中使用progressive streaming和r ...

  9. 在SIP对讲机中RTP/RTCP的实现

    RTP/RTCP的定义及用途,还是请大家自己google.对于wifi手机来说呢,RTP协议用来传送编码后的语音,RTCP协议用来传送控制信息,公司的RTCP附带了一些语音统计信息和jitter bu ...

最新文章

  1. pointnet 结果可视化_PointNet论文复现及代码详解
  2. MySQL5.6解压版详细安装教程(附安装配置、MySQL数据库设置root管理员密码,MySQL字符集设置问题及解决办法)
  3. 用javascript实现一个stack overflow的例子
  4. Scrapy突破反爬虫的限制
  5. 通过docker build --build-arg 传值进 Dockerfile 动态构建容器
  6. SAP License:MIRO
  7. Fibonacci斐波拉契数列----------动态规划DP
  8. 165体重_身高165的女性体重多少比较合适?过胖和过瘦都不太好
  9. # 2021-03-04 文件搜索命令 find
  10. C#替换方向性的 Unicode 控制字符,解决无法匹配iphone 通讯录复制的手机号码问题
  11. 何园–中国晚清第一园
  12. hihocoder 1251 Today Is a Rainy Day 2015北京区域赛C
  13. 折腾开源WRT的AC无线路由之路-1
  14. GIS——地图比例尺
  15. 微信小程序上传图片裁剪工具image-cropper使用
  16. h5: canvas如何设置高度和宽度
  17. EC-PCA: 利润中心出具报表编制流程 - KE5Z / S_ALR_87013326
  18. [分享]使用iphone让你的电脑PC或MAC上网- 苹果官网说法
  19. 房地产结构性兼并潮到来
  20. 题解 The Blocks Problem(UVa101)紫书P110vector的应用

热门文章

  1. 校验手机号正则表达式
  2. 关于vue项目本地localhost可以正常访问项目,ip却无法访问项目的解决办法
  3. canvas黑客帝国数字雨背景 html+css+js
  4. 前触发器和后触发器简介(downmoon)
  5. 天池大赛-用户在商场中的定位
  6. IDEA Java Junit单元测试入门实战
  7. Machine Learning 高频面试题
  8. [NOP404]网站入口
  9. freemarker视图解析配置
  10. 【若依(ruoyi)】summernote 设置字体