在SIP網絡環境中,為了滿足使用者的需求和功能實作,需要部署多種SIP網絡裝置或者網元來,例如注冊服務,轉發代理伺服器,有狀态代理,SBC和B2BUA等支援業務的需求。因為業務需求複雜,很多時候,這些裝置的執行性能存在很多的偏差。其性能認知的排查很大程度上取決于測試手段是否規範。規範的測試手段能夠保證其性能測試取得一個比較權威的結果。另外,具體測試項目或者被測裝置(DUT)的必要參數參數也是非常重要的名額。其參數名額包括SIP注冊速率,會話建立速率等。實際上,RFC7502規範(資訊類)提供了針對SIP執行性能的參數名額和針對這些參數名額的方法手段。在以下的章節中,我們将根據RFC7502的内容,為大家介紹其基準測試的手段和測試項目的用例說明。
這裡提醒讀者,在關于RFC7502的規範分享中,其規範涉及到了RFC7501中的一些必要名額的說明。筆者在這裡會交叉引用這些說明,請讀者在閱讀時注意。
在關于RFC7502規範的分享中,其主要内容包括了基準測試的網絡拓撲,測試建立參數詳解,生成報告格式和測試用例等幾個核心章節。因為篇幅的關系,筆者直接介紹這些核心的章節,其它輔助說明,讀者可參考規範連結檢視全文。
背景說明
關于SIP的性能參數有很多的介紹,絕大部分的讨論聚焦于SIP伺服器或者媒體伺服器的性能,包括CPS值,和媒體相關的編碼轉換處理等。一些細節的測試名額包括RFC6076中的名額都有相關的規範和算法。
完整RFC6076-端對端SIP網絡九大性能評價名額(KPI)概論和時延産生其他因素的相關性讨論
我們在本文檔中讨論重點讨論的是注冊速率和會話建立的速率方面的測試名額。在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的互動測試其最終結果,主要涉及的參數包括:
; ---- Parameters of test; adjust as needed
N := 50000 ; Global maximum; once largest session rate has
; been established, send this many requests before
; calling the test a success
m := {...} ; Other attributes that affect testing, such
; as media streams, etc.
r := 100 ; Initial session attempt rate (in sessions/sec).
; Adjust as needed (for example, if DUT can handle
; thousands of calls in steady state, set to
; appropriate value in the thousands).
w := 0.10 ; Traffic increase weight (0 < w <= 1.0)
d := max(0.10, w / 2) ; Traffic decrease weight
測試報告格式
測試報告需要一定的規範來辨別其參數測試情況。報告規範涉及了測試建立報告(傳輸協定,連接配接管理政策,會話嘗試速率,總會話嘗試數量,編碼類型,媒體資料包大小,建立閥值時間,使用的TLS套件,IPsec屬性等),針對會話建立的裝置基準報告(會話建立速率),針對注冊和重注冊的裝置基準報告(注冊速率,重注冊速率)。更多關于具體參數的計算機關的定義,讀者可參考RFC7502的第五章節。
測試用例
在此建議規範中規定了八個測試用例分别測試DUT不同的衡量名額。每個測試用例包括了測試目的,測試流程和期望輸出結果。
Baseline Session Establishment Rate of the Testbed
目标 | 枚舉代理的會話建立速率,無失敗記錄 |
測試流程 | 1)在示例1中配置DUT。2)設定每個會話的媒體流為0。3)執行基準算法,獲得基準會話建立速率。 |
期望輸出結果 | 獲得EA的最大建立速率。 |
Session Establishment Rate without Media
目标 | 測試無媒體關聯時,DUT的會話建立速率。 |
測試流程 | 1)根據配置示例1或者2配置。2)設定每個會話的媒體流為0。3)執行基準算法,獲得基準會話建立速率。 |
期望輸出結果 | 獲得當無媒體流發送時的EA的最大建立速率。 |
Session Establishment Rate with Media Not on DUT
目标 | 衡量DUT的會話建立速率,包括媒體流,無失敗結果,媒體不通過DUT運作。 |
測試流程 | 1)通過測試用例1配置一台DUT。2)設定每個會話的媒體流為1。 3)執行基準算法,獲得帶媒體的基準會話建立速率。 |
期望輸出結果 | 獲得測試結果,帶媒體的會話建立速率,每個SIP會話攜帶的任何媒體流數量來确認其性能。 |
Session Establishment Rate with Media on DUT
目标 | 衡量DUT的會話建立速率,包括媒體流,無失敗結果,媒體通過DUT運作。 |
測試流程 | 1)通過測試用例2配置一台DUT。2)設定每個會話的媒體流為1。 3)執行基準算法,獲得帶媒體的基準會話建立速率。 |
期望輸出結果 | 獲得測試結果,運作在同一平台的帶媒體的會話建立速率和不帶媒體的會話建立速率對比。通過硬體專有的媒體路徑硬體處理,測試轉發媒體,處理媒體(媒體轉換),各種媒體類型的處理 |
Session Establishment Rate with TLS-Encrypted SIP
目标 | 衡量帶TLS加密的SIP的會話建立速率 |
測試流程 | 1)如果DUT作為一個代理或者B2BUA測試時,按照用例1或者用例2配置。2)測試期間開啟TSL支援,使用推薦的加密套件。3)設定每個會話的媒體流為0, 無媒體介入。4)執行測試算法,并且支援TSL加密。 |
期望輸出結果 | 期望獲得一個帶TLS加密的SIP 會話建立速率,這個值可能低于明文SIP環境。 |
Session Establishment Rate with IPsec-Encrypted SIP
目标 | 衡量帶IPsec加密的SIP的會話建立速率 |
測試流程 | 1)使用測試圖例1或者2配置一台DUT。2)設定每個會話的媒體流為0,不使用媒體。3)針對IPsec執行配置。4)執行基準算法獲得帶IPsec加密的會話建立速率。 |
期望輸出結果 | 期望獲得一個帶IPsec加密的SIP 會話建立速率,這個值可能低于明文SIP環境。 |
Registration Rate-注冊速率
目标 | 衡量最大注冊速率,DUT可以在一個延長時間内處理的,無失敗結果。 |
測試流程 | 1)根據示例3配置DUT。2)設定注冊逾時時間,至少為3600秒。3)每個注冊請求必須通過不同的AOR位址執行。4)執行基準算法獲得最大注冊速率。 |
期望輸出結果 | 提供最大注冊速率。 |
Re-registration Rate-重新注冊速率
目标 | 使用同樣背景處理流程,重新注冊DUT裝置進行測試。 |
測試流程 | 1)通過示例3配置DUT。2)執行注冊。3)5分鐘以後,少于10分鐘内執行注冊步驟2,使用同樣的AOR注冊。 |
期望輸出結果 | 通過重新注冊,進行注冊對比測試。 |
其他測試工具讨論
關于SIP測試的讨論涉及很多領域的内容,可以測試硬體伺服器性能包括硬碟讀寫速度,可以測試記憶體,網口等性能,當然也可以測試更多涉及SIP呼叫的其他參數,例如PRD,SRD,抖動等。使用的工具也很多,大家可能比較常用的就是SIPP,也可以使用其他的商業軟體來進行測試。
關于SIP性能測試的以上測試名額以外,還有針對具體SIP文法處理的測試,例如文本消息解析,無序的頭字段重排,各種變量值大小,非敏感字母處理,消息擴充支援等要素,這些要素可能會影響CPU性能和記憶體大小。
在更複雜的流程進行中,各種代理伺服器路由之間的切換需要使用各種程序來處理這些流程。這些程序也同樣影響着代理伺服器的每秒呼叫量,響應時間和CPU占比。
如果在3GPP, IMS網絡呼叫環境中,S-CSCF的呼叫流程更加複雜,
在S-CSCF測試環境中,基準測試中的建立和拆線時間也會出現很大的不同。
總結
測試是員工非常複雜的過程,首先需要定義衡量名額,确認測試算法,并且還要輸出測試結果。測試SIP DUT裝置在不同網絡環境,不同業務流程的性能是一個裝置性能名額中非常重要的名額。RFC7502釋出了一個資訊類的規範,能夠幫助大家通過一個規範來輸出标準的測試資料,通過不同廠家SIP裝置性能的對比來幫助使用者更加理性選擇合适的産品。在衡量名額測試中,根據8個不同測試場景,按照Rtool工具的算法處理來輸出一個完整的SIP終端的衡量名額。
在最後章節,筆者補充了一些其它的測試方式,友善讀者比較全面地了解關于SIP測試的名額說明。
參考資料:
www.sip.org.cn
www.dinstar.cn
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