以太网无源光网络的时间同步方法及以太网无源光网络
技术领域
本申请涉及通信网络技术领域,特别涉及一种以太网无源光网络的时间同步方法及以太网无源光网络。
背景技术
在以太网无源光网络EPON(Ethernet Passive Optical Network)中,具有两种节点:光线路终端OLT(Optical Line Terminal)和光网络单元ONU(Optical NetworkUnits)。EPON作为主从同步网络,OLT为主,ONU为从,从OLT到ONU的数据传输称为下行DS(Down Stream),从ONU到OLT的数据传输称为上行US(Up Stream)。在EPON启动后,需要经历多点控制协议MPCP(Multi-Point Control Protocol)发现/测距和注册过程以及随后的操作维护管理OAM(Operation Administration and Maintenance)交互和协商过程,ONU才能正常上线并开展业务。其中,在OLT和ONU两侧本地分别维护一个32bit的localtime计时器,在OLT与ONU之间传输的MPCP报文中的时戳TS(Timestamp)是根据两侧32bit的localtime计时器所生成的,MPCP报文中的时戳TS同样为32bit,因此,根据EPON的通信协议,时戳TS的单位为16ns,每隔TQ(16ns)的时间localtime计时器中递增1。
在EPON中,OLT以系统时钟速率往下行发送MPCP报文,而ONU从下行接收MPCP报文并恢复出系统时钟CDR(Clock Data Recovery),并以此恢复的系统时钟作为上行发送速率,然后OLT可以使用系统时钟从上行接收MPCP报文,如图1中所示。OLT下行和ONU上行在发送MPCP报文时,取发送首字节时刻对应的localtime作为MPCP报文的TS,在OLT端用收到的MPCP报文中的TS结合本地的localtime进行测距,再向ONU发送OAM报文,由ONU利用OAM报文进行时间同步。
由以上方案中可以看出,EPON中实现时间同步的精度与TS的单位TQ相关,TQ越高,精度越底,而现有的EPON网络中MPCP报文TS的TQ为较高的16ns,由此,目前EPON进行时间同步的精度较低。
发明内容
有鉴于此,本申请的目的是提供一种以太网无源光网络的时间同步方法及以太网无源光网络,用以解决现有技术中以太网无源光网络EPON中时间同步精度较低的技术问题。
本申请的第一方面提供了一种以太网无源光网络的时间同步方法,该方法中,OLT基于36bit时戳且单位为1ns的OLT本地localtime计时器生成下行MPCP报文,并发送给ONU,ONU通过获取下行MPCP报文中的TS来对36bit时戳且单位为1ns的ONU本地localtime计时器进行时戳同步,并基于时戳同步后的ONU本地localtime计时器生成上行MPCP报文发送给OLT,由此OLT能够基于上行MPCP报文对ONU进行测距,从而利用测距结果及OLT的TOD来生成OAM报文并发送给ONU,此时ONU就可以基于OAM报文对ONU的TOD进行更新,使得ONU的时间与OLT的时间一致,实现时间同步。可见,本申请通过对OLT及ONU各自的本地localtime计时器进行扩展,使其时戳单位能够达到1ns,即时戳每隔ns就增加1,这样达到ns级的时间同步,从而提高时间同步的精度。
本申请的第二方面提供了一种以太网无源光网络,其中包含OLT和至少一个ONU,OLT基于36bit时戳且单位为1ns的OLT本地localtime计时器生成下行MPCP报文,并发送给ONU,ONU通过获取下行MPCP报文中的TS来对36bit时戳且单位为1ns的ONU本地localtime计时器进行时戳同步,并基于时戳同步后的ONU本地localtime计时器生成上行MPCP报文发送给OLT,由此OLT能够基于上行MPCP报文对ONU进行测距,从而利用测距结果及OLT的TOD来生成OAM报文并发送给ONU,此时ONU就可以基于OAM报文对ONU的TOD进行更新,使得ONU的时间与OLT的时间一致,实现时间同步。可见,本申请在EPON中通过对OLT及ONU各自的本地localtime计时器进行扩展,使其时戳单位能够达到1ns,即时戳每隔ns就增加1,这样达到ns级的时间同步,从而提高时间同步的精度。
在一个实现方式中,OLT可以通过读取OLT本地localtime计时器中的前32bit结合预设的第一opcode字段值来生成下行MPCP报文,该报文为标准MPCP报文,或者OLT也可以通过读取OLT本地localtime计时器中的后32bit结合预设的第二opcode字段值来生成下行MPCP报文,该报文为扩展MPCP报文。可见,本申请中不必舍弃原标准的OLT,而是对原标准OLT进行扩展,在扩展的OLT上生成标准MPCP报文或扩展MPCP报文来保证对方ONU不管是不是扩展ONU均可以识别下行MPCP报文,保证OLT和ONU之间的数据传输,从而在实现高精度时间同步的同时,达到兼容原有的OLT的目的。
在一个实现方式中,ONU可以通过读取ONU本地localtime计时器中的前32bit结合预设的第一opcode字段值来生成上行MPCP报文,该报文为标准MPCP报文,或者ONU也可以通过读取ONU本地localtime计时器中的后32bit结合预设的第二opcode字段值来生成上行MPCP报文,该报文为扩展MPCP报文。可见,本申请中不必把原标准的ONU全部舍弃,而是对原标准ONU进行扩展,在扩展的ONU上生成标准MPCP报文或者扩展MPCP报文来保证向相应OLT回应MPCP报文,保证OLT和ONU之间的数据传输,从而在实现高精度时间同步的同时,达到兼容原有ONU的目的。
在一个实现方式中,ONU在接收到下行MPCP报文后,通过判断下行MPCP报文中的opcode字段是否对应于第一opcode字段值还是对应第二opcode字段值来决定采用第一方式还是第二方式进行时戳同步,例如,如果下行MPCP报文中的opcode字段对应于第一opcode字段值,那么ONU以第一方式利用下行MPCP报文中的TS对ONU本地localtime计时器进行时戳同步,而如果下行MPCP报文中的opcode字段对应于第二opcode字段值,那么ONU以第二方式利用下行MPCP报文中的TS对ONU本地localtime计时器进行时戳同步。可见,本申请中ONU通过识别报文中的opcode字段来确定下行MPCP报文属于标准MPCP报文还是扩展MPCP报文,从而采用不同的方式进行时戳同步,达到高精度时间同步的同时,保证兼容性。
在一个实现方式中,ONU在以第一方式利用下行MPCP报文中的TS对ONU本地localtime计时器进行时戳同步时,可以通过提取下行MPCP报文中的TS字段,再用TS字段对ONU本地localtime计时器的前32bit进行时戳同步。可见,本申请中ONU发现下行MPCP报文为标准MPCP报文时,用报文中的TS字段对本地localtime计时器中的前32bit进行时戳同步,从而保证标准和扩展的兼容性。
在一个实现方式中,ONU以第二方式利用下行MPCP报文中的TS对ONU本地localtime计时器进行时戳同步时,可以通过提取下行MPCP报文中的TS字段,再利用TS字段对ONU本地localtime计时器的后32bit进行时戳同步。可见,本申请中ONU发现下行MPCP报文为扩展MPCP报文时,用报文中的TS字段对本地localtime计时器中的后32bit进行时戳同步,从而提高时间同步的精度。
在一个实现方式中,ONU如果判断出下行MPCP报文中的opcode字段对应于第二opcode字段值,那么ONU可以确定发送该下行MPCP报文的OLT是能够支持扩展MPCP报文的,那么ONU可以向LOT发送扩展MPCP报文,该扩展MPCP报文为ONU结合ONU本地localtime计时器的后32bit和第二opcode字段值所生成的上行MPCP报文。可见,本申请中ONU通过判断下行MPCP报文是否为扩展MPCP报文就可以确定OLT的能力,即是否为扩展OLT,那么后续中ONU就可以向OLT发送扩展MPCP报文来进行交互和同步等操作,无需再发送标准MPCP报文来同步尝试,由此ONU可以自适应检测MPCP能力,并自动回应对应的MPCP报文,不需要专门的协商过程,从而简化网络中的系统方案和实现。
在一个实现方式中,OLT在对ONU进行测距时,可以在读取上行MPCP报文中的opcode字段后,通过判断opcode字段对应第一opcode字段值还是第二opcode字段值来采用不同的方式进行测距,例如,如果opcode字段对应第一opcode字段值,那么利用OLT本地localtime计时器的前32bit与上行MPCP报文中的TS对ONU进行测距,得到单位为16ns的测距结果;而如果opcode字段对应第二opcode字段值,那么利用OLT本地localtime计时器中的后32bit与上行MPCP报文中的TS对ONU进行测距,得到单位为1ns的测距结果。可见,本申请中OLT通过识别上行MPCP报文中的opcode字段来采用不同的方式进行测距,从而在提高时间同步精度的同时,保证兼容性。
在一个实现方式中,OLT在发现opcode字段对应第二opcode字段值时,那么OLT可以确定发送该上行MPCP报文的ONU是能够支持扩展MPCP报文的,那么OLT后续可以向ONU发送扩展MPCP报文,该扩展MPCP报文为OLT结合OLT本地localtime计时器的后32bit和第二opcode字段值所生成的下行MPCP报文。可见,本申请中OLT通过判断上行MPCP报文是否为扩展MPCP报文就可以确定ONU的能力,即是否为扩展ONU,那么后续中OLT就可以向ONU发送扩展MPCP报文来进行交互和同步等操作,无需发送标准MPCP报文来进行同步尝试,由此OLT可以自适应检测MPCP能力,并自动回应对应的MPCP报文,不需要专门的协商过程,从而简化网络中的系统方案和实现。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为EPON中OLT与ONU之间的报文传输示意图;
图2a、图2b及图2c分别为本申请实施例提供的一种以太网无源光网络的时间同步方法的流程图;
图3-图6分别为本申请实施例的应用示例图;
图7为本申请实施例提供的一种以太网无源光网络的结构示意图。
具体实施方式
本申请中通过对EPON中OLT和ONU各自的本地localtime计时器进行扩展,以达到提高时间同步的精度的同时兼容现有的EPON协议及设备的目的。具体的:对localtime计时器中的比特位进行扩展,如表1中所示:
表1
以上示例中,OLT和ONU各自的本地localtime计时器中包含全部的36bit,其中,第0bit到第3bit是相对于原标准的localtime计时器新扩展的4bit,由此,localtime计时器时戳的单位从16ns通过扩展4bit降低到1ns(16ns/(2的4次方)得到1ns),用以实现高精度的时间同步。
其中,LTs(s表示standard)为localtime计时器的36bit中第4bit到第35bit的字段,这32bit对应于原标准的localtime计时器,即时戳TS的单位为16ns;LTp(p表示precision)为localtime计时器的36bit中第0bit到第31bit的字段,这32bit对应于新扩展的高精度localtime计时器,即TS的单位为1ns;而LTr(reduce)为LTs和LTp的交集,用以原标准和新扩展localtime计时器之间的兼容设计。
需要说明的是,本示例中,新扩展的localtime计时器为36bit,在理论上每隔1ns,localtime计时器的时戳递增1,相应的实际电路设计上可以每时钟周期递增x(x为时钟周期数,单位为ns,可以是整数也可以是小数),相应的,在时戳同步时,可以结合数据总线对齐的比特偏移来计时,从而体现出ns量级的同步精度。例如,本示例中对localtime计时器扩展为36bit时戳,根据EPON通信协议将TS精确到比特级如1bit,而对于EPON(1Gbps速率)来说,1bit为1ns,对于10G-EPON(10Gbps速率)来说,1bit就是0.1ns,显然本示例中可以将时间同步的精度精确到ns量级。
以下对EPON中OLT与ONU之间进行时间同步时的实现过程进行说明:
由于本实施例兼容原标准的EPON设备和新扩展的EPON设备,因此,在本实施例中进行时间同步的OLT和ONU既可能是原标准的EPON设备,也可能是新扩展的EPON设备,因此,在具体实现中,原标准的EPON设备和新扩展的EPON设备对MPCP报文的处理有所差别。
OLT可以是新扩展OLT,也可以为原标准OLT,而新扩展OLT既可以生成并发送新扩展MPCP报文,也可以生成并发送原标准MPCP报文,也就是说,新扩展OLT完全包含并兼容原标准OLT。ONU可以是新扩展ONU,也可以为原标准ONU,而新扩展ONU既可以生成并发送新扩展MPCP报文,也可以生成并发送原标准MPCP报文,也就是说,新扩展ONU完全包含并兼容原标准ONU,不需要对原标准ONU全部舍弃。
也就是说,新扩展OLT可以混合收发新扩展MPCP报文和原标准MPCP报文,不管是新扩展ONU还是原标准ONU均可以接收并识别OLT所发送的下行MPCP报文,而新扩展ONU可以混合收发新扩展MPCP报文和原标准MPCP报文,不管是新扩展OLT还是原标准OLT均可以接收并识别ONU所发送的上行MPCP报文,从而做到动态、自适应兼容新的ONU和原标准ONU。
其中,原标准OLT可以对原标准MPCP报文依然采用原有的处理方式进行测距及其他处理,而原标准OLT对于新扩展MPCP报文可以采用丢弃或者交给软件进行处理,不影响现网的运行;而原标准ONU可以对原标准MPCP报文依然采用原有的处理方式进行时间同步及其他处理,如果原标准ONU收到新扩展MPCP报文,能够判断出为MAC控制帧但无法解析及处理,此时可以丢弃或者交给处理器处理。因此,原标准ONU是可以兼容新扩展OLT、并和新扩展ONU在同一个EPON端口下共存的。例如,在OLT与ONU之间进行发现和注册过程中,新扩展OLT可以尝试下发新扩展MPCP报文,向所有的ONU指示该EPON端口是具备处理新扩展MPCP报文的能力的,之后,新扩展ONU收到这样的新扩展MPCP报文,就可以做出回应,也向OLT发送新扩展MPCP报文,则新的OLT和新的ONU注册成功,之后基于新扩展MPCP报文中TS里面的LTp进行时间同步,提高时间同步精度。另外,新扩展OLT也可以同时下发原标准MPCP报文,这样原标准ONU也能够对该原标准MPCP报文做出响应,向新扩展OLT发送原标准MPCP报文,实现正常注册上线。
需要说明的是,EPON中在新扩展OLT的PON端口下,原标准ONU和新扩展ONU可以共存/混用、且不互相干扰和影响,并且时间同步的能力和结果也是独立的,原标准ONU完成普通精度的时间同步的同时,新扩展ONU也可以同时实现高精度时间同步。
而如果新扩展OLT如果接收到某个ONU发来的新扩展MPCP报文,则意味着该ONU为新扩展ONU,能够处理新扩展MPCP报文,那么新扩展OLT也可以向该ONU发送新扩展MPCP报文,从而实现高精度的时间同步。
例如,新扩展ONU如果收到新扩展MPCP报文,则基于TS里面的LTp进行时戳同步,并在上行线路对应发送新扩展MPCP报文为OLT提供测距依据(这也向OLT指示了该ONU是具有识别新扩展MPCP报文能力的),如果ONU收到原标准MPCP报文,则基于TS里面的LTs进行时戳同步,并在上行线路对应发送原标准MPCP报文给OLT。
综上,新扩展OLT和新扩展ONU只要收到对方发来的新扩展MPCP报文,就会自动识别对方具备处理新扩展MPCP报文的能力,则也可以向对方发送新扩展MPCP报文,然后双方协商完成高精度的时间同步,这一过程是动态的,自适应的,无需软件干预,也无需对现网原设备进行改动,实现了高精度时间同步的同时兼容现网原设备的目的。
具体的,如图2a-图2c中所示,为EPON中已经注册的OLT与ONU进行MPCP报文传输实现ONU时间同步的实现流程图:
首先,新扩展OLT基于OLT本地localtime计时器生成下行MPCP报文,下行MPCP报文可以为原标准MPCP报文,如步骤201-步骤202,如图2a所示,或者,下行MPCP报文也可以为新扩展MPCP报文,如步骤203-步骤204,如图2b所示,在生成下行MPCP报文之后,执行步骤205。
步骤201:OLT读取OLT本地localtime计时器中的前32bit,如OLT本地localtime计时器中的LTs字段。
步骤202:OLT将前32bit作为报文TS结合预设的第一opcode字段值生成下行MPCP报文。
其中,第一opcode字段值有多个,用于表示所生成的MPCP报文为原标准MPCP报文。如表2中的5个第一opcode字段值所示:
表2
具体的,本示例中可以将OLT本地localtime计时器中的前32bit和第一opcode字段值如0x03和其他字段值写入报文中,生成下行MPCP报文,此时的MPCP报文为原标准MPCP报文。
步骤203:OLT读取OLT本地localtime计时器中的后32bit,如OLT本地localtime计时器中的LTp字段。
步骤204:OLT将后32bit作为报文的TS结合预设的第二opcode字段值生成下行MPCP报文。
其中,第二opcode字段值也有多个,用于表示所生成的MPCP报文为扩展MPCP报文。如表2中的5个第二opcode字段值所示。
具体的,本示例中可以将OLT本地localtime计时器中的后32bit和第二opcode字段值如A+0x03和其他字段值写入报文中,生成下行MPCP报文,此时的下行MPCP报文的TS域是基于精度达到纳秒级的OLT本地localtime计时器所生成,因此,该下行MPCP报文的时戳精度达到纳秒级,为新扩展MPCP报文,。
其中,A的数值可以根据需求进行设置或者参数化,与其他协议中已经定义的取值相区别、避免冲突。例如,A设置为0x8或者ox10。
需要说明的是,表2中所示的5种新扩展MPCP报文分别对应5种原标准MPCP报文中,仅TS的单位及相关字段或域(如grant的startime域的有效位宽)不同,其他内容和功能完全相同,因此,对于后续进行的报文传输和识别是兼容和共存的关系,并不矛盾和互斥。
步骤205:OLT发送下行MPCP报文给一个ONU。
其中,OLT所发送的下行MPCP报文可以为原标准MPCP报文,也可以为新扩展MPCP报文。
也就是说,本示例中,OLT在生成下行MPCP报文时,由于并不知道对接的ONU是原标准ONU还是新扩展ONU,因此,可以仍然向ONU下发原标准MPCP报文,以保证正常注册及通信等功能,另外,OLT也可以向ONU尝试下发新扩展MPCP报文,以提高后续的时间同步精度。
步骤206:ONU接收OLT发送的下行MPCP报文。
其中,ONU所接收到的下行MPCP报文可能是原标准MPCP报文也可能是新扩展MPCP报文,由此,ONU可以通过步骤207确定下行MPCP报文是原标准MPCP报文还是新扩展MPCP报文,之后采用相应的方式实现时戳同步,如步骤208或步骤209。
步骤207:ONU判断下行MPCP报文中的opcode字段,如果下行MPCP报文中的opcode字段是对应于预设的第一opcode字段值,执行步骤208,如图2a中所示,如果下行MPCP报文中的opcode字段是对应于预设的第二opcode字段值,执行步骤209,如图2b中所示。
也就是说,ONU如果发现下行MPCP报文中opcode字段对应于第一opcode字段值,那么可以确定下行MPCP报文为原标准MPCP报文,此时,执行步骤208对ONU本地localtime计时器进行时戳同步,而如果发现下行MPCP报文中opcode字段对应于第二opcode字段值,那么可以确定下行MPCP报文为新扩展MPCP报文,此时,如果ONU为新扩展ONU,则可以执行步骤209对ONU本地localtime计时器进行时戳同步,而如果ONU为原标准ONU,那么ONU可以将该新扩展MPCP报文丢弃或者转给设备软件进行处理,如图2c中所示。之后,OLT仍然会下发原标准MPCP报文,ONU接收到原标准MPCP报文后完成普通精度的时间同步,如图2a中所示。
步骤208:ONU以第一方式利用下行MPCP报文中的TS对ONU本地localtime计时器进行时戳同步。
具体的,ONU可以提取下行MPCP报文中的TS字段后,再用TS字段对ONU本地计时器的前32bit进行时戳同步,如对ONU本地localtime计时器中的LTs字段进行更新同步。
步骤209:ONU以第二方式利用下行MPCP报文中的TS对ONU本地localtime计时器进行时戳同步。
具体的,ONU可以提取下行MPCP报文中的TS字段后,再用TS字段对ONU本地计时器的后32bit进行时戳同步,如对ONU本地localtime计时器中的LTp字段进行更新同步,实现纳秒级的时戳同步精度。
而在ONU完成时戳同步之后,需要向OLT返回上行MPCP报文,由OLT进行测距,在根据测距结果和TOD生成的OAM报文传给ONU之后,ONU才能完成时间同步,因此,在步骤208或步骤209之后,ONU基于时戳同步后的ONU本地localtime计时器来生成上行MPCP报文,例如,步骤208之后执行步骤210,在步骤209之后执行步骤211。
步骤210:ONU读取ONU本地localtime计时器中的前32bit,将前32bit作为报文的TS结合第一opcode字段值生成上行MPCP报文,执行步骤212。
也就是说,在ONU发现下行MPCP报文为原标准报文,因此不能确定OLT是否为新扩展OLT或者ONU为原标准ONU,此时,ONU仍然发送原标准MPCP报文给OLT,因此,在步骤210中,ONU利用时戳同步后的ONU本地localtime计时器的前32bit生成上行MPCP报文,并用第一opcode字段值来表征该上行MPCP报文为原标准MPCP报文。
步骤211:ONU读取ONU本地localtime计时器中的后32bit,将后32bit作为报文的TS结合第二opcode字段值生成上行MPCP报文,执行步骤212。
也就是说,在ONU发现下行MPCP报文为新扩展MPCP报文时,ONU可以确定OLT是新扩展OLT,具备收发新扩展MPCP报文的能力,此时,ONU发送新扩展MPCP报文给OLT,因此,在步骤211中,ONU利用时戳同步后的ONU本地localtime计时器的后32bit生成上行MPCP报文,并用第二opcode字段值来表征该上行MPCP报文为新扩展MPCP报文,该上行MPCP报文的时戳精度达到纳秒级。
步骤212:ONU将上行MPCP报文返回给OLT。
其中,ONU返回给OLT的上行MPCP报文可能是原标准MPCP报文,也可能是新扩展MPCP报文。
步骤213:OLT接收上行MPCP报文。
其中。OLT在接收到上行MPCP报文之后,可以基于上行MPCP报文对ONU进行测距,得到测距结果。其中,测距结果表明报文在ONU与OLT往返传输所消耗的时长。而OLT在进行测距时,可以通过步骤214首先判断上行MPCP报文为原标准MPCP报文还是新扩展MPCP报文,相应的采用不同的方式进行测距,如步骤215或者步骤216,最终得到测距结果。
如图3中所示,OLT在localtime计时器为t0时,发送下行MPCP报文给ONU,下行MPCP报文中的TS为t0,此时经历下行延迟时长为TDOWNSTREAM,ONU更新其本地localtime计时器为t0,之后,经历TWAIT的时长后,在ONU的本地localtime计时器为t1时,ONU发送上行MPCP报文给OLT,该上行MPCP报文中的TS为t1,在经历上行延迟时长TUPSTREAM之后,OLT在其本地localtime计时器为t2时接收到上行MPCP报文,因此,报文在OLT与ONU往返的传输时长RTT为OLT本地localtime计时器中的时间减去上行MPCP报文中的TS,即t2-t1。
步骤214:OLT读取上行MPCP报文中的opcode字段,如果opcode字段对应于第一opcode字段值,执行步骤215,如果opcode字段对应于第二opcode字段值,执行步骤216。
步骤215:OLT利用OLT本地localtime计时器中的前32bit与上行MPCP报文中的TS对ONU进行测距,得到测距结果,执行步骤217。
此时,测距结果的时戳单位为16ns。
例如,结合图3可知,OLT可以将OLT本地localtime计时器的前32bit减去上行MPCP报文中的TS,得到一个时间值,即为报文从OLT与ONU之间往返的传输时长RTT,OLT基于该时长生成测距结果。
步骤216:OLT利用OLT本地localtime计时器中的后32bit与上行MPCP报文中的TS对ONU进行测距,得到测距结果,执行步骤217。
此时,测距结果中的单位为1ns。
例如,结合图3可知,OLT可以将OLT本地localtime计时器的后32bit减去上行MPCP报文中的TS,得到一个时间值,即为报文从ONU与OLT之间往返的传输时长RTT,OLT基于该时长生成测距结果。
步骤217:OLT利用测距结果及OLT的本地时间TOD生成OAM报文。
其中,OLT所生成的OAM报文可以如图4中所示。OAM报文中携带OLT与ONU已经时戳同步的localtime及该localtime对应的TOD时间,如图4中的X即为OLT和ONU已经时戳同步的32bitlocaltime,而ToDxi表示标号为i的ONU上localtime=X时刻所对应的TOD时间(即为1588时戳),例如包括48bit秒时间+32bit纳秒时间,其格式可以参考IEEE1588协议中定义的如下结构体变量:
Structtimestamp
{UInteger48secondsField;//48bit秒时间
UInteger32nanosecondsField;}//32bit纳秒时间
需要说明的是,这里的ToDxi体现了标号为i的ONU的测距信息。
步骤218:OLT发送OAM报文给ONU。
步骤219:ONU接收OAM报文。
步骤220:ONU基于OAM报文对ONU的TOD进行更新,使得ONU的时间与OLT的时间相一致。
如图5中所示,在t1时刻,OLT利用本地localtime计时器和测距结果RTTi(标号为i的ONU的测距结果),生成OAM报文中的X和ToDxi,X即为对应于t1时刻的本地localtime计时器的值,ToDxi=t1+RTTi/2,由此,在ONUi一侧接收到OAM报文之后,ONUi在其本地localtime计时器为X的时刻,更新TOD为ToDxi=t1+RTTi/2,即为t2,由此,实现ONU与OLT的时间一致,完成时间同步。
需要说明的是,OAM报文中的X为32bit(与MPCP报文的TS域一样的),X可以为OLT本地localtime计时器中的LTs或者LTp,而X不论取OLT本地localtime计时器的前32bit还是后32bit,都不影响本示例中时间同步的精度达到ns级,因为TODxi是对应于X所对应的时刻的。那么在本示例中按1588协议,X可以保持“单位为TQ=16ns”,也就是说,X取OLT本地localtime计时器中的LTs。
在以上时间同步过程中,由于ONU进行时戳同步的精度能够达到纳秒级,且OLT进行测距的精度也能够达到纳秒级,由此,在ONU与OLT之间的时间同步精度相应的能够达到纳秒级,实现高精度的时间同步。
另外,在步骤207中,ONU如果发现下行MPCP报文中opcode字段对应于第二opcode字段值,那么ONU就可以确定OLT能够支持新扩展MPCP报文,也就是OLT具备收发新扩展MPCP报文的能力而不是原标准OLT只能支持标准MPCP,那么在后续ONU向OLT发送上行MPCP报文时,可以直接发送新扩展MPCP报文,无需发送原标准MPCP报文给OLT,实现后续的高精度时间同步,即只需执行步骤209、步骤211及后续步骤,无需执行步骤208及步骤210,也就不需要进行各种尝试性的报文生成操作,节省操作流程,提高高精度时间同步的效率。而这里新扩展MPCP报文为ONU结合ONU本地localtime计时器的后32bit和预设的第二opcode字段值所生成的上行MPCP报文。
而在步骤214中,OLT如果发现上行MPCP报文中opcode字段对应于第二opcode字段值,那么OLT可以确定ONU能够支持新扩展MPCP报文,也就是ONU具备收发新扩展MPCP报文的能力而不是原标准ONU只能支持标准MPCP,那么在以后重新进行时间同步时,可以直接向ONU发送新扩展MPCP报文,无需发送原标准MPCP报文给ONU,直接实现高精度时间同步,即只需执行步骤203及步骤204及后续与新扩展MPCP报文相关的步骤,无需执行步骤201及步骤202,也就不需要进行各种尝试性的报文生成操作,节省操作流程,提高高精度时间同步的效率。而这里新扩展MPCP报文为所述OLT结合所述OLT本地localtime计时器的后32bit和预设的第二opcode字段值所生成的下行MPCP报文。
在一种实现方式中,ONU在步骤208或者步骤209进行时戳同步之后,需要对ONU是否存在漂移或失步的情况进行判定,例如,判断时戳同步前后的ONU本地localtime计时器中的差值绝对值是否超限,从而确定ONU是否存在漂移或失步的情况,如果差值绝对值没有超限,则可以继续执行后续的步骤,而如果超限,那么ONU需要重新注册及同步等操作。例如,ONU将时戳同步前的ONU本地localtime计时器的值减去待同步的MPCPTS值,再判断所得到的差值绝对值是否大于预设的第一阈值,如guardThresholdONU,如果是,那么可以判定当前的ONU存在漂移或者失步现象,此时需要ONU重新注册、同步等操作,如图6中所示。
其中,第一阈值guardThresholdONU的值可以根据需求进行设置,如8TQ等。而为了加严同步漂移的判断,控制同步精度,也可以设置第一阈值为4ns或者更低。
在另一种实现方式中,OLT在步骤216或者步骤216中完成测距之后,需要对测距结果是否漂移进行判断,例如,判断本次的测距结果与前一次的测距结果之间的差值绝对值是否超限,从而确定是否需要对ONU重新进行注册,如果没有超限,则可以继续执行后续的步骤,而如果超限,那么需要对ONU重新进行注册及测距等操作。例如,OLT获取到本次的测距结果newRTT=OLT本地localtime计时器-上行MPCP报文中的TS之后,判断newRTT与前一次测距结果RTT之间的差值绝对值是否大于第二阈值,如guardThresholdOLT,如果差值绝对值Δ大于第二阈值,那么确定RTT漂移,需要对ONU重新进行注册及测距等操作,如图6中所示。
其中,第二阈值guardThresholdOLT的值可以根据需求进行设置,如12TQ等。而为了加严漂移的判断,控制同步精度,也可以设置第二阈值为6ns或者更低。
为实现图2a-图2c中所示的时间同步方案,本申请实施例还提供了一种OLT的终端及ONU的终端,应用于图1所示的以太网无源光网络中,其中,OLT及ONU的具体实现可以参考图2a-图2c及相应内容,此处不再详述。另外,本申请实施例还提供了一种以太网无源光网络,如图7所示,包含至少一个OLT及至少一个ONU,其中,OLT及ONU的具体实现可以参考图2a-图2c及相应内容,此处不再详述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。