本文檔介紹了靜態和動態對映高級的使用,並引入了一項新的動態對映高級功能,該功能允許使用者配置硬集限制(稱為max-delay),以使來自非法數據機的定時偏移不會增加失控。本文也解決某些執行舊程式碼的電纜資料機可能會違反纜線資料服務介面規範(DOCSIS)的特定部分,且似乎偏離纜線資料機終端系統(CMTS)並報告大量計時偏移的問題。這可能會導致嚴重問題,因為同一上游網段上的所有其它纜線資料機都依賴於用於動態對映提前定時偏移的最遠數據機。最遠的電纜數據機似乎是欺詐數據機,可能會導致其它電纜數據機掉線或顯示效能較差。
雖然數據機供應商負責使用較新的韌體版本解決此問題,但在提供電纜數據機韌體之前,可以在CMTS上實施解決方法。因應措施是將地圖前進從動態改為靜態,以使偏移量保持合理設定。本文描述了這種解決方法的使用,並引入了一種新的動態對映高級功能,該功能允許服務提供商配置硬設定限制,這樣,如果某些數據機增加到過多的定時偏移刻度,它們就不會使所有其他數據機的效能較差(其他相容數據機不受影響)。
本文檔的讀者應瞭解以下主題:
很好地瞭解DOCSIS協定。
射頻(RF)技術方面的經驗。
使用Cisco IOS®軟體命令列體驗。
本文中的資訊係根據以下軟體和硬體版本:
Cisco uBR系列的CMTS產品,包括以下系列:
uBR10000
uBR7100
uBR7200
uBR7200VXR
Cisco IOS軟體版本12.1(10)EC1及更新版本
Cisco IOS軟體版本12.2(8)BC1及更新版本
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
如需文件慣例的詳細資訊,請參閱思科技術提示慣例。
靜態對映進步是MAP中固定的預置前瞻時間,基於任何電纜數據機允許的最長DOCSIS傳播延遲。DOCSIS將單向傳輸延遲的限制指定為小於0.8毫秒。真空中的光速為2.99×108 m/s。由於這不是真空,將此速度乘以纖芯的傳播常數的速度大約是0.67。硬線同軸電纜大約是0.87,因此光纖比同軸電纜慢。轉換為英里數並乘以0.8毫秒傳輸延遲規範,找出最遠數據機允許的光纖距離。
2.99×108 m/s × 0.67 × 0.8 × 10-3秒× 6.214×10-4 miles/m = 99.58哩
要按公里執行此計算,請執行以下操作:
2.99×108 m/s × 0.67 × 0.8 × 10-3秒= 160.26公里
這些計算就是為什麼許多人會引用100哩(或160公里)作為DOCSIS系統中最遠數據機的單向距離。靜態地圖進度的固定時間是根據下游(DS)交織所引入的延遲、處理延遲、一些緩衝延遲、以及100哩的最壞情況來計算的。這與網路中最遠的電纜數據機的當前傳播延遲無關。例如,如果您在DS上使用64-QAM的32:4交錯,則靜態對映前進為200用於處理延遲+ 980用於交錯+ 500用於緩衝區+ 1800用於工廠延遲= 3480微秒。有關這些值的解釋,請參見下一個註釋。
附註:
500微秒緩衝器是一個常數值,等於建立MAP的時間和將它傳送到物理子層(PHY)晶片的時間之間的最壞情況CMTS處理延遲。DOCSIS未規定此值,但它是思科實施的一部分。
980微秒交織延遲是從PHY晶片上接收MAP到通過線路傳送的時間。此值取決於下游調制和交錯。這是從DOCSIS RFI規範表4-11中匯出的,在我們的示例中為0.98 ms(使用64-QAM時,I=32和J=4)。
200微秒的處理延遲是一個常數值。DOCSIS強制要求電纜數據機必須在200微秒內響應MAP。
最後,1800微秒是100哩工廠(DOCSIS 1.1 section 2.1 Broadband Access Network中定義的最大工廠大小)中完整往返傳輸的最壞情況傳播延遲,並且假設最壞情況傳播為每英里8微秒,額外填充200微秒。
以下是靜態對映高級的命令語法:
cable map-advance [static]
如需其他資訊,請參閱cable ip-multicast-echo 指令。
Dynamic Map Advance是思科正在申請專利的功能,有助於在上游(美國)實現更好的每秒資料包(PPS)吞吐量效果。 該演算法根據當前與特定上游埠關聯的最遠電纜數據機自動調整MAP中的前瞻時間。理想情況下,使用Dynamic Map Advance可以顯著改善單個數據機的上行效能。有關DOCSIS效能變數和最佳化的詳細資訊,請參閱瞭解DOCSIS環境中的資料吞吐量。
以下是動態對映高級的命令語法:
cable map-advance dynamic [safety]
如需其他資訊,請參閱cable ip-multicast-echo 指令。
纜線資料機的計時偏移量是一個重要的值,表示纜線資料機、CMTS之間的實體媒體往返延遲,以及其他延遲,例如DS交織器、處理器和內部資料機計時偏移量。瞭解定時偏移值是根據最大延遲計算得出的,最大延遲基於給定網段中最遠的電纜數據機和內建數據機延遲,這一點非常重要。不同供應商的內建數據機延遲不同。以下是特定品牌的纜線資料機所執行的各種內建資料機延遲值(這不是正式清單):
纜線資料機供應商 | 內建延遲值 |
---|---|
3Com | 1200 |
外部DSLAM | 2947 |
Cisco CVA122 | 1920 |
Com21 | 1239 |
Hukk CM1000 | 2930 |
摩托羅拉衝浪板 | 2025 |
RCA | 1500 |
科學亞特蘭大 | 2950 |
特拉永 | 200 |
德州儀器 | 1800 |
東芝 | 1220 |
uBR905 | 2800 |
uBR924 | 1920 |
uBR925 | 2400 |
如果您使用的是靜態對映提前量,則所有數據機定時偏移量始終源自基於100哩的最大延遲。另一方面,動態對映高級可以瞭解某個網段中的哪種電纜數據機真正距離CMTS最遠。它更精確地匯出定時偏移,從而相應地調整MAP中的前瞻時間。CMTS和電纜數據機需要正確瞭解正確的定時偏移,以便來自電纜數據機的使用者傳輸正確同步,以在適當時間到達CMTS。以下是如何配置靜態對映高級的示例:
CMTS# configure terminal Enter configuration commands, one per line, and end with CNTL/Z. CMTS(config)# interface cable 3/0 !--- Specify cable interface. CMTS(config-if)# cable map-advance static CMTS(config-if)# end
由於靜態對映前進僅基於100哩的距離,因此對於最遠數據機的光纖距離,它可能不足或不是最佳的。如果最遠的電纜數據機實際上距離非常短(物理距離),這一點尤其重要。
如今,CMTS上較新版本的Cisco IOS軟體具有可以緩解「逃跑」或欺詐資料機問題的功能。它們將最大偏移量限製為由max-delay和安全係數定義的值。Cisco IOS軟體版本12.1(10)EC1或12.2(8)BC1和更新版本用於協助解決當某些資料機遞增為過大數字(例如20,000個計時偏移刻度)時出現的問題,並使所有其他資料機行為不佳。如前文所述,在Cisco IOS軟體版本12.1(10)EC1和12.2(8)BC1之前,解決此問題的唯一方法是禁用動態對映高級,而是實施靜態對映高級。雖然這會糾正惡意數據機,但會以可能較慢的美國吞吐量來懲罰所有其他數據機。static命令假定距離為100哩的光纖工廠,並根據該延遲設定地圖推進。前面提到的Cisco IOS軟體版本允許使用者為動態和靜態對映高級設定硬編號。因此,如果您知道最遠數據機的距離,可以計算出微秒延遲並將其放入命令中:
cable map-advance dynamic [safety] [max-delay]
或
cable map-advance static [max-delay]
一個常見的問題是「何時使用靜態對映前進,何時使用動態對映?」
Dynamic Map Advance每15分鐘輪詢最遠的數據機,檢查它是否處於離線狀態。如果它發現數據機處於離線狀態,它會輪詢下一個最遠的數據機,直到找到處於聯機狀態的數據機,然後更新動態演算法。另一方面,無論到最遠數據機的距離如何,靜態對映高級都會使用最大延遲值。在典型情況下,應始終使用動態地圖推進。
使用Dynamic Map Advance時,假定所有數據機都行為良好且從沒有無效定時偏移,則實際對映提前量將最佳化為與最遠數據機相關。但是,如果數據機有無效偏移,則對映前進將被設定為最大值。Dynamic Map Advance的優勢在於可以為美國提供更好的PPS吞吐量。
使用Static Map Advance(靜態對映前進)時,不會嘗試最佳化最遠數據機的延遲。在懷疑存在動態對映高級錯誤的情況下,此模式最可用作調試工具。
safety值控制在MAP中的額外前瞻時間量,以解釋測量系統中的任何不準確之處並解釋內部軟體延遲。如果使用更大的值,則可能會增加MAP中的運行時前瞻性,但可能會降低美國效能。因此,建議您使用預設設定。最小動態安全值為300,最大安全值為1500。預設安全值為1000,預設最大延遲值為1800。
Router(config-if)# cable map-advance dynamic 1000 1800
Cisco IOS軟體版本12.1(10)EC1或更高版本和12.2(8)BC1或更高版本在數據機首次聯機時使用初始維護定時偏移。它在初始維護(定期測距)之後使用此值而不是「定時偏移」值,這樣會隨時間遞增並導致「動態對映推進」不準確。使用最新代碼時,即使數據機增加,動態對映高級也不會受到影響,因為CMTS在初始維護後不使用定時偏移。靈活地為跟蹤目的在靜態和動態對映提前中設定最大延遲也是有利的,如在Modems That Exceeded Them Max Timing Offset After Setting Limits on Round Trip Delay一節中解釋的。將300作為緩衝器新增到最大延遲數也是有利的。
以下舉例說明以下情境的組態,其中整個上游的最遠資料機距離CMTS約25哩:
CMTS# configure terminal Enter configuration commands, one per line, and end with CNTL/Z. CMTS(config)# interface cable 3/0 !--- Specify cable interface. CMTS(config-if)# cable map-advance dynamic 500 700
在該配置示例中,使用500微秒的安全性和400微秒的往返最大延遲。由於數據機相距25哩,每哩的光纖都會導致大約16微秒的往返延遲,因此最大延遲為16 × 25,即大約400微秒。此外,還新增300以計算數據機內建偏移。如果知道大致的距離,則可以將16倍的光纖英里數(單向)乘以10倍的光纖公里數。在典型的混合光纖同軸電纜(HFC)設計中,與光纖距離和延遲相比,同軸長度可以忽略。
如果您知道dB損耗而不是距離,則可以使用1310 nm處的28倍dB損耗或使用1550 nm處的45倍dB損耗。這些數值是根據光纖在1310nm處的每公里損耗為0.35dB,在1550nm處的每公里損耗為0.22dB而得出的。確保損耗來自光纖,不包括耦合器和接頭帶來的被動損耗。以下是這些等式的摘要:
1 /(往返時為2.99 × 108 m/s × 0.67 × 6.214×10-4英里/米× 2)= 16微秒/英里
每英里16微秒/(5280英尺/英里× 0.3048米/英尺)× 1000米/公里= 9.94微秒/公里
9.94微秒/千米/0.35 dB/千米= 28.4微秒/dB @1310 nm
9.94微秒/千米/0.22 dB/千米= 45.18微秒/dB @1550 nm
Timing Offset刻度從CMTS介面配置中的設定以及其他延遲(如DS交織器、處理器和內部數據機定時偏移編號)中計算。如果某個故障數據機持續增加其時間調整數,它最終會達到「上限」(容量),並停留在那裡,並標有! 二十四小時。
從前面提到的cable map-advance dynamic 500 700的示例中,定時偏移等於700 × 64 / 6.25,即大約7168個定時偏移刻度。show cable modem命令會顯示以下輸出:
Interface Prim Online Timing Rec QoS CPE IP address MAC address Sid State Offset Power Cable3/0/U4 2 online !5570 0.25 5 1 10.125.16.38 0020.4026.b65c Cable3/0/U4 15 online 4967 -0.75 5 1 10.125.16.20 0010.9510.1873 Cable3/0/U4 10 online !7168 -0.25 5 1 10.125.16.15 0004.bdef.5dda
感歎號(!))是在輸出中表示有關特定纜線資料機關注資訊的標誌。安! 在Rec Power(接收功率)列中,是電纜數據機將其功率級別提高到最大傳輸級別的警報。思科纜線資料機的最大傳輸功率約為61 dBmV。可以對此進行監控,以檢視返迴路徑中是否存在任何潛在問題。
安! 在Timing Offset列中顯示,特定纜線資料機已超出與max-delay設定700微秒(在此情況中)相關的最大定時偏移容量。 如果最遠的電纜數據機出現問題(例如,它離線),CMTS每15分鐘掃描一次,檢視最遠的電纜數據機是否聯機。如果處於離線狀態,CMTS將查詢下一個具有最大最大延遲的最佳候選。稍後,當數據機使用有效的定時偏移重新調整範圍時,您仍會看到! 通知您在過去二十四小時內的某個時間內,此數據機超過了最大定時偏移。
下一個示例輸出來自show controllers命令,該命令有良好的讀數,因為它低於7168定時偏移刻度的容量。一個錯誤的讀取示例如下所示。show controllers cablex/y upstream z中顯示的計時偏移量列出該上游埠上所有數據機的最大計時偏移,即使為整個MAC域排程MAP也是如此。如果要重置定時偏移,請關閉,然後不關閉美國埠。show cable modem命令中的Timing Offset顯示每個單獨的電纜數據機的當前維護定時偏移。
CMTS# show controllers cable3/0 upstream 4 Cable3/0 Upstream 4 is up Frequency 25.008 MHz, Channel Width 1.600 MHz, QPSK Symbol Rate 1.280 Msps Spectrum Group is overridden SNR 38.620 dB Nominal Input Power Level 0 dBmV, Tx Timing Offset 5570 (Time Offset Ticks) Ranging Backoff automatic (Start 0, End 3) Ranging Insertion Interval automatic (60 ms) Tx Backoff Start 0, Tx Backoff End 4 Modulation Profile Group 1 Concatenation is enabled part_id=0x3137, rev_id=0x03, rev2_id=0xFF nb_agc_thr=0x0000, nb_agc_nom=0x0000 Range Load Reg Size=0x58 Request Load Reg Size=0x0E Minislot Size in number of Timebase Ticks is = 8 Minislot Size in Symbols = 64 Bandwidth Requests = 0x4BF Piggyback Requests = 0x0 Invalid BW Requests= 0x0 Minislots Requested= 0x161FD Minislots Granted = 0x161FD Minislot Size in Bytes = 16 Map Advance (Dynamic) : 2224 usecs !--- Takes into account the Timing Offset ticks and other processing delays. UCD Count = 609
以下是使用舊版Cisco IOS軟體的show controllers命令輸出不良的範例,因為它的容量高於7168計時偏移刻度數:
CMTS# show controllers cable3/0 upstream 4 Cable3/0 Upstream 4 is up Frequency 26.000 MHz, Channel Width 1.6 MHz, QPSK Symbol Rate 1.280 Msps Spectrum Group is overridden SNR 35.1180 dB Nominal Input Power Level 0 dBmV, Tx Timing Offset 35671 Ranging Backoff automatic (Start 0, End 3) Ranging Insertion Interval automatic (270 ms) Tx Backoff Start 0, Tx Backoff End 4 Modulation Profile Group 1 Concatenation is enabled part_id=0x3137, rev_id=0x03, rev2_id=0xFF nb_agc_thr=0x0000, nb_agc_nom=0x0000 Range Load Reg Size=0x58 Request Load Reg Size=0x0E Minislot Size in number of Timebase Ticks is = 8 Minislot Size in Symbols = 64 Bandwidth Requests = 0x5BE40B3 Piggyback Requests = 0x7042B0B Invalid BW Requests= 0x11A3E Minislots Requested= 0x55DF81D2 Minislots Granted = 0x55DF81B0 Minislot Size in Bytes = 16 Map Advance (Dynamic) : 2853 usecs !--- show cable modem lists Current Timing Offset while !--- the Map Advance is based on the Initial Timing Offset. UCD Count = 832662 DES Ctrl Reg#0 = C000C043, Reg#1 = 0
Tx定時偏移不應高於大約18,000個定時偏移刻度。如果是,則表示最遠的數據機位於100哩以外。
show cable modem命令會顯示以下輸出:
Interface Prim Online Timing Rec QoS CPE IP address MAC address Sid State Offset Power Cable3/0/U4 2 online !5570 0.25 5 1 10.125.16.38 0020.4026.b65c Cable3/0/U4 15 online !4967 -0.75 5 1 10.125.16.20 0010.9510.1873 Cable3/0/U4 17 online 5393 -0.25 5 1 10.125.16.13 0020.405b.a234 Cable3/0/U4 18 online 5064 0.00 5 1 10.125.16.18 0004.753c.318c Cable3/0/U4 10 online !7168 -0.25 5 1 10.125.16.15 0004.bdef.5dda
如果使用安全值為500、最大延遲值為700的dynamic命令,則容量大約等於7168刻度。前面的show命令表示曾一度有三個資料機超出容量,因為它們被標籤為!.建議您使用數據機的MAC地址來識別這些可能損壞的數據機,以便更新其代碼或替換它們。
show cable modem [mac-address] verbose命令顯示當前定時偏移和初始定時偏移:
CMTS# show cable modem 0004.bdef.5dda verbose MAC Address : 0004.bdef.5dda IP Address : 10.125.16.15 Prim Sid : 10 Interface : C3/0/U4 Upstream Power : 0 dBmV (SNR = 36.66 dBmV) Downstream Power : 0 dBmV (SNR = ----- dBmV) Timing Offset : !7168 Initial Timing Offset : 6498 Received Power : -0.25 MAC Version : DOC1.1 Provisioned Mode : DOC1.1 Capabilities : {Frag=Y, Concat=Y, PHS=Y, Priv=BPI+} Sid/Said Limit : {Max Us Sids=4, Max Ds Saids=0} Optional Filtering Support : {802.1P=N, 802.1Q=N} Transmit Equalizer Support : {Taps/Symbol= 1, Num of Taps= 8} Number of CPE IPs : 0(Max CPE IPs = NO LIMIT) CFG Max-CPE : 1 Flaps : 4(Mar 1 00:04:17) Errors : 0 CRCs, 0 HCSes Stn Mtn Failures : 0 aborts, 1 exhausted Total US Flows : 2(2 active) Total DS Flows : 1(1 active) Total US Data : 33 packets, 15364 bytes Total US Throughput : 0 bits/sec, 0 packets/sec Total DS Data : 5 packets, 468 bytes Total DS Throughput : 0 bits/sec, 0 packets/sec Active Classifiers : 1 (Max = NO LIMIT)
最後,以下是從不同路由器發出show cable modem [mac-address] detail命令的輸出示例,其中顯示了運行EC代碼時顯示的初始和定期計時偏移:
CMTS# show cable modem 0003.e3fa.5e8f detail Interface : Cable4/0/U0 Primary SID : 8 MAC address : 0003.e3fa.5e8f Max CPEs : 1 Concatenation : yes Receive SNR : 23.43 Initial Timing : 2738 Periodic Timing : 2738
問:如果容量設定為最大工廠延遲的700微秒,並且數據機增量為10000滴答,它是否離線?
A.計算的發卡容量約為7168張。數據機可能離線,也可能不會離線。它可能認為MAPs太遲,但也可能使用它的內部偏移來調整實際傳輸時間,而不認為MAPs太遲。
問:如果行為不當的電纜數據機保持聯機,CMTS如何知道哪個數據機用於更新的定時偏移?
A. CMTS使用容量值(最大延遲),因為它無法真正知道。然而,現在代碼基於初始測距計算定時偏移,因此這不是問題。這意味著當數據機首次聯機進行初始維護時,CMTS會記錄所有定時偏移,並根據記錄的最大定時偏移設定動態對映前進。即使某些數據機增加,動態對映前進仍保持原始定時偏移。CMTS只在具有更大定時偏移的新數據機聯機時更新該特定上游的動態對映前移。
問:CMTS是否忽略所有達到容量的數據機?
A.CMTS會忽略所有數據機,因為它使用數據機首次聯機時的初始維護定時偏移量,而不是初始維護後的「定時偏移」值,該值可以隨時間遞增。
問:當CMTS中最遠的電纜數據機出現負定時偏移時,會發生什麼情況?
A.負定時偏移可以在正確的時間之前傳送初始測距請求。這種早期傳送可能干擾由另一數據機傳送的資料。因此,初始測距請求和其它數據機傳送的資料都可能會損壞。顯示負定時偏移的電纜數據機可以每隔幾秒傳送一次初始測距請求,該請求會覆蓋其它數據機的有效資料傳輸。有關負定時偏移量的詳細資訊,請參閱為什麼某些纜線資料機顯示負定時偏移?
DS交織對於地圖的推進有何意義?
A.交織器的設定對總延遲具有顯著影響。預設值和推薦值為32。增加交織器時,可以提高雜訊穩定性,但還可以增加延遲,因為它會增加請求和授予往返時間(RTT)。 當RTT增大時,它可能從每一個其他的MAP機會到每第三個或第四個MAP。如果將此數字減小到較小的值,它實際上可以縮短MAP資料包的傳輸(分配上游傳輸機會)與它在電纜數據機上的接收之間的時間。這提高了效能。然而,隨著交織器的減小,下游的雜訊穩定性也降低;因此,請確保您具有好的載波雜訊比。有關詳細資訊,請參閱瞭解DOCSIS環境中的資料吞吐量。
在原始代碼中,「動態」地圖的推進的全部目的是幫助使用者避免計算所有電纜的長度和在工廠中的傳播延遲。CMTS知道工廠大小,因為它檢視數據機的定時偏移,並選擇最大偏移作為所需的地圖進度的度量。
原始代碼使用定期測距來測量定時偏移。遺憾的是,有些數據機不符合DOCSIS,並且並不總是響應CMTS的時間調整。因此,它們的偏移量會遞增到無窮大,因此地圖也會隨之前進。發生這種情況是因為DOCSIS的工作方式。計時調整是增量調整(+1/-1),如果數據機沒有響應(或響應太慢),CMTS將繼續傳送越來越多的調整。
在某些環境中,可能沒有不相容的數據機,因此如果將對映高級配置保留為預設設定,則不會出現問題。在Cisco IOS軟體版本12.2(8)BC1或更新版本中,計時偏移量計算僅基於初始距離。這比定期測距更可靠,並且減少了使用除預設設定以外的值的需要:cable map-advance dynamic 1000 1800。