專利名稱:基于交換網絡的一種廣播調度方法
技術領域:
本發明屬于計算機通信技術,涉及通信網絡中交換機的一種廣播的調度方法。
背景技術:
現代交換式通信網絡,都由節點機和交換機組成,所有節點機均通過鏈路與交換機相連,實現分布式通信。交換機作為整個交換網絡的核心部件,負責為網絡中所有節點提供單播、組播和廣播的數據交換支持。為了支持更多的網絡節點,通常將多個交換機進行級聯來實現。 在一些實時通信系統中,對廣播消息有特殊要求,要求廣播消息同時達到各目的端ロ,這樣就要求所有目的端ロ全部就緒后才能發送廣播消息。當有多個端ロ需要同時發送廣播消息時,可能會出現多個端ロ相互等待而造成廣播死鎖問題。另外,在兩個交換機組成的級聯網絡中,如何實現廣播消息同時到達各目的端ロ,暫無相關技術文獻。
發明內容
本發明的目的是提供基于交換網絡的ー種廣播調度方法,實現廣播的線速轉發,確保廣播消息可以同時到達所有目的端ロ ;在多端ロ發送廣播時,無死鎖,各發送端ロ發送負載保持均衡;并且支持兩交換機級聯網絡。本發明通過設計ー個全局的廣播仲裁器,對所有需要發送廣播消息的端ロ進行仲裁;然后得到許可的端ロ向所有目的端ロ發送請求,得到所有目的端ロ許可后,發送數據幀并撤銷廣播發送請求;然后轉入下ー輪仲裁。據此,本發明提出以下方案基于交換網絡的ー種廣播調度方法,包括以下環節I)當ー個或多個Ingress端ロ的廣播隊列非空時,即處于等待發送的巾貞為廣播中貞狀態,每個Ingress端ロ向廣播仲裁器發送各自的“廣播調度請求”,同時還發送級聯擴展端ロ標志信號以及優先級標志信號給廣播仲裁器;廣播仲裁器進行仲裁,根據仲裁結果向選定的Ingress端ロ發送“廣播調度許可”;2) Ingress端ロ如果未收到“廣播調度許可”,則持續發送“廣播調度請求”;如果收到“廣播調度許可”,則根據主機配置的廣播隔離寄存器,Ingress端ロ向除廣播隔離端ロ外的其他所有的Egress目的端ロ發送“廣播發送請求”;3) Egress目的端ロ接收到Ingress端ロ發送的“廣播發送請求”后,根據步驟I)所述的優先級標志信號優先選擇對高優先級“廣播發送請求”采用Round Robin算法進行仲裁,根據該仲裁結果,Egress目的端ロ向相應的Ingress端ロ發送“廣播發送許可”;當Egress目的端ロ接收到Ingress端ロ發送的“接受廣播發送許可”后,轉入下ー輪仲裁;否則,Egress目的端ロ持續發送“廣播消息發送許可”;4) Ingress端ロ收齊所有Egress目的端ロ的“廣播發送許可”后,向所有Egress目的端ロ發送“接受廣播發送許可”;同吋,Ingress端ロ控制邏輯產生“廣播數據幀出隊請求”,其有效狀態維持到該幀結束;控制邏輯根據優先級標志信號選擇相應優先級的廣播幀隊列,進入廣播發送狀態;5) Ingress端口進入廣播發送狀態后,撤銷向廣播仲裁器發送的“廣播調度請求”;同時,廣播仲裁器轉入下一輪仲裁,再次執行步驟I)至5);所述廣播仲裁器在收到“廣播調度請求”后的執行內容是a、檢測級聯擴展端口是否有“廣播調度請求”,如果有,向該級聯擴展端口發送“廣播調度許可”,然后轉步驟d);否則,轉步驟b);b、檢測是否有高優先級的“廣播調度請求”,如果有,利用Round Robin算法對接收到的高優先級“廣播調度請求”進行仲裁,并根據仲裁結果,向該端口發送“廣播調度許可”,然后轉步驟d);否則轉步驟c); C、采用Round Robin算法對接收到的低優先級“廣播調度請求”進行仲裁,并根據仲裁結果,向該端口發送“廣播調度許可”,然后轉步驟4);d、檢測被許可端口是否已撤銷“廣播調度請求”,如果是,轉步驟a),進行下一輪仲裁;否則,繼續檢測該端口是否已撤銷“廣播調度請求”。本發明的優點是可靠性高在單交換機及兩交換機級聯網絡中,出現多個端口同時發送廣播時,可以確保不會出現死鎖。傳輸效率高單端口發送廣播可以達到線速;多端口發送廣播時,各發送端口發送均衡。可擴展性強只需要對仲裁器Round Robin端口數目進行擴充,即可支持更多端口的交換機廣播的設計和實現。支持廣播隔離可以根據實際情況,通過主機配置,使部分端口不接收廣播幀。
圖1是廣播實現方案示意圖;圖2是廣播仲裁器工作流程示意圖;圖3是廣播發送流程示意圖。
具體實施例方式本發明的實現方式分為廣播整體方案、廣播仲裁器、廣播發送流程三個部分。下面以支持兩級優先級的32端口交換機為例,對三個部分進行具體介紹。1.廣播實現方案如圖1所示,當交換機的某個或某些Ingress端口(端口輸入端)接收到廣播數據幀時,需要向廣播仲裁器發送“廣播調度請求”,同時執行下述過程I)廣播仲裁器從所有的“廣播調度請求”端口中,通過“廣播仲裁器”仲裁出某一個端口,向它發送“廣播調度許可”;2)收到“廣播調度許可”的Ingress端口,向所有需要接收廣播的Egress目的端口(端口輸出端)發送“廣播發送請求”信號,在收齊所有Egress目的端口回復的“廣播發送許可”后,轉入發送狀態,并撤銷向廣播仲裁器發送的“廣播調度請求”信號;沒有收到“廣播調度許可”的Ingress端口,則持續向廣播仲裁器發送“廣播調度請求”;
3)廣播仲裁器在向某Ingress端口發送出“廣播調度許可”后,持續檢測該端口的“廣播調度請求”信號是否已被撤銷,當檢測到該信號撤銷后,轉步驟1),進行下一輪仲裁。2.廣播仲裁器為避免出現廣播風暴,廣播消息只能通過一個級聯擴展端口。廣播仲裁器采用基于優先級的Round Robin算法,優先接受高優先級的請求,其中,級聯擴展端口優先級最高,其它端口優先級為相應廣播幀的優先級。如圖2所示,廣播仲裁器工作流程如下I)檢測級聯擴展端口是否有“廣播調度請求”,如果有,向該級聯擴展端口發送“廣播調度許可”,然后轉步驟4);否則,轉步驟2);2)檢測是否有高優先級的“廣播調度請求”,如果有,利用Round Robin算法對接收 到的高優先級“廣播調度請求”進行仲裁,并根據仲裁結果,向該端口發送“廣播調度許可”,然后轉步驟4);否則轉步驟3);3)利用Round Robin算法對接收到的低優先級“廣播調度請求”進行仲裁,并根據仲裁結果,向該端口發送“廣播調度許可”,然后轉步驟4);4)檢測被許可端口是否已撤銷“廣播調度請求”,如果是,轉步驟I ),進行下一輪仲裁;否則,繼續檢測該端口是否已撤銷“廣播調度請求”。3.廣播發送流程每個數據端口的Ingress端口有一個輸入緩存,用來緩存接收到的各種數據幀。該緩存被分成大小相同的N個分區(典型值為4,8,12,14,16),每個緩存分區足夠存儲一個最大幀。每個緩存分區有一個對應的位置指針,取值分別為O N。尚未使用的緩存分區以及剛釋放的緩存分區的位置指針存放在一個指針池中,該指針池用FIFO來實現。每個數據端口的Ingress端口有若干個隊列32個單播低優先級隊列,32個單播高優先級隊列,I個多播低優先級隊列,I個多播高優先級隊列,I個廣播低優先級隊列,I個廣播高優先級隊列。當一個數據幀進入Ingress端口時,從指針池讀出未被使用的緩存分區位置指針,然后根據該指針將數據幀寫入到輸入緩存中對應的位置。同時,根據該數據幀的目的地址,將位置指針寫入對應的隊列隊尾。如圖3所示,廣播發送流程如下I)當一個或多個Ingress端口(輸入端口)的廣播隊列非空(即等待發送的幀為廣播幀)時,每個Ingress端口向廣播仲裁器發送各自的“廣播調度請求”,同時還發送級聯擴展端口標志信號以及優先級標志信號給廣播仲裁器;廣播仲裁器進行仲裁,根據仲裁結果向選定的Ingress端口發送“廣播調度許可”。2) Ingress端口如果未收到“廣播調度許可”,則持續發送“廣播調度請求”;如果收到“廣播調度許可”,則根據主機配置的廣播隔離寄存器,Ingress端口向除廣播隔離端口外的其他所有的Egress目的端口(輸出端口)發送“廣播發送請求”。3)Egress目的端口接收到Ingress端口發送的“廣播發送請求”后,根據步驟I)所述的優先級標志信號優先選擇對高優先級“廣播發送請求”采用Round Robin算法進行仲裁(該仲裁與前述仲裁器無關,只不過前述仲裁器通常也采用該算法),根據仲裁結果Egress目的端口向相應的Ingress端口發送“廣播發送許可”。
當Egress目的端口接收到Ingress端口發送的“接受廣播發送許可”后,轉入下一輪仲裁;否則,Egress目的端口持續發送“廣播消息發送許可”。4) Ingress端口收齊所有Egress目的端口的“廣播發送許可”后,向所有Egress目的端口發送“接受廣播發送許可”。同時,Ingress端口控制邏輯產生“廣播數據幀出隊請求”,其有效狀態維持到該幀結束。控制邏輯根據優先級標志信號選擇相應優先級的廣播幀隊列,進入廣播發送狀態(從相應優先級廣播隊列中讀出頭指針,然后根據該頭指針計算出該廣播幀存放在輸入緩存中的起始地址,進入廣播發送狀態)。5)IngreSS端口進入廣播發送狀態后,撤銷向廣播仲裁器發送的“廣播調度請求”。同時,廣播仲裁器轉入下一輪仲裁,再次執行步驟I)至5)。進入廣播發送狀態后,具體是執行以下過程=Ingress端口控制邏輯從輸入緩存中讀出數據巾貞,同時通過crossbar向所有Egress目的端口發送,直到該巾貞結束。然后將此 次使用的位置指針重新寫入到指針池中,以供后面數據幀使用。
權利要求
1.基于交換網絡的一種廣播調度方法,包括以下環節O當一個或多個Ingress端口的廣播隊列非空時,即處于等待發送的幀為廣播幀狀態,每個Ingress端口向廣播仲裁器發送各自的“廣播調度請求”,同時還發送級聯擴展端口標志信號以及優先級標志信號給廣播仲裁器;廣播仲裁器進行仲裁,根據仲裁結果向選定的Ingress端口發送“廣播調度許可”;2)Ingress端口如果未收到“廣播調度許可”,則持續發送“廣播調度請求”;如果收到 “廣播調度許可”,則根據主機配置的廣播隔離寄存器,Ingress端口向除廣播隔離端口外的其他所有的Egress目的端口發送“廣播發送請求”;3)Egress目的端口接收到Ingress端口發送的“廣播發送請求”后,根據步驟I)所述的優先級標志信號優先選擇對高優先級“廣播發送請求”采用Round Robin算法進行仲裁, 根據該仲裁結果,Egress目的端口向相應的Ingress端口發送“廣播發送許可”;當Egress目的端口接收到Ingress端口發送的“接受廣播發送許可”后,轉入下一輪仲裁;否則,Egress目的端口持續發送“廣播消息發送許可”;4)Ingress端口收齊所有Egress目的端口的“廣播發送許可”后,向所有Egress目的端口發送“接受廣播發送許可”;同時,Ingress端口控制邏輯產生“廣播數據幀出隊請求”, 其有效狀態維持到該幀結束;控制邏輯根據優先級標志信號選擇相應優先級的廣播幀隊列,進入廣播發送狀態;5)Ingress端口進入廣播發送狀態后,撤銷向廣播仲裁器發送的“廣播調度請求”;同時,廣播仲裁器轉入下一輪仲裁,再次執行步驟I)至5);所述廣播仲裁器在收到“廣播調度請求”后的執行內容是a、檢測級聯擴展端口是否有“廣播調度請求”,如果有,向該級聯擴展端口發送“廣播調度許可”,然后轉步驟d);否則,轉步驟b);b、檢測是否有高優先級的“廣播調度請求”,如果有,利用RoundRobin算法對接收到的高優先級“廣播調度請求”進行仲裁,并根據仲裁結果,向該端口發送“廣播調度許可”,然后轉步驟d);否則轉步驟c);C、采用Round Robin算法對接收到的低優先級“廣播調度請求”進行仲裁,并根據仲裁結果,向該端口發送“廣播調度許可”,然后轉步驟4);d、檢測被許可端口是否已撤銷“廣播調度請求”,如果是,轉步驟a),進行下一輪仲裁; 否則,繼續檢測該端口是否已撤銷“廣播調度請求”。
全文摘要
本發明是基于交換網絡的一種廣播調度方法,實現廣播的線速轉發,確保廣播消息可以同時到達所有目的端口;在多端口發送廣播時,無死鎖,各發送端口發送負載保持均衡;并且支持兩交換機級聯網絡。本發明通過設計一個全局的廣播仲裁器,對所有需要發送廣播消息的端口進行仲裁;然后得到許可的端口向所有目的端口發送請求,得到所有目的端口許可后,發送數據幀并撤銷廣播發送請求;然后轉入下一輪仲裁。
文檔編號H04L12/18GK103023669SQ20121059088
公開日2013年4月3日 申請日期2012年12月28日 優先權日2012年12月28日
發明者李玉發, 李大鵬, 黃韜, 王紅春, 王曉華, 田園, 蒲愷 申請人:中國航空工業集團公司第六三一研究所