本文档介绍使用静态和动态映射高级,并引入了新的动态映射高级功能,该功能允许用户配置硬设置限制(称为最大延迟),以便来自非法调制解调器的定时偏移不会增加失控。本文档还讨论一些运行旧代码的电缆调制解调器可能违反有线数据服务接口规范(DOCSIS)的某些部分,并且可能似乎偏离有线调制解调器终端系统(CMTS)并报告大量定时偏移的问题。这可能会导致严重问题,因为同一上游网段上的所有其他电缆调制解调器都依赖于最远的调制解调器来获取动态映射高级定时偏移。最远的电缆调制解调器似乎是非法调制解调器,这可能导致其他电缆调制解调器脱机或性能不佳。
虽然调制解调器供应商有责任通过更新的固件版本解决此问题,但在提供电缆调制解调器固件之前,可以在CMTS上实施解决方法。解决方法是将地图从动态切换为静态,以将偏移量保持为合理设置。本文档介绍此解决方法的使用,并引入了新的动态映射高级功能,该功能允许服务提供商配置硬设置限制,以便某些调制解调器因计时偏移时间过长而增加,不会导致所有其他调制解调器表现不佳(其他兼容调制解调器不受影响)。
本文档的读者应掌握以下这些主题的相关知识:
充分了解DOCSIS协议。
在射频(RF)技术方面的经验。
体验Cisco IOS®软件命令行。
本文档中的信息基于以下软件和硬件版本:
思科uBR系列CMTS产品,包括以下系列:
uBR10000
uBR7100
uBR7200
uBR7200VXR
思科IOS软件版本12.1(10)EC1及更高版本
思科IOS软件版本12.2(8)BC1及更高版本
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
有关文件规则的更多信息请参见“ Cisco技术提示规则”。
静态映射高级是MAP中基于任何电缆调制解调器允许的最远DOCSIS传播延迟的固定预设前瞻时间。DOCSIS将单向传输延迟的限制指定为小于0.8毫秒。真空下光速为2.99×108m/s。由于这不是真空,将此速度乘以纤芯的传播速度常数,即0.67。硬线同轴电缆约为0.87,因此光纤比同轴电缆慢。转换为英里并乘以0.8毫秒传输延迟规范,以查找最远调制解调器允许的光纤距离。
2.99×108 m/s × 0.67 × 0.8 × 10-3秒× 6.214×10-4英里/m = 99.58英里
要以公里为单位执行此计算:
2.99×108米/秒× 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和在线上发送MAP之间的时间。此值取决于下行调制和交织。这源于DOCSIS RFI规范表4-11,在本例中为0.98 ms(对于I=32,使用64-QAM的J=4)。
200微秒的处理延迟是恒定值。DOCSIS要求电缆调制解调器必须在200微秒内响应MAP。
最后,1800微秒是100英里工厂中完整往返传输的最坏情况传播延迟(DOCSIS 1.1第2.1节宽带接入网络中定义的最大设备大小),并假设最坏情况传播为每英里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 |
思科CVA122 | 1920 |
Com21 | 1239 |
哈克CM1000 | 2930 |
Motorola冲浪板 | 2025 |
RCA | 1500 |
Scientific Atlanta | 2950 |
特瑞洋 | 200 |
德克萨斯仪器 | 1800 |
东芝 | 1220 |
uBR905 | 2800 |
uBR924 | 1920 |
uBR925 | 2400 |
如果使用静态映射高级,所有调制解调器计时偏移始终从基于100英里的最大延迟得出。另一方面,Dynamic Map Advance可以了解网段中哪个电缆调制解调器离CMTS最远。它更精确地导出定时偏移,以相应地调整MAP中的预视时间。CMTS和电缆调制解调器需要准确了解正确的定时偏移,以便正确同步来自电缆调制解调器的US传输,以在适当的时间到达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软件具有可缓解“离开”或欺诈调制解调器这一问题的功能。它们将最大偏移限制为由最大延迟和安全系数定义的值。Cisco IOS软件版本12.1(10)EC1或12.2(8)BC1及更高版本用于帮助解决某些调制解调器增加到过多数(如20,000计时偏移滴答)并导致所有其他调制解调器表现不佳时出现的问题。如前所述,在Cisco IOS软件版本12.1(10)EC1和12.2(8)BC1之前解决此问题的唯一方法是禁用动态映射高级,而实施静态映射高级。虽然这会纠正非法调制解调器,但会损害所有其它调制解调器的US吞吐量可能较慢。static 命令假设距离为100英里光纤设备,并根据该延迟设置映射前进。前面提到的Cisco IOS软件版本允许用户为动态和静态映射高级输入硬设置编号。因此,如果您知道最远调制解调器的距离,您可以计算出微秒延迟并将其放入命令:
cable map-advance dynamic [safety] [max-delay]
或
cable map-advance static [max-delay]
一个常见问题是“我何时使用静态映射?何时使用动态映射?”
动态映射高级每15分钟轮询一次最远的调制解调器,以检查它是否离线。如果它发现调制解调器处于脱机状态,它会轮询下一个最远的调制解调器,直到找到一个处于联机状态的调制解调器,然后更新动态算法。另一方面,静态映射高级使用最大延迟值,而不考虑距离最远调制解调器的距离。在典型情况下,请始终使用动态映射高级。
使用Dynamic Map Advance时,实际映射高级会优化为与最远的调制解调器关联,假设所有调制解调器都运行良好,且从来没有无效的定时偏移。但是,如果调制解调器有无效的偏移,则映射前进设置为最大值。Dynamic Map Advance的优势在于,它可以在美国提供更好的PPS吞吐量。
使用静态映射高级,不会尝试优化到最远调制解调器的延迟。在怀疑存在动态映射高级错误时,此模式作为调试工具非常有用。
安全值控制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在初始维护后不使用计时偏移。此外,还有利于灵活地设置静态和动态映射高级中的最大延迟,以便进行跟踪,如调制解调器在设置往返延迟限制后超出其最大定时偏移。将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损耗。这些数字是从已知的1310 nm光纤每公里损耗为0.35 dB和1550 nm光纤每公里损耗为0.22 dB得到的。确保损耗来自光纤,且不包括来自耦合器和接头的无源损耗。以下是这些公式的总结:
1 /(2.99 × 108 m/s × 0.67 × 6.214×10-4英里/m × 2用于往返)= 16微秒/英里
16微秒/英里/(5280英尺/英里× 0.3048米/英尺)× 1000米/km = 9.94微秒/km
9.94微秒/km / 0.35 dB/km = 28.4微秒/dB @1310 nm
9.94微秒/km / 0.22 dB/km = 45.18微秒/dB @1550 nm
定时偏移计数根据CMTS接口配置中的设置和诸如DS交织器、处理器和内部调制解调器定时偏移数等其他延迟计算。如果一个错误的调制解调器不断增加其时间调整,它最终会达到“cap”(容量),并保留在那里,并标有! 24小时。
根据前面提到的电缆映射高级动态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列中显示,特定电缆调制解调器已超过与最大延迟设置700微秒(在此场景中)相关的最大时钟偏移容量。 如果最远的电缆调制解调器出现问题(例如,它脱机),CMTS每15分钟扫描一次,看最远的电缆调制解调器是否在线。如果它处于脱机状态,CMTS将找到具有最大最大延迟的下一最佳候选。稍后,当调制解调器使用有效的定时偏移重新定位时,您仍会看到! 通知您此调制解调器在过去24小时内的某个时间超过其最大计时偏移。
下一个示例输出来自读数良好的show controllers命令,因为该命令的容量低于7168 Timing Offset嘀克数。后面显示了一个错误读数的示例。show controllers cablex/y upstream z中显示的Timing Offset列出该上游端口上所有调制解调器中最高的Timing Offset,即使MAP已计划用于整个MAC域。如果要重置计时偏移,请关闭,然后不关闭US端口。show cable modem命令中的Timing Offset(计时偏移)显示每个单个电缆调制解调器的当前维护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 Timing Offset计时器的计数:
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
如果使用dynamic 命令,安全性为500,最大延迟为700,则容量将等于7168滴答。上一个show命令表示,有三个调制解调器一次超过容量,因为它们标有!。建议您通过这些潜在的错误调制解调器的MAC地址来识别它们,以便您可以更新它们的代码或替换它们。
show cable modem [mac-address] verbose命令显示当前Timing Offset和Initial Timing Offset:
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。调制解调器可能脱机,也可能不脱机。它可能认为MAP太迟,但它也可能使用其内部偏移来调整实际传输时间,而不会认为MAP太迟。
问:如果电缆调制解调器行为不当,CMTS如何知道哪个调制解调器用于更新的计时偏移?
答:CMTS使用容量值(最大延迟),因为它不能真正知道。但是,现在代码将计时偏移计算建立在初始测距的基础上,这就不是什么问题了。这意味着,当调制解调器首次在其初始维护中联机时,CMTS会记录所有Timing Offset,并根据记录的最大Timing Offset设置Dynamic Map Advance。即使某些调制解调器增加,动态映射高级仍保持在原始定时偏移。CMTS仅在具有较大计时偏移的新调制解调器上线时,才会更新该特定上游的动态映射高级。
问:CMTS是否会忽略所有已达到该容量的调制解调器?
答:CMTS会忽略所有调制解调器,因为它在调制解调器首次联机时使用初始维护定时偏移值,而不是初始维护后的定时偏移值,该值可随时间递增。
问:当距离CMTS最远的电缆调制解调器显示负定时偏移时,会发生什么情况?
A.负定时偏移可以在正确的时间之前发送初始测距请求。这种早期传输可能会干扰另一调制解调器传输的数据。因此,初始测距请求和其他调制解调器发送的数据都可能损坏。显示负定时偏移的电缆调制解调器可以每隔几秒钟传输一次初始测距请求,该请求会覆盖来自其他调制解调器的有效数据传输。有关负定时偏移的详细信息,请参阅为什么某些电缆调制解调器显示负时间偏移?
问:DS交织器对地图进展有何意义?
Interleaver设置对总延迟有显着影响。默认值和建议值为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。