麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

流處理方法和裝置與流程

文檔序號:12623610閱讀:545來源:國知局
流處理方法和裝置與流程
本發明涉及通信領域,具體而言,涉及一種流處理方法、裝置以及擴展的計量帶類型。
背景技術
:OpenFlow是一種交換技術。OpenFlowv1.3版本增加了計量表(MeterTable)。其中,一個計量表包含若干計量表項,一個表項定義了一個計量器。每個計量器可以使OpenFlow實現一些簡單的服務質量(QualityofService,簡稱為QoS)業務,并且可以結合每個端口隊列來實現更復雜的QoS。流表可以通過指令Metermeter_id將數據流轉入到標號為meter_id的計量器進行處理。每個計量表項可能有一個或多個計量帶(MeterBand),每個計量帶配置相應的速率和指定數據被處理的方式。每個計量器測量出指定給它的數據流的速率,然后根據測量速率,在配置速率低于該測量速率的計量帶中選取一個配置速率最高的計量帶,對數據流進行處理。如果當前的測量速率的比任何配置的計量帶速率都低,那么計量器就無任何操作。目前,計量帶只用兩種可選的(optional)計量帶類型:丟棄(drop)和差分服務代碼點重標記(DifferentiatedServicesCodePointremark,簡稱為DSCPremark)。其中,drop類型將丟棄數據包,可以用來定義帶寬速率限制;DSCPremark類型可以減少數據包的因特網協議(IP)頭中的DSCP字段丟棄的優先級,可用于定義一個簡單的差分策略。同時,OpenFlow交換機端口可以設置隊列。一個轉發端口可以設置多個隊列,每個隊列可以配置最大速率(max_rate)、最小速率(min_rate)等,可以通過OF-Config來進行配置。其中,OF-Config是OpenFlow的一個輔助協議,用來配置和管理網絡設備資源。在OpenFlowv1.3中,流表指令可以向動作集中添加設置隊列(Set-queue)動作,即向指定隊列(queue_id)轉發數據,在OpenFlowv1.0中,則通過入隊列(enqueue)動作,向指定端口(port)的指定隊列(queue_id)轉發數據。研究過程中發現,隨著網絡技術和多媒體技術的高速發展,音/視頻會議、視頻點播、多人游戲、協同工作和遠程教學等基于組播的應用不斷出現,對組播的服務質量需求也越來越強烈。然而,一個組播應用中可能同時存在多種形式的內容流,如視頻、音頻、文本等,不同的內容流的數據量大小、對數據完整性的要求等不同。針對相關技術無法保障組播業務的服務質量的問題,目前尚未提出有效的解決方案。技術實現要素:本發明提供了一種流處理方法、裝置以及擴展的計量帶類型,以至少解決相關技術無法保障組播業務的服務質量的問題。根據本發明的一個方面,提供了一種流處理方法,包括:接收對OpenFlow協議計量器中計量帶的類型的配置,其中,所述類型包括:入隊列申請,所述入隊列申請用于指示對應速率的流應加入的端口和所述端口的隊列;根據所述計量帶的類型,對通過所述計量帶的流進行處理。優選地,所述入隊列申請至少包括:流的配置速率、與流的配置速率對應的端口、與流的配置速率對應的端口的隊列。優選地,所述類型還包括以下至少之一:丟棄、差分服務代碼點DSCP重標記。優選地,在根據所述多個計量帶的類型,對通過所述計量帶的流進行處理之前,所述方法還包括:接收對流表的配置,其中,所述流表的配置用于指示具有對應DSCP值的流應加入的計量器;根據所述流表的配置,將具有預設DSCP值的所述流加入所述計量器中,其中,所述預設DSCP值的所述流在所述流表的配置中被配置為應加入所述計量器。優選地,所述流的所述預設DSCP值用于指示所述流的內容,其中,所述內容至少包括:視頻、音頻、文本。優選地,在所述預設DSCP值指示所述流的內容為視頻的情況下,根據所述計量帶的類型,對通過所述計量帶的流進行處理包括:將所述流中具有第一速率的流加入第一計量帶,并根據所述第一計量帶的類型,對通過所述第一計量帶的流進行處理;將所述流中具有第二速率的流加入第二計量帶,并根據所述第二計量帶的類型,對通過所述第二計量帶的流進行處理。優選地,根據所述第一計量帶的類型,對通過所述第一計量帶的流進行處理包括:在所述第一計量帶的類型為入隊列申請的情況下,將具有所述第一速率的流加入第一端口的第一隊列。優選地,根據所述第二計量帶的類型,對通過所述第二計量帶的流進行處理包括:在所述第二計量帶的類型為入隊列申請的情況下,將具有所述第二速率的流加入第二端口的第二隊列;在所述第二計量帶的類型為丟棄的情況下,將具有所述第二速率的流丟棄;其中,所述第一速率小于所述第二速率。優選地,在所述預設DSCP值指示所述流的內容為音頻的情況下,根據所述計量帶的類型,對通過所述計量帶的流進行處理包括:將所述流中具有第三速率的流加入所述 第三計量帶;在所述第三計量帶的類型為入隊列申請的情況下,將具有所述第三速率的流加入第三端口的第三隊列。優選地,在所述預設DSCP值指示所述流的內容為文本的情況下,根據所述計量帶的類型,對通過所述計量帶的流進行處理包括:將所述流中具有第四速率的流加入所述第四計量帶;在所述第四計量帶的類型為入隊列申請的情況下,將具有所述第四速率的流加入第四端口的第四隊列。根據本發明的另一個方面,還提供了一種流處理裝置,包括:第一配置模塊,用于接收對OpenFlow協議計量器中計量帶的類型的配置,其中,所述類型包括:入隊列申請,所述入隊列申請用于指示對應速率的流應加入的端口和所述端口的隊列;第一處理模塊,用于根據所述計量帶的類型,對通過所述計量帶的流進行處理。優選地,所述入隊列申請至少包括:流的配置速率、與流的配置速率對應的端口、與流的配置速率對應的端口的隊列。優選地,所述類型還包括以下至少之一:丟棄、差分服務代碼點DSCP重標記。優選地,所述裝置還包括:第二配置模塊,用于接收對流表的配置,其中,所述流表的配置用于指示具有對應DSCP值的流應加入的計量器;第二處理模塊,用于根據所述流表的配置,將具有預設DSCP值的所述流加入所述計量器中,其中,所述預設DSCP值的所述流在所述流表的配置中被配置為應加入所述計量器。優選地,所述流的所述預設DSCP值用于指示所述流的內容,其中,所述內容至少包括:視頻、音頻、文本。優選地,所述第一處理模塊包括:第一處理單元,用于在所述預設DSCP值指示所述流的內容為視頻的情況下,將所述流中具有第一速率的流加入第一計量帶,并根據所述第一計量帶的類型,對通過所述第一計量帶的流進行處理;第二處理單元,用于在所述預設DSCP值指示所述流的內容為視頻的情況下,將所述流中具有第二速率的流加入第二計量帶,并根據所述第二計量帶的類型,對通過所述第二計量帶的流進行處理。優選地,所述第一處理單元,用于在所述第一計量帶的類型為入隊列申請的情況下,將具有所述第一速率的流加入第一端口的第一隊列。優選地,所述第二處理單元,用于在所述第二計量帶的類型為入隊列申請的情況下,將具有所述第二速率的流加入第二端口的第二隊列;以及在所述第二計量帶的類型為丟棄的情況下,將具有所述第二速率的流丟棄,其中,所述第一速率小于所述第二速率。優選地,所述第一處理模塊還包括:第三處理單元,用于在所述預設DSCP值指示所述流的內容為音頻的情況下,將所述流中具有第三速率的流加入所述第三計量帶;在所述第三計量帶的類型為入隊列申請的情況下,將具有所述第三速率的流加入第三端口的第三隊列。優選地,所述第一處理模塊還包括:第四處理單元,用于在所述預設DSCP值指示所述流的內容為文本的情況下,將所述流中具有第四速率的流加入所述第四計量帶;在所述第四計量帶的類型為入隊列申請的情況下,將具有所述第四速率的流加入第四端口的第四隊列。根據本發明的另一個方面,還提供了一種擴展的計量帶類型,所述計量帶類型包括下列參數:配置速率(rate)、入隊列動作個數(enqueue_number)、端口號(port)及隊列號(queue_id);其中,所述計量帶類型用于指示計量帶根據流的速率將數據轉入一個或多個端口的相應隊列。通過本發明,采用接收對OpenFlow協議計量器中計量帶的類型的配置,其中,類型包括:入隊列申請,入隊列申請用于指示對應速率的流應加入的端口和端口的隊列;根據計量帶的類型,對通過計量帶的流進行處理的方式,解決了相關技術無法保障組播業務的服務質量的問題,保障了組播業務的服務質量。附圖說明此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用于解釋本發明,并不構成對本發明的不當限定。在附圖中:圖1是根據本發明實施例的流處理方法的流程圖;圖2是根據本發明實施例的流處理裝置的結構框圖;圖3是根據本發明實施例的流處理裝置的優選結構示意圖;圖4是根據本發明優選實施例的OpenFlow實施組播QoS系統框架圖;圖5是根據本發明優選實施例的簡易的OpenFlow組播網絡拓撲示意圖;圖6是根據本發明優選實施例的QoS保障實施的流程圖。具體實施方式下文中將參考附圖并結合實施例來詳細說明本發明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。需要說明的是,本發明的說明書和權利要求書及上述附圖中的術語“第一”、“第二”等是用于區別類似的對象,而不必用于描述特定的順序或先后次序。本發明實施例提供了一種擴展的計量帶類型,計量帶類型包括下列參數:配置速率rate、入隊列動作個數enqueue_number、端口號port及隊列號queue_id;該擴展的計量帶類型用于指示計量帶根據流的速率將數據轉入一個或多個端口的相應隊列。本實施例還提供了一種流處理方法,圖1是根據本發明實施例的流處理方法的流程圖,如圖1所示,該流程包括如下步驟:步驟S102,接收對OpenFlow協議計量器中計量帶的類型的配置,其中,類型包括:入隊列申請,入隊列申請用于指示對應速率的流應加入的端口和端口的隊列;步驟S104,根據計量帶的類型,對通過計量帶的流進行處理。通過上述步驟,在計量帶中采用入隊列申請類型,使得計量帶可以將通過該計量帶的流根據速率轉發流至對應的端口及端口的隊列,從而使得不同速率的流可以分別實現各自需求的QoS要求。這樣,對于組播業務中進入相同計量器的不同速率的流可以實現差異化的QoS要求;相對于相關技術中無法根據流的速率對通過計量帶的流進一步處理(只能進行drop或者DSCPremark)的方式,通過上述步驟,解決了相關技術無法保障組播業務的服務質量的問題,保障了組播業務的服務質量。優選地,入隊列申請中配置的項目至少包括:流的配置速率、與流的配置速率對應的端口、與流的配置速率對應的端口的隊列。例如,對于一個計量器而言,可以有一個或者多個計量帶,在計量帶被配置為入隊申請類型時,需要配置流的配置速率、與流的配置速率對應的端口、與流的配置速率對應的端口的隊列。從而使得對應速率的流可以分別進入相應的計量帶,進而加入對應的端口的隊列中處理。這些端口的隊列可以配置有最低速率,還可以配置有最高速率。例如0~100kbps的流,進入最低速率為100kbps的隊列即可保障其QoS。此外,雖然0~100kbps的流,進入最低速率為500kbps的隊列也可以保障其QoS,但可能造成資源的浪費,并且占用較高速的隊列。因此,流在根據速率送入計量帶處理時,進入配置速率中能夠滿足該流的速率要求的最小配置速率對應的計量帶處理。優選地,計量帶的類型還可以包括以下至少之一:dorp、DSCPremark。即在應用上述方法時,計量器中計量帶還可以結合dorp、DSCPremark類型實現流的QoS保障。優選地,在組播業務中,包含視頻、音頻、文本內容;而這些內容的流具有各自的特征。例如,視頻流速率較大,速率的變化范圍也大;為了對不同內容的流進行差異化的QoS保障,在本發明實施例中通過在組播源封裝流時,通過IP投中的DSCP值對流的內容進行標記。這樣,流可以根據DSCP值的不同(也即流的內容的不同)進入不同的計量器,進而被不同的計量器中的計量帶處理。例如,接收對流表的配置,其中,流表的配置用于指示具有對應DSCP值的流應加入的計量器;根據流表的配置,將具有預設DSCP值的流加入計量器中,其中,預設DSCP值的流在流表的配置中被配置為應加入計量器。優選地,上述流的預設DSCP值用于指示流的內容,其中,內容至少包括:視頻、音頻、文本。在本發明實施例中并不限于上述三種內容;在流的內容導致流的速率、流的速率的變化呈現一定特征的情況下,可以采用對應的DSCP值進行標記,進而進入不 同的流表進行差異化的處理。優選地,在預設DSCP值指示流的內容為視頻的情況下,根據計量帶的類型,對通過計量帶的流進行處理包括:將流中具有第一速率的流加入第一計量帶,并根據第一計量帶的類型,對通過第一計量帶的流進行處理;將流中具有第二速率的流加入第二計量帶,并根據第二計量帶的類型,對通過第二計量帶的流進行處理。優選地,根據第一計量帶的類型,對通過第一計量帶的流進行處理包括:在第一計量帶的類型為入隊列申請的情況下,將具有第一速率的流加入第一端口的第一隊列。優選地,根據第二計量帶的類型,對通過第二計量帶的流進行處理包括:在第二計量帶的類型為入隊列申請的情況下,將具有第二速率的流加入第二端口的第二隊列;在第二計量帶的類型為丟棄的情況下,將具有第二速率的流丟棄;其中,第一速率小于第二速率。通過結合丟棄類型的計量帶,可以實現視頻流的限速。優選地,在預設DSCP值指示流的內容為音頻的情況下,根據計量帶的類型,對通過計量帶的流進行處理包括:將流中具有第三速率的流加入第三計量帶;在第三計量帶的類型為入隊列申請的情況下,將具有第三速率的流加入第三端口的第三隊列。優選地,在預設DSCP值指示流的內容為文本的情況下,根據計量帶的類型,對通過計量帶的流進行處理包括:將流中具有第四速率的流加入第四計量帶;在第四計量帶的類型為入隊列申請的情況下,將具有第四速率的流加入第四端口的第四隊列。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到根據上述實施例的方法可借助軟件加必需的通用硬件平臺的方式來實現,當然也可以通過硬件,但很多情況下前者是更佳的實施方式。基于這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分可以以軟件產品的形式體現出來,該計算機軟件產品存儲在一個存儲介質(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺終端設備(可以是手機,計算機,服務器,或者網絡設備等)執行本發明各個實施例所述的方法。在本實施例中還提供了一種流處理裝置,該裝置用于實現上述實施例及優選實施方式,已經進行過說明的不再贅述。如以下所使用的,術語“模塊”可以實現預定功能的軟件和/或硬件的組合。盡管以下實施例所描述的裝置較佳地以軟件來實現,但是硬件,或者軟件和硬件的組合的實現也是可能并被構想的。圖2是根據本發明實施例的流處理裝置的結構框圖,如圖2所示,該裝置包括:第一配置模塊22和第一處理模塊24,其中,第一配置模塊22,用于接收對OpenFlow協議計量器中計量帶的類型的配置,類型包括:入隊列申請,入隊列申請用于指示對應速率的流應加入的端口和端口的隊列;第一處理模塊24,耦合至第一配置模塊22,用于根據計量帶的類型,對通過計量帶的流進行處理。通過上述模塊的綜合作用,解決了相關技術無法保障組播業務的服務質量的問題, 保障了組播業務的服務質量。優選地,入隊列申請至少包括:流的配置速率、與流的配置速率對應的端口、與流的配置速率對應的端口的隊列。優選地,類型還包括以下至少之一:丟棄、差分服務代碼點重標記。圖3是根據本發明實施例的流處理裝置的優選結構示意圖,如圖3所示,優選地,裝置還包括:第二配置模塊32,用于接收對流表的配置,其中,流表的配置用于指示具有對應DSCP值的流應加入的計量器;第二處理模塊34,耦合至第二配置模塊32,用于根據流表的配置,將具有預設DSCP值的流加入計量器中,其中,預設DSCP值的流在流表的配置中被配置為應加入計量器。優選地,流的預設DSCP值用于指示流的內容,其中,內容至少包括:視頻、音頻、文本。優選地,第一處理模塊24包括:第一處理單元241,用于在預設DSCP值指示流的內容為視頻的情況下,將流中具有第一速率的流加入第一計量帶,并根據第一計量帶的類型,對通過第一計量帶的流進行處理;第二處理單元242,用于在預設DSCP值指示流的內容為視頻的情況下,將流中具有第二速率的流加入第二計量帶,并根據第二計量帶的類型,對通過第二計量帶的流進行處理。優選地,第一處理單元241,用于在第一計量帶的類型為入隊列申請的情況下,將具有第一速率的流加入第一端口的第一隊列。優選地,第二處理單元242,用于在第二計量帶的類型為入隊列申請的情況下,將具有第二速率的流加入第二端口的第二隊列;以及在第二計量帶的類型為丟棄的情況下,將具有第二速率的流丟棄,其中,第一速率小于第二速率。優選地,第一處理模塊24還包括:第三處理單元243,用于在預設DSCP值指示流的內容為音頻的情況下,將流中具有第三速率的流加入第三計量帶;在第三計量帶的類型為入隊列申請的情況下,將具有第三速率的流加入第三端口的第三隊列。優選地,第一處理模塊24還包括:第四處理單元244,用于在預設DSCP值指示流的內容為文本的情況下,將流中具有第四速率的流加入第四計量帶;在第四計量帶的類型為入隊列申請的情況下,將具有第四速率的流加入第四端口的第四隊列。需要說明的是,上述各個模塊是可以通過軟件或硬件來實現的,對于后者,可以通過以下方式實現,但不限于此:上述模塊均位于同一處理器中;或者,上述模塊分別位于多個處理器中。本發明的實施例還提供了一種軟件,該軟件用于執行上述實施例及優選實施方式中描述的技術方案。本發明的實施例還提供了一種存儲介質。在本實施例中,上述存儲介質可以被設置為存儲用于執行以下步驟的程序代碼:步驟S1,接收對OpenFlow協議計量器中計量帶的類型的配置,其中,類型包括:入隊列申請,入隊列申請用于指示對應速率的流應加入的端口和端口的隊列;步驟S2,根據計量帶的類型,對通過計量帶的流進行處理。可選地,在本實施例中,上述存儲介質可以包括但不限于:U盤、只讀存儲器(Read-OnlyMemory,簡稱為ROM)、隨機存取存儲器(RandomAccessMemory,簡稱為RAM)、移動硬盤、磁碟或者光盤等各種可以存儲程序代碼的介質??蛇x地,本實施例中的具體示例可以參考上述實施例及可選實施方式中所描述的示例,本實施例在此不再贅述。為了使本發明實施例的描述更加清楚,下面結合優選實施例進行描述和說明。本發明優選實施例提供了一種基于OpenFlow計量器的組播流差分服務機制,涉及利用OpenFlow計量器和端口隊列實現組播流差分服務機制。在本優選實施例中,采用差分服務模型(Diff-Serv)來對組播的不同內容進行QoS保障。差分服務一般在IP包頭的ToS字段中設置不同的DSCP值來區分不同的內容流,然后對不同流執行不同的服務策略。OpenFlow網絡的出現增加了對網絡管理的靈活性和可擴展性,因此運用OpenFlow對內容流進行識別具有很好的靈活性,對交換機進行資源策略配置具有很好的管理性,有助于實現更復雜細致的差分服務。為了提供一種組播QoS機制來保障組播的帶寬,同時提高資源利用率,本發明優選實施例對現有的OpenFlow協議的計量表進行擴展,增加一種計量帶類型(BandType):入隊列申請(enqueueapply),該類型計量帶執行一個或多個enqueue動作。利用該類型計量帶建立的計量器可以讓不同速率的流進入組播端口的不同隊列。優選地,為了在OpenFlow網絡中實現組播QoS保障,本發明優選實施例在OpenFlow控制器上設計了組播管理模塊和QoS保障模塊。優選地,組播管理模塊的任務包括:組播組成員管理、組播樹建立以及為交換機下發相應組播識別流表,根據組播樹結構向QoS模塊提供每個交換機的組播轉出端口信息。優選地,QoS保障模塊負責:建立內容識別流表和相應的計量表,通過OF-Config配置相應的端口隊列。在內容識別流表中通過不同的DSCP值來區分不同的內容流。在計量表中建立多個計量器來實現不同的QoS保障。根據不同內容流的特點對不同內容實施不同QoS策略。其中,為了保障視頻流、音頻流、文本流的流暢傳輸,本發明優選實施例分別了建 立相應的計量器和端口隊列來保障帶寬。優選地,視頻流傳輸速率大,同時速率變化大,因此可以將視頻流的速率分成多個等級,然后在每個組播轉發端口都給每個等級配置相應的具有最小速率的端口隊列,最后建立含多個enqueueapply類型的計量帶的計量器,將每個等級速率的視頻流分別發送到組播端口各自對應的隊列,來保障其流暢傳輸。這樣可以避免低速的流占據高帶寬資源,可以節約網絡的帶寬。同時,為了防止視頻流占用太多的網絡帶寬,還可以在計量器中增加一個drop類型的計量帶來對視頻流進行限速。優選地,音頻流、文本流的傳輸速率相對較小,變化也較小,因此可以不進行速率的分級,它們都只有一個等級速率,只需各自在每個組播端口建立一個具有最小速率的隊列。然后給這兩種內容流分別建立只含一個enqueueapply類型的計量帶的計量器,將這兩種流分別發送到組播端口各自對應隊列來保障流暢傳輸。可見,本發明優選實施例擴展了OpenFlow協議的計量表,增加了新的計量帶類型enqueueapply,利用該類型計量帶建立的計量器可以使數據流根據不同的速率進入不同的隊列。相應地,本發明優選實施例在OpenFlow控制器上設計了組播管理和QoS保障兩個模塊,來分別負責數據組播和各內容的QoS保障。最后,利用擴展的計量帶和端口隊列對各內容流實施了更細致的差分服務,在保障流暢傳輸的同時可以減小網絡帶寬開銷。下面結合附圖對本發明優選實施例進行描述和說明。本發明在為了實現組播的流差分服務,首先拓展了現有的OpenFlow計量帶,增加了新的計量帶類型enqueueapply。然后在OpenFlow控制器上設計了組播管理和組播QoS兩個模塊,來分別負責數據組播和各內容的QoS保障。最后利用enqueueapply計量帶分別為各內容設計相應的計量器,來實現細致的組播流差分服務。下面僅以在一個簡單的網絡拓撲環境下實現組播的視頻、音頻、文本的流差分服務為例對本方法進行說明,實際中,網絡拓撲可能更復雜和數據內容劃分可能會根據具體情況變化,然而,這些不同的應用場景均可使用于本發明優選實施例。優選實施例一:本發明優選實施例中新增的計量帶enqueueapply類型的結構體如下所示:structofp_meter_band_enqueue_apply{uint16_ttype;/*計量帶類型*/uint16_tlen;/*該計量帶的字節長度.*/uint32_trate;/*該計量帶的配置速率*/uint8_tenqueue_number/*隊列的總個數*/structenqueue_parameter*list/*隊列參數*/uint8_tpad[32];};其中structenqueue_parameter{uint32_tport;/*端口號*/uint32_tqueue_id;/*隊列id*/}本發明優選實施例中定義的上述計量帶enqueueapply類型是一種“可選的(optional)”類型。該類型計量帶執行一個或多個enqueue動作,該計量帶的參數包括相應的配置速率(rate)、enqueue動作個數(enqueue_number)、端口號(port)及隊列號(queue_id)。該計量帶可以根據流速率將數據轉入一個或多個端口的相應隊列。該計量帶的執行偽代碼如下所示:/*****************函數名:enqueue_apply輸入參數:ofp_meter_band_enqueue_apply結構體的實例enqueue_apply_band,待處理的數據流pkt。輸出參數:void實現功能:執行計量帶enqueue_apply_band的操作,將數據流pkt的執行enqueue操作。即先從enqueue_apply_band中提取出添加enqueue動作的個數N,然后依次將N個隊列參數對,建立成enqueue動作的標準ofp_enqueue_action結構體實例,然后運用apply-actions直接執行這N個enqueue動作,將數據發送到相應端口的相應隊列。需要說明的是,利用該計量帶時,在多級流表設計時不能有output動作,以避免和enqueue動作造成重復發送,同時所有動作采用使用Apply-actions指令,而非Write-actions指令,這樣可以保障相關動作的執行在數據流通過該計量帶進入隊列之前完成。利用該擴展的計量帶可以設計一個讓不同速率的流進入不同端口隊列的計量器。給具有不同配置速率rate的enqueueapply類型計量帶設置不同queue_id參數,則可以實現根據不同速率將流調整進入組播端口中的不同隊列,以利于后面實現組播QoS保障。下表1為利用enqueueapply計量帶建立的計量器1:表1數據流經過該計量器的處理:當通過該計量帶的流速率在0~bkbps時,將進入p1端口的隊列q11和p2端口的隊列q21;當流速率超過bkbps時,將進入p1端口的隊列q12和p2 端口的隊列q22。優選實施例二:圖4是根據本發明優選實施例的OpenFlow實施組播QoS系統框架圖,如圖4所示,為了實現組播的QoS保障,本發明優選實施例在控制器上設計兩個模塊:組播管理模塊和QoS保障模塊,其中:組播管理模塊,用于組播組成員管理、組播樹建立以及為交換機建下發相應組播識別流表(即流表0),根據組播樹結構向QoS模塊提供每個交換機的組播轉出端口。QoS保障模塊,負責建立內容識別流表(流表1)和相應的計量表,通過OF-Config配置相應的端口隊列。QoS保障模塊將根據選擇的QoS策略,在計量表中建立相應的計量器。其中,流表0由組播管理模塊建立并下發到交換機,用于實現交換機的組播識別;流表1由QoS保障模塊建立并下發到交換機,用于各內容流的區分識別,并轉到計量表中相應的計量器進行處理;計量表由QoS保障模塊建立并下發到交換機,包含多個計量器來實現不同的QoS保障,通過每個計量器包含一個或多個enqueue_apply計量帶,根據速率的流進入不同的隊列;隊列由OF-Config來配置,可以設置隊列最大速率、隊列最小速率等來輔助實現QoS保障。結合圖4所示,數據進入OpenFlow交換機的執行過程,包括如下步驟:步驟S401,當數據流進入OpenFlow交換機后,將進入流水線,在流表0中進行匹配,將執行匹配成功的流表項的相應指令,即轉到流表1。步驟S402,數據流在流表1中繼續匹配,以識別流的內容,匹配成功后轉到相應計量器。步驟S403,數據流進入相應的計量器后,計量器選擇計量帶的配置速率低于流當前速率中最大的那個計量帶進行處理,處理方式包括:drop、DSCPremark和enqueueapply。其中,enqueue_apply計量帶會將數據流會轉發到指定端口的指定隊列。步驟S404,數據經過隊列轉發出端口,隊列配置相應的最大或最小速率來限制或保障速率。優選實施例三:圖5是根據本發明優選實施例的簡易的OpenFlow組播網絡拓撲示意圖,如圖5所示,假設組播源的多媒體接入控制(MAC)地址為00:00:00:00:00:00,組播使用的用戶數據報(UDP)端口為100。本發明優選實施例在OpenFlow的控制器建立了一個組播管理模塊,負責管理組播成員的加入、組播樹建立、為相應的交換機建立下發組播識別流表、向QoS模塊提供每個交換機的組播轉出端口。結合圖5所示,該流程的步驟包括:步驟S501,當需要一個組播應用建立時,組播各成員向OpenFlow控制器的組播管理模塊發送申請,OpenFlow控制器中的組播管理模塊對組成員進行管理。步驟S502,組播組管理模塊將根據網絡拓撲、鏈路狀態以及選擇的生成樹算法,為該組播建立一個組播樹,圖5粗黑線表示組播樹。步驟S503,組播樹建立后,組播管理模塊將根據組播源MAC地址、UDP端口以及組播樹進出交換機的端口為各交換機建立并下發相應的組播識別流表,即流表0。流表0的匹配域是Ether_Src=源MAC地址、Src_Port=UDP端口、Ingress_port=組播樹進入交換機的端口,相應指令是進入流區分識別流表(即流表1)。例如,交換機1建立的組播識別流表如表2所示:表2步驟S504,組播管理模塊還需要根據組播樹結構向QoS模塊提供每個交換機的組播轉出端口。例如,交換機1的組播出端口是端口3和端口4,該模塊需要將該信息提供給QoS模塊,QoS將利用該信息輔助建立相應的enqueue_apply計量帶。優選實施例四:圖6是根據本發明優選實施例的QoS保障實施的流程圖,QoS保障模塊將根據所選擇的QoS保障策略,建立相應的流表1和計量表,并結合OF-Config來配置相應的端口隊列。在此,使用差分服務模型(DiffServ),將一個基于組播的應用的視頻、音頻、文本等內容的傳輸進行差分服務,因此需要對不同的內容流進行識別,如圖6所示,該流程包括如下步驟:步驟S601,為了實現差分服務,利用IP頭部中ToS字段的DSCP值,通過設置不同DSCP值來標明不同內容。組播源封裝數據包時,對不同的內容設置不同的DSCP值。例如,可以將文本、音頻、視頻、其他格式內容的DSCP值分別設置為4、3、2、1。步驟S602,為了識別不同的內容流,QoS保障模塊需要建立相應的流表1來識別不同的內容流。由于不同的內容設置不同的DSCP值,因此可以通過匹配IP_DSCP值來識別不同的內容流,匹配成功后轉入相應的計量器實現相應的QoS保障。內容識別流表如表3所示:表3MatchFieldsPriorityCountersInstructionTimeoutsCookieIP_DSCP=2Metermeter_id=2IP_DSCP=3Metermeter_id=3IP_DSCP=4Metermeter_id=4當數據流的DSCP值為2時,數據流將轉向計量器2進行處理;DSCP值為3時,則轉向計量器3處理;DSCP值為4時,則轉向計量器4處理。不同的計量器將根據不同的服務策略來設計,從而實現對不同內容流的差分服務。上面闡述了內容識別流表的設計,將視頻、音頻、文本不同的內容流進行了分離識別。QoS模塊收到組播管理模塊提供的各交換機的組播轉出端口信息后,還需要在各交換機為各種內容流設計相應的計量器和配置相應的端口隊列。為了實現各內容傳輸的流暢,可以對各內容流流進行帶寬保障。可以根據各內容流的特點,本發明優選實施例中,對各內容速率進行等級劃分,設置相應隊列,建立相應計量器。下面以視頻流為例闡述步驟S603至步驟S605:步驟S603,根據視頻速率的特點和劃分的顆粒度,將視頻速率劃分幾個等級。例如,對于一個傳輸速率主要在0~1000kbps之間的變化的視頻流,可以將速率劃分成3個等級:0~100kbps、100~500kbps、500~1000kbps。步驟S604,通過OF-Config協議在每個組播轉發端口為各等級的速率建立相應的隊列,為各隊列設置相應的最小速率。例如,給每個組播轉出端口設置3個隊列,如在圖5所示的交換機1的端口3的隊列1和端口4的隊列2均有min_rate=100kbps、端口3隊列3和端口4的隊列4均有min_rate=500kbps、端口3隊列5和端口4的隊列6均有min_rate=1000kbps,分別實現低、中、高三種轉發速率。步驟S605,利用enqueueapply計量帶建立相應的計量器,例如表4中的Meterid為2的計量器(即計量器2):表4利用計量器2,可以將不同等級速率的視頻流調整進入每個組播端口的不同的隊列。當視頻流經過計量器2處理,若視頻流的速率在0~100kbps時,則進入端口3的隊列1和端口4的隊列2,其最小轉發速率是100kbps,完全能保障其流暢的傳輸;同樣速率在100~500kbps時,進入端口3的隊列3和端口4的隊列4;速率在500~1000kbps時,進入端口3的隊列5和端口4的隊列6。該方法的優勢是,使視頻流進入可以充分滿足其速率要求的隊列,同時又不占用過多的資源。如當視頻流速率較大時,則將其轉發進入高速隊列,當速率降低至低速隊列可滿足其要求時,將其轉發進入低速隊列,以免低速流占用高速隊列造成資源浪費。為了防止視頻流瞬時速率過大占用太多的網絡帶寬,還可以在計量器通過增加一個drop類型的計量帶,設置該計量帶的配置速率為高速隊列的速率,當速率超過高速的速率時,計量表將會丟棄數據,以達到限制速率的目的。如表4中的計量器2的限速為1000kbps,當大于1000kbps則丟棄數據。音頻流、文本流的傳輸速率相對較小,變化也較小,因此可以不進行速率的分級,都只有一個等級速率,只需各自在每個組播端口建立一個隊列,隊列設置相應的最小速率。然后給這兩種內容流分別建立只含一個enqueueapply類型的計量帶的計量器,將這兩種流分別發送到每個組播端口的各自對應隊列來保障流暢傳輸。例如,如表4中Meterid為3的計量器(即計量器3)所示,對于一個傳輸速率主要在0~100kbps之間的變化的音頻,在每個組播端口設置一個隊列,端口3的隊列7和端口4的隊列8均有min_rate=100kbps。然后在計量表中建立計量器3,只含一個配置速率為0kbps的enqueueapply類型計量帶,則音頻流經過該計量器都轉發到端口3的隊列7和端口4的隊列8。又例如,如表4中Meterid為4的計量器(即計量器4)所示,對于一個傳輸速率主要在0~200kbps之間的變化的文本,在每個組播端口設置一個隊列,端口3的隊列9和端口4的隊列10均有min_rate=200kbps。然后在計量表中建立計量器4,只含一 個配置速率為0kbps的enqueueapply類型計量帶,則文本流經過該計量器都轉發到端口3的隊列9和端口4的隊列10。顯然,本領域的技術人員應該明白,上述的本發明的各模塊或各步驟可以用通用的計算裝置來實現,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網絡上,可選地,它們可以用計算裝置可執行的程序代碼來實現,從而,可以將它們存儲在存儲裝置中由計算裝置來執行,并且在某些情況下,可以以不同于此處的順序執行所示出或描述的步驟,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現。這樣,本發明不限制于任何特定的硬件和軟件結合。以上所述僅為本發明的優選實施例而已,并不用于限制本發明,對于本領域的技術人員來說,本發明可以有各種更改和變化。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。當前第1頁1 2 3 
當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 界首市| 辰溪县| 淮南市| 上栗县| 丹东市| 祁东县| 长沙县| 鹤岗市| 澄城县| 怀化市| 宝坻区| 定州市| 资阳市| 正蓝旗| 徐闻县| 晋城| 娄底市| 措美县| 常山县| 贺州市| 盐池县| 池州市| 南充市| 门源| 诏安县| 县级市| 桦南县| 武陟县| 师宗县| 哈巴河县| 建平县| 桓台县| 茂名市| 新化县| 汉寿县| 凭祥市| 临武县| 巩义市| 平邑县| 上林县| 岑溪市|