一種時鐘同步方法和裝置制造方法
【專利摘要】本發(fā)明提出一種時鐘同步方法,所述方法包括:通過兩側(cè)端口分別向其他時鐘節(jié)點(diǎn)設(shè)備按照預(yù)設(shè)慢速發(fā)送頻率發(fā)送Topology報文;通過兩側(cè)端口分別接收其他時鐘節(jié)點(diǎn)設(shè)備發(fā)送的Topology報文;根據(jù)接收到的Topology報文構(gòu)建網(wǎng)絡(luò)拓?fù)浔?,所述網(wǎng)絡(luò)拓?fù)浔碇邪òl(fā)送Topology報文的各端口的優(yōu)先級向量;根據(jù)各端口的優(yōu)先級向量確定本設(shè)備是否為最優(yōu)時鐘節(jié)點(diǎn)設(shè)備;如果是,通過主端口向其他時鐘節(jié)點(diǎn)設(shè)備發(fā)布同步時鐘;如果否,根據(jù)網(wǎng)絡(luò)拓?fù)浔泶_定兩側(cè)端口中的主端口和從端口,通過從端口接收最優(yōu)時鐘節(jié)點(diǎn)設(shè)備發(fā)布的同步時鐘完成本地時鐘的更新;通過主端口將所述同步時鐘轉(zhuǎn)發(fā)給下一跳節(jié)點(diǎn)設(shè)備。通過本發(fā)明,能夠減少端口角色計算的收斂時間,增加系統(tǒng)的穩(wěn)定性。
【專利說明】一種時鐘同步方法和裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及通信【技術(shù)領(lǐng)域】,尤其涉及一種時鐘同步方法和裝置。
【背景技術(shù)】
[0002] 在通信網(wǎng)絡(luò)中,許多業(yè)務(wù)的正常運(yùn)行都要求網(wǎng)絡(luò)時鐘同步,即整個網(wǎng)絡(luò)各設(shè)備之 間的時間或頻率差保持在合理的誤差水平內(nèi)。網(wǎng)絡(luò)時鐘同步包括時間同步和頻率同步,所 謂時間同步,是指信號之間的頻率和相位都保持一致,即信號之間的相位差恒為零;所述頻 率同步,是指信號之間在頻率或相位上保持某種嚴(yán)格的特定關(guān)系,信號在其對應(yīng)的有效瞬 間以同一平均速率出現(xiàn),以保證通信網(wǎng)絡(luò)中的所有設(shè)備都以相同的速率運(yùn)行,即信號之間 保持恒定的相位差。例如,請參見圖1,假如有兩個表Clock A與Clock B,如果這兩個表的 時間每時每刻都保持一致,這個狀態(tài)就是時間同步;如果這兩個表的時間不一致,但保持一 個恒定的差值(如圖中的Clock B總比Clock A晚6個小時),這個狀態(tài)就是頻率同步。
[0003] PTP(Precision Time Protocol,精確時間協(xié)議)協(xié)議是一種時間同步的協(xié)議,用 于設(shè)備之間的高精度時間同步,我們將應(yīng)用了 PTP協(xié)議的網(wǎng)絡(luò)稱為PTP域。PTP域內(nèi)有且 只有一個同步時鐘,域內(nèi)的所有設(shè)備都與該時鐘保持同步。PTP域中的節(jié)點(diǎn)稱為時鐘節(jié)點(diǎn), 而時鐘節(jié)點(diǎn)上運(yùn)行了 PTP協(xié)議的端口則稱為PTP端口。在PTP域中,發(fā)布同步時間的時鐘 節(jié)點(diǎn)稱為主節(jié)點(diǎn)(Master Node),主節(jié)點(diǎn)上的時鐘稱為主時鐘(Master Clock),時鐘節(jié)點(diǎn) 上發(fā)布同步時間的PTP端口稱為主端口;而接收同步時間的時鐘節(jié)點(diǎn)則稱為從節(jié)點(diǎn)(Slave Node),從節(jié)點(diǎn)上的時鐘則稱為從時鐘(Slave Clock),接收同步時間的PTP端口則稱為從 端口(Slave Port)。
[0004] 請參見圖2, PTP域中所有的時鐘節(jié)點(diǎn)都按一定層次組織在一起,整個域的參考時 間就是最優(yōu)時鐘(Grandmaster Clock,GM),即最高層次的時鐘。通過各時鐘節(jié)點(diǎn)間PTP協(xié) 議報文的交互,最優(yōu)時鐘的時間最終將被同步到整個PTP域中,因此也稱其為時鐘源。最優(yōu) 時鐘可以通過手工配置靜態(tài)指定,也可以通過BMC(Best Master Clock,最佳主時鐘)協(xié)議 動態(tài)選舉,其動態(tài)選舉的過程如下:
[0005] 各時鐘節(jié)點(diǎn)之間通過交互的Announce報文中所攜帶的最優(yōu)時鐘優(yōu)先級、時間等 級、時間精度等信息,最終選出一個節(jié)點(diǎn)作為PTP域的最優(yōu)時鐘,與此同時,各節(jié)點(diǎn)之間的 主從關(guān)系以及各節(jié)點(diǎn)上的主從端口也確定了下來。通過這個過程,整個PTP域中建立起了 一棵無環(huán)路、全連通,并以最優(yōu)時鐘為根的生成樹。此后,主節(jié)點(diǎn)會定期發(fā)送Announce報文 給從節(jié)點(diǎn),如果在一段時間內(nèi),從節(jié)點(diǎn)沒有收到主節(jié)點(diǎn)發(fā)來的Announce報文,便認(rèn)為該主 節(jié)點(diǎn)失效,于是重新進(jìn)行最優(yōu)時鐘的選擇。
[0006] 在PTP環(huán)形組網(wǎng)中,設(shè)備之間的鏈路發(fā)生故障或恢復(fù),都會觸發(fā)相關(guān)設(shè)備使用BMC 算法重新計算端口角色,并逐級傳遞更新后的信息,經(jīng)過一系列計算后得到最終穩(wěn)定的主 從關(guān)系,然后開始時間同步。例如,請參見圖3,假設(shè)C0為最優(yōu)時鐘,C0到C3同步時間的路 徑為C0-C5-C4-C3,當(dāng)C0和C5之間的鏈路故障,C5檢測到故障后觸發(fā)BMC算法重新計算端 口角色,發(fā)出更新的Announce報文。同理,C4收到該報文后也觸發(fā)BMC算法重新計算端口 角色,發(fā)出更新后的Announce報文到C3,C3選擇出新的Slave端口為端口 32,開始從C2同 步時間。此時C0到C3新的同步時間路徑為C0-C1-C2-C3。
[0007] 然而,對于PTP環(huán)形組網(wǎng),由于鏈路故障或恢復(fù)引起的時間同步路徑重新收斂通 常需要較多的時間,尤其當(dāng)環(huán)網(wǎng)中的設(shè)備較多的情況下,需要一級一級地通知故障以及重 新計算端口角色,因此時間同步將中斷較長的時間,從而可能導(dǎo)致設(shè)備之間的時間不同步。
【發(fā)明內(nèi)容】
[0008] 有鑒于此,本發(fā)明提出一種時鐘同步方法,應(yīng)用于環(huán)形組網(wǎng)中的PTP時鐘節(jié)點(diǎn)設(shè) 備,所述方法包括:
[0009] 通過兩側(cè)端口分別向其他時鐘節(jié)點(diǎn)設(shè)備按照預(yù)設(shè)慢速發(fā)送頻率發(fā)送Topology報 文;
[0010] 通過兩側(cè)端口分別接收所述其他時鐘節(jié)點(diǎn)設(shè)備發(fā)送的Topology報文;
[0011] 根據(jù)接收到的Topology報文構(gòu)建網(wǎng)絡(luò)拓?fù)浔?,所述網(wǎng)絡(luò)拓?fù)浔碇邪òl(fā)送所述 Topology報文的各端口的優(yōu)先級向量;
[0012] 根據(jù)所述各端口的優(yōu)先級向量確定本設(shè)備是否為最優(yōu)時鐘節(jié)點(diǎn)設(shè)備;
[0013] 如果是,通過主端口向其他時鐘節(jié)點(diǎn)設(shè)備發(fā)布同步時鐘;
[0014] 如果否,根據(jù)所述網(wǎng)絡(luò)拓?fù)浔泶_定所述兩側(cè)端口中的主端口和從端口,通過從端 口接收所述最優(yōu)時鐘節(jié)點(diǎn)設(shè)備發(fā)布的同步時鐘完成本地時鐘的更新;通過主端口將所述同 步時鐘轉(zhuǎn)發(fā)給下一跳節(jié)點(diǎn)設(shè)備。
[0015] 優(yōu)選地,所述優(yōu)先級向量包括若干按照預(yù)設(shè)順序排列的子向量;
[0016] 所述根據(jù)所述其他各端口的優(yōu)先級向量確定本設(shè)備是否為最優(yōu)時鐘節(jié)點(diǎn)設(shè)備包 括:
[0017] 將本設(shè)備的兩側(cè)端口與所述其他各端口的優(yōu)先級向量中的各子向量按照所述預(yù) 設(shè)順序依次進(jìn)行比較,以確定本設(shè)備的優(yōu)先級向量是否為最優(yōu)向量;
[0018] 如果是,則本設(shè)備是最優(yōu)時鐘節(jié)點(diǎn)設(shè)備;
[0019] 如果否,則本設(shè)備不是最優(yōu)時鐘節(jié)點(diǎn)設(shè)備。
[0020] 優(yōu)選地,所述Topology報文包括原始跳數(shù)、當(dāng)前跳數(shù)以及鄰居設(shè)備狀態(tài)字段;所 述鄰居設(shè)備狀態(tài)字段包括所述Topology報文的發(fā)送端口的東向和西向端口的端口狀態(tài);
[0021] 所述根據(jù)接收到的Topology報文構(gòu)建網(wǎng)絡(luò)拓?fù)浔戆ǎ?br>
[0022] 根據(jù)所述原始跳數(shù)和所述當(dāng)前跳數(shù)的差值確認(rèn)與其它時鐘節(jié)點(diǎn)設(shè)備的跳數(shù);
[0023] 根據(jù)所述鄰居設(shè)備狀態(tài)字段確認(rèn)所述東向和西向端口的端口狀態(tài);
[0024] 根據(jù)本設(shè)備接收所述Topology報文的端口區(qū)分出所述Topology報文在環(huán)網(wǎng)中的 發(fā)送方向。
[0025] 優(yōu)選地,所述方法還包括:
[0026] 當(dāng)所述當(dāng)前跳數(shù)為0或收到的Topology報文為本設(shè)備發(fā)出的Topology報文時, 停止通過所述主端口將所述Topology報文轉(zhuǎn)發(fā)給下一跳節(jié)點(diǎn)設(shè)備。
[0027] 優(yōu)選地,所述根據(jù)所述網(wǎng)絡(luò)拓?fù)浔泶_定出所述兩側(cè)端口中的主端口和從端口包 括:
[0028] 分別比較所述兩側(cè)端口與所述最優(yōu)時鐘節(jié)點(diǎn)設(shè)備的跳數(shù);
[0029] 選擇與所述最優(yōu)時鐘節(jié)點(diǎn)設(shè)備的跳數(shù)較小的端口為從端口;另一個為主端口。
[0030] 優(yōu)選地,所述根據(jù)所述網(wǎng)絡(luò)拓?fù)浔泶_定出所述兩側(cè)端口中的主端口和從端口還包 括:
[0031] 當(dāng)所述兩側(cè)端口與所述最優(yōu)時鐘節(jié)點(diǎn)設(shè)備的跳數(shù)相同時,分別將所述兩側(cè)端口的 上游發(fā)送端口的優(yōu)先級向量中的各子向量按照所述預(yù)設(shè)順序依次進(jìn)行比較;
[0032] 選擇優(yōu)先級向量更優(yōu)的上游發(fā)送端口所在的時鐘節(jié)點(diǎn)設(shè)備作為上游時鐘源設(shè)備, 連接該設(shè)備的端口為從端口;另一個為主端口。
[0033] 優(yōu)選地,所述方法還包括:
[0034] 當(dāng)檢測到鏈路故障時,立即從故障鏈路的另一側(cè)端口按照快速發(fā)送頻率發(fā)送所述 Topology報文,以使得其他時鐘節(jié)點(diǎn)收到該Topology報文后對本地的所述網(wǎng)絡(luò)拓?fù)浔磉M(jìn) 行更新并重新確定所述兩側(cè)端口中的主端口和從端口;其中,所述快速發(fā)送頻率大于所述 預(yù)設(shè)慢速發(fā)送頻率。
[0035] 本發(fā)明還提出一種時鐘同步裝置,應(yīng)用于環(huán)形組網(wǎng)中的PTP時鐘節(jié)點(diǎn)設(shè)備,所述 裝置包括:
[0036] 發(fā)送模塊,用于通過兩側(cè)端口分別向其他時鐘節(jié)點(diǎn)設(shè)備按照預(yù)設(shè)慢速發(fā)送頻率發(fā) 送Topology報文;
[0037] 接收模塊,用于通過兩側(cè)端口分別接收所述其他時鐘節(jié)點(diǎn)設(shè)備發(fā)送的Topology 報文;
[0038] 構(gòu)建模塊,用于根據(jù)接收到的Topology報文構(gòu)建網(wǎng)絡(luò)拓?fù)浔?,所述網(wǎng)絡(luò)拓?fù)浔碇?包括發(fā)送所述Topology報文的各端口的優(yōu)先級向量;
[0039] 確定模塊,用于根據(jù)所述各端口的優(yōu)先級向量確定本設(shè)備是否為最優(yōu)時鐘節(jié)點(diǎn)設(shè) 備;如果是,通過主端口向其他時鐘節(jié)點(diǎn)設(shè)備發(fā)布同步時鐘;如果否,根據(jù)所述網(wǎng)絡(luò)拓?fù)浔?確定所述兩側(cè)端口中的主端口和從端口,通過從端口接收所述最優(yōu)時鐘節(jié)點(diǎn)設(shè)備發(fā)布的同 步時鐘完成本地時鐘的更新;通過主端口將所述同步時鐘轉(zhuǎn)發(fā)給下一跳節(jié)點(diǎn)設(shè)備。
[0040] 優(yōu)選地,所述優(yōu)先級向量包括若干按照預(yù)設(shè)順序排列的子向量;
[0041] 所述確定模塊進(jìn)一步用于:
[0042] 將本設(shè)備的兩側(cè)端口與所述其他各端口的優(yōu)先級向量中的各子向量按照所述預(yù) 設(shè)順序依次進(jìn)行比較,以確定本設(shè)備的優(yōu)先級向量是否為最優(yōu)向量;
[0043] 如果是,則本設(shè)備是最優(yōu)時鐘節(jié)點(diǎn)設(shè)備;
[0044] 如果否,則本設(shè)備不是最優(yōu)時鐘節(jié)點(diǎn)設(shè)備。
[0045] 優(yōu)選地,所述Topology報文包括原始跳數(shù)、當(dāng)前跳數(shù)以及鄰居設(shè)備狀態(tài)字段;所 述鄰居設(shè)備狀態(tài)字段包括所述Topology報文的發(fā)送端口的東向和西向端口的端口狀態(tài); [0046] 所述構(gòu)建模塊進(jìn)一步用于:
[0047] 根據(jù)所述原始跳數(shù)和所述當(dāng)前跳數(shù)的差值確認(rèn)與其它時鐘節(jié)點(diǎn)設(shè)備的跳數(shù);
[0048] 根據(jù)所述鄰居設(shè)備狀態(tài)字段確認(rèn)所述東向和西向端口的端口狀態(tài);
[0049] 根據(jù)本設(shè)備接收所述Topology報文的端口區(qū)分出所述Topology報文在環(huán)網(wǎng)中的 發(fā)送方向。
[0050] 優(yōu)選地,所述確定模塊進(jìn)一步用于:
[0051] 在所述當(dāng)前跳數(shù)為0或收到的Topology報文為本設(shè)備發(fā)出的Topology報文時, 停止通過所述主端口將所述Topology報文轉(zhuǎn)發(fā)給下一跳節(jié)點(diǎn)設(shè)備。
[0052] 優(yōu)選地,所述確定模塊進(jìn)一步用于:
[0053] 分別比較所述兩側(cè)端口與所述最優(yōu)時鐘節(jié)點(diǎn)設(shè)備的跳數(shù);
[0054] 選擇與所述最優(yōu)時鐘節(jié)點(diǎn)設(shè)備的跳數(shù)較小的端口為從端口;另一個為主端口。
[0055] 優(yōu)選地,所述Topology報文還包括該Topology報文的發(fā)送端口的端口優(yōu)先級;
[0056] 所述確定模塊進(jìn)一步用于:
[0057] 當(dāng)所述兩側(cè)端口與所述最優(yōu)時鐘節(jié)點(diǎn)設(shè)備的跳數(shù)相同時,分別將所述兩側(cè)端口的 上游發(fā)送端口的優(yōu)先級向量中的各子向量按照所述預(yù)設(shè)順序依次進(jìn)行比較;
[0058] 選擇優(yōu)先級向量更優(yōu)的上游發(fā)送端口所在的時鐘節(jié)點(diǎn)設(shè)備作為上游時鐘源設(shè)備, 連接該設(shè)備的端口為從端口;另一個為主端口。
[0059] 優(yōu)選地,所述發(fā)送模塊進(jìn)一步用于:
[0060] 在檢測到鏈路故障時,立即從故障鏈路的另一側(cè)端口按照快速發(fā)送頻率發(fā)送所述 Topology報文,以使得其他時鐘節(jié)點(diǎn)收到該Topology報文后對本地的所述網(wǎng)絡(luò)拓?fù)浔磉M(jìn) 行更新并重新確定所述兩側(cè)端口中的主端口和從端口;其中,所述快速發(fā)送頻率大于所述 預(yù)設(shè)慢速發(fā)送頻率。
[0061] 相較于已有方案而言,本發(fā)明通過在環(huán)網(wǎng)中的時鐘節(jié)點(diǎn)設(shè)備之間互相交互 Topology報文來確定最優(yōu)時鐘以及端口角色,環(huán)網(wǎng)中的時鐘節(jié)點(diǎn)設(shè)備之間不再通過交互 Announce報文以及BMC端口角色算法來確定最優(yōu)時鐘以及端口角色,由于所述Topology報 文基于硬件轉(zhuǎn)發(fā),可以實現(xiàn)幾乎所有設(shè)備同時收到并處理所述Topology報文,從而降低了 端口角色計算的收斂時間,增加了系統(tǒng)的穩(wěn)定性。
【專利附圖】
【附圖說明】
[0062] 圖1是現(xiàn)有技術(shù)中時間同步和頻率同步示意圖;
[0063] 圖2是現(xiàn)有技術(shù)中基本時鐘節(jié)點(diǎn)不意圖;
[0064] 圖3是現(xiàn)有技術(shù)中PTP環(huán)形組網(wǎng)圖;
[0065] 圖4是本發(fā)明示例性的一種實施方式示出的時鐘同步方法流程圖;
[0066] 圖5是本發(fā)明不例性的一種實施方式不出的Topology報文的報文格式;
[0067] 圖6是本發(fā)明示例性的一種實施方式示出的Topology報文的edgeStatus字段的 格式;
[0068] 圖7是本發(fā)明示例性的一種實施方式示出環(huán)形網(wǎng)絡(luò)中報文發(fā)送方向的示意圖;
[0069] 圖8是本發(fā)明示例性的一種實施方式示出的環(huán)形網(wǎng)絡(luò)中PTP端口角色選舉的示意 圖;
[0070] 圖9是本發(fā)明示例性的一種實施方式示出的環(huán)形網(wǎng)絡(luò)中鏈路故障時PTP端口角色 選舉的示意圖;
[0071] 圖10是本發(fā)明示例性的一種實施方式示出的時鐘同步裝置的結(jié)構(gòu)示意圖;
[0072] 圖11是本發(fā)明示例性的一種實施方式示出的承載所述時鐘同步裝置PTP時鐘節(jié) 點(diǎn)設(shè)備的硬件結(jié)構(gòu)示意圖。
【具體實施方式】
[0073] 本發(fā)明通過從環(huán)網(wǎng)中時鐘節(jié)點(diǎn)設(shè)備的兩側(cè)端口分別發(fā)送Topology報文,并根據(jù) 接收到的環(huán)網(wǎng)中的其他時鐘節(jié)點(diǎn)設(shè)備發(fā)送的Topology報文構(gòu)建出環(huán)網(wǎng)拓?fù)?,然后根?jù)構(gòu) 建出的所述環(huán)網(wǎng)拓?fù)浯_定出環(huán)網(wǎng)中的最優(yōu)時鐘以及所述兩側(cè)端口中的端口角色;由于在本 發(fā)明中,時鐘節(jié)點(diǎn)設(shè)備之間不再通過交互Announce報文以及BMC端口角色算法來確定最優(yōu) 時鐘以及端口角色,所述Topology報文基于硬件轉(zhuǎn)發(fā),可以實現(xiàn)幾乎所有設(shè)備同時收到并 處理所述Topology報文,因此可以降低端口角色計算的收斂時間,增加系統(tǒng)的穩(wěn)定性。 [0074] 下面結(jié)合附圖并舉實施例,對本發(fā)明進(jìn)行詳細(xì)描述。
[0075] 請參見圖4,圖4是根據(jù)一示例性實施例示出的一種時鐘同步方法,應(yīng)用于環(huán)形組 網(wǎng)中的PTP時鐘節(jié)點(diǎn)設(shè)備,所述方法執(zhí)行以下步驟:
[0076] 步驟S401、通過兩側(cè)端口分別向其他時鐘節(jié)點(diǎn)設(shè)備按照預(yù)設(shè)慢速發(fā)送頻率發(fā)送 Topology 報文;
[0077] 步驟S402、通過兩側(cè)端口分別接收所述其他時鐘節(jié)點(diǎn)設(shè)備發(fā)送的Topology報文;
[0078] 步驟S403、根據(jù)接收到的Topology報文構(gòu)建網(wǎng)絡(luò)拓?fù)浔?,所述網(wǎng)絡(luò)拓?fù)浔碇邪?發(fā)送所述Topology報文的各端口的優(yōu)先級向量;
[0079] 步驟S404、根據(jù)所述各端口的優(yōu)先級向量確定本設(shè)備是否為最優(yōu)時鐘節(jié)點(diǎn)設(shè)備; 如果是,通過主端口向其他時鐘節(jié)點(diǎn)設(shè)備發(fā)布同步時鐘;如果否,根據(jù)所述網(wǎng)絡(luò)拓?fù)浔泶_定 所述兩側(cè)端口中的主端口和從端口,通過從端口接收所述最優(yōu)時鐘節(jié)點(diǎn)設(shè)備發(fā)布的同步時 鐘完成本地時鐘的更新,通過主端口將所述同步時鐘轉(zhuǎn)發(fā)給下一跳節(jié)點(diǎn)設(shè)備。
[0080] 在本實施例中,為兼容已有PTP協(xié)議,可以對PTP協(xié)議中的Announce報文進(jìn)行改 造,在預(yù)留字段中引入新的可用字段后作為所述Topology報文;
[0081] 具體地,請參見5,圖5為Topology報文的報文格式,在所述Announce報文的報文 格式的基礎(chǔ)上引入了以下內(nèi)容:
[0082] 其一,在消息頭中的消息類型messageType字段中引入一個新的取值0x04,表示 該報文為Topology報文。
[0083] 其二,將報文的預(yù)留字節(jié)64、65分別定義為ttl和ttlBase字段,所述ttl字段 的取值表示當(dāng)前跳數(shù),所述ttlBase字段的取值表示原始跳數(shù);所述Topology報文每經(jīng)過 一個設(shè)備ttl字段的取值減1,所述ttlBase字段的取值保持不變。其中,ttl字段以及 ttlBase字段的初始取值,可以根據(jù)實際組網(wǎng)中設(shè)備的數(shù)量來具體設(shè)置,例如,可以將所述 ttl字段以及ttlBase字段的初始取值均設(shè)置為255。
[0084] 其三,將報文的預(yù)留字節(jié)66定義為edgeStatus字段,即鄰居設(shè)備狀態(tài)字段。請參 見圖6,圖6為edgeStatus字段的具體格式,所述esw字段(edge state,west)和所述ese 字段(edge state, east)分別表示當(dāng)前該Topology報文的發(fā)送端口的西向端口以及東向 端口的端口狀態(tài),在具體實現(xiàn)時,可以將所述字段取值為1時表示故障,取值為〇時表示正 堂 巾。
[0085] 其中,請參見圖6,所述西向,是指環(huán)網(wǎng)中的順時針方向;所述東向,是指環(huán)網(wǎng)中的 逆時針方向。所述Topology報文的發(fā)送端口的西向端口以及東向端口分別表示所述發(fā)送 端口在環(huán)網(wǎng)中順時針方向和逆時針方向的下一個端口。例如,如圖7所示,假如端口 1為所 述Topology報文的發(fā)送端口,那么端口 2為所述端口 1的東向端口;端口 8則是端口 1的 西向端口。
[0086] 值得說明的是,所述Topology報文中除了新引入的以上內(nèi)容外,其他字段的具體 含義與所述Announce報文中的具體含義相同。
[0087] 在本實施例中,當(dāng)所述Topology報文構(gòu)建完成,所述時鐘節(jié)點(diǎn)設(shè)備通過兩側(cè)端口 向其他時鐘節(jié)點(diǎn)設(shè)備按照預(yù)設(shè)慢速發(fā)送頻率發(fā)送所述Topology報文。所述兩側(cè)端口,是指 設(shè)備向環(huán)網(wǎng)中東向和西向分別發(fā)送報文的端口;例如,如圖7所示,對于C0設(shè)備來說,其通 過端口 1和8分別向環(huán)網(wǎng)中的東向和西向分別發(fā)送報文,因此端口 1和8即為所述C0的兩 側(cè)端口。
[0088] 在本實施例中,所述Topology報文中包括該報文發(fā)送端口的優(yōu)先級向量;其中, 所述優(yōu)先級向量包括若干按照預(yù)設(shè)順序排列的子向量,該些子向量用于確定本設(shè)備是否為 最優(yōu)時鐘節(jié)點(diǎn)設(shè)備。在具體實現(xiàn)時,可以選擇所述Topology報文中攜帶的已有參數(shù)作為所 述子向量,也可以不采用Topology報文中的已有參數(shù)進(jìn)行單獨(dú)指定。
[0089] 例如,在一種優(yōu)選方案中,所述優(yōu)先級向量可以是按照在Topology報文中的順序 進(jìn)行排列的,包括所述 Topology 報文中的 Priorityl、ClockQuality、Priority2、ClockId、 SrcPortld以及單獨(dú)指定的RcvPortlndex等參數(shù)的子向量的組合。其中,PTP協(xié)議規(guī) 定Priorityl和Priority2統(tǒng)稱為Topology報文的發(fā)送端口的設(shè)備優(yōu)先級;SrcPortld 為Topology報文的發(fā)送端口的端口 ID,由該端口的MAC地址計算得到,具有唯一性(詳 參 IEEE802. IAS-2011) ;ClockQuality 為時鐘屬性,Clockld 為時鐘 ID ;RcvPortIndex 為 Topology報文接收端口的端口索引編號,用于與所述SrcPortld進(jìn)行區(qū)分。
[0090] 進(jìn)一步的,所述時鐘節(jié)點(diǎn)設(shè)備在發(fā)送所述Topology報文時,可以根據(jù)網(wǎng)絡(luò)狀況按 照不同的發(fā)送頻率進(jìn)行發(fā)送;例如,在網(wǎng)絡(luò)穩(wěn)定的情況下,所述時鐘節(jié)點(diǎn)設(shè)備可以按照所述 預(yù)設(shè)的慢速發(fā)送頻率發(fā)送所述Topology報文,此時可以稱之為慢速發(fā)送模式;當(dāng)設(shè)備檢測 鏈路故障時,則立即啟用快速發(fā)送模式,從故障鏈路的另一側(cè)端口按照大于所述慢速發(fā)送 頻率的快速發(fā)送頻率發(fā)送所述Topology報文。
[0091] 其中,所述預(yù)設(shè)慢速發(fā)送頻率與所述快速發(fā)送頻率的具體取值大小在本實施例中 不進(jìn)行特別限定,本領(lǐng)域技術(shù)人員可以根據(jù)實際的網(wǎng)絡(luò)狀態(tài)進(jìn)行具體設(shè)置;例如,可以將所 述預(yù)設(shè)慢速發(fā)送頻率默認(rèn)設(shè)置為100ms,將所述快速發(fā)送頻率默認(rèn)設(shè)置為10ms。
[0092] 同時,所述時鐘節(jié)點(diǎn)設(shè)備通過兩側(cè)端口收集環(huán)網(wǎng)中其他時鐘節(jié)點(diǎn)設(shè)備發(fā)送的所述 Topology報文。所述兩側(cè)端口將接收到的Topology報文硬件轉(zhuǎn)發(fā)出去并同時上送給所述 時鐘節(jié)點(diǎn)設(shè)備的控制層面進(jìn)行處理。
[0093] -方面,當(dāng)所述時鐘節(jié)點(diǎn)設(shè)備將環(huán)網(wǎng)中其他時鐘節(jié)點(diǎn)設(shè)備發(fā)送的Topology報文 收集完成后,可根據(jù)各Topology報文中攜帶的ttl和ttlBase字段,以及edgeStatus字段 (鄰居狀態(tài)字段)的取值來生成當(dāng)前環(huán)網(wǎng)的網(wǎng)絡(luò)拓?fù)浔怼?br>
[0094] 具體地,可通過計算收到的Topology報文中ttl和ttlBase字段的取值差,來 計算本端口與發(fā)送該Topology報文的端口之間的跳數(shù);可根據(jù)收到的Topology報文中 edgeStatus字段的具體取值,來確認(rèn)本端口的東向和西向端口的端口狀態(tài);還可以根據(jù)本 設(shè)備中接收到所述Topology報文的端口(即RcvPortlndex)來區(qū)分出該Topology報文在 環(huán)網(wǎng)中的發(fā)送方向。在具體實現(xiàn)時,所述優(yōu)先級向量也可以對應(yīng)寫入生成的網(wǎng)絡(luò)拓?fù)浔碇小?br>
[0095] 另一方面,當(dāng)所述時鐘節(jié)點(diǎn)設(shè)備將環(huán)網(wǎng)中其他時鐘節(jié)點(diǎn)設(shè)備發(fā)送的Topology報 文收集完成后,還可根據(jù)各Topology報文中攜帶的優(yōu)先級向量來確定本設(shè)備是否為最優(yōu) 時鐘節(jié)點(diǎn)設(shè)備。
[0096] 具體地,可以按照所述優(yōu)先級向量中的各子向量的預(yù)設(shè)順序,進(jìn)行逐一比較,來確 認(rèn)本設(shè)備的優(yōu)先級向量是否為環(huán)網(wǎng)中的最優(yōu)向量,如果是,本設(shè)備為最優(yōu)時鐘節(jié)點(diǎn);反之, 則不是。
[0097] 例如,假設(shè)優(yōu)先級子向量包括 Priorityl、ClockQuality、Priority2、Clockld、 SrcPortld以及RcvPortlndex,在確定最優(yōu)向量時,可以按照預(yù)設(shè)順序逐一進(jìn)行比較,當(dāng)任 一子向量較小時,則為最優(yōu)向量;如果相同,則按照所述順序繼續(xù)比較下一個,直到確認(rèn)出 最優(yōu)向量。
[0098] 其中,當(dāng)本設(shè)備任一端口收到Topology報文中ttl字段的取值為0或收到的 Topology報文為本設(shè)備發(fā)出的Topology報文時,則停止通過所述主端口將所述Topology 報文轉(zhuǎn)發(fā)給下一跳節(jié)點(diǎn)設(shè)備。
[0099] 當(dāng)最終確認(rèn)出本設(shè)備為最優(yōu)時鐘節(jié)點(diǎn)設(shè)備時,此時兩側(cè)端口均默認(rèn)為主端口,本 設(shè)備上的時鐘為環(huán)網(wǎng)中的最優(yōu)時鐘,本設(shè)備通過主端口向環(huán)網(wǎng)中其他的時鐘節(jié)點(diǎn)設(shè)備發(fā)布 同步時鐘,以使得其他時鐘節(jié)點(diǎn)設(shè)備根據(jù)接收到的所述同步時鐘完成本地時鐘的更新。通 過主端口向環(huán)網(wǎng)中其他的時鐘節(jié)點(diǎn)設(shè)備發(fā)布所述最優(yōu)時鐘的具體實現(xiàn)方法,請參考現(xiàn)有技 術(shù),本申請中不再進(jìn)行詳述。
[0100] 當(dāng)最終確認(rèn)出本設(shè)備不是最優(yōu)時鐘節(jié)點(diǎn)設(shè)備時,那么本設(shè)備還需要根據(jù)構(gòu)建完成 的網(wǎng)絡(luò)拓?fù)浔碓诒镜剡M(jìn)行主端口和從端口的選舉。
[0101] 具體地,分別比較本設(shè)備在環(huán)網(wǎng)中的東向和西向端口(即所述兩側(cè)端口)與最優(yōu) 時鐘節(jié)點(diǎn)設(shè)備之間的跳數(shù),選擇與最優(yōu)時鐘節(jié)點(diǎn)設(shè)備的跳數(shù)最小的端口作為從端口,另一 個為主端口;其中,如果環(huán)網(wǎng)有一側(cè)鏈路是斷開的,則直接選擇斷開鏈路的另一側(cè)端口為從 端口。
[0102] 當(dāng)所述東向和西向端口與最優(yōu)時鐘節(jié)點(diǎn)設(shè)備之間的跳數(shù)相同時,則可以進(jìn)一步將 所述東向和西向端口的上游發(fā)送端口的優(yōu)先級向量中的各子向量按照所述預(yù)設(shè)順序依次 進(jìn)行比較,以確認(rèn)出上游時鐘源設(shè)備。
[0103] 具體地,假設(shè)優(yōu)先級子向量包括 Priorityl、ClockQuality、Priority2、Clockld、 SrcPortld以及RcvPortlndex,可以按照上述優(yōu)先級向量的默認(rèn)順序首先比較Topology報 文的上游發(fā)送端口的端口優(yōu)先級Priorityl,選擇Priorityl較小的上游發(fā)送端口所在的 設(shè)備作為上游時鐘源設(shè)備,本地連接上游時鐘源設(shè)備的端口為從端口,另一個為主端口;當(dāng) Priorityl相同,再比較ClockQuality,選擇ClockQuality較小的上游發(fā)送端口所在的設(shè) 備作為上游時鐘源設(shè)備,本地連接上游時鐘源設(shè)備的端口為從端口,另一個為主端口;依次 類推,直到選舉出上游時鐘源設(shè)備為止。
[0104] 其中,由于PTP協(xié)議規(guī)定,不同的端口發(fā)送的Topology報文中SrcPortld取值具 有唯一性(由端口 MAC地址計算生成),因此在使用上述方法選舉上游時鐘源設(shè)備時,不會 存在由于比較的各子向量取值均一致而造成的選舉不成功的問題。
[0105] 在本實施例中,當(dāng)設(shè)備檢測到鏈路故障時,立即啟用快速發(fā)送模式,立即從故障 兩路的另一側(cè)端口按照所述快速發(fā)送頻率發(fā)送Topology報文,以使得環(huán)網(wǎng)中的其他時鐘 節(jié)點(diǎn)設(shè)備收到該Topology報文后對本地的網(wǎng)絡(luò)拓?fù)浔磉M(jìn)行更新進(jìn)行主端口和從端口的選 舉;由于Topology報文基于硬件轉(zhuǎn)發(fā),這種快速通知機(jī)制能夠在極短的時間內(nèi)就使得環(huán)網(wǎng) 上所有設(shè)備同步選舉出新的端口角色,重新開始PTP時間同步。
[0106] 以下通過一個具體的應(yīng)用實例,對上述技術(shù)方案作進(jìn)一步的說明。
[0107] 請參見圖8,圖8為一個環(huán)網(wǎng)的組網(wǎng)圖,包括C0?C5六臺節(jié)點(diǎn)設(shè)備。在如圖8所 示的環(huán)網(wǎng)中進(jìn)行ΡΤΡ時鐘同步時,該環(huán)網(wǎng)中的各節(jié)點(diǎn)設(shè)備通過兩側(cè)端口分別向環(huán)網(wǎng)中的東 向和西向發(fā)送Topology報文。例如,對于節(jié)點(diǎn)設(shè)備C0來說,通過端口 01和02分別向環(huán)網(wǎng) 中的東向和西向發(fā)送Topology報文。
[0108] 各節(jié)點(diǎn)設(shè)備收集環(huán)網(wǎng)中其他節(jié)點(diǎn)設(shè)備發(fā)送的Topology報文,當(dāng)收集完成后,根據(jù) 收集到的Topology報文來構(gòu)建網(wǎng)絡(luò)拓?fù)浔硪约斑M(jìn)行最優(yōu)時鐘節(jié)點(diǎn)的選舉。例如,對于C1 設(shè)備來說,通過處理環(huán)網(wǎng)中兩側(cè)端口收到的Topology報文,最終計算出的環(huán)網(wǎng)上的拓?fù)浔?如下:
[0109]
【權(quán)利要求】
1. 一種時鐘同步方法,應(yīng)用于環(huán)形組網(wǎng)中的PTP時鐘節(jié)點(diǎn)設(shè)備,其特征在于,所述方法 包括: 通過兩側(cè)端口分別向其他時鐘節(jié)點(diǎn)設(shè)備按照預(yù)設(shè)慢速發(fā)送頻率發(fā)送Topology報文; 通過兩側(cè)端口分別接收所述其他時鐘節(jié)點(diǎn)設(shè)備發(fā)送的Topology報文; 根據(jù)接收到的Topology報文構(gòu)建網(wǎng)絡(luò)拓?fù)浔?,所述網(wǎng)絡(luò)拓?fù)浔碇邪òl(fā)送所述 Topology報文的各端口的優(yōu)先級向量; 根據(jù)所述各端口的優(yōu)先級向量確定本設(shè)備是否為最優(yōu)時鐘節(jié)點(diǎn)設(shè)備; 如果是,通過主端口向其他時鐘節(jié)點(diǎn)設(shè)備發(fā)布同步時鐘; 如果否,根據(jù)所述網(wǎng)絡(luò)拓?fù)浔泶_定所述兩側(cè)端口中的主端口和從端口,通過從端口接 收所述最優(yōu)時鐘節(jié)點(diǎn)設(shè)備發(fā)布的同步時鐘完成本地時鐘的更新;通過主端口將所述同步時 鐘轉(zhuǎn)發(fā)給下一跳節(jié)點(diǎn)設(shè)備。
2. 如權(quán)利要求1所述的方法,其特征在于,所述優(yōu)先級向量包括若干按照預(yù)設(shè)順序排 列的子向量; 所述根據(jù)所述其他各端口的優(yōu)先級向量確定本設(shè)備是否為最優(yōu)時鐘節(jié)點(diǎn)設(shè)備包括: 將本設(shè)備的兩側(cè)端口與所述其他各端口的優(yōu)先級向量中的各子向量按照所述預(yù)設(shè)順 序依次進(jìn)行比較,以確定本設(shè)備的優(yōu)先級向量是否為最優(yōu)向量; 如果是,則本設(shè)備是最優(yōu)時鐘節(jié)點(diǎn)設(shè)備; 如果否,則本設(shè)備不是最優(yōu)時鐘節(jié)點(diǎn)設(shè)備。
3. 如權(quán)利要求1所述的方法,其特征在于, 所述Topology報文包括原始跳數(shù)、當(dāng)前跳數(shù)以及鄰居設(shè)備狀態(tài)字段;所述鄰居設(shè)備狀 態(tài)字段包括所述Topology報文的發(fā)送端口的東向和西向端口的端口狀態(tài); 所述根據(jù)接收到的Topology報文構(gòu)建網(wǎng)絡(luò)拓?fù)浔戆ǎ? 根據(jù)所述原始跳數(shù)和所述當(dāng)前跳數(shù)的差值確認(rèn)與其它時鐘節(jié)點(diǎn)設(shè)備的跳數(shù); 根據(jù)所述鄰居設(shè)備狀態(tài)字段確認(rèn)所述東向和西向端口的端口狀態(tài); 根據(jù)本設(shè)備接收所述Topology報文的端口區(qū)分出所述Topology報文在環(huán)網(wǎng)中的發(fā)送 方向。
4. 如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 當(dāng)所述當(dāng)前跳數(shù)為〇或收到的Topology報文為本設(shè)備發(fā)出的Topology報文時,停止 通過所述主端口將所述Topology報文轉(zhuǎn)發(fā)給下一跳節(jié)點(diǎn)設(shè)備。
5. 如權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述網(wǎng)絡(luò)拓?fù)浔泶_定出所述兩側(cè) 端口中的王端口和從端口包括: 分別比較所述兩側(cè)端口與所述最優(yōu)時鐘節(jié)點(diǎn)設(shè)備的跳數(shù); 選擇與所述最優(yōu)時鐘節(jié)點(diǎn)設(shè)備的跳數(shù)較小的端口為從端口;另一個為主端口。
6. 如權(quán)利要求5所述的方法,其特征在于,所述根據(jù)所述網(wǎng)絡(luò)拓?fù)浔泶_定出所述兩側(cè) 立而口中的王纟而口和從纟而口還包括: 當(dāng)所述兩側(cè)端口與所述最優(yōu)時鐘節(jié)點(diǎn)設(shè)備的跳數(shù)相同時,分別將所述兩側(cè)端口的上游 發(fā)送端口的優(yōu)先級向量中的各子向量按照所述預(yù)設(shè)順序依次進(jìn)行比較; 選擇優(yōu)先級向量更優(yōu)的上游發(fā)送端口所在的時鐘節(jié)點(diǎn)設(shè)備作為上游時鐘源設(shè)備,連接 該設(shè)備的端口為從端口;另一個為主端口。
7. 如權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 當(dāng)檢測到鏈路故障時,立即從故障鏈路的另一側(cè)端口按照快速發(fā)送頻率發(fā)送所述 Topology報文,以使得其他時鐘節(jié)點(diǎn)收到該Topology報文后對本地的所述網(wǎng)絡(luò)拓?fù)浔磉M(jìn) 行更新并重新確定所述兩側(cè)端口中的主端口和從端口; 其中,所述快速發(fā)送頻率大于所述預(yù)設(shè)慢速發(fā)送頻率。
8. -種時鐘同步裝置,應(yīng)用于環(huán)形組網(wǎng)中的PTP時鐘節(jié)點(diǎn)設(shè)備,其特征在于,所述裝置 包括: 發(fā)送模塊,用于通過兩側(cè)端口分別向其他時鐘節(jié)點(diǎn)設(shè)備按照預(yù)設(shè)慢速發(fā)送頻率發(fā)送 Topology 報文; 接收模塊,用于通過兩側(cè)端口分別接收所述其他時鐘節(jié)點(diǎn)設(shè)備發(fā)送的Topology報文; 構(gòu)建模塊,用于根據(jù)接收到的Topology報文構(gòu)建網(wǎng)絡(luò)拓?fù)浔恚鼍W(wǎng)絡(luò)拓?fù)浔碇邪?發(fā)送所述Topology報文的各端口的優(yōu)先級向量; 確定模塊,用于根據(jù)所述各端口的優(yōu)先級向量確定本設(shè)備是否為最優(yōu)時鐘節(jié)點(diǎn)設(shè)備; 如果是,通過主端口向其他時鐘節(jié)點(diǎn)設(shè)備發(fā)布同步時鐘;如果否,根據(jù)所述網(wǎng)絡(luò)拓?fù)浔泶_定 所述兩側(cè)端口中的主端口和從端口,通過從端口接收所述最優(yōu)時鐘節(jié)點(diǎn)設(shè)備發(fā)布的同步時 鐘完成本地時鐘的更新;通過主端口將所述同步時鐘轉(zhuǎn)發(fā)給下一跳節(jié)點(diǎn)設(shè)備。
9. 如權(quán)利要求8所述的裝置,其特征在于,所述優(yōu)先級向量包括若干按照預(yù)設(shè)順序排 列的子向量; 所述確定模塊進(jìn)一步用于: 將本設(shè)備的兩側(cè)端口與所述其他各端口的優(yōu)先級向量中的各子向量按照所述預(yù)設(shè)順 序依次進(jìn)行比較,以確定本設(shè)備的優(yōu)先級向量是否為最優(yōu)向量; 如果是,則本設(shè)備是最優(yōu)時鐘節(jié)點(diǎn)設(shè)備; 如果否,則本設(shè)備不是最優(yōu)時鐘節(jié)點(diǎn)設(shè)備。
10. 如權(quán)利要求8所述的裝置,其特征在于,所述Topology報文包括原始跳數(shù)、當(dāng)前跳 數(shù)以及鄰居設(shè)備狀態(tài)字段;所述鄰居設(shè)備狀態(tài)字段包括所述Topology報文的發(fā)送端口的 東向和西向端口的端口狀態(tài); 所述構(gòu)建模塊進(jìn)一步用于: 根據(jù)所述原始跳數(shù)和所述當(dāng)前跳數(shù)的差值確認(rèn)與其它時鐘節(jié)點(diǎn)設(shè)備的跳數(shù); 根據(jù)所述鄰居設(shè)備狀態(tài)字段確認(rèn)所述東向和西向端口的端口狀態(tài); 根據(jù)本設(shè)備接收所述Topology報文的端口區(qū)分出所述Topology報文在環(huán)網(wǎng)中的發(fā)送 方向。
11. 如權(quán)利要求8所述的裝置,其特征在于,所述確定模塊進(jìn)一步用于: 在所述當(dāng)前跳數(shù)為〇或收到的Topology報文為本設(shè)備發(fā)出的Topology報文時,停止 通過所述主端口將所述Topology報文轉(zhuǎn)發(fā)給下一跳節(jié)點(diǎn)設(shè)備。
12. 如權(quán)利要求8所述的裝置,其特征在于,所述確定模塊進(jìn)一步用于: 分別比較所述兩側(cè)端口與所述最優(yōu)時鐘節(jié)點(diǎn)設(shè)備的跳數(shù); 選擇與所述最優(yōu)時鐘節(jié)點(diǎn)設(shè)備的跳數(shù)較小的端口為從端口;另一個為主端口。
13. 如權(quán)利要求12所述的裝置,其特征在于,所述確定模塊進(jìn)一步用于: 當(dāng)所述兩側(cè)端口與所述最優(yōu)時鐘節(jié)點(diǎn)設(shè)備的跳數(shù)相同時,分別將所述兩側(cè)端口的上游 發(fā)送端口的優(yōu)先級向量中的各子向量按照所述預(yù)設(shè)順序依次進(jìn)行比較; 選擇優(yōu)先級向量更優(yōu)的上游發(fā)送端口所在的時鐘節(jié)點(diǎn)設(shè)備作為上游時鐘源設(shè)備,連接 該設(shè)備的端口為從端口;另一個為主端口。
14.如權(quán)利要求8所述的裝置,其特征在于,所述發(fā)送模塊進(jìn)一步用于: 在檢測到鏈路故障時,立即從故障鏈路的另一側(cè)端口按照快速發(fā)送頻率發(fā)送所述 Topology報文,以使得其他時鐘節(jié)點(diǎn)收到該Topology報文后對本地的所述網(wǎng)絡(luò)拓?fù)浔磉M(jìn) 行更新并重新確定所述兩側(cè)端口中的主端口和從端口;其中,所述快速發(fā)送頻率大于所述 預(yù)設(shè)慢速發(fā)送頻率。
【文檔編號】H04L7/00GK104092528SQ201410333987
【公開日】2014年10月8日 申請日期:2014年7月14日 優(yōu)先權(quán)日:2014年7月14日
【發(fā)明者】張為 申請人:杭州華三通信技術(shù)有限公司