用于文本交谈的RTP负载( 二 )


是一或多个冗余数据块头 , 个数与从携带的冗余T140块数相同 , 最后是此包的新T140块 。
2.1RTP包头
每个RTP包开始于一个固定的RTP头 。下面列出了用于T.140文本流的几个RTP头字
段 。
负载类型(PT):RTP负载类型的分配是使用该负载格式的RTP框架特定的 。对于利用
动态负载类型号的协议子集 , 这种负载格式被命名为"T140"(参照第六节) 。假如按照RFC
2198使用冗余数据 , 负载类型中必须指定负载格式("RED") 。
顺序号:顺序号必须严格按照每个新传送包以一递增 。它用于包丢失和乱序检测 , 同时
也可以用于获取冗余文本 , 重组文本和标记丢失文本 。
时间戳:RTP时间戳记录了包中主文本块采样时间的近似值 。必须使用1000赫兹的时
钟频率 。连续包不能使用相同的时间戳 。由于包不按固定间隔发送 , 所以时间戳不能直接被
用于指示包丢失 。
2.2附加头
本负载格式没有定义专门的附加头 。
当要按RFC2198传输冗余数据时 , RTP头后紧跟者一个或多个冗余数据块头 , 每个冗
余数据块都要有一个对应的冗余数据块头 。这些头部均提供了时间戳位移和相应的数据块长
度 , 以及指示了这种负载格式("T140")的负载类型号 。
2.3T.140文本结构
T.140文本是按T.140协议规定经过UTF-8编码的 , 没有额外组帧 。当用该格式传输冗
余数据时 , 发送者会选择每个包中要传输的T140block数 。数越高则将丢包保护性越好 , 但
同时也会增加数据传输率 。
由于数据包并非按一定的时间间隔产生 , 假如不提供附加信息 , 时间戳在包丢失时就无
法标识出该包 。冗余数据头并没有提供顺序号 , 所以必须遵循附加规则才能将丢失主数据所
对应的冗余数据正确的插入T140blocks主数据流中:
1. 每个冗余数据块必须与先前传输原始数据的T140块数据相同 , 并标识为相同的时
间戳位移 。
2. 冗余数据必须按照时间顺序放置 , 最近的冗余T140块位于冗余区的最后 。
3. 必须包括从最早的T140blocks到新数据块前的T140blocks所有的T140块 , 。
通过这些规则 , 冗余T140块的顺序号可以从当前RTP头的序号反向推算得到 。结果就
是负载中的所有文本都是连续且顺序的 。
3.推荐过程
这部分描述了负载格式使用的推荐过程 , 根据接受包的信息 , 接收者可以:
1. 把错乱文本重新排序 。
2. 标识丢失文本 。
3. 用冗余数据补偿丢失包 。
3.1基本推荐过程
只有合法的T.140格式的数据包才被传输 , T.140数据的排序要使用顺序号 。
在接收端 , 将RTP顺序号与最后一次正确接收包的序号相比较 , 假如是连续的 , 就从
中取出T140block 。
3.2补偿丢包的推荐过程
为了减少包丢失时的数据丢失 , 可以根据RFC2198在包中使用冗余数据 。假如无法得
知网络条件 , 建议每一包中只使用一个冗余T140块 。假如RTP序号出现空隙 , 且后续包中
的冗余T140块可用 , 则可以通过包中RTP头的序号逆向推算出冗余T140块的序号 。假如
该冗余T140块的序号与丢失的相吻合 , 就用冗余T140块来替换丢失T140块 。
无论是否使用冗余数据 , 都应该在T140块的接收流中插入一个丢失文本标记来标志丢
失的数据 , 见ITU-TT.140附录 。
3.3补偿乱序包的推荐过程
对于乱序包的检测 , 接收端应该采取下属程序 。假如接收包序号有空隙 , 但没有可用的
冗余数据来填充那个空隙 , 则接收包将被存储在缓存中来等待丢失包的到达 。建议等待时间

推荐阅读