精确时间协议报文冗余路径标识方法和系统
技术领域
本发明涉及电工技术领域,尤其涉及电工通信技术,特别是涉及一种精确时间协议报文冗余路径标识方法和系统。
背景技术
并行冗余协议(Parallel Redundancy Protocol,PRP)的基本思路是通过支持PRP的网络节点(DANP)为系统提供冗余。每个DANP有两个独立以太网端口,分别是port A和port B,这两个以太网端口使用相同MAC地址和IP地址,并同时连接在链路冗余实体上。当链路冗余实体收到上层协议发送的报文后,将该报文帧复制并同时从两个网卡端口对外发送,先抵达目标网络节点的帧被链路冗余实体接受并发送给上层协议,后抵达的帧则将被链路冗余实体丢弃,不再到达更上一层。由于这样的机制,并行冗余协议对链路层之上的协议,具有良好的兼容性,完全支持智能变电站MMS(Manufacturing MessageSpecification,制造报文规范)、GOOSE(Generic Object Oriented Substation Event,面向通用对象的变电站事件)和SMV(Sampled Values,采样值)数据通信。对于不支持并行冗余协议的单端口网络节点SAN,推荐通过Red Box(冗余盒)接入双网,使之具备并行冗余协议能力。在这种网络并行冗余之下,即使一个网络出现故障,仍有另一套网络及各设备的冗余端口是正常工作的,系统可无延时自愈。
精确时间协议(Precision time protocol,PTP或IEEE 1588)是一种网络时间同步协议,具有亚微秒级的时间同步性能。在系统的同步过程中,主时钟周期性发布PTP时间同步协议及时间信息,传输路径上的设备需要修改报文的修正域(correction Field)以反映该报文在本装置内的驻留时间,从时钟端口接收主时钟端口发来的时间信息,系统据此计算出主从线路时间延迟及主从时间差,并利用该时间差调整本地时间,使从设备时间保持与主设备时间一致。
并行冗余协议提供了两套物理上完全分开的冗余通信路径,而精确时间协议又是一种与通信路径上的延时相关的通信对时协议,当精确时间协议通过并行冗余协议网络传输时,按照国际标准IEC 62439-3的2.0版本的描述,相关主要说明包括:①对于精确时间协议报文来说,并行冗余协议的RCT(Redundancy Check Trailer,冗余标识符)标识是不可信赖的;②从时钟应将两个端口收到的时钟视为互相独立的时钟,就像它们是来自互相独立的时钟源一样;③从时钟应该将两个端口收到的所有精确时间协议报文各自独立处理。国际标准中虽然提出了上述要求,但是并没有给出具体的实现方法。那如何在精确时间协议报文通过并行冗余网络之后能够被正确识别冗余路径(传输路径)成为一个亟待解决的问题。
发明内容
有鉴于此,提供一种精确时间协议报文冗余路径标识方法和系统,可以实现在精确时间协议报文通过并行冗余网络之后能够被正确识别冗余路径,且实现简单、兼容性强、可靠性高。
第一方面,提供一种精确时间协议报文冗余路径标识方法,包括:
获取目标精确时间协议报文中的源时钟标识所包含的端口号,所述端口号长度为2字节;
修改所述2字节中的高字节,修改后的所述高字节用于标识所述目标精确时间协议报文的冗余路径信息,不同的冗余路径对应的修改后的所述高字节不同。
结合第一方面,在第一方面的一种可能实现方式中,所述2字节中的低字节保持不变。
结合第一方面或上述某些可能的实现方式,在第一方面的一种可能实现方式中,所述修改所述2字节中的高字节的步骤包括:
将所述高字节的高n位修改为预设的代表第一冗余路径的第一数字,或者将所述高字节的高n位修改为预设的代表第二冗余路径的第二数字,其中,n为小于8的正整数。
结合第一方面或上述某些可能的实现方式,在第一方面的一种可能实现方式中,所述修改所述2字节中的高字节的步骤还包括:
将所述高字节的低m位修改为与所述2字节中的低字节的低m位完全一致,以作为检验一个精确时间协议报文是否按照修改端口号的高字节的方式标识了冗余路径信息的依据,其中,n+m=8。
结合第一方面或上述某些可能的实现方式,在第一方面的一种可能实现方式中,本发明的精确时间协议报文冗余路径标识方法,还可以包括:
在修改所述高字节之后,重新计算并更新修改后的所述目标精确时间协议报文的CRC校验值。
结合第一方面或上述某些可能的实现方式,在第一方面的一种可能实现方式中,所述获取目标精确时间协议报文中的源时钟标识所包含的端口号的步骤包括:
确定所述精确时间协议报文中的通用信息头的所在位置;
根据所述通用信息头的所在位置、所述源时钟标识在所述通用信息头中的起始偏移地址以及所述源时钟标识的长度确定所述源时钟标识的所在位置;
根据所述源时钟标识的所在位置、所述端口号在所述源时钟标识中的起始偏移地址以及所述端口号的长度确定所述端口号;
其中,所述源时钟标识在通用信息头中的起始偏移地址为20字节,长度为10字节;所述端口号在所述源时钟标识中的起始偏移地址为8字节。
第二方面,提供一种精确时间协议报文冗余路径标识系统,包括:
端口号查询单元,用于获取目标精确时间协议报文中的源时钟标识所包含的端口号,所述端口号长度为2字节;
字节修改单元,用于修改所述2字节中的高字节,修改后的所述高字节用于标识所述目标精确时间协议报文的冗余路径信息,不同的冗余路径对应的修改后的所述高字节不同。
结合第二方面,在第二方面的一种可能实现方式中,所述2字节中的低字节保持不变。
结合第二方面或上述某些可能的实现方式,在第二方面的一种可能实现方式中,所述字节修改单元将所述高字节的高n位修改为预设的代表第一冗余路径的第一数字,或者将所述高字节的高n位修改为预设的代表第二冗余路径的第二数字;将所述高字节的低m位修改为与所述2字节中的低字节的低m位完全一致,以作为检验一个精确时间协议报文是否按照修改端口号的高字节的方式标识了冗余路径信息的依据;其中,n为小于8的正整数,n+m=8。
结合第二方面或上述某些可能的实现方式,在第二方面的一种可能实现方式中,所述端口号查询单元确定所述精确时间协议报文中的通用信息头的所在位置,根据所述通用信息头的所在位置、所述源时钟标识在所述通用信息头中的起始偏移地址以及所述源时钟标识的长度确定所述源时钟标识的所在位置,根据所述源时钟标识的所在位置、所述端口号在所述源时钟标识中的起始偏移地址以及所述端口号的长度确定所述端口号,其中,所述源时钟标识在通用信息头中的起始偏移地址为20字节,长度为10字节;所述端口号在所述源时钟标识中的起始偏移地址为8字节。
结合第二方面或上述某些可能的实现方式,在第二方面的一种可能实现方式中,本发明的精确时间协议报文冗余路径标识系统,还可以包括:
校验值更新单元,用于在所述字节修改单元修改所述高字节之后,重新计算并更新修改后的所述目标精确时间协议报文的CRC校验值。
根据上述精确时间协议报文冗余路径标识方法和系统的方案,其是通过修改精确时间协议报文中源时钟标识的端口号的方法来标识和区分两个不同冗余路径信息,同时,在修改精确时间协议报文中源时钟标识的端口号时,只修改该端口号两个字节中的高字节,解决了由于精确时间协议报文在并行冗余协议网络之后,通道路径信息都会被删除而无法区分不同通信通道(同冗余路径信息)的信息,实现了在精确时间协议报文通过并行冗余网络之后能够被正确识别冗余路径,且该方案具有实现简单、兼容性强、可靠性高等优点。
附图说明
图1为在并行冗余协议网络中应用精确时间协议的系统示意图;
图2为一个实施例中的精确时间协议报文冗余路径标识方法的实现流程示意图;
图3为另一个实施例中的精确时间协议报文冗余路径标识方法的实现流程示意图;
图4为精确时间协议以太网帧报文结构及端口偏移位置示意图;
图5为一个实施例中的精确时间协议报文冗余路径标识系统的实现流程示意图;
图6为另一个实施例中的精确时间协议报文冗余路径标识系统的组成结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步的详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本发明,并不限定本发明的保护范围。
在并行冗余协议网络中应用精确时间协议的系统,如附图1所示,当精确时间协议报文通过接收端(PTP从时钟)的PortA和PortB到达冗余模块之后,冗余模块会移除其中所包含的RCT字段,RCT字段是指国际标准IEC 62439-3中定义的用来标识和区分双通道专用字段,是英文Redundancy Check Trailer的缩写。当该字段移除后,就不再具备识别来源通道的能力,所以,图1中的PTP从时钟要实现标准要求的如下功能就会遇到困难:①对于精确时间协议报文来说,并行冗余协议的RCT标识是不可信赖的;②从时钟应将两个端口收到的时钟视为互相独立的时钟,就像他们是来自互相独立的时钟源一样;③从时钟应该将两个端口收到的所有精确时间协议报文各自独立处理。为此,本发明方案提供了一种精确时间协议报文冗余路径标识方案。可以实现在精确时间协议报文通过并行冗余网络之后能够被正确识别冗余路径。以下对本发明方案进行详细阐述。
如图2所示,在其中一个实施例中,提供了一种精确时间协议报文冗余路径标识方法,该方法以在并行冗余网络中标识精确时间协议报文冗余路径为例进行说明。该实施例中的精确时间协议报文冗余路径标识方法包括:
步骤S101:获取目标精确时间协议报文中的源时钟标识所包含的端口号,所述端口号长度为2字节;
这里,所述目标精确时间协议报文一般是指符合IEC 61588之2009年版本的标准规定的精确时间协议报文,在目标精确时间协议报文中的源时钟标识含有长度为2字节的端口号。
具体地,可以首先查询到目标精确时间协议报文中的源时钟标识所包含的端口号的所在位置,再根据该端口号的所在位置确定该端口号。
步骤S102:修改所述2字节中的高字节,修改后的所述高字节用于标识所述目标精确时间协议报文的冗余路径信息,不同的冗余路径对应的修改后的所述高字节不同。
这里,修改所述2字节中的高字节可以是修改所述高字节的全部位或者部分位。
本实施例中,通过修改端口号的高字节而不是低字节是考虑到大部分时钟源在定义端口时都是从1开始的,而且一般都远远小于255,也就是说,仅需要用到低字节的范围,而高字节基本上都是0,因此,修改高字节既不会导致与原定义的端口的冲突,又可以达到区分冗余路径信息的目的。
据此,根据上述本实施例中的方案,其是通过修改精确时间协议报文中源时钟标识的端口号的方法来标识和区分两个不同冗余路径信息,同时,在修改精确时间协议报文中源时钟标识的端口号时,只修改该端口号两个字节中的高字节,解决了由于精确时间协议报文在并行冗余协议网络之后,通道路径信息都会被删除而无法区分不同通信通道(同冗余路径信息)的信息,可以实现在精确时间协议报文通过并行冗余网络之后能够被正确识别冗余路径,且该方案具有实现简单、兼容性强、可靠性高等优点。
本领域技术人员应该可以理解,在修改所述2字节中的高字节之后,由于修改后的所述高字节用于标识所述目标精确时间协议报文的冗余路径信息,不同的冗余路径对应的修改后的所述高字节不同,因此,可以通过识别所述端口号高字节的方式辨识出相应的精确时间协议报文对应哪个冗余路径。
可选的,作为一个实施例中,在图1所示的实施例中,所述2字节中的低字节保持不变,从而保证不影响修改前的端口号中定义的端口。
在其中一个实施例中,所述修改所述2字节中的高字节的步骤可以包括:将所述高字节的任意设定的n位修改为预设的代表第一冗余路径的第一数字,或者将所述高字节的任意设定的n位修改为预设的代表第二冗余路径的第二数字,其中,n为小于8的正整数。
在本实施例中,第一数字和第二数字可以根据实际需要选取,例如,第一数字为2,第二数字为3,但也不限于此。其中,n的大小可以根据实际需要选择,例如,一般选择4为宜,但也不限于此。此处,具体选择哪n位可以根据实际需要确定,但一般以高n位为宜。
在其中一个实施例中,所述修改所述2字节中的高字节的步骤可以包括:将所述高字节的高n位修改为预设的代表第一冗余路径的第一数字,或者将所述高字节的高n位修改为预设的代表第二冗余路径的第二数字,其中,n为小于8的正整数。
具体地,以第一数字为2、第二数字为3、任意设定的n位指高4位为例进行说明。若将所述高字节的高4位修改2,则代表第一冗余路径(图1中的A通道),若将所述高字节的高4位修改3,则代表第二冗余路径(图1中的B通道)。
此外,为了能够校验出一个精确时间协议报文是否按照上述方式进行了修改,或者说为了能够校验一个精确时间协议报文中的源时钟标识所包含的端口号中是否含有冗余路径信息,在其中一个实施例中,所述修改所述2字节中的高字节还可以包括:将所述高字节的剩余的m位修改为与所述2字节中的低字节的位置对应的m位完全一致,以作为检验一个精确时间协议报文是否按照修改端口号的高字节的方式标识了冗余路径信息的依据,其中,n+m=8。
但考虑到对端口的定义是低字节的范围,且在低字节的低位上,则低字节的高位上为0可能性较大,不适宜作为校验依据。因此,较佳的方式是:将所述高字节的低m位修改为与所述2字节中的低字节的低m位完全一致,以作为检验一个精确时间协议报文是否按照修改端口号的高字节的方式标识了冗余路径信息的依据,其中,n+m=8。
此外,在其中一个实施例中,本发明的精确时间协议报文冗余路径标识方法,如图3所示,还可以包括:
步骤S103:在修改所述高字节之后,重新计算并更新修改后的所述目标精确时间协议报文的CRC(Cyclic Redundancy Check,循环冗余校验码)校验值。
采用本实施例中的方案是考虑到,根据以太网协议要求,在报文被修改后需要重新计算并更新修改后的报文的CRC校验值,否则这个数据帧就不对,会被在网络上丢弃,因此,采用本实施例中的方案,可以避免修改后的目标精确时间协议报文被网络丢弃。
在其中一个实施例中,上述的获取目标精确时间协议报文中的源时钟标识所包含的端口号的步骤可以包括:确定所述精确时间协议报文中的通用信息头的所在位置;根据所述通用信息头的所在位置、所述源时钟标识在所述通用信息头中的起始偏移地址以及所述源时钟标识的长度确定所述源时钟标识的所在位置;根据所述源时钟标识的所在位置、所述端口号在所述源时钟标识中的起始偏移地址以及所述端口号的长度确定所述端口号;
其中,所述源时钟标识在通用信息头中的起始偏移地址为20字节,长度为10字节;所述端口号在所述源时钟标识中的起始偏移地址为8字节。
需要说的是获取目标精确时间协议报文中的源时钟标识所包含的端口号的方式也不限于本实施例中提到的方式。
如图4所示,为精确时间协议以太网报文帧结构及端口偏移位置示意图。上述所修改的精确时间协议报文中源时钟标识的端口号,是指符合IEC 61588之2009年版本的标准规定的精确时间协议报文之源时钟标识所含的端口号,所述源时钟标识在IEC 61588之2009年版本的标准的通用信息头中定义,起始偏移地址为20字节,长度为10字节,英文简称source Port Identity,所述端口号在所述源时钟标识中起始偏移地址为8字节,长度为2字节。如图3中所示,假定精确时间协议报文中不含VLAN(Virtual Local Area Network,虚拟局域网)标志,那么端口号字段的起始偏移地址是42字节,对应于它在通用头部中的起始偏移地址是28字节。
根据上述实施例中的精确时间协议报文冗余路径标识方法,本发明还提供一种精确时间协议报文冗余路径标识系统。在其中一个实施例中,如图5所示,本发明实施例的精确时间协议报文冗余路径标识系统包括端口号查询单元201和字节修改单元202,其中:
端口号查询单元201,用于获取目标精确时间协议报文中的源时钟标识所包含的端口号,所述端口号长度为2字节;
字节修改单元202,用于修改所述2字节中的高字节,修改后的所述高字节用于标识所述目标精确时间协议报文的冗余路径信息,不同的冗余路径对应的修改后的所述高字节不同。
在其中一个实施例中,所述2字节中的低字节保持不变。
在其中一个实施例中,字节修改单元202可以将所述高字节的任高n位修改为预设的代表第一冗余路径的第一数字,或者将所述高字节的高n位修改为预设的代表第二冗余路径的第二数字;将所述高字节的低m位修改为与所述2字节中的低字节的低m位完全一致,以作为检验一个精确时间协议报文是否按照修改端口号的高字节的方式标识了冗余路径信息的依据;其中,n为小于8的正整数,n+m=8。
在其中一个实施例中,端口号查询单元201可以确定所述精确时间协议报文中的通用信息头的所在位置,根据所述通用信息头的所在位置、所述源时钟标识在所述通用信息头中的起始偏移地址以及所述源时钟标识的长度确定所述源时钟标识的所在位置,根据所述源时钟标识的所在位置、所述端口号在所述源时钟标识中的起始偏移地址以及所述端口号的长度确定所述端口号,其中,所述源时钟标识在通用信息头中的起始偏移地址为20字节,长度为10字节;所述端口号在所述源时钟标识中的起始偏移地址为8字节
在其中一个实施例中,如图6所示,本发明的精确时间协议报文冗余路径标识系统,还可以包括:
校验值更新单元203,用于在字节修改单元202修改所述高字节之后,重新计算并更新修改后的所述目标精确时间协议报文的CRC校验值。
本发明实施例提供的精确时间协议报文冗余路径标识系统的描述,与上述精确时间协议报文冗余路径标识方法的描述是类似的,并且具有上述精确时间协议报文冗余路径标识方法的有益效果,为节约篇幅,不再赘述;因此,以上对本发明实施例提供的精确时间协议报文冗余路径标识系统中未披露的技术细节,请参照上述提供的精确时间协议报文冗余路径标识方法的描述。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。