Basic Telephony SIP End-to-End Performance Metrics
通過以上規(guī)范,運營用戶還是終端用戶都可以通過評價指標來說明SIP服務(wù)的性能,可以達到一個相對比較規(guī)范有數(shù)據(jù)說明的一個服務(wù)標準。雖然此規(guī)范不是一個強制規(guī)范,它可以實現(xiàn)對SIP性能的指標的量化,體現(xiàn)出科學(xué)性,而非使用非?斩吹氖袌稣Z言。
下面,筆者根據(jù)RFC6076對整個SIP服務(wù)評價指標做一個完整說明,同時針對和SIP性能指標相關(guān)的一些要素做討論,最后,根據(jù)IP網(wǎng)絡(luò)研究人員的研究結(jié)合以上討論來進一步說明性能指標的各種分享。
1關(guān)于SIP性能指標評價的背景說明
在語音通信領(lǐng)域,經(jīng)過幾十年的發(fā)展,結(jié)合互聯(lián)網(wǎng)的帶寬的逐漸提升,SIP語音已經(jīng)被大部分運營商,軟硬件產(chǎn)品和服務(wù)提供商和終端用戶的接受。不像傳統(tǒng)的PSTN網(wǎng)絡(luò),SS7有著自己的完整的規(guī)范經(jīng)過這么多年的發(fā)展,因為SIP以前網(wǎng)絡(luò)環(huán)境的差異,相互隔離和硬件差異,關(guān)于SIP評價服務(wù)方面,基于不同的部署環(huán)境,很多運營商,不同軟硬件廠家都有各種不同的評價標準,有的用戶以單一的物理硬件性能為基礎(chǔ)來表示SIP的性能評價,有的用戶以支持的最大并發(fā)數(shù)量作為一個SIP性能評價的標準,還有的用戶以支持的最大注冊用戶為標準。因為在針對SIP性能評價方面沒有統(tǒng)一的規(guī)范評價體系或者標準,因此,很多廠家和用戶在部署使用過程中沒有一個完整的規(guī)范標準來衡量SIP性能的評價,很多用戶都對各種不同的性能評價指標產(chǎn)生了很多的誤解和迷惑。
因此,對SIP性能評價做規(guī)范說明是一個勢在必行的任務(wù)。RFC6076的目的就在于為通信行業(yè)中對運營商,軟硬件廠家和終端用戶提供一個基本的端對端的關(guān)于SIP性能指標規(guī)范說明。通過此規(guī)范,運營商可以對用戶的服務(wù)提供一個可參考的SIP性能評價指標,以方便運營商為用戶提供量化的數(shù)據(jù)來說明服務(wù)的水平。
在此評價指標中,涉及了各種外部的變量,但是以下幾個方面的指標不在討論范圍之內(nèi),例如網(wǎng)絡(luò)連接性,交換機和路由器的性能,服務(wù)器的處理能力和其他硬件資源的性能。這些指標都和真正的SIP性能評價本身沒有直接聯(lián)系,這些都是一些外部要素,而且基本上都是經(jīng)常變化的,不可統(tǒng)一的指標。所以,這些指標不能作為衡量SIP性能的絕對指標。為了讓讀者了解更多關(guān)于SIP性能測試的一些相關(guān)性要素,盡管這些指標不是RFC6076的評價標準,筆者仍然打算在后續(xù)的文章中針對這些外部要素做一點分享,其目的是完整了解其他相關(guān)指標,這些指標可能一些SIP應(yīng)用的性能。
2關(guān)于兩種定時器的說明
在RFC6076中,針對SIP評價指標的報告是基于兩個非常重要的SIP定時器為基準的。在此規(guī)范中,很多的評價標準是通過時鐘周期設(shè)置來核定兩個事件之間的不同。這里,我們主要涉及兩個重要的定時器,T1和T4定時器。具體關(guān)于T1的定義討論建議讀者歷史文檔來查看。
淺析SIP響應(yīng)消息100 Trying的作用和傳輸機制
關(guān)于T1和T4的基本定義如下:
Attribute | 默認值設(shè)置 | 描述 |
t1-in-millis | 500 | T1 is an estimate of the round-trip time (RTT). Nearly all of the SIP transaction timers scale with T1, and changing T1 adjusts their values. |
t4-in-millis | 5000 | T4 represents the amount of time the network takes to clear messages between client and server transactions. |
這里簡單說明一下,T1是一個啟動時間,T4是一個事務(wù)的結(jié)束時間,觸發(fā)T4定時器表示在請求發(fā)送端的SIP應(yīng)用收到了響應(yīng)數(shù)據(jù)中最后一bit數(shù)據(jù)。
除了T1和T4的定義以外,在各種網(wǎng)絡(luò)之間還存在一個和具體時間相關(guān)的一個時鐘問題。如果時鐘計算不同步的話,可能會出現(xiàn)時間戳不正確,評價標準也可能出現(xiàn)其他的誤差,因此這里還涉及到了一個偏移計算的問題。關(guān)于時鐘的偏移和T1定時器不同以及影響到時間計算的規(guī)范,讀者可以查閱RFC2330。如果計算T1和T4定時器必須要有一個穩(wěn)定的準確的時鐘來保證其準確性,除了保證時鐘源的準確性以外,還要考慮到其他因素,包括同步響應(yīng)可能對本地時鐘的操作,使用一個自由時鐘進行基準時鐘設(shè)置,或者通過物理操作讀取時鐘時的錯誤等都會引起T1和T4定時器的錯誤,這些錯誤就會影響到T1和T4之間的時間戳錯誤或者地址延遲。
3RFC6076中關(guān)于SIP九大評價指標詳解
在RFC6076中,關(guān)于SIP評價標準有以下幾個不同的參數(shù)值,筆者將根據(jù)規(guī)范為讀者詳細說明這些評價標準的定義和相關(guān)設(shè)置。以下圖例簡單說明了幾個注冊呼叫時延的計算方式流程。

