專利名稱:分布式節(jié)點(diǎn)組播方法、分布式節(jié)點(diǎn)組播組件和分布式系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種分布式節(jié)點(diǎn)組播方法和一種分 布式節(jié)點(diǎn)組播組件,以及, 一種分布式系統(tǒng)。
背景技術(shù):
對(duì)于具有多業(yè)務(wù)板的路由器、交換機(jī)等分布式設(shè)備構(gòu)成的小型分布式系 統(tǒng),或者對(duì)于網(wǎng)間集群/設(shè)備堆疊所構(gòu)成的較大規(guī)模的分布式系統(tǒng)而言,其節(jié) 點(diǎn)之間需要進(jìn)行控制層面上的通信,其中,該節(jié)點(diǎn)隨著所應(yīng)用分布式系統(tǒng)的 不同,可以為業(yè)務(wù)板,或者,可以為進(jìn)行集群/堆疊的設(shè)備,如交換機(jī)等。如 圖1所示,顯示了分布式設(shè)備業(yè)務(wù)板之間的板間通信模型。
作為分布式系統(tǒng)的一項(xiàng)關(guān)鍵技術(shù),節(jié)點(diǎn)間通信的可靠程度直接決定了分 布式系統(tǒng)的可靠程度,節(jié)點(diǎn)間通信的性能直接決定了分布式系統(tǒng)所能達(dá)到的 性能。在傳統(tǒng)的實(shí)現(xiàn)方案中,分布式節(jié)點(diǎn)通信都采用軟件輪詢單播的方式, 即對(duì)發(fā)送節(jié)點(diǎn)對(duì)各個(gè)接收節(jié)點(diǎn)都發(fā)一次單播報(bào)文。顯然,由于采用了軟件輪 詢機(jī)制,既需要對(duì)各個(gè)節(jié)點(diǎn)輪流發(fā)送,又必須有內(nèi)存拷貝操作,其效率低下, 且浪費(fèi)了發(fā)送節(jié)點(diǎn)的處理資源。
針對(duì)上述分布式節(jié)點(diǎn)通信的缺陷,現(xiàn)有技術(shù)一般為通過硬件實(shí)現(xiàn)節(jié)點(diǎn)之
間的組播通信來加以克服。例如公開號(hào)為CN1825804、發(fā)明名稱為"實(shí)現(xiàn)分 布式系統(tǒng)板間通信的系統(tǒng)和方法"的中國(guó)專利申請(qǐng),就提供了一種分布式系 統(tǒng)板間通信的方法,結(jié)合單播、組播、廣播技術(shù)使板間通信一次完成。
但是,在現(xiàn)有的硬件組播方案中,往往是發(fā)送節(jié)點(diǎn)直接將報(bào)文發(fā)送給相 關(guān)的組播組成員后就完成了該次的組播通信,無法了解組播組成員是否進(jìn)行 了正常接收,因此節(jié)點(diǎn)間通信的可靠性無法得到保證。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例的目的是為了克服上述現(xiàn)有技術(shù)中的缺陷,提供一種分布式節(jié)點(diǎn)組播方案,以可靠地實(shí)現(xiàn)分布式節(jié)點(diǎn)間的硬件組播。
為實(shí)現(xiàn)上述目的,本發(fā)明的實(shí)施例提供了一種分布式節(jié)點(diǎn)組播方法,適 用于發(fā)送節(jié)點(diǎn)與接收節(jié)點(diǎn)分布式連接構(gòu)成的系統(tǒng),其中發(fā)送節(jié)點(diǎn)根據(jù)應(yīng)用協(xié) 議的指令建立組播組,該組播組成員包括至少一個(gè)接收節(jié)點(diǎn);包括以下步驟:
發(fā)送節(jié)點(diǎn)與組播組內(nèi)的全部接收節(jié)點(diǎn)進(jìn)行組播會(huì)話協(xié)商,建立會(huì)話 并以組播的形式向所述接收節(jié)點(diǎn)發(fā)送報(bào)文,以及,緩沖所發(fā)送的報(bào)文;
根據(jù)組播會(huì)話協(xié)商的結(jié)果,如果發(fā)送節(jié)點(diǎn)已發(fā)送的報(bào)文符合預(yù)設(shè)的 確認(rèn)條件,但超時(shí)未獲一接收節(jié)點(diǎn)的確認(rèn)標(biāo)識(shí)時(shí),發(fā)送節(jié)點(diǎn)調(diào)用所緩沖 的相應(yīng)報(bào)文并重新向該接收節(jié)點(diǎn)發(fā)送;
其中,該確認(rèn)標(biāo)識(shí)在任一接收節(jié)點(diǎn)已接收的報(bào)文符合預(yù)設(shè)的確認(rèn)條 件時(shí),由該接收節(jié)點(diǎn)向發(fā)送節(jié)點(diǎn)發(fā)送。
本發(fā)明的實(shí)施例還提供了一種分布式節(jié)點(diǎn)組播組件,適用于發(fā)送節(jié) 點(diǎn)與接收節(jié)點(diǎn)分布式連接構(gòu)成的系統(tǒng),其中發(fā)送節(jié)點(diǎn)根據(jù)應(yīng)用協(xié)議的指 令建立組播組,該組播組成員包括至少一個(gè)接收節(jié)點(diǎn);其特征在于,包 括運(yùn)行于發(fā)送節(jié)點(diǎn)的組播發(fā)送單元和分別運(yùn)行于每一接收節(jié)點(diǎn)的組播接 收單元;
該組播發(fā)送單元分別與組播組內(nèi)每一接收節(jié)點(diǎn)的組播接收單元建立 連接,用于根據(jù)應(yīng)用協(xié)議的指令建立組播組,與該組播接收單元進(jìn)行會(huì) 話協(xié)商并建立會(huì)話,向該組播接收單元組播發(fā)送報(bào)文并緩沖,以及調(diào)用 所緩沖的、符合預(yù)設(shè)的確認(rèn)條件但超時(shí)未獲一組播接收單元確認(rèn)標(biāo)識(shí)的 相應(yīng)報(bào)文,并重新向所述組播接收單元發(fā)送;
該組播接收單元用于與該組播發(fā)送單元進(jìn)行會(huì)話協(xié)商并建立會(huì)話,接收 該組播發(fā)送單元組播發(fā)送的報(bào)文,以及根據(jù)組播會(huì)話協(xié)商的結(jié)果,對(duì)已接收 到的、符合預(yù)設(shè)的確認(rèn)條件的報(bào)文,向組播發(fā)送單元發(fā)送確認(rèn)標(biāo)識(shí)。
本發(fā)明的實(shí)施例還提供了一種分布式系統(tǒng),包括分布式應(yīng)用協(xié)議層、分 布式節(jié)點(diǎn)層以及硬件轉(zhuǎn)發(fā)層,該硬件轉(zhuǎn)發(fā)層用于傳輸組播報(bào)文,該分布式節(jié) 點(diǎn)層包括多個(gè)分布式連接的節(jié)點(diǎn),該分布式應(yīng)用協(xié)議層包括與該分布式節(jié)點(diǎn) 層中各節(jié)點(diǎn)一一對(duì)應(yīng)連接的應(yīng)用協(xié)議,用于指令創(chuàng)建組播組和處理組播報(bào) 文;其特征在于,還包括上述分布式節(jié)點(diǎn)組播組件,其中任一節(jié)點(diǎn)上設(shè)有所 述分布式節(jié)點(diǎn)組播組件的組播發(fā)送單元和組播接收單元。
由上述技術(shù)方案可知,本發(fā)明通過發(fā)送節(jié)點(diǎn)和接收節(jié)點(diǎn)的會(huì)話協(xié)商,并 采用發(fā)送節(jié)點(diǎn)的緩沖以及接收節(jié)點(diǎn)的重傳請(qǐng)求機(jī)制,具有保證節(jié)點(diǎn)間通信可 靠性的有益效果。
下面通過附圖和實(shí)施例,對(duì)本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。
圖1為現(xiàn)有技術(shù)中分布式設(shè)備業(yè)務(wù)板之間的板間通信模型示意圖; 圖2為分布式節(jié)點(diǎn)組播方案的處理示意圖3為本發(fā)明所提供的分布式節(jié)點(diǎn)組播方法一實(shí)施例的流程圖4為本發(fā)明所提供的分布式節(jié)點(diǎn)組播方法中,會(huì)話協(xié)商實(shí)施例的流程
圖5為本發(fā)明所提供的分布式節(jié)點(diǎn)組播方法中,引入提示機(jī)制的實(shí)施例 的流程圖6為本發(fā)明所提供的分布式節(jié)點(diǎn)組播組件一實(shí)施例的框圖; 圖7為本發(fā)明所提供的分布式節(jié)點(diǎn)組播組件中,組播發(fā)送單元一實(shí)施例 的框圖8為本發(fā)明所提供的分布式節(jié)點(diǎn)組播組件中,組播接收單元一實(shí)施例 的框圖9為本發(fā)明所提供的分布式節(jié)點(diǎn)組播組件另一實(shí)施例的框圖; 圖IO為本發(fā)明所提供的分布式系統(tǒng)一實(shí)施例的框圖。
具體實(shí)施例方式
為了克服現(xiàn)有技術(shù)中發(fā)送節(jié)點(diǎn)單純進(jìn)行報(bào)文組播發(fā)送所帶來的缺陷,本 發(fā)明提供了一種發(fā)送節(jié)點(diǎn)和接收節(jié)點(diǎn)在會(huì)話建立之初進(jìn)行協(xié)商,由發(fā)送節(jié)點(diǎn) 緩沖已發(fā)送報(bào)文,并根據(jù)接收節(jié)點(diǎn)的確認(rèn)標(biāo)識(shí)決定是否進(jìn)行報(bào)文重新發(fā)送的 技術(shù)方案,以保證報(bào)文組播的可靠性。
請(qǐng)參見圖2,顯示了一個(gè)組播節(jié)點(diǎn)的組播處理方案組播管理根據(jù)應(yīng)用 協(xié)議的指令創(chuàng)建組播組,會(huì)話管理進(jìn)行具體的會(huì)話建立并經(jīng)收發(fā)管理通過硬 件媒體進(jìn)行報(bào)文的發(fā)送/接收。本發(fā)明所提供的分布式節(jié)點(diǎn)組播方法沿用該處 理思想,但在此基礎(chǔ)上進(jìn)行了相應(yīng)的處理改進(jìn)。請(qǐng)參見圖3,為本發(fā)明所提供的分布式節(jié)點(diǎn)組播方法一實(shí)施例的流程圖, 該分布式節(jié)點(diǎn)組播方法適用于發(fā)送節(jié)點(diǎn)與接收節(jié)點(diǎn)分布式連接構(gòu)成的系統(tǒng),
其中發(fā)送節(jié)點(diǎn)根據(jù)應(yīng)用協(xié)議的指令建立組播組,并分配相應(yīng)的組播組ID;組 播組成員包括至少一個(gè)接收節(jié)點(diǎn)。本領(lǐng)域普通技術(shù)人員可以理解,當(dāng)組播組 成員僅包括一個(gè)接收節(jié)點(diǎn)時(shí),相當(dāng)于點(diǎn)對(duì)點(diǎn)的單播,由于無論是組播還是單 播,都能夠通過硬件媒體實(shí)現(xiàn),因此都適用于本發(fā)明所提供的分布式節(jié)點(diǎn)組 播方法。
具體的,該分布式節(jié)點(diǎn)組播方法包括以下步驟
S101、發(fā)送節(jié)點(diǎn)與組播組內(nèi)的全部接收節(jié)點(diǎn)進(jìn)行會(huì)話協(xié)商,并建立 會(huì)話;
本發(fā)明在在組播組創(chuàng)建完成后,就進(jìn)入會(huì)話協(xié)商的階段,這是與現(xiàn)
有節(jié)點(diǎn)組播技術(shù)的區(qū)別點(diǎn)之一現(xiàn)有技術(shù)是發(fā)送節(jié)點(diǎn)按照建立的組播組 直接組播發(fā)送報(bào)文,并不會(huì)先行于接收節(jié)點(diǎn)進(jìn)行協(xié)商,難以保證組播通 信的可靠性。
具體的,如圖4所示,會(huì)話協(xié)商可以包括
發(fā)送節(jié)點(diǎn)與各接收節(jié)點(diǎn)協(xié)商配置組播報(bào)文序號(hào)編碼規(guī)則,保證接收 節(jié)點(diǎn)能夠識(shí)別缺失的報(bào)文;例如,約定連續(xù)的報(bào)文序號(hào)或者符合一定算
法的報(bào)文序號(hào),并約定報(bào)文的初始序列號(hào),以保證接收節(jié)點(diǎn)識(shí)別缺失報(bào)
文;
發(fā)送節(jié)點(diǎn)與各接收節(jié)點(diǎn)協(xié)商配置確認(rèn)條件,該確認(rèn)條件為下述情況 的任意組合累計(jì)發(fā)送/接收到預(yù)設(shè)數(shù)目的連續(xù)報(bào)文;累計(jì)發(fā)送/接收連續(xù) 報(bào)文達(dá)到預(yù)設(shè)時(shí)間;以及,發(fā)送/接收的報(bào)文超過預(yù)設(shè)的優(yōu)先級(jí);
該確認(rèn)條件對(duì)于協(xié)商后的發(fā)送節(jié)點(diǎn)和接收節(jié)點(diǎn)是統(tǒng)一的,具體來說, 當(dāng)發(fā)送節(jié)點(diǎn)累計(jì)發(fā)送預(yù)設(shè)數(shù)目的連續(xù)報(bào)文滿足確認(rèn)條件時(shí),相應(yīng)的,接 收節(jié)點(diǎn)接收到預(yù)設(shè)數(shù)目的連續(xù)報(bào)文也滿足確認(rèn)條件;當(dāng)發(fā)送節(jié)點(diǎn)累計(jì)發(fā) 送連續(xù)報(bào)文到達(dá)預(yù)設(shè)時(shí)間滿足確認(rèn)條件時(shí),相應(yīng)的,接收節(jié)點(diǎn)累計(jì)接收 連續(xù)報(bào)文達(dá)到預(yù)設(shè)時(shí)間也滿足確認(rèn)條件;以及,當(dāng)發(fā)送節(jié)點(diǎn)發(fā)送的報(bào)文 超過預(yù)設(shè)的優(yōu)先級(jí)滿足確認(rèn)條件時(shí),相應(yīng)的,接收節(jié)點(diǎn)累計(jì)接收的報(bào)文 超過預(yù)設(shè)的優(yōu)先級(jí)也滿足確認(rèn)條件。
發(fā)送節(jié)點(diǎn)和各接收節(jié)點(diǎn)協(xié)商配置確認(rèn)標(biāo)識(shí)格式,所述確認(rèn)標(biāo)識(shí)中攜
帶組播組成員標(biāo)識(shí)以及所確認(rèn)的報(bào)文序號(hào);當(dāng)然,該報(bào)文序號(hào)可以使用 區(qū)間值來表示,或者,當(dāng)所確認(rèn)的報(bào)文構(gòu)成一個(gè)報(bào)文組時(shí),可以采用該 報(bào)文組的序號(hào)加以表示,視乎實(shí)際情況而定。
同時(shí)需要指出, 一般為了提高組播效率, 一個(gè)會(huì)話只是在開始階段 進(jìn)行會(huì)話協(xié)商,在該會(huì)話結(jié)束時(shí)無需協(xié)商,將保持直至被下一次會(huì)話協(xié) 商所取代。
5102、 發(fā)送節(jié)點(diǎn)根據(jù)所建立的會(huì)話,以組播的形式向所述接收節(jié)點(diǎn) 發(fā)送報(bào)文,并緩沖所發(fā)送的報(bào)文;
需要注意的是,發(fā)送節(jié)點(diǎn)發(fā)送的報(bào)文應(yīng)攜帶有協(xié)商好的報(bào)文序號(hào), 以保證接收節(jié)點(diǎn)的后續(xù)識(shí)別。
至該會(huì)話結(jié)束,刪除相應(yīng)的組播組。
5103、 發(fā)送節(jié)點(diǎn)根據(jù)組播會(huì)話協(xié)商的結(jié)果監(jiān)控已發(fā)送的報(bào)文,如果 己發(fā)送的報(bào)文符合預(yù)設(shè)的確認(rèn)條件,但超時(shí)未獲一接收節(jié)點(diǎn)的確認(rèn)標(biāo)識(shí) 如ACK報(bào)文時(shí),執(zhí)行步驟S104;
其中,該確認(rèn)標(biāo)識(shí)在任一接收節(jié)點(diǎn)己接收的報(bào)文符合預(yù)設(shè)的確認(rèn)條 件時(shí),由該接收節(jié)點(diǎn)向發(fā)送節(jié)點(diǎn)發(fā)送。
具體來說,由于發(fā)送節(jié)點(diǎn)和接收節(jié)點(diǎn)經(jīng)歷了共同協(xié)商的過程,具有 統(tǒng)一的確認(rèn)標(biāo)準(zhǔn),因此,如果發(fā)送節(jié)點(diǎn)所發(fā)送的報(bào)文滿足了確認(rèn)條件, 且接收節(jié)點(diǎn)加以正常接收,那么從接收節(jié)點(diǎn)的角度而言,其接收的報(bào)文 無疑也滿足了確認(rèn)條件,并由此進(jìn)行確認(rèn)標(biāo)識(shí)的發(fā)送;但如果發(fā)送節(jié)點(diǎn) 所發(fā)送的報(bào)文滿足了確認(rèn)條件,而接收節(jié)點(diǎn)未曾實(shí)現(xiàn)正常接收,即中間 有報(bào)文遺失,那么從接收節(jié)點(diǎn)的角度而言,其接收的報(bào)文就無法滿足確 認(rèn)條件,不會(huì)進(jìn)行確認(rèn)標(biāo)識(shí)的發(fā)送。
在上述兩種情況下,從發(fā)送節(jié)點(diǎn)的角度而言,通過監(jiān)控已發(fā)送報(bào)文 是否獲得了應(yīng)有的確認(rèn)標(biāo)識(shí),即可識(shí)別接收節(jié)點(diǎn)是否正常接收??紤]到 發(fā)送節(jié)點(diǎn)和接收節(jié)點(diǎn)之間通信交互所需要的時(shí)間,可以為發(fā)送節(jié)點(diǎn)設(shè)置 超時(shí)時(shí)限,如果超時(shí)為接收到確認(rèn)標(biāo)識(shí),即可認(rèn)為報(bào)文發(fā)送失敗,執(zhí)行 步驟S104。
5104、 發(fā)送節(jié)點(diǎn)調(diào)用所緩沖的相應(yīng)報(bào)文并重新向所述接收節(jié)點(diǎn)發(fā)送。 一般來說,發(fā)送節(jié)點(diǎn)根據(jù)確認(rèn)標(biāo)識(shí)中的接收節(jié)點(diǎn)標(biāo)識(shí)和報(bào)文序號(hào)就
能夠?qū)崿F(xiàn)準(zhǔn)確的定點(diǎn)發(fā)送,從而使組播組成員都能夠獲得組播報(bào)文,保 證了組播傳輸?shù)目煽啃浴?br>
從上述步驟S101 S104可以看出,本發(fā)明實(shí)施例所提供的分布式節(jié) 點(diǎn)組播方法,能夠通過硬件組播,在進(jìn)行一次發(fā)送時(shí)可以以組播形式同 時(shí)向若干目標(biāo)發(fā)送報(bào)文,具有組播高速性;同時(shí),通過報(bào)文緩沖和確認(rèn) 標(biāo)識(shí)的配合處理,能夠保證組播可靠性。
在上述實(shí)施例中需要注意的是,隨著確認(rèn)條件的不同,本發(fā)明實(shí)施 例所提供的分布式節(jié)點(diǎn)組播方法,其報(bào)文重傳的粒度也有所不同。比如, 如果設(shè)置確認(rèn)條件為累計(jì)發(fā)送/接收到5個(gè)連續(xù)報(bào)文,那么超時(shí)設(shè)置必須 預(yù)留有接收節(jié)點(diǎn)識(shí)別5個(gè)報(bào)文的時(shí)間,其粒度粗于每發(fā)送/接收到1個(gè)報(bào) 文的確認(rèn)條件;但反過來,每發(fā)送/接收到1個(gè)報(bào)文就執(zhí)行確認(rèn),又會(huì)給 網(wǎng)絡(luò)造成很多不必要的開銷。因此,具體確認(rèn)條件的設(shè)置可以在實(shí)際應(yīng) 用中根據(jù)需要靈活掌握,以達(dá)到粒度和資源開銷的較佳組合。
一般情況下,往往采用預(yù)設(shè)數(shù)目、預(yù)設(shè)時(shí)間和預(yù)設(shè)優(yōu)先級(jí)的組合作為確 認(rèn)條件,即以定時(shí)和批量的方式回復(fù)確認(rèn)標(biāo)識(shí)(如ACK報(bào)文),減少ACK 引起的發(fā)送、接收帶寬開銷,既避免了 ACK報(bào)文過多,也不至于長(zhǎng)期沒有 ACK確認(rèn);而對(duì)優(yōu)先級(jí)較高報(bào)文的即時(shí)回復(fù),能夠保證對(duì)緊急報(bào)文的實(shí)時(shí)處 理。
在上述實(shí)施例中還需要注意的是,由于大量的已發(fā)送報(bào)文長(zhǎng)期保留在緩 存中顯然降低了資源的利用率,為了克服這一問題,可以采取針對(duì)某一個(gè)組 播報(bào)文,如果收到了組播組中全部成員的ACK反饋,就可以將其從緩沖中
刪除的操作,以降低緩沖占用。其具體實(shí)現(xiàn)方式包括
在步驟S103中,如果已發(fā)送的報(bào)文符合預(yù)設(shè)的確認(rèn)條件,且在超時(shí)期 限內(nèi)獲得一接收節(jié)點(diǎn)的確認(rèn)標(biāo)識(shí)如ACK報(bào)文時(shí),執(zhí)行步驟S105;
5105、 監(jiān)測(cè)是否已接收到組播組全部接收節(jié)點(diǎn)的確認(rèn)標(biāo)識(shí),是則執(zhí)行步 驟S106,否則重新執(zhí)行步驟S103;
5106、 發(fā)送節(jié)點(diǎn)相應(yīng)刪除所緩沖的報(bào)文。
同時(shí),在上述實(shí)施例中發(fā)送節(jié)點(diǎn)進(jìn)行緩沖、重發(fā)和緩沖刪除操作的同時(shí), 接收節(jié)點(diǎn)需要執(zhí)行接收?qǐng)?bào)文的處理。在現(xiàn)有技術(shù)中,為了避免處理過程中組 播報(bào)文丟失,接收節(jié)點(diǎn)需要先行對(duì)接收到的組播報(bào)文進(jìn)行緩沖,再對(duì)緩沖的
報(bào)文加以回調(diào)處理。而在本發(fā)明的實(shí)施例中,由于組播報(bào)文的傳輸可靠性得 到保證,即使發(fā)生報(bào)文丟失也能夠重新獲取,因此接收節(jié)點(diǎn)無需進(jìn)行報(bào)文的 緩沖回調(diào),而是對(duì)符合預(yù)設(shè)的確認(rèn)條件的已接收?qǐng)?bào)文,接收節(jié)點(diǎn)以隊(duì)列方式 直接發(fā)送給應(yīng)用協(xié)議進(jìn)行處理,從而提高了組播處理的效率。
進(jìn)一步的,上述實(shí)施例所描述的分布式節(jié)點(diǎn)組播方法通過接收節(jié)點(diǎn)的確 認(rèn)機(jī)制,為節(jié)點(diǎn)間組播的可靠性提供了保證。但也需要注意到,出于信道資 源角度的考慮,確認(rèn)條件的粒度往往不能過細(xì),這就導(dǎo)致了可能存在中間只 發(fā)生了一個(gè)或幾個(gè)報(bào)文的丟失,但由于發(fā)送節(jié)點(diǎn)無法進(jìn)一步識(shí)別,不得不重 新發(fā)送一組報(bào)文的情況。為了克服這一問題,本發(fā)明在接收節(jié)點(diǎn)確認(rèn)機(jī)制的 基礎(chǔ)上,還提供了相應(yīng)的缺失提示機(jī)制。
由于節(jié)點(diǎn)確認(rèn)機(jī)制的過程中,接收節(jié)點(diǎn)需要按照預(yù)前協(xié)商的結(jié)果進(jìn)行報(bào) 文的識(shí)別,從而判斷是否可以發(fā)送確認(rèn)標(biāo)識(shí),因此同時(shí)也能夠識(shí)別出是否發(fā) 色和能夠了報(bào)文缺失。如果識(shí)別出報(bào)文缺失的接收節(jié)點(diǎn)僅針對(duì)所缺失的報(bào)文 主動(dòng)向發(fā)送節(jié)點(diǎn)進(jìn)行提示,那么無疑發(fā)送節(jié)點(diǎn)可以有針對(duì)性地進(jìn)行所缺失報(bào) 文的補(bǔ)發(fā)。上述機(jī)制的具體實(shí)現(xiàn)方式如圖5所示
5201、 根據(jù)組播會(huì)話協(xié)商的結(jié)果,接收節(jié)點(diǎn)對(duì)已接收?qǐng)?bào)文的缺失情況加 以識(shí)別;
具體的,步驟201可以通過以下操作實(shí)現(xiàn)接收節(jié)點(diǎn)提取應(yīng)接收?qǐng)?bào) 文的報(bào)文序號(hào),該應(yīng)接收?qǐng)?bào)文的報(bào)文序號(hào)由組播報(bào)文序號(hào)編碼規(guī)則和上 一次接收到的報(bào)文確定;識(shí)別實(shí)際接收?qǐng)?bào)文的序號(hào);與應(yīng)接收?qǐng)?bào)文的報(bào) 文序號(hào)一致,則未發(fā)生報(bào)文缺失;與所述應(yīng)接收?qǐng)?bào)文的報(bào)文序號(hào)不一致, 則對(duì)應(yīng)的報(bào)文缺失。
5202、 當(dāng)發(fā)生報(bào)文缺失時(shí),接收節(jié)點(diǎn)向發(fā)送節(jié)點(diǎn)發(fā)出重傳請(qǐng)求; 其中,該重傳請(qǐng)求的報(bào)文格式是在會(huì)話協(xié)商的步驟中完成的,攜帶接收
節(jié)點(diǎn)標(biāo)識(shí)以保證發(fā)送節(jié)點(diǎn)能夠確定重傳的目的節(jié)點(diǎn),攜帶有報(bào)文序號(hào)以保證 發(fā)送節(jié)點(diǎn)能夠確定需要重傳的報(bào)文對(duì)象。
5203、 接收到任一接收節(jié)點(diǎn)重傳請(qǐng)求的發(fā)送節(jié)點(diǎn)調(diào)用所緩沖的相應(yīng) 報(bào)文并重新向該接收節(jié)點(diǎn)發(fā)送。
可以看出,通過上述步驟S201 S203,在ACK確認(rèn)機(jī)制的基礎(chǔ)上,又 針對(duì)性的提供了對(duì)個(gè)別報(bào)文缺失情況的補(bǔ)充方案。舉例來說,如果在一次組
播過程中, 一接收節(jié)點(diǎn)丟失了某一個(gè)報(bào)文之后的全部報(bào)文,則由于該接收節(jié)
點(diǎn)無法根據(jù)后續(xù)報(bào)文識(shí)別到缺失情況,因此不會(huì)做出任何反應(yīng);此時(shí),發(fā)送 節(jié)點(diǎn)由于超時(shí)未接收到確認(rèn)標(biāo)識(shí),因此主動(dòng)重新發(fā)送。再比如說,在一次組 播過程中, 一接收節(jié)點(diǎn)丟失了某一個(gè)報(bào)文,則其根據(jù)后續(xù)接收的報(bào)文可以迅 速判斷中報(bào)文缺失情況,則通過及時(shí)反饋并重新獲得該報(bào)文;如果獲得該報(bào) 文后滿足了確認(rèn)條件,那么發(fā)送節(jié)點(diǎn)甚至有可能在超時(shí)前獲得相應(yīng)的確認(rèn)標(biāo) 識(shí),無需重新發(fā)送整組的報(bào)文。總的來說,確認(rèn)機(jī)制和提示機(jī)制相結(jié)合,不 但有效的保證了節(jié)點(diǎn)間組播的可靠性,而且能夠提高報(bào)文重發(fā)的粒度和效 率。
在提示機(jī)制中,為了保證所缺失的報(bào)文能夠按照協(xié)商的順序正確編入隊(duì) 列,本發(fā)明的實(shí)施例也可以設(shè)置相應(yīng)的緩沖,以便發(fā)生報(bào)文缺失時(shí),接收節(jié) 點(diǎn)對(duì)已接收到的報(bào)文進(jìn)行缺失緩沖,等收到重傳報(bào)文時(shí),結(jié)合緩沖的報(bào)文一 起以隊(duì)列方式發(fā)送給應(yīng)用協(xié)議進(jìn)行處理。
艮P,步驟S202還包括接收節(jié)點(diǎn)對(duì)已接收到的、所缺失報(bào)文之后的組播 報(bào)文進(jìn)行緩沖,直至與重新發(fā)送的所缺失報(bào)文按照組播會(huì)話協(xié)商的結(jié)果組合 后再發(fā)送給應(yīng)用協(xié)議進(jìn)行處理,以保證組播報(bào)文處理的順序性。
雖然上述步驟也在接收節(jié)點(diǎn)進(jìn)行了緩沖設(shè)置,但本領(lǐng)域技術(shù)人員可以了 解,這種緩沖僅僅針對(duì)的是發(fā)生報(bào)文缺失的情況,而非對(duì)所有的報(bào)文都采用 緩沖回調(diào)的方式,因此對(duì)緩沖的長(zhǎng)度要求較小,也不會(huì)在未發(fā)生報(bào)文缺失時(shí) 影響處理效率。
下面,通過一個(gè)具體的實(shí)施例對(duì)本發(fā)明所提供的分布式系統(tǒng)節(jié)點(diǎn)間的組 播發(fā)送/接收方法進(jìn)行描述,以應(yīng)用協(xié)議指令節(jié)點(diǎn)A向節(jié)點(diǎn)B、 C和D三個(gè) 節(jié)點(diǎn)發(fā)送組播報(bào)文為例,包括以下步驟-
步驟一、節(jié)點(diǎn)A根據(jù)應(yīng)用協(xié)議指令創(chuàng)建組播組a,包括申請(qǐng)資源,下發(fā) 驅(qū)動(dòng),分配相應(yīng)的組播組ID,以及添加組播組成員B、 C和D;
步驟二、當(dāng)應(yīng)用協(xié)議指令發(fā)送第一個(gè)組播報(bào)文時(shí),觸發(fā)節(jié)點(diǎn)A的會(huì)話管 理,進(jìn)行組播會(huì)話協(xié)商創(chuàng)建,請(qǐng)求建立與節(jié)點(diǎn)B、 C和D的直接聯(lián)系;
步驟三、節(jié)點(diǎn)B、 C、 D的會(huì)話管理根據(jù)節(jié)點(diǎn)A的協(xié)商請(qǐng)求,建立與節(jié) 點(diǎn)A的會(huì)話鏈接;
步驟四、節(jié)點(diǎn)A的會(huì)話管理封裝應(yīng)用協(xié)議的報(bào)文,經(jīng)收發(fā)管理通過硬件
媒體,向組播組內(nèi)的接收節(jié)點(diǎn)B、 C和D組播發(fā)送報(bào)文;
步驟五、節(jié)點(diǎn)A的會(huì)話管理對(duì)所發(fā)送的報(bào)文進(jìn)行緩沖;
步驟六、在節(jié)點(diǎn)B、 C和D上,識(shí)別實(shí)際接收?qǐng)?bào)文的序號(hào),與應(yīng)接收?qǐng)?bào) 文的報(bào)文序號(hào)一致,則執(zhí)行步驟七,否則執(zhí)行步驟十;
步驟七、以隊(duì)列方式直接將所接收到的報(bào)文上送到對(duì)應(yīng)的應(yīng)用協(xié)議進(jìn)行 處理;
步驟八、檢査是否滿足ACK報(bào)文發(fā)送條件,是則執(zhí)行步驟九,否則對(duì) 該報(bào)文的處理結(jié)束;
步驟九、向節(jié)點(diǎn)A發(fā)送ACK報(bào)文;
步驟十、對(duì)應(yīng)的報(bào)文缺失,向發(fā)送節(jié)點(diǎn)A發(fā)出重傳請(qǐng)求,該請(qǐng)求中攜帶
應(yīng)接收?qǐng)?bào)文的報(bào)文序號(hào)和接收節(jié)點(diǎn)標(biāo)識(shí);
步驟十一、節(jié)點(diǎn)A調(diào)用所緩沖的相應(yīng)報(bào)文并重新向該接收節(jié)點(diǎn)發(fā)送。 此外,本實(shí)施例還包括節(jié)點(diǎn)A監(jiān)控所緩沖的報(bào)文,調(diào)用超時(shí)未獲任一接
收節(jié)點(diǎn)ACK報(bào)文的報(bào)文,重新向該接收節(jié)點(diǎn)發(fā)送;以及發(fā)送節(jié)點(diǎn)A監(jiān)控所
緩沖的報(bào)文,如果收到組播組全部接收節(jié)點(diǎn)的確認(rèn)標(biāo)識(shí),則相應(yīng)刪除所緩沖
的報(bào)文。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟 可以通過程序指令相關(guān)的硬件來完成,所述的程序可以存儲(chǔ)于一計(jì)算機(jī)可讀 取存儲(chǔ)介質(zhì)中,適用于發(fā)送節(jié)點(diǎn)與接收節(jié)點(diǎn)分布式連接構(gòu)成的系統(tǒng),其中發(fā) 送節(jié)點(diǎn)根據(jù)應(yīng)用協(xié)議的指令建立組播組,所述組播組成員包括至少一個(gè)接收 節(jié)點(diǎn),該程序在執(zhí)行時(shí),包括如下步驟
發(fā)送節(jié)點(diǎn)與組播組內(nèi)的全部接收節(jié)點(diǎn)進(jìn)行會(huì)話協(xié)商,建立會(huì)話并以 組播的形式向所述接收節(jié)點(diǎn)發(fā)送報(bào)文,以及,緩沖所發(fā)送的報(bào)文;
根據(jù)組播會(huì)話協(xié)商的結(jié)果,如果發(fā)送節(jié)點(diǎn)己發(fā)送的報(bào)文符合預(yù)設(shè)的 確認(rèn)條件,但超時(shí)未獲一接收節(jié)點(diǎn)的確認(rèn)標(biāo)識(shí)時(shí),發(fā)送節(jié)點(diǎn)調(diào)用所緩沖 的相應(yīng)報(bào)文并重新向所述接收節(jié)點(diǎn)發(fā)送;
其中,所述確認(rèn)標(biāo)識(shí)在任一接收節(jié)點(diǎn)已接收的報(bào)文符合預(yù)設(shè)的確認(rèn)條件 時(shí),由所述接收節(jié)點(diǎn)向發(fā)送節(jié)點(diǎn)發(fā)送。
所述的存儲(chǔ)介質(zhì)包括ROM/RAM (Read Only Memory/Random-Access Memory,只讀存儲(chǔ)器/隨機(jī)訪問內(nèi)存)、磁碟或者光盤等。本發(fā)明的實(shí)施例還提供了一種分布式節(jié)點(diǎn)組播組件IO,如圖6所示,適
用于發(fā)送節(jié)點(diǎn)與接收節(jié)點(diǎn)分布式連接構(gòu)成的系統(tǒng),其中發(fā)送節(jié)點(diǎn)根據(jù)應(yīng)用助、 議的指令建立組播組,該組播組成員包括至少一個(gè)接收節(jié)點(diǎn)。可以理解,發(fā) 送節(jié)點(diǎn)和接收節(jié)點(diǎn)是根據(jù)應(yīng)用協(xié)議建立鄰居的需要?jiǎng)討B(tài)變化的,每一個(gè)節(jié)點(diǎn)
即可以作為發(fā)送節(jié)點(diǎn)也可以作為接收節(jié)點(diǎn);但對(duì)于一個(gè)組播組而言,其發(fā)送 節(jié)點(diǎn)和接收節(jié)點(diǎn)則是確定的。
該分布式節(jié)點(diǎn)組播組件10還包括運(yùn)行于發(fā)送節(jié)點(diǎn)的組播發(fā)送單元 100和分別運(yùn)行于每一接收節(jié)點(diǎn)的組播接收單元200。
該組播發(fā)送單元100分別與組播組內(nèi)每一接收節(jié)點(diǎn)的組播接收單元 200建立連接,用于根據(jù)應(yīng)用協(xié)議的指令建立組播組,與各組播接收單元 200進(jìn)行會(huì)話協(xié)商并建立會(huì)話,向組播接收單元200組播發(fā)送報(bào)文并緩 沖,以及調(diào)用所緩沖的、符合預(yù)設(shè)的確認(rèn)條件但超時(shí)未獲一組播接收單 元200確認(rèn)標(biāo)識(shí)的相應(yīng)報(bào)文,并重新向該組播接收單元200發(fā)送;
該組播接收單元200用于與組播發(fā)送單元100進(jìn)行會(huì)話協(xié)商并建立會(huì) 話,接收組播發(fā)送單元IOO組播發(fā)送的報(bào)文,以及根據(jù)組播會(huì)話協(xié)商的結(jié)果, 對(duì)已接收到的、符合預(yù)設(shè)的確認(rèn)條件的報(bào)文,向組播發(fā)送單元100發(fā)送確認(rèn) 標(biāo)識(shí)。
可以看出,上述分布式節(jié)點(diǎn)組播組件10能夠?qū)崿F(xiàn)發(fā)送節(jié)點(diǎn)對(duì)于組播報(bào)
文的緩沖和重發(fā),保證了組播的可靠性。
具體的,請(qǐng)參見圖7,顯示了組播發(fā)送單元100的一個(gè)實(shí)施例,包括
一組播組管理模塊101,用于根據(jù)應(yīng)用協(xié)議的指令創(chuàng)建、更新和刪除組 播組。 一般情況下,應(yīng)用協(xié)議需要向多個(gè)鄰居發(fā)送報(bào)文時(shí),就向發(fā)送節(jié)點(diǎn)的 組播組管理模塊101申請(qǐng)創(chuàng)建組播組,由該組播組管理模塊101執(zhí)行具體的 創(chuàng)建操作,包括申請(qǐng)資源,下發(fā)驅(qū)動(dòng),添加組播組成員等;當(dāng)組播組成員發(fā) 生變化,比如刪除/添加某個(gè)或某些成員時(shí),還需要進(jìn)行相應(yīng)的更新操作;當(dāng) 應(yīng)用協(xié)議報(bào)文發(fā)送完成時(shí),觸發(fā)組播組管理模塊101刪除相應(yīng)的組播組。
一會(huì)話管理模塊102,與組播組管理模塊101連接,用于根據(jù)應(yīng)用協(xié)議 的指令,與組播組成員建立直接的聯(lián)系,并進(jìn)行會(huì)話協(xié)商。該會(huì)話協(xié)商的具 體內(nèi)容可根據(jù)實(shí)際需要確定,但至少需要包括以下內(nèi)容
(1 )配置組播報(bào)文序號(hào)編碼規(guī)則;
(2) 配置發(fā)送節(jié)點(diǎn)與各接收節(jié)點(diǎn)協(xié)商配置確認(rèn)條件,該確認(rèn)條件為下 述情況的任意組合累計(jì)發(fā)送/接收到預(yù)設(shè)數(shù)目的連續(xù)報(bào)文;累計(jì)發(fā)送/接收 連續(xù)報(bào)文達(dá)到預(yù)設(shè)時(shí)間;例如
當(dāng)累計(jì)接收到X個(gè)報(bào)文時(shí)發(fā)送ACK報(bào)文;
當(dāng)累計(jì)接收?qǐng)?bào)文達(dá)Y時(shí)間時(shí)發(fā)送ACK報(bào)文,即距前一次發(fā)送ACK報(bào)文
達(dá)Y時(shí)間時(shí);
或者,當(dāng)接收到一些優(yōu)先級(jí)較高的報(bào)文時(shí),即時(shí)發(fā)送ACK報(bào)文。 以及,發(fā)送/接收的報(bào)文超過預(yù)設(shè)的優(yōu)先級(jí);
這樣,通過定時(shí)和批量的方式回復(fù)ACK,減少ACK引起的發(fā)送、接收 帶寬開銷,既避免了ACK報(bào)文過多,也不至于長(zhǎng)期沒有ACK確認(rèn);而對(duì)優(yōu) 先級(jí)較高報(bào)文的即時(shí)回復(fù),能夠保證對(duì)緊急報(bào)文的實(shí)時(shí)處理。
(3) 配置攜帶接收節(jié)點(diǎn)標(biāo)識(shí)以及報(bào)文序號(hào)的確認(rèn)標(biāo)識(shí)格式,這樣,才 能夠保證發(fā)送節(jié)點(diǎn)能夠識(shí)別所確認(rèn)的報(bào)文并對(duì)未確認(rèn)的報(bào)文執(zhí)行重新發(fā)送。
此外,會(huì)話管理模塊102還用于封裝應(yīng)用協(xié)議下發(fā)的會(huì)話報(bào)文。 一第一報(bào)文收發(fā)模塊103,與會(huì)話管理模塊102和組播組管理模塊101 連接,用于向組播組成員以組播的形式發(fā)送報(bào)文,特別是,該報(bào)文收發(fā)模塊 103是通過硬件媒體直接發(fā)送報(bào)文,以充分利用硬件能力,提高發(fā)送效率, 達(dá)到高速通信的目的。該報(bào)文收發(fā)模塊103還用于接收組播組成員的確認(rèn)標(biāo) 識(shí)。
一第一緩沖模塊104,與第一報(bào)文收發(fā)模塊103連接,用于對(duì)所發(fā)送的 報(bào)文進(jìn)行緩沖;
一緩沖監(jiān)控模塊105,監(jiān)控第一緩沖模塊104,并對(duì)于符合預(yù)設(shè)的確認(rèn) 條件但超時(shí)未獲一組播接收單元200確認(rèn)標(biāo)識(shí)的報(bào)文,相應(yīng)觸發(fā)重傳模塊
106;
一重傳模塊106,與第一緩沖模塊104和第一報(bào)文收發(fā)模塊103連接, 用于根據(jù)緩沖監(jiān)控模塊105的觸發(fā),調(diào)用所緩沖的相應(yīng)報(bào)文并通過第一報(bào)文 收發(fā)模塊103重新向該組播組成員發(fā)送。
可以看出,分布式系統(tǒng)節(jié)點(diǎn)間的組播發(fā)送單元100通過本地緩沖,并對(duì) 未確認(rèn)的報(bào)文執(zhí)行重新發(fā)送,能夠保證可靠完整的發(fā)送組播報(bào)文,因此不需 要在本地進(jìn)行發(fā)送情況的檢測(cè),如果發(fā)送失敗,即使設(shè)置了相應(yīng)的失敗提示 信息,組播發(fā)送單元100也無需進(jìn)行任何處理,避免了因?yàn)轭~外的檢測(cè)控制 對(duì)處理資源的占用。
從上述描述可以看出,本發(fā)明實(shí)施例的一個(gè)改進(jìn)之處在于由發(fā)送節(jié)點(diǎn)進(jìn)
行報(bào)文緩沖,該緩沖的報(bào)文用于重傳以及進(jìn)行ACK確認(rèn)。但是,大量的已 發(fā)送報(bào)文長(zhǎng)期保留在緩存中顯然降低了資源的利用率。作為改進(jìn)的方案,為 了避免緩沖報(bào)文過多對(duì)于發(fā)送節(jié)點(diǎn)的資源占用,該組播發(fā)送單元100還包括
一緩沖清空模塊107,與第一報(bào)文收發(fā)模塊103和第一緩沖模塊104連 接,用于根據(jù)組播組全部接收節(jié)點(diǎn)上組播接收單元200的確認(rèn)標(biāo)識(shí),相應(yīng)刪 除所緩沖的報(bào)文。即當(dāng)針對(duì)某一個(gè)組播報(bào)文,收到了組播組中全部成員的 ACK反饋,就可以將其從緩沖中刪除。
相應(yīng)的,本發(fā)明還提供了組播接收單元200的具體實(shí)施例,參見圖8, 包括-
一會(huì)話協(xié)商模塊201,用于與發(fā)送節(jié)點(diǎn)進(jìn)行會(huì)話協(xié)商,建立與發(fā)送 節(jié)點(diǎn)的會(huì)話鏈接;同樣的,該會(huì)話協(xié)商的具體內(nèi)容可根據(jù)實(shí)際需要確定, 但至少需要協(xié)商組播報(bào)文序號(hào)編碼規(guī)則、確認(rèn)條件以及攜帶接收節(jié)點(diǎn)標(biāo) 識(shí)和報(bào)文序號(hào)的確認(rèn)標(biāo)識(shí)格式,以保證發(fā)送節(jié)點(diǎn)識(shí)別己被正確接收的報(bào)文。
一第二報(bào)文收發(fā)模塊202,用于接收發(fā)送節(jié)點(diǎn)組播發(fā)送的報(bào)文,并 通過中斷直接發(fā)送給報(bào)文處理模塊203,避免了任務(wù)切換引起的效率問 題;
--報(bào)文處理模塊203,與會(huì)話協(xié)商模塊201和第二報(bào)文收發(fā)模塊202 連接,用于接收第二報(bào)文收發(fā)模塊201發(fā)送的組播報(bào)文,根據(jù)會(huì)話協(xié)商 結(jié)果,對(duì)已接收到的、符合預(yù)設(shè)的確認(rèn)條件的報(bào)文相應(yīng)觸發(fā)確認(rèn)標(biāo)識(shí)發(fā) 送模塊204;;
一確認(rèn)標(biāo)識(shí)發(fā)送模塊204,與所述第二報(bào)文收發(fā)模塊202連接,用 于根據(jù)報(bào)文處理模塊203的觸發(fā),通過第二報(bào)文收發(fā)模塊202向組播發(fā) 送單元100發(fā)送相應(yīng)的確認(rèn)標(biāo)識(shí)加以確認(rèn)。
較佳的,組播接收單元200的報(bào)文處理模塊203與上層應(yīng)用協(xié)議連 接,用于將接收到的、未發(fā)生缺失的報(bào)文,以隊(duì)列方式直接發(fā)送給應(yīng)用
協(xié)議進(jìn)行處理。從而,取代現(xiàn)有技術(shù)中的緩沖回調(diào)方式,通過隊(duì)列順序 提交,避免了報(bào)文分發(fā)過程被打斷和延誤,提高了處理效率。
上述實(shí)施例的分布式節(jié)點(diǎn)組播組件提供了接收節(jié)點(diǎn)的確認(rèn)機(jī)制。較 佳的,本發(fā)明所提供的分布式節(jié)點(diǎn)組播組件還提供有接收節(jié)點(diǎn)提示機(jī)制, 請(qǐng)參見圖9。其中,組播接收單元200還包括
一重傳請(qǐng)求模塊205,用于根據(jù)所述報(bào)文處理模塊203的觸發(fā),通 過第二報(bào)文收發(fā)模塊202向組播發(fā)送單元發(fā)送重傳請(qǐng)求;其中,所述報(bào) 文處理模塊203根據(jù)會(huì)話協(xié)商結(jié)果對(duì)所接收到報(bào)文的缺失情況加以識(shí)別, 并在發(fā)生報(bào)文缺失的情況下相應(yīng)觸發(fā)重傳請(qǐng)求模塊205;
具體的,報(bào)文處理模塊203對(duì)于缺失報(bào)文的識(shí)別方式可以根據(jù)預(yù)先 的協(xié)商確定,舉例來說,如果協(xié)商的結(jié)果為發(fā)送連續(xù)序號(hào)的報(bào)文,則當(dāng) 接收節(jié)點(diǎn)收到的報(bào)文序號(hào)大于期待的報(bào)文序號(hào)時(shí),就可以識(shí)別具有所期 待序號(hào)的報(bào)文缺失,進(jìn)而發(fā)出重傳請(qǐng)求。同時(shí),該重傳請(qǐng)求的格式也由 協(xié)商確定。
同時(shí),組播發(fā)送單元100中,重傳模塊106還接受第一報(bào)文收發(fā)模塊103 的觸發(fā),用于根據(jù)任一組播接收單元200的重傳請(qǐng)求,調(diào)用所緩沖的相應(yīng)報(bào) 文并通過第一報(bào)文收發(fā)模塊103重新向該組播接收單元200發(fā)送。
通過上述完成提示功能的組播接收單元200和組播發(fā)送單元100,可以 看出,其在發(fā)現(xiàn)缺失報(bào)文的時(shí)候要求重傳,保證了組播的可靠性和及時(shí)性
在上述缺失提示機(jī)制中,為了保證組播報(bào)文處理的順序性,可以對(duì)缺失 報(bào)文的相應(yīng)部分進(jìn)行緩沖,即組播接收單元200還包括第二緩沖模塊206, 與報(bào)文處理模塊203連接,用于對(duì)已接收到的、所缺失報(bào)文之后的組播報(bào)文 進(jìn)行緩沖,并由報(bào)文處理模塊203調(diào)用,與重新發(fā)送的所缺失報(bào)文按照組播 會(huì)話協(xié)商的結(jié)果組合,以便后續(xù)順序處理。
本發(fā)明的實(shí)施例還提供了一種分布式系統(tǒng)1,如圖10所示,包括分 布式應(yīng)用協(xié)議層20、分布式節(jié)點(diǎn)層30以及硬件轉(zhuǎn)發(fā)層40。
該硬件轉(zhuǎn)發(fā)層40用于傳輸組播報(bào)文;
該分布式節(jié)點(diǎn)層30包括多個(gè)分布式連接的節(jié)點(diǎn)31;
該分布式應(yīng)用協(xié)議層20包括與分布式節(jié)點(diǎn)層30中各節(jié)點(diǎn)31 —一對(duì)應(yīng) 連接的應(yīng)用協(xié)議21,用于指令創(chuàng)建組播組和處理組播報(bào)文;
其中,當(dāng)某一應(yīng)用協(xié)議21指令一節(jié)點(diǎn)31創(chuàng)建組播組時(shí),該節(jié)點(diǎn)31就 成為發(fā)送節(jié)點(diǎn),而組播組的其他成員就成為接收節(jié)點(diǎn);
還包括上述的分布式節(jié)點(diǎn)組播組件10,其中,該分布式節(jié)點(diǎn)組播系統(tǒng) 10組播發(fā)送單元100設(shè)置在發(fā)送節(jié)點(diǎn)上,該組播接收單元200設(shè)置在接收節(jié)點(diǎn)上。
本領(lǐng)域普通技術(shù)人員可以理解,由于發(fā)送節(jié)點(diǎn)和接收節(jié)點(diǎn)是根據(jù)實(shí) 際情況不斷轉(zhuǎn)變的,因此在實(shí)際應(yīng)用中,每一個(gè)節(jié)點(diǎn)上都設(shè)有組播發(fā)送 單元100和組播接收單元200,并根據(jù)所在節(jié)點(diǎn)的當(dāng)前角色相應(yīng)啟動(dòng)。
最后所應(yīng)說明的是,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非限 制,盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,本領(lǐng)域的普通技術(shù)人員 應(yīng)當(dāng)理解,可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā) 明技術(shù)方案的精神和范圍。
權(quán)利要求
1.一種分布式節(jié)點(diǎn)組播方法,適用于發(fā)送節(jié)點(diǎn)與接收節(jié)點(diǎn)分布式連接構(gòu)成的系統(tǒng),其中發(fā)送節(jié)點(diǎn)根據(jù)應(yīng)用協(xié)議的指令建立組播組,所述組播組成員包括至少一個(gè)接收節(jié)點(diǎn);其特征在于,包括以下步驟發(fā)送節(jié)點(diǎn)與組播組內(nèi)的全部接收節(jié)點(diǎn)進(jìn)行組播會(huì)話協(xié)商,建立會(huì)話并以組播的形式向所述接收節(jié)點(diǎn)發(fā)送報(bào)文,以及,緩沖所發(fā)送的報(bào)文;根據(jù)組播會(huì)話協(xié)商的結(jié)果,如果發(fā)送節(jié)點(diǎn)已發(fā)送的報(bào)文符合預(yù)設(shè)的確認(rèn)條件,但超時(shí)未獲一接收節(jié)點(diǎn)的確認(rèn)標(biāo)識(shí)時(shí),發(fā)送節(jié)點(diǎn)調(diào)用所緩沖的相應(yīng)報(bào)文并重新向所述接收節(jié)點(diǎn)發(fā)送;其中,所述確認(rèn)標(biāo)識(shí)在任一接收節(jié)點(diǎn)已接收的報(bào)文符合預(yù)設(shè)的確認(rèn)條件時(shí),由所述接收節(jié)點(diǎn)向發(fā)送節(jié)點(diǎn)發(fā)送。
2. 根據(jù)權(quán)利要求1所述的分布式節(jié)點(diǎn)組播方法,其特征在于,所述 進(jìn)行會(huì)話協(xié)商的步驟包括發(fā)送節(jié)點(diǎn)與各接收節(jié)點(diǎn)協(xié)商配置組播報(bào)文序號(hào)編碼規(guī)則; 發(fā)送節(jié)點(diǎn)與各接收節(jié)點(diǎn)協(xié)商配置確認(rèn)條件,該確認(rèn)條件為下述情況 的任意組合累計(jì)發(fā)送/接收到預(yù)設(shè)數(shù)目的連續(xù)報(bào)文;累計(jì)發(fā)送/接收連續(xù) 報(bào)文達(dá)到預(yù)設(shè)時(shí)間;以及,發(fā)送/接收的報(bào)文超過預(yù)設(shè)的優(yōu)先級(jí);發(fā)送節(jié)點(diǎn)和各接收節(jié)點(diǎn)協(xié)商配置確認(rèn)標(biāo)識(shí)格式,所述確認(rèn)標(biāo)識(shí)中攜 帶組播組成員標(biāo)識(shí)以及所確認(rèn)的報(bào)文序號(hào)。
3. 根據(jù)權(quán)利要求1所述的分布式節(jié)點(diǎn)組播方法,其特征在于,還包 括發(fā)送節(jié)點(diǎn)監(jiān)控所緩沖的報(bào)文,根據(jù)組播組全部接收節(jié)點(diǎn)的確認(rèn)標(biāo)識(shí), 相應(yīng)刪除所緩沖的報(bào)文。
4. 根據(jù)權(quán)利要求1所述的分布式節(jié)點(diǎn)組播方法,其特征在于,還包 括.-對(duì)于符合預(yù)設(shè)的確認(rèn)條件的已接收?qǐng)?bào)文,接收節(jié)點(diǎn)以隊(duì)列方式直接 發(fā)送給應(yīng)用協(xié)議進(jìn)行處理。
5. 根據(jù)權(quán)利要求l-4任一所述的分布式節(jié)點(diǎn)組播方法,其特征在于, 還包括對(duì)于不符合預(yù)設(shè)的確認(rèn)條件的已接收?qǐng)?bào)文,接收節(jié)點(diǎn)對(duì)其缺失 情況加以識(shí)別;對(duì)于所缺失的報(bào)文,接收節(jié)點(diǎn)向發(fā)送節(jié)點(diǎn)發(fā)出重傳請(qǐng)求; 接收到任一接收節(jié)點(diǎn)重傳請(qǐng)求的發(fā)送節(jié)點(diǎn)調(diào)用所緩沖的相應(yīng)報(bào)文并重新 向所述接收節(jié)點(diǎn)發(fā)送。
6. 根據(jù)權(quán)利要求5所述的分布式節(jié)點(diǎn)組播方法,其特征在于,還包括接收節(jié)點(diǎn)對(duì)已接收到的、所缺失報(bào)文之后的組播報(bào)文進(jìn)行緩沖,直 至與重新發(fā)送的所缺失報(bào)文按照組播會(huì)話協(xié)商的結(jié)果組合后再發(fā)送給應(yīng) 用協(xié)議進(jìn)行處理。
7. 根據(jù)權(quán)利要求5所述的分布式節(jié)點(diǎn)組播方法,其特征在于,所述對(duì)報(bào)文缺失情況加以識(shí)別的步驟包括接收節(jié)點(diǎn)提取應(yīng)接收?qǐng)?bào)文的報(bào)文序號(hào),所述應(yīng)接收?qǐng)?bào)文的報(bào)文序號(hào) 由組播報(bào)文序號(hào)編碼規(guī)則和上一次接收到的報(bào)文確定;識(shí)別實(shí)際接收?qǐng)?bào)文的序號(hào);與所述應(yīng)接收?qǐng)?bào)文的報(bào)文序號(hào)一致,則未發(fā)生報(bào)文缺失; 與所述應(yīng)接收?qǐng)?bào)文的報(bào)文序號(hào)不一致,則對(duì)應(yīng)的報(bào)文缺失。
8. —種分布式節(jié)點(diǎn)組播組件,適用于發(fā)送節(jié)點(diǎn)與接收節(jié)點(diǎn)分布式連 接構(gòu)成的系統(tǒng),其中發(fā)送節(jié)點(diǎn)根據(jù)應(yīng)用協(xié)議的指令建立組播組,所述組 播組成員包括至少一個(gè)接收節(jié)點(diǎn);其特征在于,包括運(yùn)行于發(fā)送節(jié)點(diǎn)的 組播發(fā)送單元和分別運(yùn)行于每一接收節(jié)點(diǎn)的組播接收單元;所述組播發(fā)送單元分別與組播組內(nèi)每一接收節(jié)點(diǎn)的組播接收單元建 立連接,用于根據(jù)應(yīng)用協(xié)議的指令建立組播組,與所述組播接收單元進(jìn) 行會(huì)話協(xié)商并建立會(huì)話,向所述組播接收單元組播發(fā)送報(bào)文并緩沖,以 及調(diào)用所緩沖的、符合預(yù)設(shè)的確認(rèn)條件但超時(shí)未獲一組播接收單元確認(rèn) 標(biāo)識(shí)的相應(yīng)報(bào)文,并重新向所述組播接收單元發(fā)送;所述組播接收單元用于與所述組播發(fā)送單元進(jìn)行會(huì)話協(xié)商并建立會(huì) 話,接收所述組播發(fā)送單元組播發(fā)送的報(bào)文,以及根據(jù)組播會(huì)話協(xié)商的 結(jié)果,對(duì)已接收到的、符合預(yù)設(shè)的確認(rèn)條件的報(bào)文,向組播發(fā)送單元發(fā) 送確認(rèn)標(biāo)識(shí)。
9. 根據(jù)權(quán)利要求8所述的分布式節(jié)點(diǎn)組播組件,其特征在于,所述 組播發(fā)送單元包括一組播組管理模塊,用于根據(jù)應(yīng)用協(xié)議的指令創(chuàng)建、更新和刪除組 播組;一會(huì)話管理模塊,與所述組播組管理模塊連接,用于根據(jù)應(yīng)用協(xié)議 的指令,與所述接收節(jié)點(diǎn)的組播接收單元進(jìn)行會(huì)話協(xié)商并建立會(huì)話,以 及封裝會(huì)話報(bào)文;一第一報(bào)文收發(fā)模塊,與所述會(huì)話管理模塊和組播組管理模塊連接, 用于向組播接收單元組播發(fā)送報(bào)文,并接收組播接收單元的確認(rèn)標(biāo)識(shí);一第一緩沖模塊,與所述第一報(bào)文收發(fā)模塊連接,用于對(duì)所發(fā)送的 報(bào)文進(jìn)行緩沖;以及一緩沖監(jiān)控模塊,監(jiān)控所述第一緩沖模塊,并對(duì)于符合預(yù)設(shè)的確認(rèn) 條件但超時(shí)未獲一組播接收單元確認(rèn)標(biāo)識(shí)的報(bào)文,相應(yīng)觸發(fā)重傳模塊;一重傳模塊,與所述第一緩沖模塊和第一報(bào)文收發(fā)模塊連接,用于 根據(jù)所述緩沖監(jiān)控模塊的觸發(fā),調(diào)用所緩沖的相應(yīng)報(bào)文并通過所述第一 報(bào)文收發(fā)模塊重新向所述組播接收單元發(fā)送。
10. 根據(jù)權(quán)利要求9所述的分布式節(jié)點(diǎn)組播組件,其特征在于,所述 組播發(fā)送單元還包括一緩沖清空模塊,與所述第一報(bào)文收發(fā)模塊和第一緩沖模塊連接, 用于根據(jù)組播組全部接收節(jié)點(diǎn)上組播接收單元的確認(rèn)標(biāo)識(shí),相應(yīng)刪除所 緩沖的報(bào)文。
11. 根據(jù)權(quán)利要求8所述的分布式節(jié)點(diǎn)組播組件,其特征在于,所述 組播接收單元包括一會(huì)話協(xié)商模塊,用于與組播發(fā)送單元進(jìn)行會(huì)話協(xié)商并建立會(huì)話; 一第二報(bào)文收發(fā)模塊,用于接收所述組播發(fā)送單元組播發(fā)送的報(bào)文,并通過中斷直接發(fā)送給報(bào)文處理模塊;一報(bào)文處理模塊,與所述會(huì)話協(xié)商模塊和第二報(bào)文收發(fā)模塊連接,用于接收所述第二報(bào)文收發(fā)模塊發(fā)送的組播報(bào)文,并根據(jù)會(huì)話協(xié)商的結(jié)果,對(duì)已接收到的、符合預(yù)設(shè)的確認(rèn)條件的報(bào)文相應(yīng)觸發(fā)確認(rèn)標(biāo)識(shí)發(fā)送模塊;一確認(rèn)標(biāo)識(shí)發(fā)送模塊,與所述第二報(bào)文收發(fā)模塊連接,用于根據(jù)報(bào) 文處理模塊的觸發(fā),通過第二報(bào)文收發(fā)模塊向所述組播發(fā)送單元發(fā)送相 應(yīng)的確認(rèn)標(biāo)識(shí)加以確認(rèn)。
12. 根據(jù)權(quán)利要求11所述的分布式節(jié)點(diǎn)組播組件,其特征在于,所 述組播接收單元的報(bào)文處理模塊與上層應(yīng)用協(xié)議連接,用于將接收到的、 未發(fā)生缺失的報(bào)文,以隊(duì)列方式直接發(fā)送給應(yīng)用協(xié)議進(jìn)行處理。
13. 根據(jù)權(quán)利要求8-12任一所述的分布式節(jié)點(diǎn)組播組件,其特征在于,所述組播接收單元還包括一重傳請(qǐng)求模塊,用于根據(jù)所述報(bào)文處理模塊的觸發(fā),通過第二報(bào)文收發(fā)模塊向組播發(fā)送單元發(fā)送重傳請(qǐng)求;其中,所述報(bào)文處理模塊根 據(jù)會(huì)話協(xié)商結(jié)果對(duì)所接收到報(bào)文的缺失情況加以識(shí)別,并在發(fā)生報(bào)文缺 失的情況下相應(yīng)觸發(fā)所述重傳請(qǐng)求模塊;所述組播發(fā)送單元中,所述重傳模塊還接受所述第一報(bào)文收發(fā)模塊 的觸發(fā),用于根據(jù)任一組播接收單元的重傳請(qǐng)求,調(diào)用所緩沖的相應(yīng)報(bào) 文并通過所述第一報(bào)文收發(fā)模塊重新向所述組播接收單元發(fā)送。
14. 根據(jù)權(quán)利要求13所述的分布式節(jié)點(diǎn)組播組件,其特征在于,所 述組播接收單元還包括一第二緩沖模塊,與所述報(bào)文處理模塊連接,用于對(duì)已接收到的、 所缺失報(bào)文之后的組播報(bào)文進(jìn)行緩沖,并由所述報(bào)文處理模塊調(diào)用,與 重新發(fā)送的所缺失報(bào)文按照組播會(huì)話協(xié)商的結(jié)果組合。
15. —種分布式系統(tǒng),包括分布式應(yīng)用協(xié)議層、分布式節(jié)點(diǎn)層以及硬 件轉(zhuǎn)發(fā)層,所述硬件轉(zhuǎn)發(fā)層用于傳輸組播報(bào)文,所述分布式節(jié)點(diǎn)層包括 多個(gè)分布式連接的節(jié)點(diǎn),所述分布式應(yīng)用協(xié)議層包括與所述分布式節(jié)點(diǎn) 層中各節(jié)點(diǎn)一一對(duì)應(yīng)連接的應(yīng)用協(xié)議,用于指令創(chuàng)建組播組和處理組播 報(bào)文;其特征在于,還包括如權(quán)利要求8-14任一所述的分布式節(jié)點(diǎn)組播 組件,其中任一節(jié)點(diǎn)上設(shè)有所述分布式節(jié)點(diǎn)組播組件的組播發(fā)送單元和 組播接收單元。
全文摘要
本發(fā)明公開了一種分布式節(jié)點(diǎn)組播方法和一種分布式節(jié)點(diǎn)組播組件。該方法包括發(fā)送節(jié)點(diǎn)與組播組內(nèi)的全部接收節(jié)點(diǎn)進(jìn)行組播會(huì)話協(xié)商,建立會(huì)話并以組播的形式向接收節(jié)點(diǎn)發(fā)送報(bào)文,以及,緩沖所發(fā)送的報(bào)文;根據(jù)組播會(huì)話協(xié)商的結(jié)果,如果發(fā)送節(jié)點(diǎn)已發(fā)送的報(bào)文符合預(yù)設(shè)的確認(rèn)條件,但超時(shí)未獲一接收節(jié)點(diǎn)的確認(rèn)標(biāo)識(shí)時(shí),發(fā)送節(jié)點(diǎn)調(diào)用所緩沖的相應(yīng)報(bào)文并重新向該接收節(jié)點(diǎn)發(fā)送;其中,確認(rèn)標(biāo)識(shí)在任一接收節(jié)點(diǎn)已接收的報(bào)文符合預(yù)設(shè)的確認(rèn)條件時(shí),由所述接收節(jié)點(diǎn)向發(fā)送節(jié)點(diǎn)發(fā)送。本發(fā)明還公開了一種分布式系統(tǒng)。通過本發(fā)明,保證了節(jié)點(diǎn)間通信的可靠性。
文檔編號(hào)H04L12/56GK101184050SQ20071030170
公開日2008年5月21日 申請(qǐng)日期2007年12月24日 優(yōu)先權(quán)日2007年12月24日
發(fā)明者喬會(huì)來, 周曉東, 舜 唐, 鋼 張, 蓋建華 申請(qǐng)人:杭州華三通信技術(shù)有限公司