Southwest university of science and technology 视频信息处理与传输
实验报告
报告名称RTP-RTCP协议
专业班级电子1002班
学生姓名
学号
指导教师
实验四RTP-RTCP协议
一、实验目的
1、了解实时传输协议RTP和实时传输控制协议RTCP的基本原理;
2、学习使用RTP数据报发送实时数据,并接收重组;
3、学会使用Wireshark进行抓包,并分析数据。
二、实验内容
1、RTP协议报文段的说明语句
RTP(Real-time Transport Protocol,实时传输协议)是一个网络传输协议。RTP报文由两部分组成:报头和有效载荷。RTP报头格式如图1所示,其中:
图1 RTP报头格式
V:RTP协议的版本号,占2位,当前协议版本号为2。
P:填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。
X:扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头。
CC:CSRC计数器,占4位,指示CSRC 标识符的个数。
M: 标记,占1位,不同的有效载荷有不同的含义,对于视频,标记一帧的结束;对于音频,标记会话的开始。
PT: 有效载荷类型,占7位,用于说明RTP报文中有效载荷的类型,如GSM 音频、JPEM图像等。
序列号:占16位,用于标识发送者所发送的RTP报文的序列号,每发送一个报文,序列号增1。接收者通过序列号来检测报文丢失情况,重新排序报文,恢复数据。
时戳(Timestamp):占32位,时戳反映了该RTP报文的第一个八位组的采样时刻。接收者使用时戳来计算延迟和延迟抖动,并进行同步控制。
同步信源(SSRC)标识符:占32位,用于标识同步信源。该标识符是随机选择的,参加同一视频会议的两个同步信源不能有相同的SSRC。
特约信源(CSRC)标识符:每个CSRC标识符占32位,可以有0~15个。每个CSRC标识了包含在该RTP报文有效载荷中的所有特约信源。
2、RTCP协议报文段的说明语句
RTCP(RTP Control Protocol,控制协议)——监控服务质量并传送正在进行的会话参与者的相关信息。RTCP包括五种数据包类型(RFC3550 Page69):
表1 RTCP的五种分组类型
第二部分是长度为20个字节的发送端信息,每个SR都含有这部分信息。它对发送端传输的数据进行计数。每个字段的含义如下:
NTP时间标志:64位。表示SR的发送时间。它与从接收端返回的时间标志配合用来计算在发送端和接收端间的数据传输时间。
RTP时间标志:32位。与NTP时间标志对应的时间值。它用于同步与NTP 时间标志同步的数据源。也可用于接收端估算RTP时钟频率。
发送端数据包计数:32位。从开始传输到产生SR数据包这段时间内由发送
端发送的RTP数据包。发送端改变其SSRC标识符时重新设置该计数值。
第三部分是0个或多个RR数据块。数据块的数量由接收最后一个报告以来该发送端所收听的其它数据源的数量确定。每个RR数据块通过接收来自单同步源的RTP数据包传输统计信息。由于冲突而使数据源改变其SSRC标识符时,接收端不改变其统计信息。统计信息有:
SSRC_n(数据源标识符):32位。SSRC标识符,在RR数据块中与数据源有关的信息。
丢失率:8位。发送前一个SR或RR数据包后来自数据源SSRC_ n的RTP
三、实验过程
1、完成RTP报文段的说明语句
struct RTP_PDU {
unsigned short Version:2; /* protocol version */
unsigned short P:1; /* padding flag */
unsigned short X:1; /* header extension flag */
unsigned short CC:4; /* CSRC count */
unsigned short M:1; /* marker bit */
unsigned short PT:7; /* payload type */
u_int16 SEQ; /* sequence number */
u_int32 TS; /* timestamp */
u_int32 SSRC; /* synchronization source */
u_int32 CSRC[1]; /* optional CSRC list */
}
2、完成RTCP报文段的说明语句
struct RTCP_PUD {
unsigned short Version:2; /* protocol version */
unsigned short P:1; /* padding flag */
unsigned short Count:5; /* varies by packet type */
unsigned short PT:8; /* RTCP packet type */
u_int16 Length; /* pkt len in words, w/o this word */ }
3、用Wireshark软件抓取视频和音频网络数据报,并给出RTP和RTCP数据报的分析结果。
在用Wireshark进行抓包实验中,首先是对其进行软件设置。我在实验过程中的设置如图2。
图2 软件设置
在Capture Options的设置中,将Interface设置为图上所示。该字段指定我想