專利名稱:對(duì)無狀態(tài)組通信建立傳輸首標(biāo)的方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及通信,本發(fā)明更特別地涉及利用含有編碼分布樹的首標(biāo)將數(shù)據(jù)分組傳送到將接收該數(shù)據(jù)分組的一組節(jié)點(diǎn)。
背景技術(shù):
最近,已經(jīng)建議使用網(wǎng)絡(luò)覆蓋進(jìn)行應(yīng)用層(level)組播,用于替代IP(網(wǎng)間協(xié)議)組播。將端系統(tǒng)用作數(shù)據(jù)轉(zhuǎn)發(fā)單元的通信協(xié)議顯示更好的靈活性和規(guī)??蓴U(kuò)縮性,但是其代價(jià)是稍許降低通信效率(即,增加網(wǎng)絡(luò)延遲)。大多數(shù)這種協(xié)議均要在與組通信對(duì)話有關(guān)的節(jié)點(diǎn)保存狀態(tài)信息。
發(fā)明內(nèi)容
本發(fā)明包括一種通過建立并編碼基于發(fā)送器的樹,進(jìn)行無狀態(tài)組通信的機(jī)制。將通過編碼分布樹獲得的首標(biāo)插入每個(gè)通信分組中。編碼過程可以對(duì)部分或全部分布樹進(jìn)行解碼。進(jìn)行編碼,以將首標(biāo)開銷和部分解碼分布樹所需的處理過程的開銷降低到最小。本發(fā)明包括用于在分布樹中間節(jié)點(diǎn)處理編碼首標(biāo)以確定下一通信節(jié)點(diǎn)的機(jī)制和用于修改并再編碼樹以對(duì)網(wǎng)絡(luò)故障提供彈性或者響應(yīng)應(yīng)用層規(guī)定的條件的機(jī)制。
更具體地說,通過編碼分布樹、建立包括編碼分布樹的首標(biāo)以及將首標(biāo)附加到待分發(fā)到分布樹的數(shù)據(jù)分組,本發(fā)明建立用于將數(shù)據(jù)分組無狀態(tài)組發(fā)送到各節(jié)點(diǎn)的傳輸首標(biāo)。根據(jù)關(guān)于接收器節(jié)點(diǎn)的地址的信息,本發(fā)明在發(fā)送器節(jié)點(diǎn)建立分布樹。編碼過程包括在從分布樹的根開始的分布樹的每層遍歷期間,順序輸入節(jié)點(diǎn)地址。
該方法包括在數(shù)據(jù)分組沿分布樹向下分發(fā)時(shí),修改首標(biāo),以清除與該樹的上分布層有關(guān)的編碼信息。因此,在每個(gè)節(jié)點(diǎn)接收數(shù)據(jù)分組時(shí),本發(fā)明解碼編碼分布樹的一部分,而在節(jié)點(diǎn)將數(shù)據(jù)分組沿分布樹向下送到另一個(gè)節(jié)點(diǎn)時(shí),再編碼分布樹。分布樹控制節(jié)點(diǎn)接收數(shù)據(jù)分組的順序。因此,通過控制節(jié)點(diǎn)接收數(shù)據(jù)分組的順序,編碼分布樹使節(jié)點(diǎn)以樹分層結(jié)構(gòu)規(guī)定的順序處理數(shù)據(jù)分組。本發(fā)明在每個(gè)節(jié)點(diǎn)處理含有分布樹的編碼首標(biāo),從而指出下一次應(yīng)該將數(shù)據(jù)分組傳送到的哪個(gè)節(jié)點(diǎn)。
此外,本發(fā)明可以在沿分布樹向下分發(fā)數(shù)據(jù)分組時(shí),修改首標(biāo),以修復(fù)分布樹。因此,通過將數(shù)據(jù)分組轉(zhuǎn)發(fā)到故障節(jié)點(diǎn)要將數(shù)據(jù)分組轉(zhuǎn)發(fā)到的節(jié)點(diǎn),本發(fā)明可以去除故障節(jié)點(diǎn)。
在用于分發(fā)應(yīng)用狀態(tài)信息并復(fù)制內(nèi)容信息的協(xié)作應(yīng)用中可以采用無狀態(tài)組播方法。因此,本發(fā)明可以用于利用數(shù)據(jù)分組分發(fā)應(yīng)用狀態(tài)信息和/或使附加協(xié)議包括在數(shù)據(jù)分組中。
根據(jù)以下參考附圖對(duì)本發(fā)明優(yōu)選實(shí)施例所作的詳細(xì)說明,可以更好地理解上述以及其他目的、方面和優(yōu)點(diǎn),附圖包括圖1是根據(jù)本發(fā)明的分布樹的示意圖;圖2是根據(jù)本發(fā)明的分布樹的示意圖;圖3是根據(jù)本發(fā)明的分布樹的示意圖;圖4是根據(jù)本發(fā)明的分布樹的示意圖;圖5是示出本發(fā)明的優(yōu)選方法的流程圖;以及圖6是本發(fā)明的硬件實(shí)施例。
具體實(shí)施例方式
如上所述,一些協(xié)議將狀態(tài)信息保存在與組通信對(duì)話有關(guān)的節(jié)點(diǎn)。通過在發(fā)送器完全編碼通信樹實(shí)現(xiàn)無狀態(tài)運(yùn)行,本發(fā)明提供組通信。無狀態(tài)組通信的優(yōu)點(diǎn)之一是減少控制通路的信令。其次是動(dòng)態(tài)修改通信樹的靈活性。
本發(fā)明擅長(zhǎng)的一種類型的應(yīng)用涉及小通信組(group),在該通信組中,根據(jù)接收機(jī)的規(guī)定順序,進(jìn)行數(shù)據(jù)傳播。這種應(yīng)用的一個(gè)例子是協(xié)作信息處理。在這種情況下,應(yīng)用對(duì)在中間節(jié)點(diǎn)進(jìn)行的數(shù)據(jù)傳播和處理進(jìn)行控制。受益于本發(fā)明的應(yīng)用的另一個(gè)例子包括網(wǎng)絡(luò)的分布式管理/探測(cè)。
采用本發(fā)明的組通信假定發(fā)送器完全知道每個(gè)接收器地址(例如,節(jié)點(diǎn)地址)的信息。通過將其地址(網(wǎng)絡(luò)地址)、關(guān)于網(wǎng)絡(luò)的屬性及其通信主題傳送到發(fā)送器,每個(gè)新接收器加入分布樹。信源保存接收器地址的索引及其有關(guān)特性。索引接收器節(jié)點(diǎn)地址的優(yōu)選方法是使用散列表,但是也可以采用其他索引方法。對(duì)于每次新加入,信源將新節(jié)點(diǎn)的地址及其特性插入索引內(nèi)。發(fā)送器可以根據(jù)例如應(yīng)用規(guī)定機(jī)制對(duì)接收器進(jìn)行分組,如以下參考圖5所述。
通過利用離開消息(leave message)通知信源節(jié)點(diǎn),接收器節(jié)點(diǎn)離開通信樹。在收到接收器發(fā)出的離開消息后,信源從索引中刪除其條目。此外,信源將重構(gòu)不包括離開該組的節(jié)點(diǎn)的新通信樹。
信源節(jié)點(diǎn)產(chǎn)生數(shù)據(jù)分組,并將該數(shù)據(jù)分組分發(fā)(distribute)到與每個(gè)組相關(guān)的通信樹上。此外,信源節(jié)點(diǎn)可以將從其他節(jié)點(diǎn)接收的數(shù)據(jù)傳播到分布樹。信源將該數(shù)據(jù)發(fā)送到與在信源接收的分組具有同樣標(biāo)識(shí)符的組。收到該分組后,信源將利用包含在收到的分組內(nèi)的標(biāo)識(shí)符查找該分布樹。此外,根據(jù)包含在分組內(nèi)的一組屬性,信源可以識(shí)別分布樹。在這種情況下,索引分布樹使用屬性值域,每個(gè)分布樹分別與域相關(guān)。對(duì)于每個(gè)分組,信源識(shí)別含有包括在分組內(nèi)的屬性值的域,然后,將數(shù)據(jù)發(fā)送到對(duì)應(yīng)于該域的分布樹。
為了進(jìn)行應(yīng)用層轉(zhuǎn)發(fā),而不在參與轉(zhuǎn)發(fā)的中間節(jié)點(diǎn)上保存組通信狀態(tài),在發(fā)送器對(duì)全部分布樹進(jìn)行編碼,并使它們包括在每個(gè)發(fā)送分組中,本發(fā)明適用于構(gòu)造分布樹的任何方法。首標(biāo)格式取決于所使用的編碼方法。首標(biāo)(header)的大小根據(jù)包括在首標(biāo)內(nèi)的地址的數(shù)量變化。這樣可以有效編碼任意樹,但是代價(jià)是在中間通信節(jié)點(diǎn)增加了首標(biāo)處理。
在從根開始的分布樹的每層遍歷期間,通過順序輸入(enter)所訪問的節(jié)點(diǎn)的地址,本發(fā)明的首標(biāo)編碼方法建立路由首標(biāo)。對(duì)樹進(jìn)行順序編碼使用特殊定界符,以便在轉(zhuǎn)發(fā)節(jié)點(diǎn)快速進(jìn)行首標(biāo)處理。層定界符將經(jīng)過同樣數(shù)量的網(wǎng)絡(luò)跳躍之后可以到達(dá)的各同族節(jié)點(diǎn)(sibling)分離。在每層,利用組分隔符定界具有公共父節(jié)點(diǎn)的節(jié)點(diǎn)。組含有從公共父節(jié)點(diǎn)接收該分組的所有節(jié)點(diǎn)。
對(duì)上述分布樹進(jìn)行編碼可以實(shí)現(xiàn)有效首標(biāo)處理。將分布樹上的各節(jié)點(diǎn)的IP地址順序分隔插入組和層中。在此,本發(fā)明對(duì)任意通信樹建立首標(biāo)。在樹遍歷期間,本發(fā)明使子節(jié)點(diǎn)和組分隔符排隊(duì),而在使節(jié)點(diǎn)出隊(duì)時(shí),插入IP地址和分隔符。
下面是首標(biāo)建立過程中的偽碼<pre listing-type="program-listing">1)Start at the root node;root.level_count=1;Level_count=1;2)enqueue the current node3)While(queue not empty)Dequeue(node)If(node.level_count?。絃evel_count)Insert level_separator;Level_count++;Insert IP address ofthe dequeued node into Mcast_header while(parent has children){If(first_child)enqueue group_separator;child_node.level_count=node_level_count+1;Enqueue(child node);}</pre>該過程產(chǎn)生組播首標(biāo),在該首標(biāo)中,每個(gè)新層和每個(gè)新組分別以分隔符開始??梢岳梅指舴拇笮『?或值識(shí)別分隔符。為了將首標(biāo)長(zhǎng)度減小到最小,分隔符的大小應(yīng)該小于接收器地址的大小。在這種情況下,編碼的開銷是log(N)+N/2。
為了檢索下一跳躍節(jié)點(diǎn)的地址,在通信樹上的每個(gè)節(jié)點(diǎn)對(duì)發(fā)送器發(fā)送的分組進(jìn)行處理。為了減少通信開銷,還可以在分組處理期間,對(duì)首標(biāo)進(jìn)行修改(被樹層縮短)。通過執(zhí)行如下所示的首標(biāo)處理步驟,每個(gè)節(jié)點(diǎn)均可以定位其子節(jié)點(diǎn)(需要將數(shù)據(jù)轉(zhuǎn)發(fā)到其的下一跳躍節(jié)點(diǎn))a)檢測(cè)組播首標(biāo)中其地址的位置p,b)移除它所屬層的IP地址,c)利用下一層上同樣位置p對(duì)組G進(jìn)行搜索,d)將處理的首標(biāo)和凈荷載轉(zhuǎn)發(fā)到包含在組G內(nèi)的所有地址。
下面是首標(biāo)解碼的詳細(xì)處理過程1)While(IP_addr(header_node(k))!=IP_addr(current node))k++;Remove header_node;2)While(header_token?。絣evel_separator)remove header_node;3)Grp_count=0;4)while(count<k){header_token++;if(header_token==group_separator)count++;}5)while(header_token?。絞roup_separator)forward_packet(header_token++)首標(biāo)記號(hào)可以是節(jié)點(diǎn)或分隔符。順序剖析首標(biāo)內(nèi)容,以檢測(cè)組和節(jié)點(diǎn)分隔符。處理時(shí)間隨著距離發(fā)送器的距離(通信跳躍中)的增加而增加。對(duì)于位于層L中位置k的節(jié)點(diǎn),處理時(shí)間與當(dāng)前層的大小和下一層的k/(當(dāng)前層大小)成正比。首標(biāo)的總處理工作與N*N成正比,其中N是該樹上的節(jié)點(diǎn)數(shù)。
本發(fā)明具有每層首標(biāo)編碼方法。通過在接收器地址之前插入編碼樹,該編碼方法可以建立組播首標(biāo)。樹編碼含有當(dāng)前節(jié)點(diǎn)在樹上的位置(寬度/每層遍歷)以及后面表示對(duì)應(yīng)于每個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn)的數(shù)量的序列(sequence)。利用分布樹的每層遍歷,在發(fā)送器建立序列(參考圖1)。首標(biāo)格式是<節(jié)點(diǎn)的位置(1字節(jié))><樹編碼序列(~N/2字節(jié))><接收器地址(4N字節(jié))>。該格式可以是固定的-僅在連續(xù)跳躍之間改變當(dāng)前節(jié)點(diǎn)的位置,或者是可變的-在連續(xù)節(jié)點(diǎn)之間縮短接收器的樹編碼序列表。
節(jié)點(diǎn)n[k](假定k表示每層遍歷順序中的位置),首標(biāo)是<k><1,2,1,2,2,1,3><addr[n1],…>。設(shè)s[k]是樹編碼序列中的第k個(gè)位置條目。通過搜索接收器地址表,獲得下一跳躍各節(jié)點(diǎn)的地址,以定位s[k+1]地址。下一跳躍節(jié)點(diǎn)的開始地址是(s[i]),i=1…k。新首標(biāo)內(nèi)的第一個(gè)條目是地址表中下一跳躍節(jié)點(diǎn)的位置??梢詮漠?dāng)前節(jié)點(diǎn)復(fù)制該首標(biāo)的剩余部分,或者通過從樹編碼序列中和直到當(dāng)前節(jié)點(diǎn)的地址中移除該條目,修改首標(biāo)的剩余部分。因此,序列<1,2,1,2,2,1,3>與如下圖1所示的每個(gè)節(jié)點(diǎn)有關(guān)(括號(hào)內(nèi)示出與該序列內(nèi)的每個(gè)字符相關(guān)的(各)節(jié)點(diǎn))<1(n1),2(n2-n3),1(n4),2(n5-n6),2(n7-n8),1(n9),3(n10-n12)>。下面是編碼首標(biāo)結(jié)構(gòu)內(nèi)的樹的過程1)Start at the root node;root.level_count=1;seq_header=null;addr_header=null;2)enqueue the current node3)While(queue not empty)Dequeue(node)Insert IP address of the dequeued node into addr_headerInsert crt_node.children_Number into seq_header;while(parent has children)enqueue(child node);4)concatenate(seq_header,addr_header)在每個(gè)中間跳躍,處理首標(biāo)(m_addr[i]含有第k下一跳躍節(jié)點(diǎn)的地址)。關(guān)于首標(biāo)的偽碼,如下對(duì)附加首標(biāo)進(jìn)行解碼
1)k=header
;grp_size=header[k+1];2)while(header[k]?。絜nd of_sequence)k++;i=0;pos=k+∑(i..k)header[i]*4;3)while(i<grp_size){M_addr[i]={header[pos+4*i]...header[pos+3+4*i]};i++;n_header[i]=header;n_header[i]
=k+i;}關(guān)于首標(biāo)解碼過程(固定首標(biāo)大小),減小每個(gè)中間節(jié)點(diǎn)的首標(biāo)的大小的修改過程是1)k=header
;grp_size=header[k+1];2)while(header[k]?。絜nd of_sequence)k++;i=0;pos=k+4;3)while(i<grp_size){M_addr[i]={header[pos+4*i]…h(huán)eader [pos+3+4*i]};i++;m=0;k=header
;Copy the encoding sequence into the sequence from position corresponding to current node+1Copy the addresses from the current group to the end of the header}利用前序遍歷組通信樹,編碼首標(biāo)。該編碼格式是<層(字節(jié))><節(jié)點(diǎn)的IP地址(4字節(jié))>,因此產(chǎn)生25%的開銷(N字節(jié))。在每個(gè)中間路由點(diǎn),這樣處理首標(biāo),以致僅保持以當(dāng)前節(jié)點(diǎn)為根的子樹上的節(jié)點(diǎn)(具有相應(yīng)調(diào)節(jié)的層)。在每個(gè)節(jié)點(diǎn),要求完全掃描通信首標(biāo)。可以利用其層值識(shí)別下一跳躍各節(jié)點(diǎn)。對(duì)于每個(gè)新子節(jié)點(diǎn)(下一跳躍節(jié)點(diǎn)),產(chǎn)生僅含有相應(yīng)子樹的新首標(biāo)。在分組到達(dá)更靠近最后一次跳躍的節(jié)點(diǎn)時(shí),首標(biāo)的長(zhǎng)度和每次跳躍的處理量均被減小。獲得子樹,作為兩次出現(xiàn)下一層節(jié)點(diǎn)之間的節(jié)點(diǎn)的序列。下面列出進(jìn)行首標(biāo)編碼的遞歸方法
<pre listing-type="program-listing">1.Start at root nodeFctnVisit_node(node,label){Insert label of current node;insert addr.of current node}If no children returnFctnTraverse_node(){Visit_node(node,label);increment label;If(no children)return;while(node has children)travetse-node(child)}</pre>圖2示出這種子樹20、21。下面說明在中間跳躍時(shí),進(jìn)行首標(biāo)處理的過程,其中當(dāng)前節(jié)點(diǎn)的層是0),搜索節(jié)點(diǎn)的位置是p,所建立的當(dāng)前首標(biāo)是k。
<pre listing-type="program-listing">1.Start at label 0;k=0;p=0;2.while(sNode[p].label?。絫erminator){If(sNode[p].label==1)/*Construct next hop header*/{next_address[k]=sNode[p].addr;k++}while(sNode[p].label?。?){Insert sNode[p]into header[k];p++;}}</pre>
本發(fā)明還可以高速緩存有效路由,以便有效進(jìn)行數(shù)據(jù)轉(zhuǎn)發(fā)。以上描述的方法在規(guī)定各數(shù)據(jù)分組的路由通路時(shí)具有最高靈活性。然而,對(duì)于一些應(yīng)用,分布樹的結(jié)構(gòu)在連續(xù)數(shù)據(jù)傳輸之間通常不發(fā)生變化。為了提高數(shù)據(jù)轉(zhuǎn)發(fā)效率,對(duì)于在每個(gè)分布樹中有關(guān)的下一次跳躍節(jié)點(diǎn),中間節(jié)點(diǎn)可以保持長(zhǎng)壽命(long-lived)TCP(傳輸控制協(xié)議)連接。根據(jù)節(jié)點(diǎn)標(biāo)識(shí)符,索引下一次跳躍連接,然后,該下一次跳躍連接輸入路由散列表。當(dāng)在轉(zhuǎn)發(fā)節(jié)點(diǎn)接收的首標(biāo)每次發(fā)生變化時(shí),將高速緩存的路由添加到該散列表。根據(jù)取決于下一次跳躍節(jié)點(diǎn)連接的平均壽命的期滿策略,從散列表中去除路由。
此外,當(dāng)數(shù)據(jù)分組沿所述分布樹向下分發(fā)時(shí),本發(fā)明可以修改首標(biāo)以修復(fù)分布樹。更具體地說,如上所述,本發(fā)明解碼首標(biāo)。本發(fā)明進(jìn)行檢驗(yàn),以檢查是否存在故障節(jié)點(diǎn),然后,本發(fā)明修訂(修改)該首標(biāo),以旁路故障節(jié)點(diǎn)。最后,本發(fā)明轉(zhuǎn)發(fā)數(shù)據(jù)分組(利用修訂的分布樹),從而跳越(skip)或旁路該故障節(jié)點(diǎn)。因此,通過將數(shù)據(jù)分組轉(zhuǎn)發(fā)到故障節(jié)點(diǎn)要將數(shù)據(jù)分組轉(zhuǎn)發(fā)到的節(jié)點(diǎn),本發(fā)明可以消除該故障節(jié)點(diǎn)。
因此,本發(fā)明提供首標(biāo)處理,以實(shí)現(xiàn)彈性無狀態(tài)覆蓋。端系統(tǒng)節(jié)點(diǎn)和鏈路故障的動(dòng)態(tài)性影響上述覆蓋通信方法的性能。通過對(duì)節(jié)點(diǎn)故障提供修復(fù)機(jī)制,本發(fā)明可以提高組通信方法的彈性。通過在發(fā)送器改變首標(biāo),或者在轉(zhuǎn)發(fā)節(jié)點(diǎn)即時(shí)處理(on the fly)改變首標(biāo),可以修復(fù)網(wǎng)絡(luò)和端系統(tǒng)的轉(zhuǎn)發(fā)故障。第一種方法假定節(jié)點(diǎn)和網(wǎng)絡(luò)故障觸發(fā)發(fā)送器報(bào)告的事件。在收到這些故障節(jié)點(diǎn)事件時(shí),發(fā)送器考慮到報(bào)告的故障建立新首標(biāo)。對(duì)于多對(duì)多組通信(象在聯(lián)網(wǎng)的虛擬環(huán)境中那樣),服務(wù)器從組中的所有接收機(jī)連續(xù)接收消息、組合它們并將它們發(fā)送到感興趣的同層。在這種情況下,如果未能從接收機(jī)接收分組,則發(fā)送器可以推測(cè)節(jié)點(diǎn)或網(wǎng)絡(luò)發(fā)生了故障(假定對(duì)于組通信,要求最低心跳頻率(heartbeat frequency))。
如果轉(zhuǎn)發(fā)端系統(tǒng)檢測(cè)到下一跳躍節(jié)點(diǎn)發(fā)生了故障,則動(dòng)態(tài)修復(fù)通信樹需要執(zhí)行另外的首標(biāo)處理機(jī)制。在此,假定節(jié)點(diǎn)可以檢測(cè)到將它連接到其子節(jié)點(diǎn)的鏈路上的故障。該首標(biāo)處理機(jī)制取決于首標(biāo)建立過程和中間節(jié)點(diǎn)上的首標(biāo)處理過程。假定不存在要滿足的帶寬限制,該節(jié)點(diǎn)可以僅將數(shù)據(jù)轉(zhuǎn)發(fā)到故障節(jié)點(diǎn)的下一跳躍子節(jié)點(diǎn)。下面的過程說明在檢測(cè)到到其子節(jié)點(diǎn)之一的故障的節(jié)點(diǎn),對(duì)樹的每個(gè)層遍歷的首標(biāo)處理修復(fù)方法的例子。
1.檢測(cè)當(dāng)前樹層上故障節(jié)點(diǎn)fnode的位置2.對(duì)fnode進(jìn)行Header Processing處理(確定下一層上具有同樣等級(jí)的各節(jié)點(diǎn)的組,然后轉(zhuǎn)發(fā)到該組中的所有節(jié)點(diǎn))。
關(guān)于建立每層的第二種方法,故障節(jié)點(diǎn)的位置要求在確定了下一跳躍子組的位置后,地址匹配。一旦確定了故障節(jié)點(diǎn)在每層序列中的位置,可以再一次(對(duì)新位置)應(yīng)用首標(biāo)處理方法,以確定其下一次跳躍地址。此外,可以這樣重新組織以當(dāng)前節(jié)點(diǎn)為根的子樹,使得剩余節(jié)點(diǎn)(n8)代替當(dāng)前的故障節(jié)點(diǎn)(n4),然后,跳越該故障節(jié)點(diǎn),并從該樹上移除該故障節(jié)點(diǎn),如圖3所示。
關(guān)于深度第一首標(biāo)建立過程,修復(fù)過程定位位于故障層1節(jié)點(diǎn)(n4)之后的層2節(jié)點(diǎn)(n7-n8),然后,將數(shù)據(jù)從節(jié)點(diǎn)n2直接轉(zhuǎn)發(fā)到這些節(jié)點(diǎn)(n7-n8)。檢測(cè)故障節(jié)點(diǎn)(n4)需要在層1節(jié)點(diǎn)(n2)的節(jié)點(diǎn)地址中進(jìn)行搜索。用于這些傳輸?shù)拿恳粋€(gè)的首標(biāo)包括對(duì)應(yīng)于層2節(jié)點(diǎn)的子樹,如圖4所示。
用于無狀態(tài)組通信的附加組通信首標(biāo)減小了與接收器的數(shù)量成正比的分組的數(shù)據(jù)凈荷載。對(duì)于會(huì)議電話應(yīng)用,首標(biāo)的要求低,因?yàn)楦鹘M中包括少量參與者。然而,發(fā)送器同時(shí)處理幾個(gè)對(duì)話。接收器可以頻繁改變對(duì)話成員,這樣可以觸發(fā)發(fā)送器改變組播首標(biāo)的編碼過程??梢岳眉尤?離開機(jī)制,處理成員變更,或者根據(jù)感興趣接收器組組過程,由發(fā)送器自動(dòng)處理成員變更。
圖5示出在所述每個(gè)節(jié)點(diǎn)進(jìn)行的處理。在條目500,本發(fā)明使首標(biāo)從數(shù)據(jù)分組分離,然后,在條目502,本發(fā)明處理該首標(biāo),以確定當(dāng)前節(jié)點(diǎn)的K個(gè)下一跳躍節(jié)點(diǎn)。如條目504所示,在進(jìn)行循環(huán)處理之前,本發(fā)明將I置位為0。如果I小于K,這再一次表示至少還存在一個(gè)要通過條目508-518處理的組。否則,則所有組均已被處理,而且該處理過程終止,正如判別塊506確定的那樣。如果如判別塊508所示,不能到達(dá)節(jié)點(diǎn),則本發(fā)明處理該首標(biāo),以確定下一跳躍節(jié)點(diǎn),從而修復(fù)該首標(biāo),以跳越或者旁路故障節(jié)點(diǎn),如條目510所示。在條目512,本發(fā)明修改節(jié)點(diǎn)表(如上所述),然后,在條目514重新編碼該首標(biāo)。接著,本發(fā)明將該首標(biāo)附加到該數(shù)據(jù)分組(條目516),然后,發(fā)送該數(shù)據(jù)分組(條目518)。然后,處理循環(huán)返回,使值I加1,然后回到判別條目506,以確定是否需要通過條目508-518對(duì)另一個(gè)分組進(jìn)行處理。
圖6示出實(shí)現(xiàn)本發(fā)明的代表性硬件環(huán)境,它示出根據(jù)本發(fā)明至少具有一個(gè)處理器或中央處理單元(CPU)10的信息處理系統(tǒng)/計(jì)算機(jī)系統(tǒng)的典型硬件配置。通過系統(tǒng)總線12,CPU 10與下列部件互連隨機(jī)存取存儲(chǔ)器(RAM)4;只讀存儲(chǔ)器(ROM)16;輸入/輸出(I/O)適配器18,用于將諸如磁盤單元11和磁帶驅(qū)動(dòng)器13的外圍設(shè)備連接到總線12;用戶接口適配器19,用于將鍵盤15、鼠標(biāo)17、揚(yáng)聲器103、麥克風(fēng)104和/或諸如觸摸屏(未示出)的其他用戶接口設(shè)備連接到總線12;通信適配器105,用于將信息處理系統(tǒng)連接到數(shù)據(jù)處理網(wǎng);以及顯示器適配器101,用于將總線12連接到顯示設(shè)備102。磁盤單元和磁帶單元可讀的程序存儲(chǔ)設(shè)備用于裝載在布線互連設(shè)計(jì)上運(yùn)行的指令,還將該指令裝載到計(jì)算機(jī)系統(tǒng)上。
因此,如上所述,本發(fā)明提供了基于建立并編碼基于發(fā)送器的樹進(jìn)行的無狀態(tài)組通信。將編碼分布樹獲得的首標(biāo)插入每個(gè)通信分組中。編碼過程可以部分或全部解碼分布樹。進(jìn)行編碼,以將首標(biāo)開銷和部分解碼分布樹所需的處理過程的開銷降低到最小。本發(fā)明包括用于在分布樹的中間節(jié)點(diǎn)處理編碼首標(biāo)以確定下一通信節(jié)點(diǎn)的機(jī)制和用于修改并再編碼樹以對(duì)網(wǎng)絡(luò)故障提供彈性或者響應(yīng)應(yīng)用層規(guī)定的條件的機(jī)制。
盡管根據(jù)優(yōu)選實(shí)施例對(duì)本發(fā)明進(jìn)行了說明,但是本技術(shù)領(lǐng)域內(nèi)的熟練技術(shù)人員明白,在所附權(quán)利要求的實(shí)質(zhì)范圍內(nèi),可以進(jìn)行修改實(shí)現(xiàn)本發(fā)明。
權(quán)利要求
1.一種對(duì)到分布樹上的各節(jié)點(diǎn)的數(shù)據(jù)分組的無狀態(tài)組通信建立傳輸首標(biāo)的方法,所述方法包括編碼所述分布樹,以產(chǎn)生編碼分布樹;建立包括所述編碼分布樹的首標(biāo);以及將所述首標(biāo)附加到待分發(fā)到所述分布樹的數(shù)據(jù)分組。
2.根據(jù)權(quán)利要求1所述的方法,該方法進(jìn)一步包括在所述數(shù)據(jù)分組沿所述分布樹分發(fā)時(shí),修改所述首標(biāo),以去除與所述分布樹的上分布層有關(guān)的編碼信息。
3.根據(jù)權(quán)利要求1所述的方法,該方法進(jìn)一步包括在節(jié)點(diǎn)接收所述數(shù)據(jù)分組時(shí),解碼所述編碼分布樹的一部分,而在所述節(jié)點(diǎn)將所述數(shù)據(jù)分組沿分布樹向下送到另一個(gè)節(jié)點(diǎn)時(shí),再編碼所述編碼分布樹。
4.根據(jù)權(quán)利要求1所述的方法,其中所述分布樹控制所述節(jié)點(diǎn)接收所述數(shù)據(jù)分組的順序。
5.根據(jù)權(quán)利要求4所述的方法,其中通過控制所述節(jié)點(diǎn)接收所述數(shù)據(jù)分組的順序,所述編碼分布樹使所述節(jié)點(diǎn)在收到所述數(shù)據(jù)分組后處理所述數(shù)據(jù)分組。
6.根據(jù)權(quán)利要求1所述的方法,該方法進(jìn)一步包括在進(jìn)行所述編碼過程之前,根據(jù)接收器節(jié)點(diǎn)的動(dòng)態(tài)組,在發(fā)送器節(jié)點(diǎn)建立所述分布樹。
7.根據(jù)權(quán)利要求1所述的方法,其中所述編碼過程包括在從所述分布樹的根開始的所述分布樹的每層遍歷期間,順序進(jìn)入節(jié)點(diǎn)地址。
8.一種對(duì)到分布樹上的各節(jié)點(diǎn)的數(shù)據(jù)分組的無狀態(tài)組通信建立傳輸首標(biāo)的方法,所述方法包括編碼所述分布樹,以產(chǎn)生編碼分布樹;建立包括所述編碼分布樹的首標(biāo);以及將所述首標(biāo)附加到待分發(fā)到所述分布樹的數(shù)據(jù)分組;在每個(gè)節(jié)點(diǎn)處理所述編碼分布樹,從而指出下一次應(yīng)該將所述數(shù)據(jù)分組傳送到哪個(gè)節(jié)點(diǎn)。
9.根據(jù)權(quán)利要求8所述的方法,該方法進(jìn)一步包括在所述數(shù)據(jù)分組沿所述分布樹分發(fā)時(shí),修改所述首標(biāo),以去除與所述分布樹的上分布層有關(guān)的編碼信息。
10.根據(jù)權(quán)利要求8所述的方法,該方法進(jìn)一步包括在節(jié)點(diǎn)接收所述數(shù)據(jù)分組時(shí),解碼所述編碼分布樹的一部分,而在所述節(jié)點(diǎn)將所述數(shù)據(jù)分組沿所述分布樹向下送到另一個(gè)節(jié)點(diǎn)時(shí),再編碼所述編碼分布樹。
11.根據(jù)權(quán)利要求8所述的方法,其中所述分布樹控制所述節(jié)點(diǎn)接收所述數(shù)據(jù)分組的順序。
12.根據(jù)權(quán)利要求11所述的方法,其中通過控制所述節(jié)點(diǎn)接收所述數(shù)據(jù)分組的順序,所述編碼分布樹使所述節(jié)點(diǎn)在收到所述數(shù)據(jù)分組后處理所述數(shù)據(jù)分組。
13.根據(jù)權(quán)利要求8所述的方法,該方法進(jìn)一步包括在進(jìn)行所述編碼過程之前,根據(jù)接收器節(jié)點(diǎn)的動(dòng)態(tài)組,在發(fā)送器節(jié)點(diǎn)建立所述分布樹。
14.根據(jù)權(quán)利要求8所述的方法,其中所述編碼過程包括在從所述分布樹的根開始的所述分布樹的每層遍歷期間,順序進(jìn)入節(jié)點(diǎn)地址。
15.一種到分布樹上的各節(jié)點(diǎn)的數(shù)據(jù)分組的無狀態(tài)組通信的方法,所述方法包括編碼所述分布樹,以產(chǎn)生編碼分布樹;建立包括所述編碼分布樹的首標(biāo);以及將所述首標(biāo)附加到待分發(fā)到所述分布樹的數(shù)據(jù)分組;在節(jié)點(diǎn)接收所述數(shù)據(jù)分組時(shí),解碼所述編碼分布樹的一部分;以及在所述節(jié)點(diǎn)使所述數(shù)據(jù)分組沿所述分布樹分發(fā)到另一個(gè)節(jié)點(diǎn)時(shí),再編碼所述編碼分布樹。
16.根據(jù)權(quán)利要求15所述的方法,其中在沿所述分布樹分發(fā)所述數(shù)據(jù)分組時(shí),所述解碼和再編碼過程修改所述首標(biāo),以去除與所述分布樹的上分布層有關(guān)的編碼信息。
17.根據(jù)權(quán)利要求15所述的方法,其中所述分布樹控制所述節(jié)點(diǎn)接收所述數(shù)據(jù)分組的順序。
18.根據(jù)權(quán)利要求17所述的方法,其中通過控制所述節(jié)點(diǎn)接收所述數(shù)據(jù)分組的順序,所述編碼分布樹使所述節(jié)點(diǎn)在收到所述數(shù)據(jù)分組后處理所述數(shù)據(jù)分組。
19.根據(jù)權(quán)利要求15所述的方法,該方法進(jìn)一步包括在進(jìn)行所述編碼過程之前,根據(jù)接收器節(jié)點(diǎn)的動(dòng)態(tài)組,在發(fā)送器節(jié)點(diǎn)建立所述分布樹。
20.根據(jù)權(quán)利要求15所述的方法,其中所述編碼過程包括在從所述分布樹的根開始的所述分布樹的每層遍歷期間,順序進(jìn)入節(jié)點(diǎn)地址。
21.一種機(jī)器可讀、包含指令程序的程序存儲(chǔ)設(shè)備,機(jī)器可以執(zhí)行該指令程序以實(shí)現(xiàn)對(duì)到分布樹上的各節(jié)點(diǎn)的數(shù)據(jù)分組的無狀態(tài)組通信建立傳輸首標(biāo)的方法,所述方法包括編碼所述分布樹,以產(chǎn)生編碼分布樹;建立包括所述編碼分布樹的首標(biāo);以及將所述首標(biāo)附加到待分發(fā)到所述分布樹的數(shù)據(jù)分組。
22.根據(jù)權(quán)利要求21所述的程序存儲(chǔ)設(shè)備,其中所述方法進(jìn)一步包括在所述數(shù)據(jù)分組沿所述分布樹分發(fā)時(shí),修改所述首標(biāo),以去除與所述分布樹的上分布層有關(guān)的編碼信息。
23.根據(jù)權(quán)利要求21所述的程序存儲(chǔ)設(shè)備,其中所述方法進(jìn)一步包括在節(jié)點(diǎn)接收所述數(shù)據(jù)分組時(shí),解碼所述編碼分布樹的一部分,并且在所述節(jié)點(diǎn)將所述數(shù)據(jù)分組沿分布樹向下送到另一個(gè)節(jié)點(diǎn)時(shí),再編碼所述編碼分布樹。
24.根據(jù)權(quán)利要求21所述的程序存儲(chǔ)設(shè)備,其中所述分布樹控制所述節(jié)點(diǎn)接收所述數(shù)據(jù)分組的順序。
25.根據(jù)權(quán)利要求24所述的程序存儲(chǔ)設(shè)備,其中通過控制所述節(jié)點(diǎn)接收所述數(shù)據(jù)分組的順序,所述編碼分布樹使所述節(jié)點(diǎn)在收到所述數(shù)據(jù)分組后處理所述數(shù)據(jù)分組。
26.根據(jù)權(quán)利要求21所述的程序存儲(chǔ)設(shè)備,其中所述方法進(jìn)一步包括在進(jìn)行所述編碼過程之前,根據(jù)接收器節(jié)點(diǎn)的動(dòng)態(tài)組,在發(fā)送器節(jié)點(diǎn)建立所述分布樹。
27.根據(jù)權(quán)利要求21所述的程序存儲(chǔ)設(shè)備,其中所述編碼過程包括在從所述分布樹的根開始的所述分布樹的每層遍歷期間,順序進(jìn)入節(jié)點(diǎn)地址。
全文摘要
本發(fā)明公開了一種通過建立并編碼基于發(fā)送器的樹,進(jìn)行無狀態(tài)組通信的方法。將通過編碼分布樹獲得的首標(biāo)插入每個(gè)通信分組中。編碼過程可以對(duì)部分或全部分布樹進(jìn)行解碼。進(jìn)行編碼,以將首標(biāo)開銷和部分解碼分布樹所需的處理過程的開銷降低到最小。本發(fā)明包括用于在分布樹的中間節(jié)點(diǎn)處理編碼首標(biāo)以確定下一通信節(jié)點(diǎn)的機(jī)制和用于修改并再編碼樹以對(duì)網(wǎng)絡(luò)故障提供彈性或者響應(yīng)應(yīng)用層規(guī)定的條件的機(jī)制。
文檔編號(hào)H04L12/18GK1604560SQ20041001172
公開日2005年4月6日 申請(qǐng)日期2004年9月24日 優(yōu)先權(quán)日2003年9月30日
發(fā)明者劉震, 喬治·V·波佩斯庫 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司