即时通信系统中通信协议的研究及选择

时间:2022-08-01 04:05:46

即时通信系统中通信协议的研究及选择

摘要:着重分析了在不同网络环境中实现即时通信系统的不同,并根据即时通信系统不同的业务,如通信、视频、文件传输等进行分析。选择不同的网络协议,并分析潜在的问题,为一个在Internet下提供即时文字通信、简单博弈游戏、视频与语音通信、文件传输的实时通信系统实现方案给出一个可行的解决方案。

关键词: IM;TCP/IP;UDP;实时通信;即时通信

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2013)19-4412-03

即时通信系统自从1996年第一个实现ICQ出现以来,经过了迅猛的发展,当前已经不止是用于网络上的文字讯息传递,而是包括了文字,多媒体,文件传输等多项功能的复合型的通信工具。即时通信系统不止是在用户通信领域发挥作用,在工业领域,如电力,工业制造,电话通信等各行各业中都出现了专门的即时通信系统。由于即时通信系统在各行各业的发展,往往面对不同的网络环境(局域网或广域网,电缆、光缆、Wifi等不同的网络连接),不同的通信要求(文字,多媒体,文件),即时通信系统数据的传输往往受到不同的带宽(bandwidth)、时延(delay)等方面的影响,同时当前的Internet网络没有提供服务质量保证,在这样的网络中进行即时通信还要很多问题可以研究。

该论文讨论即时通信系统即时传输的技术选择,分析了TCP、UDP协议的不同点。对于一些最常用的即时通信系统进行了分析,探讨了提供博弈游戏功能的即时通信系统的解决方案。

该论文主要完成如下内容:

1) 通过对即时通信系统的研究,根据不同的业务需求,提出了对即时通信系统传输数据性能的要求。

2) 通过对不同网络协议的分析,确定不同协议的主要优缺点及使用范围

3) 结合以上两点,提出一个在Internet下提供实时文字通信、简单博弈游戏、视频与语音通信、文件传输的即时通信系统实现方案。

1 网络分析

目前常用的网络主要是局域网和广域网。局域网一般限定在较小的区域内,小于10km的范围,通常采用有线的方式连接起来。广域网是将分步在不同地区的局域网或计算机系统互连起来的。Internet就是我们日常最经常接触到的广域网。

局域网通常比广域网具有高得多的传输速率,例如,LAN的传输速率为10Mb/s,FDDI的传输速率为100Mb/s。广域网的典型速率是从56kbps到155Mbps。

从传播延迟上来看局域网内往往是在相对独立的局部范围内联,使用专门的传输介质进行联网,延迟很低,往往在几毫秒内。而广域网由于覆盖的空间广大,连接的局域网众多,传输介质不一,传输延迟可以从几毫秒到几百毫秒。

2 业务分析

即时通信是指能够即时发送和接收互联网消息等的业务。即时通信系统就是一个能够完整的完成发送和接收互联网消息的软件系统。自1998年面世以来,特别是近几年的迅速发展,即时通信的功能日益丰富,逐渐集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能。

常用的即时通信软件如QQ,微信,skype,MSN(即将整合到skype)等都支持文字聊天,语音对话,视频会议,文件发送等即时交流,还可以查看联系人的联机状态。Skype提供了拨打手机,固话的功能。而qq也提供了即时的在线游戏功能。

为了实现一个Internet下提供实时文字通信、简单博弈游戏、文件传输的即时通信系统。必须考虑到文字聊天,语音对话,视频对话,文件传输,在线游戏,连接电话网络等功能。

1) 文字聊天功能业务分析

对于网络传输速率和延迟的要求并不高。一般的文字聊天几乎都是在两个用户单独聊天或者多个用户群聊天中发生的。至今中文打字最快的专业打字员,每分钟能输入340个中文字符左右,而英文的最高速度可达每分钟400个字母左右。以一个中文字符占4个字节(UTF-8),一个英文字符占1个字节来计算。两个用户单独聊天,如果使用中文每分钟最多需要传输2720字节,而使用英文聊天则只需要传输800字节。如果是在一个百人群中进行文字聊天,每分钟最多需要传输的字符也只有136k字节,平均为2.27kb/s。由此可见文字聊天对网络传输中的带宽、时延要求并不高。

