一種報(bào)文轉(zhuǎn)發(fā)方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,特別是涉及一種報(bào)文轉(zhuǎn)發(fā)方法和裝置。
【背景技術(shù)】
[0002]為了有效進(jìn)行數(shù)據(jù)傳輸,處于傳輸鏈路上的調(diào)度器需要為傳輸鏈路或者子鏈路/子通道合理的調(diào)度帶寬。
[0003]數(shù)據(jù)傳輸過程中,調(diào)度器將接收到報(bào)文按照一定的規(guī)則組成報(bào)文隊(duì)列,然后依次處理該報(bào)文隊(duì)列中的報(bào)文。根據(jù)處理到的報(bào)文長度、該報(bào)文所在報(bào)文隊(duì)列的隊(duì)列標(biāo)識(shí)以及獲取到的相應(yīng)帶寬調(diào)度結(jié)果確定出報(bào)文合理的出隊(duì)時(shí)間。所述調(diào)度器根據(jù)被調(diào)度的帶寬,從該報(bào)文隊(duì)列中提取報(bào)文,向報(bào)文所對應(yīng)的出端口發(fā)送報(bào)文。
[0004]然而在端口匯聚trunk連接模式下,調(diào)度器的輸出端會(huì)連接多條子鏈路或子端口,調(diào)度器接收的各個(gè)報(bào)文會(huì)根據(jù)一定規(guī)則,可以從不同的子鏈路或子端口的物理出端口輸出。也就是說,所述調(diào)度器組成的報(bào)文隊(duì)列中報(bào)文對應(yīng)的物理出端口可以是不同的。如果在調(diào)度器的調(diào)度過程中,處在隊(duì)列頭的報(bào)文所對應(yīng)的物理出端口出現(xiàn)反壓,或者說出現(xiàn)無法輸出報(bào)文的情況時(shí),根據(jù)帶寬調(diào)度規(guī)則,將不會(huì)為出現(xiàn)反壓情況的物理出端口調(diào)度帶寬,由此所述調(diào)度器將無法獲得針對該處在隊(duì)列頭的報(bào)文的帶寬調(diào)度結(jié)果,而且在所述調(diào)度器獲取所述帶寬調(diào)度結(jié)果之前,所述調(diào)度器也無法將該處在隊(duì)列頭的報(bào)文從該報(bào)文隊(duì)列中輸出。那么處于該報(bào)文隊(duì)列的隊(duì)列頭后的其他報(bào)文即使對應(yīng)的物理出端口沒有反壓,也不能從所述調(diào)度器輸出。這種由于隊(duì)列頭報(bào)文無法出隊(duì)列,導(dǎo)致所述調(diào)度器停止發(fā)送報(bào)文的現(xiàn)象一般叫做反壓頭阻現(xiàn)象。這種反壓頭阻現(xiàn)象會(huì)大大影響系統(tǒng)的帶寬利用率。
【發(fā)明內(nèi)容】
[0005]為了解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種報(bào)文轉(zhuǎn)發(fā)方法和裝置,使得第一調(diào)度器可以不用等待帶寬調(diào)度結(jié)果就將報(bào)文發(fā)向?qū)?yīng)的物理出端口,這樣所述第一調(diào)度器所連接的多個(gè)物理出端口中即使有物理出端口出現(xiàn)反壓,也不會(huì)讓所述第一調(diào)度器產(chǎn)生頭阻反壓的現(xiàn)象。
[0006]第一方面,本發(fā)明實(shí)施例提供了一種報(bào)文轉(zhuǎn)發(fā)方法,包括:
[0007]第一調(diào)度器接收目標(biāo)報(bào)文,所述目標(biāo)報(bào)文包括報(bào)文長度、隊(duì)列標(biāo)識(shí)和出端口信息;
[0008]所述第一調(diào)度器向所述出端口信息對應(yīng)的目的物理出端口發(fā)送所述目標(biāo)報(bào)文,并根據(jù)所述隊(duì)列標(biāo)識(shí),將所述隊(duì)列標(biāo)識(shí)對應(yīng)的虛擬隊(duì)列的隊(duì)列長度增加所述報(bào)文長度,所述隊(duì)列長度用于表示所述第一調(diào)度器發(fā)送具有所述隊(duì)列標(biāo)識(shí)的報(bào)文所需的帶寬總量;
[0009]所述第一調(diào)度器向第二調(diào)度器發(fā)送更新信息,所述更新信息包括所述虛擬隊(duì)列的隊(duì)列長度增加所述報(bào)文長度;
[0010]所述第一調(diào)度器根據(jù)所述第二調(diào)度器對應(yīng)所述更新信息發(fā)送的帶寬調(diào)度結(jié)果,將所述虛擬隊(duì)列的隊(duì)列長度減少所述報(bào)文長度。
[0011]在第一方面的第一種可能的實(shí)現(xiàn)方式中,還包括:
[0012]端口控制器預(yù)先建立所述目的物理出端口的出端口信息和時(shí)隙之間的關(guān)聯(lián)關(guān)系,所述端口控制器與所述物理出端口相連。
[0013]結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,還包括:
[0014]所述端口控制器獲取所述第一調(diào)度器發(fā)送的所述目標(biāo)報(bào)文;
[0015]所述端口控制器根據(jù)所述目標(biāo)報(bào)文的隊(duì)列標(biāo)識(shí)和報(bào)文長度,確定輸出所述目標(biāo)報(bào)文的目的時(shí)隙,將所述目標(biāo)報(bào)文加入與所述目的時(shí)隙對應(yīng)報(bào)文隊(duì)列。
[0016]結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,還包括:
[0017]所述端口控制器獲取針對所述更新信息為所述目的物理出端口調(diào)度的帶寬,所述為所述目的物理出端口調(diào)度的帶寬為邏輯端口根據(jù)所述帶寬調(diào)度結(jié)果為所述目的物理出端口調(diào)度的帶寬;
[0018]所述端口控制器根據(jù)所述關(guān)聯(lián)關(guān)系以及所述目的物理出端口的可用帶寬,在所述目的時(shí)隙從所述報(bào)文隊(duì)列中提取所述目標(biāo)報(bào)文,通過所述目的時(shí)隙對應(yīng)的所述目的物理出端口輸出。
[0019]結(jié)合第一方面或者第一方面的第一種或第二種或第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,在所述第一調(diào)度器向所述出端口信息對應(yīng)的物理出端口發(fā)送所述目標(biāo)報(bào)文之前,還包括:
[0020]所述第一調(diào)度器通過丟棄計(jì)算判斷是否丟棄所述目標(biāo)報(bào)文;
[0021]當(dāng)判斷結(jié)果為不丟棄所述目標(biāo)報(bào)文,所述第一調(diào)度器執(zhí)行所述向所述出端口信息對應(yīng)的物理出端口發(fā)送所述目標(biāo)報(bào)文。
[0022]第二方面,本發(fā)明實(shí)施例提供了一種報(bào)文轉(zhuǎn)發(fā)裝置,包括:
[0023]接收單元,用于接收目標(biāo)報(bào)文,所述目標(biāo)報(bào)文包括報(bào)文長度、隊(duì)列標(biāo)識(shí)和出端口信息;
[0024]第一發(fā)送單元,用于向所述出端口信息對應(yīng)的目的物理出端口發(fā)送所述目標(biāo)報(bào)文,并根據(jù)所述隊(duì)列標(biāo)識(shí),將所述隊(duì)列標(biāo)識(shí)對應(yīng)的虛擬隊(duì)列的隊(duì)列長度增加所述報(bào)文長度,所述隊(duì)列長度用于表示所述第一調(diào)度器發(fā)送具有所述隊(duì)列標(biāo)識(shí)的報(bào)文所需的帶寬總量;
[0025]第二發(fā)送單元,用于向第二調(diào)度器發(fā)送更新信息,所述更新信息包括所述虛擬隊(duì)列的隊(duì)列長度增加所述報(bào)文長度;
[0026]處理單元,用于根據(jù)所述第二調(diào)度器對應(yīng)所述更新信息發(fā)送的帶寬調(diào)度結(jié)果,將所述虛擬隊(duì)列的隊(duì)列長度減少所述報(bào)文長度。
[0027]在第二方面的第一種可能的實(shí)現(xiàn)方式中,還包括:
[0028]建立單元,用于預(yù)先建立所述目的物理出端口的出端口信息和時(shí)隙之間的關(guān)聯(lián)關(guān)系,所述端口控制器與所述物理出端口相連。
[0029]結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,還包括:
[0030]第一獲取單元,用于獲取所述第一調(diào)度器發(fā)送的所述目標(biāo)報(bào)文;
[0031]入隊(duì)單元,用于根據(jù)所述目標(biāo)報(bào)文的隊(duì)列標(biāo)識(shí)和報(bào)文長度,確定輸出所述目標(biāo)報(bào)文的目的時(shí)隙,將所述目標(biāo)報(bào)文加入與所述目的時(shí)隙對應(yīng)報(bào)文隊(duì)列。
[0032]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第三種可能的實(shí)現(xiàn)方式中,還包括:
[0033]第二獲取單元,用于獲取針對所述更新信息為所述目的物理出端口調(diào)度的帶寬,所述為所述目的物理出端口調(diào)度的帶寬為邏輯端口根據(jù)所述帶寬調(diào)度結(jié)果為所述目的物理出端口調(diào)度的帶寬;
[0034]輸出單元,用于根據(jù)所述關(guān)聯(lián)關(guān)系以及所述目的物理出端口的可用帶寬,在所述目的時(shí)隙從所述報(bào)文隊(duì)列中提取所述目標(biāo)報(bào)文,通過所述目的時(shí)隙對應(yīng)的所述目的物理出端口輸出。
[0035]結(jié)合第二方面或者第二方面的第一種或第二種或第三種可能的實(shí)現(xiàn)方式,在第四種可能的實(shí)現(xiàn)方式中,在觸發(fā)所述第一發(fā)送單元之前,還包括:
[0036]丟棄判斷單元,用于通過丟棄計(jì)算判斷是否丟棄所述目標(biāo)報(bào)文;
[0037]當(dāng)判斷結(jié)果為不丟棄所述目標(biāo)報(bào)文,觸發(fā)所述第一發(fā)送單元。
[0038]由上述技術(shù)方案可以看出,所述第一調(diào)度器可以根據(jù)目標(biāo)報(bào)文的出端口信息,先向?qū)?yīng)所述出端口信息的物理出端口發(fā)送所述目標(biāo)報(bào)文,并相應(yīng)增加用于表示所述第一調(diào)度器發(fā)送具有所述隊(duì)列標(biāo)識(shí)的報(bào)文所需的帶寬總量的所述虛擬隊(duì)列隊(duì)列長度,并當(dāng)收到所述帶寬調(diào)度結(jié)果時(shí),將所述隊(duì)列長度減少相應(yīng)的長度,以為所述虛擬隊(duì)列維護(hù)合理的可用帶寬。當(dāng)報(bào)文到達(dá)所述第一調(diào)度器時(shí),所述第一調(diào)度器可以不用等待帶寬調(diào)度結(jié)果就可以將報(bào)文發(fā)送到對應(yīng)的物理出端口,由與所述物理出端口對應(yīng)的端口控制器判斷所述目標(biāo)報(bào)文的輸出時(shí)機(jī)。這樣即使目標(biāo)報(bào)文所對應(yīng)的目的物理出端口出現(xiàn)反壓,也不會(huì)影響所述第一調(diào)度器向所述目的物理出端口發(fā)送所述目標(biāo)報(bào)文,也不會(huì)影響其他報(bào)文從所述第一調(diào)度器的輸出。
【附圖說明】
[0039]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0040]圖1為本發(fā)明實(shí)施例提供的一種報(bào)文轉(zhuǎn)發(fā)方法的方法流程圖;
[0041]圖2為本發(fā)明實(shí)施例提供的一種端口控制器的時(shí)隙鏈表結(jié)構(gòu)示意圖;
[0042]圖3為本發(fā)明實(shí)施例提供的一種報(bào)文入隊(duì)方法的方法流程圖;
[0043]圖4為本發(fā)明實(shí)施例提供的一種報(bào)文輸出方法的方法流程圖;
[0044]圖5為本發(fā)明實(shí)施例提供的一種物理出端口反壓示意圖;
[0045]圖6為本發(fā)明實(shí)施例提供的一種報(bào)文轉(zhuǎn)發(fā)裝置的裝置結(jié)構(gòu)圖;
[0046]圖7為本發(fā)明實(shí)施例提供的一種報(bào)文轉(zhuǎn)發(fā)裝置的裝置結(jié)構(gòu)圖;
[0047]圖8為本發(fā)明實(shí)施例提供的一種端口控制器的裝置結(jié)構(gòu)圖;
[0048]圖9為本發(fā)明實(shí)施例提供的一種端口控制器的裝置結(jié)構(gòu)圖;
[0049]圖10為本發(fā)明實(shí)施例提供的一種第一調(diào)度器的硬件結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0050]為了有效進(jìn)行數(shù)據(jù)傳輸,處于傳輸鏈路上的調(diào)度器需要為傳輸鏈路或者子鏈路/子通道合理的調(diào)度帶寬。現(xiàn)有技術(shù)中,調(diào)度器接收到報(bào)文,將接收到報(bào)文按照一定的規(guī)則組成報(bào)文隊(duì)列,然后依次處理該報(bào)文隊(duì)列中的報(bào)文,其中包括確定報(bào)文合理的出隊(duì)時(shí)間。所述調(diào)度器在沒有獲取對應(yīng)該報(bào)文的帶寬調(diào)度結(jié)果之前,無法確定出該報(bào)文的合理出隊(duì)時(shí)間,所以無法將該報(bào)文向?qū)?yīng)的物理出端口發(fā)出。也就是說,在完成帶寬調(diào)度之前,該報(bào)文一直無法從所在報(bào)文隊(duì)列中出隊(duì)。當(dāng)所述調(diào)度器處于trunk連接模式下時(shí),調(diào)度器的輸出端會(huì)連接多條子鏈路或子端口,所述調(diào)度器組成的報(bào)文隊(duì)列中報(bào)文對應(yīng)的物理出端口可以是不同的。在所述調(diào)度器所組成的報(bào)文隊(duì)列中