此圖例和以下圖例均來自于互聯(lián)網(wǎng)資源
3.1-注冊請求時延-Registration Request Delay (RRD)-從這里的字面意思我們就可以看到,這個時延是基于注冊請求來計算的。RDD用來衡量注冊請求返回響應(yīng)的時延時間。RDD是一個相對于注冊請求成功的時延結(jié)果。接下來的(IRAs)則是一個注冊請求失敗的結(jié)果。計算公式為:
RRD = Time of Final Response - Time of REGISTER Request
具體來說,從由UA發(fā)起方發(fā)送的初始請求消息的第一個bit數(shù)據(jù)算起,到此UA收到最后一個200 OK的bit結(jié)束之間的時間。此交互過程中包含請求認證的過程處理。具體示例如下:

3.2-無效注冊測試比率-Ineffective Registration Attempts (IRAs):IRAs用來檢測注冊失敗或者缺陷的比率,主要針對UA到注冊服務(wù)器的注冊能力檢測。IRAs主要在UA端進行檢測。計算方式如下:

其結(jié)果等于失敗注冊次數(shù)和總注冊請求次數(shù)之間的百分比率。讀者都知道,失敗返回的信息包括了4xx和5xx,甚至于6xx的返回消息。失敗的注冊通過幾次嘗試,或者定時器超時最后獲得一個IRAs結(jié)果。


3.3-會話請求時延-Session Request Delay (SRD),SRD包括兩種時延,一種是會話請求成功時延-Successful Session Setup SRD和相反的會話請求失敗時延-Failed Session Setup SRD。SRD用來檢測返回失敗或者缺陷導(dǎo)致的對UA響應(yīng)的時延。其計算公式為:
SRD = Time of Status Indicative Response - Time of INVITE
在會話請求成功的時延中,SRD是這樣定義的,初始UA發(fā)送了初始請求的第一個bit數(shù)據(jù)到對端代理后,直到收到最后一個bit,其會話顯示創(chuàng)建請求的成功。其SRD包括了1xx臨時響應(yīng)和302的響應(yīng)處理時延。


在會話請求失敗的時延中,SRD是這樣定義的,初始UA發(fā)送了初始請求的第一個bit數(shù)據(jù)到對端代理后,直到收到最后一個bit,其會話顯示創(chuàng)建請求的成功。其SRD包括了4xx臨時響應(yīng)和5xx或者6xx的響應(yīng)處理時延。


