[發明專利]報文保序的方法及裝置有效
| 申請號: | 201210578439.3 | 申請日: | 2012-12-27 | 
| 公開(公告)號: | CN103067304A | 公開(公告)日: | 2013-04-24 | 
| 發明(設計)人: | 趙桃李 | 申請(專利權)人: | 華為技術有限公司 | 
| 主分類號: | H04L12/863 | 分類號: | H04L12/863;H04L12/883 | 
| 代理公司: | 北京同立鈞成知識產權代理有限公司 11205 | 代理人: | 譚磊 | 
| 地址: | 518129 廣東*** | 國省代碼: | 廣東;44 | 
| 權利要求書: | 查看更多 | 說明書: | 查看更多 | 
| 摘要: | |||
| 搜索關鍵詞: | 報文 方法 裝置 | ||
技術領域
本發明實施例涉及通信技術,尤其涉及一種報文保序的方法及裝置。
背景技術
隨著多核技術的發展,多核中央處理器(Central?Processing?Unit,簡稱CPU)得到了越來越廣泛的應用,然而,當多核CPU處理及轉發報文時,容易產生報文亂序的現象,例如,三核CPU按照報文1、2、3的順序依次接收到3個報文并分別分發給核C1、C2、C3進行處理,由于報文內容,CPU處理策略以及每個核的負載情況均存在差異,有可能出現報文2和報文3先處理完畢,報文1后處理完畢的情況,此時,若CPU把處理完畢的報文直接發送出去,就出現了發送報文順序為2、3、1的亂序現象。現有網絡中部分網絡設備和終端對組播報文的亂序敏感,亂序的報文會導致網絡設備和終端的工作異常。
目前,對于單播報文,CPU在發送報文之前先將處理后報文的報文包放到報文入發送隊列中,按照進入設備的順序放置,進而保證處理后的報文包在出接口發送的順序跟進入設備的順序一致。
而對于組播報文,實現報文保序的方式為:將同一個組播組的流量按照一定的哈希(Hash)算法分配到固定的核進行處理,其對組播流量的處理性能跟單核設備相當,在對報文進行處理時對每個發送接口拷貝一份進行發送,在組播組較少或者不同組播組間的流量差別大的情況下,也容易造成多個核的負載嚴重不均,無法充分發揮多核設備的處理性能,使得CPU的處理效率無法提高。
發明內容
有鑒于此,本發明實施例提供一種報文保序的方法及裝置,用以解決現有技術中對于組播報文易造成多核負載不均衡,導致CPU的處理效率降低的問題。
第一方面,提供了一種報文保序的方法,包括:
在中央處理器CPU接收報文,并將所述報文逐包分發到所述CPU的兩個以上的核進行處理之后,所述CPU的第N核接收所述CPU分發的包括編號為M的第M個報文包;
所述第N核確定所述第M個報文包為組播報文的報文包之后,處理所述第M個報文包,并將處理后的所述第M個報文包按照所述編號M排列在報文入發送隊列中;
所述第N核確定所述報文入發送隊列中有當前直接發送的報文包,則確定處理后的第M個報文包對應的出接口是否是所述報文對應的所有出接口中的最后一個;
若不是,則所述第N核將所述報文入發送隊列中當前直接發送的報文包發送,并向第P核發送通知消息,所述通知消息用于指示所述第P核處理所述第M個報文包;所述第P核為所述第N核按照預設算法算出的用于向另一個出接口發送報文包的核;以使所述第P核處理所述第N核處理后的第M個報文包,并重復確定所述第P核處理后的報文包對應的出接口是否是所有出接口中最后一個的過程,以及在所述第P核處理后的報文包對應的出接口不是最后一個時,重復向下一個出接口發送報文包的第Q核發送通知消息的過程,直至所述報文對應的所有出接口都依序發送有處理后的報文;
其中,所述N、M、P、Q為大于等于1的自然數。
結合第一方面,在第一種可能的實現方式中,所述第N核確定所述第M個報文包為組播報文的報文包之后,處理第M個報文包,包括:
所述第N核確定所述第M個報文包為組播報文的報文包之后,查找所述第M個報文包對應的所有出接口的信息,將所有出接口的信息記錄到所述第M個報文包中,且取出所有出接口中的第一個出接口,以及刪除所述所有出接口中的第一個出接口;
所述第P核處理所述第N核處理后的第M個報文包,包括:
所述第P核將所述第N核處理后的第M個報文包中的出接口信息中的排在最前的出接口取出,以及在所述出接口信息中刪除第P核所取出的出接口。
結合第一方面及上述可能的實現方式,在第二種可能的實現方式中,所述將處理后的所述第M個報文包按照所述編號M排列在報文入發送隊列中的步驟之后,還包括:
所述第N核確定所述報文入發送隊列中無當前直接發送的報文包,則等待所述報文入發送隊列中排在編號M之前的能夠直接發送的報文包。
結合第一方面,在第三種可能的實現方式中,所述確定處理后的第M個報文包對應的出接口是否是所述報文對應的所有出接口中的最后一個的步驟之后,還包括:
若是,所述第N核將所述報文入發送隊列中當前直接發送的報文包發送,并通知所述第N核所在的CPU回收所述報文占用的內存。
結合第一方面,在第四種可能的實現方式中,所述第N核確定所述第M個報文包為組播報文的報文包,包括:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于華為技術有限公司,未經華為技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210578439.3/2.html,轉載請聲明來源鉆瓜專利網。





