资源描述:
《基于RTP协议的实时语音传输研究与实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、摘要近些年来,因特网的应用非常广泛,除了传统的http、ftp和电子邮件(Email)外,已经出现了越来越多的多媒体通信业务,这些业务的一个共同的特点就是对实时性要求很高。但是,传统传输层协议设计时的定位决定了它们在传输文字、图形等离散媒体时尚能胜任,而不适合语音、视频等实时业务的传输,为此IESG在1995年通过了RTP作为因特网建议标准。本文首先介绍了实时数据传输的发展及国内外的研究状况,研究了分组网络上音频数据传输的特点。在介绍了实时传输协议RTP的特点、构成后,详细分析了RTP/RTCP协议,具体阐述了各种报文的格式及其字段的意义。之后详细介
2、绍了Windows下采用双向链表和单缓冲技术、基于RTP协议实时语音传输软件的实现,介绍了软件的基本框架及主要数据结构,详细介绍了软件的具体实现流程,主要包括:音频数据的采集和播放;RTP数据包的发送和接收;补偿发送方和接收方时钟速率的偏差和网络抖动现象,计算正确的播放时间。通过在合适的时机调整去抖缓冲延时,自动适应网络状态的变化,有效去除语音分组的抖动问题,在时延与丢包之间达到良好平衡,改善了语音通话质量。为了保证一定的QoS,本文根据报文丢失率评估信道的传输质量和网络的拥塞程度,调整发送方输出的码流,使之自动适应网络状态的变化,降低网络拥塞产生的
3、概率。关键词:实时传输协议;语音传输;时延;抖动IAbstractInrecentyears,Internethasbeenwidelyused.Besideshttp、ftpandEmailservices,ithasmanynewapplications,suchasmultimediacommunication.Thecommonfeatureofthesenewservicesisthestrongrequirementofreal-timereality.Butthedesignprincipleforclassicaltransportp
4、rotocoldecidesthattheycanbecompetentfordiscretemediatransmission,suchastext、pictureetc,butcan'tbeusedforreal-timeservicessuchasaudio、videoandsoon.Thus,inordertotransmitreal-timemediawithhighperformanceoverIPnetwork,onNovember22,1995,RTPwasapprovedbytheIESGasanInternetproposedst
5、andard.First,thepaperintroducesthedevelopmentofthereal-timedatatransmissionandthecurrentresearchinChinaandabroad,thentakesresearchonthecharacteristicsofvoicetransmissionoverpacketnetworks.Inthesecondpart,afterintroducingthefundamentalfeaturesofRTPanditsstandardelements,thepaper
6、presentstheanalysisofRTP/RTCPindetail,includingtheprotocolpacketsformatsandvariousfieldsmeaning.Afterthatthepaperintroduceshowtoimplementthesystemofreal-timeaudiotransmissionbasedonRTPsuiteinWindowsindetail,includingthebasicframestructureandthemaindatastructuresofthesystem.Them
7、ainpartsofthissystemarepresented,including:howtocollectandplayoutaudiodata;howtosendandreceiveRTPpackets;howtocompensateforrelativeclockskewbetweensenderandreceiver,compensateforvariationininterpackettimingcausedbynetworkqueuingjitterandroutechanges,sotocalculatethecorrectplayo
8、uttime.Thesystemadjuststheplayoutbufferingdelayatprope