基于RTP的linux实时语音通信系统的设计与实现毕业论文.doc





《基于RTP的linux实时语音通信系统的设计与实现毕业论文.doc》由会员分享,可在线阅读,更多相关《基于RTP的linux实时语音通信系统的设计与实现毕业论文.doc(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、毕业论文(设计)题目:基于RTP的linux实时语音通信系统的设计与实现摘 要随着信息社会的高速发展,Internet已经成为很多人生活不可缺少的一部分。当前Internet中流动的“比特”所代表的内容已从原来的数据逐渐向实时多媒体数据演变,它们的特点是对实时性要求非常高。但是,Internet是建立在TCP/IP之上的计算机网络,最初设计时的定位决定了它不适合实时数据的传输。因此,1996年1月IETF音视频传输工作颁布了针对实时应用的实时传输协议RTP/RTCP。RTP/RTCP 使Internet从理论上具备了处理实时业务的能力,解决了媒体同步问题和满足了多媒体通信业务的要求,现在在IP
2、电话、网络多媒体会议、远程网络教学和远程网络诊断等领域都有着重大的应用。 本文结合RTP/RTCP高实时性的特点,主要针对局域网,提出了音频数据采用G729a压缩,传输数据采用ortp库,在linux平台下开发的实时语音通信系统。本文首先介绍了实时传输协议的简单应用后,详细分析了RTP/RTCP协议;接着介绍系统的具体实现,主要分三个部分:音频数据的采集和播放,音频数据的解码和编码以及音频数据包的发送和接收。最后简单阐述了本系统在其他领域的可扩展性及前景。【关键词】实时性,音频传输,RTP/RTCP,音频压缩AbstractWith the rapid development of infor
3、mation society, the Internet has become an indispensable part of a lot of people life.The current flows through the Internet bits represented by the contents of which have been gradually from the original data to real-time multimedia data, the characteristic of them is very high demand for real-time
4、.However, the Internet is based on TCP/IP computer networks, the initial design of location determines it is not suitable for real-time data transmission.Therefore, IETF audio and video transmission work in January 1996 issued for real-time application of real-time transmission protocol RTP/RTCP.RTP
5、/RTCP make Internet theoretically with the real-time ability of the business, the media synchronization problems and meet the requirements of the multimedia communication service, the IP telephone, network, multimedia conference, remote network teaching and remote diagnosis, etc all have important a
6、pplications.In this paper, combining with the characteristics of RTP/RTCP high real-time performance, mainly for local area network (LAN), is put forward using G729a audio data compression, data transmission using ortp library, development of real-time voice communication system on the Linux platfor
7、m.This paper first introduces the simple application of real-time transport protocol, RTP/RTCP protocol are analyzed in detail.Then this paper introduces the implementation of system, mainly divided into three parts: audio data acquisition and playback, audio data decoding and encoding and audio pac
8、kets sent and received.The last simply expounds the system scalability and prospects in other areas.【Keywords】 Real time audio transmission, RTP/RTCP, audio compressionII21嘉应学院毕业论文(设计)前 言随着多媒体网络的发展,RTP/RTCP在众多领域也得到了深入的应用,如VOIP电话、多媒体会议系统等应用的出现,也让语音传输通信技术也得到了迅速的发展。然而,语音通信需要的实时性是非常高的,而且数据量大。例如,一个多媒体会议系
9、统,我们总是希望发言者的发言能够尽早让收听者收听到,也就是说时延尽量短;另外一个就是我们希望在收听者收听语音信息时,一句话平滑的,即中间没有断点,也就是等时性。这些都是实现实时语音通话应达到的要求。为此,本人在导师的指导下,详细研究分析了RTP/RTCP协议,结合RTP/RTCP协议高实时性的特点,利用现有的音频编程和网络编程知识,设计和开发了这个基于RTP的linux实时语音通信系统。目前只实现了单播功能,即点对点的通信。论文的主要内容如下:第一章:引言,主要介绍了实时多媒体数据传输的发展,阐述了TCP不适合多媒体传输的原因并引入了RTP.第二章:根据RFC3550官方文档,详细分析了RTP
10、/RTCP协议。第三章:介绍了linux下基于RTP的实时语音通信系统实现的基本原理和总体架构。第四章:介绍了linux音频编程。第五章:讲解了音频传输的实现。第六章:介绍了音频解码和编码的实现。第七章:总结与展望。第一章 引言1.1实时数据传输的发展我们已经步入一个高速发展的信息社会,Internet已经成为很多人生活不可缺少的一部分。Internet中流动的“比特”所代表的内容已从原来的数据逐渐向多媒体演变。随着IPv6,RSVP,RTP/RTCP一系列协议的出现,在Internet上实现多媒体通信成为可能。IPv6解决了IPv4地址资源有限,不能控制带宽等问题,RSVP(资源预留协议),
11、RTP/RTCP(实时传输/控制协议)使Internet从理论上具备了处理实时 业务的能力,解决了媒体同步问题和满足多媒体通信业务的要求。越来越多的实时多媒体应用的出现,极大的丰富了人们生活,如成为这几年的热点的IP电话,另外还有VID、远程网络教学、远程网络诊断和网络多媒体会议业务、多媒体消息型业务等。1.2国内外研究状况早在20世纪70年代末80年代初,如何在分组上实时传输语音就是一个很活跃的研究方向,到了九十年代初这个方向研究又变得异常活跃。1992年3月,IETF(Internet Engineering Task Force)在San Diego召开的会议是分组网上第一次大规模的音频
12、多播应用。会议使用的音频传输软件主要是Vat(Visual Audio Tool),它是由LBNL(Lawrence Berkeley National Laboratory)网络研究小组开发的一个音频会议工具,该小组还开发了视频工具vic和白板工具wb。会议还使用的另一个音频软件是NeVoT(Network Voice Terminal),它是H.Schulzrinne等人在90年代初开发出来的。该软件最初使用的是vat协议,但是在RTP协议制定出来后也开始支持RTP协议了。还有其他大学,研究组织研究开发出来的音频工具TAT(Robust Audio Tool),会议目录工具SDR(sess
13、ion directory),CU-SeeMe音频会议工具等等。 在国内,清华电子工程系网络研究所多媒体通信课题组也在这方面做了大量的研究,并开发出了Cool-audio、Cool-Video、Cool-Meeting等一系列软件。其中Cool-audio网络电话于1998年推出,它是我国第一套自主版权且最有影响的Internet电话软件。另外,东南大学计算机系,北京邮电大学电信工程学院和华中科技大学等研究机构也在这方面做出了大量的研究工作。北京的微软亚洲研究院的网络多媒体组正在做SMART音/视频传输(SMART A/V Delivery)等项。但是总的来说,国内的研究水平要远远落后于国外。
14、可以说,实时多媒体数据传输研究已经有了长足的进步,制定了许多相关的传输协议,例如:RTP(Real-time Transport Protocol)和RTCP(Real-time Transport Control Protocol),RTSP(Real-time Streaming Protocol),SIP(Session Initiation Protocol),H.232,RSVP(Resource Reserve Protocol),服务区分协议(Diff-Serv),多协议标记交换协议(Mulit-Protocol Label Switching,MPLS)等等,这些都是构建当前多
15、媒体通信的主要协议。在这些协议中,RTP和RTCP主要负责实时数据以及实现最基本的传输控制,本设计就是Linux下基于RTP协议的实时音频传输的实现。1.3实时多媒体数据传输的特点实现多媒体数据传输的核心是声、文、图等多媒体信息的传输技术,它的一个显著特点是数据量大,并且许多应用对实时性都有比较高的要求,例如,一个多媒体会议系统,我们总是希望发言者的发言能够尽早让收听者收听到,也就是说时延尽量短;另外一个就是我们希望在收听者收听语音信息时,一句话平滑的,即中间没有断点,也就是等时性。这些都是实现实时语音通话应达到的要求。1.4 TCP不适合传输实时多媒体数据Internet是建立在TCP/IP
16、之上的计算机网络,它最初是为提供非实时数据业务而设计的。IP协议是面向无连接的,负责主机之间的数据传输,但只提供“尽力而为”(best-effort)的服务,不进行检错和纠错,因此经常发生数据丢失现象。为保证数据的可靠传输,在传输层使用TCP协议,当接收端检测到数据包丢失或错误时,要求发送端重新发送,但这样不可避免地引起传输延时和占用网络带宽。因此传统的TCP/IP协议传输实时音频、视频数据的能力比较差。当然在传输用于回放的视频和音频数据时,TCP也是一种选择。如果有足够大的缓冲区和充足的网络带宽,比如在局域网内,在TCP协议上,接近实时的传输也是可能的。但是在大多数情况下,我们需要再广域网内
17、传输数据,在这种丢包率较高、网络状况不好的情况下,利用TCP协议进行视频或音频通信显然不是很好的一个选择。TCP协议是面向连接的协议,它的重传机制和拥塞控制机制都是不适合用于实时多媒体传输的。下面具体分析网络运行一下TCP和其他可靠传输层协议如XTP不适合实时传输的几个主要原因。(1).启动速度慢即便在网络运行状况良好,没有丢失包的情况下,由于TCP的建立连接需“三次握手”,因而在初始化的过程中,需要较长的时间。而在一个实时多媒体的应用中,我们期望尽量少的延迟。(2).TCP的重传机制在TCP/IP协议中,当发送方收不到接收方发来的确认,并超过一定的时间,就认定该数据已丢失,这时它将重传丢失的
18、数据包。这一过程将需要一个甚至更多的周期,这种重传机制对于实时性要求较高的多媒体数据传输来说是灾难性的,因为接收不得不等待重传数据的到来,从而造成了延时和断点。(3).TCP的拥塞控制机制TCP拥塞控制机制在探测到有数据包丢失时,它就会减少它的拥塞窗口。另一方面,音频、视频在特定的编码方式下,产生的编码数量是不可能突然改变的,例如,标准的PCM音频需要64Kb/s,加上一些额外控制信息,它不能再低于这个带宽要求的网络上传输。正确的拥塞控制应该是变换音频、视频信息的编码方式,调节视频信息的帧频或者图像的大小。(4).报文头的大小TCP和XTP报文头都比UDP的报文头大,TCP和XTP3.6的报文
19、头为40字节,XTP4.0为32字节,而RTP的固定报文头为12字节,因而它们所能携带的信息占整个报文的比例相对来说比较小。并且这些可靠的传输协议不能提供时间戳和编解码信息,而这些信息是接收方应用程序所需要的,因此它们是不适合进行多媒体信息传输的。1.5 RTP的引入基于上一节的分析,我们可以清楚的认识到TCP协议是不适合用来进行传输实时多媒体数据的,因此考虑选择UDP作为RTP的传输层协议。UDP是一种面向无连接的数据报方式,当通信一旦开始,发送方就不断地发送数据而不需要接收端做出确认信息。它取消了重发校验机制,因此能够达到较高的通信速率,但不能保证报文的先后顺序,也不能保证数据传输的可靠性
20、。因为音频、视频码流比传统数据对实时性要求更高,即使少量的时延,对音频、视频播放来说也是无法忍受的,但它们对于少量的包丢失却不太敏感。所以本文在IP网络上建立的实时音频传输系统采用面向无连接的UDP协议进行传输。但是UDP传输的不可靠带来丢包、乱序等问题,所以如果在应用层采用合适的封装方式并增加一些有利于媒体播放的信息进行传输,可以使得接收端在一定程度上弥补传输带来的损失,这就是引入RTP的原因。同时如果收发端能够实时了解网络和传输状况,就可以适当调节自己的任务,最终使得在接收端能够达到最好的效果,由此引入RTCP传输控制协议对传输状况进行实时监测和报告。RTP(Real-time Trans
21、port Protocol)实时传输协议,是由Internet工程任务组(IETF)的音频/视频传输工作组制定,主要用于VoIP、视频等实时多媒体信息的传输。音频和视频编码信数据均封装在RTP协议数据包中,RTP提供定时信息和数据报序号,供接收方重组数据包,但是RTP本省并不能为按顺序传送数据包提供可靠的传输机制,也不提供流量控制或拥塞控制,它依靠RTCP提供这些服务。通常RTP算法并不作为一个独立的网络层来实现,而是作为应用程序代码的一部分。RTCP(Real-time Transport Control Protocol)实时传输控制协议,它提供服务质量的统计信息及提供传输可靠性的保证和流
22、量的拥塞控制机制。第二章 RTP/RTCP协议介绍2.1 实时传输协议的简单介绍RTP全名是Real-time Transport Protocol(实时传输协议)。它是IETF提出的一个标准,对应的RFC文档为RFC3550(RFC1889为其过期版本)。RFC3550不仅定义了RTP,而且定义了配套的相关协议RTCP(Real-time Transport Control Protocol,即实时传输控制协议)。RTP协议包括RTP(Real-time Transport Protocol)实时传输协议和RTCP(Real-time Transport Control Protocol)实
23、时传输控制协议这两个协议。其中RTP被定义为一对一或一对多的传输情况下工作,实现实时数据的传输,但是它并不提供任何传输可靠性的保证和流量的拥塞控制机制,这些工作将由RTCP来完成。RTP和RTCP配合使用,能以有效的反馈和最小的开销使传输效率最佳化,所以特别适合传输实时数据。RTP为交互式 音频、视频等具有实时特性的数据提供端到端的传输。它不是典型意义上的传输层协议,因为它并不具备一个典型传输协议的所有特点。例如:RTP没有连接的概念,它必须建立在底层的面向连接的或无连接的传输协议之上;本身不依赖于特别的地址格式,而需要底层传输协议支持成帧和分段。一般来说,RTP是在传输层协议之上作为应用程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 RTP linux 实时 语音 通信 系统 设计 实现 毕业论文

限制150内