2) 博弈游戏功能业务分析

博弈游戏是对即时通信系统的一个特殊应用。在线的博弈游戏就是通信双方发送,接收一些包含游戏信息的数据包。而博弈游戏的特性使得游戏节奏比较慢,对于网络的时延要求不是很高,因此从网络传输上,与文字聊天信息的传输相差不大(事实上,早期的在线游戏都是通过文字聊天的方式实现的。)。

3) 语音对话业务分析

语音对话是近年来对文字聊天功能的扩展,语音对话是采用语音编码的方式将用户即时的语音信号进行编码转化成数字信号,从而降低传输码率并进行数字传输,传输后解析成语音信号播放,从而达到用户即时聊天功能的过程。/*语音编码的基本方法可分为波形编码、参量编码(音源编码)和混合编码。波形编码的编码速率为64-16kb/s,语音质量好。参量编码的编码速率低,大约为2.4-1.2kb/s,自然度低,对环境噪声敏感。混合编码是将波形编码与参数编码相结合,在2.4-1.2kb/s速率上能够得到高质量的合成语音。*/目前使用最多的语音文件格式还是WMA格式(通常码率 64 Kbps),的语音文件,以两个用户单独使用语音聊天计算,需要保证至少128kb/s的速率,而如果是在一个20人的群内进行聊天,如果在服务器端不进行混音,而到客户端混音的话则需要保证1280kb/s的速率,如果在服务器端混音的话,则仍只需要128kb/s的速率。一般来说语音对话功能对网络传输中的带宽、时延提出了一定的要求

4) 视频对话功能业务分析

视频对话功能则是对语音对话的进一步扩充,提供了用户直接面对面对话的功能。目前最主要的视频技术就是H.264/MPEG-4 AVC(H.264)。H264与其它现有的视频编码标准相比,在相同的带宽下能够提供更加优秀的图象质量,和MPEG2和MPEG4 ASP等压缩技术相比,在同等图像质量下,采用H.264技术压缩后的数据量只有MPEG2的1/8,MPEG4的1/3,提供了解决在不稳定网络环境下容易发生的丢包等错误的必要工具。在实际生活中,人们一般用于网络视频聊天时的分辨率为320×240甚至更低,传输的帧数为每秒24帧,此时视频传输速率将不到300kbps。使用H264技术,可以将传输速率降低到100kbps不到。因此在视频对话中,至少需要200kbps的带宽。在实现视频会议时,可以适当的降低图形质量,但是往往随着参与用户的增多,对带宽的要求往往呈线性增长。

一般情况下,即时通信系统都会提供给用户一定的文件发送功能,文件发送需要尽快的完成,应该是尽可能的利用现有的带宽,传输速率越快越好。

3 网络协议分析

即时通信系统为了在网络上传输,必须选择合适的传输方式。根据网络七层模型,在网络上传输数据主要是选择传输层协议TCP和UDP 。

TCP是Transmission Control Protocol 传输控制协议的简称。TCP是一种面向连接(连接导向)的、可靠的、基于字节流的运输层(Transport layer)通信协议。由于TCP采用三次握手,四次挥手,超时重传等机制,保证了传输的可靠性,但同时也导致了TCP传输数据的效率相对而言并不高。而且在网络拥堵的情况下,TCP由于有滑动窗口机制,就会降低自己的传输速率,导致传输效率更低。

UDP 是User Datagram Protocol的简称, 中文名是用户数据包协议,是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。它是一种无连接的协议,在网络质量令人不十分满意的环境下,数据包丢失会比较严重。但是由于UDP的特性:它不属于连接型协议,因而具有资源消耗小,处理速度快的优点,传输效率比TCP高。一般来说,在使用UDP的情况下,都需要在应用层实现验证,超时重传等功能,但是对比于TCP来说,还是要快很多的。而且UDP在网络拥挤的情况下,不会降低自己的传输速率,虽然对网络造成了一定负担,但是更容易抢占到带宽,保证自身用户的通信。由于NAT技术的使用,在网络中外网的计算机比较难以访问内网的计算机,因此需要使用技术手段对NAT进行穿透。

