CN103634208A - 防止ptp tc环网中环路的方法和装置 - Google Patents
防止ptp tc环网中环路的方法和装置 Download PDFInfo
- Publication number
- CN103634208A CN103634208A CN201310612834.3A CN201310612834A CN103634208A CN 103634208 A CN103634208 A CN 103634208A CN 201310612834 A CN201310612834 A CN 201310612834A CN 103634208 A CN103634208 A CN 103634208A
- Authority
- CN
- China
- Prior art keywords
- port
- ptp
- node
- priority vector
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了防止PTP TC环网中环路的方法和装置。本发明通过针对PTPTC环网中的TC节点确定该TC节点上PTP端口担任的端口角色,并在PTP端口担任的端口角色为Passive角色时,控制该PTP端口仅继续发送TC报文但阻塞所有PTP报文,这能够避免PTP报文在PTP TC环网中进行环路转发。
Description
技术领域
本申请涉及网络通信技术,特别涉及防止精确时间协议(PTP:Precision Time Protocol)透明时钟(TC:Transparent Clock)环网中环路的方法和装置。
背景技术
PTP是一种时间同步的协议,其本身只是用于设备之间的高精度时间同步,但也可被借用于设备之间的频率同步。应用了PTP协议的网络称为PTP域。PTP域中的节点称为时钟节点,时钟节点上运行了PTP协议的端口则称为PTP端口。PTP协议定义了以下三种类型的时钟节点:
普通时钟(OC:Ordinary Clock)节点:在同一个PTP域内OC节点只有一个PTP端口参与时间同步,通过该参与时间同步的PTP端口从上游的时钟节点同步时间。此外,当OC节点作为时钟源时,也只通过该参与时间同步的PTP端口向下游时钟节点发布时间。
边界时钟(BC:Boundary Clock)节点:在同一个PTP域内BC节点拥有多个PTP端口参与时间同步,通过其中一个端口从上游的时钟节点同步时间,并通过其余端口向下游时钟节点发布时间。此外,当时钟节点作为时钟源时,可以通过多个PTP端口向下游时钟节点发布时间的。
TC节点:与BC节点/OC节点相比,TC节点不与同一个PTP域内其它时钟节点保持时间同步。TC节点有多个PTP端口,但它只在这些端口间转发PTP协议报文并对其进行转发延时校正,而不会通过任何一个PTP端口同步时间。
图1示出了上述三种时钟节点在PTP域中的位置。
除了上述三种类型的时钟节点以外,PTP协议还定义了一些混合时钟节 点,譬如融合了TC节点和OC节点各自特点的TC+OC节点:它在同一个PTP域内拥有多个PTP端口,其中一个端口为OC类型,其它端口则为TC类型。一方面,它通过TC类型的端口转发PTP协议报文并对其进行转发延时校正;另一方面,它通过OC类型的端口进行时间的同步。
在同一个PTP域内,对于相互同步的一对时钟节点来说,存在如下主从关系:
主/从节点:发布同步时间的时钟节点称为主节点(Master Node),而接收同步时间的时钟节点则称为从节点(Slave Node)。
主/从时钟:主节点上的时钟称为主时钟(Master Clock),而从节点上的时钟则称为从时钟(Slave Clock)。
主/从端口:时钟节点上发布同步时间的PTP端口称为主端口(Master Port),而接收同步时间的PTP端口则称为从端口(Slave Port),主端口和从端口均可存在于BC或OC上。此外,还存在一种既不发布也不接收同步时间的PTP端口,称为被动端口(Passive Port)。
在PTP域中,可从PTP域的BC节点和OC节点中通过手工配置静态指定一个节点作为PTP域的最优时钟(GM:Grandmaster Clock)节点,或者通过动态选举的过程从PTP域中选举一个节点作为PTP域的GM节点。
GM节点的时间通过各时钟节点间PTP协议报文的交互最终将被同步到整个PTP域中,因此GM节点也称为时钟源。与此同时,各时钟节点之间的主从关系以及各节点上的主从端口也确定了下来。通过这个过程,整个PTP域中建立起了一棵无环路、全连通,并以最优时钟为根的生成树。
在PTP域中,TC节点之间可连接成环形结构,该环形称为PTP TC环网。图2示出了PTP TC环网结构示意图。PTP域中存在PTP TC环网时,通常依靠在TC节点上部署外部协议(如生成树协议)来避免环路。以图2所示,TC1~TC4之间的所有PTP端口为二层以太网接口,可以部署生成树协议防止TC1~TC4间形成环路,同时增强PTP域的可靠性。而如果C1~C4间连接的PTP端口不支持避免环路的协议比如生成树协议,则就无法防止PTP TC环网中的环路。或者,选择以太(Ethernet)封装PTP报文时,PTP报文的目的MAC地址可以是0180-C200-000E,也可以是011B-1900-0000,而当目的MAC地址为0180-C200-000E时,即使是C1~C4间连接的PTP端口支持避免环路的协议比如生成树协议,也无法防止PTP TC环网中的环路。
发明内容
本申请提供了防止PTP TC环网中环路的方法和装置,以避免PTP报文在PTP TC环网中环路传输。
本申请提供的技术方案包括:
一种防止精确时间协议PTP透明时钟TC环网中环路的方法,所述PTP TC环网为PTP域中由TC节点组成的环网,该方法应用于所述PTP TC环网中的TC节点,包括:
以设定周期通过本TC节点上的至少一个PTP端口发送TC报文,PTP端口发送的TC报文携带了PTP端口的master优先级向量的部分数据;
在第一设定时间内通过本TC节点上的PTP端口接收到TC报文时,依据该接收的TC报文携带的master优先级向量的部分数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色;PTP端口担任的端口角色包括:备用slave角色、master角色、被动passive角色;
在第二设定时间内通过本TC节点上的PTP端口接收到PTP规定的Announce报文、但未在第一设定时间内接收到TC报文时,依据该接收的Announce报文携带的用于组成master优先级向量的数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色;
在本TC节点上存在担任passive角色的PTP端口时,控制该担任Passive角色的PTP端口丢弃后续除TC报文之外的PTP报文,所述PTP报文为PTP规定的报文。
一种防止精确时间协议PTP透明时钟TC环网中环路的装置,PTP TC环网由PTP域中包含至少一个PTP端口的TC节点组成,该装置应用于TC 节点,包括:
存储单元,用于存储本TC节点上PTP端口的主用master优先级向量和端口优先级向量;
发送单元,用于以设定周期通过本TC节点上的至少一个PTP端口发送TC报文,PTP端口发送的TC报文携带了PTP端口的master优先级向量的部分数据;
确定单元,用于在第一设定时间内通过本TC节点上的PTP端口接收到TC报文时,依据该接收的TC报文携带的master优先级向量的部分数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色;以及,
在第二设定时间内通过本TC节点上的PTP端口接收到PTP规定的Announce报文、但未在第一设定时间内接收到TC报文时,依据该接收的Announce报文携带的用于组成master优先级向量的数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色;其中,PTP端口担任的端口角色包括:备用slave角色、主用master角色、被动passive角色;
控制单元,用于在本TC节点上存在担任passive角色的PTP端口时,控制该担任Passive角色的PTP端口丢弃后续除TC报文之外的PTP报文,所述PTP报文为PTP规定的报文。
由以上技术方案可以看出,本发明中,通过针对PTP TC环网中的TC节点确定该TC节点上PTP端口担任的端口角色,并在PTP端口担任的端口角色为Passive角色时,控制该PTP端口仅继续发送TC报文但阻塞所有PTP报文,这能够避免PTP报文在PTP TC环网中进行环路转发。
附图说明
图1为PTP域中时钟节点分布示意图;
图2为PTP域中PTP TC环网结构示意图;
图3为本发明提供的方法流程图;
图4为本发明提供的TC报文的结构示意图;
图5为本发明提供的实施例实现流程图;
图6为本发明提供的步骤505实现流程图;
图7为本发明提供的实例组网结构示意图;
图8为本发明提供的装置结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明提供的方法包括图3所示流程:
参见图3,图3为本发明提供的方法流程图。该方法应用于PTP TC环网中的TC节点。这里,PTP TC环网为PTP域中由TC节点组成的环网,比如图2所示的由TC1~TC4组成的环网。
其中,TC节点的PTP端口都配置了对应的主用(master)优先级向量和端口优先级向量,下文针对PTP端口的master优先级向量和端口优先级向量进行描述,这里暂不赘述。
如图3所示,PTP TC环网中的TC节点执行以下步骤:
步骤301,以设定周期通过本TC节点上的至少一个PTP端口发送TC报文。
在本发明中,TC报文并不属于PTP中的报文,其是为实现本发明特别构造的。
作为本发明的一个实施例,构造的TC报文是在PTP中原有的通告(Announce)报文基础上进行的改进。具体改进如下:将Announce报文的报文类型字段(Message Type)设置为用于表示TC报文的值,该值区分PTP规定的用于表示Announce报文的值,并且,将Announce报文的第46字节 至第47字节之间的保留字段修改为用于TC优先级字段(TCPriority),而Announce报文的其他字段保持不变,被TC报文继承。图4示出了TC报文的结构。
在图4所示的TC报文中,TCPriority取值含义如下:
第一值,比如取值为0,用于指示高优先级,其表示TC节点或者TC节点连接的上游节点直接连接了OC节点或BC节点;
第二值,比如取值为1,用于指示低优先级,其表示TC节点或者TC节点连接的上游节点未直接连接OC节点或BC节点。
以上对本发明提供的TC报文进行了描述。优选地,本发明中,为隔离TC节点与PTP域中的其他节点比如OC节点、BC节点、甚至融合了TC节点和OC节点的TC+OC节点等,本发明中,该TC报文只在TC节点之间进行交互,而PTP域中除TC节点之外的其他节点比如OC节点、BC节点、甚至融合了TC节点和OC节点的TC+OC节点等接收到TC报文时,不对该TC报文执行任何处理,即丢弃该TC报文,这保证了TC报文只在TC节点之间进行交互,相当于TC内部实例。
需要说明的是,本步骤301中,PTP端口发送的TC报文携带了PTP端口的master优先级向量的部分数据。下文在描述完PTP端口的master优先级向量后,会针对TC报文携带了PTP端口的master优先级向量的部分数据进行描述,这里暂不赘述。
步骤302,在第一设定时间之内通过本TC节点上的PTP端口接收到TC报文,执行步骤303,在第二设定时间之内通过本TC节点上的PTP端口接收到Announce报文、但未在第一设定时间内接收到TC报文时,执行步骤304。
作为本发明的一个实施例,在步骤302中,第一设定时间与第二设定时间无关,其中,第一设定时间依赖于TC报文的发送周期设置,第二设定时间依赖于Announce报文报文的发送周期设置。其中,TC报文的发送周期与Announce报文报文的发送周期可以相同,也可以不同,本发明并不具体限定。
基于上面描述的TC报文和Announce报文,可以看出,TC报文和Announce报文的Message Type不同,基于此,本步骤302中,当通过本TC节点上的一PTP端口接收到报文时,识别该报文的Message Type取值,如果取值为用于表示TC报文的值时,则确认接收的报文为TC报文,如果取值为PTP规定的用于表示Announce报文的值,则确认接收的报文为Announce报文。
需要说明的是,PTP域中除TC节点之外的其他节点比如OC节点或BC节点会主动发送Announce报文,但如上所述,不会主动发送TC报文,也不会处理TC报文,而PTP域中的TC节点虽然不会主动发送Announce报文,也不会转发收到的TC报文,只会转发收到的Announce报文,但可以主动发送TC报文。因此,本发明中,如果本TC节点上的一PTP端口在第一设定时间内接收的报文为TC报文,也就意味着该PTP端口直接连接TC节点;反之,当本TC节点上的一PTP端口在第二设定时间内接收的报文为Announce报文,而没有在第一设定时间内收到TC报文,由于TC报文是TC节点主动发送的,则意味着该PTP端口非直接连接到TC节点,而可能是直接连接到非TC节点,比如OC节点或BC节点等。
需要说明的是,本发明中,TC节点之所以不会直接转发收到的TC报文,原因是:如步骤301描述,TC报文携带master优先级向量的部分数据,而master优先级向量的部分数据依赖于收到的TC报文携带的数据,具体如图6所示,基于此,可以看出,本发明中TC节点会依据收到的TC报文携带的数据对本地master优先级向量进行改进,之后主动发送TC报文(该主动发送的TC报文携带了改进后的本地master优先级向量的部分数据)。
步骤303,依据该接收的TC报文携带的master优先级向量的部分数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色。之后执行步骤305。
具体地,作为一个实施例,步骤303中,如何依据该接收的TC报文携带的master优先级向量的部分数据和本TC节点各个PTP端口的端口优先级 向量确定本TC节点上各个PTP端口担任的端口角色可参见图5所示流程步骤503至步骤505,这里暂不赘述。
步骤304,依据该接收的Announce报文携带的用于组成master优先级向量的数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色。之后执行步骤305。
具体地,作为一个实施例,步骤304中,如何依据该接收的Announce报文携带的用于组成master优先级向量的数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色可参见图5所示流程步骤506至步骤509,这里暂不赘述。
在上面描述的步骤303和步骤304中,PTP端口担任的端口角色包括:备用(Slave)角色、主用(Master)角色、被动(Passive)角色。其中,PTP端口担任的端口角色为Slave角色或者Master角色时,该PTP端口是会按照现有PTP端口转发PTP规定的报文(简称PTP报文)的方式转发PTP报文,并且,担任master角色的PTP端口还会主动发送TC报文。而当PTP端口担任的端口角色为Passive角色时,该PTP端口会阻塞所有PTP报文,这能够避免PTP报文在PTP TC环网中进行环路转发,具体见步骤305。
步骤305,在本TC节点上存在担任passive角色的PTP端口时,控制该担任Passive角色的PTP端口丢弃后续除TC报文之外的PTP报文。
至此,完成图3所示流程。
通过图3所示流程的步骤301至步骤305,可以看出,本发明中,由PTPTC环网中TC节点上担任Passive角色的PTP端口阻塞PTP报文,能够避免PTP报文在PTP TC环网出现环路。
以上对图3所示流程进行了简单描述。下面对PTP端口存在的master优先级向量和端口优先级向量进行描述:
在本发明中,master优先级向量和端口优先级向量都是由五类数据组成,这五类数据分别为:
第一类数据,用于指示TC节点的优先级;
第二类数据,用于指示系统标识(rootSystemIdentity);
第三类数据,用于指示跳数(stepsRemoved);
第四类数据,用于指示源端口标识(sourcePortIdentity);
第五类数据,用于指示本地PTP端口。
在初始时,TC节点上PTP端口的master优先级向量和端口优先级向量都被预先设置,此时,同一PTP端口的master优先级向量和端口优先级向量所包含的五类数据可分别对应相同,即,同一PTP端口的master优先级向量包含的第一类数据、第二类数据、第三类数据、第四类数据、第五类数据分别与其端口优先级向量包含的第一类数据、第二类数据、第三类数据、第四类数据、第五类数据相同。
作为本发明一个实施例,在预先设置TC节点上PTP端口的master优先级向量和端口优先级向量时,可设置PTP端口的master优先级向量和端口优先级向量中的第一类数据为用于表示直接连接TC节点的第一值,而PTP端口的master优先级向量和端口优先级向量中的第二类数据至第四类数据可为默认的设定值,PTP端口的master优先级向量和端口优先级向量中的第五类数据即为PTP端口自身。
而在非初始时,TC节点上同一PTP端口的master优先级向量和端口优先级向量所包含的五类数据中除第五类数据之外,其他四类数据中可至少有一类数据对应不同,比如,同一PTP端口的master优先级向量包含的第一类数据与其端口优先级向量包含的第一类数据不同等。当然,在非初始时,TC节点上同一PTP端口的master优先级向量和端口优先级向量所包含的五类数据也可如初始时对应相同,这完全取决于PTP端口的master优先级向量和端口优先级向量在后续的变化,图6示出了这种变化,具体参见图6。
对应图3所示流程,下面通过图5对图3所示流程进行详细描述:
参见图5,图5为本发明提供的实施例实现流程图。如图5所示,该流程可包括以下步骤:
步骤501,PTP TC环网中的TC节点以设定周期通过本TC节点上的至少一个PTP端口发送TC报文。
本步骤501中TC节点以设定周期通过本TC节点上的至少一个PTP端口发送TC报文,具体可为:
在初始未确定本TC节点上各个PTP端口的端口角色时,以设定周期通过本TC节点的每一PTP端口发送TC报文;
在已确定本TC节点上各个PTP端口的端口角色时,以设定周期仅通过本TC节点上担任master角色的PTP端口发送TC报文。
本发明中,PTP端口发送的TC报文携带了PTP端口的master优先级向量的部分数据。基于上面描述的master优先级向量和图4所示的TC报文结构,则,PTP端口发送的TC报文携带了master优先级向量中第一类数据至第四类数据;
其中,基于图4所示的TC报文结构,master优先级向量中第一类数据是由TC报文中的TCPriority组成;
master优先级向量中第二类数据由TC报文中的时钟优先级1字段(grandmasterPriority1)、时钟级别字段(grandmasterClockQuality)、时钟优先级2字段(grandmasterPriority2)、时钟标识字段(grandmasterIdentity)组成;
master优先级向量中第三类数据由TC报文中的跳数字段(stepsRemoved)组成;
master优先级向量中第四类数据由TC报文中的源端口标识字段(sourcePortIdentity)组成。
为便于描述,下文就直接描述TC报文携带master优先级向量的第一类数据至第四类数据,不再单独描述上述这四类数据对应的字段。
步骤502,如果TC节点的PTP端口1在第一设定时间之内接收到TC报文,则执行步骤503,而如果TC节点的PTP端口1在第二设定时间内接收到Announce报文、但未在第一设定时间内接收到TC报文,则执行步骤 507。
这里,PTP端口1只是为便于描述而举的一个PTP端口实例,并非限定本发明。
作为本发明的一个实施例,在步骤503中,TC节点的PTP端口1在第一设定时间之内接收到TC报文,且在第二设定时间内接收到Announce报文,其属于TC节点的PTP端口1在第一设定时间之内接收到TC报文的情况,也会执行步骤503。
步骤503,从收到的TC报文中解析出该TC报文携带的master优先级向量的第一类数据至第四类数据。
基于上面描述的TC报文中各字段与第一类数据至第四类数据之间的关系,则本步骤503具体为:
从该收到的TC报文中解析出TCPriority,作为第一类数据;
从该收到的TC报文中解析出grandmasterPriority1、grandmasterClockQuality、grandmasterPriority2、grandmasterIdentity,并组织在一起作为第二类数据;
从该收到的TC报文中解析出stepsRemoved,作为第三类数据;
从该收到的TC报文中解析出sourcePortIdentity,作为第四类数据。
步骤504,将PTP端口1作为第五类数据与解析出的第一类数据至第四类数据一起组成临时的消息优先级向量。
这里,作为第五类数据的PTP端口1实质是PTP端口1的标识,为便于描述,本发明不再细分PTP端口1和PTP端口1的标识,默认都是指PTP端口1的标识。
步骤505,依据所述临时的消息优先级向量和本TC节点上各个PTP端口的master优先级向量确定本TC节点上各个PTP端口担任的端口角色。之后执行步骤510。
本步骤505确定PTP端口担任的端口角色包括:slave角色、master角色、passive角色。作为步骤505确定TC节点上各个PTP端口担任的端口角 色的一个实施例,图6所示流程详细描述了如何确定TC节点上各个PTP端口担任的端口角色,这里暂不赘述。
步骤506,从该收到的Announce报文中解析出用于组成master优先级向量的第二类数据至第四类数据。
依据Announce报文的结构,这里,Announce报文的结构与图4示出的TC报文的结构相比,Message Type取值不同,并且,Announce报文不存在TCPriority字段,则,本步骤506具体为:
从该收到的Announce报文中解析出grandmasterPriority1、grandmasterClockQuality、grandmasterPriority2、grandmasterIdentity,并组织在一起作为第二类数据;
从该收到的Announce报文中解析出stepsRemoved,作为第三类数据;
从该收到的Announce报文中解析出sourcePortIdentity,作为第四类数据。
步骤507,将预先设定的用于表示本TC节点不直接连接TC节点的第二值确定为用于组成master优先级向量的第一类数据,将接收到Announce报文的PTP端口的标识确定为用于组成master优先级向量的第五类数据。
步骤508,将步骤507确定的第一类数据、第五类数据与步骤506解析出的第二类数据至第四类数据一起组成临时的消息优先级向量。
步骤509,依据所述临时的消息优先级向量和本TC节点上各个PTP端口对应的master优先级向量确定本TC节点上各个PTP端口担任的端口角色。之后执行步骤510。
本步骤509确定PTP端口担任的端口角色包括:slave角色、master角色、passive角色。作为步骤509确定TC节点上各个PTP端口担任的端口角色的一个实施例,图6所示流程详细描述了如何确定TC节点上各个PTP端口担任的端口角色,这里暂不赘述。
步骤510,在本TC节点上存在担任Passive角色的PTP端口时,控制该担任Passive角色的PTP端口丢弃后续除TC报文之外的所有PTP报文。结束当前流程。
至此,完成图5所示流程。
其中,在图5所示流程中,步骤503至步骤505为本发明依据接收的TC报文携带的master优先级向量的部分数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色的具体实例步骤,但是,这仅是本发明如何依据接收的TC报文携带的master优先级向量的部分数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色的一种举例,并非限定本发明,本发明还可采用其他方式确定TC节点上各个PTP端口担任的端口角色。
同样,上述步骤506至步骤509,为本发明依据接收的Announce报文携带的用于组成master优先级向量的数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色的具体实例步骤,但是,这仅是本发明如何依据接收的Announce报文携带的用于组成master优先级向量的数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色的一种举例,并非限定本发明,本发明还可采用其他方式确定TC节点上各个PTP端口担任的端口角色。
下面对图6所示流程进行描述:
参见图6,图6为本发明实施例提供的步骤505实现流程图。如图6所示,该流程可包括以下步骤:
步骤601,比较所述临时的消息优先级向量是否和PTP端口1的消息优先级向量一致,如果不一致,执行步骤602,如果一致,维持本TC节点上各个PTP端口担任的端口角色不变,结束当前流程。
作为本发明的一个实施例,在初始时,可预先针对PTP端口1配置消息优先级向量,此时,该配置的消息优先级向量可为空,或者,配置PTP端口1的消息优先级向量包含上述的五类数据,此时,该五类数据中的第一类数据可配置为用于表示直接连接TC节点的第一值,而第二类数据至第四类数据可为默认的设定值,第五类数据即为PTP端口1自身。
其中,PTP端口1的消息优先级向量是有条件的动态变化的,该条件依赖于步骤601的比较结果,具体见步骤602。
步骤602,将PTP端口1的消息优先级向量更新为所述临时的消息优先级向量。
步骤603,比较PTP端口1的端口优先级向量是否优于PTP端口1的消息优先级向量,如果否,将PTP端口1的端口优先级向量更新为PTP端口1的消息优先级向量,如果是,维持PTP端口1的端口优先级向量不变。之后执行步骤604。
作为本发明的一个实施例,PTP端口1的端口优先级向量是否优于PTP端口1的消息优先级向量,具体为:
将PTP端口1的端口优先级向量的第一类数据至第五类数据顺次排成队列1;
将PTP端口1的消息优先级向量的第一类数据至第五类数据顺次排成队列2;
将队列1中排在首位的第一类数据作为第一当前数据,将队列2中排在首位的第一类数据作为第二当前数据;
比较第一当前数据与第二当前数据;
如果前者小于后者,则确定PTP端口1的端口优先级向量优于PTP端口1的消息优先级向量;
如果前者大于后者,确定PTP端口1的端口优先级向量劣于PTP端口1的消息优先级向量;
如果两者相等,则将队列1中第一当前数据的下一个数据作为第一当前数据,将队列2中第二当前数据的下一个数据作为第二当前数据,返回比较第一当前数据与第二当前数据的操作,以最终确定出PTP端口1的端口优先级向量与消息优先级向量的优劣。
步骤604,针对本TC节点上每一PTP端口,将该PTP端口的端口优先级向量中的第三类数据加1,并与该PTP端口的端口优先级向量中的第一类 数据、第二类数据、第四类数据和第五类数据一起组织成该PTP端口的GM路径优先级向量。
步骤605,从本TC节点当前的系统优先级向量和本TC节点上所有PTP端口对应的GM路径优先级向量中选择出一个最优的作为本TC节点的全局最优优先级向量。
这里,TC节点的系统优先级向量可预先部署,在部署时,该系统优先级向量可为空,或者,包含上述的五类数据,此时,该五类数据中的第一类数据可配置为用于表示直接连接TC节点的第一值,第二类数据为TC节点自身配置的系统标识(systemIdentity),第三类数据为0,第四类数据(包含端口标识和时钟标识clockIdentity)中包含的端口标识为0,但包含的时钟标识为自身配置的时钟标识,第五类数据为0。
例如,本TC节点的tcPriority为TPS,systemIdentity为SS,clockIdentity为CS,则,本TC节点的系统优先级向量为{TPS:SS:0:{CS:0}:0}。
通常,TC节点的系统优先级向量在配置后不会发生变化。
需要说明的是,本步骤605中选择最优的全局最优优先级向量的方式可采用类似步骤603中PTP端口1的端口优先级向量与消息优先级向量的优劣比较的方式,这里不再具体描述。
假如本TC节点的系统优先级向量为{TPS:SS:0:{CS:0}:0};本TC节点上所有PTP端口对应的GM路径优先级向量中最优的一个GM路径优先级向量为{TPM:RM:SRM+1:PM:PNS},则,
如果TPS:SS优于TPM:RM,则本TC节点的全局最优优先级向量为{TPS:SS:0:{CS:0}:0},
而如果TPS:SS劣于TPM:RM,则本TC节点的全局最优优先级向量为{TPM:RM:SRM+1:PM:PNS}。
步骤606,选择出的本TC节点的全局最优优先级向量为本TC节点的系统优先级向量时执行步骤607;当选择出的本TC节点的全局最优优先级向量为本TC节点上一个PTP端口对应的GM路径优先级向量时执行步骤608。
步骤607,确定本TC节点上每一PTP端口担任的端口角色为Master角色,结束当前流程。
作为本发明的一个实施例,本步骤607进一步包括:针对本TC节点上每一PTP端口(以PTP端口2为例),将所述全局最优优先级向量中第四类数据、第五类数据分别更新为与本TC节点相关联的数据、与该PTP端口2相关联的数据,将更新后的第四类数据、第五类数据、与所述全局最优优先级向量中第一类数据至第三类数据一起组成一个master优先级向量,将该PTP端口2的master优先级向量更新为该组成的master优先级向量。
这里,第四类数据更新为与本TC节点相关联的数据包括:第四类数据包含的端口标识为该PTP端口2,第四类数据包含的clockIdentity为本TC节点的clockIdentity。
第五类数据更新为与该PTP端口2相关联的数据为:第五类数据更新为该PTP端口2。
步骤608,确定GM路径优先级向量被选择为所述全局最优优先级向量的PTP端口担任的端口角色为Slave角色。
步骤609,针对本TC节点上除被确定为担任Slave角色的PTP端口之外的每一PTP端口,执行步骤610至步骤612。
步骤610,将所述全局最优优先级向量中第四类数据、第五类数据分别更新为与本TC节点相关联的数据、与该PTP端口相关联的数据,将更新后的第四类数据、第五类数据与所述全局最优优先级向量中第一类数据至第三类数据一起组成一个master优先级向量,将该PTP端口的master优先级向量更新为该组成的master优先级向量。
这里,以PTP端口2为本TC节点上除被确定为Slave角色的PTP端口之外的PTP端口为例,步骤610中,将第四类数据更新为与本TC节点相关联的数据包括:第四类数据包含的端口标识为PTP端口2的标识,第四类数据包含的clockIdentity为本TC节点的clockIdentity。第五类数据更新为与该PTP端口相关联的数据为:第五类数据更新为该PTP端口2。
以全局最优优先级向量为{TPM:RM:SRM+1:PM:PNS}为例,假如本TC节点的clockIdentity为CS,且PTP端口2为本TC节点上除被确定为Slave角色的PTP端口之外的PTP端口为例,则基于上述更新,PTP端口2更新后的master优先级向量为{{TPM:RM:SRM+1:{CS:PTP端口2}:PTP端口2}。
步骤611,比较该PTP端口的master优先级向量是否优于该PTP端口的端口优先级向量,如果是,将该PTP端口的端口优先级向量更新为该PTP端口的master优先级向量,否则,维持该PTP端口的端口优先级向量不变。
步骤612,比较该PTP端口的master优先级向量是否与该PTP端口的端口优先级向量一致,如果是,确定该PTP端口担任的端口角色为Master角色,否则,确定该PTP端口担任的端口角色为Passive角色。
至此,完成图6所示流程。
下面基于图5和图6所示流程以图7为例进行描述:
在图7中,C0、C5为OC节点,C0为GM,C5为从时钟,C5与C0保持时钟同步,C1~C4为TC,C1~C4的MAC地址大小为C1<C2<C3<C4,C1~C4组成PTP TC环网。假如图7所示的PTP TC环网收敛,则C0会发送Announce报文,而C1~C4会以设定周期主动发送TC报文。
按照图5和图6所示流程,C1~C4各个PTP端口的角色如下:
针对C1,当C1通过PTP端口11收到来自C0的Announce报文,则确定C1的PTP端口11与GM直接连接,基于图5所示流程,依据Announce报文确定临时的消息优先级向量为{0:RM:SRM:PM:PTP端口11};临时的消息优先级向量为{0:RM:SRM:PM:PTP端口11}与PTP端口11的消息优先级向量不一致,且优于PTP端口11对应的端口优先级向量,则将PTP端口11的消息优先级向量、端口优先级向量均更新为{0:RM:SRM:PM:PTP端口11},并确定PTP端口11的GM路径优先级向量为{0:RM:SRM+1:PM:PTP端口11},选择PTP端口11的GM路径优先级向量{0:RM:SRM+1:PM:PTP端口11}为C1的全局最优优先级向量,则确定PTP端口11担任 的端口角色确定为slave角色,并确定C1的PTP端口12的master优先级向量为{0:RM:SRM+1:{C1的Clock Identity+PTP端口12}:PTP端口12},C1的PTP端口13的master优先级向量为{0:RM:SRM+1:{C1的Clock Identity+PTP端口13}:PTP端口13},PTP端口12的master优先级向量优于PTP端口12的端口优先级向量,PTP端口13的master优先级向量优于PTP端口13的端口优先级向量,则确定PTP端口12、PTP端口13担任的端口角色为master角色,具体参见图7所示的C1的各个PTP端口担任的端口角色;
针对C2,当C2通过PTP端口21收到来自C1的TC报文,基于图6所示流程,依据TC报文确定临时的消息优先级向量为{0:RM:SRM+1:{C1的Clock Identity+PTP端口13}:PTP端口21};临时的消息优先级向量与PTP端口21的消息优先级向量不一致,且优于PTP端口21的端口优先级向量,则将PTP端口21的消息优先级向量、端口优先级向量均更新为{0:RM:SRM+1:{C1的Clock Identity+PTP端口13}:PTP端口21},并确定PTP端口21的GM路径优先级向量为{0:RM:SRM+2:{C1的Clock Identity+PTP端口13}:PTP端口21},选择PTP端口21的GM路径优先级向量{0:RM:SRM+2:{C1的Clock Identity+PTP端口13}:PTP端口21}为C2的全局最优优先级向量,则确定PTP端口21担任的端口角色确定为Slave角色,并确定C2的PTP端口22对应的master优先级向量为{0:RM:SRM+2:{C1的Clock Identity+PTP端口22}:PTP端口22},假如PTP端口22的端口优先级向量为{0:RM:SRM+2:{C1的Clock Identity+PTP端口42}:PTP端口22},由于C2的MAC地址小于C4的MAC地址,这意味着C1的Clock Identity优于C4的Clock Identity,因此,C2的PTP端口22的master优先级向量优于PTP端口22的端口优先级向量,确定PTP端口22担任的端口角色为master角色,具体参见图6所示的C2的各个PTP端口担任的端口角色;
针对C3,当C3通过PTP端口32收到来自C1的TC报文,基于图5 和图6所示流程,依据TC报文确定临时的消息优先级向量为{0:RM:SRM+1:{C1的Clock Identity+PTP端口12}:PTP端口32};如果临时的消息优先级向量与PTP端口32的消息优先级向量不一致,且优于PTP端口32的端口优先级向量,则将PTP端口32的消息优先级向量、端口优先级向量均更新为{0:RM:SRM+1:{C1的Clock Identity+PTP端口12}:PTP端口32},并确定PTP端口32的GM路径优先级向量为{0:RM:SRM+2:{C1的Clock Identity+PTP端口12}:PTP端口32},如果选择PTP端口32的GM路径优先级向量{0:RM:SRM+2:{C1的Clock Identity+PTP端口12}:PTP端口32}为C3的全局最优优先级向量,则确定PTP端口32担任的端口角色为slave角色,并确定C3的PTP端口31、33的master优先级向量分别为{0:RM:SRM+2:{C1的Clock Identity+PTP端口31}:PTP端口31},{0:RM:SRM+2:{C1的Clock Identity+PTP端口33}:PTP端口33},而此时PTP端口31、33的端口优先级向量分别为{0:RM:SRM+2:{C5的Clock Identity+PTP端口51}:PTP端口31},{0:RM:SRM+2:{C4的Clock Identity+PTP端口41}:PTP端口33},由于C5为OC节点,劣于任何一个TC,因此,PTP端口31的master优先级向量优于PTP端口31的端口优先级向量,确定PTP端口31担任的端口角色为master角色,而由于C3的MAC地址小于C4的MAC地址,也就意味着C3的Clock Identity优于C4的Clock Identity,因此,PTP端口33的master优先级向量优于PTP端口33的端口优先级向量,确定PTP端口33担任的端口角色为master角色,具体参见图6所示的C3的各个PTP端口担任的端口角色;
针对C4,当C4通过PTP端口42收到来自C2的TC报文,基于图5和图6所示流程,依据TC报文确定临时的消息优先级向量为{0:RM:SRM+2:{C2的Clock Identity+PTP端口22}:PTP端口42};如果临时的消息优先级向量与PTP端口42的消息优先级向量不一致,且优于PTP端口42的端口优先级向量,则将PTP端口42的消息优先级向量、端口优先级向量均更新为{0:RM:SRM+2:{C2的Clock Identity+PTP端口22}:PTP端口42},并确 定PTP端口42的GM路径优先级向量为{0:RM:SRM+3:{C2的Clock Identity+PTP端口22}:PTP端口42},如果选择PTP端口42的GM路径优先级向量{0:RM:SRM+3:{C2的Clock Identity+PTP端口22}:PTP端口42}为C4的全局最优优先级向量,则确定PTP端口42担任的端口角色确定为Slave角色,并确定C4的PTP端口41的master优先级向量为{0:RM:SRM+3:{C4的Clock Identity+PTP端口41}:PTP端口41},而此时PTP端口41的端口优先级向量为{0:RM:SRM+3:{C3的Clock Identity+PTP端口33}:PTP端口41},由于C3的MAC地址小于C4的MAC地址,也就意味着C3的Clock Identity优于C4的Clock Identity,进而确定PTP端口41的端口优先级向量为{0:RM:SRM+3:{C3的Clock Identity+PTP端口33}:PTP端口41}优于C4的PTP端口41的master优先级向量{0:RM:SRM+3:{C4的Clock Identity+PTP端口41}:PTP端口41},确定PTP端口41担任的端口角色为passive角色,具体参见图6所示的C4的各个PTP端口担任的端口角色。
由于TC节点上担任Passive角色的PTP端口丢弃除TC报文之外的所有PTP报文,则从图7可以看出,PTP报文到达C4的PTP端口41时即被丢弃,PTP端口41不再转发这些PTP报文报文,从而避免了C0和C5发送的PTP报文在TC设备间形成环路。
以上对本发明提供的方法进行了描述,下面对本发明提供的装置进行描述:
参见图8,图8为本发明提供的装置结构图。如图8所示,该装置应用于TC节点,包括:
存储单元,用于存储本TC节点上PTP端口的主用master优先级向量和端口优先级向量;
发送单元,用于以设定周期通过本TC节点上的至少一个PTP端口发送TC报文,PTP端口发送的TC报文携带了PTP端口的master优先级向量的部分数据;
确定单元,用于在第一设定时间内通过本TC节点上的PTP端口接收到TC报文时,依据该接收的TC报文携带的master优先级向量的部分数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色;以及,
在第二设定时间内通过本TC节点上的PTP端口接收到PTP规定的Announce报文、但未在第一设定时间内接收到TC报文时,依据该接收的Announce报文携带的用于组成master优先级向量的数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色;其中,PTP端口担任的端口角色包括:备用slave角色、主用master角色、被动passive角色;
控制单元,用于在本TC节点上存在担任passive角色的PTP端口时,控制该担任Passive角色的PTP端口丢弃后续除TC报文之外的PTP报文,所述PTP报文为PTP规定的报文。
优选地,所述发送单元在初始未确定本TC节点上各个PTP端口的端口角色时,以设定周期通过本TC节点的每一PTP端口发送TC报文;以及在已确定本TC节点上各个PTP端口的端口角色时,以设定周期仅通过本TC节点上担任master角色的PTP端口发送TC报文。
优选地,所述master优先级向量和端口优先级向量均由五类数据组成,该五类数据具体为:
第一类数据,用于指示TC节点的优先级;
第二类数据,用于指示系统标识rootSystemIdentity;
第三类数据,用于指示跳数stepsRemoved;
第四类数据,用于指示源端口标识sourcePortIdentity;
第五类数据,用于指示本地PTP端口;
PTP端口发送的TC报文携带了PTP端口的master优先级向量中第一类数据至第四类数据;
Announce报文携带了组成master优先级向量中第二类数据至第四类数据 的数据。
优选地,所述确定单元依据接收的TC报文携带的master优先级向量的部分数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色包括:
从收到的TC报文中解析出该TC报文携带的master优先级向量的第一类数据至第四类数据;
将收到TC报文的PTP端口的标识作为第五类数据与解析出的第一类数据至第四类数据一起组成临时的消息优先级向量;
依据所述临时的消息优先级向量和本TC节点上各个PTP端口的master优先级向量确定本TC节点上各个PTP端口担任的端口角色。
优选地,所述确定单元依据接收的Announce报文携带的用于组成master优先级向量的数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色括:
从收到的Announce报文中解析出组成master优先级向量的第二类数据至第四类数据;
将预先设定的用于表示本TC节点非直接连接TC节点的值确定为第一类数据;
将接收到Announce报文的PTP端口的标识作为第五类数据、与确定的第一类数据、解析出的第二类数据至第四类数据一起组成临时的消息优先级向量;
依据所述临时的消息优先级向量和本TC节点上各个PTP端口对应的master优先级向量确定本TC节点上各个PTP端口担任的端口角色。
优选地,所述确定单元依据临时的消息优先级向量和本TC节点上各个PTP端口对应的master优先级向量确定本TC节点上各个PTP端口担任的端口角色包括:
比较临时的消息优先级向量是否和收到TC报文或Announce报文的PTP端口的消息优先级向量一致,
如果一致,维持本TC节点上各个PTP端口担任的端口角色不变,结束当前流程;
如果不一致,则执行以下步骤:
将接收到TC报文或Announce报文的PTP端口的消息优先级向量更新为所述临时的消息优先级向量,并对接收到TC报文或Announce报文的PTP端口的端口优先级向量和消息优先级向量进行比较,如果前者优于后者,维持该接收到TC报文或Announce报文的PTP端口的端口优先级向量不变,如果前者劣于后者,将该接收到TC报文或Announce报文的PTP端口的端口优先级向量更新为其消息优先级向量;
针对本TC节点上每一PTP端口,将该PTP端口的端口优先级向量中的第三类数据加1,并与该PTP端口的端口优先级向量中的第一类数据、第二类数据、第四类数据和第五类数据一起组织成该PTP端口的最优时钟GM路径优先级向量;
从本TC节点当前的系统优先级向量和本TC节点上所有PTP端口对应的GM路径优先级向量中选择出一个最优的作为本TC节点的全局最优优先级向量;
在选择出的本TC节点的全局最优优先级向量为本TC节点的系统优先级向量时,确定本TC节点上每一PTP端口担任的端口角色为Master角色。
优选地,所述确定单元进一步在选择出的本TC节点的全局最优优先级向量为本TC节点的系统优先级向量时,针对本TC节点上每一PTP端口,将所述全局最优优先级向量中第四类数据、第五类数据分别更新为与本TC节点相关联的数据、与该PTP端口相关联的数据,将更新后的第四类数据、第五类数据、与所述全局最优优先级向量中第一类数据至第三类数据一起组成一个master优先级向量,将该PTP端口的master优先级向量更新为该组成的master优先级向量。
优选地,所述确定单元进一步在选择出的本TC节点的全局最优优先级向量为本TC节点上一个PTP端口对应的GM路径优先级向量时,确定GM 路径优先级向量被选择为所述全局最优优先级向量的PTP端口担任的端口角色为Slave角色,并针对本TC节点上除被确定为担任Slave角色的PTP端口之外的每一PTP端口,执行以下操作:
将所述全局最优优先级向量中第四类数据、第五类数据分别更新为与本TC节点相关联的数据、与该PTP端口相关联的数据,将更新后的第四类数据、第五类数据与所述全局最优优先级向量中第一类数据至第三类数据一起组成一个master优先级向量,将该PTP端口的master优先级向量更新为该组成的master优先级向量;
比较该PTP端口的master优先级向量是否优于该PTP端口的端口优先级向量,如果是,将该PTP端口的端口优先级向量更新为该PTP端口的master优先级向量,否则,维持该PTP端口的端口优先级向量不变;
比较该PTP端口的master优先级向量是否与该PTP端口的端口优先级向量一致,如果是,确定该PTP端口担任的端口角色为Master角色,否则,确定该PTP端口担任的端口角色为Passive角色。
至此,完成图8所示的装置描述。
由以上技术方案可以看出,本发明中,通过针对PTP TC环网中的TC节点确定该TC节点上PTP端口担任的端口角色,并在PTP端口担任的端口角色为Passive角色时,控制该PTP端口仅继续发送TC报文但阻塞所有PTP报文,这能够避免PTP报文在PTP TC环网中进行环路转发。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (16)
1.一种防止精确时间协议PTP透明时钟TC环网中环路的方法,PTP TC环网由PTP域中包含至少一个PTP端口的TC节点组成,其特征在于,该方法应用于PTP TC环网中的TC节点,所述TC节点的PTP端口存在主用master优先级向量和端口优先级向量,该方法包括:
以设定周期通过本TC节点上的至少一个PTP端口发送TC报文,PTP端口发送的TC报文携带了PTP端口的master优先级向量的部分数据;
在第一设定时间内通过本TC节点上的PTP端口接收到TC报文时,依据该接收的TC报文携带的master优先级向量的部分数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色;PTP端口担任的端口角色包括:备用slave角色、master角色、被动passive角色;
在第二设定时间内通过本TC节点上的PTP端口接收到PTP规定的Announce报文、但未在第一设定时间内接收到TC报文时,依据该接收的Announce报文携带的用于组成master优先级向量的数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色;
在本TC节点上存在担任passive角色的PTP端口时,控制该担任Passive角色的PTP端口丢弃后续除TC报文之外的PTP报文,所述PTP报文为PTP规定的报文。
2.根据权利要求1所述的方法,其特征在于,所述TC节点以设定周期通过本TC节点上的至少一个PTP端口发送TC报文包括:
在初始未确定本TC节点上各个PTP端口的端口角色时,以设定周期通过本TC节点的每一PTP端口发送TC报文;
在已确定本TC节点上各个PTP端口的端口角色时,以设定周期仅通过本TC节点上担任master角色的PTP端口发送TC报文。
3.根据权利要求1或2所述的方法,其特征在于,所述master优先级向量和端口优先级向量均由五类数据组成,该五类数据具体为:
第一类数据,用于指示TC节点的优先级;
第二类数据,用于指示系统标识rootSystemIdentity;
第三类数据,用于指示跳数stepsRemoved;
第四类数据,用于指示源端口标识sourcePortIdentity;
第五类数据,用于指示本地PTP端口;
PTP端口发送的TC报文携带了PTP端口的master优先级向量中第一类数据至第四类数据;
Announce报文携带了组成master优先级向量中第二类数据至第四类数据的数据。
4.根据权利要求3所述的方法,其特征在于,所述依据接收的TC报文携带的master优先级向量的部分数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色包括:
从收到的TC报文中解析出该TC报文携带的master优先级向量的第一类数据至第四类数据;
将收到TC报文的PTP端口的标识作为第五类数据与解析出的第一类数据至第四类数据一起组成临时的消息优先级向量;
依据所述临时的消息优先级向量和本TC节点上各个PTP端口的master优先级向量确定本TC节点上各个PTP端口担任的端口角色。
5.根据权利要求3所述的方法,其特征在于,所述依据接收的Announce报文携带的用于组成master优先级向量的数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色括:
从收到的Announce报文中解析出用于组成master优先级向量的第二类数据至第四类数据;
将预先设定的用于表示本TC节点非直接连接TC节点的值确定为第一类数据;
将接收到Announce报文的PTP端口的标识作为第五类数据、与确定的第一类数据、解析出的第二类数据至第四类数据一起组成临时的消息优先级向量;
依据所述临时的消息优先级向量和本TC节点上各个PTP端口对应的master优先级向量确定本TC节点上各个PTP端口担任的端口角色。
6.根据权利要求4或5所述的方法,其特征在于,所述依据临时的消息优先级向量和本TC节点上各个PTP端口对应的master优先级向量确定本TC节点上各个PTP端口担任的端口角色包括:
比较临时的消息优先级向量是否和收到TC报文或Announce报文的PTP端口的消息优先级向量一致,
如果一致,维持本TC节点上各个PTP端口担任的端口角色不变,结束当前流程;
如果不一致,则执行以下步骤:
将接收到TC报文或Announce报文的PTP端口的消息优先级向量更新为所述临时的消息优先级向量,并对接收到TC报文或Announce报文的PTP端口的端口优先级向量和消息优先级向量进行比较,如果前者优于后者,维持该接收到TC报文或Announce报文的PTP端口的端口优先级向量不变,如果前者劣于后者,将该接收到TC报文或Announce报文的PTP端口的端口优先级向量更新为其消息优先级向量;
针对本TC节点上每一PTP端口,将该PTP端口的端口优先级向量中的第三类数据加1,并与该PTP端口的端口优先级向量中的第一类数据、第二类数据、第四类数据和第五类数据一起组织成该PTP端口的最优时钟GM路径优先级向量;
从本TC节点当前的系统优先级向量和本TC节点上所有PTP端口对应的GM路径优先级向量中选择出一个最优的作为本TC节点的全局最优优先级向量;
在选择出的本TC节点的全局最优优先级向量为本TC节点的系统优先级向量时,确定本TC节点上每一PTP端口担任的端口角色为Master角色。
7.根据权利要求6所述的方法,其特征在于,当选择出的本TC节点的全局最优优先级向量为本TC节点的系统优先级向量时,该方法进一步包括:
针对本TC节点上每一PTP端口,将所述全局最优优先级向量中第四类数据、第五类数据分别更新为与本TC节点相关联的数据、与该PTP端口相关联的数据,将更新后的第四类数据、第五类数据、与所述全局最优优先级向量中第一类数据至第三类数据一起组成一个master优先级向量,将该PTP端口的master优先级向量更新为该组成的master优先级向量。
8.根据权利要求6所述的方法,其特征在于,当选择出的本TC节点的全局最优优先级向量为本TC节点上一个PTP端口对应的GM路径优先级向量,则该方法进一步包括:
确定GM路径优先级向量被选择为所述全局最优优先级向量的PTP端口担任的端口角色为Slave角色;
针对本TC节点上除被确定为担任Slave角色的PTP端口之外的每一PTP端口,执行以下操作:
将所述全局最优优先级向量中第四类数据、第五类数据分别更新为与本TC节点相关联的数据、与该PTP端口相关联的数据,将更新后的第四类数据、第五类数据与所述全局最优优先级向量中第一类数据至第三类数据一起组成一个master优先级向量,将该PTP端口的master优先级向量更新为该组成的master优先级向量;
比较该PTP端口的master优先级向量是否优于该PTP端口的端口优先级向量,如果是,将该PTP端口的端口优先级向量更新为该PTP端口的master优先级向量,否则,维持该PTP端口的端口优先级向量不变;
比较该PTP端口的master优先级向量是否与该PTP端口的端口优先级向量一致,如果是,确定该PTP端口担任的端口角色为Master角色,否则,确定该PTP端口担任的端口角色为Passive角色。
9.一种防止精确时间协议PTP透明时钟TC环网中环路的装置,PTP TC环网由PTP域中包含至少一个PTP端口的TC节点组成,其特征在于,该装置应用于TC节点,包括:
存储单元,用于存储本TC节点上PTP端口的主用master优先级向量和端口优先级向量;
发送单元,用于以设定周期通过本TC节点上的至少一个PTP端口发送TC报文,PTP端口发送的TC报文携带了PTP端口的master优先级向量的部分数据;
确定单元,用于在第一设定时间内通过本TC节点上的PTP端口接收到TC报文时,依据该接收的TC报文携带的master优先级向量的部分数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色;以及,
在第二设定时间内通过本TC节点上的PTP端口接收到PTP规定的Announce报文、但未在第一设定时间内接收到TC报文时,依据该接收的Announce报文携带的用于组成master优先级向量的数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色;其中,PTP端口担任的端口角色包括:备用slave角色、主用master角色、被动passive角色;
控制单元,用于在本TC节点上存在担任passive角色的PTP端口时,控制该担任Passive角色的PTP端口丢弃后续除TC报文之外的PTP报文,所述PTP报文为PTP规定的报文。
10.根据权利要求9所述的装置,其特征在于,所述发送单元在初始未确定本TC节点上各个PTP端口的端口角色时,以设定周期通过本TC节点的每一PTP端口发送TC报文;以及在已确定本TC节点上各个PTP端口的端口角色时,以设定周期仅通过本TC节点上担任master角色的PTP端口发送TC报文。
11.根据权利要求9或10所述的装置,其特征在于,所述master优先级向量和端口优先级向量均由五类数据组成,该五类数据具体为:
第一类数据,用于指示TC节点的优先级;
第二类数据,用于指示系统标识rootSystemIdentity;
第三类数据,用于指示跳数stepsRemoved;
第四类数据,用于指示源端口标识sourcePortIdentity;
第五类数据,用于指示本地PTP端口;
PTP端口发送的TC报文携带了PTP端口的master优先级向量中第一类数据至第四类数据;
Announce报文携带了组成master优先级向量中第二类数据至第四类数据的数据。
12.根据权利要求11所述的装置,其特征在于,所述确定单元依据接收的TC报文携带的master优先级向量的部分数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色包括:
从收到的TC报文中解析出该TC报文携带的master优先级向量的第一类数据至第四类数据;
将收到TC报文的PTP端口的标识作为第五类数据与解析出的第一类数据至第四类数据一起组成临时的消息优先级向量;
依据所述临时的消息优先级向量和本TC节点上各个PTP端口的master优先级向量确定本TC节点上各个PTP端口担任的端口角色。
13.根据权利要求11所述的装置,其特征在于,所述确定单元依据接收的Announce报文携带的用于组成master优先级向量的数据和本TC节点各个PTP端口的端口优先级向量确定本TC节点上各个PTP端口担任的端口角色括:
从收到的Announce报文中解析出用于组成master优先级向量的第二类数据至第四类数据;
将预先设定的用于表示本TC节点非直接连接TC节点的值确定为第一类数据;
将接收到Announce报文的PTP端口的标识作为第五类数据、与确定的第一类数据、解析出的第二类数据至第四类数据一起组成临时的消息优先级向量;
依据所述临时的消息优先级向量和本TC节点上各个PTP端口对应的master优先级向量确定本TC节点上各个PTP端口担任的端口角色。
14.根据权利要求12或13所述的装置,其特征在于,所述确定单元依据临时的消息优先级向量和本TC节点上各个PTP端口对应的master优先级向量确定本TC节点上各个PTP端口担任的端口角色包括:
比较临时的消息优先级向量是否和收到TC报文或Announce报文的PTP端口的消息优先级向量一致,
如果一致,维持本TC节点上各个PTP端口担任的端口角色不变,结束当前流程;
如果不一致,则执行以下步骤:
将接收到TC报文或Announce报文的PTP端口的消息优先级向量更新为所述临时的消息优先级向量,并对接收到TC报文或Announce报文的PTP端口的端口优先级向量和消息优先级向量进行比较,如果前者优于后者,维持该接收到TC报文或Announce报文的PTP端口的端口优先级向量不变,如果前者劣于后者,将该接收到TC报文或Announce报文的PTP端口的端口优先级向量更新为其消息优先级向量;
针对本TC节点上每一PTP端口,将该PTP端口的端口优先级向量中的第三类数据加1,并与该PTP端口的端口优先级向量中的第一类数据、第二类数据、第四类数据和第五类数据一起组织成该PTP端口的最优时钟GM路径优先级向量;
从本TC节点当前的系统优先级向量和本TC节点上所有PTP端口对应的GM路径优先级向量中选择出一个最优的作为本TC节点的全局最优优先级向量;
在选择出的本TC节点的全局最优优先级向量为本TC节点的系统优先级向量时,确定本TC节点上每一PTP端口担任的端口角色为Master角色。
15.根据权利要求14所述的装置,其特征在于,所述确定单元进一步在选择出的本TC节点的全局最优优先级向量为本TC节点的系统优先级向量时,针对本TC节点上每一PTP端口,将所述全局最优优先级向量中第四类数据、第五类数据分别更新为与本TC节点相关联的数据、与该PTP端口相关联的数据,将更新后的第四类数据、第五类数据、与所述全局最优优先级向量中第一类数据至第三类数据一起组成一个master优先级向量,将该PTP端口的master优先级向量更新为该组成的master优先级向量。
16.根据权利要求14所述的装置,其特征在于,所述确定单元进一步在选择出的本TC节点的全局最优优先级向量为本TC节点上一个PTP端口对应的GM路径优先级向量时,确定GM路径优先级向量被选择为所述全局最优优先级向量的PTP端口担任的端口角色为Slave角色,并针对本TC节点上除被确定为担任Slave角色的PTP端口之外的每一PTP端口,执行以下操作:
将所述全局最优优先级向量中第四类数据、第五类数据分别更新为与本TC节点相关联的数据、与该PTP端口相关联的数据,将更新后的第四类数据、第五类数据与所述全局最优优先级向量中第一类数据至第三类数据一起组成一个master优先级向量,将该PTP端口的master优先级向量更新为该组成的master优先级向量;
比较该PTP端口的master优先级向量是否优于该PTP端口的端口优先级向量,如果是,将该PTP端口的端口优先级向量更新为该PTP端口的master优先级向量,否则,维持该PTP端口的端口优先级向量不变;
比较该PTP端口的master优先级向量是否与该PTP端口的端口优先级向量一致,如果是,确定该PTP端口担任的端口角色为Master角色,否则,确定该PTP端口担任的端口角色为Passive角色。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310612834.3A CN103634208B (zh) | 2013-11-26 | 2013-11-26 | 防止ptp tc环网中环路的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310612834.3A CN103634208B (zh) | 2013-11-26 | 2013-11-26 | 防止ptp tc环网中环路的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103634208A true CN103634208A (zh) | 2014-03-12 |
CN103634208B CN103634208B (zh) | 2017-02-01 |
Family
ID=50214851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310612834.3A Active CN103634208B (zh) | 2013-11-26 | 2013-11-26 | 防止ptp tc环网中环路的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103634208B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104092528A (zh) * | 2014-07-14 | 2014-10-08 | 杭州华三通信技术有限公司 | 一种时钟同步方法和装置 |
WO2016192399A1 (zh) * | 2015-06-05 | 2016-12-08 | 中兴通讯股份有限公司 | 一种实现交替bmc的方法及装置 |
CN109462518A (zh) * | 2018-10-24 | 2019-03-12 | 新华三技术有限公司 | 一种环路检测的方法及装置 |
US10673551B2 (en) | 2014-12-16 | 2020-06-02 | Huawei Technologies Co., Ltd. | Time synchronization method and apparatus |
EP4187866A4 (en) * | 2020-07-24 | 2024-01-03 | Vivo Mobile Communication Co Ltd | INFORMATION CONTROL METHOD AND APPARATUS, AND COMMUNICATION DEVICE |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080075217A1 (en) * | 2006-09-22 | 2008-03-27 | Ilnicki Slawomir K | Mechanism For Making Delay From Network Elements Transparent To IEEE 1588 Protocols |
CN101616163A (zh) * | 2009-07-27 | 2009-12-30 | 中兴通讯股份有限公司 | 精确时间传递协议报文处理方法及装置 |
CN102158335A (zh) * | 2011-04-21 | 2011-08-17 | 中兴通讯股份有限公司 | 时间同步端口的处理方法及装置 |
US20110200051A1 (en) * | 2010-02-17 | 2011-08-18 | Daniel Rivaud | Ethernet network synchronization systems and methods |
-
2013
- 2013-11-26 CN CN201310612834.3A patent/CN103634208B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080075217A1 (en) * | 2006-09-22 | 2008-03-27 | Ilnicki Slawomir K | Mechanism For Making Delay From Network Elements Transparent To IEEE 1588 Protocols |
CN101616163A (zh) * | 2009-07-27 | 2009-12-30 | 中兴通讯股份有限公司 | 精确时间传递协议报文处理方法及装置 |
US20110200051A1 (en) * | 2010-02-17 | 2011-08-18 | Daniel Rivaud | Ethernet network synchronization systems and methods |
CN102158335A (zh) * | 2011-04-21 | 2011-08-17 | 中兴通讯股份有限公司 | 时间同步端口的处理方法及装置 |
Non-Patent Citations (2)
Title |
---|
张城: "基于IEEE1588协议的网络同步时钟技术的研究", 《中国优秀硕士学位论文全文数据库 信息科技辑(2013)》 * |
李晓珍: "基于IEEE1588的网络时间同步系统研究", 《中国优秀硕士学位论文全文数据库 信息科技辑(2011)》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104092528A (zh) * | 2014-07-14 | 2014-10-08 | 杭州华三通信技术有限公司 | 一种时钟同步方法和装置 |
CN104092528B (zh) * | 2014-07-14 | 2017-06-06 | 新华三技术有限公司 | 一种时钟同步方法和装置 |
US10673551B2 (en) | 2014-12-16 | 2020-06-02 | Huawei Technologies Co., Ltd. | Time synchronization method and apparatus |
WO2016192399A1 (zh) * | 2015-06-05 | 2016-12-08 | 中兴通讯股份有限公司 | 一种实现交替bmc的方法及装置 |
CN109462518A (zh) * | 2018-10-24 | 2019-03-12 | 新华三技术有限公司 | 一种环路检测的方法及装置 |
CN109462518B (zh) * | 2018-10-24 | 2020-10-02 | 新华三技术有限公司 | 一种环路检测的方法及装置 |
EP4187866A4 (en) * | 2020-07-24 | 2024-01-03 | Vivo Mobile Communication Co Ltd | INFORMATION CONTROL METHOD AND APPARATUS, AND COMMUNICATION DEVICE |
Also Published As
Publication number | Publication date |
---|---|
CN103634208B (zh) | 2017-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103916950B (zh) | 时间同步方法及系统 | |
EP3140932B1 (en) | A method for robust ptp synchronization with default 1588v2 profile | |
EP3160199B1 (en) | Synchronization control method within wireless network, wireless network and smart home device | |
CN103634208A (zh) | 防止ptp tc环网中环路的方法和装置 | |
CN104994530B (zh) | 基于组MAC地址的多Wi-Fi物联网设备分组集体控制系统及方法 | |
EP2755355B1 (en) | Packet forwarding device and wireless communication system | |
US10171227B2 (en) | Method and apparatus for configuring ONU as IEEE 1588 master clock in PON | |
US9363206B2 (en) | Method and apparatus for selecting passive port of transparent clock node based on PTP | |
CN103023595A (zh) | 一种最佳主时钟算法的实现方法及装置 | |
CN103001759B (zh) | 一种基于网络的时间同步方法、系统及装置 | |
CN105471603A (zh) | 一种远程配置光网络单元ptp业务的方法、装置和系统 | |
CN109474970A (zh) | 一种适用于无线通信网络的路由方法 | |
CN104092528B (zh) | 一种时钟同步方法和装置 | |
CN107959537B (zh) | 一种状态同步方法及装置 | |
CN103532230A (zh) | 基于工业以太网相切接入环的智能配电网ieee1588校时同步系统 | |
CN106487611A (zh) | 一种检测sdn集群分裂的方法及装置 | |
CN107483134B (zh) | 一种不同网络之间的跨网时钟同步通信装置及方法 | |
CN102611546A (zh) | 一种ptp时钟单播组播混合时钟系统及时钟同步方法 | |
CN102572907A (zh) | 一种工业信息走廊的无线通信方式 | |
CN109194435A (zh) | 一种避免数字同步网时钟成环的方法、系统和终端 | |
CN105246128A (zh) | 一种智能终端的组网方法及装置 | |
CN106533597B (zh) | 一种时间源的选择方法及网元节点 | |
WO2014208166A1 (ja) | 無線通信システムおよび通信端末装置 | |
CN102075350B (zh) | 一种同步数字体系环网拓扑发现方法 | |
CN102413188B (zh) | 通信设备中实现协议软件主备系统数据同步的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |