本申請涉及網絡技術領域,特別涉及一種網絡設備、控制器、隊列管理方法及流量管理芯片。
背景技術:
服務質量(英文:qualityofservice;縮寫:qos)技術中,根據不同業務對業務質量的要求進行數據調度,在數據調度時,通常采用多個隊列發送數據,不同隊列具有不同優先級。
目前,出現了一種新的qos技術,即分層服務質量(英文:hierarchicalqualityofservice;縮寫:hqos)技術,該技術實現了針對不同用戶、不同業務,甚至不同流量等傳輸對象進行分層調度。通常,網絡設備通過流量管理(英文:trafficmanagement;縮寫:tm)芯片實現流量管理功能。采用hqos技術的tm芯片包括多級調度器,每一個后一級調度器用于調度多個前一級調度器,每一個第1級調度器用于調度多個隊列。例如,以tm芯片包括四級調度器為例,第4級調度器用于按端口級別調度多個第3級調度器,第3級調度器用于按用戶組級別調度多個第2級調度器,第2級調度器用于按用戶級別調度多個第1級調度器,第1級調度器用于按業務級別調度多個隊列。在現有技術中,隊列分配與第1級調度器強耦合,即為每一個第1級調度器分配固定數量的隊列,每一個隊列用于發送一種類型的數據。例如,為每一個第1級調度器分配8個隊列,每一個隊列用于發送一種業務的數據。
然而,當數據類型的總數少于固定數量時,多余的隊列處于閑置狀態,造成隊列資源的浪費;當數據類型的總數大于固定數量時,多種不同類型的數據共用一個隊列,無法實現針對不同類型的數據進行分類調度。
技術實現要素:
本申請實施例提供了一種網絡設備、控制器、隊列管理方法及流量管理芯 片,用于克服采用hqos技術進行數據調度時,為每一個第1級調度器分配固定數量的隊列而存在的問題。
本申請第一方面提供了一種網絡設備,該網絡設備包括第一通信接口和tm芯片,tm芯片包括:n級調度器,每一個第i+1級調度器用于調度多個第i級調度器,每一個第1級調度器用于調度多個隊列,n為大于1的整數,i為大于等于1且小于n的整數。第一通信接口,用于接收控制器發送的隊列管理指令,隊列管理指令中包括第一調度器的標識和第一隊列的標識,第一調度器是多個第1級調度器中的一個。tm芯片,用于根據隊列管理指令,控制第一調度器對第一隊列的調度。其中,第一調度器所調度的隊列屬于tm芯片的隊列資源池,隊列資源池中包括至少一個待分配的隊列。
在第一方面的第一種可能的實施方式中,隊列管理指令為隊列分配指令,tm芯片具體用于將隊列資源池中的第一隊列分配給第一調度器。
在第一方面的第二種可能的實施方式中,隊列管理指令為隊列回收指令,tm芯片具體用于控制第一調度器停止調度第一隊列,并將第一隊列回收至隊列資源池中。
在第一方面的第三種可能的實施方式中,隊列管理指令為隊列釋放指令,tm芯片具體用于控制第一調度器暫停調度第一隊列。
結合第一方面或者第一方面的任意一種可能的實施方式,在第一方面的第四種可能的實施方式中,網絡設備還包括網絡處理器。網絡處理器,用于接收廣域網中的服務器發送的報文;解析該報文,確定用于發送該報文的第二調度器,第二調度器是多個第1級調度器中的一個;查詢第二調度器的流分類表,獲取與報文所屬的數據類型對應的第二隊列的標識;將第二隊列的標識封裝至報文中;向tm芯片發送報文。其中,流分類表的每個表項包括數據類型與隊列的標識之間的對應關系。tm芯片,還用于讀取報文中攜帶的第二隊列的標識;將所述報文存儲至所述第二隊列中。
本申請第二方面提供了一種控制器,該控制器用于控制網絡設備管理隊列,網絡設備是如上述第一方面提供的網絡設備。控制器包括第二通信接口和處理器。處理器,用于根據預先設定的隊列管理規則,生成隊列管理指令;其中,隊列管理指令中包括第一調度器的標識和第一隊列的標識,第一調度器是多個第1級調度器中的一個。第二通信接口,用于向網絡設備發送隊列管理指令。 其中,第一調度器所調度的隊列屬于tm芯片的隊列資源池,隊列資源池中包括至少一個待分配的隊列。
在第二方面的第一種可能的實施方式中,隊列管理指令為隊列分配指令。處理器,具體用于獲取ue發送的業務請求;根據業務請求所請求的業務,確定用于發送該業務的報文的第一調度器;根據預先設定的隊列分配規則,確定是否需要為第一調度器分配第一隊列,第一隊列用于存儲或發送上述報文;若需要為第一調度器分配第一隊列,則生成隊列分配指令,隊列分配指令中包括第一調度器的標識和第一隊列的標識。
在第二方面的第二種可能的實施方式中,隊列管理指令為隊列回收指令。第二通信接口,還用于接收tm芯片發送的第一調度器的隊列使用情況,第一調度器的隊列使用情況包括分配給第一調度器的各個隊列的使用情況。處理器,具體用于根據第一調度器的隊列使用情況和預先設定的隊列回收規則,檢測是否存在需要回收的第一隊列;若存在第一隊列,則生成隊列回收指令,隊列回收指令中包括第一調度器的標識和第一隊列的標識。
在第二方面的第三種可能的實施方式中,隊列管理指令為隊列釋放指令。第二通信接口,還用于接收tm芯片發送的第一調度器的隊列使用情況,第一調度器的隊列使用情況包括分配給第一調度器的各個隊列的使用情況。處理器,具體用于根據第一調度器的隊列使用情況和預先設定的隊列釋放規則,檢測是否存在需要釋放的第一隊列;若存在第一隊列,則生成隊列釋放指令,隊列釋放指令中包括第一調度器的標識和第一隊列的標識。
本申請第三方面提供了一種隊列管理方法,該方法應用于tm芯片中,tm芯片是如上述第一方面提供的網絡設備中的tm芯片。該方法包括:接收控制器發送的隊列管理指令,隊列管理指令中包括第一調度器的標識和第一隊列的標識,第一調度器是多個第1級調度器中的一個;根據隊列管理指令,控制第一調度器對第一隊列的調度;其中,第一調度器所調度的隊列屬于tm芯片的隊列資源池,隊列資源池中包括至少一個待分配的隊列。
在第三方面的第一種可能的實施方式中,隊列管理指令為隊列分配指令。根據隊列管理指令,控制第一調度器對第一隊列的調度,包括:將隊列資源池中的第一隊列分配給第一調度器。
在第三方面的第二種可能的實施方式中,隊列管理指令為隊列回收指令。 根據隊列管理指令,控制第一調度器對第一隊列的調度,包括:控制第一調度器停止調度第一隊列,并將第一隊列回收至隊列資源池中。
在第三方面的第三種可能的實施方式中,隊列管理指令為隊列釋放指令。根據隊列管理指令,控制第一調度器對第一隊列的調度,包括:控制第一調度器暫停調度第一隊列。
結合第三方面或者第三方面的任意一種可能的實施方式,在第三方面的第四種可能的實施方式中,該方法還包括:從網絡處理器接收報文,該報文由廣域網中的服務器發送給網絡處理器;讀取該報文中攜帶的第二隊列的標識;其中,第二隊列的標識由網絡處理器解析上述報文,確定用于發送該報文的第二調度器后,根據報文所屬的數據類型從第二調度器的流分類表中查詢得到,并由網絡處理器封裝至報文中,第二調度器是多個第1級調度器中的一個,流分類表的每個表項中包括數據類型與隊列的標識之間的對應關系;將所述報文存儲至所述第二隊列中。
本申請第四方面提供了一種隊列管理方法,該方法應用于控制器中,控制器用于控制網絡設備管理隊列,網絡設備是如上述第一方面提供的網絡設備。該方法包括:根據預先設定的隊列管理規則,生成隊列管理指令;其中,隊列管理指令中包括第一調度器的標識和第一隊列的標識,第一調度器是多個第1級調度器中的一個;向網絡設備發送隊列管理指令;其中,第一調度器所調度的隊列屬于tm芯片的隊列資源池,隊列資源池中包括至少一個待分配的隊列。
在第四方面的第一種可能的實施方式中,隊列管理指令為隊列分配指令。根據預先設定的隊列管理規則,生成隊列管理指令,包括:獲取ue發送的業務請求;根據業務請求所請求的業務,確定用于發送該業務的報文的第一調度器;根據預先設定的隊列分配規則,確定是否需要為第一調度器分配第一隊列,第一隊列用于存儲或發送上述報文;若需要為第一調度器分配第一隊列,則生成隊列分配指令,隊列分配指令中包括第一調度器的標識和第一隊列的標識。
在第四方面的第二種可能的實施方式中,隊列管理指令為隊列回收指令。根據預先設定的隊列管理規則,生成隊列管理指令,包括:接收tm芯片發送的第一調度器的隊列使用情況,第一調度器的隊列使用情況包括分配給第一調度器的各個隊列的使用情況;根據第一調度器的隊列使用情況和預先設定的隊列回收規則,檢測是否存在需要回收的第一隊列;若存在第一隊列,則生成隊 列回收指令,隊列回收指令中包括第一調度器的標識和第一隊列的標識。
在第四方面的第三種可能的實施方式中,隊列管理指令為隊列釋放指令。根據預先設定的隊列管理規則,生成隊列管理指令,包括:接收tm芯片發送的第一調度器的隊列使用情況,第一調度器的隊列使用情況包括第一調度器正在調度的各個隊列的使用情況;根據第一調度器的隊列使用情況和預先設定的隊列釋放規則,檢測是否存在需要釋放的第一隊列;若存在第一隊列,則生成隊列釋放指令,隊列釋放指令中包括第一調度器的標識和第一隊列的標識。
本申請第五方面提供了一種tm芯片,該tm芯片包括至少一個組件,該至少一個組件用于實現上述第三方面或者第三方面的任意一種可能的實施方式所提供的隊列管理方法。
本申請通過tm芯片接收控制器發送的隊列管理指令,根據隊列管理指令,控制第一調度器對第一隊列的調度;解決了現有技術中,采用hqos技術進行數據調度時,為每一個第1級調度器分配固定數量的隊列而存在的問題。由于tm芯片的多個第1級調度器從共享的隊列資源池中調度隊列,使得隊列分配與第1級調度器解耦合,第1級調度器可根據實際需求從共享的隊列資源池中調度期望數量和期望類型的隊列。當有新增類型的數據需要傳輸時,從共享的隊列資源池中調度隊列;當有閑置的隊列時,可將閑置的隊列回收至共享的隊列資源池中。因此,本實施例提供的網絡設備,實現了隊列分配與第1級調度器解耦合,達到了提高隊列分配的靈活性、提高隊列資源的利用率的技術效果。
附圖說明
為了更清楚地說明本申請實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹。
圖1是本申請一個實施例提供的實施環境的示意圖;
圖2a是本申請一個實施例提供的網絡設備的框圖;
圖2b是一種分層調度模型的示意圖;
圖2c是另一分層調度模型的示意圖;
圖3是本申請一個實施例提供的控制器的框圖;
圖4是本申請一個實施例提供的隊列管理方法的流程圖;
圖5是本申請另一實施例提供的隊列管理方法的流程圖;
圖6是本申請一個實施例提供的隊列分配方法的流程圖。
具體實施方式
為使本申請的目的、技術方案和優點更加清楚,下面將結合附圖對本申請實施方式作進一步地詳細描述。
在本文中提及的“組件”是指按照邏輯劃分的功能性結構,該“組件”可以由純硬件實現,或者由軟硬件的結合實現。
在本文中提及的“至少一個”是指一個或多個,“多個”是指兩個或兩個以上。“和/或”,描述關聯對象的關聯關系,表示可以存在三種關系,例如,a和/或b,可以表示:單獨存在a,同時存在a和b,單獨存在b這三種情況。字符“/”一般表示前后關聯對象是一種“或”的關系。
請參考圖1,其示出了本申請一個實施例提供的實施環境的示意圖,該實施環境可以是為用戶提供各類網絡業務的網絡系統。示例性地,如圖1所示,該實施環境包括:用戶設備(英文:userequipment;縮寫:ue)110、網絡設備120、控制器130和至少一臺服務器140。
ue110可以是手機、平板電腦、個人計算機(英文:personalcomputer;縮寫:pc)、多媒體播放設備等。ue110與網絡設備120之間通過網絡通信。網絡可以是運營商網絡,也可以是局域網。
網絡設備120可以是路由器、交換機、網橋、波分復用設備、分組傳送網設備、光傳送網設備、防火墻、數據中心等。在本申請實施例中,以網絡設備120為流量控制網關為例。
網絡設備120包括第一通信接口、tm芯片和網絡處理器。tm芯片和網絡處理器之間通過總線相連。總線可以是外設部件互連標準(英文:peripheralcomponentinterconnect;縮寫:pci)總線或者擴展工業標準結構(英文:extendedindustrystandardarchitecture;縮寫:eisa)總線等。總線可分為地址總線、數據總線、控制總線等。網絡設備120通過第一通信接口與外部設備通信。第一通信接口可以是一個通信接口,tm芯片與網絡處理器共用同一通信接口與外部設備通信;或者,第一通信接口可以是多個通信接口,tm芯片與網絡處理器可 分別使用不同的通信接口與外部設備通信。tm芯片用于實現流量管理功能。網絡處理器用于通過第一通信接口接收外部設備發送的報文,并對報文做相應的處理。例如,網絡處理器接收ue110發送的用于向服務器140請求業務數據的請求報文,并將請求報文轉發給控制器130和服務器140。再例如,網絡處理器接收服務器140反饋的攜帶有業務數據的報文,并存儲或發送該報文。
在通常情況下,控制器130為獨立于網絡設備120的一臺設備,一臺控制器130可以管理一臺或多臺網絡設備120,并為每臺網絡設備120提供不同的配置。控制器130可以為軟件定義網格(英文:softwaredefinednetwork;縮寫:sdn)控制器。控制器130用于向tm芯片發送隊列管理指令,tm芯片根據隊列管理指令管理目標調度器所調度的隊列。其中,網絡設備120與控制器130之間可通過網絡通信。控制器130包括第二通信接口和處理器。控制器130通過第二通信接口與外部設備通信。處理器用于執行控制器130的各項功能。
服務器140部署于廣域網中。服務器140用于向用戶提供網絡業務。不同的服務器140可以向用戶提供相同或者不同類型的網絡業務。在本申請實施例中,對網絡業務的類型不做限定。例如,網絡業務包括但不限于:網絡電話(英文:voiceoverinternetprotocol;縮寫:voip)業務、視頻點播(英文:videoondemand;縮寫:vod)業務、寬帶電視(英文:broadbandtv;縮寫:btv)業務、家庭信息系統(英文:homeinformationsystem;縮寫:his)業務、普通上網業務(如e-mail業務)等。服務器140與ue110之間傳輸的數據通過網絡設備120轉發。
請參考圖2a,其示出了本申請一個實施例提供的網絡設備的框圖。該網絡設備200包括第一通信接口210、tm芯片220和網絡處理器230。
tm芯片220包括:n級調度器,每一個第i+1級調度器用于調度多個第i級調度器,每個第1級調度器用于調度多個隊列,n為大于1的整數,i為大于等于1且小于n的整數。在實際應用中,可以根據實際需求設定調度器的級數。
圖2b為一種分層調度模型的示意圖。在圖2b所示的分層調度模型中,包括4級調度器,調度級別可包括端口級別、用戶組級別、用戶級別和業務級別四個級別。每一個第4級調度器用于按端口級別調度多個第3級調度器,每一個第3級調度器用于按用戶組級別調度多個第2級調度器,每一個第2級調度 器用于按用戶級別調度多個第1級調度器,每一個第1級調度器用于按業務級別調度多個隊列。
圖2c為另一分層調度模型的示意圖。在圖2c所示的分層調度模型中,包括3級調度器,調度級別可包括端口級別、用戶級別和業務級別三個級別。每一個第3級調度器用于按端口級別調度多個第2級調度器,每一個第2級調度器用于按用戶級別調度多個第1級調度器,每一個第1級調度器用于按業務級別調度多個隊列。
第一通信接口210,用于接收控制器發送的隊列管理指令,隊列管理指令中包括第一調度器的標識和第一隊列的標識,第一調度器是多個第1級調度器中的一個。其中,調度器的標識用于唯一標識調度器。調度器的標識可以是調度器的名稱,也可以是為調度器分配的序列號,或者是其它唯一標識符。隊列的標識用于唯一標識隊列。隊列的標識可以是隊列的名稱,也可以是為隊列分配的序列號,或者是其它唯一標識符。第一調度器所調度的隊列屬于tm芯片220的隊列資源池,隊列資源池中包括至少一個待分配的隊列。換句話說,隊列資源池中包括至少一個可供各個第1級調度器提取的待分配的隊列。隊列資源池中的各個隊列的標識各不相同。
tm芯片220還用于根據隊列管理指令,控制第一調度器對第一隊列的調度。下面,從分配、回收和釋放三個方面分別進行介紹和說明。
在一種可能的實施方式中,隊列管理指令為隊列分配指令,隊列分配指令中包括第一調度器的標識和第一隊列的標識。tm芯片220具體用于將隊列資源池中的第一隊列分配給第一調度器。第一隊列是隊列資源池中的一個待分配的隊列,也即未被分配給第1級調度器的隊列。在實際實現過程中,隊列資源池對應第一隊列列表,第一隊列列表中記錄有隊列資源池中包括的所有待分配的隊列的標識。例如,第一隊列列表中包括:至少一個類選擇(英文:classselector;縮寫:cs)隊列、至少一個確保轉發(英文:assuredforwarding;縮寫:af)隊列、至少一個快速轉發(英文:expeditedforwarding;縮寫:ef)隊列、至少一個盡力服務(英文:besteffort;縮寫:be)隊列的標識。每一個第1級調度器對應一個第二隊列列表,每一個第1級調度器對應的第二隊列列表中記錄有分配給該第1級調度器的隊列的標識,每一個第1級調度器有權限調度其對應的第二隊列列表中包含的隊列。在分配過程中,tm芯片220可用于在第一隊列 列表中將第一隊列指示為已分配,并將第一隊列的標識添加至第一調度器對應的第二隊列列表中。其中,在第一隊列列表中將第一隊列指示為已分配可以是將第一隊列的標識從第一隊列列表中刪除,也可以是在第一隊列列表中為第一隊列設置相應的用于指示已分配的標識符,等等。可選地,tm芯片220還用于向第一調度器發送調度通知,調度通知用于通知第一調度器開始調度第一隊列。
在另一種可能的實施方式中,隊列管理指令為隊列回收指令,隊列回收指令中包括第一調度器的標識和第一隊列的標識。tm芯片220具體用于控制第一調度器停止調度第一隊列,并將第一隊列回收至隊列資源池中。在實際實現過程中,tm芯片220可用于從第一調度器對應的第二隊列列表中刪除第一隊列的標識,并在第一隊列列表中將第一隊列指示為待分配。其中,在第一隊列列表中將第一隊列指示為待分配可以是在第一隊列列表中添加第一隊列的標識,也可以是在第一隊列列表中為第一隊列設置相應的用于指示待分配的標識符,等等。
在另一種可能的實施方式中,隊列管理指令為隊列釋放指令,隊列釋放指令中包括第一調度器的標識和第一隊列的標識。tm芯片220具體用于控制第一調度器暫停調度第一隊列。在實際實現過程中,tm芯片220可用于向第一調度器發送釋放通知,釋放通知用于通知第一調度器暫停調度第一隊列;或者,tm芯片220可用于在第一調度器對應的第二隊列列表中為第一隊列設置相應的用于指示暫停調度的標識符。tm芯片220通過控制第一調度器暫停調度第一隊列,在暫時不需要第一隊列發送數據時釋放第一隊列,并在之后重新需要第一隊列發送數據時,無需從隊列資源池中重新調度第一隊列,實現快速恢復調度第一隊列,有助于節省tm芯片220的處理資源。
網絡處理器230用于接收廣域網中的服務器發送的報文,解析該報文確定用于發送該報文的第二調度器,查詢第二調度器的流分類表,獲取與該報文所屬的數據類型對應的第二隊列的標識,將第二隊列的標識封裝至報文中,向tm芯片220發送該報文。tm芯片220還用于接收網絡處理器230發送的報文,讀取報文中攜帶的第二隊列的標識,將所述報文存儲至所述第二隊列中。
其中,第二調度器是上述多個第1級調度器中的一個。流分類表的每個表項中包括數據類型與隊列的標識之間的對應關系,流分類表中包括的對應關系是可調的。數據類型是指網絡中通過網絡設備200傳輸的數據的類型。在通常 情況下,可按照網絡業務的類型對數據分類,例如voip業務、vod業務、btv業務、his業務、普通上網業務等不同類型的網絡業務的數據,分別對應不同的數據類型。可選地,也可按照流量類型對數據分類,例如控制數據流量和業務數據流量,分別對應不同的數據類型。當然,在其它可能的實施方式中,還可結合網絡業務的類型和流量類型對數據類型做進一步地細分,例如同一業務的不同流量類型的數據,分別對應不同的數據類型。
以按照網絡業務的類型對數據分類為例,假設網絡設備200傳輸的是越頂(英文:overthetop;縮寫:ott)視頻業務的報文,流分類表中記錄的ott視頻業務對應的隊列為af4隊列,則網絡處理器230將af4隊列的標識封裝至該報文中,而后向tm芯片220發送封裝后的報文。tm芯片220接收網絡處理器230發送的報文,讀取報文中攜帶的af4隊列的標識,并據此將該報文存儲至第二調度器所調度的af4隊列中。
可選地,控制器還用于向網絡處理器230預下發第二調度器對應的流分類表。預下發的流分類表中包括預置的至少一個數據類型與隊列的標識之間的對應關系。針對不同的第1級調度器,預下發的流分類表中包含的對應關系可以相同,也可以不同,這可在控制器中預先配置相應的規則。在一種可能的實施方式中,預置的數據類型可以是一個或多個基礎網絡業務(如普通上網業務)對應的數據類型。
可選地,控制器還用于向網絡處理器230發送流分類表更新指示;其中,流分類表更新指示中包括第二調度器的標識,以及待更新隊列的標識與數據類型之間的對應關系。網絡處理器230用于接收控制器發送的流分類表更新指示,根據第二調度器的標識獲取第二調度器對應的流分類表,在上述流分類表中更新待更新隊列的標識與數據類型之間的對應關系。其中,在上述流分類表中更新待更新隊列的標識與數據類型之間的對應關系,包括:若上述流分類表中未存在上述待更新隊列的標識,則在上述流分類表中增加上述待更新隊列的標識與數據類型之間的對應關系;若上述流分類表中已存在上述待更新隊列的標識,則將上述待更新隊列的標識對應的原數據類型修改為流分類表更新指示中包括的數據類型。
可選地,如圖2a所示,tm芯片220包括第一接口,隊列管理器、第二接口和隊列映射器。隊列管理器用于管理隊列,包括隊列的分配、回收和釋放。 第一接口用于向控制器反饋隊列使用情況,接收控制器發送的隊列管理指令。第二接口用于與網絡處理器230通信,包括接收網絡處理器230發送的報文。隊列映射器用于將網絡處理器230發送的報文存儲至相應的隊列中。
需要說明的一點是,在通常情況下,tm芯片220僅維護一個隊列資源池,tm芯片220包括的所有第1級調度器均從該隊列資源池中調度隊列,也即所有第1級調度器共享一個隊列資源池。當然,在其它可能的實施方式中,tm芯片220也可維護多個隊列資源池,每一個隊列資源池用于供tm芯片220的一部分第1級調度器從中調度隊列。
另外,在通常情況下,每個隊列對應的緩存空間固定。當然,在其它可能的實施方式中,多個隊列可共享緩存空間。例如,隊列1對應的緩存空間大小為a字節,隊列2對應的緩存空間大小為b字節,若隊列1和隊列2共享緩存空間,則當其中一個隊列中存儲的數據超過其緩存空間大小時,可將數據存儲只另一隊列的緩存空間中。通過上述方式,可減少因隊列深度不足而丟包,更為有效地利用緩存空間。
在本實施例中,僅對網絡設備200從控制器接收隊列管理指令之后所做的處理流程進行介紹和說明,對于控制器生成隊列管理指令的處理流程,參見下述圖3所示實施例中的介紹和說明。
綜上所述,本實施例提供的網絡設備,tm芯片通過第一通信接口接收控制器發送的隊列管理指令,根據隊列管理指令,控制第一調度器對第一隊列的調度;解決了現有技術中,采用hqos技術進行數據調度時,為每一個第1級調度器分配固定數量的隊列而存在的問題。由于tm芯片的多個第1級調度器從共享的隊列資源池中調度隊列,使得隊列分配與第1級調度器解耦合,第1級調度器可根據實際需求從共享的隊列資源池中調度期望數量和期望類型的隊列。當有新增類型的數據需要傳輸時,從共享的隊列資源池中調度隊列;當有閑置的隊列時,可將閑置的隊列回收至共享的隊列資源池中。因此,本實施例提供的網絡設備,實現了隊列分配與第1級調度器解耦合,達到了提高隊列分配的靈活性,提高隊列資源的利用率的技術效果。
在基于圖2a所示實施例提供的另一實施例中,提供了一種tm芯片。如圖2a所示,tm芯片220包括:第一接口和隊列管理器。
第一接口,用于接收控制器發送的隊列管理指令,隊列管理指令中包括第一調度器的標識和第一隊列的標識,第一調度器是多個第1級調度器中的一個。
隊列管理器,用于根據隊列管理指令,控制第一調度器對第一隊列的調度。
其中,第一調度器所調度的隊列屬于tm芯片220的隊列資源池,隊列資源池中包括至少一個待分配的隊列。
在第一種可能的實施方式中,隊列管理指令為隊列分配指令。隊列管理器,具體用于將隊列資源池中的第一隊列分配給第一調度器。
在第二種可能的實施方式中,隊列管理指令為隊列回收指令。隊列管理器,具體用于控制第一調度器停止調度第一隊列,并將第一隊列回收至隊列資源池中。
在第三種可能的實施方式中,隊列管理指令為隊列釋放指令。隊列管理器,具體用于控制第一調度器暫停調度第一隊列。
可選地,如圖2a所示,tm芯片220還包括:第二接口和隊列映射器。
第二接口,用于從網絡處理器230接收報文,該報文由廣域網中的服務器發送給網絡處理器230。
隊列映射器,用于讀取報文中攜帶的第二隊列的標識。其中,第二隊列的標識由網絡處理器230解析上述報文,確定用于發送該報文的第二調度器后,根據報文所屬的數據類型從第二調度器的流分類表中查詢得到,并由網絡處理器230封裝至報文中。第二調度器是多個第1級調度器中的一個,流分類表的每個表項包括數據類型與隊列的標識之間的對應關系。
隊列映射器,還用于將報文存儲至第二調度器所對應的第二隊列中。
需要說明的是,本實施例提供的tm芯片在實現其功能時,僅以上述各功能組件的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能組件完成,即將tm芯片的內部結構劃分成不同的功能組件,以完成以上描述的全部或者部分功能。
請參考圖3,其示出了本申請一個實施例提供的控制器的框圖。控制器300用于控制網絡設備管理隊列,網絡設備是如上述圖2a所示實施例提供的網絡設備。如圖3所示,該控制器300包括:處理器310和第二通信接口320。
處理器310,用于根據預先設定的隊列管理規則,生成隊列管理指令。其中, 隊列管理指令中包括第一調度器的標識和第一隊列的標識,第一調度器是網絡設備的tm芯片包括的多個第1級調度器中的一個。第二通信接口320,用于向網絡設備發送隊列管理指令。
下面,從分配、回收和釋放三個方面分別進行介紹和說明。
在一種可能的實施方式中,隊列管理指令為隊列分配指令,隊列分配指令中包括第一調度器的標識和第一隊列的標識。處理器310具體用于獲取ue發送的業務請求;根據業務請求所請求的業務,確定用于發送該業務的報文的第一調度器;根據預先設定的隊列分配規則,確定是否需要為第一調度器分配第一隊列,該第一隊列用于存儲或發送上述報文;若需要為第一調度器分配第一隊列,則生成隊列分配指令,隊列分配指令中包括第一調度器的標識和第一隊列的標識。
業務請求所請求的業務可以是voip業務、vod業務、btv業務、his業務、ott視頻業務等,本實施例對此不做限定。隊列分配規則可根據實際需求在控制器中預先設定。
例如,隊列分配規則設定為當業務請求所請求的業務的報文所屬的數據類型為新增數據類型時,為第一調度器分配第一隊列。控制器根據業務請求所請求的業務,確定用于發送該業務的報文的第一調度器之后,獲取分配給第一調度器的隊列。控制器可根據第一調度器的流分類表獲取分配給第一調度器的隊列;或者,控制器也可接收tm芯片發送的第一調度器的隊列使用情況,第一調度器的隊列使用情況包括分配給第一調度器的各個隊列的使用情況。之后,控制器檢測分配給第一調度器的隊列中是否已存在用于存儲或發送上述報文(即業務請求所請求的業務的報文)的隊列;若存在,則無需為第一調度器分配新的隊列;若不存在,則為第一調度器分配第一隊列。示例性地,以按照網絡業務的類型對數據分類為例,假設業務請求所請求的業務為ott視頻業務,控制器檢測分配給第一調度器的隊列中是否已存在用于存儲或發送ott視頻業務的報文的隊列,并在檢測結果為不存在的情況下,為第一調度器分配第一隊列(如af4隊列),用于存儲或發送ott視頻業務的報文。其中,報文所屬的數據類型與用于存儲或發送該報文的隊列之間的映射關系,可預先在控制器中配置。
再例如,隊列分配規則設定為當業務請求所請求的業務的報文所屬的數據 類型為新增數據類型,且該業務的優先級大于預設優先級時,為第一調度器分配第一隊列。
再例如,隊列分配規則設定為當業務請求所請求的業務的報文所屬的數據類型為新增數據類型,且第一調度器當前無閑置隊列時,為第一調度器分配第一隊列。控制器可根據第一調度器的隊列使用情況,確定第一調度器當前是否存在閑置隊列。
當然,上述隊列分配規則僅是示例性和解釋性的,在實際應用中,可設定滿足實際需求的隊列分配規則。
在另一種可能的實施方式中,隊列管理指令為隊列回收指令,隊列回收指令中包括第一調度器的標識和第一隊列的標識。第二通信接口320,還用于接收tm芯片發送的第一調度器的隊列使用情況,第一調度器的隊列使用情況包括分配給第一調度器的各個隊列的使用情況。處理器310,具體用于根據第一調度器的隊列使用情況和預先設定的隊列回收規則,檢測是否存在需要回收的第一隊列;若存在需要回收的第一隊列,則生成隊列回收指令。隊列回收規則可根據實際需求在控制器中預先設定。
例如,隊列回收規則設定為當第一調度器有閑置隊列時,將該閑置隊列回收至隊列資源池中。其中,閑置隊列是指當前無報文存儲或發送的隊列。假設控制器檢測出第一調度器的af2隊列為閑置隊列,則生成隊列回收指令,該隊列回收指令中包括第一調度器的標識和af2隊列的標識。
再例如,隊列回收規則設定為當第一調度器有閑置隊列,且隊列資源池中剩余的待分配的隊列的數量小于預設數量時,將該閑置隊列回收至隊列資源池中。其中,隊列資源池中剩余的待分配的隊列的數量可由tm芯片獲取并發送給控制器。
再例如,隊列回收規則設定為當第一調度器有閑置隊列,且第一調度器對應的優先級小于預設優先級時,將該閑置隊列回收至隊列資源池中。
當然,上述隊列回收規則僅是示例性和解釋性的,在實際應用中,可設定滿足實際需求的隊列回收規則。
在另一種可能的實施方式中,隊列管理指令為隊列釋放指令,隊列釋放指令中包括第一調度器的標識和第一隊列的標識。第二通信接口320,還用于接收tm芯片發送的第一調度器的隊列使用情況,第一調度器的隊列使用情況包括分 配給第一調度器的各個隊列的使用情況。處理器310,具體用于根據第一調度器的隊列使用情況和預先設定的隊列釋放規則,檢測是否存在需要釋放的第一隊列;若存在第一隊列,則生成隊列釋放指令。隊列分配規則可根據實際需求在控制器中預先設定。
例如,隊列釋放規則設定為當第一調度器有閑置隊列時,釋放該閑置隊列。
再例如,隊列釋放規則設定為當第一調度器有閑置隊列,且隊列資源池中剩余的待分配的隊列的數量大于預設數量時,釋放該閑置隊列。
再例如,隊列釋放規則設定為當第一調度器有閑置隊列,且第一調度器對應的優先級大于預設優先級時,釋放該閑置隊列。
當然,上述隊列釋放規則僅是示例性和解釋性的,在實際應用中,可設定滿足實際需求的隊列釋放規則。
請參考圖4,其示出了本申請一個實施例提供的隊列管理方法的流程圖。該方法應用于圖2a所示實施例介紹的tm芯片中,tm芯片的結構參見圖2a所示實施例中的介紹和說明,以及圖2b和圖2c所示的示例性分層調度模型,本實施例對此不再贅述。本實施例提供的方法可以包括如下步驟。
步驟401,tm芯片接收控制器發送的隊列管理指令,隊列管理指令中包括第一調度器的標識和第一隊列的標識,第一調度器是多個第1級調度器中的一個。
調度器的標識用于唯一標識調度器。調度器的標識可以是調度器的名稱,也可以是為調度器分配的序列號,或者是其它唯一標識符。隊列的標識用于唯一標識隊列。隊列的標識可以是隊列的名稱,也可以是為隊列分配的序列號,或者是其它唯一標識符。第一調度器所調度的隊列屬于tm芯片的隊列資源池,隊列資源池中包括至少一個待分配的隊列。換句話說,隊列資源池中包括至少一個可供各個第1級調度器提取的待分配的隊列。隊列資源池中的各個隊列的標識各不相同。
步驟402,tm芯片根據隊列管理指令,控制第一調度器對第一隊列的調度。
下面,從分配、回收和釋放三個方面分別進行介紹。
在一種可能的實施方式中,隊列管理指令為隊列分配指令,隊列分配指令中包括第一調度器的標識和第一隊列的標識。tm芯片將隊列資源池中的第一隊 列分配給第一調度器。第一隊列是隊列資源池中的一個待分配的隊列,也即未被分配給第1級調度器的隊列。在實際實現過程中,隊列資源池對應第一隊列列表,第一隊列列表中記錄有隊列資源池中包括的所有待分配的隊列的標識。例如,第一隊列列表中包括:至少一個cs隊列、至少一個af隊列、至少一個ef隊列、至少一個be隊列的標識。每一個第1級調度器對應一個第二隊列列表,每一個第1級調度器對應的第二隊列列表中記錄有分配給該第1級調度器的隊列的標識。每一個第1級調度器有權限調度其對應的第二隊列列表中包含的隊列。在分配過程中,tm芯片在第一隊列列表中將第一隊列指示為已分配,并將第一隊列的標識添加至第一調度器對應的第二隊列列表中。其中,在第一隊列列表中將第一隊列指示為已分配可以是將第一隊列的標識從第一隊列列表中刪除,也可以是在第一隊列列表中為第一隊列設置相應的用于指示已分配的標識符,等等。可選地,tm芯片還向第一調度器發送調度通知,調度通知用于通知第一調度器開始調度第一隊列。
在另一種可能的實施方式中,隊列管理指令為隊列回收指令,隊列回收指令中包括第一調度器的標識和第一隊列的標識。tm芯片控制第一調度器停止調度第一隊列,并將第一隊列回收至隊列資源池中。在實際實現過程中,tm芯片從第一調度器對應的第二隊列列表中刪除第一隊列的標識,并在第一隊列列表中將第一隊列指示為待分配。其中,在第一隊列列表中將第一隊列指示為待分配可以是在第一隊列列表中添加第一隊列的標識,也可以是在第一隊列列表中為第一隊列設置相應的用于指示待分配的標識符,等等。
在另一種可能的實施方式中,隊列管理指令為隊列釋放指令,隊列釋放指令中包括第一調度器的標識和第一隊列的標識。tm芯片控制第一調度器暫停調度第一隊列。在實際實現過程中,tm芯片向第一調度器發送釋放通知,釋放通知用于通知第一調度器暫停調度第一隊列;或者,tm芯片可用于在第一調度器對應的第二隊列列表中為第一隊列設置相應的用于指示暫停調度的標識符。tm芯片通過控制第一調度器暫停調度第一隊列,在暫時不需要第一隊列發送數據時釋放第一隊列,并在之后重新需要第一隊列發送數據時,無需從隊列資源池中重新調度第一隊列,實現快速恢復調度第一隊列,有助于節省tm芯片的處理資源。
可選地,本實施例提供的方法還包括如下步驟403至步驟405。
步驟403,tm芯片從網絡處理器接收報文。
步驟404,tm芯片讀取報文中攜帶的第二隊列的標識。
步驟405,tm芯片將上述報文存儲至第二調度器所對應的第二隊列中。
網絡處理器接收到廣域網中的服務器發送的報文之后,解析該報文確定用于發送該報文的第二調度器,查詢第二調度器的流分類表,獲取與該報文所屬的數據類型對應的第二隊列的標識,將第二隊列的標識封裝至報文中,向tm芯片發送該報文。其中,流分類表的每個表項中包括數據類型與隊列的標識之間的對應關系,流分類表中包括的對應關系是可調的。數據類型是指網絡中通過網絡設備傳輸的數據的類型。在通常情況下,可按照網絡業務的類型對數據分類,例如voip業務、vod業務、btv業務、his業務、普通上網業務等不同類型的網絡業務的數據,分別對應不同的數據類型。可選地,也可按照流量類型對數據分類,例如控制數據流量和業務數據流量,分別對應不同的數據類型。當然,在其它可能的實施方式中,還可結合網絡業務的類型和流量類型對數據類型做進一步地細分,例如同一業務的不同流量類型的數據,分別對應不同的數據類型。
以按照網絡業務的類型對數據分類為例,假設網絡設備傳輸的是ott視頻業務的報文,流分類表中記錄的ott視頻業務對應的隊列為af4隊列,則網絡處理器將af4隊列的標識封裝至該報文中,而后向tm芯片發送封裝后的報文。tm芯片接收網絡處理器發送的報文,讀取報文中攜帶的af4隊列的標識,并據此將該報文存儲至第二調度器所調度的af4隊列中。
綜上所述,本實施例提供的隊列管理方法,通過tm芯片接收控制器發送的隊列管理指令,根據隊列管理指令,控制第一調度器對第一隊列的調度;解決了現有技術中,采用hqos技術進行數據調度時,為每一個第1級調度器分配固定數量的隊列而存在的問題。由于tm芯片的多個第1級調度器從共享的隊列資源池中調度隊列,使得隊列分配與第1級調度器解耦合,第1級調度器可根據實際需求從共享的隊列資源池中調度期望數量和期望類型的隊列。當有新增類型的數據需要傳輸時,從共享的隊列資源池中調度隊列;當有閑置的隊列時,可將閑置的隊列回收至共享的隊列資源池中。因此,本實施例提供的網絡設備,實現了隊列分配與第1級調度器解耦合,達到了提高隊列分配的靈活性,提高隊列資源的利用率的技術效果。
請參考圖5,其示出了本申請另一實施例提供的隊列管理方法的流程圖。該方法應用于圖3所示實施例介紹的控制器中,控制器的結構參見圖3所示實施例中的介紹和說明,本實施例對此不再贅述。本實施例提供的方法可以包括如下步驟。
步驟501,控制器根據預先設定的隊列管理規則,生成隊列管理指令。
其中,隊列管理指令中包括第一調度器的標識和第一隊列的標識,第一調度器是多個第1級調度器中的一個。
在一種可能的實施方式中,隊列管理指令為隊列分配指令,隊列分配指令中包括第一調度器的標識和第一隊列的標識。步驟501包括如下幾個子步驟:
1、控制器獲取用戶設備ue發送的業務請求;
2、控制器根據業務請求所請求的業務,確定用于發送業務的報文的第一調度器;
3、控制器根據預先設定的隊列分配規則,確定是否需要為第一調度器分配第一隊列,第一隊列用于存儲或發送報文;
4、若需要為第一調度器分配第一隊列,則控制器生成隊列分配指令。
在另一種可能的實施方式中,隊列管理指令為隊列回收指令,隊列回收指令中包括第一調度器的標識和第一隊列的標識。步驟501包括如下幾個子步驟:
1、控制器接收tm芯片發送的第一調度器的隊列使用情況,第一調度器的隊列使用情況包括分配給第一調度器的各個隊列的使用情況;
2、控制器根據第一調度器的隊列使用情況和預先設定的隊列回收規則,檢測是否存在需要回收的第一隊列;
3、若存在第一隊列,則控制器生成隊列回收指令。
在另一種可能的實施方式中,隊列管理指令為隊列釋放指令,隊列釋放指令中包括第一調度器的標識和第一隊列的標識。步驟501包括如下幾個子步驟:
1、控制器接收tm芯片發送的第一調度器的隊列使用情況,第一調度器的隊列使用情況包括分配給第一調度器的各個隊列的使用情況;
2、控制器根據第一調度器的隊列使用情況和預先設定的隊列釋放規則,檢測是否存在需要釋放的第一隊列;
3、若存在第一隊列,則控制器生成隊列釋放指令。
步驟502,控制器向網絡設備發送隊列管理指令。
有關上述各步驟的說明可參見圖3所示實施例中的介紹和說明,本實施例對此不做贅述。
下面,以隊列分配過程為例,示例性提供一種隊列分配方法。在此示例性例子中,以網絡設備為流量控制網關,且控制器為sdn控制器為例。流量控制網關包括網絡處理器和tm芯片。tm芯片的結構參見圖2a所示實施例中的介紹和說明。如圖6所示,該隊列分配方法可以包括如下步驟:
步驟601,sdn控制器向網絡處理器預下發目標調度器對應的流分類表。
例如,預下發的流分類表中包括普通上網業務與be隊列之間的對應關系。目標調度器是tm芯片包括的多個第1級調度器中的一個。
相應地,網絡處理器從sdn控制器接收目標調度器對應的流分類表。
步驟602,網絡處理器存儲目標調度器對應的流分類表。
步驟603,ue通過流量控制網關向服務器發送業務請求,該業務請求用于請求目標業務。
例如,目標業務為ott視頻業務。
相應地,服務器接收ue發送的業務請求。
步驟604,網絡處理器向sdn控制器轉發業務請求。
相應地,sdn控制器接收網絡處理器轉發的業務請求。
步驟605,sdn控制器檢測業務請求所請求的目標業務是否為新增業務。
步驟606,若目標業務為新增業務,則sdn控制器為目標業務分配目標隊列。
目標隊列用于存儲或發送目標業務的報文。例如,sdn控制器為ott視頻業務分配af4隊列,該af4隊列用于存儲或發送ott視頻業務的報文。
步驟607,sdn控制器向網絡處理器發送流分類表更新指示。
流分類表更新指示中包括目標調度器的標識,以及目標隊列的標識與目標業務的標識之間的對應關系。
相應地,網絡處理器接收sdn控制器發送的流分類表更新指示。
步驟608,網絡處理器更新目標調度器對應的流分類表。
網絡處理器在目標調度器對應的流分類表中增加目標隊列的標識與目標網 絡業務的標識之間的對應關系。例如,網絡處理器在目標調度器對應的流分類表中增加ott視頻業務與af4隊列之間的對應關系。
步驟609,sdn控制器向tm芯片的隊列管理器發送隊列分配指令。
隊列分配指令用于指示隊列管理器為目標調度器分配目標隊列。隊列分配指令中包括目標調度器的標識和目標隊列的標識。
相應地,tm芯片的隊列管理器接收sdn控制器發送的隊列分配指令。
步驟610,tm芯片的隊列管理器將隊列資源池中的目標隊列分配給目標調度器。
例如,tm芯片從隊列資源池中提取af4隊列,將af4隊列分配給目標調度器。
步驟611,服務器向流量控制網關發送目標業務的報文。
例如,服務器向流量控制網關發送ott視頻業務的報文,通過流量控制網關將該ott視頻業務的報文發送給ue。
相應地,流量控制網關接收服務器發送的目標業務的報文。
步驟612,網絡處理器查詢目標調度器對應的流分類表,獲取與目標業務對應的目標隊列的標識。
步驟613,網絡處理器將目標隊列的標識封裝至上述報文中。
步驟614,網絡處理器通過總線將上述報文發送給tm芯片的隊列映射器。
相應地,tm芯片的隊列映射器通過總線接收網絡處理器發送的報文。
步驟615,tm芯片的隊列映射器讀取報文中攜帶的目標隊列的標識,將報文存儲至目標調度器所調度的目標隊列中。
步驟616,tm芯片的目標調度器根據預設的hqos策略調度隊列,將目標隊列中的報文發送給ue。
相應地,ue接收流量控制網關發送的報文。
本領域普通技術人員可以理解實現上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
以上所述僅為本申請的較佳實施例,并不用以限制本申請,凡在本申請的 精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本申請的保護范圍之內。