一種量化的擁塞通告消息生成方法及裝置的制造方法
【技術領域】
[0001]本發明涉及通信技術領域,尤其涉及一種量化的擁塞通告(英文:QuantizedCongest1n Notificat1n,縮寫:QCN)消息生成方法及裝置。
【背景技術】
[0002]在存儲網絡(英文:Storage Area Network,簡稱:SAN)和以太網絡融合后,數據流在傳輸過程中不丟包,可以通過基于優先級的流控(英文:Pr1rity-based FlowControl,簡稱:PFC)、增強傳輸選擇協議(英文:Enhanced Transmiss1n Select1n,簡稱:ETS)和QCN等技術來實現。
[0003]QCN技術用于解決SAN網絡的擁塞問題。如圖1所示,Hl和H2為服務器,H3為網絡設備(例如:交換機),H4為存儲設備,Hl和H2發送的數據流經H3轉發給H4。如果數據流在H3發生擁塞,H3檢測到擁塞后,將發送QCN消息到Hl和H2。其中,發送給Hl的QCN消息的源介質訪問控制(英文:source media access control,簡稱:SMAC)地址為H4的MAC地址,目的MAC (英文destinat1n MAC,簡稱:DMAC)地址為Hl的MAC地址;發送給H2的QCN消息的SMAC地址為H4的MAC地址,DMAC地址為H2的MAC地址。Hl和H2收到各自的QCN消息后,降低報文的發送速率,從而減少網絡中的擁塞,提高轉發效率。
[0004]其中,網絡設備針對接收到的數據流生成QCN消息的過程為:網絡設備的硬件內部維護有一用于統計數據流速率的統計表,統計表內的每一個表項以“SMAC地址+DMAC+以太類型”的形式來表示一條數據流。當接收到一條數據流時,若所述統計表中已存在所述數據流對應的表項,所述網絡設備便將該條數據流記入已存在的表項中,若所述統計表中不存在所述數據流對應的表項,所述網絡設備便新增一個表項,將該條數據流記入新增的表項中。所述網絡設備將該條數據流記入統計表后,計算該條數據流的速率,并判斷該條數據流的速率是否超過設定的閾值,若是,則產生QCN消息,將該QCN消息發送給該條數據流的源端服務器;否則正常轉發該條數據流。若在一段時間內所述網絡設備一直沒有接收到該條數據流的新的報文,便將該條數據流從所述統計表中刪除。
[0005]然而,實際應用中網絡設備的硬件能夠支持的統計表的表項規格較小,而網絡設備只對記錄在統計表中的數據流進行統計和判斷,當數據流的數量較多時,所述統計表的表項超過系統規格后,所述網絡設備對后續收到的并且沒有在所述統計表中記錄的數據流無法進行統計和判斷,從而無法有效地找出擁塞流,造成網絡擁塞。
【發明內容】
[0006]本發明提供一種QCN消息生成方法及裝置,用以解決現有技術中當進入網絡設備的數據流的數量較多時,所述網絡設備無法對很多數據流進行統計和判斷,造成網絡擁塞的問題。
[0007]第一方面,本發明提供了一種QCN消息生成方法,該方法包括:
[0008]基于緩存的數據流生成統計表,所述統計表的每個表項包括一條數據流被網絡設備轉發的報文個數的統計結果以及所述數據流的流標識;
[0009]根據所述統計表中的每個表項的統計結果,計算每個表項對應的數據流的速率;根據每個表項對應的數據流的速率,從所述統計表中篩選出速率排在前N位的N個表項;確定與所述N個表項包括的流標識相匹配的N條數據流;當所述N條數據流中的第一數據流的速率超過設定的第一閾值時,生成QCN消息,并將所述QCN消息發送至所述第一數據流的源設備。
[0010]結合第一方面,在第一方面的第一種可能的實現方式中,基于緩存的數據流生成統計表,包括:
[0011 ] 讀取緩存的數據流中的報文;
[0012]確定所述讀取的報文所屬的數據流的流標識;
[0013]判斷所述統計表中是否存在包括所述流標識的表項;當所述統計表中存在包括所述流標識的表項時,將所述表項中的統計結果加I ;當所述統計表中不存在包括所述流標識的表項時,在所述統計表中添加包括所述流標識的表項,并將所述表項中的統計結果置為I。
[0014]結合第一方面的第一種可能的實現方式,在第一方面的第二種可能的實現方式中,所述讀取緩存的數據流中的報文,包括:
[0015]在轉發數據流的過程中,對緩存的所述數據流進行采樣;
[0016]讀取所述采樣后的數據流中的報文。
[0017]結合第一方面的第一種或第二種可能的實現方式,在第一方面的第三種可能的實現方式中,確定與所述N個表項包括的流標識相匹配的N條數據流之后,所述方法還包括:
[0018]基于所述N個表項包括的流標識生成過濾表;
[0019]所述確定所述讀取的報文所屬的數據流的流標識后,所述方法還包括:當所述流標識與所述過濾表中的流標識匹配時,確定所述讀取的報文所屬的數據流的速率是否超過所述第一閾值。
[0020]結合第一方面的上述任意一種實現方式,在第一方面的第四種可能的實現方式中,在根據所述統計表中的每個表項的統計結果,計算每個表項對應的數據流的速率之后,還包括:
[0021]將所述每個表項的統計結果清零;以及
[0022]若在設定的時間內,所述統計表中的第一表項的統計結果一直為零,則刪除所述第一表項。
[0023]第二方面,本發明提供了一種QCN消息生成裝置,該裝置包括:
[0024]統計單元,用于基于緩存的數據流生成統計表,所述統計表的每個表項包括一條數據流被網絡設備轉發的報文個數的統計結果以及該條數據流的流標識;
[0025]處理單元,用于根據所述統計表中的每個表項的統計結果,計算每個表項對應的數據流的速率;根據每個表項對應的數據流的速率,從所述統計表中篩選出速率排在前N位的N個表項;確定與所述N個表項包括的流標識相匹配的N條數據流;當所述N條數據流中的第一數據流的速率超過設定的第一閾值時,生成QCN消息,并將所述QCN消息發送至所述第一數據流的源設備。
[0026]結合第二方面,在第二方面的第一種可能的實現方式中,所述統計單元具體用于:
[0027]讀取緩存的數據流中的報文;
[0028]確定所述讀取的報文所屬的數據流的流標識;
[0029]判斷所述統計表中是否存在包括所述流標識的表項;當所述統計表中存在包括所述流標識的表項時,將所述表項中的統計結果加I ;當所述統計表中不存在包括所述流標識的表項時,在所述統計表中添加包括所述流標識的表項,并將所述表項中的統計結果置為I。
[0030]結合第二方面的第一種可能的實現方式,在第二方面的第二種可能的實現方式中,所述統計單元具體用于:
[0031]在轉發數據流的過程中,對緩存的所述數據流進行采樣;
[0032]讀取所述采樣后的數據流中的報文。
[0033]結合第二方面的第一種或第二種可能的實現方式,在第二方面的第三種可能的實現方式中,在確定與所述N個表項包括的流標識相匹配的N條數據流后,所述處理單元還用于:
[0034]基于所述N個表項包括的流標識生成過濾表;
[0035]在所述統計單元確定所述讀取的報文所屬的數據流的流標識后,所述處理單元還用于:當所述流標識與所述過濾表中的流標識匹配時,確定所述讀取的報文所屬的數據流的速率是否超過所述第一閾值。
[0036]結合第二方面的上述任意一種實現方式,在第二方面的第四種可能的實現方式中,在根據所述統計表中的每個表項的統計結果,計算每個表項對應的數據流的速率之后,所述統計單元還用于:
[0037]將所述每個表項的統計結果清零;以及
[0038]若在設定的時間內,所述統計表中的第一表項的統計結果一直為零,則刪除所述第一表項。
[0039]本發明提供的方案,通過對數據流進行區分和判斷,針對性地對大數據流進行統計和判斷,能夠提高擁塞流出現在統計表中的概率,有效地找出擁塞流,從而減緩網絡擁塞,提聞網絡的利用率。
【附圖說明】
[0040]圖1為現有技術下QCN技術解決網絡擁塞的示意圖;
[0041]圖2為本發明實施例提供的一種QCN消息生成方法的流程圖;
[0042]圖3為本發明實施例提供的一種QCN消息生成裝置的結構圖;
[0043]圖4為本發明實施例提供的另一種QCN消息生成裝置的結構圖。
【具體實施方式】
[0044]本發明實施例提