3.4-會話關(guān)閉時延-Session Disconnect Delay (SDD),SDD是用來檢測失敗或者缺陷導(dǎo)致的時延來結(jié)束或者關(guān)閉會話的時間。它可以檢測會話關(guān)閉成功時間和會話關(guān)閉失敗時間,會話雙方的代理端都可以檢測其時延。SDD具體的計算公式如下:
SDD = Time of 2XX or Timeout - Time of Completion Message (BYE)
SDD主要用來檢測例如BYE消息相關(guān)的200 OK回復(fù)的時間時延,雙方UA都可以支持SDD檢測:

如果讀者以前閱讀過筆者歷史文檔的時候,讀者可能注意到了,我們曾經(jīng)針對計費問題對SDD做了具體的討論。
OpenSIPS學(xué)習(xí)筆記-ACC模塊/事務(wù)-CDR記錄以及BYE消息丟失-呼叫會話關(guān)閉時延影響計費和配置示例

如果讀者有興趣了解關(guān)于CDR計費的問題的話,可以查閱此鏈接。
3.5-會話總長-Session Duration Time (SDT), 包括Successful Session Duration SDT和Failed Session Completion SDT。SDT的作用是檢測因為會話時間不正常導(dǎo)致的語音質(zhì)量問題。SDT可以檢測在一個dialog中雙方UA的SDT問題。SDT具體的計算公式如下:
SDT = Time of BYE or Timeout - Time of 200 OK response to INVITE
同樣,SDT也分為成功時長和失敗時長兩種計算方式。在失敗時長計算中包括了一個F定時器時延的處理。




3.6-會話創(chuàng)建比率-Session Establishment Ratio (SER)-SER是用來檢測UA終端和下游終端之間在每個新會話請求中會話創(chuàng)建的成功比率。此檢測只能在UA端進行檢測。其計算公式如下:

SER和Answer Seizure Ratio(應(yīng)答率)非常相似,表示一個總呼叫量和成功應(yīng)答呼叫之間的比率。


3.7-會話創(chuàng)建有效比率Session Establishment Effectiveness Ratio (SEER),SEER是和SER有互補關(guān)系,但是,SEER排除了一些潛在的目標UA用戶的影響。SEER定義為INVITE/200 OK相關(guān)的呼叫總數(shù)和INVITE/480,486,600或者603相關(guān)的呼叫總數(shù)在總呼叫數(shù)中的占比。因為480,486等幾個回復(fù)需要非常清晰地表示了個體UA端的效應(yīng),例如可能UA的錯誤設(shè)置。另外,回復(fù)響應(yīng)碼如果是401,407或者420則不在此計算范圍之內(nèi)。其計算公式如下:

SEER呼叫流程實例和SER類似。這里不再列出。
3.8-無效會話嘗試-Ineffective Session Attempts (ISAs)比率,ISAs用來表示因為代理或者agent失敗或者過載情況發(fā)生后內(nèi)部釋放了一個已創(chuàng)建的請求;貜(fù)響應(yīng)碼可能包括408,500,503或者504。這里,可能是代理的下游網(wǎng)絡(luò)出現(xiàn)過載狀態(tài)后返回的408響應(yīng)。其具體計算公式如下:


代理2發(fā)現(xiàn)了UA2可能出現(xiàn)了過載狀態(tài),返回408響應(yīng),記為一次無效會話嘗試。
3.9-會話完成比率-Session Completion Ratio (SCR),SCR用來表示一個完整的dialog中無任何失敗,這些失敗可能是因為缺少來自于代理或者UA的響導(dǎo)致的失敗,是會話成功完成和總會話之間的比率。SCR和Call Completion Ratio (CCR)-呼叫完成率類似。其計算公式為:

SCR呼叫流程如下:

