通信隊列處理方法、裝置及系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明實施例涉及通信技術,尤其涉及一種通信隊列處理方法、裝置及系統(tǒng)。
【背景技術】
[0002]在通信領域中,兩個網(wǎng)絡節(jié)點之間需要通信,可以是基于隊列對(Queue Pair,以下簡稱QP)的,包括發(fā)送隊列(Send Queue,以下簡稱SQ),接收隊列(Receive Queue,以下簡稱RQ)以及完成隊列(Complet1n Queue,以下簡稱CQ),其中,SQ用于表示待發(fā)送的數(shù)據(jù),RQ用于表示接收到的數(shù)據(jù),CQ用于表示已經處理完的數(shù)據(jù)。每個節(jié)點的QP適配器在每個周期中只能處理幾個QP,例如,在一個周期內,QP適配器可以處理一個SQ和一個RQ,具體處理哪一個QP,需要有相應的仲裁機制進行確定。
[0003]現(xiàn)有技術中,是將待處理的QP分為高優(yōu)先級和低優(yōu)先級兩類,然后在處理相應的優(yōu)先級的周期內,采用加權循環(huán)調度算法(Weighted Round Robin,以下簡稱WRR)確定出當前處理的QP。但是,這種方法會導致選出的QP被發(fā)送出該網(wǎng)絡節(jié)點后在出口鏈路上造成擁堵從而影響整體服務質量。
【發(fā)明內容】
[0004]本發(fā)明實施例提供一種通信隊列處理方法、裝置及系統(tǒng),以解決QP被發(fā)送出該網(wǎng)絡節(jié)點后在出口鏈路上造成擁堵從而影響整體服務質量的問題。
[0005]第一方面,本發(fā)明實施例提供一種通信隊列處理方法,包括:
[0006]根據(jù)預設輪詢規(guī)則,確定當前處理周期需要處理的交換機端口 ;
[0007]獲取所述交換機端口對應的全部待處理的隊列對QP的信息;
[0008]采用加權循環(huán)調度算法WRR,從所述全部待處理QP中確定當前處理周期需要處理的QP,并對所述需要處理的QP進行處理。
[0009]結合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,所述根據(jù)預設輪詢規(guī)則,確定當前處理周期需要處理的交換機端口之前,還包括:
[0010]將初始建立的QP加入對應的交換機端口的待處理隊列中。
[0011]結合第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,將初始建立的QP加入對應的交換機端口的待處理隊列中,包括:
[0012]接收并保存對接交換機發(fā)送的路由信息,所述路由信息包括交換機端口與目的網(wǎng)絡節(jié)點的映射關系;
[0013]根據(jù)所述路由信息,以及所述初始建立的QP的上下文中預存的目的網(wǎng)絡節(jié)點信息,確定所述初始建立的QP對應的交換機端口 ;
[0014]將所述初始建立的QP加入所述交換機端口的待處理隊列中。
[0015]第二方面,本發(fā)明實施例提供一種通信隊列處理裝置,包括:
[0016]端口確定模塊,用于根據(jù)預設輪詢規(guī)則,確定當前處理周期需要處理的交換機端Π ;
[0017]獲取模塊,用于獲取所述交換機端口對應的全部待處理的隊列對QP的信息;
[0018]仲裁模塊,用于采用加權循環(huán)調度算法WRR,從所述全部待處理QP中確定當前處理周期需要處理的QP,并對所述需要處理的QP進行處理。
[0019]結合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,還包括:
[0020]隊列增加模塊,用于將初始建立的QP加入對應的交換機端口的待處理隊列中。
[0021]結合第二方面的第一種可能的實現(xiàn)方式,在第二方面的第二種可能的實現(xiàn)方式中,所述隊列增加模塊,包括:
[0022]接收單元,用于接收并保存對接交換機發(fā)送的路由信息,所述路由信息包括交換機端口與目的網(wǎng)絡節(jié)點的映射關系;
[0023]獲取單元,用于根據(jù)所述路由信息,以及所述初始建立的QP的上下文中預存的目的網(wǎng)絡節(jié)點信息,獲取所述初始建立的QP對應的交換機端口 ;
[0024]增加單元,用于將所述初始建立的QP加入所述交換機端口的待處理隊列中。
[0025]第三方面,本發(fā)明實施例提供一種通信隊列處理器,包括:
[0026]仲裁處理器,用于根據(jù)預設輪詢規(guī)則,確定當前處理周期需要處理的交換機端口 ;獲取所述交換機端口對應的全部待處理的隊列對QP的信息;采用加權循環(huán)調度算法WRR,從所述全部待處理QP中確定當前處理周期需要處理的QP,并對所述需要處理的QP進行處理。
[0027]結合第三方面,在第三發(fā)面的第一種可能的實現(xiàn)方式中,還包括:適配處理器,用于接收并保存對接交換機發(fā)送的路由信息,所述路由信息包括交換機端口與目的網(wǎng)絡節(jié)點的映射關系;根據(jù)所述路由信息,以及所述初始建立的QP的上下文中預存的目的網(wǎng)絡節(jié)點信息,獲取所述初始建立的QP對應的交換機端口 ;
[0028]所述仲裁處理器,還用于將所述初始建立的QP加入所述交換機端口的待處理隊列中。
[0029]第四發(fā)面,本發(fā)明實施例提供一種通信隊列處理系統(tǒng),包括:至少兩個通信隊列處理器,每個所述通信隊列處理器連接一個網(wǎng)絡節(jié)點,所述通信隊列處理器通過交換機連接至網(wǎng)絡中;
[0030]其中,所述通信隊列處理器采用權利要求7或8所述的通信隊列處理器。
[0031]本發(fā)明實施例通信隊列處理方法、裝置及系統(tǒng),通過預設輪詢規(guī)則確定當前處理周期需要處理的交換機端口,然后從該端口對應的全部待處理QP中根據(jù)WRR算法確定當前需要處理的QP,并對該QP進行處理,實現(xiàn)QP的優(yōu)先級考量以及交換機端口處理的結合,解決QP被發(fā)送出網(wǎng)絡節(jié)點后在出口鏈路上造成擁堵從而影響整體服務質量的問題。
【附圖說明】
[0032]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0033]圖1為本發(fā)明通信隊列處理方法實施例一的流程圖;
[0034]圖2為本發(fā)明通信隊列處理方法實施例二的流程圖;
[0035]圖3為本發(fā)明通信隊列處理裝置實施例一的結構示意圖;
[0036]圖4為本發(fā)明通信隊列處理裝置實施例二的結構示意圖;
[0037]圖5為本發(fā)明通信隊列處理裝置實施例三的結構示意圖;
[0038]圖6為本發(fā)明通信隊列處理器實施例的結構示意圖;
[0039]圖7為本發(fā)明通信隊列處理系統(tǒng)實施例的結構示意圖。
【具體實施方式】
[0040]為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0041]本發(fā)明實施例是基于QP機制進行通信的,首先說明一下QP機制的通信過程。假設網(wǎng)絡中有兩個網(wǎng)絡節(jié)點:第一節(jié)點和第二節(jié)點,在這兩個節(jié)點之間進行通信,第一節(jié)點和第二節(jié)點在各自的內存中建立至少三個隊列,即SQ、RQ以及CQ,其中SQ和RQ成對組成一個QP,第一節(jié)點為發(fā)送端,第二節(jié)點為接收端。具體通信過程如下所示:
[0042]第一步、發(fā)送端在內存中準備好待發(fā)送的數(shù)據(jù);接收端在內存中準備好接收數(shù)據(jù)存放的緩存區(qū);
[0043]第二步、發(fā)送端創(chuàng)建待發(fā)送數(shù)據(jù)的工作隊列元素(Work Queue Element,以下簡稱WQE),然后將WQE插入SQ中。其中,每個WQE記錄一個或多個數(shù)據(jù)緩存區(qū)的信息,包括每一個數(shù)據(jù)緩存區(qū)的起始虛擬地址和大??;接收端創(chuàng)建接收數(shù)據(jù)的WQE,并將WQE按序插入RQ中。其中,每個WQE記錄一個或多個數(shù)據(jù)緩存區(qū)的信息,包括每個數(shù)據(jù)緩存區(qū)的起始虛擬地址和大??;
[0044]第三步、發(fā)送端的適配器處理SQ的隊列頭WQE,根據(jù)WQE記錄的數(shù)據(jù)緩存區(qū)的信息,取出數(shù)據(jù)并向接收端發(fā)送;
[0045]第四步、接收端的適配器一旦接收到數(shù)據(jù),獲取RQ隊列的首個