国产精品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>

      可靠多播通信的制作方法

      文檔序號:7609209閱讀:201來源:國知局
      專利名稱:可靠多播通信的制作方法
      技術(shù)領(lǐng)域
      本發(fā)明的一個(gè)實(shí)施例涉及通信和計(jì)算機(jī)系統(tǒng);更具體地說,一個(gè)實(shí)施例尤其涉及可靠多播通信,例如可以包括指定哪個(gè)或哪些節(jié)點(diǎn)對消息作出確認(rèn),以及/或者是立即對消息作出確認(rèn)還是延遲對消息作出確認(rèn),該過程尤其可以與路由器、分組交換系統(tǒng)、計(jì)算機(jī)系統(tǒng)和其他設(shè)備一起使用。
      背景技術(shù)
      通信工業(yè)正快速改變,以適應(yīng)日新月異的技術(shù)和不斷增加的客戶需求。這種客戶對新應(yīng)用和對現(xiàn)有應(yīng)用的提高的性能的需求正驅(qū)動通信網(wǎng)絡(luò)和系統(tǒng)提供者采用具有更高速度和更大容量(例如,更寬帶寬)的網(wǎng)絡(luò)和系統(tǒng)。在試圖實(shí)現(xiàn)這些目標(biāo)時(shí),許多通信提供者所采取的常用方法是使用分組交換技術(shù)。正越來越多的使用諸如因特網(wǎng)協(xié)議(IP)之類的各種分組技術(shù)來構(gòu)建和擴(kuò)展公共通信網(wǎng)絡(luò)和專用通信網(wǎng)絡(luò)。
      多播通信通常用來從一個(gè)源向一組目的地(例如,一個(gè)或多個(gè)節(jié)點(diǎn))傳輸信息。在許多應(yīng)用中,使用不可靠的多播消息傳輸,接收者補(bǔ)償或忽略丟失的消息。
      然而,在一些應(yīng)用中,必須保證向一組目的地分發(fā)的信息被每個(gè)接收者接收到,因此必須使用某些形式的可靠通信。例如,可以在發(fā)送者和每個(gè)接收者之間建立連接,同時(shí)使用可靠傳輸協(xié)議傳輸消息。然而,這種技術(shù)要求大量的資源用于產(chǎn)生并發(fā)送消息到每個(gè)節(jié)點(diǎn),還需要原始消息的發(fā)送者處理每個(gè)確認(rèn)消息。
      已知的系統(tǒng)通過向一組接收節(jié)點(diǎn)發(fā)送多播消息(而不是多個(gè)單播消息),而每個(gè)接收節(jié)點(diǎn)向發(fā)送者發(fā)送回確認(rèn)消息,從而減少發(fā)送節(jié)點(diǎn)發(fā)送的原始消息的數(shù)目。這雖然減少了發(fā)送者發(fā)送的消息的數(shù)目,但是仍要求對每個(gè)消息作出確認(rèn),并且發(fā)送者必須處理所有確認(rèn)消息。另一種系統(tǒng)通過引入確認(rèn)節(jié)點(diǎn)的分層結(jié)構(gòu)來減少由發(fā)送者接收和處理的確認(rèn)消息的數(shù)量,其中,多個(gè)接收節(jié)點(diǎn)的子集向一個(gè)或多個(gè)中間節(jié)點(diǎn)確認(rèn)每條特定的消息,中間節(jié)點(diǎn)進(jìn)而向發(fā)送者發(fā)送單個(gè)確認(rèn)消息,這單個(gè)確認(rèn)消息代表它自身和關(guān)聯(lián)的多個(gè)其他接收節(jié)點(diǎn)。
      期望還有到一組節(jié)點(diǎn)的其他形式的可靠通信。

      發(fā)明內(nèi)容
      本發(fā)明公開了用于可靠多播通信的方法、設(shè)備、數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)可讀介質(zhì)、機(jī)構(gòu)和裝置等,例如可以包括指定哪個(gè)或哪些節(jié)點(diǎn)對消息作出確認(rèn),以及/或者是立即對消息作出確認(rèn)還是延遲對消息作出確認(rèn),該過程尤其可以與路由器、分組交換系統(tǒng)、計(jì)算機(jī)系統(tǒng)和其他設(shè)備一起使用。由于實(shí)施例及其相應(yīng)的應(yīng)用的數(shù)目是可擴(kuò)展的,所以利用這種可靠通信方案的節(jié)點(diǎn)可以與不同的計(jì)算機(jī)、元件、組件或其他設(shè)備等等相對應(yīng),這些設(shè)備以某種方式連接,例如通過網(wǎng)絡(luò)、系統(tǒng)總線、交換結(jié)構(gòu)、線纜或任何其他通信機(jī)制。
      在一個(gè)實(shí)施例中,向多個(gè)節(jié)點(diǎn)發(fā)送多播消息,多播消息包括對一個(gè)或多個(gè)被指定要對該消息作出確認(rèn)的節(jié)點(diǎn)的指示、序列號或其他消息標(biāo)識值,并且還可能包括對是請求立即確認(rèn)還是請求延遲確認(rèn)的指示。如果接收消息的節(jié)點(diǎn)被指定對該消息作出確認(rèn),則該節(jié)點(diǎn)作出相應(yīng)的響應(yīng),這可以包括請求任何丟失的消息,以及/或者發(fā)送對從該節(jié)點(diǎn)發(fā)送其上一確認(rèn)消息起它已接收到的消息的確認(rèn)消息。


      所附權(quán)利要求書具體闡述了本發(fā)明的特征。結(jié)合附圖從下面的詳細(xì)描述中,可以最好地理解本發(fā)明及其優(yōu)點(diǎn),在附圖中圖1是示出了根據(jù)本發(fā)明一個(gè)實(shí)施例彼此通信的節(jié)點(diǎn)的示例的框圖;圖2A是示出了在一個(gè)實(shí)施例中用于發(fā)送多播消息的過程的流程圖;圖2B是示出了在一個(gè)實(shí)施例中用于接收和處理確認(rèn)消息的過程的流程圖;
      圖3是示出了在一個(gè)實(shí)施例中用于接收和處理多播消息和發(fā)送確認(rèn)消息的過程的流程圖;以及圖4A到圖4C是示出了在一個(gè)實(shí)施例中使用的各種消息的框圖。
      具體實(shí)施例方式
      本發(fā)明公開了用于可靠多播通信的方法、設(shè)備、數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)可讀介質(zhì)、機(jī)構(gòu)和裝置等,例如可以包括指定哪個(gè)或哪些節(jié)點(diǎn)對消息作出確認(rèn),以及/或者是立即對消息作出確認(rèn)還是延遲對消息作出確認(rèn),該過程尤其可以與路由器、分組交換系統(tǒng)、計(jì)算機(jī)系統(tǒng)和其他設(shè)備一起使用。
      這里所述的實(shí)施例包括各種元素和限制,但是沒有一個(gè)元素和限制被設(shè)想為是關(guān)鍵元素和限制。每個(gè)權(quán)利要求在整體上單獨(dú)陳述本發(fā)明的一個(gè)方面。此外,所述的一些實(shí)施例可以包括但不限于系統(tǒng)、網(wǎng)絡(luò)、集成電路芯片、嵌入式處理器、ASIC、方法和包含指令的計(jì)算機(jī)可讀介質(zhì)等。一個(gè)或多個(gè)系統(tǒng)、設(shè)備、組件等可以包括一個(gè)或多個(gè)實(shí)施例,實(shí)施例可以包括由相同或不同的系統(tǒng)、設(shè)備、組件等執(zhí)行的權(quán)利要求的一些元素和限制。下文所述的實(shí)施例實(shí)現(xiàn)本發(fā)明的范圍和精神內(nèi)的各個(gè)方面和配置,同時(shí)附圖示出示例性的而非限制性的配置。
      這里所使用的術(shù)語“分組”指所有類型的分組或任何其他信息或數(shù)據(jù)單元,包括但不限于固定長度的信元和可變長度的分組,它們中的每個(gè)可以劃分為更小的分組或信元,或者不可以劃分為更小的分組或信元。這里所使用的術(shù)語“分組”還指分組自身或分組指示二者,例如但不限于分組或分組頭部的全部或一部分、分組的數(shù)據(jù)結(jié)構(gòu)值、指針或索引、或者任何其他部分或標(biāo)識。此外,這些分組可以包含一類或多類信息,包括但不限于語音、數(shù)據(jù)、視頻和音頻信息。術(shù)語“項(xiàng)”在這里總地用來指分組或任何其他信息或數(shù)據(jù)單元或片斷、設(shè)備、組件、元件、或者任何其他實(shí)體。短語“處理分組”和“分組處理”一般指基于分組的內(nèi)容(例如,分組頭部或其他字段)執(zhí)行一些步驟或動作,并且這些步驟或動作可能或可能不包括修改、存儲、丟棄、以及/或者轉(zhuǎn)發(fā)分組和/或關(guān)聯(lián)數(shù)據(jù)。
      術(shù)語“系統(tǒng)”在這里總地用來描述任意數(shù)量的組件、元件、子系統(tǒng)、設(shè)備、分組交換元件、分組交換機(jī)、路由器、網(wǎng)絡(luò)、計(jì)算機(jī)和/或通信設(shè)備或機(jī)制、或者它們的組件的組合。術(shù)語“計(jì)算機(jī)”在這里總地用來描述任意數(shù)量的計(jì)算機(jī),包括但不限于個(gè)人計(jì)算機(jī)、嵌入式處理元件和系統(tǒng)、控制邏輯、ASIC、芯片、工作站、主機(jī)等。術(shù)語“處理元件”在這里總地用來描述任何類型的處理機(jī)構(gòu)和設(shè)備,例如,處理器、ASIC、現(xiàn)場可編程門陣列、計(jì)算機(jī)等。術(shù)語“設(shè)備”在這里總地用來描述任何類型的機(jī)構(gòu),包括計(jì)算機(jī)或系統(tǒng)或它們的組件。術(shù)語“任務(wù)”和“進(jìn)程”在這里總地用來描述任何類型的運(yùn)行的程序,包括但不限于計(jì)算機(jī)進(jìn)程、任務(wù)、線程、執(zhí)行的應(yīng)用、操作系統(tǒng)、用戶進(jìn)程、設(shè)備驅(qū)動、原始代碼、及其或其他語言等,并且可以是交互式的和/或非交互式的、本地和/或遠(yuǎn)程執(zhí)行的、前臺和/或后臺執(zhí)行的、在用戶和/或操作系統(tǒng)地址空間中執(zhí)行的、庫的子例程和/或獨(dú)立的應(yīng)用,并且不限于任何具體的存儲器分區(qū)技術(shù)。在包括但不限于任何框圖和流程圖、以及消息序列圖中示出的步驟、連接和對信號和信息的處理可以以相同或不同的串行或并行順序執(zhí)行,并且/或者可以由不同的組件和/或進(jìn)程、線程等執(zhí)行,并且/或者通過不同的連接執(zhí)行,以及與其他實(shí)施例中的其他功能組合仍在本發(fā)明的范圍和精神內(nèi)。此外,術(shù)語“標(biāo)識”總地用來描述任何方式和機(jī)制,這些方式和機(jī)制用來直接或間接確定某些內(nèi)容,可以包括但不限于接收、從存儲器提取、確定、定義、計(jì)算、生成等。
      此外,術(shù)語“網(wǎng)絡(luò)”和“通信機(jī)制”在這里總地用來描述一個(gè)或多個(gè)網(wǎng)絡(luò)、通信介質(zhì)或通信系統(tǒng),包括但不限于因特網(wǎng)、專用或公共電話網(wǎng)、蜂窩網(wǎng)、無線網(wǎng)、衛(wèi)星網(wǎng)、電纜網(wǎng)、局域網(wǎng)、城域網(wǎng)和/或廣域網(wǎng)、電纜、電連接、總線等,以及內(nèi)部通信機(jī)制,例如消息傳遞、進(jìn)程間通信、共享存儲器等。術(shù)語“消息”在這里總地用來描述信息片斷,其可以包括或者可以不包括但是一般是經(jīng)由一個(gè)或多個(gè)任何類型的通信機(jī)制進(jìn)行通信的。
      術(shù)語“存儲機(jī)構(gòu)”包括任何類型的存儲器、存儲設(shè)備或用于保存任何格式的指令或數(shù)據(jù)的其他機(jī)構(gòu)?!坝?jì)算機(jī)可讀介質(zhì)”是一個(gè)可擴(kuò)展的術(shù)語,包括任何存儲器、存儲設(shè)備、存儲機(jī)構(gòu)、以及其他存儲和信令機(jī)制,包括諸如網(wǎng)絡(luò)接口卡及其中的緩沖區(qū)之類的接口和設(shè)備、以及任何通信設(shè)備和接收和發(fā)送的信號,以及計(jì)算機(jī)化的系統(tǒng)可以解釋、接收和/或發(fā)送的其他當(dāng)前和正在開發(fā)的技術(shù)。術(shù)語“存儲器”包括任意隨機(jī)訪問存儲器(RAM)、只讀存儲器(ROM)、閃存、集成電路和/或其他存儲組件或元件。術(shù)語“存儲設(shè)備”包括任何固態(tài)存儲介質(zhì)、盤驅(qū)動器、磁盤、聯(lián)網(wǎng)的服務(wù)、帶驅(qū)動器和其他存儲器設(shè)備。存儲器和存儲設(shè)備可以存儲要由處理元件和/或控制邏輯執(zhí)行的計(jì)算機(jī)可執(zhí)行的指令、以及由處理元件和/或控制邏輯操縱的數(shù)據(jù)。術(shù)語“數(shù)據(jù)結(jié)構(gòu)”是一個(gè)可擴(kuò)展的術(shù)語,指任何數(shù)據(jù)元素、變量、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)庫和/可被應(yīng)用到數(shù)據(jù)來幫助解釋數(shù)據(jù)或?qū)?shù)據(jù)執(zhí)行操作的或一個(gè)或多個(gè)組織方案,例如包括但不限于存儲器位置或設(shè)備、集合、隊(duì)列、樹、堆、列表、鏈接列表、數(shù)組、表、指針等。數(shù)據(jù)結(jié)構(gòu)一般保存在存儲機(jī)構(gòu)中。術(shù)語“指針”和“鏈接”在這里總地用來標(biāo)識一些機(jī)制,用于引用或標(biāo)識另一個(gè)元素、組件或其他實(shí)體,并且這些可以包括但不限于對存儲器或其他存儲機(jī)構(gòu)或其中的位置的引用、數(shù)據(jù)結(jié)構(gòu)中的索引、值等。
      術(shù)語“一個(gè)實(shí)施例”在這里用來引用特定的實(shí)施例,其中每次對“一個(gè)實(shí)施例”的引用可以指不同的實(shí)施例,并且在描述相關(guān)的特征、元素和/或限制時(shí)重復(fù)使用該術(shù)語并不是建立每個(gè)和所有實(shí)施例必須包括的相關(guān)特征、元素和/或限制的累積集合,盡管實(shí)施例一般可以包括所有這些特征、元素和/或限制。另外,短語“用于xxx的裝置”一般包括包含用于執(zhí)行xxx的計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)。
      另外,術(shù)語“第一”、“第二”等在這里總地用來表示不同的單元(例如,第一元件、第二元件)。在這里使用這些術(shù)語不一定意味著排序,例如一個(gè)單元或事件在另一個(gè)之前發(fā)生或到來,而是提供了一種區(qū)分特定單元的機(jī)制。另外,使用單數(shù)名詞是非限制性的,使用單數(shù)名詞一般包括一個(gè)或多個(gè)特定的事物,而不是剛好一個(gè)(例如,使用詞語“存儲器”一般指一個(gè)或多個(gè)存儲器,而不必指定“一個(gè)存儲器或多個(gè)存儲器”、“一個(gè)或多個(gè)存儲器”、或者“至少一個(gè)存儲器”等)。此外,短語“基于x”和“響應(yīng)于x”用來指示項(xiàng)目x的最小集合,從其可以導(dǎo)出或?qū)е履承┦挛铮渲小皒”是可擴(kuò)展的,并且不一定描述對其執(zhí)行操作的項(xiàng)目的完整列表,等等。另外,短語“耦合到”用來指示兩個(gè)元件或設(shè)備之間的直接或間接連接的某些級別,其中一個(gè)或多個(gè)耦合設(shè)備修改或不修改耦合的信號或傳輸?shù)男畔ⅰPg(shù)語“子集”用于指示一個(gè)群組,該群組包括一個(gè)集合的全部元素或者少于全部元素。術(shù)語“子樹”用來指示樹的全部或者少于樹的全部。此外,術(shù)語“或”在這里用來標(biāo)識選擇結(jié)合的項(xiàng)目中的一個(gè)或多個(gè),包括全部。
      本發(fā)明公開了用于可靠多播通信的方法、設(shè)備、數(shù)據(jù)結(jié)構(gòu)、計(jì)算機(jī)可讀介質(zhì)、機(jī)構(gòu)和裝置等,例如可以包括指定哪個(gè)或哪些節(jié)點(diǎn)對消息作出確認(rèn),以及/或者是立即對消息作出確認(rèn)還是延遲對消息作出確認(rèn),該過程尤其可以與路由器、分組交換系統(tǒng)、計(jì)算機(jī)系統(tǒng)和其他設(shè)備一起使用。由于它們的實(shí)施例和相應(yīng)的應(yīng)用的數(shù)目是可擴(kuò)展的,所以利用這種可靠通信方案的節(jié)點(diǎn)可以對應(yīng)于不同的計(jì)算機(jī)、元件、組件或其他設(shè)備等等,這些設(shè)備以某種方式連接,例如通過網(wǎng)絡(luò)、系統(tǒng)總線、交換結(jié)構(gòu)、線纜或任何其他通信機(jī)制。
      在一個(gè)實(shí)施例中,多個(gè)節(jié)點(diǎn)發(fā)送多播消息,多播消息包括對一個(gè)或多個(gè)被指定要對該消息作出確認(rèn)的節(jié)點(diǎn)的指示、序列號或其他消息標(biāo)識值,并且還可能包括對是請求立即確認(rèn)還是請求延遲確認(rèn)的指示。如果接收消息的節(jié)點(diǎn)被指定對該消息作出確認(rèn),則該節(jié)點(diǎn)作出相應(yīng)的響應(yīng),這可以包括請求任何丟失的消息,以及/或者發(fā)送針對從該節(jié)點(diǎn)發(fā)送其上一確認(rèn)消息起它已接收到的消息的確認(rèn)消息。
      圖1示出了與一個(gè)實(shí)施例一起使用的配置中的多個(gè)節(jié)點(diǎn)100和112-114。節(jié)點(diǎn)100和112-114可以是獨(dú)立的系統(tǒng)或組件(例如,計(jì)算機(jī)、路由器、交換系統(tǒng)、元件、組件、設(shè)備、線路卡、芯片等),換言之,它們基本上是可以發(fā)送、接收和處理消息的任何事物。節(jié)點(diǎn)100和112-114經(jīng)由通信機(jī)制110(例如,網(wǎng)絡(luò)、總線、交換系統(tǒng)、線纜等)連接,通過通信機(jī)制110,消息被發(fā)送給節(jié)點(diǎn)100和112-114的至少一個(gè)子集。
      例如,節(jié)點(diǎn)100和112-114可以是在單個(gè)分組交換系統(tǒng)、路由器或其他通信設(shè)備內(nèi),并且節(jié)點(diǎn)112-114位于線路卡上或其他位置,而節(jié)點(diǎn)100位于控制卡、線路卡或其他位置。因此,節(jié)點(diǎn)100和112-114可以在它們之間可靠地通信,用于例如但不限于分派節(jié)點(diǎn)執(zhí)行動作、收集統(tǒng)計(jì)數(shù)據(jù)、更新路由選擇信息、對錯(cuò)誤/失敗條件或配置改變作出響應(yīng)(例如,更新路由選擇信息、重路由或丟棄分組等)。
      圖1還示出了在一個(gè)實(shí)施例中使用的節(jié)點(diǎn)100的配置。節(jié)點(diǎn)100一般包括用于與一個(gè)或多個(gè)其他節(jié)點(diǎn)可靠通信的機(jī)構(gòu)和裝置。例如,一個(gè)實(shí)施例包括執(zhí)行這里所述的操作的進(jìn)程。一個(gè)實(shí)施例包括與這里示出的框圖或流程圖之一相對應(yīng)的進(jìn)程,或者與實(shí)現(xiàn)權(quán)利要求的全部或一部分的任何其他裝置或機(jī)構(gòu)相對應(yīng)的進(jìn)程,其中其他內(nèi)部或外部組件或設(shè)備可能實(shí)現(xiàn)權(quán)利要求的其他元件/限制。另外,單個(gè)或多個(gè)系統(tǒng)、設(shè)備、組件等可以構(gòu)成一個(gè)實(shí)施例。
      在一個(gè)實(shí)施例中,節(jié)點(diǎn)100包括處理元件101、存儲器102、存儲設(shè)備103和用于接收和發(fā)送分組或其他項(xiàng)的接口104,它們經(jīng)由一個(gè)或多個(gè)通信機(jī)制109(出于說明目的,示作總線)耦合。
      節(jié)點(diǎn)100的各種實(shí)施例可以包括更多或更少的元件。節(jié)點(diǎn)100的操作一般通過處理元件101利用存儲器102和存儲設(shè)備103執(zhí)行一個(gè)或多個(gè)任務(wù)或進(jìn)程來控制,例如但不限于調(diào)節(jié)值并且相應(yīng)地更新一個(gè)或多個(gè)剩余量(residue amount)。
      存儲器102是一種計(jì)算機(jī)可讀介質(zhì),并且一般包括隨機(jī)訪問存儲器(RAM)、只讀存儲器(ROM)、閃存、集成電路和/或其他存儲器組件。存儲器102一般存儲由處理元件101執(zhí)行的計(jì)算機(jī)可執(zhí)行指令和/或由處理元件101操縱的數(shù)據(jù),用于實(shí)現(xiàn)根據(jù)本發(fā)明一個(gè)實(shí)施例的功能。存儲設(shè)備103是另一種計(jì)算機(jī)可讀介質(zhì),并且一般包括固態(tài)存儲介質(zhì)、盤驅(qū)動器、磁盤、聯(lián)網(wǎng)的服務(wù)、磁帶驅(qū)動器和其他存儲設(shè)備。存儲設(shè)備103一般存儲要由處理元件101執(zhí)行的計(jì)算機(jī)可執(zhí)行指令和/或由處理元件101操縱的數(shù)據(jù),用于實(shí)現(xiàn)根據(jù)本發(fā)明一個(gè)實(shí)施例的功能。
      在一個(gè)實(shí)施例中,消息的發(fā)送者知道組中的所有接收者的身份,或者至少知道需要可靠通信的那些接收者的身份。一般而言,單調(diào)增加的序列號空間用來標(biāo)識消息的順序,其中序列號在達(dá)到最大值后重新開始;但是,可以使用任何消息順序標(biāo)識機(jī)制。
      在利用可靠多播通信的一個(gè)實(shí)施例中,每個(gè)接收者對每條消息作出確認(rèn)。從而,對于發(fā)送到n個(gè)接收者的每條多播消息,會發(fā)送n條確認(rèn)消息。在某些應(yīng)用中,這工作良好。但是,在某些應(yīng)用中,如果可以減少確認(rèn)消息的數(shù)目同時(shí)仍在節(jié)點(diǎn)之間提供可靠高效的通信,則可能是有益的。
      在一個(gè)實(shí)施例中,接收節(jié)點(diǎn)對它們已接收到但是尚未確認(rèn)的消息中具有最高連續(xù)順序號的消息作出確認(rèn),或者每隔n個(gè)消息作出確認(rèn),其中n是整數(shù)。從而,所發(fā)送的確認(rèn)消息的數(shù)目一般小于(通常遠(yuǎn)遠(yuǎn)小于)被確認(rèn)的消息的數(shù)目。例如,如果接收者接收到具有序列號1、2、3和6的消息,則接收者僅發(fā)送指示序列號3的確認(rèn)消息,因?yàn)樵撓哂行蛄刑?、2和3的消息作出確認(rèn)。僅在接收到具有序列號4和5的消息后,接收者才對消息6作出確認(rèn)(對應(yīng)于序列號4、5和6)。當(dāng)然,可以針對序列號4發(fā)送獨(dú)立的確認(rèn)消息,然后具有序列號6的確認(rèn)將對應(yīng)于序列號5和6。在一個(gè)實(shí)施例中,可以使用另一種標(biāo)識機(jī)制來標(biāo)識被標(biāo)以連續(xù)的和/或非連續(xù)的序列號的消息的接收,例如,利用列表和/或位圖。這是用來減少可靠通信所要求的確認(rèn)消息的數(shù)目的另一種技術(shù)。
      基于來自每個(gè)接收節(jié)點(diǎn)的確認(rèn)消息,在任何時(shí)刻,消息的發(fā)送者知道每個(gè)接收節(jié)點(diǎn)已接收到哪些消息,并且知道所有接收節(jié)點(diǎn)都已接收到比已確認(rèn)的一個(gè)特定最早(例如,最小)序列號小的所有消息。通過緩沖晚于該特定最早序列號的消息,發(fā)送者能夠重新發(fā)送這些消息中的任何消息到對應(yīng)的接收者,從而恢復(fù)已落后的任何接收者。
      一個(gè)實(shí)施例以另一種方法來減少確認(rèn)消息的數(shù)量,該方法可以或者可以不與另一種減少方案結(jié)合使用。在這種方案中,對于發(fā)送者發(fā)送的每條消息,發(fā)送者安排一個(gè)或多個(gè)指定的節(jié)點(diǎn)來對該消息作出確認(rèn),如果一個(gè)節(jié)點(diǎn)是指定的確認(rèn)節(jié)點(diǎn),則該節(jié)點(diǎn)將只對該消息作出確認(rèn)。其余的節(jié)點(diǎn)處理消息,但是不發(fā)回確認(rèn)。被指定的節(jié)點(diǎn)確認(rèn)該消息,并且指示出任何丟失的消息,發(fā)送者將丟失的消息重發(fā)給該被指定的節(jié)點(diǎn)。例如,在一個(gè)實(shí)施例中,確認(rèn)節(jié)點(diǎn)發(fā)送與從發(fā)送其上一確認(rèn)消息起已接收或丟失的消息相對應(yīng)的列表、位圖或其他指示。在一個(gè)實(shí)施例中,被指定的確認(rèn)接收節(jié)點(diǎn)對其已接收到的但是尚未確認(rèn)的消息中具有最高連續(xù)序列號的消息作出確認(rèn)。如果被指定的確認(rèn)接收節(jié)點(diǎn)丟失了一條或多條消息,則該節(jié)點(diǎn)在確認(rèn)消息或在另一個(gè)請求丟失消息的消息中向發(fā)送節(jié)點(diǎn)發(fā)送請求。
      利用這種方案,每個(gè)節(jié)點(diǎn)無需對每條消息作出確認(rèn)。所以對于N個(gè)接收者,假設(shè)對于所發(fā)送的每條消息,K個(gè)節(jié)點(diǎn)被挑選為被指定節(jié)點(diǎn)來進(jìn)行確認(rèn),則與每個(gè)接收節(jié)點(diǎn)確認(rèn)每條消息的情形相比,確認(rèn)的數(shù)目被按因子N/K削減。更具體地說,如果每次發(fā)送僅一個(gè)節(jié)點(diǎn)被挑選為被指定節(jié)點(diǎn)來作出確認(rèn),則確認(rèn)的數(shù)目按因子N減少。
      例如,在一個(gè)實(shí)施例中,以輪詢(round robin)方式將一個(gè)節(jié)點(diǎn)選為被指定節(jié)點(diǎn)來作出確認(rèn)。當(dāng)然,其他實(shí)施例也可以利用任何確定的和非確定的(例如,隨機(jī)的)方式來確定被指定的節(jié)點(diǎn)。在本示例中,假定發(fā)送者被標(biāo)識為節(jié)點(diǎn)0,并且在組中存在4個(gè)接收者被標(biāo)識為接收者1到4。在發(fā)送者發(fā)送第一消息時(shí),其指定節(jié)點(diǎn)1作為被指定節(jié)點(diǎn)來作出確認(rèn),對于第二消息指定節(jié)點(diǎn)2,對于第三消息指定節(jié)點(diǎn)3,對于第四消息指定節(jié)點(diǎn)4,然后對于第五消息指定節(jié)點(diǎn)1,依此類推。因此,在本示例中,沒有節(jié)點(diǎn)可能落后超過四條消息。例如,假定接收者1確認(rèn)了消息1,但是未接收到消息2、3和4。由于接收者1不是確認(rèn)消息2到4的被指定節(jié)點(diǎn),所以發(fā)送者不期望來自接收者1的對這些消息的確認(rèn),因此并不知道接收者1丟失了這些消息。然而,最終在接收者1被安排為確認(rèn)消息5的被指定節(jié)點(diǎn)時(shí),發(fā)送者確定接收者1未接收到消息2、3和4,這是由于接收者1在已接收到包括消息5和之前的所有消息之前將不確認(rèn)消息5。因此,在本示例中,在組中存在M個(gè)接收節(jié)點(diǎn)時(shí),節(jié)點(diǎn)可能至多落后M條消息。另外,不要求發(fā)送者維護(hù)每個(gè)接收者的狀態(tài);相反,僅需要維護(hù)標(biāo)識出用于作出確認(rèn)的當(dāng)前被指定節(jié)點(diǎn)的最小狀態(tài),以使用于作出確認(rèn)的被指定節(jié)點(diǎn)可以按照輪詢方式或其他方式從一個(gè)接收者移動到下一個(gè)接收者。
      在一個(gè)實(shí)施例中,被指定節(jié)點(diǎn)對從發(fā)送者接收到的每條消息作出確認(rèn)(例如,存在大小為1的窗口)。在一個(gè)利用大小為1的窗口的實(shí)施例中,在發(fā)送者識別出被指定來作出確認(rèn)的新的節(jié)點(diǎn)之前,該發(fā)送者等待接收來自被指定節(jié)點(diǎn)的確認(rèn),其中指定一般是利用輪詢或其他確定或非確定的順序進(jìn)行的。在一個(gè)實(shí)施例中,所使用的窗口大小大于1,這可以實(shí)現(xiàn)更大的吞吐量。在一個(gè)窗口大小大于1的實(shí)施例中,發(fā)送者保持發(fā)送消息直到窗口滿為止,并且只要接收到針對該窗口中的消息的確認(rèn),用于作出確認(rèn)的被指定節(jié)點(diǎn)就可以移動到下一個(gè)接收者。通過挑選合適的窗口大小,發(fā)送者使發(fā)送者和接收者之間的管道充滿,從而一般可以增加吞吐量。
      例如,假設(shè)存在4個(gè)接收節(jié)點(diǎn),即接收者1到4,并且接收者1被指定對具有序列號1到10的消息作出確認(rèn),接收者2被指定對具有序列號11到20的消息作出確認(rèn),接收者3被指定對具有序列號21到30的消息作出確認(rèn),接收者4被指定對具有序列號31到40的消息作出確認(rèn)。發(fā)送者一接收到針對來自分配給接收者1的窗口的消息的確認(rèn),該發(fā)送者就可以將用于作出確認(rèn)的被指定節(jié)點(diǎn)移動到接收者2。然而,對于N個(gè)接收者和窗口大小W,這可能導(dǎo)致一個(gè)接收節(jié)點(diǎn)落后其他接收節(jié)點(diǎn)N*W條消息。例如,在這種情形中,如果節(jié)點(diǎn)1接收到具有序列號1的消息,并且確認(rèn)了該消息,但是丟失了從2到40的所有其他消息,則恢復(fù)可能被延遲到直到接收者1變?yōu)橛糜趯哂行蛄刑?1到50的消息作出確認(rèn)的被指定節(jié)點(diǎn)為止,這是因?yàn)榘l(fā)送者可能不知道丟失了消息(這是因?yàn)榛谠搮f(xié)議發(fā)送者不必等待對節(jié)點(diǎn)1被指定對其進(jìn)行確認(rèn)的消息2到10的確認(rèn),或者對節(jié)點(diǎn)1未被指定對其進(jìn)行確認(rèn)的消息11到40的確認(rèn))。所以利用4個(gè)接收者和為10的窗口大小,相對于組中的其他接收者,一個(gè)接收者最多可能落后40條消息。因此,發(fā)送者需要緩存大量的消息,以便確保所有接收者最終將接收到該發(fā)送者發(fā)送的所有消息。因此,需要在較高的吞吐量和較低的緩沖區(qū)空間之間作出權(quán)衡。
      在一個(gè)實(shí)施例中,發(fā)送窗口消息的副作用是一個(gè)或多個(gè)接收者可能用光緩沖空間,并且可能無法處理處理它們接收到的所有消息,并被迫丟棄一些消息。然而,接收節(jié)點(diǎn)將不對它沒處理的節(jié)點(diǎn)作出確認(rèn)。這具有使發(fā)送者慢下來的效果,這種效果在較慢的接收者跟上發(fā)送者之前是希望看到的。當(dāng)發(fā)送者安排較慢的接收者作為用于作出確認(rèn)的被指定節(jié)點(diǎn)時(shí),該發(fā)送者將被迫等待并確定該節(jié)點(diǎn)接收到從上次該節(jié)點(diǎn)被安排為用于作出確認(rèn)的被指定節(jié)點(diǎn)起的所有消息。例如,如果在上述情形中接收節(jié)點(diǎn)1是最慢的節(jié)點(diǎn),當(dāng)該節(jié)點(diǎn)變?yōu)橛糜趯ο?1到50作出確認(rèn)的被指定節(jié)點(diǎn)時(shí),在將用于作出確認(rèn)的節(jié)點(diǎn)移動到下一個(gè)節(jié)點(diǎn)之前,發(fā)送者確定該節(jié)點(diǎn)已成功地接收到消息40和更小的消息,以及41到50之間的消息。
      各種實(shí)施例可以挑選不同的窗口大小,例如基于可變的緩沖區(qū)大小,在輪詢時(shí)間中可以發(fā)送的消息的數(shù)目等。窗口大小主要是由發(fā)送者可以緩沖的消息的數(shù)目決定的。
      例如,假設(shè)發(fā)送者可以緩沖B條消息,并且接收節(jié)點(diǎn)為N個(gè)。由于對于窗口大小W,一個(gè)節(jié)點(diǎn)至多可能落后N*M條消息,所以發(fā)送者需要緩沖N*M條消息,因此緩沖空間需求為B大于等于N*W,或者W小于等于B/N。所以,在一個(gè)實(shí)施例中,B/N是在不喪失利用丟失的消息恢復(fù)節(jié)點(diǎn)的能力的情況下可能的最大窗口大小。如果發(fā)送者沒有足夠的緩沖空間,則或者可以使用更小的窗口,或者對于每條消息可以使用更多數(shù)目的被指定節(jié)點(diǎn)來作出確認(rèn)。一個(gè)實(shí)施例指定單個(gè)節(jié)點(diǎn)來對一條消息作出確認(rèn)。一個(gè)實(shí)施例指定多個(gè)節(jié)點(diǎn)來對一條消息作出確認(rèn)。
      例如,一個(gè)實(shí)施例指定總共N個(gè)節(jié)點(diǎn)中的A個(gè)節(jié)點(diǎn)來對每條消息作出確認(rèn),所以有N/A組節(jié)點(diǎn)。來自一個(gè)特定組的所有節(jié)點(diǎn)被指定來對一條或多條消息作出確認(rèn),然后指定下一個(gè)特定組的節(jié)點(diǎn)來確認(rèn)一條或多條消息。
      將用于單個(gè)接收節(jié)點(diǎn)的邏輯應(yīng)用到一組節(jié)點(diǎn),一組節(jié)點(diǎn)可能落后其他組節(jié)點(diǎn)最多(N/A)*W條消息(由于存在N/A個(gè)組)。例如,對于4個(gè)接收者,即接收者1到4,假設(shè)發(fā)送者指定節(jié)點(diǎn)1和2來確認(rèn)第一窗口的消息,即消息1到10,指定節(jié)點(diǎn)3和4來確認(rèn)第二窗口的消息,即消息11到20。在具有2組節(jié)點(diǎn)的本示例中,一個(gè)節(jié)點(diǎn)可能落后其他節(jié)點(diǎn)僅20條消息,與僅一個(gè)被指定接收者對每條消息作出確認(rèn)的單組節(jié)點(diǎn)的情形相比,該情形可能落后40條消息。然而,這種方案可能導(dǎo)致更多的確認(rèn),這是由于在將窗口移動到下一個(gè)接收者之前,組中的所有節(jié)點(diǎn)都需要作出確認(rèn)。對于大小可用于B條消息的緩沖區(qū),在這種情形中,可能的最大窗口大小為(W*N/A),其小于等于B,或者說W大于等于B*A/N。
      在一個(gè)實(shí)施例中,接收節(jié)點(diǎn)利用消息窗口的立即和延遲的確認(rèn),其中確認(rèn)消息指示接收節(jié)點(diǎn)已接收到但是尚未確認(rèn)的消息中具有最大連續(xù)序列號的消息。在利用窗口所有者概念時(shí),用于作出確認(rèn)的被指定節(jié)點(diǎn)無需確認(rèn)窗口中的所有消息,并且一接收到對窗口中的消息之一的確認(rèn),就可以移動用于確認(rèn)的被指定節(jié)點(diǎn)(因此,這可能有利于較早而不是較晚地接收到確認(rèn)消息)。
      注意,這種利用對發(fā)送給一個(gè)或多個(gè)節(jié)點(diǎn)的消息的立即和延遲確認(rèn)的技術(shù)可以與多播消息一起使用,也可以與單播消息一起使用。例如,發(fā)送者可能利用單播消息來發(fā)送消息的窗口到接收者,并且請求立即對一些消息作出確認(rèn),而延遲對某些消息的確認(rèn)。在發(fā)送具有對是否延遲對消息的確認(rèn)的指示的單播消息的一個(gè)實(shí)施例中,減少了發(fā)送者接收到的確認(rèn)消息的總數(shù)。
      在一個(gè)實(shí)施例中,發(fā)送者可以請求對一些消息發(fā)送立即確認(rèn),或者對一些消息發(fā)送延遲確認(rèn)。例如,在使用確認(rèn)消息指示節(jié)點(diǎn)已接收到的具有最大連續(xù)序列號的消息的確認(rèn)方案時(shí),對確認(rèn)的延遲給予了更多的時(shí)間用于接收更多的消息,從而特定的確認(rèn)消息可能變?yōu)檫^時(shí)的,并且被覆蓋了更寬的序列號范圍的另一個(gè)確認(rèn)消息所取代,這一般導(dǎo)致總地來看發(fā)送較少的確認(rèn)消息。如前所述,在利用開窗口方案時(shí),盡早而不是更晚得到確認(rèn)消息是有利的。因此,該實(shí)施例利用了延遲確認(rèn)消息和立即確認(rèn)消息的組合。
      在一個(gè)實(shí)施例中,發(fā)送者僅針對窗口中的第一消息請求立即確認(rèn)(對于其他消息請求延遲確認(rèn)),從而在接收到確認(rèn)時(shí),發(fā)送者可以移動用于作出確認(rèn)的節(jié)點(diǎn)。例如,如果窗口大小為10,序列號為1到10,則對于消息1發(fā)送者請求立即確認(rèn)(例如,通過在消息頭部中或者經(jīng)由另一種機(jī)制指示請求立即確認(rèn))。對于其余的消息,發(fā)送者可以指示無需立即作出確認(rèn)(例如,通過在消息頭部中或者經(jīng)由另一種機(jī)制指示請求延遲確認(rèn))。接收者然后可以將對從2到10的消息的確認(rèn)排隊(duì)。響應(yīng)于內(nèi)部時(shí)鐘期滿或其他事件,接收者發(fā)送對所有其他接收到的消息作出確認(rèn)的確認(rèn)消息,或者在下一循環(huán)中該接收者變?yōu)橛糜谧鞒龃_認(rèn)的被指定節(jié)點(diǎn)時(shí),利用對來自下一消息窗口的消息作出的立即確認(rèn)消息來暗地對這些消息作出確認(rèn)。
      例如,在利用上述方案的一個(gè)實(shí)施例中,發(fā)送者在移動窗口之前無需等待對序列號2到10的確認(rèn)到來。發(fā)送者一獲得對消息1的確認(rèn),就注意到它可以移動窗口并且發(fā)送窗口中的任何余下的消息,然后將用于作出確認(rèn)的節(jié)點(diǎn)移動到下一個(gè)接收者。到接收者1再次變?yōu)橛糜谧鞒龃_認(rèn)的被指定節(jié)點(diǎn)時(shí),或者可能已接收到累積的對消息2到10的確認(rèn),或者在發(fā)送者發(fā)送新消息窗口的第一消息再次請求立即確認(rèn)時(shí),對消息2到10的確認(rèn)將被包括進(jìn)來。
      例如,假定存在4個(gè)接收者,在接收者1下一次成為用于作出確認(rèn)的被指定節(jié)點(diǎn)時(shí),發(fā)送者將請求對消息41到50的確認(rèn)。發(fā)送者請求針對消息41的立即確認(rèn),如果消息41被確認(rèn),則指示接收者已接收到所有中間消息。
      在圖2A到圖2B、圖3和圖4A到圖4C中示出了發(fā)送和確認(rèn)多播消息的另一個(gè)示例。圖2A是示出了在一個(gè)實(shí)施例中使用的用于發(fā)送多播消息的過程的流程圖。處理開始于過程框200,然后前進(jìn)到過程框202,在該過程框中過程被初始化,這可以包括諸如標(biāo)識出最初指定的確認(rèn)節(jié)點(diǎn),以及對數(shù)據(jù)結(jié)構(gòu)、緩沖區(qū)、變量等進(jìn)行初始化之類的事情。在過程框204中,標(biāo)識出要在多播消息中發(fā)送的信息。例如,該信息可以與群調(diào)度(gang scheduling)分派消息、一組要分發(fā)的數(shù)據(jù)(例如,路由、配置信息、流控制信息、錯(cuò)誤等)相對應(yīng)。在過程框206中,標(biāo)識出一個(gè)或多個(gè)被指定的確認(rèn)節(jié)點(diǎn),這可以包括選擇出一個(gè)或多個(gè)與針對上一消息的(一個(gè)或多個(gè))確認(rèn)節(jié)點(diǎn)不同的節(jié)點(diǎn)。如過程框208所確認(rèn)的,如果要立即作出確認(rèn),在在過程框210中,設(shè)置字段來指示立即確認(rèn);否則,在過程框212中,該字段被設(shè)置來指示延遲確認(rèn)。然后,在過程框214中,準(zhǔn)備(例如,填充任何其他值,例如,序列號、地址、數(shù)據(jù)等)并發(fā)送多播消息。注意,在一個(gè)實(shí)施例中,多播消息使用多播協(xié)議(例如,到多個(gè)節(jié)點(diǎn)的多播地址),而在一個(gè)實(shí)施例中,多播消息與一系列單播消息相對應(yīng)。然后處理返回過程框204來處理和發(fā)送更多消息。
      圖4A示出了一個(gè)這樣的多播或單播消息400。如圖所示,消息400包括源地址401(例如,標(biāo)識出消息400的發(fā)送者)、多播或單播目的地地址402、對用來作出確認(rèn)的一個(gè)或多個(gè)節(jié)點(diǎn)的指示403(例如,每個(gè)位對應(yīng)于不同的節(jié)點(diǎn)并且標(biāo)識出是否作出確認(rèn)的位圖、列表或者其他指示)、指明是否應(yīng)立即確認(rèn)的指示(例如,標(biāo)志或其他值)、序列號405,一般還包括數(shù)據(jù)406,還可能包括其他字段。
      圖2B是示出了在一個(gè)實(shí)施例中使用的用于接收和處理確認(rèn)消息的過程的流程圖。過程開始于過程框240,然后前進(jìn)到過程框242,在該過程框中接收到確認(rèn)消息。如過程框244所確定的,如果接收到的消息包括確認(rèn),則在過程框246中,一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)被更新來指示一個(gè)或多個(gè)確認(rèn)的消息,并且還可能執(zhí)行其他處理。如過程框248所確定的,如果消息包括對任何丟失的消息的請求,則在過程框250中,發(fā)送丟失的/被請求的消息。過程然后返回過程框242。
      圖4B示出了在一個(gè)實(shí)施例中使用的一個(gè)這種確認(rèn)消息420。如圖所示,確認(rèn)消息420包括源地址421、目的地地址422和對被確認(rèn)的消息的指示423(例如,序列號、列表、位圖、一個(gè)或多個(gè)值等)。
      圖4C示出了在一個(gè)實(shí)施例中使用的一個(gè)這種對丟失消息的請求的消息440。如圖所示,對丟失消息的請求消息440包括源地址441、目的地地址442和對丟失的或被請求的消息的指示443(例如,一個(gè)或多個(gè)序列號、列表、位圖、一個(gè)或多個(gè)值等)。
      圖3是示出了在一個(gè)實(shí)施例中使用的用于接收和處理多播消息并且發(fā)送確認(rèn)消息的過程的流程圖。處理開始于過程框300,然后前進(jìn)到過程框302,在該過程框中接收到多播分組,多播分組一般具有序列號、對該接收節(jié)點(diǎn)是否應(yīng)當(dāng)確認(rèn)該消息的指示,并且如果是的話還包括對是立即確認(rèn)還是延遲確認(rèn)的指示,并且還可能包括其他字段。在過程框304中,基于接收到的消息的序列號更新接收到的消息的數(shù)據(jù)結(jié)構(gòu)。
      如在過程框306中確定的,如果節(jié)點(diǎn)未被指定對消息作出確認(rèn),則處理返回到過程框302。
      否則,如過程框308所確定的,如果有丟失的消息(例如,在數(shù)據(jù)結(jié)構(gòu)中或以其他機(jī)制標(biāo)識出被指示為接收到的序列號中的空缺),則在過程框310中,這些丟失的消息被請求、接收、確認(rèn)、同時(shí)適當(dāng)?shù)馗聰?shù)據(jù)結(jié)構(gòu),然后處理返回到過程框302。
      否則,如在過程框312中所確定的,如果節(jié)點(diǎn)不立即確認(rèn)消息,則在過程框316中,延遲確認(rèn)被排隊(duì)或者以其他方式被存儲以用于將來處理,同時(shí)具有連續(xù)序列號的任何其他確認(rèn)被清除,這是由于與該確認(rèn)相對應(yīng)的確認(rèn)消息將被用來確認(rèn)被清除的這些。如果此前未被清除,則該確認(rèn)被設(shè)置為在將來的時(shí)刻發(fā)送(例如,響應(yīng)于定時(shí)器期滿、在延遲期間后、響應(yīng)于一些其他事件等),然后處理返回過程框302。
      否則,在過程框314中,發(fā)送針對該消息和任何在前消息的立即確認(rèn)消息,同時(shí)從延遲確認(rèn)機(jī)構(gòu)中清除它們的確認(rèn),然后處理返回過程框302。
      在一個(gè)實(shí)施例中,由于節(jié)點(diǎn)可能因?yàn)閼?yīng)用需求或者因?yàn)楣?jié)點(diǎn)故障、重引導(dǎo)、服務(wù)等而加入或離開接收節(jié)點(diǎn)組,因此接收節(jié)點(diǎn)的數(shù)目可能隨時(shí)間變化。一般而言,在接收節(jié)點(diǎn)組的配置改變時(shí),可以調(diào)節(jié)開窗口參數(shù)(例如,用來作出確認(rèn)的被指定節(jié)點(diǎn)的集合、窗口大小等)來適應(yīng)這些變化。當(dāng)然,對于離開接收節(jié)點(diǎn)組的節(jié)點(diǎn),該節(jié)點(diǎn)向其他節(jié)點(diǎn)通知這種離去的優(yōu)雅的退出是優(yōu)選的,而不是依賴超時(shí)或其他機(jī)制來探測節(jié)點(diǎn)不存在。
      另外,注意對于一些應(yīng)用,不是所有的接收節(jié)點(diǎn)都將發(fā)送確認(rèn)消息。例如,可能存在必須接收信息的某些關(guān)鍵節(jié)點(diǎn),而其他節(jié)點(diǎn)可能僅期望被告知。因此,在一個(gè)實(shí)施例中,不對全部節(jié)點(diǎn)執(zhí)行可靠的多播通信(例如,關(guān)鍵節(jié)點(diǎn)),同時(shí)至少一個(gè)其余節(jié)點(diǎn)接收消息(例如,監(jiān)聽多播地址)但是不參與所采用的確認(rèn)方案。
      考慮本發(fā)明的原理可以被應(yīng)用到的許多可能的實(shí)施例,將意識到這里參考附圖所述的本發(fā)明的實(shí)施例和各個(gè)方面僅是說明性的,而不應(yīng)當(dāng)作為對本發(fā)明的范圍的限制。例如,本領(lǐng)域技術(shù)人員將清楚,過程框的操作中許多可以被重排在其他操作之前、之后或者基本同時(shí)被執(zhí)行。另外,在各個(gè)實(shí)施例中可以使用許多不同形式的數(shù)據(jù)結(jié)構(gòu)。這里所述發(fā)本發(fā)明設(shè)想了所有這種實(shí)施例,只要可以在所附權(quán)利要求書及其等同物的范圍內(nèi)。
      權(quán)利要求
      1.一種用于分發(fā)信息的方法,所述方法包括從多個(gè)節(jié)點(diǎn)中標(biāo)識出用于對多播消息作出確認(rèn)的一個(gè)或多個(gè)節(jié)點(diǎn);以及發(fā)送所述多播消息到所述多個(gè)節(jié)點(diǎn),所述多播消息包括對所述多個(gè)節(jié)點(diǎn)中的用于對所述消息作出確認(rèn)的所述一個(gè)或多個(gè)節(jié)點(diǎn)的指示。
      2.如權(quán)利要求1所述的方法,其中,所述多播消息包括對是立即確認(rèn)還是延遲確認(rèn)所述多播消息的指示。
      3.如權(quán)利要求2所述的方法,包括如果所述多播消息是消息窗口中的第一消息,則將所述對是立即確認(rèn)還是延遲確認(rèn)的指示設(shè)置為指示立即確認(rèn)的步驟。
      4.如權(quán)利要求3所述的方法,包括如果所述多播消息不是所述消息窗口中的第一消息,則將所述對是立即確認(rèn)還是延遲確認(rèn)的指示設(shè)置為指示延遲確認(rèn)的步驟。
      5.如權(quán)利要求1所述的方法,其中,所述對多個(gè)節(jié)點(diǎn)中的用于對所述消息作出確認(rèn)的一個(gè)或多個(gè)節(jié)點(diǎn)的指示指出少于所述多個(gè)節(jié)點(diǎn)中的全部節(jié)點(diǎn)。
      6.如權(quán)利要求1所述的方法,包括接收與所述多播消息相對應(yīng)的確認(rèn)消息,并且在響應(yīng)中將所述多播消息和所有先前發(fā)送的消息標(biāo)識為已被確認(rèn)的。
      7.一種由節(jié)點(diǎn)執(zhí)行的方法,所述方法包括接收多播消息,所述多播消息包括對至少一個(gè)被指定的確認(rèn)節(jié)點(diǎn)的指示;以及標(biāo)識出所述對至少一個(gè)被指定的確認(rèn)節(jié)點(diǎn)的指示包括所述節(jié)點(diǎn),并在響應(yīng)中發(fā)送確認(rèn)消息到所述多播消息的發(fā)送者。
      8.如權(quán)利要求7所述的方法,其中,所述確認(rèn)消息對除所述多播消息之外的至少一個(gè)其他消息作出確認(rèn)。
      9.如權(quán)利要求7所述的方法,其中,所述多播消息包括對是立即確認(rèn)還是延遲確認(rèn)所述多播消息的指示。
      10.如權(quán)利要求9所述的方法,其中,所述對是立即確認(rèn)還是延遲確認(rèn)所述多播消息的指示與延遲確認(rèn)相對應(yīng);并且所述方法包括延遲發(fā)送所述確認(rèn)消息。
      11.一種用于傳輸信息的方法,所述方法包括接收多播消息,所述多播消息包括對是否延遲確認(rèn)所述多播消息的指示;以及響應(yīng)于所述指示標(biāo)識出延遲確認(rèn)所述多播消息,延遲對所述多播消息的確認(rèn)。
      12.一種用于傳輸信息的裝置,所述裝置包括用于接收消息的裝置,所述消息包括對是否延遲確認(rèn)所述消息的指示;以及用于響應(yīng)于所述指示標(biāo)識出延遲確認(rèn)所述消息來延遲對所述消息的確認(rèn)的裝置。
      13.一種用于分發(fā)信息的裝置,所述裝置包括用于從多個(gè)節(jié)點(diǎn)中標(biāo)識出用于對多播消息作出確認(rèn)的一個(gè)或多個(gè)節(jié)點(diǎn)的裝置;以及用于發(fā)送所述多播消息到所述多個(gè)節(jié)點(diǎn)的裝置,所述多播消息包括對所述多個(gè)節(jié)點(diǎn)中的用于對所述消息作出確認(rèn)的所述一個(gè)或多個(gè)節(jié)點(diǎn)的指示。
      14.如權(quán)利要求13所述的裝置,其中,所述多播消息包括對是立即確認(rèn)還是延遲確認(rèn)所述多播消息的指示。
      15.如權(quán)利要求14所述的裝置,包括用于在所述多播消息是消息窗口中的第一消息的情況下,將所述對是立即確認(rèn)還是延遲確認(rèn)的指示設(shè)置為指示立即確認(rèn)的裝置。
      16.如權(quán)利要求15所述的裝置,包括用于在所述多播消息不是所述消息窗口中的第一消息的情況下,將所述對是立即確認(rèn)還是延遲確認(rèn)的指示設(shè)置為指示延遲確認(rèn)的裝置。
      17.如權(quán)利要求13所述的裝置,其中,所述對多個(gè)節(jié)點(diǎn)中的用于對所述消息作出確認(rèn)的一個(gè)或多個(gè)節(jié)點(diǎn)的指示指出少于所述多個(gè)節(jié)點(diǎn)中的全部節(jié)點(diǎn)。
      18.如權(quán)利要求13所述的裝置,包括用于接收與所述多播消息相對應(yīng)的確認(rèn)消息,并且在響應(yīng)中將所述多播消息和所有先前發(fā)送的消息標(biāo)識為已被確認(rèn)的的裝置。
      19.一種由節(jié)點(diǎn)執(zhí)行的裝置,所述裝置包括用于接收多播消息的裝置,所述多播消息包括對至少一個(gè)被指定的確認(rèn)節(jié)點(diǎn)的指示;以及用于標(biāo)識出所述對至少一個(gè)被指定的確認(rèn)節(jié)點(diǎn)的指示包括所述節(jié)點(diǎn),并在響應(yīng)中發(fā)送確認(rèn)消息到所述多播消息的發(fā)送者的裝置。
      20.如權(quán)利要求19所述的裝置,其中,所述確認(rèn)消息對除所述多播消息之外的至少一個(gè)其他消息作出確認(rèn)。
      21.如權(quán)利要求19所述的裝置,其中,所述多播消息包括對是立即確認(rèn)還是延遲確認(rèn)所述多播消息的指示。
      22.如權(quán)利要求21所述的裝置,其中,所述對是立即確認(rèn)還是延遲確認(rèn)所述多播消息的指示與延遲確認(rèn)相對應(yīng);并且所述方法包括用于延遲發(fā)送所述確認(rèn)消息的裝置。
      23.一種包含計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令用于執(zhí)行分發(fā)信息的步驟,所述步驟包括從多個(gè)節(jié)點(diǎn)中標(biāo)識出用于對多播消息作出確認(rèn)的一個(gè)或多個(gè)節(jié)點(diǎn);以及發(fā)送所述多播消息到所述多個(gè)節(jié)點(diǎn),所述多播消息包括對所述多個(gè)節(jié)點(diǎn)中的用于對所述消息作出確認(rèn)的所述一個(gè)或多個(gè)節(jié)點(diǎn)的指示。
      24.如權(quán)利要求23所述的計(jì)算機(jī)可讀介質(zhì),其中,所述多播消息包括對是立即確認(rèn)還是延遲確認(rèn)所述多播消息的指示。
      25.如權(quán)利要求24所述的計(jì)算機(jī)可讀介質(zhì),包括如果所述多播消息是消息窗口中的第一消息,則將所述對是立即確認(rèn)還是延遲確認(rèn)的指示設(shè)置為指示立即確認(rèn)。
      26.如權(quán)利要求25所述的計(jì)算機(jī)可讀介質(zhì),包括如果所述多播消息不是所述消息窗口中的第一消息,則將所述對是立即確認(rèn)還是延遲確認(rèn)的指示設(shè)置為指示延遲確認(rèn)。
      27.如權(quán)利要求23所述的計(jì)算機(jī)可讀介質(zhì),其中,所述對多個(gè)節(jié)點(diǎn)中的用于對所述消息作出確認(rèn)的一個(gè)或多個(gè)節(jié)點(diǎn)的指示指出少于所述多個(gè)節(jié)點(diǎn)中的全部節(jié)點(diǎn)。
      28.如權(quán)利要求23所述的計(jì)算機(jī)可讀介質(zhì),包括接收與所述多播消息相對應(yīng)的確認(rèn)消息,并且在響應(yīng)中將所述多播消息和所有先前發(fā)送的消息標(biāo)識為已被確認(rèn)的。
      29.一種包含計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令用于執(zhí)行由節(jié)點(diǎn)執(zhí)行的步驟,所述步驟包括接收多播消息,所述多播消息包括對至少一個(gè)被指定的確認(rèn)節(jié)點(diǎn)的指示;以及標(biāo)識出所述對至少一個(gè)被指定的確認(rèn)節(jié)點(diǎn)的指示包括所述節(jié)點(diǎn),并在響應(yīng)中發(fā)送確認(rèn)消息到所述多播消息的發(fā)送者。
      30.如權(quán)利要求29所述的計(jì)算機(jī)可讀介質(zhì),其中,所述確認(rèn)消息對除所述多播消息之外的至少一個(gè)其他消息作出確認(rèn)。
      31.如權(quán)利要求29所述的計(jì)算機(jī)可讀介質(zhì),其中,所述多播消息包括對是立即確認(rèn)還是延遲確認(rèn)所述多播消息的指示。
      32.如權(quán)利要求31所述的計(jì)算機(jī)可讀介質(zhì),其中,所述對是立即確認(rèn)還是延遲確認(rèn)所述多播消息的指示與延遲確認(rèn)相對應(yīng);并且所述方法包括延遲發(fā)送所述確認(rèn)消息。
      全文摘要
      本發(fā)明公開了執(zhí)行可靠多播通信的各種方法,所述方法例如可以包括指定哪個(gè)或哪些節(jié)點(diǎn)對消息作出確認(rèn),以及/或者是立即對消息作出確認(rèn)還是延遲對消息作出確認(rèn),該過程尤其可以與路由器、分組交換系統(tǒng)、計(jì)算機(jī)系統(tǒng)和其他設(shè)備一起使用。一般向多個(gè)節(jié)點(diǎn)發(fā)送多播消息,多播消息包括對一個(gè)或多個(gè)被指定要對該消息作出確認(rèn)的節(jié)點(diǎn)的指示、序列號或其他消息標(biāo)識值,并且還可能包括對是請求立即確認(rèn)還是請求延遲確認(rèn)的指示。如果接收消息的節(jié)點(diǎn)被指定對該消息作出確認(rèn),則該節(jié)點(diǎn)作出相應(yīng)的響應(yīng),這可以包括請求任何丟失的消息,以及/或者發(fā)送對從該節(jié)點(diǎn)發(fā)送其上一確認(rèn)消息起它已接收到的消息的確認(rèn)消息。
      文檔編號H04L12/26GK1886667SQ200480034827
      公開日2006年12月27日 申請日期2004年9月30日 優(yōu)先權(quán)日2003年11月25日
      發(fā)明者蘇達(dá)卡爾·馬米拉帕里, 斯蒂芬·保羅·貝萊爾 申請人:思科技術(shù)公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
      1