专利名称:基于通话模型的网络语音通话测试流量生成方法
技术领域:
本发明属于互联网技术领域,尤其涉及VOIP测试流量生成技术领域。
背景技术:
VOIP(Voice over IP),即通过IP网络进行语音通话,已经成为互联网的重要应用之一,为网络运营商和大型企业所广泛采用。对于VOIP的性能测试主要通过在部署网络的接入点部署测试点,在测试点生成VOIP测试流量并进行传输,在接收端通过分析丢包、延迟、抖动、音频失真等指标来评判VOIP在网络中的性能。VOIP的性能测试具有两方面的意义在实际部署VOIP之前,通过测试确定部署网络对于VOIP的支持能力,从而确定是否部署以及部署的规模;在实际部署VOIP之后,通过定期的测试监控VOIP的性能,从而确定是否达到预期目标,网络是否需要增容,是否存在故障等等。因此,VOIP的测试对于VOIP技术的顺利部署和使用具有重要的意义。
VOIP测试流量生成是整个VOIP测试技术中重要的组成部分,它的目标是通过某种算法生成近似于实际VOIP应用的流量特性。目前,对于VOIP测试流量生成包括两种方法使用固定报文流(CBR)和使用实际的音频文件编码。使用固定报文流参考了G.711,G.729等固定码率的编码方式,通过固定间隔的定长UDP报文作为VOIP流量,D-ITG等流量生成工具采用了该方法。固定报文流的问题在于忽视了声音活跃探测(Voice Activity Detection)技术对于VOIP流量的影响。声音活跃探测技术是指通过对音频信号波动的探测判断通话人是否处于说话状态,在通话人未说话的情况下不产生流量,从而避免无通话状态的流量,节省网络带宽。研究表明人在通话过程中大约50%的时间处于接听而不说话的状态,因此声音活跃探测技术对于VOIP流量的影响很明显,并已经被广泛应用于多种编码方式和实际使用的诸如Cisco IP phone等产品。缺乏对声音活跃探测技术的支持导致固定报文流产生的流量不真实,夸大了VOIP流对于带宽的占用率,不能有效测试网络的支持能力和VOIP的实际性能。除了固定报文流,另一种目前被使用的流量生成方法是采用实际的音频文件编码,包括Spirent,Agilent等公司的测试仪都支持该种流量生成方法。它通过使用实际的.wav文件进行编码来生成流量,可以使用声音活跃探测技术在文件中无通话的时间段屏蔽流量。该生成方法的问题在于使用的.wav文件只能用于单向的VOIP测试,即单向的语音传输,而不能测试两个通话方之间的语音交互,因此与真实的VOIP应用的流量不符。使用音频文件编码的方式既不能同时测试两个通话方的VOIP性能,其使用的音频文件也与实际的双向通话音频不符,在使用声音活跃探测技术后产生的流量特性存在误差。
针对上述不足,本发明提出了一种基于通话模型的VOIP测试流量生成方法。通过参考ITU-T提出的电话通话模型,设计了适用于VOIP的通话模型,并根据该模型生成VOIP流量,既考虑了人的行为方式由于声音活跃探测技术对VOIP流量产生的影响,使生成的流量具有真实性;又通过状态迁移同时生成两个通话方的流量序列,使生成的流量具有交互性,可以同时测试双向通话的质量。因此,本发明完善了现有VOIP测试流量生成方法的不足,使用本发明的测试流量可以提供更真实可信的测试结果。
发明内容
本发明的目的在于提供一种基于通话模型的VOIP测试流量生成方法。
本发明所提出的方法的思路在于使用VOIP通话模型仿真通话双方的交互过程,计算在每个时间点通话过程所处的状态;根据声音活跃探测技术,判定在该状态是否生成VOIP流量;对于需要生成流量的状态的时间点,记录该时间点距离起始时间的偏移量,报文序号和对应编码的报文大小,形成流量序列;通过两个测试端的交互确定测试开始时间,确定报文的实际发送时间,最终生成基于通话模型的VOIP测试流量。
本发明的特征在于所述方法依次按以下步骤实现的(1)确定VOIP通话模型中的参数,如图1所示,VOIP通话模型包括四个状态,分别表示通话人A处于通话状态,通话人B处于通话状态,无通话状态和双方同时处于通话状态,状态之间通过概率关系迁移,由于在各状态的停留时间符合几何分布,且模型存在一定的对称性,可通过如下公式对概率值进行计算P11=P22=1-Tinterval/Ttalk-avgP14=P24=(1-P11)×Ktalk-doubleP13=P23=1-P11-P14P33=1-Tinterval/Tstop-avgP44=1-Tinterval/Tdouble-avgP31=P32=(1-P33)/2P41=P42=(1-P44)/2其中,Tinterval表示测试音频编码发送报文的间隔,Ttalk-avg表示在状态1或状态2的平均时间,Tstop-avg表示在状态3的平均时间,Tdouble-avg表示在状态4的平均时间,可根据用户行为的实测结果设定,也可使用ITU-T建议的经验值1.004秒,0.508秒和0.228秒作为默认值,Ktalk-double表示从一方处于通话状态到双方同处于通话状态的变迁因子,可根据用户行为的实测结果设定,也可使用ITU-T建议的经验值0.6作为默认值,通过如上的参数和公式计算各个概率值;(2)设定VOIP测试的时间长度,并将当前状态设定为状态3,将当前时间设定为0,将通话人A报文序号设定为0,将当前通话人B报文序号设定为0,创建通话人A和通话人B两个报文序列文件;(3)根据当前状态进行相应的处理●当前状态为状态1在通话人A的报文序列文件中加入记录<通话人A报文序号,当前时间,编码报文大小>,通话人B的流量由于声音活跃探测技术而被屏蔽;●当前状态为状态2在通话人B的报文序列文件中加入记录<通话人B报文序号,当前时间,编码报文大小>,通话人A的流量由于声音活跃探测技术而被屏蔽;●当前状态为状态3通话人A和通话人B的流量由于声音活跃探测技术而被屏蔽;●当前状态为状态4在通话人A的报文序列文件中加入记录<通话人A报文序号,当前时间,编码报文大小>,在通话人B的报文序列文件中加入记录<通话人B报文序号,当前时间,编码报文大小>;(4)当前时间递增编码发送报文的间隔,即Tinterval,判断新的当前时间是否超过VOIP测试的时间长度,若超过则转步骤(6),若在VOIP测试的时间长度内,则转步骤(5);(5)根据当前状态和VOIP通话模型状态变迁概率计算新的状态,将新的状态值设定为当前状态,并转步骤(3);(6)关闭通话人A和通话人B的两个报文序列文件,并将文件分别存储到两个测试终端主机,存储通话人A的报文序列文件的主机称为主机A,存储通话人B的报文序列文件的主机称为主机B;(7)主机A计算测试开始时间,该时间可设定为当前时间与某一增量之和,并将该时间通过TCP数据连接发送给主机B;(8)主机A将通话人A的报文序列文件中的每一条记录<通话人A报文序号,当前时间,编码文件大小>变更为<通话人A报文序号,当前时间+测试开始时间,编码报文大小>,并保存文件;(9)主机B将通话人B的报文序列文件中的每一条记录<通话人B报文序号,当前时间,编码文件大小>变更为<通话人B报文序号,当前时间+测试开始时间,编码报文大小>,并保存文件;(10)主机A和主机B建立UDP会话,并按照报文序列文件中的记录顺序,在每一记录标示的时间将编码报文大小作为网络应用层数据大小,封装实时传输协议RTP报文头,通过UDP会话发送,从而实现基于通话模型的VOIP测试流量生成方法。
本发明所提出的VOIP测试流量生成算法由于基于通话模型,可以同时生成在使用声音活跃探测技术下通话双方的VOIP测试流量,充分考虑了VOIP测试流量的真实性和交互性,可用来同时实现双方向的VOIP测试,为更加准确可靠的VOIP测试工作提供了帮助。
图1.VOIP通话模型。
图2.VOIP测试流量部署环境。
图3.VOIP测试流量生成流程图。
图4算法生成流量实验结果正方形点标记线为状态1,菱形点标记线为状态2,三角形点标记线为状态3,x点标记线为状态4。
具体实施例方式
本发明所使用的具体部署环境如图2所示。其中,VOIP测试流量生成主机通过软件程序实现VOIP通话模型,按照步骤(1)到步骤(6)的顺序完成通话人A和B的报文序列文件。测试终端主机A和测试终端主机B分别存储VOIP测试流量生成主机生成的通话人A和B的报文序列文件,通过TCP会话和UDP会话按照步骤(7)到步骤(10)的顺序最终完成VOIP测试流量的生成。另外,为了提高测试的精度,可以在测试终端主机A和测试终端主机B上加装全球定位系统,同步两台主机的时钟,从而使得测试起始时间更为一致。
本发明的具体方案流程如图3所示。本发明适用于多种音频编码条件下的VOIP测试流量生成,只需要根据不同的音频编码对流程中涉及的相关参数进行调整即可。下面,结合音频G.729具体说明对于此种编码基于通话模型的VOIP测试流量的生成方法。
按照步骤(1)计算状态转移概率值。其中,Tinterval按照G.729的报文间隔设定为0.02秒,参数Ttalk-avg,Tsotp-avg,Tdouble-avg和Ktalk-double可通过获得实际的用户通话数据来计算,或直接使用步骤(1)给出的默认值,在按照默认值设定的情况下,根据步骤(1)的公式计算各概率值如下P11=P22=0.980P14=P24=0.012P13=P23=0.008P33=0.960P44=0.912P31=P32=0.020P41=P42=0.044按照步骤(2)初始化通话模型的状态为状态3,初始化当前时间为0,初始化通话人A和通话人B的报文序号为0,并创建通话人A和通话人B的报文序列文件。由于使用通话模型可多次产生不同时间长度、不同特性的VOIP测试流量,为避免文件冲突,建议采用“日期_时间_通话人标识”作为文件名。
按照步骤(3)根据当前所处的状态将记录按照格式写入步骤(2)创建的文件中,每次写入时创建新的行,按照字符格式写入记录,保证最后生成的报文序列文件既可以供测试主机使用,也可以供测试者阅读,其中报文序号和当前时间根据对应的数值记录,编码报文大小则根据不同种类编码的要求设定,对应于G.729,其在间隔设定为0.02秒的情况下,每个报文的大小为20字节,因此在记录时记录20。
按照步骤(4)递增当前时间,对于G.729按照其编码规定每次递增0.02秒,在递增后与测试设定的时间长度比较,若当前时间超过测试设定的时间长度,说明已生成足够时间的流量报文序列,则转步骤(6);若当前时间未超过测试设定的时间长度,说明仍需要按照新的当前时间的状态写入流量报文,则转步骤(5)计算新的当前状态。
按照步骤(5)计算新的当前状态,新的当前状态由前一个状态和概率决定,例如当前状态为状态1,程序产生一个0到1之间的随机数,根据步骤(1)计算的概率值,如果这个随机数小于0.980,则新的状态仍为状态1;若随机数大于0.980,小于0.988(0.980+0.008),则新的状态变为状态3;若随机数大于0.988,则新的状态变为状态4,按照此种方法产生新状态之后,则转步骤(3)。
按照步骤(6)关闭报文序列文件,此时计算的时间已经到达测试需要的时间,表明文件中记录的报文序列已经完成,因此关闭通话人A和B的报文序列文件,以上的工作均由在VOIP测试流量生成主机上实现的软件程序按照流程完成,此时需要将通话人A和B的报文序列文件分别存储到测试终端主机A和测试终端主机B。该存储可选择多种方式,既可以通过HTTP,FTP等协议完成,也可以通过在测试终端主机和VOIP测试流量生成主机之间建立TCP连接,在VOIP测试流量生成主机关闭文件后自动传送到测试终端主机。
按照步骤(7)计算测试时间,从此步骤开始的工作由测试终端主机A和测试终端主机B的软件程序完成。首先在测试终端主机A和测试终端主机B之间通过软件程序建立TCP连接,用以传输控制信息;然后在测试终端主机A确定测试的开始时间,该时间通过调用内核命令首先取得当前系统时间,并将该时间增加某一增量,例如1分钟,作为实际测试的开始时间;最后,为了测试终端主机A和测试终端主机B具有共同的测试开始时间,测试终端主机A的软件程序通过TCP连接将该测试时间发送给终端主机B。
按照步骤(8)修改测试终端主机A存储的通话人A的报文序列文件,通过程序软件打开通话人A的报文序列文件,读取每一行记录,并将其中表示当前时间的数值字段变更为当前时间与步骤(7)设定的测试开始时间的和,重新写入记录,在将所有的记录都修改之后关闭文件,此时报文序列文件已经按照测试开始时间更新完成,可以在测试开始后按照每个记录相应的时间发送流量。
按照步骤(9)修改测试终端主机B存储的通话人B的报文序列文件,通过程序软件打开通话人B的报文序列文件,读取每一行记录,并将其中表示当前时间的数值字段变更为当前时间与步骤(7)设定的测试开始时间的和,重新写入记录,在将所有的记录都修改之后关闭文件,此时报文序列文件已经按照测试开始时间更新完成,可以在测试开始后按照每个记录相应的时间发送流量。
按照步骤(10)进行测试流量的实际传输,通过步骤(8)和步骤(9),通话人A和B的报文序列文件已经按照实际的测试时间更新,此时,测试终端主机A和测试主机B根据各自的地址和端口建立测试数据的UDP会话,之后按顺序读取各自报文序列文件的每个记录,将记录的编码报文大小作为负载长度,由于负载的实际内容不会影响报文在网络中的传输过程,因此可随机生成,在封装RTP报文头之后按照记录的时间值通过UDP会话发送给对方,从而完成测试流量的生成工作。
以上按照本发明的特征,针对特定的G.729编码方式说明了基于通话模型的VOIP测试流量生成方法的具体实施方式
,图4显示了在设定不同测试时间情况下最终生成流量在各状态的平均停留时间,当设定的测试时间大于200秒后,流量特性趋于稳定,与根据用户行为设定的各状态平均时间误差小于10%,说明在保证一定数据量的情况下,基于通话模型的VOIP测试流量生成算法可以近似仿真用户行为,验证了该算法的有效性。对于其他种类的编码,只需要根据特定编码的参数对实施方式中相应步骤中的数值进行修改即可以使用,保证了本发明的普适性。通过本发明生成的流量符合通话模型的规范,同时具备真实性和交互性,可以为VOIP测试提供更准确的数据。
由此可见,本发明达到了预期目的。
权利要求
1.基于通话模型的网络语音通话测试流量生成方法,其特征在于,该方法是在网络语音通话测试流量生成主机、测试终端主机A以及测试终端主机B之间交互地依次按如下步骤实现的步骤(1)在所述网络语音通话测试流量生成主机上确定VOIP网络语音通话模型中的参数所述VOIP通话模型包括四个状态,分别表示测试终端主机A的通话人A处于通话状态称为状态1,测试终端主机B的通话人B处于通话状态称为状态2,无通话状态称为状态3,A,B双方通话人同时处于通话状态称为状态4,各状态之间通过概率关系迁移,其中P11=P22=1-Tinterval/Ttalk-avgP14=P24=(1-P11)×Ktalk-doubleP13=P23=1-P11-P14P33=1-Tinterval/Tstop-avgP44=1-Tinterval/Tdouble-avgP31=P32=(1-P33)/2P41=P42=(1-P44)/2其中,P代表概率,下标的不同数字先后表示由前一状态转移到后一状态,下标的相同数字表示保持当前所处的状态,Tinterval表示音频编码发送报文的间隔,Ttalk-avg表示在状态1或状态2的平均时间,Tstop-avg表示在状态3的平均时间,Tdouble-avg表示在状态4的平均时间,Ttalk-avg为1.004秒,或由用户行为实测,Tstop-avg为0.508秒,或由用户行为实测,Tdouble-avg为0.228秒,或由用户行为实测,Ktalk-double表示从一方处于通话状态到双方同时处于通话状态的变迁因子,为0.6或由用户行为实测;步骤(2)在步骤(1)所述主机上设定网络语音通话测试的时间长度,并把当前状态设定为3,当前时间设定为0,通话人A和通话人B各自的报文序号设定为0,并创建通话人A和通话人B共两个报文序列文件,该文件名为“日期_时间_通话人标识”;步骤(3)针对不同的当前状态作不同的如下处理●当前状态为状态1在通话人A的报文序列文件中加入记录<通话人A报文序号,当前时间,编码报文大小>,通话人B此时不产生语音,因此声音活跃探测技术不能感知语音信号,故通话人B不产生流量;●当前状态为状态2在通话人B的报文序列文件中加入记录<通话人B报文序号,当前时间,编码报文大小>,通话人A此时不产生语音,因此声音活跃探测技术不能感知语音信号,故通话人A不产生流量;●当前状态为状态3通话人A和通话人B此时均不产生语音,因此声音活跃探测技术不能感知语音信号,故通话人A和通话人B均不产生流量;●当前状态为状态4在通话人A的报文序列文件中加入记录<通话人A报文序号,当前时间,编码报文大小>,在通话人B的报文序列文件中加入记录<通话人B报文序号,当前时间,编码报文大小>;所述编码报文大小根据不同种类编码的要求设定;步骤(4)基于当前时间递增发送报文的间隔Tinterval,判断递增后的当前时间是否超过网络语音通话的测试时间长度,若超过,则转步骤(6),若未超过,执行步骤(5);步骤(5)根据当前状态和网络语音通话模型状态变迁概率计算新的状态,把新的状态值设定为当前状态,转步骤(3),其步骤如下步骤(5.1)程序产生一个0到1之间的随机数;步骤(5.2)比较步骤(5.1)所述的这个随机数和当前状态下按步骤(1)计算得到的迁移概率若该随机数小于当前状态下的迁移概率,则当前状态不变;若该随机数大于当前状态下的迁移概率,则从当前状态所能迁移到的所有下一个状态的概率中,找到一个能够使该随机数落在当前状态的迁移概率和所选的下一个状态的迁移概率的区间,再把所选的下一个状态作为新的状态,并把新的状态值设定为当前状态;步骤(6)网络语音通话测试流量生成主机关闭通话人A和通话人B共两个报文序列文件,并把两个文件分别存入测试终端主机A和测试终端主机B;步骤(7)测试终端主机A计算测试开始时间,该时间设定为当前时间与设定的一个增量之和,并把新设定的当前时间通过TCP连接发送给终端测试主机B;步骤(8)测试终端主机A变更自己的报文序列文件的当前时间为新设的当前时间;步骤(9)测试终端主机B在收到步骤(7)发出的新设的当前时间后,变更自己的报文序列文件的当前时间为新设的当前时间;步骤(10)测试终端主机A和测试终端主机B之间建立UDP会话,并按照报文序列文件中的记录顺序,在每一记录标示的时间把编码报文大小作为网络应用层数据大小,封装实时传输协议RTP头,通过UDP会话发送,从而实现基于通话模型的网络语音通话测试流量生成方法。
全文摘要
本发明涉及网络语音通话测试流量生成技术领域,其特征在于,使用通话模型仿真通话双方的交互过程,计算在每个时间点通话过程所处的状态;根据声音活跃探测技术判定在该状态是否生成网络语音通话流量,在需要生成流量的状态的时间点,记录该时间点距离起始时间的偏移量,报文序号和对应编码的报文大小,形成流量序列;通过两个测试端的交互确定测试开始时间,确定报文的实际发送时间,最终生成基于通话模型的网络语音通话测试流量。本发明充分考虑了网络语音通话测试流量的真实性和交互性,可用来同时实现双方向的网络语音通话测试。
文档编号H04M7/00GK101051960SQ20071009940
公开日2007年10月10日 申请日期2007年5月18日 优先权日2007年5月18日
发明者尹霞, 王之梁, 施新刚, 吉利 申请人:清华大学