DS34T10x和DS34S10x TDM分組(TDMoP)器件利用抖動緩沖器來補償分組網(wǎng)絡中存在的分組延遲變化(PDV)。本應用筆記解釋了PDV及其對通信質(zhì)量的影響。討論了抖動緩沖器的功能和類型。本文還介紹了如何在TDMoP器件中設置抖動緩沖控制器的參數(shù),以最大程度地減少PDV的影響。
介紹
DS34T10x和DS34S10x系列TDM包帶(TDMoP)器件使用抖動緩沖器來補償分組網(wǎng)絡中存在的數(shù)據(jù)包延遲變化(PDV)。這些緩沖區(qū)可基于每個捆綁包或每個連接獨立配置。此外,它們是動態(tài)可調(diào)的,允許它們實時適應分組網(wǎng)絡性能特征的變化。本應用筆記討論抖動緩沖控制器以及如何設置其參數(shù),以最大限度地降低TDM時鐘恢復期間PDV的影響。
DS34T10x 包括 DS34T101、DS34T102、DS34T104 和 DS34T108;DS34S10x 包括 DS34S101、DS34S102、DS34S104 和 DS34S108。
TDM 網(wǎng)絡中的時序
TDM 網(wǎng)絡具有網(wǎng)絡中所有設備使用的單時鐘源。目標TDM器件從輸入數(shù)據(jù)中獲取時鐘,并將其用于傳輸數(shù)據(jù)(環(huán)回時序),如圖1所示。
圖1.TDM 網(wǎng)絡中的環(huán)回時序。
數(shù)據(jù)包到達時間的變化(稱為抖動)是由于網(wǎng)絡擁塞、時序漂移或路由更改而發(fā)生的。因此,當用一個IP/MPLS網(wǎng)絡和兩個TDMoP設備替換物理TDM連接時(如圖2所示),接收TDMoP設備(從設備)接收TDMoP數(shù)據(jù)包,其到達時間延遲可變。
處理完數(shù)據(jù)包后,設備應以TDM網(wǎng)絡的恒定速率將TDM數(shù)據(jù)發(fā)送到TDM側(cè),以最大程度地減少此抖動的影響。為了實現(xiàn)這種恒定的數(shù)據(jù)速率,該器件在時鐘恢復模式下工作,以重建源TDM時鐘,以便目標TDM器件仍然可以在環(huán)回定時模式下工作。
圖2.分組 TDM 網(wǎng)絡中的定時。
抖動緩沖器
DS34T10x/DS34S10x利用抖動緩沖器將PDV對通信質(zhì)量的影響降至最低。抖動緩沖區(qū)是一個共享內(nèi)存區(qū)域,可以在其中收集、存儲TDM數(shù)據(jù)包,并以均勻間隔的間隔發(fā)送到電路仿真引擎。抖動緩沖區(qū)位于TDM連接的發(fā)送端和接收端,有意延遲到達的數(shù)據(jù)包,以便最終用戶體驗到清晰的連接,幾乎沒有聲音失真。
抖動緩沖器有兩種:靜態(tài)和動態(tài)。靜態(tài)抖動緩沖區(qū)基于硬件,由制造商配置。動態(tài)抖動緩沖器基于軟件,可由網(wǎng)絡管理員進行配置,以適應網(wǎng)絡延遲和 PDV 的變化。
DS34T10x/DS34S10x具有動態(tài)抖動緩沖器,位于SDRAM中。這些抖動緩沖器有兩個主要作用:
補償數(shù)據(jù)包延遲變化
在TDMoP從器件上重建遠端TDM時鐘
數(shù)據(jù)以從收到的以太網(wǎng)數(shù)據(jù)包到達時間派生的可變速率進入緩沖區(qū)。數(shù)據(jù)以恒定的TDM速率離開緩沖器。在時鐘恢復模式下,抖動緩沖器的電平提供了時鐘恢復機制的指示。
對于TDMoP協(xié)議(CESoPSN,SAToP和TDMoIP),捆綁包可以包含來自單個E64或T1的任意數(shù)量的1kbps時隙。捆綁包是單向流,通常與相反方向的捆綁包耦合,以實現(xiàn)全雙工通信??梢栽趦蓚€TDMoP邊緣設備之間傳輸多個捆綁包。
DS34T10x/DS34S10x提供大抖動緩沖器(多達64束),可按每個束進行配置,以補償IP/MPLS/以太網(wǎng)網(wǎng)絡帶來的延遲變化。每個捆綁包都可以分配給有效負載類型機器或 CPU 上的任何 TDM 端口。所有捆綁包都具有以下可獨立配置的功能:
發(fā)送和接收隊列
接收抖動緩沖深度
可選的連接級冗余(適用于 SAToP 和 CESoPSN)
每個器件都提供具有 DS0 分辨率的內(nèi)部束交叉連接功能。此外,每個捆綁包都可以配置為:從端口傳輸所有 T1/E1 數(shù)據(jù);在每個數(shù)據(jù)包中傳輸配置的字節(jié)數(shù) (SAToP);或傳輸 T1/E1 數(shù)據(jù)的特定時隙,T24 最多 1 個時隙,E31 最多 1 個時隙 (CESoPSN)。捆綁包可以包含來自單個 TDM 端口內(nèi)任何時隙的數(shù)據(jù)。但是,一個時隙只能分配給單個捆綁包。對于 SAToP 和 CESoPSN 捆綁包,TDMoP 設備在抖動緩沖區(qū)范圍內(nèi)執(zhí)行數(shù)據(jù)包重新排序。數(shù)據(jù)包丟失通過插入預配置的條件值或重播上次接收的值來補償。
SAToP 和 CESoP 抖動緩沖器的分辨率不同。對于SAToP,精度以字節(jié)為單位,因此對于E4,變量的大小可以約為1μs,對于T5,則為1μs。對于CESoP,精度以幀為單位,因此E125和T1的變量可以按1μs的增量調(diào)整大小。由于在確定數(shù)據(jù)包是否良好之前必須存儲整個數(shù)據(jù)包,因此抖動緩沖區(qū)的最小精度是數(shù)據(jù)包大小的函數(shù)。如果是小數(shù)據(jù)包(1 字節(jié)),則最小值為 1 字節(jié)。如果是大型 CES 數(shù)據(jù)包(1500 幀),則無論 PDV 如何,最小值為 187.5ms。
配置DS34T10x/DS34S10x抖動緩沖器
正確配置抖動緩沖區(qū)的參數(shù)可避免欠載和超限情況。當抖動緩沖區(qū)為空(輸入速率低于現(xiàn)有速率)時,會發(fā)生欠載。當發(fā)生欠載事件時,芯片將調(diào)理數(shù)據(jù)而不是實際數(shù)據(jù)傳輸?shù)絋DM接口。當抖動緩沖區(qū)已滿且沒有空間輸入新數(shù)據(jù)(輸入速率超過現(xiàn)有速率)時,會發(fā)生溢出。欠載和超限需要IC硬件的特殊處理,具體取決于捆綁類型。
DS34T10x/DS34S10x在外部SDRAM中為數(shù)據(jù)和信令分配單獨的區(qū)域。
在 8 端口低速模式下,數(shù)據(jù)和信令區(qū)域分為八個相同的部分,每個 E1/T1/Nx64 接口一個。
在E1/T1結(jié)構(gòu)化模式下,每個數(shù)據(jù)部分包含E32的1個時隙或T24的1個時隙的數(shù)據(jù);單個 E1/T1 時隙最多可分配 4kB 的空間。所有八個接口共有 256 個時隙和 1024kB 的空間。
每個信令部分分為多幀扇區(qū),每個多幀扇區(qū)包含多達 32 個時隙的信令半字節(jié)。所有八個接口總共有 64kB。
在串行或 E1/T1 非結(jié)構(gòu)化模式下,沒有每個時隙的分配。抖動緩沖器分為八個相同的部分,每個接口一個。每個部分為每個 HDLC 束 512kB,否則為 128kB。
對于高速模式(E3/T3、STS-1),抖動緩沖器充當一個大型緩沖器,不劃分為多個部分,總?cè)萘繛?12kB。
抖動緩沖區(qū)具有以下深度:
E1:長達 256 毫秒
T1 非成幀:長達 340 毫秒
T1 成幀:長達 256 毫秒
使用 CAS 進行 T1 框架:長達 192 毫秒
抖動緩沖區(qū)的最大深度(以時間為單位)根據(jù)以下公式計算:
每個接口 8/1 × 緩沖區(qū) x (<> / 速率)(等式 <>)
其中:
? | = 緩沖區(qū)的兩半 |
每個接口的緩沖區(qū) | = 單個高速接口為 512kB,低速接口為 128kB |
8 | = 每字節(jié)位數(shù) |
率 | = 傳輸速率(例如 2.048Mbps) |
對于用CAS成幀的T1,將公式1的結(jié)果乘以0.75。
抖動緩沖區(qū)的深度由捆綁包配置表中的Rx_max_buff_size參數(shù)定義。當抖動緩沖區(qū)電平達到 Rx_max_buff_size 值時,將聲明溢出情況。
Rx_pdvt參數(shù)(也可在捆綁包配置表中找到)定義要存儲在抖動緩沖區(qū)中的數(shù)據(jù)量,以補償網(wǎng)絡延遲變化。抖動緩沖器參數(shù)如圖3所示。Rx_pdvt參數(shù)有兩個含義:
Rx_pdvt定義了IC對以太網(wǎng)網(wǎng)絡延遲變化的免疫力
從網(wǎng)絡到達的數(shù)據(jù)在發(fā)送到TDM線路之前會延遲Rx_pdvt
Rx_pdvt應小于 Rx_max_buff_size。此外,Rx_max_buff_size 和 Rx_pdvt 之間的差異必須大于重建數(shù)據(jù)包所需的時間;否則,數(shù)據(jù)包到達時可能會發(fā)生溢出。通常,Rx_max_buff_size的建議值為
2 × Rx_pdvt + PCT
(數(shù)據(jù)包創(chuàng)建時間)。這為延遲和突發(fā)數(shù)據(jù)包提供了相同的免疫力。
圖3.抖動緩沖器參數(shù)。
抖動緩沖控制器 (JBC) 使用 64 位 x 32 位捆綁包時隙表來標識每個活動捆綁包的分配時隙。表的索引是捆綁包編號。軟件必須配置每個活動分發(fā)包條目。對于非結(jié)構(gòu)化分發(fā)包,必須設置整個分發(fā)包條目(32 位) — 設置位意味著為此分發(fā)包分配了相應的時隙。
JBC 統(tǒng)計信息存儲在包含 128 個條目的表中。每個 TDM 端口有 32 個專用條目,每個時隙一個。抖動緩沖區(qū)狀態(tài)表存儲每個活動捆綁包的活動抖動緩沖區(qū)的統(tǒng)計信息。名為 Jitter_buffer_index 的可配置參數(shù)(位于 TSA 表中)定義表中存儲抖動緩沖區(qū)統(tǒng)計信息以及從中讀取抖動緩沖區(qū)統(tǒng)計信息的條目。
軟件根據(jù)Jitter_buffer_index訪問抖動緩沖區(qū)狀態(tài)表。狀態(tài)表包含當前抖動緩沖區(qū)狀態(tài),例如抖動緩沖器級別和狀態(tài)(例如正常、欠載或超限)。它還包含兩個變量,用于報告抖動緩沖區(qū)的最小和最大電平。這些變量為用戶提供有關(guān)網(wǎng)絡特征的信息。例如,使用這些值,用戶可以計算抖動緩沖區(qū)頂部(Rx_max_buff_size)和底部的裕量。如果有備用容量,用戶可能希望減少Rx_pdvt,以限制抖動緩沖區(qū)對傳入數(shù)據(jù)增加的延遲。
用戶應按如下方式定義Jitter_buffer_index的值:
對于 AAL1/HDLC/RAW 結(jié)構(gòu)化捆綁包,Jitter_buffer_index是接口編號 (2 Msbits) 和捆綁包中最低時隙編號的串聯(lián)。例如,如果捆綁包由第三個接口上的時隙 2、4 和 17 組成,則Jitter_buffer_index為 10_00010[bin],即 42[十六進制]。
對于非結(jié)構(gòu)化捆綁包,jitter_buffer_index是接口編號(2 Msbits)和 0 個“<>”的串聯(lián)。
對于 AAL2 捆綁包,每個時隙數(shù)據(jù)存儲在其自己的抖動緩沖區(qū)中;因此,Jitter_buffer_index是接口號(2 Msbits)和時隙號的串聯(lián)。例如,如果捆綁包由第一個接口上的時隙 2、4 和 17 組成,則有三個抖動緩沖區(qū)(每個時隙一個),Jitter_buffer_index值分別為 2[十六進制]、4[十六進制] 和 11[十六進制]。
有效負載類型的計算機通過序列號錯誤 (AAL1/RAW) 或 UUI 錯誤 (AAL2) 檢測數(shù)據(jù)包是否丟失。如果數(shù)據(jù)包丟失,調(diào)節(jié)數(shù)據(jù)將插入抖動緩沖區(qū),以補償丟失的數(shù)據(jù)并保持位完整性。簡單來說,插入抖動緩沖器的位數(shù)必須等于遠端傳輸?shù)奈粩?shù)。
如果數(shù)據(jù)包在 RAW 捆綁包中排序錯誤(例如,序列號為 N 的數(shù)據(jù)包在序列號為 N+1 的數(shù)據(jù)包之后到達),則 RAW 有效負載類型的計算機會對其進行重新排序。數(shù)據(jù)包的數(shù)據(jù)入到抖動緩沖區(qū)中的適當位置,假設此位置中的數(shù)據(jù)尚未傳輸?shù)絋DM域。
結(jié)論
抖動緩沖區(qū)臨時存儲到達的數(shù)據(jù)包,以最大程度地減少延遲變化。如果數(shù)據(jù)包到達得太晚,則它們將被丟棄。有時抖動緩沖區(qū)配置錯誤,導致它們太小或太大。如果抖動緩沖區(qū)太小,則可能會丟棄過多的數(shù)據(jù)包,這可能導致呼叫質(zhì)量下降。如果抖動緩沖區(qū)太大,則額外的延遲可能會導致會話困難。正確配置抖動緩沖器參數(shù)可避免這些欠載和超限情況。
審核編輯:郭婷
-
控制器
+關(guān)注
關(guān)注
112文章
16332瀏覽量
177803 -
緩沖器
+關(guān)注
關(guān)注
6文章
1921瀏覽量
45473 -
TDM
+關(guān)注
關(guān)注
0文章
57瀏覽量
15626
發(fā)布評論請先 登錄
相關(guān)推薦
評論