作为一个即时通信系统,需要实现文字聊天,语音对话,视频会议,文件传输等功能,根据我们之前的分析,不同的功能对于网络传输的要求是不同的。

文字聊天功能对于网络的带宽和延迟要求并不高,但是必须保证绝对不丢失聊天信息。因此在协议的选择上应该尽量倾向于可靠地连接。

在线博弈游戏功能对于网络的要求与文字聊天功能近似,在协议的选择上也应该尽量倾向于可靠地连接。

语音聊天功能,出于通话质量的要求,需要至少128kbps的带宽,同时还必须保证不丢包。在协议上应该兼顾可靠性与传输速率。

视频聊天功能除了要发送语音信息外,还要发送视频信息。视频信息即使是使用了最新的压缩技术,对于网络带宽的要求任然很高。同时视频信息也有它的特点,就是对网络传输时发生的丢包现象不是很敏感,即使发生了少量的丢包,很快就会有新的视频信息发送到客户端,刷新丢包的信息。因此视频聊天功能在协议的选择上应该以传输速率优先,兼顾可靠性。

文件传输功能则是要求在尽可能快的时间内,将文件完整的发送到另一方。一般来说文件总是会被拆分成几个数据包进行发送,在接收端组成一个完整的文件。文件传输如果是选择可靠性较高的TCP协议的话,传输速度必然比较慢。如果选择传输速度快的UDP协议,则必须解决可靠性的问题。

4 即时通信系统中对于协议的选择

当前我国的网络基础建设情况还不尽如人意。相关报告指出,国内超半数用户实际宽带下载速率低于运营商提供的名义宽带速率。因此在即时通信系统中,如何有效的利用带宽就成了一个比较敏感的问题。

文字聊天功能与即时游戏功能对于网络速率的要求不高,但是对于可靠性比较高,因此应当使用TCP协议进行传输。使用TCP协议既能满足文字聊天的功能需求,同时传输的可靠性由TCP协议负责,便于设计。

语音聊天功能对于网络的传输速率和时延要求都比较高,在带宽允许的情况下,应该采用TCP协议进行传输,但是当网络比较拥堵的情况下,应该转而使用UDP协议进行传输,同时在应用层采取校验和超时重传的功能进行可靠性保证。一个比较好的设计应该是根据网络情况,语音聊天系统自动的选择TCP协议或者是UDP协议。当TCP协议能够满足传输要求时,使用TCP协议进行传输。当网络拥堵,TCP协议传输速率下降到不能保证语音质量的情况下,则应该自动从使用TCP协议切换到UDP协议。

视频聊天功能由于对网络的传输速率要求比较高,同时能够忍受一定的丢包,因此UDP协议是比较好的选择。同时从减少服务器载荷的角度来说,也可以利用P2P技术来让聊天的对象之间直接进行视频信息的传输,使用UDP协议更加容易实现对NAT的穿透。

文件传输功能对网络的传输速率要求很高,应当尽可能的将所有带宽利用上,在应用层添加数据包校验与重传功能后,UDP就是最好的选择。

5 结束语

以上协议的选择是符合当前国内的Internet网络现状和通信技术并能够提供比较好的即时通信功能的。笔者相信在不太远的将来,随着国内网络基础建设的进一步发展,云技术的普及,新的音频、视频协议的出现,实时通信系统必将为网络用户提供更好的通信功能。

参考文献:

[1] Gary R.Wright W.Richard Stevens. TCP/IP详解 卷1:协议[M]. 范建华,胥光辉,张涛,等,译.北京:机械工业出版社,2001.

[2] Gary R.Wright W.Richard Stevens. [M].陆雪莹,蒋慧,等,译. TCP/IP详解 卷2:实现北京:机械工业出版社,2001.

[3] W.Richard Stevens. unix网络编程[M].施振川,周利民,孙宏晖,等,译.北京:清华大学出版社, 2001.

[4] 云亮.基于对等网的NAT 穿透技术的研究和实现[D].武汉:华中科技大学, 2007.

[5] 王勇.实现高性能IP 网络视频服务的若干关键技术研究[D].上海:华东师范大学, 2007.

上一篇:自动组卷系统中试题库的研究与设计 下一篇:关于银医自助诊疗服务系统的设计与实现