首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

衡量SIP设备性能的指标和算法以及八个测试场景RFC7502规范分享

在SIP网络环境中,为了满足用户的需求和功能实现,需要部署多种SIP网络设备或者网元来,例如注册服务,转发代理服务器,有状态代理,SBC和B2BUA等支持业务的需求。因为业务需求复杂,很多时候,这些设备的执行性能存在很多的偏差。其性能认知的排查很大程度上取决于测试手段是否规范。规范的测试手段能够保证其性能测试取得一个比较权威的结果。另外,具体测试项目或者被测设备(DUT)的必要参数参数也是非常重要的指标。其参数指标包括SIP注册速率,会话创建速率等。实际上,RFC7502规范(信息类)提供了针对SIP执行性能的参数指标和针对这些参数指标的方法手段。在以下的章节中,我们将根据RFC7502的内容,为大家介绍其基准测试的手段和测试项目的用例说明。

这里提醒读者,在关于RFC7502的规范分享中,其规范涉及到了RFC7501中的一些必要指标的说明。笔者在这里会交叉引用这些说明,请读者在阅读时注意。

在关于RFC7502规范的分享中,其主要内容包括了基准测试的网络拓扑,测试创建参数详解,生成报告格式和测试用例等几个核心章节。因为篇幅的关系,笔者直接介绍这些核心的章节,其它辅助说明,读者可参考规范链接查看全文。

背景说明

关于SIP的性能参数有很多的介绍,绝大部分的讨论聚焦于SIP服务器或者媒体服务器的性能,包括CPS值,和媒体相关的编码转换处理等。一些细节的测试指标包括RFC6076中的指标都有相关的规范和算法。

我们在本文档中讨论重点讨论的是注册速率和会话创建的速率方面的测试指标。在SIP规范RFC3261中涉及了很多的SIP终端设备,这些设备是一些被测设备-Device Under Test (DUT),它们充当着各种SIP中间人角色,例如,它们可以是注册服务器,转发服务器,有状态代理(本规范中不涉及无状态代理),SBC或者我们经常看到的其它B2BUA角色,这些被测设备的性能会影响着整个SIP网络的性能。这些测试中包括了代理设备配合媒体服务时的不同类型的对比。我们期望通过不同类型的对比来验证其设备的执行性能。

测试这些DUT设备需要按照不同的测试用例手段进行测试。在本规范中讨论了测试用例中需要测试的几个指标。这些具体的指标包括最大SIP注册速率和最大SIP会话创建速率。我们通过测试这两个指标来检验在一定时间周期内,成功状态下的SIP设备可承受的压力。在测试过程中,整个时间周期也需要设定的算法来保证。这些指标中涉及了会话过程中绑定媒体流的性能测试和转发媒体流的性能测试。这些测试用例也同样影响SIP设备的性能。RFC7502通过不同厂家SIP设备输出的性能指标来为SIP网络部署提供性能指标参考。

Benchmarking Topologies-基准测试拓扑实现

在前面的背景介绍中,我们已经提到。输出准确的指标我们需要首先确认测试用例拓扑实现。这些用例通过集线器,网络交换机,路由器等设备,测试用例会生成大量的网络数据包,这些设备的性能也会影响测试的最终结果。因此,在测试用例的执行中,我们要首先保证这些网络设备的能力支持。

测试用例是非常关键的。在此建议规范中,规定了两种测试用例拓扑,它们分别是:媒体处理的DUT设备和转发媒体处理的DUT设备处理的流程。

另外关于注册性能测试中,以下用例测试了注册和重新注册使用的测试流程。通过后台的注册和重新注册机制中的时间周期数字测试来测试其DUT设备的稳定性。

测试创建参数

在确定了参数用例以后,为了测试DUT设备的性能,我们需要按照参数设置分别进行性能测试。这些创建参数测试的指标包括了传输协议使用,传输协议连接的管理,信令服务器,关联媒体,关联媒体的选择(RTP和SRTP),每个SIP会话所关联的媒体流的数量,编码类型,会话时长,每秒尝试会话等参数。

广告

除了涉及到的这些参数以外,规范中推荐了一种算法来处理这些参数值的计算。在RFC7502的4.10章节介绍了一个关于测试用例的算法伪代码。此参数算法是通过R 统计语言Rtool来实现的。其目的是找到最大值R(SIP尝试速率),以sessions per second (sps)来参数。与之相对的是N值,代表N个SIP会话次数。通过N和R的交互测试其最终结果,主要涉及的参数包括:

测试报告格式

测试报告需要一定的规范来标识其参数测试情况。报告规范涉及了测试创建报告(传输协议,连接管理策略,会话尝试速率,总会话尝试数量,编码类型,媒体数据包大小,创建阀值时间,使用的TLS套件,IPsec属性等),针对会话创建的设备基准报告(会话创建速率),针对注册和重注册的设备基准报告(注册速率,重注册速率)。更多关于具体参数的计算单位的定义,读者可参考RFC7502的第五章节。

测试用例

在此建议规范中规定了八个测试用例分别测试DUT不同的衡量指标。每个测试用例包括了测试目的,测试流程和期望输出结果。

Baseline Session Establishment Rate of the Testbed

Session Establishment Rate without Media

Session Establishment Rate with Media Not on DUT

Session Establishment Rate with Media on DUT

Session Establishment Rate with TLS-Encrypted SIP

Session Establishment Rate with IPsec-Encrypted SIP

Registration Rate-注册速率

Re-registration Rate-重新注册速率

其他测试工具讨论

关于SIP测试的讨论涉及很多领域的内容,可以测试硬件服务器性能包括硬盘读写速度,可以测试内存,网口等性能,当然也可以测试更多涉及SIP呼叫的其他参数,例如PRD,SRD,抖动等。使用的工具也很多,大家可能比较常用的就是SIPP,也可以使用其他的商业软件来进行测试。

关于SIP性能测试的以上测试指标以外,还有针对具体SIP语法处理的测试,例如文本消息解析,无序的头字段重排,各种变量值大小,非敏感字母处理,消息扩展支持等要素,这些要素可能会影响CPU性能和内存大小。

在更复杂的流程处理中,各种代理服务器路由之间的切换需要使用各种进程来处理这些流程。这些进程也同样影响着代理服务器的每秒呼叫量,响应时间和CPU占比。

如果在3GPP, IMS网络呼叫环境中,S-CSCF的呼叫流程更加复杂,

在S-CSCF测试环境中,基准测试中的创建和拆线时间也会出现很大的不同。

总结

测试是一个非常复杂的过程,首先需要定义衡量指标,确认测试算法,并且还要输出测试结果。测试SIP DUT设备在不同网络环境,不同业务流程的性能是一个设备性能指标中非常重要的指标。RFC7502发布了一个信息类的规范,能够帮助大家通过一个规范来输出标准的测试数据,通过不同厂家SIP设备性能的对比来帮助用户更加理性选择合适的产品。在衡量指标测试中,根据8个不同测试场景,按照Rtool工具的算法处理来输出一个完整的SIP终端的衡量指标。

在最后章节,笔者补充了一些其它的测试方式,方便读者比较全面地了解关于SIP测试的指标说明。

参考资料:

https://datatracker.ietf.org/doc/html/rfc7502

https://www.rfc-editor.org/rfc/rfc7501

https://www.r-project.org/

https://www.rfc-editor.org/rfc/rfc6357

https://sipp.sourceforge.net/doc3.3/reference.html

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230327A098J000?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券