专利名称:时钟同步方法以及应用该方法的第一部件和第二部件的制作方法
技术领域:
本发明涉及网络领域的时钟同步方法,尤其涉及OAA(Open ApplicationArchitecture,开放应用架构)中NFC(Network Forwarding Component,网络转发部件)和IAC(Independent Application Component,独立业务部件)之间时钟同步的方法以及应用该方法的IAC和OAA。
背景技术:
随着网络业务的迅猛发展与逐步细化,传统的网络设备在处理这些业务时变得不再得心应手。比如,要求设备既能做数据转发又能接入语音、要求设备既能完成负载分担又能进行内容安全过滤。此时,一家独立的技术厂家是很难同时提供给用户所要求的所有服务。为此,用户通常需要购买多个厂家的设备,并将该些设备连接在一起。这样不仅互通性经常出现问题、设备间配合更是不容易协商,而且也给设备的管理和维护带来成本上的负担。
以交换设备(所述交换设备包括交换机与路由器)为例,目前根据网络中的位置与作用,交换设备通常分为中低端交换设备与核心交换设备。中低端交换设备的主要功能是汇集和进行业务管理,核心交换设备的主要功能是快速转发,使得数据包尽可能快速地通过IP骨干网。中低端交换设备一般处于网络的边缘位置,实现方案为一般的单处理器(CPU)的集中式交换设备。由于集中式交换设备有较好的价格成本优势,所以得到较为广泛的应用。集中式交换设备可以依靠内部功能简单的单一处理器来实现交换功能,但是,面对日益丰富的业务特性要求,如IPSec(IP Security协议)、IPS(Intrusion Protect System入侵防御系统)、语音和无线等,集中式交换设备已不能满足该些业务的需求。
为了解决上述问题,本申请人提出了一种OAA架构,将不同厂商的设备集成为一个松耦合的系统。一个符合OAA架构的系统包括通过ILC(InterfaceLinkage Component,接口连接部件)连接的NFC和IAC,其中NFC是OAA系统的主体,负责进行报文转发,有着完整的路由器和交换机的功能,也是用户管理控制的核心;IAC是用来提供各种应用的附加功能的业务服务主体,一般在OAA系统中表现为一块单板或扣卡;ILC通常作为接口分别集成在NFC和IAC之上,为NFC和IAC提供报文转发和控制信息传递的路径。
在IAC和NFC之间通信时,通常需要两者之间时钟同步。并且,若两个IAC需要支持相同的业务时,同样也需要建立两个IAC之间的时钟同步,由于两个不同的IAC之间通过NFC建立通信,因此只要每个IAC与NFC之间实现时钟同步就能保证两个IAC之间时钟同步。那么,如何建立IAC和NFC之间的时钟同步呢?申请号为200510052736.4、优先权日为2004年3月10日的专利申请中公开了一种用于网络终端时钟同步的方法和系统,包括确定从主终端到每个从终端的各自往返行程延迟时间,并偏移每个从终端的时钟与各自确定的往返行程延迟时间成比例的量以便主终端和每个从终端具有基本上相同的时间参考点。即,确定在主终端的主时钟和每个从终端的时钟之间的各自偏移,并偏移每个从终端的时钟与所确定的各自偏移成比例的量来同步每个所述从终端的时钟到主终端的主时钟。
上述发明能够使得多个终端之间完成时钟同步,但是,上述方法中确定在主终端的主时钟和每个从终端的时钟之间的各自偏移实现复杂,特别是,IAC和NFC是属于同一个OAA架构的,换句话说,集中式交换设备上插接上至少一智能板组成OAA是属于一设备,它们之间的连接距离非常短,其双方通信时间非常短,通常是在毫秒级,利用上述方法来确定NFC和每个NFC时钟之间的各自偏移不容易实现。即,上述方法并不能适用建立IAC和NFC之间建立时钟同步。
发明内容
本发明的目的在于提供一种实现简单适用双方通信延时短的开放应用架构中时钟同步方法以及应用该时钟同步方法的第一部件和第二部件。
为了达到上述目的,本发明公开了一种时钟同步方法,用于实现第一部件和第二部件之间的时钟同步,所述第一部件为开放应用架构中的网络转发部件NFC,所述第二部件为开放应用架构中的独立业务部件IAC,包括(1)IAC接收NFC下发的时钟同步报文,所述时钟同步报文中携带NFC的当前时间;(2)IAC根据所述时钟同步报文中的当前时间同步本端时钟。
NFC以预先设定的下发周期向IAC发送时钟同步报文。
NFC是根据同步精度要求设定所述下发周期。
IAC向NFC发送时钟同步请求报文;NFC接收到时钟同步请求报文后,下发时钟同步报文。
本方法还包括预先计算NFC向IAC发送报文到IAC接收到报文之间的通信时间;步骤(2)为IAC将本端的当前时间修改为所述时钟同步报文中的当前时间与所述通信时间之和。
步骤(2)为IAC将本端的当前时间修改为所述时钟同步报文中的当前时间。
NFC在下发时钟同步报文之前,先确定IAC是否出现异常,在IAC正常情况下才下发时钟同步报文。
NFC确定IAC是否出现异常具体为IAC定期发送用于表明本IAC正常的心跳报文,所述心跳报文为IAC与NFC之间预先约定的控制报文;NFC依据是否接收到心跳报文来确定IAC是否出现异常。
NFC确定IAC是否出现异常具体为a1NFC检测接收到的IAC发送的数据报文的个数是否变化,若是,所述IAC未发生异常,否则,进行步骤a2;a2NFC检测接收到的所述IAC发送的控制报文的个数是否变化,若是,所述IAC未发生异常,否则,所述IAC已发生异常,或者为b1设置一检测报文个数寄存器;b2NFC定时检测IAC的心跳,每一次检测IAC心跳时,将当前的控制报文个数N1与检测报文个数寄存储器中存储的数值进行比较,若相同,则表明所述IAC处于异常状态,若不相同,将当前的控制报文个数N1保存到检测报文个数寄存器中,所述IAC未发生异常,或者为NFC定时检测IAC的心跳时,先检测当前的数据报文个数和控制报文个数N1+N2与前一次检测IAC心跳时保存的数据报文的个数与控制报文的个数之和是否相同,若不相同,则说明该IAC处于正常状态,保存本次的N1+N2,否则,说明IAC处于异常状态。
一种应用时钟同步的第二部件,所述第二部件为开放应用架构中的独立业务部件IAC,包括时钟同步单元IAC依据接收到NFC下发的时钟同步报文同步本IAC的时钟,所述时钟同步报文中携带NFC端的当前时间。
IAC还包括时钟同步请求单元用于定时向NFC发送时钟同步请求报文。
所述时钟同步单元进一步为通信时间计算子单元预先计算NFC向IAC发送报文到IAC接收到报文之间的通信时间;本端时间修改子单元将本端的当前时间修改为所述时钟同步报文中的当前时间与所述通信时间之和,或者所述时钟同步单元进一步包括本端时间修改子单元将本端的当前时间直接修改为所述时钟同步报文中的当前时间。
IAC还包括心跳请求单元用于定期向NFC发送用于表明本IAC正常的心跳报文,所述心跳报文为IAC与NFC之间预先约定的控制报文。
一种应用时钟同步的第一部件,所述第一部件为开放应用架构中的网络转发部件NFC,包括时钟同步处理单元用于预先设定的下发周期向IAC发送时钟同步请求报文或接收到时钟同步请求报文后向IAC发送时钟同步请求报文,所述时钟同步报文中携带NFC端的当前时间。
本发明提供了一种实现IAC和NFC的时钟同步方法,由于IAC和NFC之间的距离非常短,是属于同一OAA系统中(即同一设备中),类似于计算机与插接在PCI插槽上的单板,本发明仅通过IAC依据接收到的NFC发送的当前时间修改本端的时钟,由于IAC与NFC之间的通信延时非常短,能够用本发明的这种非常简单的方案实现两部件的同步,避免采用现有技术中实现非常复杂的同步方案来实现LAC和NFC之间的时钟同步。
图1为本发明应用的OAA系统的一种典型结构;图2为本发明一种时钟同步方法的流程图;图3为一种开放应用架构中时钟同步方法的流程图;图4为本发明开放应用架构中的独立业务部件IAC的结构示意图;图5为本发明开放应用架构中的网络转发部件NFC的结构示意图。
具体实施例方式
以下结合附图,具体说明本发明。
图1所示为本发明应用的OAA系统的一种典型结构。OAA中连接NFC与IAC的ILC通常包括控制接口和数据平面接口,控制接口可以是异步串口、同异步串口等支持流模式的接口,也可能是一个单独的以太网物理端口,或者与数据平面共用的物理端口。NFC上的控制接口与IAC上的控制接口相连接,用于进行控制信息的通信,NFC上的数据平面接口与IAC上的数据平面接口相连接,用于进行数据信息的通信。另外,一个OAA系统中可以包括完成不同功能的多个IAC。
在OAA系统中,转发的功能由NFC完成,业务附加处理由IAC完成。针对不同的应用,申请人定义4种工作模式,可以通过这4种模式之一或其中几种的组合来完成NFC与IAC之间的通信。
1、主机(Host)模式IAC就象网络上的一台主机,拥有自己的IP地址,作为网络末梢存在。IP报文都是通ILC的以太网口转发的。这种方式,NFC仅仅完成单纯的报文转发,IAC则作为数据报文的发起者和接收者,收发各种报文,NFC就是IAC的网关。
2、镜像(Mirror)模式NFC在报文转发的过程中,根据要求,把特定的报文复制一份给IAC,原始报文继续完成正常的转发。而IAC收到这个报文以后进行分析和处理,然后将报文丢弃。这种模式下,镜像报文也是通过ILC以太口转发。
3、重定向(Redirection)模式这种模式下,NFC在报文转发过程中,根据要求,把特定的报文重定向给IAC。IAC处理以后,或丢弃,或通过。如果通过,则报文被原封不动的还给NFC,NFC则继续从当初中断的地方继续处理,完成后续的转发工作。这种模式下,重定向的报文也是通过ILC的以太口转发的。
4、穿透(Pass-Through)模式这种模式下,IAC没有配置IP地址,并且一定要有外在的以太网口,数据从这个接口流入,穿过IAC,经过ILC的以太网口到NFC,或者反方向。在NFC看来,外部数据像是直接到达了ILC的以太网口,IAC似乎根本不存在一样。
请参阅图2,一种时钟同步方法,用于完成第一部件和第二部件之间的时钟同步,包括S11第二部件接收第一部件下发的时钟同步报文,所述时钟同步报文中携带第一部件端的当前时间;S12第二部件根据所述时钟同步报文中的当前时间同步本端时钟。由于第一部件和第二部件之间的通信延时非常短,能够用本发明的这种非常简单的方案实现两部件的同步,避免采用现有技术中实现非常复杂的同步方案来实现两部件之间的时钟同步。
所述第一部件为开放应用架构中网络转发部件NFC,所述第二部件为独立业务部件IAC。请参阅图3,其为开放应用架构中时钟同步方法的流程图,它包括步骤S110IAC接收NFC下发的时钟同步报文,所述时钟同步报文中携带NFC端的当前时间;步骤S120IAC根据所述时钟同步报文中的当前时间同步本端时钟。
通过上述步骤,能够实现IAC和NFC之间的时钟同步。
以下具体说明上述过程。
NFC通常是在IAC处于正常状态下发送时钟同步报文。当然,NFC向IAC发送控制信息和数据信息的前提是IAC处于正常状态。为了检测IAC是否处于正常状态,本发明的NFC需要进行IAC心跳检测过程。
NFC对IAC进行心跳检测有多种实现方式。第一种实现方式为NFC与IAC预先约定用于表明IAC未出现异常的心跳报文的报文格式和发送间隔,该心跳报文是NFC与IAC预先约定的控制报文,它通常是串口格式数据。心跳报文可以只承载一心跳报文的标识。IAC定时发送心跳报文,当NFC在预先设定的时间内接收到该心跳报文,说明该IAC未出现异常。假设IAC以5秒为发送间隔向NFC发送心跳报文,则NFC在预先设定的时间周期(如15秒)内未收到任何一IAC发送的心跳报文,说明该IAC已出现异常,可以根据预先设定的指示处理该IAC出现异常,如发出报警等。
NFC与IAC之间不管采用上述四种工作模式下的哪一种或哪几种来工作,NFC与IAC之间都会发送各种报文。当NFC的接口(如以太网口)接收到报文后,通常将其按照类型转发至不同的处理模块去处理,不同的处理模块分别统计报文个数。比如,NFC与IAC之间通过各自的一复用以太网接口接收控制信息和数据信息,当NFC的复用以太网接口接收到以太网报文时,预先判断所述报文是否承载控制信息,若是,转发到对应的控制处理单元处理,并将承载控制信息的控制报文的个数N1加1,否则,转发到对应的数据处理单元处理,并将承载数据信息的数据报文的个数N2加1。IAC发出的所有报文(控制报文和数据报文)都可以看作是单板的“心跳”。
NFC对IAC进行心跳检测的第二种实现方式为设置一检测报文个数寄存器,它的初始值可以设定为0,NFC定时检测IAC的心跳,每一次检测IAC心跳时,将当前的控制报文个数N1与检测报文个数寄存储器中存储的值进行比较,若相同,则表明所述IAC处于异常状态,若不相同,将当前的控制报文个数N1保存到检测报文个数寄存器中。
NFC对IAC进行心跳检测的第三种实现方式为NFC定时检测IAC的心跳时,先检测当前的(N1+N2)与前一次检测IAC心跳时保存的数据报文的个数与控制报文的个数之和是否相同,若不相同,则说明该IAC处于正常状态,保存本次的(N1+N2),否则,说明IAC处于异常状态。
通过上述的心跳检测,NFC可获知IAC是否处于正常状态下。当IAC处于正常状态下时,NFC可以进行与IAC的时钟同步过程。
NFC可以按照预先设定的下发周期向IAC发送时钟同步报文。通常,NFC是根据同步精度要求来设定所述下发周期。比如,同步精度要求高的,下发周期短,同步精度要求低的,下发周期长。通过同步时钟协议报文的时钟同步的精度在秒级,默认为1分钟进行一次同步,同步的时间间隔的范围为1-1440分种,时钟间隔的最小单位可为分钟。时钟同步报文中至少携带NFC当前时间。当前时间可以包括年/月/日/时钟,也可以仅包括时钟时间(小时:分种:秒钟)。
NFC也可以接收到IAC发送的时钟同步请求报文后,下发时钟同步报文。IAC可以定时向NFC发送时钟同步请求报文,也可以事件触发式向NFC发送时钟同步请求报文。比如,当IAC需要和NFC进行某一数据通信前,先触发向NFC发送时钟同步请求报文,以便能实现与NFC时钟同步。
IAC接收到时钟同步报文后,IAC将本端的当前时间修改为所述时钟同步报文中的当前时间。
另外,本发明还可以预先计算NFC向IAC发送报文到IAC接收到报文之间的通信时间;IAC每次接收到时钟同步报文后,将本端的当前时间修改为所述时钟同步报文中的当前时间与所述通信时间之和。计算通信时间可以采用以下方案预先保存NFC与IAC的时间,计算出时间差T1,NFC向IAC发送一测量报文,所述报文中包含NFC当前时间T2,IAC接收到该测量报文后,记录本IAC当前时间T3,所述通信时间为T3-T2+T1。考虑到IAC与NFC处理报文的速度可能会存在偏差,在计算两者之间的通信时间时,可以多次计算通信时间后求平均值。
通过上述流程,能够实现IAC与NFC之间的时钟同步。并且这种方法实现简单。
一种开放应用架构,包括独立业务部件IAC和网络转发部件NFC。
请参阅图4,其为本发明开放应用架构中独立业务部件IAC的结构示意图。独立业务部件IAC,包括处理器11(CPU)、与NFC通信的接口14、存储单元(如内存12和闪存FLASH13),其中,所述处理器11包括时钟同步单元111IAC依据接收到NFC下发的时钟同步报文同步本IAC的时钟,所述时钟同步报文中携带NFC端的当前时间。
所述时钟同步单元111进一步为通信时间计算子单元预先计算NFC向IAC发送报文到IAC接收到报文之间的通信时间;本端时间修改子单元将本端的当前时间修改为所述时钟同步报文中的当前时间与所述通信时间之和。
所述时钟同步单元111还可以进一步包括本端时间修改子单元将本端的当前时间直接修改为所述时钟同步报文中的当前时间。
当时钟同步是需要IAC发出时,还需要包括时钟同步请求单元112用于定时向NFC发送时钟同步请求报文。
另外,NFC若需要检测IAC的工作是否正常时,在IAC上还可以设置心跳请求单元113用于定期向NFC发送用于表明本IAC正常的心跳报文,所述心跳报文为IAC与NFC之间预先约定的控制报文。
上述公开的单元通常可以集成在IAC的处理器11上,通常软件来完成各自的功能。
请参阅图5,其为开放应用架构中网络转发部件的一结构示意图。网络转发部件NFC12,包括处理器21(CPU)、与IAC通信的接口24、存储单元(如内存22和闪存FLASH23),其中,所述处理器22包括时钟同步处理单元211用于预先设定的下发周期向IAC发送时钟同步请求报文或接收到时钟同步请求报文后向IAC发送时钟同步请求报文,所述时钟同步报文中携带NFC端的当前时间。
NFC还可以包括心跳检测单元212用于检测IAC是否出现异常。
检测IAC是否出现异常第一种实现方式为NFC与IAC预先约定用于表明IAC未出现异常的心跳报文的报文格式和发送间隔,该心跳报文是NFC与IAC预先约定的控制报文,它通常是串口格式数据。心跳报文可以只承载一心跳报文的标识。IAC定时发送心跳报文,当NFC在预先设定的时间内接收到该心跳报文,说明该IAC未出现异常。假设IAC以5秒为发送间隔向NFC发送心跳报文,则NFC在预先设定的时间周期(如15秒)内未收到任何一IAC发送的心跳报文,说明该IAC已出现异常,可以根据预先设定的指示处理该IAC出现异常,如发出报警等。
NFC对IAC进行心跳检测的第二种实现方式为NFC定时检测IAC的心跳时,先检测当前的N1与前一次检测IAC心跳时保存的数据报文的个数是否相同,若不相同,则说明该IAC处于正常状态,保存本次的N2;否则,检测当前的N2与前一次检测IAC心跳时保存的控制报文的个数是否相同,若不相同,则说明该IAC处于正常状态,保存本次的N2否则说明该IAC处于异常状态。
NFC对IAC进行心跳检测的第三种实现方式为NFC定时检测IAC的心跳时,先检测当前的(N1+N2)与前一次检测IAC心跳时保存的数据报文的个数与控制报文的个数之和是否相同,若不相同,则说明该IAC处于正常状态,保存本次的(N1+N2),否则,说明IAC处于异常状态。
时钟同步处理单元211和心跳检测单元212通常集成在NFC的处理器上,由软件来实现。
以上公开的仅为本发明的几个具体实施例,但本发明并非局限于此,任何本领域的技术人员能思之的变化,都应落在本发明的保护范围内。
权利要求
1.一种时钟同步方法,用于实现第一部件和第二部件之间的时钟同步,其特征在于,所述第一部件为开放应用架构中的网络转发部件NFC,所述第二部件为开放应用架构中的独立业务部件IAC,包括(1)IAC接收NFC下发的时钟同步报文,所述时钟同步报文中携带NFC的当前时间;(2)IAC根据所述时钟同步报文中的当前时间同步本端时钟。
2.如权利要求1所述的方法,其特征在于,还包括NFC以预先设定的下发周期向IAC发送时钟同步报文。
3.如权利要求2所述的方法,其特征在于,NFC是根据同步精度要求设定所述下发周期。
4.如权利要求1所述的方法,其特征在于,还包括IAC向NFC发送时钟同步请求报文;NFC接收到时钟同步请求报文后,下发时钟同步报文。
5.如权利要求2或4所述的方法,其特征在于,本方法还包括预先计算NFC向IAC发送报文到IAC接收到报文之间的通信时间;步骤(2)为IAC将本端的当前时间修改为所述时钟同步报文中的当前时间与所述通信时间之和。
6.如权利要求2或4所述的方法,其特征在于,步骤(2)为IAC将本端的当前时间修改为所述时钟同步报文中的当前时间。
7.如权利要求1所述的方法,其特征在于,还包括NFC在下发时钟同步报文之前,先确定IAC是否出现异常,在IAC正常情况下才下发时钟同步报文。
8.如权利要求7所述的方法,其特征在于,NFC确定IAC是否出现异常具体为IAC定期发送用于表明本IAC正常的心跳报文,所述心跳报文为IAC与NFC之间预先约定的控制报文;NFC依据是否接收到心跳报文来确定IAC是否出现异常。
9.如权利要求7所述的方法,其特征在于,NFC确定IAC是否出现异常具体为a1NFC检测接收到的IAC发送的数据报文的个数是否变化,若是,所述IAC未发生异常,否则,进行步骤a2;a2NFC检测接收到的所述IAC发送的控制报文的个数是否变化,若是,所述IAC未发生异常,否则,所述IAC已发生异常,或者为b1设置一检测报文个数寄存器;b2NFC定时检测IAC的心跳,每一次检测IAC心跳时,将当前的控制报文个数N1与检测报文个数寄存储器中存储的数值进行比较,若相同,则表明所述IAC处于异常状态,若不相同,将当前的控制报文个数N1保存到检测报文个数寄存器中,所述IAC未发生异常,或者为NFC定时检测IAC的心跳时,先检测当前的数据报文个数和控制报文个数N1+N2与前一次检测IAC心跳时保存的数据报文的个数与控制报文的个数之和是否相同,若不相同,则说明该IAC处于正常状态,保存本次的N1+N2,否则,说明IAC处于异常状态。
10.一种应用时钟同步的第二部件,其特征在于,所述第二部件为开放应用架构中的独立业务部件IAC,包括时钟同步单元IAC依据接收到NFC下发的时钟同步报文同步本IAC的时钟,所述时钟同步报文中携带NFC端的当前时间。
11.如权利要求10所述的第二部件,其特征在于,还包括时钟同步请求单元用于定时向NFC发送时钟同步请求报文。
12.如权利要求10所述的第二部件,其特征在于,所述时钟同步单元进一步为通信时间计算子单元预先计算NFC向IAC发送报文到IAC接收到报文之间的通信时间;本端时间修改子单元将本端的当前时间修改为所述时钟同步报文中的当前时间与所述通信时间之和,或者所述时钟同步单元进一步包括本端时间修改子单元将本端的当前时间直接修改为所述时钟同步报文中的当前时间。
13.如权利要求12所述的第二部件,其特征在于,还包括心跳请求单元用于定期向NFC发送用于表明本IAC正常的心跳报文,所述心跳报文为IAC与NFC之间预先约定的控制报文。
14.一种应用时钟同步的第一部件,其特征在于,所述第一部件为开放应用架构中的网络转发部件NFC,包括时钟同步处理单元用于预先设定的下发周期向IAC发送时钟同步请求报文或接收到时钟同步请求报文后向IAC发送时钟同步请求报文,所述时钟同步报文中携带NFC端的当前时间。
全文摘要
一种时钟同步方法,用于完成第一部件和第二部件之间的时钟同步,包括(1)第二部件接收第一部件下发的时钟同步报文,所述时钟同步报文中携带第一部件端的当前时间;(2)第二部件根据所述时钟同步报文中的当前时间同步本端时钟。由于第一部件和第二部件之间的通信延时非常短,能够用本发明的这种非常简单的方案实现两部件的同步,避免采用现有技术中实现非常复杂的同步方案来实现两部件之间的时钟同步。本发明还公开了应用该方法的第一部件和第二部件。
文档编号H04L12/58GK1925386SQ20061014072
公开日2007年3月7日 申请日期2006年9月30日 优先权日2006年9月30日
发明者陈国华, 王飓 申请人:杭州华为三康技术有限公司