RTP
- RTP是端到端的协议,基于UDP【运行在UDP之上】,UDP本身不保证传输的可靠性,数据传输的可靠性由RTCP协议保证
- RTCP协议与RTP协议是独立的
使用场景:
- 简单多播音频会议:
- 如何通讯: 分配一个工作组中心多播的地址和一对端口,音频data和RTCP数据包控制,并将这些地址发送给参与者
- 参与者的设备不同导致音频编码格式的不同: 每个与会者发送音频数据块,UDP包内包含RTP报头和数据,RTP报头指明各个包里音频编码的类型,这样发送方可以在会议过程中更改发送类型
- 丢失和包重排: RTP报头里包含计时消息和序列号,【计时消息可以被接受方重建,可能是来本段消息在源文件的计时消息】,序列号被接收方用来评估丢包数目,【通过比对接受包的序列号,计算出丢包的数目】
- 实时知道新加入or离开的接受状态: RTCP端口上周期性多播一个附加用户名的接受报告,每一个用户离开的时候会发送RTCP BYE包
- 音频
+
视频in one
:- 一个会议同时有音频和视频媒体:二者传输的时候使用不同的
RTP session
,也就是说使用两对不同的RTP和RTCP包的端口,【Exception:如果一个同时参加两个session的user,在两个session的RTCP包中使用了相同的name,这两个session就会发生耦合(associated)
】,尽管如此,RTCP包内的计时消息还是能够同步音频和视频
- 一个会议同时有音频和视频媒体:二者传输的时候使用不同的
- 99个高速连接
+
1个低速连接,不允许IP包通过的地方:Mixers and Translators
- 水桶原则在这种情况下会使得99个人的体验很差,所以可以插入一个代理--
Mixers
,这个代理通过单播被发送到一个固定的接收方【也可以多播】,代理接收的是原来的音频信号并转换编码为低带宽模式,RTP报头为Mixer
识别音频源提供了方法 - 不允许IP包通过的地方:使用中继器*2,外侧中继器通过安全连接发入内侧中继器
- 水桶原则在这种情况下会使得99个人的体验很差,所以可以插入一个代理--
- 不同接收速率下的传输速率设定:
- 在tcp拥塞控制中是由发送方来调整发送速率,但是多播的情况多接收设备速率不同的时候,就只能取最小的一个值,这样大大限制了传输的质量和保真度
- 分层编码
+
分层传输:【将速率适配的责任放在接收器上。在基于IP多播的RTP上下文中,源可以跨多个RTP会话(在每个RTP会话上承载自己的多播组)剥离分层表示信号的渐进层。然后,接收者可以通过仅加入多播组的适当子集来适应网络异构性并控制其接收带宽】,源通过分层编码分层传输,接收者根据自己的接受速率来接收不同session个数和内容
定义:
-
RTP payload
: RTP的有效载荷,指的是包中的音频或者压缩好的视频数据 -
RTP packet
:RTP数据包,格式为【报头 + 源列表 + RTP payload】,UDP层一般一次封装一个RTP包,也可以多个 -
RTCP packet
:RTCP控制包,格式为【报头 +structured elements
】,UDP层一般一次封装多个RTCP包,(格式小,报头中有长度) -
Transport address
:ip + port
-
RTP media type
:一个session中所有payload的类型的集合 -
Multimedia session
:多媒体回话,一个视频会议中可能包括an audio RTP session and a video RTP session
-
RTP session
:【不太清晰这块.......】参与者通过不同的目标传输地址来接收不同的会话区分多个RTP会话,每个RTP会话都会维护一个SSRC标识符,这个标识符的传递可以是一对多,也可以是多个一对一 -
SSRC, Synchronization source
【同步源】:重组一个信号源【麦克风、摄影机、mixer等】的标识,来进行重放 -
CSRC, Contributing source
【分信源】:对mixer生成的流的起作用的源 -
End system
:可以是多个SSRC
,也可以是一个SSRC
Mixer and Translator
-
Monitor
:应用程序,接受参与者的RTCP包特别是接收报告 -
Non-RTP means
:其他协议和机制
RTP数据传输协议
-
报文
RTP headerHeader
格式:
-
Header是可以扩展的
RTCP数据传输协议
- 基本功能:
- 传输质量反馈
- 每个RTP源的标识CNAME
- 控制速率使得在RTP成员可以平滑的增长
- 可选项:宽松控制
- RTCP包的格式
- SR:sender report,发送者的发送和接收统计数字
- RR:receiver report,接受者的接受统计
- SDES:source description items
- BYE:结束对话
- APP:Application-specific functions 应用描述功能
- 加入和BYE时候更新SSRC
SDP
- SDP是为了描述多媒体回话而设计的
- SDP的主要作用:保持活跃性,提供足够的信息加入会话
DTMF
dual-tone multifrequency (DTMF)
- DTMF负载格式:
- 双音多频数字信号、其他线路
- 普通多频电话
- DTMF处理的场合:网关、终端、RTP干线
- 网关:internet 电话网关检测引入网路的DTMF并发送描述该内容的RTP负载而不是通常的音频数据包
- 终端系统:可以仿真DTMF的功能性
- RTP干线:RTP常用于取代两点间通常的电路开关干线
- 语音与事件:
- 网关在接收到DTMF数字信号的时候可以只进行"话音分析",也可以进行"话义分析",区别在与后者会直接将话义分析得到的结果(如 忙音)和描述直接进行RTP传输
SIP
-
SIP是一个点对点协议
-
SIP仅仅涉及通信会话的协议部分【如使用了哪些端口,编码器是哪些】,SIP session 传输一些简单的实时传输协议流,RTP本身才是语音或者视频的载体
-
SIP是一个应用层的控制协议,可以用来建立、修改、终止多媒体回话,支持以下方面:
- 定位
- 有效性
- 媒体参数
- 建立会话
- 会话管理
-
SIP本身不提供服务,只是服务的包裹方
-
SIP session的连接过程:
SIP session的连接过程
100(Trying)应答表示INVITE请求已经收到,并且代理服务器正在转发INVITE请求。
bob的电话响了。bob的sip电话发送一个180(Ringing)回应,这个回应将通过两个代理服务器原路返回给Alice。
Bob决定响应这个呼叫。当他拿起电话,他的SIP电话发送200(OK)回应给发送者,表示这个电话已经接起来了。
ACK是跨过代理服务器的,因为这时候双方已经知道对方的地址了,可以直接通话,Alice和Bob的媒体会话开始了,他们通过发送刚才建立会话所交换的SDP包中约定的互相明白的媒体包来进行会话。一般情况下,端到端的媒体包和SIP信号控制包通过不同的通讯路径来发送。
BYE信号仅仅需要会OK,断开连接即可
-
SIP层次结构:
- 事务用户:SIP实体
- 事务层:事务处理的应答、超时
- 传输层:客户端和服务器如何传输应答
- 语法和编码层
网友评论