如果讀者有興趣的話可以參考RFC3665,在此規(guī)范中定義了各種SIP創(chuàng)建成功和失敗的呼叫流程的細節(jié)。這里不再展開討論。
4SIP評價標準數(shù)據(jù)處理相關(guān)因素討論
前面的章節(jié)筆者討論了關(guān)于SIP評價指標的具體細節(jié)。根據(jù)RFC6076規(guī)范,這些評價標準和具體的其他要素也存在一定的依賴關(guān)系,讀者需要注意。
在這些要素中,一些SIP頭域值需要讀者做更多了解,例如:
- To "user"
- From "user"
- 雙向的 "user"
- To "domain"
- From "domain"
另外,B2BUA也是一個重要的要素,它根據(jù)處理流程的需要可能充當UAS或者UAC,另外也可能充當一個代理的角色。它需要采集不同方向的數(shù)據(jù)。
簽權(quán)和認證也是需要考慮到因素。因為在dialog處理流程中可能需要認證機制,因此可能出現(xiàn)認證失敗的處理響應(yīng)。這些響應(yīng)也需要考慮在評價標準中。
Forking分叉呼叫處理是SIP常見的一種呼叫場景,在分叉呼叫中也需要針對不同的回復(fù)需要分別對呼叫進行分類計算,此計算方式根據(jù)分叉呼叫發(fā)生的點點不同來計算。特別需要注意的是SRD的計算。
在計算SIP評價標準時,采集的數(shù)據(jù)可能來源于不同的數(shù)據(jù)存儲方式中,例如通過CDR中來計算或者其他的數(shù)據(jù)庫,這些數(shù)據(jù)需要進行同步處理,保證其數(shù)據(jù)的準確性。另外一些數(shù)據(jù)可能在其他的上下游代理或者UAS服務(wù)器端,在SIP評價標準的計算時也需要通過集中處理,保證數(shù)據(jù)的統(tǒng)一性。評價標準的數(shù)據(jù)傳輸可以通過SNMP,MIB(RFC4780)或者事件訂閱方式(RFC3265)來傳輸。
5關(guān)于影響性能評價指標的其他因素討論
我們在前面的章節(jié)討論了幾個SIP性能的評價指標和RFC6076中提到的其他相關(guān)的要素,除了以上這些要素以外,筆者這里再補充說明一些相關(guān)要素。這些要素的討論是為了讓讀者更加了解這些要素如何影響SIP評價指標。非常重要的一個指標就是延遲(Delay)。Delay包括各種方式的延遲,包括IP網(wǎng)絡(luò)延遲和終端延遲:
- Propagation delay:物理距離和中間代理路徑的延遲。
- Transmission delay:傳輸產(chǎn)生的延遲
- Nodal Processing delay:路由設(shè)備的處理延遲
- Queuing delay:代理服務(wù)器查詢延遲
- Codec delay:終端編碼延遲
- Packetization delay:打包延遲
- Playout buffer delay:緩沖處理延遲
以上延遲因為物理性能或者轉(zhuǎn)換打包時長不同都會導(dǎo)致不同的延遲,當然也會導(dǎo)致各種語音問題,例如抖動,丟失語音包等問題。筆者通過不同的示例來介紹目前部分典型環(huán)境中導(dǎo)致的各種延遲和影響SIP 評價標準的要素。
通過以下示例筆者可以看到,在MOS的評測中因為時延會產(chǎn)生很多的問題,當然,這些時延也可能引起請求注冊等方面的問題,最后導(dǎo)致時延。

除了純SIP網(wǎng)絡(luò)的注冊流程以外,在目前的IMS網(wǎng)絡(luò)環(huán)境中,關(guān)于SIP時延的討論也很多。讀者需要特別注意RRD(注冊請求時延)的時間跨度:

一些研究人員針對LTE網(wǎng)絡(luò)環(huán)境中AMR編碼等要素做的一些研究,這些要素最后導(dǎo)致LTE網(wǎng)絡(luò)的擁塞也是非常需要關(guān)心的。當然,因為網(wǎng)絡(luò)擁塞也會導(dǎo)致MOS問題。

很多時候,SIP消息生成過多也同樣會導(dǎo)致時延。Jasmina發(fā)表的研究論文-Studying the Impact of SIP Message Differentiation on the Quality of VoIP Session Control Procedures提到了SIP消息的不同對語音質(zhì)量和時延帶來的問題。SIP消息生成如果導(dǎo)致了過高負載的話,也產(chǎn)生了前面我們所討論的評價標準的時間延遲。他通過不同在SIP消息生成中采用不同算法優(yōu)先級來(SIPPRIO package)優(yōu)化過高負載降低SIP消息生成帶來的系統(tǒng)壓力。具體測試結(jié)果和SIP評價標準(RRD, SRD, 和 SDD)相關(guān)性如下:



