电缆调制解调器的时间偏移(也称为测距偏移)是指示电缆调制解调器端接系统(CMTS)与连接的电缆调制解调器之间往返延迟的值。当电缆调制解调器联机时,此值由CMTS和电缆调制解调器计算,作为初始测距过程的一部分。CMTS和电缆调制解调器必须准确了解正确的时间偏移,以便电缆调制解调器在适当的时间到达CMTS时能正确同步上行传输。
某些电缆调制解调器在执行初始测距时可能违反DOCSIS规范的某些部分,并可能产生比实际值小得多的负时间偏移或时间偏移。当电缆调制解调器显示零或负定时偏移时,它不完全符合DOCSIS,并且由于调制解调器错误地缓存了上次使用的定时偏移、离线,然后在重新建立注册时重新使用该定时偏移。本文档介绍了此问题的原因和建议的操作步骤。请务必注意,问题的原因是电缆调制解调器的行为,而不是CMTS。
在CMTS上配置cable interface命令cable map-advance static可以解决问题的大多数有害影响,但电缆调制解调器供应商负责通过提供较新版本的电缆调制解调器固件来实际解决负定时偏移问题。
读者必须具备DOCSIS的一些基本知识,并了解电缆调制解调器连接CMTS必须完成的测距过程。
本文档不限于特定的软件和硬件版本。
时间偏移(表示CMTS和电缆调制解调器之间的往返延迟)通常由四个主要因素决定:
电缆调制解调器与CMTS的物理距离
下行调制方案与交织深度
上行调制方案与信道宽度
电缆调制解调器和固件的型号
您可以通过在特定电缆调制解调器所连接的CMTS上执行show cable modem命令来查看该调制解调器的时间偏移值。以下是典型系统中此命令的输出示例。
CMTS# show cable modem Interface Prim Online Timing Rec QoS CPE IP address MAC address Sid State Offset Power Cable3/0/U0 2 online 3011 0.75 5 0 10.1.1.52 0001.9659.4461 Cable3/0/U0 3 online 2647 0.50 7 0 10.1.1.40 0001.9659.5370 Cable3/0/U0 4 online 3011 0.25 5 0 10.1.1.48 0001.9659.4415 Cable3/0/U0 5 online 3007 0.25 6 0 10.1.1.11 0001.9659.43fd
时间偏移以DOCSIS刻度的1/64为单位报价。刻度线定义为6.25微秒,使一个时间偏移单位等于97.65625纳秒。
时间偏移作为初始测距过程的一部分计算,电缆调制解调器必须完成该过程才能连接到CMTS。初始测距过程中导出时间偏移的部分如下图1所示。请注意,此图遗漏了与本文档无关的初始范围的几个组件。
图 1
在图1中,我们有两个时间表。顶部时间线根据CMTS显示系统时间戳。底部时间线根据电缆调制解调器显示系统时间戳。为简单起见,我们从0开始这条时间线,我们使用虚时单位。请注意,电缆调制解调器最初不知道系统时间戳是什么。
电缆调制解调器必须等到收到CMTS发送的SYNC消息时,系统时间戳正确,才能知道当前时间戳是什么。请注意,由于SYNC消息遇到传播延迟,当电缆调制解调器听到SYNC消息指出系统时间戳为0时,CMTS的时间戳已增加到3。
图中的下一条消息是MAP消息,它命令电缆调制解调器在时间戳9发送初始测距请求。由于电缆调制解调器不知道CMTS上何时出现时间戳9,因此它必须根据自己的时钟在时间戳9发送初始测距请求。
CMTS希望初始测距请求可以在CMTS时间戳9和16之间的任何时间到达。分配给接收初始测距请求的时间称为初始测距间隔,需要足够大以适应CMTS和电缆调制解调器之间在电缆设备最远点的传播延迟。
当其内部时间戳为"9"时,电缆调制解调器发送其初始测距请求,但当初始测距请求到达CMTS时,CMTS的时间戳为15。这意味着CMTS可以将此电缆调制解调器的时间偏移计算为15 - 9 = 6个单位。
CMTS通过发送测距响应消息将此时间偏移值传送到电缆调制解调器。电缆调制解调器收到此消息后,可以将适当的时间偏移添加到任何将来发送到CMTS的消息。
在下面的图2中,我们看到,从现在开始,当CMTS命令电缆调制解调器以特定时间戳传输某些数据时,调制解调器会考虑时间偏移。在图中,MAP消息从CMTS发送到电缆调制解调器,要求它在时间戳70传输一些数据。如果电缆调制解调器将时间偏移量计入6,则意味着电缆调制解调器在时间戳70 - 6 = 64传输其数据。请注意,传输到CMTS的时间戳70。
图 2
当电缆调制解调器因任何原因从在线状态转换到离线状态时,它必须重新执行初始测距以重新连接到CMTS。某些电缆调制解调器在此过程中会“作弊”,因为当它们第二次上线时,会记住它们的原始定时偏移。尽管人们可能认为作弊会加快初始测距时间,但实际上这并不能缩短调制解调器返回在线状态所需的时间。事实上,如果初始测距数据包对CMTS来说“太早”,来自另一个调制解调器的数据将丢失,并且尝试重新连接的CM将不会成功。如果初始测距数据包恰好到达测距机会的开始位置,CMTS会看到时间偏移为零,但无法提供更好的连接机会。
本节介绍这些电缆调制解调器在上线时如何违反DOCSIS规范的详细信息。
图3显示了调制解调器在执行初始测距时记住其原始时间偏移的事件顺序。在此图中,我们假设CMTS和电缆调制解调器之间的传播延迟在调制解调器离线和尝试重新联机之间保持不变。
图 3
在图中,电缆调制解调器被告知在时间戳8发送初始测距请求。由于电缆调制解调器记住其先前的时间偏移,因此它决定在时间88 - 6 = 82发送测距请求。这意味着来自电缆调制解调器的初始测距请求在时间戳88到达CMTS。因此,CMTS会认为此电缆调制解调器的时间偏移为零。在以下show cable modem输出中,MAC地址为00ff.de4d.b3ef的调制解调器显示这种行为。
CMTS# show cable modem Interface Prim Online Timing Rec QoS CPE IP address MAC address Sid State Offset Power Cable3/0/U0 2 online 3011 0.75 5 0 10.1.1.52 0001.9659.4461 Cable3/0/U0 3 online 2647 0.50 7 0 10.1.1.40 0020.4001.5370 Cable3/0/U0 4 online 0 0.00 5 0 10.1.1.57 00ff.de4d.b3ef Cable3/0/U0 5 online 3011 0.25 5 0 10.1.1.48 0001.9659.4415
众所周知,HFC网络的传播延迟或延迟定义为光通过光纤的速度以及从CMTS到调制解调器和从调制解调器到回的同轴距离。此速度与温度有关,在HFC网络中常见的长距离传输,以及非常精细的计时分辨率,每天会因数百个计时器而异。如果上游或下游路径的传播延迟或延迟在调制解调器脱机后尝试重新联机之间发生变化,则调制解调器记住的时间偏移将无效。如果传播延迟增加,则调制解调器重新联机时的事件顺序可能与图4所示的顺序类似。
图 4
在图4中,CMTS认为电缆调制解调器的计时偏移为2。这表示在show cable modem输出中报告的计时偏移显示的时间小于可能的最小往返时间的实际场景。如果电缆调制解调器报告的定时偏移显着小于1000,则其行为可能与图4中的电缆调制解调器类似。在下面的show cable modem中,输出MAC地址为00ff.de4d.b3ef的调制解调器显示这种行为。
CMTS# show cable modem Interface Prim Online Timing Rec QoS CPE IP address MAC address Sid State Offset Power Cable3/0/U0 2 online 3011 0.75 5 0 10.1.1.52 0001.9659.4461 Cable3/0/U0 3 online 2647 0.50 7 0 10.1.1.40 0020.4001.5370 Cable3/0/U0 4 online 35 0.00 5 0 10.1.1.57 00ff.de4d.b3ef Cable3/0/U0 5 online 3011 0.25 5 0 10.1.1.48 0001.9659.4415
另一种可能情况是,在调制解调器离线和尝试重新联机之间,CMTS和电缆调制解调器之间路径的传播延迟略有下降。如图 5 所示。
图 5
在图5中,电缆调制解调器的测距请求由CMTS在时间戳86(初始测距间隔开始之前为2个单位)处接收。假设CMTS仍能接收和解释此测距请求,CMTS会认为电缆调制解调器的定时偏移为负2。这表示在show cable modem输出中报告的定时偏移为负数的真实场景。在以下show cable modem 中,输出MAC地址为00ff.de4d.b3ef的调制解调器显示这种行为。
CMTS# show cable modem Interface Prim Online Timing Rec QoS CPE IP address MAC address Sid State Offset Power Cable3/0/U0 2 online 3011 0.75 5 0 10.1.1.52 0001.9659.4461 Cable3/0/U0 3 online 2647 0.50 7 0 10.1.1.40 0020.4001.5370 Cable3/0/U0 4 online -93 0.00 5 0 10.1.1.57 00ff.de4d.b3ef Cable3/0/U0 5 online 3011 0.25 5 0 10.1.1.48 0001.9659.4415
由产生负时间偏移或无效时间偏移的调制解调器引起的主要问题是对动态映射高级算法的中断,该算法在运行12.0(9)SC、12.1(2)EC1、12.1(1a)和12.1(1a)T以后的Cisco CMTS产品上默认启用。
动态映射高级算法通过动态确定最远的电缆调制解调器与CMTS的时间偏移,显着提高了电缆调制解调器的上行性能。通过使用此信息,CMTS能够减少电缆调制解调器请求上游带宽与CMTS实际将此带宽分配给电缆调制解调器的时间之间的延迟。
图6显示了动态映射高级算法如何使用最大计时偏移。每个电缆调制解调器的往返延迟如图所示。通过查看每个调制解调器报告的时间偏移,CMTS能够计算最远调制解调器的时间偏移。
单击图6查看动态映射高级算法如何使用最大计时偏移。
如果距离CMTS最远的电缆调制解调器出现负时间偏移问题,则CMTS会认为此电缆调制解调器与CMTS的距离比实际更近。换句话说,show cable modem输出中此调制解调器的时间偏移将远小于实际值。这意味着当Dynamic Map-Advance算法计算所有电缆调制解调器的最大往返延迟时,将不能正确考虑调制解调器与CMTS的真实距离。这会导致此最远调制解调器的连接问题。
图7显示了系统中最远的电缆调制解调器的时间偏移不正确的情况。即使最远调制解调器的实时偏移是30,报告的时间偏移是–2。这意味着动态映射高级算法会认为系统中最远的调制解调器是时间偏移为20的调制解调器。这会使系统中最远的调制解调器超出动态映射高级截止点。
单击此处将图7视为视频。
12.0(10)SC、12.1(2)EC1、12.1(2)和12.1(2)T之后的Cisco IOS软件版本具有保护动态映射高级算法免受具有负时间偏移的电缆调制解调器影响的机制。当电缆调制解调器以负时间偏移联机时,CMTS将记录以下格式的错误消息:
%UBR7200-4-BADTXOFFSET: Bad timing offset -2 detected for cable modem 00ff.0bad.caf3
如果CMTS上显示此消息,您应联系调制解调器供应商并请求提供不显示问题的固件版本。
为确保出现负时间偏移问题的电缆调制解调器保持连接,可能需要关闭动态映射高级算法,直到连接到CMTS的所有电缆调制解调器都运行符合DOCSIS的固件。要在特定下游端口上禁用动态映射高级,请在CMTS上输入以下命令。
CMTS# conf t Enter configuration commands, one per line. End with CNTL/Z. CMTS(config)# interface cable 3/0 !--Specify the Cable interface affected CMTS(config-if)# cable map-advance static CMTS(config-if)# end CMTS#
为了确认已关闭动态映射高级,请在show controller cable X/Y upstream Z的输出中查找Map Advance(Static)行,其中X/Y是电缆下游端口号,Z是活动上游端口。
CMTS# show controller cable 3/0 upstream 0 Cable3/0 Upstream 0 is up Frequency 25.008 MHz, Channel Width 1.600 MHz, QPSK Symbol Rate 1.280 Msps Spectrum Group is overridden SNR 33.640 dB Nominal Input Power Level 1 dBmV, Tx Timing Offset 2817 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 = 0x2F Piggyback Requests = 0x22 Invalid BW Requests= 0x0 Minislots Requested= 0x50D Minislots Granted = 0x50D Minislot Size in Bytes = 16 Map Advance (Static) : 3480 usecs UCD Count = 122 DES Ctrl Reg#0 = C000C043, Reg#1 = 0
请注意,一旦停用动态映射高级,您仍可能收到BADTXOFFSET错误消息,但电缆调制解调器应能保持连接。
如图5所示,显示负时间偏移的电缆调制解调器可以在正确时间之前发送初始测距请求。这些早期传输可能会干扰另一电缆调制解调器发送的数据。这意味着初始测距请求和其他电缆调制解调器发送的数据都将损坏并丢失。
最坏的情况是,显示负时间偏移的电缆调制解调器将每隔几秒钟传输一次初始测距请求,该请求会覆盖从另一个调制解调器传输的有效数据。以这种方式工作的调制解调器可能不会出现严重问题,但若干调制解调器以这种方式工作,则可能导致大量数据丢失。
解决此问题的唯一方法是联系您的电缆调制解调器供应商并获取不受负时间偏移问题影响的固件版本。在CMTS上无法配置任何内容来避免此问题。
负时间偏移的一个非常罕见的替代原因是两个或多个CMTS设备提供公共电缆段。如果为特定电缆段设置两个CMTS的上行频率设置相同,则一个CMTS可能会“过听”来自连接到另一个CMTS的电缆调制解调器的初始测距请求。此初始测距请求可以在初始测距间隔内随机听到,因此,将为电缆调制解调器计算无效的时间偏移。
此问题的典型症状是show cable modem命令将显示许多处于脱机或init(r1)状态的电缆调制解调器,其时间偏移为负、非常小的正或非常大。在下面的示例输出中,属于此类别的调制解调器以粗体显示。
CMTS# show cable modem Interface Prim Online Timing Rec QoS CPE IP address MAC address Sid State Offset Power Cable3/0/U0 1 online 2801 -0.50 5 0 10.1.1.44 0001.9607.3831 Cable3/0/U0 2 offline 103 0.75 5 0 10.1.1.52 0001.9659.4461 Cable3/0/U0 3 online 2647 0.50 7 0 10.1.1.40 0020.4001.5370 Cable3/0/U0 4 init(r1) -93 0.00 5 0 10.1.1.57 00ff.de4d.b3ef Cable3/0/U0 5 online 3091 0.25 5 0 10.1.1.48 0001.9659.4415 Cable3/0/U0 6 online 2811 1.25 5 0 10.1.1.24 0002.fdfa.0a35 Cable3/0/U0 7 offline 17291 1.00 5 0 10.1.1.33 0050.7366.1fb9 Cable3/0/U0 8 online 2816 1.00 5 0 10.1.1.11 0001.9659.43fd
带SID 2的调制解调器显示的定时偏移显着小于1000,带SID 4的调制解调器显示的是负的时间偏移,带SID 7的调制解调器显示的定时偏移大于大多数调制解调器。
解决此问题的方法是将两个CMTS配置为使用不同的上游频率。同一电缆段上的两个设备不应同时使用相同的上行频率。但是,请注意,只要两台设备连接到物理上独立的电缆段,就可以同时使用相同的上行频率。