專利名稱:一種發(fā)送/接收數(shù)據(jù)報(bào)文的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明有關(guān)于通信技術(shù)領(lǐng)域,尤其是有關(guān)于進(jìn)行數(shù)據(jù)報(bào)文收發(fā)的網(wǎng)絡(luò)產(chǎn)品之間的
通信技術(shù),具體地講是一種發(fā)送/接收數(shù)據(jù)報(bào)文的方法及裝置。
背景技術(shù):
現(xiàn)有的網(wǎng)絡(luò)通信多是采用套接字?jǐn)?shù)據(jù)報(bào)文來(lái)進(jìn)行。套接字,簡(jiǎn)單的說(shuō)就是通信的 兩方的一種約定,用套接字中的相關(guān)函數(shù)來(lái)完成通信過(guò)程。應(yīng)用層通過(guò)傳輸層進(jìn)行數(shù)據(jù) 通信時(shí),TCP和UDP會(huì)遇到同時(shí)為多個(gè)應(yīng)用程序進(jìn)程提供并發(fā)服務(wù)的問(wèn)題。多個(gè)TCP連接 或多個(gè)應(yīng)用程序進(jìn)程可能需要通過(guò)同一個(gè)TCP協(xié)議端口傳輸數(shù)據(jù)。為了區(qū)別不同的應(yīng)用 程序進(jìn)程和連接,許多計(jì)算機(jī)操作裝置為應(yīng)用程序與TCP/IP協(xié)議交互提供了稱為套接字 (Socket)的接口。 區(qū)分不同應(yīng)用程序進(jìn)程間的網(wǎng)絡(luò)通信和連接,主要有3個(gè)參數(shù)通信的目的IP地
址、使用的傳輸層協(xié)議(TCP或UDP)和使用的端口號(hào)。應(yīng)用層可以和傳輸層通過(guò)套接字接
口 ,區(qū)分來(lái)自不同應(yīng)用程序進(jìn)程或網(wǎng)絡(luò)連接的通信,實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)牟l(fā)服務(wù)。 Socket可以看成在兩個(gè)程序進(jìn)行通訊連接中的一個(gè)端點(diǎn),一個(gè)程序?qū)⒁欢涡畔?br>
入Socket中,該Socket將這段信息發(fā)送給另外一個(gè)Socket中,使這段信息能傳送到其他
程序中。 圖l所示的是現(xiàn)有的異步分布式裝置的通信機(jī)制示意圖,如圖l所示,現(xiàn)有的異步 分布式裝置是利用功能比較獨(dú)立的模塊實(shí)體例如應(yīng)用軟件或協(xié)議棧等組件間異步消息通 信機(jī)制,基于應(yīng)用模塊粒度的Socket業(yè)務(wù)數(shù)據(jù)流控,該應(yīng)用模塊粒度是指以應(yīng)用模塊整體 作為數(shù)據(jù)流控的最小單元對(duì)象,而不能更進(jìn)一步細(xì)化。 在實(shí)現(xiàn)本發(fā)明過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中存在如下問(wèn)題在現(xiàn)有的這種利用 組件間異步消息通信機(jī)制中,對(duì)于一個(gè)Socket模塊,會(huì)有多個(gè)上層應(yīng)用模塊(APP)共享使 用,而每個(gè)應(yīng)用模塊內(nèi)部又常常存在多個(gè)獨(dú)立使用服務(wù)資源的實(shí)例。已有的組件間異步消 息流控機(jī)制只能識(shí)別到組件級(jí)粒度、即流控機(jī)制只能控制到上述組件級(jí)別,當(dāng)Socket數(shù)據(jù) 服務(wù)負(fù)載較重,并且存在突發(fā)震蕩時(shí),因?yàn)榇蟛糠脂F(xiàn)有裝置中的SOCKET服務(wù)都是在內(nèi)核實(shí) 現(xiàn),通過(guò)裝置調(diào)用進(jìn)行收發(fā)報(bào)文,操作裝置不會(huì)對(duì)SOCKET的發(fā)送和接收進(jìn)行特殊調(diào)度,通 常是先來(lái)先得,所以同一個(gè)應(yīng)用模塊內(nèi)部所創(chuàng)建的各個(gè)Socket通信實(shí)例之間會(huì)相互影響, 無(wú)法做到負(fù)載均衡,從而影響到應(yīng)用業(yè)務(wù)的正常運(yùn)行。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例是鑒于上述問(wèn)題而提出,本發(fā)明的實(shí)施例的目的在于,提供一種 發(fā)送/接收數(shù)據(jù)報(bào)文的方法及裝置,以避免同一應(yīng)用模塊內(nèi)部所創(chuàng)建的通信實(shí)例之間的相 互影響。 為了實(shí)現(xiàn)上述目的,本發(fā)明的實(shí)施例提供一種發(fā)送數(shù)據(jù)報(bào)文的方法,該方法包括 以下步驟將每個(gè)模塊間通信實(shí)例映射到各通信通道;為所述每個(gè)模塊間通信實(shí)例發(fā)送報(bào)文令牌請(qǐng)求,以請(qǐng)求報(bào)文令牌;根據(jù)所述報(bào)文令牌請(qǐng)求和每個(gè)模塊間通信實(shí)例要發(fā)送報(bào)文的數(shù)據(jù)量,對(duì)所述每個(gè)模塊間通信實(shí)例中的報(bào)文分配所述報(bào)文令牌;通過(guò)各所述模塊間通信實(shí)例所映射的通信通道發(fā)送對(duì)應(yīng)所述模塊間通信實(shí)例中的被分配所述報(bào)文令牌的報(bào)文。
為了實(shí)現(xiàn)上述目的,本發(fā)明的實(shí)施例還提供一種接收數(shù)據(jù)報(bào)文的方法,所述方法包括將每個(gè)模塊間通信實(shí)例映射到各通信通道;為所述每個(gè)模塊間通信實(shí)例發(fā)送報(bào)文令牌請(qǐng)求,以請(qǐng)求報(bào)文令牌;根據(jù)所述報(bào)文令牌請(qǐng)求和每個(gè)模塊間通信實(shí)例要接收的報(bào)文的數(shù)據(jù)量,對(duì)所述每個(gè)模塊間通信實(shí)例中的報(bào)文分配所述報(bào)文令牌;通過(guò)各所述模塊間通信實(shí)例所映射的通信通道接收對(duì)應(yīng)所述模塊間通信實(shí)例中的被分配所述報(bào)文令牌的報(bào)文。
為了實(shí)現(xiàn)上述目的,本發(fā)明的實(shí)施例又提供一種發(fā)送數(shù)據(jù)報(bào)文的裝置,該裝置包括映射單元,用于將每個(gè)模塊間通信實(shí)例分別映射到一通信通道;令牌請(qǐng)求單元,用于為所述每個(gè)模塊間通信實(shí)例發(fā)送報(bào)文令牌請(qǐng)求,以請(qǐng)求報(bào)文令牌;通道管理單元,用于根據(jù)所述報(bào)文令牌請(qǐng)求和每個(gè)模塊間通信實(shí)例要發(fā)送的報(bào)文的數(shù)據(jù)量,對(duì)所述每個(gè)模塊間通信實(shí)例中的報(bào)文分配所述報(bào)文令牌;發(fā)送單元,用于通過(guò)每個(gè)模塊間通信實(shí)例所映射的通信通道來(lái)發(fā)送對(duì)應(yīng)所述模塊間通信實(shí)例中的被分配所述報(bào)文令牌的報(bào)文。 為了實(shí)現(xiàn)上述目的,本發(fā)明的實(shí)施例另提供一種接收數(shù)據(jù)報(bào)文的裝置,所述裝置包括映射單元,用于將每個(gè)模塊間通信實(shí)例分別映射到一通信通道;令牌請(qǐng)求單元,用于為所述每個(gè)模塊間通信實(shí)例發(fā)送報(bào)文令牌請(qǐng)求,以請(qǐng)求報(bào)文令牌;通道管理單元,用于根據(jù)所述報(bào)文令牌請(qǐng)求和每個(gè)模塊間通信實(shí)例要發(fā)送的報(bào)文的數(shù)據(jù)量,對(duì)所述每個(gè)模塊間通信實(shí)例中的報(bào)文分配所述報(bào)文令牌;接收單元,用于通過(guò)每個(gè)模塊間通信實(shí)例所映射的通信通道來(lái)接收對(duì)應(yīng)所述模塊間通信實(shí)例中的被分配所述報(bào)文令牌的報(bào)文。 本發(fā)明實(shí)施例的有益效果在于,因?yàn)椴捎昧伺浒l(fā)報(bào)文令牌并以模塊間通信實(shí)例為粒度進(jìn)行報(bào)文收發(fā)的控制,所以克服了基于組件級(jí)粒度調(diào)度時(shí)的無(wú)法感知擁塞的問(wèn)題,從而均衡了各通信通道的負(fù)載,最大限度的節(jié)省了不必要的通信開銷。
此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明實(shí)施例的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,并不構(gòu)成對(duì)本發(fā)明的限定。在附圖中 圖1所示的是現(xiàn)有的異步分布式裝置的通信機(jī)制示意圖; 圖2所示的是本發(fā)明實(shí)施例1的發(fā)送數(shù)據(jù)報(bào)文的方法的流程圖; 圖3所示的是本發(fā)明實(shí)施例2的調(diào)度通信通道的流程圖; 圖4所示的是本發(fā)明實(shí)施例3的發(fā)送數(shù)據(jù)報(bào)文的方法的流程圖; 圖5所示的是本發(fā)明實(shí)施例3的以通信實(shí)例級(jí)別的粒度發(fā)送數(shù)據(jù)報(bào)文的示意圖; 圖6所示的是本發(fā)明實(shí)施例4的發(fā)送數(shù)據(jù)報(bào)文的裝置的結(jié)構(gòu)框圖; 圖7所示的是本發(fā)明實(shí)施例5的發(fā)送數(shù)據(jù)報(bào)文的裝置的結(jié)構(gòu)框圖; 圖8所示的是本發(fā)明實(shí)施例5的發(fā)送數(shù)據(jù)報(bào)文的裝置中的信令圖。
具體實(shí)施例方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合實(shí)施方式和附圖,對(duì)本發(fā)明做進(jìn)一步詳細(xì)說(shuō)明。在此,本發(fā)明的示意性實(shí)施方式及其說(shuō)明用于解釋本發(fā)明,但并不作為對(duì)本發(fā)明的限定。
實(shí)施例1 圖2所示的是本發(fā)明的實(shí)施例1的發(fā)送數(shù)據(jù)報(bào)文的方法的流程圖、圖3所示的是本發(fā)明的實(shí)施例1的發(fā)送數(shù)據(jù)報(bào)文的信令圖。如圖2、3所示,本發(fā)明的實(shí)施例1的進(jìn)發(fā)送數(shù)據(jù)報(bào)文的方法包括 S201 :在發(fā)送端將每個(gè)模塊間通信實(shí)例映射到通信通道,其中該通信通道是作為發(fā)送端的應(yīng)用模塊與作為接收端的應(yīng)用模塊之間在進(jìn)行通信之前已動(dòng)態(tài)協(xié)商建立的通信通道,可以使用一個(gè)ID(IDentity)或名字進(jìn)行標(biāo)識(shí),上述模塊間通信實(shí)例與所述通信通道一一對(duì)應(yīng)且在完成通信后由用戶確認(rèn)后方可釋放。 S202 :為所述每個(gè)模塊間通信實(shí)例發(fā)送報(bào)文令牌請(qǐng)求,以請(qǐng)求報(bào)文令牌,在本實(shí)施
例1中,該報(bào)文令牌是用來(lái)控制一條通信通道數(shù)據(jù)流量的個(gè)數(shù)或大小的標(biāo)識(shí),例如通信通
道建立后,發(fā)送端和接收端協(xié)商所述通信通道中的報(bào)文令牌的個(gè)數(shù),按照接收端當(dāng)前的能
力(即可以同時(shí)進(jìn)行處理的報(bào)文的個(gè)數(shù)或大小,或者可以緩存的報(bào)文的個(gè)數(shù)或大小)向每
個(gè)通信通道分配報(bào)文令牌,具體數(shù)目由接收端的當(dāng)前負(fù)載和能力決定,例如接收端建立多
個(gè)模塊間通信實(shí)例時(shí)為每個(gè)模塊間通信實(shí)例請(qǐng)求到的報(bào)文令牌的數(shù)量就少。 S203:根據(jù)所述報(bào)文令牌請(qǐng)求和每個(gè)模塊間通信實(shí)例中要發(fā)送的報(bào)文的數(shù)據(jù)量、
即報(bào)文的個(gè)數(shù)或報(bào)文的比特(bit)數(shù),對(duì)所述每個(gè)模塊間通信實(shí)例中的報(bào)文分配所述報(bào)文
令牌,例如,設(shè)每個(gè)模塊間通信實(shí)例被分配了 10個(gè)報(bào)文令牌,則當(dāng)模塊間通信實(shí)例中的待
發(fā)送報(bào)文個(gè)數(shù)超過(guò)10個(gè)時(shí)前10個(gè)才能分配到報(bào)文令牌,而報(bào)文個(gè)數(shù)低于10個(gè)時(shí)該模塊間
通信實(shí)例中的所述報(bào)文都可以被分配到報(bào)文令牌,并且在接收端接收并處理完發(fā)送端發(fā)送
的報(bào)文并返還該報(bào)文的報(bào)文令牌后才向發(fā)送端的每個(gè)模塊間通信實(shí)例中剩余尚未被分配
到報(bào)文令牌的報(bào)文繼續(xù)分配由所述接收端返還給發(fā)送端的報(bào)文令牌。 S204 :通過(guò)各所述模塊間通信實(shí)例所映射的通信通道在發(fā)送端分別向接收端發(fā)送對(duì)應(yīng)所述模塊間通信實(shí)例中的被分配到所述報(bào)文令牌的報(bào)文。 即在本發(fā)明實(shí)施例1中,在發(fā)送端根據(jù)報(bào)文令牌來(lái)發(fā)送報(bào)文,每發(fā)送一個(gè)報(bào)文,都需要首先獲取一個(gè)報(bào)文令牌,該獲取令牌的方式可以分為按照個(gè)數(shù)和按照比特?cái)?shù)獲取的兩種方式,即按照個(gè)數(shù)是指一個(gè)報(bào)文獲取一個(gè)令牌,而按照比特?cái)?shù)是指根據(jù)報(bào)文的大小分配報(bào)文令牌,例如10k的報(bào)文就分配一個(gè)表示報(bào)文的大小為10k的報(bào)文令牌。當(dāng)為模塊間通信實(shí)例中的報(bào)文分配了報(bào)文令牌后,就發(fā)送已分配到報(bào)文令牌的報(bào)文,而在接收端接收該報(bào)文并完成接收處理以后將該報(bào)文分配到的報(bào)文令牌返還給發(fā)送端的相應(yīng)的模塊間通信實(shí)例或重新分配給在發(fā)送端的相應(yīng)模塊間通信實(shí)例中尚未被分配到報(bào)文令牌的報(bào)文,而當(dāng)預(yù)定數(shù)量的所有報(bào)文令牌被分配完且沒(méi)有回收一個(gè)報(bào)文令牌時(shí),就不能再繼續(xù)分配報(bào)文令牌。 此時(shí),所述各模塊間通信實(shí)例中未分配到報(bào)文令牌的報(bào)文就繼續(xù)等待,直到所述模塊間通信實(shí)例中已被分配到報(bào)文令牌的報(bào)文發(fā)送出去并由接收端完成接收處理后(例如,接收端首先將接收到的報(bào)文存儲(chǔ)在緩存當(dāng)中,并且逐個(gè)進(jìn)行接收處理)向相應(yīng)的模塊間通信實(shí)例返還報(bào)文令牌后,再被分配該返還后的報(bào)文令牌時(shí)才可以進(jìn)行報(bào)文的發(fā)送。
因此,如果在接收端不能及時(shí)接收并處理被分配到報(bào)文令牌的報(bào)文,則報(bào)文令牌將被耗盡,在發(fā)送端將無(wú)法繼續(xù)發(fā)送對(duì)應(yīng)模塊間通信實(shí)例中剩余未被分配到報(bào)文令牌的報(bào)文,并且在發(fā)送端申請(qǐng)報(bào)文令牌會(huì)失敗,后續(xù)在發(fā)送端也無(wú)法繼續(xù)向接收端發(fā)送更多報(bào)文,從而達(dá)到流量控制的效果。 另外,本領(lǐng)域技術(shù)人員應(yīng)該很容易想到,在上述實(shí)施例1中雖然以在發(fā)送端發(fā)送報(bào)文為例進(jìn)行了說(shuō)明,但完全可以換個(gè)角度應(yīng)用到在接收端接收?qǐng)?bào)文的情況,即在接收端給所要接收的報(bào)文分配報(bào)文令牌,并依次接收被分配報(bào)文令牌的報(bào)文。 在本發(fā)明實(shí)施例1中,由于是以根據(jù)調(diào)度通信通道來(lái)發(fā)送報(bào)文的方式取代以應(yīng)用模塊作為數(shù)據(jù)流控的最小單位來(lái)發(fā)送報(bào)文的方式,因此能更精細(xì)地控制發(fā)送報(bào)文的過(guò)程,從而能使各通信實(shí)例之間不會(huì)相互影響。
實(shí)施例2 本發(fā)明實(shí)施例2與上述實(shí)施例1的區(qū)別在于,在上述步驟S204中,根據(jù)各模塊間通信實(shí)例所映射的通信通道中的報(bào)文令牌分配情況來(lái)調(diào)度各模塊間通信實(shí)例所映射的通信通道,以使各個(gè)通信實(shí)例的負(fù)載均衡。 S卩、在本發(fā)明實(shí)施例2中,首先判斷各模塊間通信實(shí)例所映射的通信通道中已被分配的報(bào)文令牌的個(gè)數(shù),當(dāng)判斷出各通信通道中的被分配的報(bào)文令牌的個(gè)數(shù)差異比較大時(shí),即某些通信通道中的報(bào)文令牌已分配完,而另一些通信通道中的未被分配的報(bào)文令牌還剩很多時(shí),就會(huì)調(diào)度通信通道,以使各個(gè)通信實(shí)例的負(fù)載均衡、即優(yōu)先發(fā)送并處理已分配完報(bào)文令牌的通信通道的報(bào)文。 圖3所示的是本發(fā)明實(shí)施例2的調(diào)度通信通道的流程圖。如圖3所示,本發(fā)明實(shí)施例2的調(diào)度通信通道的步驟包括 S301 :判斷每個(gè)通信通道中的報(bào)文令牌的分配情況,即判斷每個(gè)通信通道中報(bào)文令牌已分配多少,例如已分配的個(gè)數(shù)或已分配的比特?cái)?shù); S302 :根據(jù)所述每個(gè)通信通道中的報(bào)文令牌的分配情況調(diào)度所述各通信通道,以使各個(gè)通信實(shí)例的負(fù)載均衡、即優(yōu)先發(fā)送并處理已分配完報(bào)文令牌的通信通道的報(bào)文。
在本發(fā)明實(shí)施例2中,假設(shè)存在10個(gè)模塊間通信實(shí)例映射10個(gè)通信通道,而每個(gè)通信通道可被分配的報(bào)文令牌個(gè)數(shù)為100個(gè)。 當(dāng)判斷出其中一個(gè)通信通道1中已被分配的報(bào)文令牌個(gè)數(shù)為20個(gè),而其他通信通道2 通信通道10中已被分配的報(bào)文令牌個(gè)數(shù)為100個(gè)、即報(bào)文令牌分配完時(shí),則說(shuō)明通信通道1的模塊間通信實(shí)例發(fā)送報(bào)文并處理完成的速度要明顯高于其他通信通道2 通信通道IO,顯然這些通信通道1 通信通道10之間的負(fù)載是不均衡的,此時(shí)就調(diào)度各個(gè)通信通道使這些通信通道間的負(fù)載均衡,即通過(guò)優(yōu)先調(diào)度上述通信通道2 通信通道10發(fā)送報(bào)文并使接收端處理。 在本發(fā)明實(shí)施例2中,根據(jù)報(bào)文令牌的分配情況來(lái)調(diào)度通信通道也可以是根據(jù)報(bào)文令牌被分配的比特?cái)?shù)來(lái)進(jìn)行。即根據(jù)所要發(fā)送的報(bào)文的數(shù)據(jù)大小來(lái)分配報(bào)文令牌,例如總的報(bào)文令牌的比特?cái)?shù)為IOM,所要發(fā)送的報(bào)文的大小為10k,則給該報(bào)文分配的報(bào)文令牌數(shù)量為10k,剩余的報(bào)文令牌為10230k。 同理,判斷各通信通道中報(bào)文令牌的分配情況后,當(dāng)例如發(fā)現(xiàn)通信通道1中剩余的報(bào)文令牌數(shù)量為10230k,而其他通信通道2 通信通道10中剩余的報(bào)文令牌數(shù)量為0k、即全部分配完畢時(shí),就會(huì)調(diào)度各個(gè)通信通道使這些通信通道間的負(fù)載均衡,即通過(guò)優(yōu)先調(diào)度上述通信通道2 通信通道10使該信通道2 通信通道10中報(bào)文優(yōu)先被發(fā)送并使接收端處理。 在上述本發(fā)明實(shí)施例2中,由于是以模塊間通信實(shí)例為粒度集中進(jìn)行均衡調(diào)度,且通過(guò)全局配置各個(gè)通信通道的最大令牌個(gè)數(shù)并調(diào)度,因此可以控制每個(gè)模塊間通信實(shí)例發(fā)送報(bào)文的負(fù)載,即可以使各個(gè)模塊間通信實(shí)例的負(fù)載均衡。
實(shí)施例3 圖4所示的是本發(fā)明實(shí)施例3的發(fā)送數(shù)據(jù)報(bào)文的方法的流程圖。本實(shí)施例3與上述實(shí)施例1的區(qū)別在于,可以對(duì)每個(gè)模塊間通信實(shí)例設(shè)置優(yōu)先級(jí)。在本發(fā)明實(shí)施例3中,以套接字通信實(shí)例作為模塊間通信實(shí)例來(lái)進(jìn)行說(shuō)明,然而本發(fā)明實(shí)施例并不限定于此,模塊間通信實(shí)例還可以包括進(jìn)程通信實(shí)例等。 如圖4所示,本發(fā)明的實(shí)施例3的發(fā)送數(shù)據(jù)報(bào)文的方法包括
S401 :在發(fā)送端對(duì)每個(gè)套接字通信實(shí)例設(shè)置優(yōu)先級(jí); S402:根據(jù)所設(shè)置的優(yōu)先級(jí)在發(fā)送端分別將每個(gè)套接字通信實(shí)例映射到相應(yīng)優(yōu)先級(jí)的通信通道; S403 :設(shè)定報(bào)文令牌的數(shù)量為一預(yù)定值,其中在本發(fā)明實(shí)施例2中對(duì)每個(gè)套接字
通信實(shí)例所映射的通信通道進(jìn)行調(diào)度時(shí)所能發(fā)送的報(bào)文量受所述報(bào)文令牌的數(shù)量的控制,
即當(dāng)報(bào)文令牌分配完后,就不能再發(fā)送報(bào)文,只有當(dāng)分配報(bào)文令牌后才能發(fā)送報(bào)文; S404 :為所述每個(gè)套接字通信實(shí)例發(fā)送報(bào)文令牌請(qǐng)求,以請(qǐng)求報(bào)文令牌; S405:根據(jù)所述報(bào)文令牌請(qǐng)求和所述報(bào)文令牌的數(shù)量以及每個(gè)套接字通信實(shí)例中
要發(fā)送的報(bào)文的數(shù)據(jù)量,對(duì)所述每個(gè)套接字通信實(shí)例分配所述報(bào)文令牌; S406 :獲取所述每個(gè)套接字通信實(shí)例的流控信息,即各套接字通信實(shí)例的負(fù)載情
況(如CPU使用率和內(nèi)存占用),在本發(fā)明實(shí)施例3中可以通過(guò)對(duì)應(yīng)報(bào)文令牌的分配情況
來(lái)判斷各套接字通信實(shí)例的負(fù)載情況,例如當(dāng)報(bào)文令牌分配完則說(shuō)明流控反壓,即負(fù)載過(guò)
重; S407 :根據(jù)各套接字通信實(shí)例的流控信息判斷是否流控反壓(即根據(jù)上述流控信息判斷所述報(bào)文令牌是否分配完,如果所述報(bào)文令牌分配完就表明流控反壓),如果判斷結(jié)果為是,則執(zhí)行步驟S408,如果判斷結(jié)果為否,則執(zhí)行步驟S409 ; S408:停止向所有套接字通信實(shí)例中的報(bào)文分配報(bào)文令牌、即由于流控反壓所以沒(méi)有多余的報(bào)文令牌可分配; S409 :繼續(xù)向各套接字通信實(shí)例中的報(bào)文分配報(bào)文令牌,并使套接字通信實(shí)例按照在步驟S401中設(shè)置的優(yōu)先級(jí)通過(guò)每個(gè)模塊間通信實(shí)例所映射的通信通道來(lái)發(fā)送對(duì)應(yīng)所述模塊間通信實(shí)例中的被分配了報(bào)文令牌的報(bào)文,即優(yōu)先級(jí)高的通信通道中的報(bào)文優(yōu)先被發(fā)送; S410:以預(yù)定的時(shí)間周期對(duì)所述報(bào)文令牌的數(shù)量進(jìn)行更新,即接收端可以根據(jù)自
身能處理報(bào)文的能力或能同時(shí)緩存報(bào)文的個(gè)數(shù)與通道管理單元進(jìn)行協(xié)商,以確定給每個(gè)套
接字通信實(shí)例分配的報(bào)文令牌的數(shù)量,例如當(dāng)接收端和發(fā)送端之間建立的通信通道數(shù)少的
時(shí)候,可以相對(duì)的增加每個(gè)套接字通信實(shí)例中分配的報(bào)文令牌的總數(shù),因此在接收端可以
根據(jù)自身的需求以預(yù)定的時(shí)間周期與通道管理單元進(jìn)行協(xié)商來(lái)更新所述報(bào)文令牌的數(shù)量。 其中,在上述實(shí)施例中步驟S410不是必須的步驟,可以根據(jù)具體情況可選。 在本發(fā)明實(shí)施例3中,給每個(gè)模塊間通信實(shí)例中的報(bào)文分配的報(bào)文令牌的總數(shù)是一預(yù)定值,即根據(jù)接收端的接收能力和建立的通信通道的個(gè)數(shù)來(lái)決定,當(dāng)所建立的通信通
道多的時(shí)候相應(yīng)的每個(gè)模塊間通信實(shí)例分配到的報(bào)文令牌的總數(shù)就相對(duì)的少。 圖5所示的是本發(fā)明實(shí)施例3的以通信實(shí)例級(jí)別的粒度發(fā)送數(shù)據(jù)報(bào)文的示意圖。
如圖5所示,不是調(diào)度各個(gè)應(yīng)用模塊(APP1 APP4)來(lái)進(jìn)行報(bào)文的傳送,而是通過(guò)調(diào)度各個(gè)
通信通道,來(lái)發(fā)送套接字通信實(shí)例1 套接字通信實(shí)例8 (即圖5中的Sockldl Sockld8)
中的報(bào)文。 在本發(fā)明實(shí)施例3中,通過(guò)細(xì)小粒度(即通信實(shí)例級(jí)別的粒度)的反壓緩解業(yè)務(wù)負(fù)載的震蕩的影響。另外對(duì)于每個(gè)套接字通信實(shí)例所使用的通信通道,采用令牌流控,每個(gè)套接字通信實(shí)例調(diào)度時(shí)所能發(fā)送或接收的報(bào)文量受令牌數(shù)量控制,并且一定的時(shí)間周期后對(duì)令牌進(jìn)行數(shù)量更新,保證在一定的單位時(shí)間內(nèi)所有需要進(jìn)行數(shù)據(jù)收發(fā)的Socket通信實(shí)例都可以得到及時(shí)處理,避免被個(gè)別的大流量實(shí)例所影響。 同時(shí),在本發(fā)明實(shí)施例3中,由于是在Socket通信實(shí)例發(fā)送/接收服務(wù)請(qǐng)求前,通過(guò)分配報(bào)文令牌來(lái)向用戶提供感知通信通道是否擁塞、即當(dāng)不再為Socket通信實(shí)例分配報(bào)文令牌時(shí)確定為通信通道擁塞,避免用戶提前申請(qǐng)并緩存不必要的資源(無(wú)需提前申請(qǐng)要發(fā)送的Socket數(shù)據(jù)報(bào)文的內(nèi)存)。 并且,由于本發(fā)明實(shí)施例3支持多個(gè)優(yōu)先級(jí)設(shè)置,從而方便用戶對(duì)于調(diào)度效果的調(diào)節(jié)和控制。例如,對(duì)于0SPF用來(lái)接收ke印alive報(bào)文的套接字通信實(shí)例,可以綁定到一個(gè)優(yōu)先級(jí)較高的通信通道上,避免高負(fù)載時(shí)發(fā)生不必要的路由震蕩。
實(shí)施例4 圖6所示的是本發(fā)明實(shí)施例4的發(fā)送數(shù)據(jù)報(bào)文的裝置的結(jié)構(gòu)框圖。在本發(fā)明實(shí)施例4中,以套接字通信實(shí)例作為模塊間通信實(shí)例來(lái)進(jìn)行說(shuō)明,然而本發(fā)明實(shí)施例并不限定于此,模塊間通信實(shí)例還可以包括進(jìn)程通信實(shí)例等。 另外,在本發(fā)明實(shí)施例4中該發(fā)送數(shù)據(jù)報(bào)文的裝置可以是網(wǎng)關(guān)、核心路由器等。本發(fā)明實(shí)施例4中,發(fā)送數(shù)據(jù)報(bào)文的過(guò)程是發(fā)生在如網(wǎng)關(guān)、核心路由器等裝置中的各應(yīng)用模塊之間。 如圖6所示,本發(fā)明實(shí)施例4的發(fā)送數(shù)據(jù)報(bào)文的裝置包括映射單元601,用于在發(fā)送端上將每個(gè)套接字通信實(shí)例分別映射到一通信通道;令牌請(qǐng)求單元602,用于為所述每個(gè)套接字通信實(shí)例發(fā)送報(bào)文令牌請(qǐng)求,以請(qǐng)求報(bào)文令牌;通道管理單元603,用于根據(jù)所述報(bào)文令牌請(qǐng)求和每個(gè)套接字通信實(shí)例要發(fā)送的報(bào)文的數(shù)據(jù)量,對(duì)所述每個(gè)套接字通信實(shí)例中的報(bào)文分配所述報(bào)文令牌;發(fā)送單元604,用于通過(guò)每個(gè)套接字通信實(shí)例所映射的通信通道在發(fā)送端分別向接收端發(fā)送對(duì)應(yīng)所述模塊間通信實(shí)例中的被分配所述報(bào)文令牌的報(bào)文。 在本發(fā)明的實(shí)施例4中是采用基于套接字通信實(shí)例進(jìn)行調(diào)度的方式來(lái)取代基于組件進(jìn)行調(diào)度的方式。其通信雙方可以采用一套支持均衡調(diào)度的(均衡調(diào)度就是指接收多個(gè)發(fā)送端發(fā)來(lái)的數(shù)據(jù)時(shí),可以均勻處理每個(gè)發(fā)送端發(fā)來(lái)的數(shù)據(jù),沒(méi)有某個(gè)發(fā)送端占用了所有通信資源的問(wèn)題)通信接口,該通信接口包括兩個(gè)部分1、發(fā)送接口,用于發(fā)送數(shù)據(jù)前申請(qǐng)令牌和報(bào)文內(nèi)存,并成功后發(fā)送;2、接收接口,用于向通信模塊注冊(cè)回調(diào)函數(shù),當(dāng)有報(bào)文需要接收時(shí),該函數(shù)得到調(diào)用。 本發(fā)明實(shí)施例4中,發(fā)送單元604根據(jù)報(bào)文令牌來(lái)發(fā)送報(bào)文,發(fā)送單元604每發(fā)送一個(gè)報(bào)文,都需要由令牌請(qǐng)求單元602獲取一個(gè)報(bào)文令牌,該獲取令牌的方式可以分為兩種,按照個(gè)數(shù)和按照比特?cái)?shù)。通道管理單元603向發(fā)送端的套接字通信實(shí)例分配完報(bào)文令牌后,每完成一個(gè)通信實(shí)例中的報(bào)文發(fā)送并確認(rèn)接收端處理完成后就歸還一個(gè)報(bào)文令牌,而當(dāng)通道管理單元603把預(yù)訂數(shù)量的所有報(bào)文令牌分配完并沒(méi)有回收一個(gè)報(bào)文令牌時(shí),就不能再繼續(xù)分配報(bào)文令牌。 此時(shí)未分配到報(bào)文令牌的通信實(shí)例中的報(bào)文就繼續(xù)等待,等之前的通信實(shí)例中的報(bào)文發(fā)送并完成處理后向通道管理單元603返還報(bào)文令牌后,再被分配該返還后的報(bào)文令牌時(shí)才可以進(jìn)行報(bào)文的發(fā)送。 因此,如果在接收端不能及時(shí)接收并處理被分配到報(bào)文令牌的報(bào)文,則報(bào)文令牌將被耗盡,在發(fā)送端將無(wú)法繼續(xù)發(fā)送對(duì)應(yīng)套接字通信實(shí)例中剩余未被分配到報(bào)文令牌的報(bào)文,并且在發(fā)送端申請(qǐng)報(bào)文令牌會(huì)失敗,后續(xù)在發(fā)送端也無(wú)法繼續(xù)向接收端發(fā)送更多報(bào)文,從而達(dá)到流量控制的效果。 另外,本領(lǐng)域技術(shù)人員應(yīng)該很容易想到,在上述實(shí)施例4中雖然以在發(fā)送端發(fā)送報(bào)文為例進(jìn)行了說(shuō)明,但完全可以換個(gè)角度應(yīng)用到在接收端接收?qǐng)?bào)文的情況,即在接收端給所要接收的報(bào)文分配報(bào)文令牌,并依次接收被分配報(bào)文令牌的報(bào)文。 例如,本發(fā)明實(shí)施例4的接收數(shù)據(jù)報(bào)文的裝置,包括映射單元,用于在接收端上分別將每個(gè)套接字通信實(shí)例映射到一通信通道;令牌請(qǐng)求單元,用于為所述每個(gè)套接字通
信實(shí)例發(fā)送報(bào)文令牌請(qǐng)求,以請(qǐng)求報(bào)文令牌;通道管理單元,用于根據(jù)所述報(bào)文令牌請(qǐng)求和
每個(gè)套接字通信實(shí)例要接收的報(bào)文的數(shù)據(jù)量,對(duì)所述每個(gè)套接字通信實(shí)例中的報(bào)文分配所
述報(bào)文令牌;接收單元,用于通過(guò)每個(gè)套接字通信實(shí)例所映射的通信通道在接收端接收發(fā)
送端發(fā)來(lái)的對(duì)應(yīng)所述模塊間通信實(shí)例中的被分配所述報(bào)文令牌的報(bào)文。 在本發(fā)明實(shí)施例4中,由于是以根據(jù)調(diào)度通信通道來(lái)發(fā)送/接收?qǐng)?bào)文的方式取代
以應(yīng)用模塊作為數(shù)據(jù)流控的最小單位來(lái)發(fā)送/接收?qǐng)?bào)文的方式,因此能更細(xì)地控制報(bào)文的
發(fā)送/接收過(guò)程,從而能使各通信實(shí)例之間不會(huì)相互影響。 實(shí)施例5 圖7所示的是本發(fā)明實(shí)施例5的發(fā)送數(shù)據(jù)報(bào)文的裝置的結(jié)構(gòu)框圖。在本發(fā)明實(shí)施例5中該發(fā)送數(shù)據(jù)報(bào)文的裝置可以是網(wǎng)關(guān)、核心路由器等。本發(fā)明實(shí)施例4中,發(fā)送數(shù)據(jù)報(bào)文的過(guò)程是發(fā)生在如網(wǎng)關(guān)、核心路由器等裝置中的各應(yīng)用模塊之間。 如圖7所示,本發(fā)明實(shí)施例5的發(fā)送數(shù)據(jù)報(bào)文的裝置包括優(yōu)先級(jí)設(shè)置單元701,用于在發(fā)送端對(duì)每個(gè)模塊間通信實(shí)例設(shè)置優(yōu)先級(jí);映射單元702,用于根據(jù)所設(shè)置的優(yōu)先級(jí)在發(fā)送端分別將每個(gè)模塊間通信實(shí)例映射到相應(yīng)優(yōu)先級(jí)的通信通道;令牌請(qǐng)求單元704,用于為所述每個(gè)模塊間通信實(shí)例發(fā)送報(bào)文令牌請(qǐng)求,以請(qǐng)求報(bào)文令牌;令牌數(shù)量設(shè)定單元703,用于設(shè)定所述報(bào)文令牌的數(shù)量,使該數(shù)量為一預(yù)定值;通道管理單元705,用于根據(jù)所述報(bào)文令牌請(qǐng)求和所述報(bào)文令牌的數(shù)量以及每個(gè)要發(fā)送的模塊間通信實(shí)例的報(bào)文的數(shù)據(jù)量,對(duì)所述每個(gè)模塊間通信實(shí)例中的報(bào)文分配所述報(bào)文令牌;發(fā)送單元706,用于根據(jù)所設(shè)置的優(yōu)先級(jí),通過(guò)每個(gè)模塊間通信實(shí)例所映射的通信通道在發(fā)送端分別向接收端發(fā)送對(duì)應(yīng)所述模塊間通信實(shí)例中的被分配所述報(bào)文令牌的報(bào)文;更新單元708,用于以預(yù)定的時(shí)間周期對(duì)所述報(bào)文令牌的數(shù)量進(jìn)行更新。 在本發(fā)明實(shí)施例5中,所 發(fā)送單元706還包括判斷單元707,用于判斷所述各模塊間通信實(shí)例所映射的通信通道中的報(bào)文令牌分配情況,所述通道管理單元705還用于根據(jù)所述報(bào)文令牌分配情況調(diào)度所述各模塊間通信實(shí)例所映射的通信通道,以使各個(gè)通信實(shí)例的負(fù)載均衡。 在本發(fā)明實(shí)施例5中,所述模塊間通信實(shí)例可以是套接字通信實(shí)例,也可以是進(jìn)程通信實(shí)例或其他通信實(shí)例。 在本發(fā)明實(shí)施例5中,所述判斷單元707判斷各模塊間通信實(shí)例所映射的通信通道中已被分配的報(bào)文令牌的個(gè)數(shù),當(dāng)判斷出各通信通道的被分配的報(bào)文令牌的個(gè)數(shù)差異比較大時(shí),即某些通信通道的報(bào)文令牌已分配完,而另一些通信通道的未被分配的報(bào)文令牌還剩很多時(shí),所述通道管理單元就會(huì)對(duì)各模塊間通信實(shí)例所映射的通信通道進(jìn)行調(diào)度,以使各個(gè)通信實(shí)例的負(fù)載均衡、即優(yōu)先發(fā)送并處理已被分配完報(bào)文令牌的模塊間通信實(shí)例中的報(bào)文。 并且本發(fā)明實(shí)施例5與上述實(shí)施例2同樣,令牌數(shù)量設(shè)定單元為各通信通道所設(shè)定的報(bào)文令牌的數(shù)量可以是個(gè)數(shù)也可以是比特?cái)?shù)。 另外,本領(lǐng)域技術(shù)人員應(yīng)該很容易想到,在上述實(shí)施例5中雖然以在發(fā)送端發(fā)送報(bào)文為例進(jìn)行了說(shuō)明,但完全可以換個(gè)角度應(yīng)用到在接收端接收?qǐng)?bào)文的情況,即在接收端給所要接收的報(bào)文分配報(bào)文令牌,并依次接收被分配報(bào)文令牌的報(bào)文。 例如,本發(fā)明實(shí)施例5的接收數(shù)據(jù)報(bào)文的裝置,包括優(yōu)先級(jí)設(shè)置單元,用于在接
收端對(duì)每個(gè)模塊間通信實(shí)例設(shè)置優(yōu)先級(jí);映射單元,用于根據(jù)所設(shè)置的優(yōu)先級(jí)在接收端將
每個(gè)模塊間通信實(shí)例映射到相應(yīng)優(yōu)先級(jí)的通信通道;令牌請(qǐng)求單元,用于為所述每個(gè)模塊
間通信實(shí)例發(fā)送報(bào)文令牌請(qǐng)求,以請(qǐng)求報(bào)文令牌;令牌數(shù)量設(shè)定單元,用于設(shè)定所述報(bào)文令
牌的數(shù)量,使該數(shù)量為一預(yù)定值;通道管理單元,用于根據(jù)所述報(bào)文令牌請(qǐng)求和所述報(bào)文令
牌的數(shù)量以及每個(gè)模塊間通信實(shí)例要接收的報(bào)文的數(shù)據(jù)量,對(duì)所述每個(gè)模塊間通信實(shí)例中
的報(bào)文分配所述報(bào)文令牌;接收單元,用于根據(jù)所述優(yōu)先級(jí),通過(guò)每個(gè)模塊間通信實(shí)例所映
射的通信通道在接收端接收發(fā)送端發(fā)來(lái)的對(duì)應(yīng)所述模塊間通信實(shí)例中的被分配所述報(bào)文
令牌的報(bào)文;更新單元,用于以預(yù)定的時(shí)間周期對(duì)所述報(bào)文令牌的數(shù)量進(jìn)行更新。 在本發(fā)明實(shí)施例5的接收數(shù)據(jù)報(bào)文的裝置中,所述接收單元還包括判斷單元,用
于判斷所述各模塊間通信實(shí)例所映射的通信通道中的報(bào)文令牌分配情況,所述通道管理單
元還用于根據(jù)所述報(bào)文令牌分配情況調(diào)度所述各模塊間通信實(shí)例所映射的通信通道,以使
各個(gè)通信實(shí)例的負(fù)載均衡。 圖8所示的是本發(fā)明實(shí)施例5的發(fā)送數(shù)據(jù)報(bào)文的裝置中的信令圖。如圖8所示,在本發(fā)明實(shí)施例5的發(fā)送數(shù)據(jù)報(bào)文的裝置的使用過(guò)程中,發(fā)送方向接收方請(qǐng)求報(bào)文令牌,且只有當(dāng)獲得報(bào)文令牌后才能申請(qǐng)報(bào)文內(nèi)存,并封裝報(bào)文從而發(fā)送,而當(dāng)沒(méi)有獲得報(bào)文令牌時(shí)則判斷為流控反壓,等反壓解除后才能繼續(xù)發(fā)報(bào)文,節(jié)省了發(fā)送方的資源,發(fā)送方能夠獲取反壓解除通知,無(wú)需定時(shí)重試發(fā)送報(bào)文。 在本發(fā)明實(shí)施例5中,即使在同一個(gè)Socket模塊內(nèi)部套接字通信實(shí)例規(guī)模較大(如存在8k個(gè)套接字通信實(shí)例)時(shí),也能很好的保證數(shù)據(jù)流量較小但重要性高的套接字通信實(shí)例(如用于發(fā)送協(xié)議心跳報(bào)文)及時(shí)得到調(diào)度,保證上層路由協(xié)議應(yīng)用的穩(wěn)定性。
并且,避免多個(gè)應(yīng)用模塊向同一 Socket模塊請(qǐng)求業(yè)務(wù)時(shí)的出現(xiàn)的互相干擾和阻塞影響;避免同一應(yīng)用模塊內(nèi)部各個(gè)Socket通信實(shí)例之間的相互阻塞。
12
同時(shí)通過(guò)優(yōu)先級(jí)可設(shè)置,使不同Socket通信實(shí)例根據(jù)優(yōu)先級(jí)進(jìn)行通信調(diào)度。
另外,在上述本發(fā)明實(shí)施例5中,由于是以模塊間通信實(shí)例為粒度集中進(jìn)行均衡 調(diào)度,且通過(guò)全局配置各個(gè)通信通道的最大報(bào)文令牌的個(gè)數(shù)或比特?cái)?shù)并調(diào)度,因此可以控 制每個(gè)模塊間通信實(shí)例發(fā)送報(bào)文的負(fù)載,即可以使各個(gè)模塊間通信實(shí)例的負(fù)載均衡。
另外在上述實(shí)施例中,對(duì)于接收端而言,同理可以根據(jù)所要接收的報(bào)文的個(gè)數(shù)或 報(bào)文的比特?cái)?shù)分配報(bào)文令牌,且在接收端只接收分配了報(bào)文令牌的報(bào)文。本發(fā)明實(shí)施例的 有益效果在于,因?yàn)椴捎昧伺浒l(fā)報(bào)文令牌并根據(jù)調(diào)度通信通道的方法,所以克服了基于組 件調(diào)度時(shí)的無(wú)法感知擁塞的問(wèn)題,從而均衡了各通信通道的負(fù)載,最大限度的節(jié)省了不必 要的通信開銷。 以上所述的具體實(shí)施方式
,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步 詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實(shí)施方式
而已,并不用于限定本發(fā)明 的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含 在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
一種發(fā)送數(shù)據(jù)報(bào)文的方法,其特征在于,該方法包括以下步驟將每個(gè)模塊間通信實(shí)例映射到各通信通道;為所述每個(gè)模塊間通信實(shí)例發(fā)送報(bào)文令牌請(qǐng)求,以請(qǐng)求報(bào)文令牌;根據(jù)所述報(bào)文令牌請(qǐng)求和每個(gè)模塊間通信實(shí)例要發(fā)送報(bào)文的數(shù)據(jù)量,對(duì)所述每個(gè)模塊間通信實(shí)例中的報(bào)文分配所述報(bào)文令牌;通過(guò)各所述模塊間通信實(shí)例所映射的通信通道發(fā)送對(duì)應(yīng)所述模塊間通信實(shí)例中的被分配所述報(bào)文令牌的報(bào)文。
2. 根據(jù)權(quán)利要求1所述的發(fā)送數(shù)據(jù)報(bào)文的方法,其特征在于,在所述分配所述報(bào)文令 牌之前,所述方法還包括設(shè)定所述報(bào)文令牌的數(shù)量為一預(yù)定值,每個(gè)模塊間通信實(shí)例所能發(fā)送的報(bào)文量受所述 報(bào)文令牌的數(shù)量的控制,其中,所述報(bào)文令牌的數(shù)量為個(gè)數(shù)或比特?cái)?shù)。
3. 根據(jù)權(quán)利要求2所述的發(fā)送數(shù)據(jù)報(bào)文的方法,其特征在于,還包括 以預(yù)定的時(shí)間周期對(duì)所述報(bào)文令牌的數(shù)量進(jìn)行更新。
4. 根據(jù)權(quán)利要求1所述的發(fā)送數(shù)據(jù)報(bào)文的方法,其特征在于,所述將每個(gè)模塊間通信 實(shí)例映射到各通信通道的步驟還包括對(duì)所述每個(gè)模塊間通信實(shí)例設(shè)置優(yōu)先級(jí),根據(jù)所設(shè)置的優(yōu)先級(jí)將每個(gè)模塊間通信實(shí)例 映射到相應(yīng)優(yōu)先級(jí)的通信通道;所述發(fā)送對(duì)應(yīng)所述模塊間通信實(shí)例中的被分配所述報(bào)文令牌的報(bào)文的步驟對(duì)應(yīng)包括按照所設(shè)置的優(yōu)先級(jí),通過(guò)各所述模塊間通信實(shí)例所映射的通信通道發(fā)送對(duì)應(yīng)所述模 塊間通信實(shí)例中的被分配所述報(bào)文令牌的報(bào)文。
5. 根據(jù)權(quán)利要求1所述的發(fā)送數(shù)據(jù)報(bào)文的方法,其特征在于,所述發(fā)送各所述模塊間 通信實(shí)例中的被分配所述報(bào)文令牌的報(bào)文的步驟還包括根據(jù)報(bào)文令牌的分配情況來(lái)調(diào)度所述通信通道,以使各個(gè)通信實(shí)例的負(fù)載均衡。
6. 根據(jù)權(quán)利要求1至5中任意一項(xiàng)所述的發(fā)送數(shù)據(jù)報(bào)文的方法,其特征在于,所述模塊 間通信實(shí)例包括套接字通信實(shí)例和進(jìn)程通信實(shí)例。
7. —種接收數(shù)據(jù)報(bào)文的方法,其特征在于,所述方法包括 將每個(gè)模塊間通信實(shí)例映射到各通信通道;為所述每個(gè)模塊間通信實(shí)例發(fā)送報(bào)文令牌請(qǐng)求,以請(qǐng)求報(bào)文令牌; 根據(jù)所述報(bào)文令牌請(qǐng)求和每個(gè)模塊間通信實(shí)例要接收的報(bào)文的數(shù)據(jù)量,對(duì)所述每個(gè)模塊間通信實(shí)例中的報(bào)文分配所述報(bào)文令牌;通過(guò)各所述模塊間通信實(shí)例所映射的通信通道接收對(duì)應(yīng)所述模塊間通信實(shí)例中的被分配所述報(bào)文令牌的報(bào)文。
8. 根據(jù)權(quán)利要求7所述的接收數(shù)據(jù)報(bào)文的方法,其特征在于, 所述將每個(gè)模塊間通信實(shí)例映射到各通信通道的步驟還包括 對(duì)所述每個(gè)模塊間通信實(shí)例設(shè)置優(yōu)先級(jí),根據(jù)所設(shè)置的優(yōu)先級(jí)將每個(gè)模塊間通信實(shí)例 映射到相應(yīng)優(yōu)先級(jí)的通信通道;所述接收對(duì)應(yīng)所述模塊間通信實(shí)例中的被分配所述報(bào)文令牌的報(bào)文的步驟對(duì)應(yīng)包括按照所設(shè)置的優(yōu)先級(jí),通過(guò)各所述模塊間通信實(shí)例所映射的通信通道來(lái)接收對(duì)應(yīng)所述 模塊間通信實(shí)例中的被分配所述報(bào)文令牌的報(bào)文。
9. 根據(jù)權(quán)利要求7所述的接收數(shù)據(jù)報(bào)文的方法,其特征在于,所述接收各所述模塊間通信實(shí)例中的被分配所述報(bào)文令牌的報(bào)文的步驟還包括 根據(jù)報(bào)文令牌的分配情況來(lái)調(diào)度所述通信通道,以使各個(gè)通信實(shí)例的負(fù)載均衡。
10. —種發(fā)送數(shù)據(jù)報(bào)文的裝置,其特征在于,所述裝置包括 映射單元,用于將每個(gè)模塊間通信實(shí)例分別映射到一通信通道;令牌請(qǐng)求單元,用于為所述每個(gè)模塊間通信實(shí)例發(fā)送報(bào)文令牌請(qǐng)求,以請(qǐng)求報(bào)文令牌;通道管理單元,用于根據(jù)所述報(bào)文令牌請(qǐng)求和每個(gè)模塊間通信實(shí)例要發(fā)送的報(bào)文的數(shù) 據(jù)量,對(duì)所述每個(gè)模塊間通信實(shí)例中的報(bào)文分配所述報(bào)文令牌;發(fā)送單元,用于通過(guò)每個(gè)模塊間通信實(shí)例所映射的通信通道來(lái)發(fā)送對(duì)應(yīng)所述模塊間通 信實(shí)例中的被分配所述報(bào)文令牌的報(bào)文。
11. 根據(jù)權(quán)利要求10所述的發(fā)送數(shù)據(jù)報(bào)文的裝置,其特征在于,所述裝置還包括 令牌數(shù)量設(shè)定單元,用于設(shè)定所述各通信通道中的報(bào)文令牌的數(shù)量,使該數(shù)量為一預(yù)定值,并且,每個(gè)模塊間通信實(shí)例發(fā)送的報(bào)文量受所述報(bào)文令牌的數(shù)量的控制, 其中,所述報(bào)文令牌的數(shù)量為個(gè)數(shù)或比特?cái)?shù)。
12. 根據(jù)權(quán)利要求11所述的發(fā)送數(shù)據(jù)報(bào)文的裝置,其特征在于,還包括 更新單元,用于以預(yù)定的時(shí)間周期對(duì)所述報(bào)文令牌的數(shù)量進(jìn)行更新; 優(yōu)先級(jí)設(shè)置單元,用于對(duì)所述每個(gè)模塊間通信實(shí)例設(shè)置優(yōu)先級(jí);所述映射單元,用于根據(jù)所設(shè)置的優(yōu)先級(jí)將每個(gè)模塊間通信實(shí)例映射到相應(yīng)優(yōu)先級(jí)的 通信通道。
13. 根據(jù)權(quán)利要求10所述的發(fā)送數(shù)據(jù)報(bào)文的裝置,其特征在于,所述發(fā)送單元還包括 判斷單元,用于判斷所述各模塊間通信實(shí)例所映射的通信通道中的報(bào)文令牌的分配情況,所述通道管理單元還用于根據(jù)所述報(bào)文令牌的分配情況調(diào)度所述各模塊間通信實(shí)例 所映射的通信通道,以使各個(gè)通信實(shí)例的負(fù)載均衡。
14. 一種接收數(shù)據(jù)報(bào)文的裝置,其特征在于,所述裝置包括 映射單元,用于將每個(gè)模塊間通信實(shí)例分別映射到一通信通道;令牌請(qǐng)求單元,用于為所述每個(gè)模塊間通信實(shí)例發(fā)送報(bào)文令牌請(qǐng)求,以請(qǐng)求報(bào)文令牌;通道管理單元,用于根據(jù)所述報(bào)文令牌請(qǐng)求和每個(gè)模塊間通信實(shí)例要發(fā)送的報(bào)文的數(shù) 據(jù)量,對(duì)所述每個(gè)模塊間通信實(shí)例中的報(bào)文分配所述報(bào)文令牌;接收單元,用于通過(guò)每個(gè)模塊間通信實(shí)例所映射的通信通道來(lái)接收對(duì)應(yīng)所述模塊間通 信實(shí)例中的被分配所述報(bào)文令牌的報(bào)文。
15. 根據(jù)權(quán)利要求14所述的接收數(shù)據(jù)報(bào)文的裝置,其特征在于,所述裝置還包括 更新單元,用于以預(yù)定的時(shí)間周期對(duì)所述報(bào)文令牌的數(shù)量進(jìn)行更新;優(yōu)先級(jí)設(shè)置單元,用于對(duì)所述每個(gè)模塊間通信實(shí)例設(shè)置優(yōu)先級(jí);所述映射單元,用于根據(jù)所設(shè)置的優(yōu)先級(jí)將模塊間通信實(shí)例對(duì)應(yīng)到相應(yīng)優(yōu)先級(jí)的通信 通道。
16.根據(jù)權(quán)利要求14所述的接收數(shù)據(jù)報(bào)文的裝置,其特征在于,所述接收單元還包括 判斷單元,用于判斷所述各模塊間通信實(shí)例所映射的通信通道中的報(bào)文令牌的分配情況,所述通道管理單元還用于根據(jù)所述報(bào)文令牌的分配情況調(diào)度所述各模塊間通信實(shí)例 所映射的通信通道,以使各個(gè)通信實(shí)例的負(fù)載均衡。
全文摘要
本發(fā)明提供一種發(fā)送/接收數(shù)據(jù)報(bào)文的方法及裝置,屬于通信技術(shù)領(lǐng)域。方法包括以下步驟將每個(gè)模塊間通信實(shí)例映射到通信通道;請(qǐng)求報(bào)文令牌;根據(jù)每個(gè)模塊間通信實(shí)例要發(fā)送的報(bào)文的數(shù)據(jù)量,對(duì)所述每個(gè)模塊間通信實(shí)例中的報(bào)文分配所述報(bào)文令牌;發(fā)送/接收各所述模塊間通信實(shí)例中的被分配所述報(bào)文令牌的報(bào)文。本發(fā)明實(shí)施例的有益效果在于,因?yàn)椴捎昧伺浒l(fā)報(bào)文令牌并以模塊間通信實(shí)例為粒度進(jìn)行報(bào)文收發(fā)的控制,所以克服了基于組件級(jí)粒度調(diào)度時(shí)無(wú)法感知擁塞的問(wèn)題,從而均衡了各通信通道的負(fù)載,最大限度的節(jié)省了不必要的通信開銷。
文檔編號(hào)H04L12/56GK101789895SQ200910004310
公開日2010年7月28日 申請(qǐng)日期2009年1月24日 優(yōu)先權(quán)日2009年1月24日
發(fā)明者劉彥夫, 孫永樂(lè), 范一鳴, 郭英輝 申請(qǐng)人:華為技術(shù)有限公司