国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      組播通信的實(shí)現(xiàn)方法及節(jié)點(diǎn)的制作方法

      文檔序號(hào):7750952閱讀:293來源:國知局
      專利名稱:組播通信的實(shí)現(xiàn)方法及節(jié)點(diǎn)的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明涉及通信領(lǐng)域,具體而言,涉及一種組播通信的實(shí)現(xiàn)方法及節(jié)點(diǎn)。
      背景技術(shù)
      集群是指通過計(jì)算機(jī)網(wǎng)絡(luò)內(nèi)的有效協(xié)同,使多臺(tái)計(jì)算機(jī)對(duì)外提供統(tǒng)一的功能和強(qiáng)大處理能力服務(wù)的特性。集群通信的核心要求是在內(nèi)部網(wǎng)絡(luò)上建立高效且可靠的通信機(jī)制,在集群內(nèi)某個(gè)節(jié)點(diǎn)失效時(shí),能夠被其它節(jié)點(diǎn)快速感知并處理。按照集群通信的要求,集群通信中首先需要在集群內(nèi)所有節(jié)點(diǎn)間建立單播通信連接,使同處于集群中的任意兩個(gè)節(jié)點(diǎn)間都維護(hù)可靠的單播通信連接。集群通信中對(duì)于多播的處理廣泛采用的方式是廣播,通過向集群內(nèi)所有節(jié)點(diǎn)發(fā)送廣播實(shí)現(xiàn)對(duì)多個(gè)節(jié)點(diǎn)消息的同時(shí)發(fā)送。透明進(jìn)程間通信TIPC是目前新興的集群網(wǎng)絡(luò)通信協(xié)議,并且已經(jīng)廣泛的被應(yīng)用在通信領(lǐng)域。TIPC通信中,對(duì)于Cluster (集群)內(nèi)的各個(gè)通信節(jié)點(diǎn),采用在全網(wǎng)絡(luò)內(nèi)建立連接的方式,提供可靠的單播機(jī)制。圖1是根據(jù)相關(guān)技術(shù)的集群內(nèi)組播通信結(jié)構(gòu)的示意圖。TIPC協(xié)議提供的組播功能,是通過向集群內(nèi)所有節(jié)點(diǎn)發(fā)送廣播實(shí)現(xiàn)的,具體地,圖1中每一個(gè)組播組的組播會(huì)通過廣播發(fā)送到所有組播組的節(jié)點(diǎn)。但是,在節(jié)點(diǎn)數(shù)量增加條件下,上述廣播將增大對(duì)網(wǎng)絡(luò)流量的沖擊,并且,很多節(jié)點(diǎn)處理與自己無關(guān)的廣播,將增加其性能開銷并浪費(fèi)很多時(shí)間。

      發(fā)明內(nèi)容
      針對(duì)組播通信在所有節(jié)點(diǎn)之間通過廣播實(shí)現(xiàn),從而增大網(wǎng)絡(luò)沖擊以及增加節(jié)點(diǎn)性能開銷的問題而提出本發(fā)明,為此,本發(fā)明的主要目的在于提供一種組播通信的實(shí)現(xiàn)方法及節(jié)點(diǎn),以解決上述問題。為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的一個(gè)方面,提供了一種組播通信的實(shí)現(xiàn)方法。根據(jù)本發(fā)明的組播通信的實(shí)現(xiàn)方法包括節(jié)點(diǎn)使用預(yù)設(shè)的名稱,建立組播連接; 在組播連接上,建立與名稱對(duì)應(yīng)的組播發(fā)送隊(duì)列和組播接收隊(duì)列;使用組播發(fā)送隊(duì)列和組播接收隊(duì)列,實(shí)現(xiàn)組播通信。進(jìn)一步地,節(jié)點(diǎn)使用預(yù)設(shè)的名稱,建立組播連接包括建立與預(yù)設(shè)的名稱對(duì)應(yīng)的組播端口 ;為組播端口配置對(duì)應(yīng)的組播地址;使用組播地址,建立組播連接。進(jìn)一步地,建立與預(yù)設(shè)的名稱對(duì)應(yīng)的組播端口之后,還包括設(shè)置組播端口的類型為組播傳輸。進(jìn)一步地,在組播連接上,建立與預(yù)設(shè)的名稱對(duì)應(yīng)的組播發(fā)送隊(duì)列和組播接收隊(duì)列包括在組播連接上,發(fā)送攜帶有名稱的組播初始化消息;接收到來自組播連接上除節(jié)點(diǎn)之外的其它節(jié)點(diǎn)的組播初始化確認(rèn)消息,其中,組播初始化確認(rèn)消息用于指示其它節(jié)點(diǎn)與節(jié)點(diǎn)處于相同的組播端口 ;使用組播初始化確認(rèn)消息,建立組播發(fā)送隊(duì)列和組播接收隊(duì)
      4列。進(jìn)一步地,在發(fā)送攜帶有名稱的組播初始化消息之后,還包括其它節(jié)點(diǎn)使用名稱,確認(rèn)節(jié)點(diǎn)和自己處于相同的組播端口 ;根據(jù)組播初始化消息,更新自己的組播接收隊(duì)列。進(jìn)一步地,使用組播發(fā)送隊(duì)列和組播接收隊(duì)列,實(shí)現(xiàn)組播通信包括節(jié)點(diǎn)獲取組播端口中的其它節(jié)點(diǎn);節(jié)點(diǎn)與其它節(jié)點(diǎn)實(shí)現(xiàn)組播通信。進(jìn)一步地,組播初始化確認(rèn)消息通過單播消息進(jìn)行發(fā)送。進(jìn)一步地,還包括刪除組播端口。進(jìn)一步地,刪除組播端口包括在組播端口上,發(fā)送用于指示組播端口的刪除的消息;在預(yù)定時(shí)間內(nèi),接收到來自組播連接上除節(jié)點(diǎn)之外的其它節(jié)點(diǎn)的用于確認(rèn)組播端口的刪除的消息;刪除組播連接和組播地址;執(zhí)行組播端口的刪除的操作。進(jìn)一步地,還包括通過單播消息向其他節(jié)點(diǎn)發(fā)送用于通告組播端口的刪除的消肩、ο為了實(shí)現(xiàn)上述目的,根據(jù)本發(fā)明的另一個(gè)方面,還提供了一種節(jié)點(diǎn)。根據(jù)本發(fā)明的節(jié)點(diǎn)包括第一建立模塊,用于使用預(yù)設(shè)的名稱,建立組播連接;第二建立模塊,用于在組播連接上,建立與名稱對(duì)應(yīng)的組播發(fā)送隊(duì)列和組播接收隊(duì)列;組播通信模塊,用于使用組播發(fā)送隊(duì)列和組播接收隊(duì)列,實(shí)現(xiàn)組播通信。進(jìn)一步地,第一建立模塊包括第一建立子模塊,用于建立與預(yù)設(shè)的名稱對(duì)應(yīng)的組播端口 ;配置子模塊,用于為組播端口配置對(duì)應(yīng)的組播地址;第二建立子模塊,用于使用組播地址,建立組播連接。進(jìn)一步地,第二建立模塊包括發(fā)送子模塊,用于在組播連接上,發(fā)送攜帶有名稱的組播初始化消息;接收子模塊,用于接收來自組播連接上除節(jié)點(diǎn)之外的其它節(jié)點(diǎn)的組播初始化確認(rèn)消息,其中,組播初始化確認(rèn)消息用于指示其它節(jié)點(diǎn)與節(jié)點(diǎn)處于相同的組播端口 ;第三建立子模塊,用于使用組播初始化確認(rèn)消息,建立組播發(fā)送隊(duì)列和組播接收隊(duì)列。通過本發(fā)明,采用節(jié)點(diǎn)使用與預(yù)設(shè)的名稱對(duì)應(yīng)的組播端口實(shí)現(xiàn)組播通信,解決了組播通信在所有節(jié)點(diǎn)之間通過廣播實(shí)現(xiàn)的問題,從而降低網(wǎng)絡(luò)沖擊并減少節(jié)點(diǎn)性能開銷。


      此處所說明的附圖用來提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本發(fā)明的示意性實(shí)施例及其說明用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的不當(dāng)限定。在附圖中圖1是根據(jù)相關(guān)技術(shù)的集群內(nèi)組播通信結(jié)構(gòu)的示意圖;圖2是根據(jù)本發(fā)明實(shí)施例的集群內(nèi)組播通信結(jié)構(gòu)示意圖;圖3是根據(jù)本發(fā)明實(shí)施例的組播通信的實(shí)現(xiàn)方法的流程圖;圖4是根據(jù)本發(fā)明實(shí)施例的建立組播端口的流程圖;圖5是根據(jù)本發(fā)明實(shí)施例的建立組播連接的流程圖;圖6是根據(jù)本發(fā)明實(shí)施例的組播正常通信以及組播確認(rèn)的流程圖;圖7是根據(jù)本發(fā)明實(shí)施例的節(jié)點(diǎn)的結(jié)構(gòu)框圖。
      具體實(shí)施方式
      需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本發(fā)明。圖3是根據(jù)本發(fā)明實(shí)施例的組播通信的實(shí)現(xiàn)方法的流程圖,包括如下的步驟步驟S302,節(jié)點(diǎn)使用預(yù)設(shè)的名稱,建立組播連接。步驟S304,在組播連接上,建立與預(yù)設(shè)的名稱對(duì)應(yīng)的組播發(fā)送隊(duì)列和組播接收隊(duì)列。步驟S306,使用組播發(fā)送隊(duì)列和組播接收隊(duì)列,實(shí)現(xiàn)組播通信。相關(guān)技術(shù)中,組播通信在所有節(jié)點(diǎn)之間通過廣播實(shí)現(xiàn),從而增大網(wǎng)絡(luò)沖擊以及增加節(jié)點(diǎn)性能開銷。本發(fā)明實(shí)施例中,組播發(fā)送隊(duì)列和組播接收隊(duì)列與節(jié)點(diǎn)預(yù)設(shè)的名稱相對(duì)應(yīng),因此,節(jié)點(diǎn)使用該組播接收隊(duì)列進(jìn)行組播通信,可以僅僅在具有該名稱的多個(gè)節(jié)點(diǎn)中進(jìn)行組播的發(fā)送與接收,從而降低網(wǎng)絡(luò)沖擊并減少節(jié)點(diǎn)性能開銷。優(yōu)選地,節(jié)點(diǎn)使用預(yù)設(shè)的名稱,建立組播連接包括建立與預(yù)設(shè)的名稱對(duì)應(yīng)的組播端口 ;為組播端口配置對(duì)應(yīng)的組播地址;使用組播地址,建立組播連接。需要說明的是,本優(yōu)選實(shí)施例是將集群內(nèi)的組播服務(wù)按服務(wù)類型區(qū)分不同組播端口,為不同組播端口配置不同的組播MAC地址,實(shí)現(xiàn)組播。然后,為組播端口配置針對(duì)節(jié)點(diǎn)的多個(gè)組播消息接收隊(duì)列,保證相同組播端口的所有節(jié)點(diǎn)間可靠組播通信。本優(yōu)選實(shí)施例中,相同名稱的組播端口是組播通信的基礎(chǔ),可以提供上層應(yīng)用實(shí)現(xiàn)同一功能類型的組播通信服務(wù)。需要說明的是,在該組播連接上,可以建立組播發(fā)送隊(duì)列和組播接收隊(duì)列,其中, 組播發(fā)送隊(duì)列通常為一個(gè),組播接收隊(duì)列可以為多個(gè),對(duì)應(yīng)于目的節(jié)點(diǎn)(即相同組播端口的節(jié)點(diǎn))。優(yōu)選地,可以在該組播連接上建立多個(gè)上述組播接收隊(duì)列,其可以用于同名組播端口間的正常組播消息的確認(rèn),從而保證組播消息的可靠性。另外,組播端口建立后,需要建立組播連接,保證組播傳輸?shù)目煽啃?。組播連接需要確定初始消息編號(hào),可以采用隨機(jī)生成算法,作為該組播連接的初始消息編號(hào),對(duì)每個(gè)進(jìn)入發(fā)送隊(duì)列的待發(fā)送消息從初始消息編號(hào)開始進(jìn)行編號(hào)。為每個(gè)組播連接建立發(fā)送隊(duì)列, 組播端口建立后通過組播的第一條消息,為同組播端口的每個(gè)節(jié)點(diǎn)建立組播接收隊(duì)列,并更新組播端口計(jì)數(shù)。優(yōu)選地,建立與預(yù)設(shè)的名稱對(duì)應(yīng)的組播端口之后,還包括設(shè)置組播端口的類型為可靠組播傳輸。優(yōu)選地,在組播連接上,建立與預(yù)設(shè)的名稱對(duì)應(yīng)的組播發(fā)送隊(duì)列和組播接收隊(duì)列包括在組播連接上,發(fā)送攜帶有上述預(yù)設(shè)的名稱的組播初始化消息;接收到來自組播連接上除節(jié)點(diǎn)之外的其它節(jié)點(diǎn)的組播初始化確認(rèn)消息,其中,組播初始化確認(rèn)消息用于指示其它節(jié)點(diǎn)與節(jié)點(diǎn)處于相同的組播端口 ;使用組播初始化確認(rèn)消息,建立組播發(fā)送隊(duì)列和組播接收隊(duì)列。需要說明的是,本優(yōu)選實(shí)施例中,通過發(fā)送攜帶有上述預(yù)設(shè)的名稱的組播初始化消息,使與上述預(yù)設(shè)的名稱相對(duì)應(yīng)的組播MAC可以被交換芯片所學(xué)習(xí)到。系統(tǒng)中具有同名端口的其它節(jié)點(diǎn)也可以通過該組播初始化消息識(shí)別該節(jié)點(diǎn)有端口加入了該實(shí)名端口的組播服務(wù)。優(yōu)選地,在發(fā)送攜帶有名稱的組播初始化消息之后,還包括其它節(jié)點(diǎn)使用名稱,確認(rèn)節(jié)點(diǎn)和自己處于相同的組播端口 ;根據(jù)組播初始化消息,更新自己的組播接收隊(duì)列。優(yōu)選地,使用組播發(fā)送隊(duì)列和組播接收隊(duì)列,實(shí)現(xiàn)組播通信包括節(jié)點(diǎn)獲取組播端口中的其它節(jié)點(diǎn);節(jié)點(diǎn)與其它節(jié)點(diǎn)實(shí)現(xiàn)組播通信。需要說明的是,本優(yōu)選實(shí)施例中,實(shí)現(xiàn)組播通信可以包括組播發(fā)送過程、組播接收過程以及組播確認(rèn)過程,下面分別對(duì)其進(jìn)行描述。①組播發(fā)送過程。組播發(fā)送過程可以采用現(xiàn)有技術(shù)滑窗協(xié)議進(jìn)行消息發(fā)送。首先通過命名端口查找目的組播連接,尋找連接中對(duì)應(yīng)的組播MAC地址,再通過網(wǎng)絡(luò)驅(qū)動(dòng)層的發(fā)送接口將待發(fā)送消息通過該目的組播MAC發(fā)送到相應(yīng)的節(jié)點(diǎn)。由滑窗協(xié)議推動(dòng)發(fā)送隊(duì)列繼續(xù)按序發(fā)送下一條組播,已發(fā)送的組播消息進(jìn)入重傳狀態(tài),但發(fā)送方不主動(dòng)發(fā)起重傳,重傳通常只依賴于對(duì)端的確認(rèn)。除非本節(jié)點(diǎn)組播端口發(fā)送隊(duì)列滿,發(fā)送方會(huì)向本組播端口檢測(cè)消息,敦促同組播端口未完成消息確認(rèn)的其它節(jié)點(diǎn)盡快完成消息確認(rèn)過程。②組播接收過程。當(dāng)節(jié)點(diǎn)接收到組播消息,首先根據(jù)組播端口查找組播連接,在組播連接內(nèi)根據(jù)源發(fā)送方的節(jié)點(diǎn)號(hào)查找目的接收隊(duì)列,由相應(yīng)的接收隊(duì)列按序接收,完成消息確認(rèn)。按現(xiàn)有的滑窗協(xié)議,接受消息序號(hào)在正常連續(xù)的序號(hào)接收范圍內(nèi),進(jìn)行端口消息向上派發(fā),并將組播端口中對(duì)該節(jié)點(diǎn)的接收隊(duì)列減小;如果端口針對(duì)特定節(jié)點(diǎn)的組播接收收到了序號(hào)重復(fù)的組播消息,直接刪除,不處理。當(dāng)組播接收窗口滿或確認(rèn)定時(shí)器超時(shí),再發(fā)送確認(rèn)ACK給組播發(fā)送方。如果組播接收消息序號(hào)不連續(xù),立刻發(fā)送亂序確認(rèn)NACK給源發(fā)送方,并告知該端口針對(duì)源節(jié)點(diǎn)最后接收的按序消息序號(hào)。③組播確認(rèn)過程組播發(fā)送方收到任意一個(gè)NACK時(shí),立刻將NACK中消息序號(hào)取出,將該消息序號(hào)以后的所有組播消息全部重傳。組播發(fā)送方接收到ACK時(shí),將組播確認(rèn)計(jì)數(shù)減一。一個(gè)發(fā)送組播消息直到組播連接收到所有同名組播端口的確認(rèn),才會(huì)將該組播消息刪除。如果中間集群內(nèi)有節(jié)點(diǎn)退出服務(wù),由于集群內(nèi)部通信的要求,該節(jié)點(diǎn)與其它節(jié)點(diǎn)間的單播通信連接會(huì)首先斷鏈。依賴于單播通信連接的斷鏈通告,刪除組播連接中包含同名組播端口的節(jié)點(diǎn)接收隊(duì)列,并將該端口組播節(jié)點(diǎn)計(jì)數(shù)減一。優(yōu)選地,組播初始化確認(rèn)消息通過單播消息進(jìn)行發(fā)送。優(yōu)選地,上述方法可以基于TIPC協(xié)議實(shí)現(xiàn),也可以基于傳統(tǒng)的TCP協(xié)議等實(shí)現(xiàn)。對(duì)于同一節(jié)點(diǎn)上用于集群通信的多個(gè)網(wǎng)口設(shè)備,可能會(huì)設(shè)置同一個(gè)組播MAC,在發(fā)送組播消息時(shí),可以同時(shí)向多個(gè)網(wǎng)口同時(shí)發(fā)送,也可以輪流選擇向一個(gè)或幾個(gè)網(wǎng)口發(fā)送。依賴組播接收時(shí)的主動(dòng)過濾將重復(fù)接收的組播消息過濾掉。新組播端口接收其它同名組播端口的初始化組播確認(rèn)后,將組播連接中的節(jié)點(diǎn)計(jì)數(shù)加一,并為組播端口建立針對(duì)目的節(jié)點(diǎn)的組播接收隊(duì)列,并記錄消息接收序列號(hào)??梢钥闯?,一個(gè)組播連接中包含集群內(nèi)所有同名組播端口建立的多個(gè)消息接收隊(duì)列。如果初始化組播或組播確認(rèn)丟失,導(dǎo)致組播連接中的節(jié)點(diǎn)少于實(shí)際系統(tǒng)中存在的組播節(jié)點(diǎn),通過后續(xù)的正常組播和正常組播確認(rèn)也可以完成連接建立過程。要求同名組播端口接收未知節(jié)點(diǎn)的同名組播消息或組播確認(rèn)時(shí),需要立即啟動(dòng)建立對(duì)該節(jié)點(diǎn)的連接,如果是正常組播還需要立即主動(dòng)回應(yīng)組播確認(rèn),協(xié)助對(duì)端節(jié)點(diǎn)建立連接。
      正常狀態(tài)下的組播連接包括——組播端口對(duì)應(yīng)的二層網(wǎng)絡(luò)地址,該組播端口的消息發(fā)送隊(duì)列,集群內(nèi)同名組播端口數(shù)量,針對(duì)集群內(nèi)每個(gè)同名組播端口建立的消息接收隊(duì)列和消息接收序列號(hào)等。通過目的組播接收隊(duì)列的消息確認(rèn)機(jī)制,實(shí)現(xiàn)組播端口的可靠通信。組播通信需要確定初始消息編號(hào),可以采用固定編號(hào)或隨機(jī)生成算法,作為該組播連接的初始消息編號(hào)。為每個(gè)組播連接建立統(tǒng)一的發(fā)送隊(duì)列,對(duì)每個(gè)進(jìn)入消息發(fā)送隊(duì)列的待發(fā)送消息從初始消息編號(hào)開始進(jìn)行編號(hào)。組播連接建立后,后續(xù)加入組播端口的節(jié)點(diǎn)在初始化協(xié)商時(shí)會(huì)通知同名組播端口的其它節(jié)點(diǎn)消息初始編號(hào)。優(yōu)選地,上述方法還包括刪除組播端口。其包括在組播端口上,發(fā)送用于指示組播端口的刪除的消息;在預(yù)定時(shí)間內(nèi),接收到來自組播連接上除節(jié)點(diǎn)之外的其它節(jié)點(diǎn)的用于確認(rèn)組播端口的刪除的消息;刪除組播連接和組播地址;執(zhí)行組播端口的刪除的操作。優(yōu)選地,上述方法還包括通過單播消息向其他節(jié)點(diǎn)發(fā)送用于通告組播端口的刪除的消息。本發(fā)明還提供了一個(gè)優(yōu)選實(shí)施例,結(jié)合了上述多個(gè)優(yōu)選實(shí)施例的技術(shù)方案,下面結(jié)合圖4至圖6來詳細(xì)描述。本發(fā)明的所述本發(fā)明所提供的一種集群通信中基于命名端口的可靠組播技術(shù),包括以下基本處理步驟步驟1,初始化建立命名組播端口,為每個(gè)組播端口配置不同的組播地址;步驟2,為集群內(nèi)相同的組播端口建立組播連接,根據(jù)集群內(nèi)部組播端口發(fā)布,為組播端口動(dòng)態(tài)建立針對(duì)目的節(jié)點(diǎn)的組播接收隊(duì)列;步驟3,基于多個(gè)目的組播接收隊(duì)列的消息確認(rèn)機(jī)制,實(shí)現(xiàn)組播端口的可靠通信。所述的步驟1中,用戶指定建立命名組播端口,通過實(shí)名制區(qū)分集群內(nèi)不同的組播端口,端口每個(gè)名字表示同一類型的應(yīng)用服務(wù)。本發(fā)明建立實(shí)名組播端口和二層組播地址(組播MAC地址)的映射關(guān)系表,為每個(gè)命名組播端口指定單獨(dú)的二層組播地址,并將該組播地址設(shè)置到網(wǎng)絡(luò)設(shè)備上。通過設(shè)置不同命名組播端口的特定組播地址,發(fā)送組播時(shí),可以根據(jù)不同的命名端口指定發(fā)送數(shù)據(jù)的目的方組播地址,保證組播報(bào)文能夠被同名的組播端口所接收。如圖2所示,不同組播組發(fā)送的組播報(bào)文,只能發(fā)送到建立了相同命名組播端口的節(jié)點(diǎn),其余的集群節(jié)點(diǎn)不會(huì)接收到該組播報(bào)文。圖4是根據(jù)本發(fā)明實(shí)施例的建立組播端口的流程圖,描述了集群通信中首先需要在集群內(nèi)所有節(jié)點(diǎn)間建立單播通信連接,使同處于集群中的任意兩個(gè)節(jié)點(diǎn)間都維護(hù)可靠的單播通信連接??梢允褂矛F(xiàn)有技術(shù),比如TIPC協(xié)議,也可以使用傳統(tǒng)的TCP等協(xié)議實(shí)現(xiàn)。包括如下的步驟步驟S402,在所有組播端口建立前,首先建立命名端口的實(shí)名和二層網(wǎng)絡(luò)組播地址的映射關(guān)系(建立組播命名端口和組播地址轉(zhuǎn)換關(guān)系表),確保每個(gè)實(shí)名的組播端口對(duì)應(yīng)一個(gè)唯一的二層網(wǎng)絡(luò)組播地址。步驟S404,根據(jù)用戶指定的信息,建立組播命名端口。集群中一般使用服務(wù)類型和實(shí)例號(hào)確定端口名稱,服務(wù)類型和實(shí)例號(hào)的組合在集群內(nèi)是唯一的,可以通過實(shí)名訪問;步驟S406,通過命名端口的實(shí)名查詢步驟S402建立的映射關(guān)系表,找到本組播端口用于的組播通信的MAC地址。步驟S408,將步驟S406找到的MAC地址設(shè)置到網(wǎng)絡(luò)設(shè)備上。通過上述步驟,組播端口建立后,相同組播端口的組播報(bào)文可以通過同一組播地址通信,不會(huì)把組播消息發(fā)送到集群內(nèi)無關(guān)的節(jié)點(diǎn)上。圖5是本發(fā)明實(shí)施例中建立組播連接的流程示意圖,描述了集群內(nèi)相同的組播端口需要建立組播連接,根據(jù)向集群內(nèi)部相同組播端口發(fā)送的第一條發(fā)布消息,為組播端口動(dòng)態(tài)建立針對(duì)目的節(jié)點(diǎn)的組播接收隊(duì)列。包括如下的步驟步驟S502,建立組播端口建立后,構(gòu)造第一條初始化組播消息并完成發(fā)送,該消息中攜帶本地節(jié)點(diǎn)信息和本地端口消息發(fā)送初始序列號(hào)。步驟S504,相同實(shí)名的組播端口節(jié)點(diǎn)接收新組播端口初始化組播消息。步驟S506,相同實(shí)名組播端口的節(jié)點(diǎn)記錄新增加的節(jié)點(diǎn)。步驟S508,相同實(shí)名組播端口的節(jié)點(diǎn)為新增加組播端口的節(jié)點(diǎn)增加消息接收隊(duì)列。步驟S510,相同實(shí)名組播端口的節(jié)點(diǎn)向新增加組播端口的節(jié)點(diǎn)發(fā)送組播連接建立確認(rèn),并攜帶本實(shí)名組播端口的節(jié)點(diǎn)信息以及組播消息序列號(hào)。步驟S512,新增加組播端口的節(jié)點(diǎn)接收組播連接建立確認(rèn)消息,同樣,為相同實(shí)名組播端口的節(jié)點(diǎn)增加消息接收隊(duì)列和接收組播消息序列號(hào)??梢钥闯觯粋€(gè)組播連接中包含集群內(nèi)所有同名組播端口建立的多個(gè)消息接收隊(duì)列。由此可見,本實(shí)施方式中建立的組播連接包括——組播端口對(duì)應(yīng)的二層網(wǎng)絡(luò)地址,該組播端口的消息發(fā)送隊(duì)列和發(fā)送初始序列號(hào),集群內(nèi)同名組播端口數(shù)量,針對(duì)集群內(nèi)每個(gè)同名組播端口建立的消息接收隊(duì)列和消息接收序列號(hào)等。組播連接建立后,應(yīng)用可以使用命名組播端口實(shí)現(xiàn)組播通信了。圖6是本發(fā)明實(shí)施例中組播正常通信以及組播確認(rèn)的流程示意圖,描述了基于目的組播接收隊(duì)列的消息確認(rèn)機(jī)制,實(shí)現(xiàn)組播端口的可靠通信,避免組播消息在傳輸過程中消息亂序和丟失。包括如下的步驟步驟S602,查找組播命名端口對(duì)應(yīng)的組播通信連接,將發(fā)送消息添加到消息發(fā)送隊(duì)列,進(jìn)入連接發(fā)送過程;步驟S604,按組播序號(hào)順序發(fā)送組播消息,使用該命名端口對(duì)應(yīng)的組播MAC地址發(fā)送組播消息到所有具有同名組播端口的節(jié)點(diǎn),設(shè)置需要確認(rèn)的組播節(jié)點(diǎn)數(shù)目;步驟S606,節(jié)點(diǎn)接收到組播消息,首先根據(jù)組播端口查找組播連接,然后在組播連接內(nèi)根據(jù)源發(fā)送方的節(jié)點(diǎn)號(hào)查找目的接收隊(duì)列;步驟S608,在源發(fā)送方的節(jié)點(diǎn)號(hào)對(duì)應(yīng)的目的消息接收隊(duì)列中檢查組播消息序列號(hào),派發(fā)所有按序到達(dá)的組播消息,更新組播接收隊(duì)列的接收組播消息序列號(hào),并設(shè)置確認(rèn)定時(shí)器;對(duì)不按序到達(dá)的組播消息向源發(fā)送方回應(yīng)亂序確認(rèn);當(dāng)組播接收窗口滿或確認(rèn)定時(shí)器超時(shí),再發(fā)送確認(rèn)ACK給組播發(fā)送方;步驟S610,發(fā)送方組播消息確認(rèn)處理,如果是正常確認(rèn),將發(fā)送消息隊(duì)列中已經(jīng)確認(rèn)消息的組播節(jié)點(diǎn)數(shù)目減一;如果是亂序確認(rèn),會(huì)觸發(fā)發(fā)送方的組播重傳,等待接收方再次確定是否按序接收;步驟S612,發(fā)送方接收到所有同名組播端口節(jié)點(diǎn)的消息確認(rèn),即發(fā)送隊(duì)列中該消息需要確認(rèn)的組播節(jié)點(diǎn)數(shù)目減小為0,則刪除消息發(fā)送隊(duì)列里該消息。需要說明的是,消息確認(rèn)編號(hào)可以攜帶在同名端口正常通信的其它組播消息中, 以減少網(wǎng)絡(luò)間通信流量。需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。本發(fā)明實(shí)施例提供了一種節(jié)點(diǎn),該節(jié)點(diǎn)可以用于實(shí)現(xiàn)上述組播通信的實(shí)現(xiàn)方法。 圖7是根據(jù)本發(fā)明實(shí)施例的節(jié)點(diǎn)的結(jié)構(gòu)框圖,包括第一建立模塊72、第二建立模塊74和組播通信模塊76。第一建立模塊72,用于使用預(yù)設(shè)的名稱,建立組播連接;第二建立模塊74,連接至第一建立模塊72,用于在第一建立模塊72建立的組播連接上,建立與名稱對(duì)應(yīng)的組播發(fā)送隊(duì)列和組播接收隊(duì)列;組播通信模塊76,連接至第二建立模塊74,用于使用第二建立模塊 74建立的組播發(fā)送隊(duì)列和組播接收隊(duì)列,實(shí)現(xiàn)組播通信。相關(guān)技術(shù)中,組播通信在所有節(jié)點(diǎn)之間通過廣播實(shí)現(xiàn)。本發(fā)明實(shí)施例中,第二建立模塊74建立的組播端口與為節(jié)點(diǎn)預(yù)設(shè)的名稱相對(duì)應(yīng),因此,組播通信模塊76使用該組播連接進(jìn)行組播通信,可以僅僅在具有該名稱的多個(gè)節(jié)點(diǎn)中進(jìn)行組播的發(fā)送與接收,從而降低網(wǎng)絡(luò)沖擊并減少節(jié)點(diǎn)性能開銷。優(yōu)選地,第一建立模塊72包括第一建立子模塊722、配置子模塊7M和第二建立子模塊M6。第一建立子模塊722,用于建立與預(yù)設(shè)的名稱對(duì)應(yīng)的組播端口 ;配置子模塊724, 連接至第一建立子模塊722,用于為第一建立子模塊722建立的組播端口配置對(duì)應(yīng)的組播地址;第二建立子模塊726,連接至配置子模塊724,用于使用配置子模塊7M配置的組播地址,建立組播連接。優(yōu)選地,第二建立模塊74包括發(fā)送子模塊742、接收子模塊744和第三建立子模塊 746。發(fā)送子模塊742,連接至第二建立子模塊726,用于在第二建立子模塊7 建立的組播連接上,發(fā)送攜帶有名稱的組播初始化消息;接收子模塊744,用于接收來自組播連接上除節(jié)點(diǎn)之外的其它節(jié)點(diǎn)的組播初始化確認(rèn)消息,其中,組播初始化確認(rèn)消息用于指示其它節(jié)點(diǎn)與節(jié)點(diǎn)處于相同的組播端口 ;第三建立子模塊746,連接至接收子模塊744,用于使用接收子模塊744接收的組播初始化確認(rèn)消息,建立組播發(fā)送隊(duì)列和組播接收隊(duì)列。需要說明的是,裝置實(shí)施例中描述的節(jié)點(diǎn)對(duì)應(yīng)于上述的方法實(shí)施例,其具體的實(shí)現(xiàn)過程在方法實(shí)施例中已經(jīng)進(jìn)行過詳細(xì)說明,在此不再贅述。綜上所述,本發(fā)明的上述實(shí)施例在集群內(nèi)部單播通信連接基礎(chǔ)上,為應(yīng)用服務(wù)劃分組播端口和組播地址,針對(duì)集群內(nèi)建立同名組播端口的所有節(jié)點(diǎn)建立消息連接,使用同名組播端口的多個(gè)消息接收隊(duì)列的消息確認(rèn)機(jī)制,保證組播通信的可靠性,把組播通信的范圍限定在建立同名組播端口的節(jié)點(diǎn)間。另外,本發(fā)明可以有效減少網(wǎng)絡(luò)中廣播通信的流量,避免集群節(jié)點(diǎn)接收和處理與自己無關(guān)的組播消息,提高了系統(tǒng)處理性能,同時(shí)還有效的保證了用戶通信的私密性。因此,通過本發(fā)明的組播通信的實(shí)現(xiàn)方法及節(jié)點(diǎn),采用節(jié)點(diǎn)使用與預(yù)設(shè)的名稱對(duì)應(yīng)的組播端口實(shí)現(xiàn)組播通信,解決了組播通信在所有節(jié)點(diǎn)之間通過廣播實(shí)現(xiàn)的問題,從而降低網(wǎng)絡(luò)沖擊并減少節(jié)點(diǎn)性能開銷。顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
      權(quán)利要求
      1.一種組播通信的實(shí)現(xiàn)方法,其特征在于,包括 節(jié)點(diǎn)使用預(yù)設(shè)的名稱,建立組播連接;在所述組播連接上,建立與所述名稱對(duì)應(yīng)的組播發(fā)送隊(duì)列和組播接收隊(duì)列; 使用所述組播發(fā)送隊(duì)列和所述組播接收隊(duì)列,實(shí)現(xiàn)所述組播通信。
      2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述節(jié)點(diǎn)使用所述預(yù)設(shè)的名稱,建立所述組播連接包括建立與所述預(yù)設(shè)的名稱對(duì)應(yīng)的組播端口; 為所述組播端口配置對(duì)應(yīng)的組播地址; 使用所述組播地址,建立所述組播連接。
      3.根據(jù)權(quán)利要求2所述的方法,其特征在于,建立與所述預(yù)設(shè)的名稱對(duì)應(yīng)的組播端口之后,還包括設(shè)置所述組播端口的類型為組播傳輸。
      4.根據(jù)權(quán)利要求2所述的方法,其特征在于,在所述組播連接上,建立與所述預(yù)設(shè)的名稱對(duì)應(yīng)的所述組播發(fā)送隊(duì)列和所述組播接收隊(duì)列包括在所述組播連接上,發(fā)送攜帶有所述名稱的組播初始化消息; 接收到來自所述組播連接上除所述節(jié)點(diǎn)之外的其它節(jié)點(diǎn)的組播初始化確認(rèn)消息,其中,所述組播初始化確認(rèn)消息用于指示所述其它節(jié)點(diǎn)與所述節(jié)點(diǎn)處于相同的組播端口 ; 使用所述組播初始化確認(rèn)消息,建立所述組播發(fā)送隊(duì)列和所述組播接收隊(duì)列。
      5.根據(jù)權(quán)利要求4所述的方法,其特征在于,在發(fā)送攜帶有所述名稱的所述組播初始化消息之后,還包括所述其它節(jié)點(diǎn)使用所述名稱,確認(rèn)所述節(jié)點(diǎn)和自己處于相同的組播端口 ; 根據(jù)所述組播初始化消息,更新自己的組播接收隊(duì)列。
      6.根據(jù)權(quán)利要求4所述的方法,其特征在于,使用所述組播發(fā)送隊(duì)列和所述組播接收隊(duì)列,實(shí)現(xiàn)所述組播通信包括所述節(jié)點(diǎn)獲取所述組播端口中的所述其它節(jié)點(diǎn); 所述節(jié)點(diǎn)與所述其它節(jié)點(diǎn)實(shí)現(xiàn)所述組播通信。
      7.根據(jù)權(quán)利要求4至6中任一項(xiàng)所述的方法,其特征在于,所述組播初始化確認(rèn)消息通過單播消息進(jìn)行發(fā)送。
      8.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括刪除所述組播端口。
      9.根據(jù)權(quán)利要求8所述的方法,其特征在于,刪除所述組播端口包括 在所述組播端口上,發(fā)送用于指示所述組播端口的刪除的消息;在預(yù)定時(shí)間內(nèi),接收到來自所述組播連接上除所述節(jié)點(diǎn)之外的其它節(jié)點(diǎn)的用于確認(rèn)所述組播端口的刪除的消息;刪除所述組播連接和所述組播地址; 執(zhí)行所述組播端口的刪除的操作。
      10.根據(jù)權(quán)利要求9所述的方法,其特征在于,還包括通過單播消息向所述其他節(jié)點(diǎn)發(fā)送用于通告所述組播端口的刪除的消息。
      11.一種節(jié)點(diǎn),其特征在于,包括第一建立模塊,用于使用預(yù)設(shè)的名稱,建立組播連接;第二建立模塊,用于在所述組播連接上,建立與所述名稱對(duì)應(yīng)的組播發(fā)送隊(duì)列和組播接收隊(duì)列;組播通信模塊,用于使用所述組播發(fā)送隊(duì)列和所述組播接收隊(duì)列,實(shí)現(xiàn)所述組播通信。
      12.根據(jù)權(quán)利要求11所述的節(jié)點(diǎn),其特征在于,所述第一建立模塊包括 第一建立子模塊,用于建立與所述預(yù)設(shè)的名稱對(duì)應(yīng)的組播端口 ; 配置子模塊,用于為所述組播端口配置對(duì)應(yīng)的組播地址;第二建立子模塊,用于使用所述組播地址,建立所述組播連接。
      13.根據(jù)權(quán)利要求11所述的節(jié)點(diǎn),其特征在于,所述第二建立模塊包括 發(fā)送子模塊,用于在所述組播連接上,發(fā)送攜帶有所述名稱的組播初始化消息;接收子模塊,用于接收來自所述組播連接上除所述節(jié)點(diǎn)之外的其它節(jié)點(diǎn)的組播初始化確認(rèn)消息,其中,所述組播初始化確認(rèn)消息用于指示所述其它節(jié)點(diǎn)與所述節(jié)點(diǎn)處于相同的組播端口 ;第三建立子模塊,用于使用所述組播初始化確認(rèn)消息,建立所述組播發(fā)送隊(duì)列和所述組播接收隊(duì)列。
      全文摘要
      本發(fā)明公開了一種組播通信的實(shí)現(xiàn)方法及節(jié)點(diǎn)。該方法包括節(jié)點(diǎn)使用預(yù)設(shè)的名稱,建立組播連接;在組播連接上,建立與名稱對(duì)應(yīng)的組播發(fā)送隊(duì)列和組播接收隊(duì)列;使用組播發(fā)送隊(duì)列和組播接收隊(duì)列,實(shí)現(xiàn)組播通信。本發(fā)明降低了網(wǎng)絡(luò)沖擊并減少節(jié)點(diǎn)性能開銷。
      文檔編號(hào)H04L29/06GK102263780SQ20101019517
      公開日2011年11月30日 申請(qǐng)日期2010年5月25日 優(yōu)先權(quán)日2010年5月25日
      發(fā)明者劉忱, 吳應(yīng)祥, 周自春 申請(qǐng)人:中興通訊股份有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1