如果我們具體到比較簡單的語音環(huán)境中,SIP網(wǎng)絡(luò)架構(gòu)當然也會影響SIP 評價標準的數(shù)據(jù)質(zhì)量。網(wǎng)上有很多測試結(jié)果,讀者可以查閱。這里,筆者分享MIROSLAV發(fā)表的關(guān)于SIP Infrastructure Performance Testing的一篇研究論文。在其論文中,通過不同CPU資源,結(jié)合不同的編碼,對RRD和SRD所產(chǎn)生的不同的影響。筆者提供此示例的目的是針對一般企業(yè)用戶,或者中小型用戶可以通過此配置示例對SIP評價標準進行一定的測試,也方便用戶對測試環(huán)境的完善做一個補充。




更為簡單的場景中,讀者可以通過簡單SIP注冊進行壓力測試,對RRD進行評價。例如, Miroslav發(fā)表的SIP Registration Stress Test對比不同版本Asterisk支持的RRD狀態(tài):


當然,如果在洪水攻擊的環(huán)境中或者在實際生產(chǎn)環(huán)境中,如果被攻擊以后,INVITE和各種后續(xù)請求等生成時延都會隨著數(shù)據(jù)包不斷增加時延也會隨著增加。因此,用戶在部署基于云平臺或者無安全保障的前提下,一定要注意這些數(shù)據(jù)的變化,因為這些SIP 評價標準的數(shù)據(jù)也導(dǎo)致了語音質(zhì)量的問題,包括抖動,語音丟失等問題。Santosh Kumar發(fā)表的研究論文中對各種延遲結(jié)合SIP請求,BYE或者Options消息等環(huán)境中做的測試,這些測試數(shù)據(jù)也影響了語音時延,抖動,語音丟失等問題,嚴重影響了SIP評價標準的數(shù)據(jù)。


目前比較新的技術(shù)就是使用SD-WAN,我們稱之為綠色VOIP網(wǎng)絡(luò)。SD-WAN有很多目前網(wǎng)絡(luò)部署場景所不具備的優(yōu)勢,完全靈活實現(xiàn)了SIP網(wǎng)絡(luò)的部署,優(yōu)化了傳輸速度和穩(wěn)定性。因此,通過SD-WAN可以降低很多的時延。Ahmadreza發(fā)表的研究論文通過對綠色VOIP部署的測試所得出的研究結(jié)果,其結(jié)果對SIP時延優(yōu)化有極大的幫助,希望讀者能夠引起重視。

6總結(jié)
筆者在本文章中重點介紹了關(guān)于SIP評價標準RFC-6076的9大評價標準,通過一定的比較知識介紹,結(jié)合具體的SIP 評價標準和其格式以及呼叫流程對各種指標進行了詳細說明。另外,筆者針對計算評價標準的其他因素也做了一點說明。最后,筆者根據(jù)以上RFC6076規(guī)范中說明的數(shù)據(jù),對關(guān)于生成延遲的時間和各種測試做了比較完善的補充介紹,幫助讀者能夠完整了解這些時延產(chǎn)生的原因和對語音質(zhì)量的影響。在一些比較新的研究論文中,突出介紹了環(huán)境部署對SIP性能的影響,網(wǎng)絡(luò),編碼和技術(shù)架構(gòu)部署,包括最新SD-WAN等技術(shù)的部署介紹。
因為筆者能力所限,有一些其他方面的時延內(nèi)容沒有做具體討論,例如AMR編碼的影響,各種開源媒體服務(wù)器中配置的優(yōu)化和利用SBC部署方式的優(yōu)化等。如果有時間的話,筆者在后續(xù)的文章中會逐一補充。
參考資料:
https://tools.ietf.org/html/rfc6076
https://tools.ietf.org/html/rfc2330#section-10.1
https://tools.ietf.org/html/rfc3665
Santosh Kumar,Effectiveness of SIP Server Under SIP Flooding Attack During VoIP Calls
Ahmadreza,Green Cloud Multimedia Networking: NFV/SDN
Based Energy-Efficient Resource Allocation
www.asterisk.org.cn
www.freepbx.org.cn
www.rbbn.cn 世界級SIP/SBC 解決方案