欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種基于推拉結(jié)合的純分布式數(shù)據(jù)交換方法

文檔序號:7615652閱讀:169來源:國知局
專利名稱:一種基于推拉結(jié)合的純分布式數(shù)據(jù)交換方法
技術(shù)領(lǐng)域
本發(fā)明屬于網(wǎng)絡(luò)中的數(shù)據(jù)交換技術(shù)領(lǐng)域,特別涉及一種應(yīng)用于超大規(guī)模直播環(huán)境下的純分布式數(shù)據(jù)交換方法。
背景技術(shù)
目前流行的網(wǎng)絡(luò)中數(shù)據(jù)交換方式可分為三種集中式,分布式,以及介于集中式與分布式之間的半分布式。集中式的數(shù)據(jù)交換雖然易于管理,但在可擴(kuò)展性、容錯性和數(shù)據(jù)互動性方面存在先天缺陷。分布式的數(shù)據(jù)交換在一定程度上彌補(bǔ)了集中式的不足,但對管理提出了更高的要求。半分布式的數(shù)據(jù)交換是集中式與分布式的一種折中,試圖尋求一種集分布式與集中式優(yōu)勢于一體的數(shù)據(jù)交換方式,但其各項性能不是全部最優(yōu)。
集中式的數(shù)據(jù)交換方法完全依賴于中央服務(wù)器網(wǎng)絡(luò)出口帶寬,由此決定了網(wǎng)絡(luò)的負(fù)載能力。在集中式的數(shù)據(jù)交換方式下,對于出口帶寬1000兆的中央服務(wù)器,需要給每個客戶端結(jié)點(diǎn)提供1兆帶寬流量的情況下,單臺中央服務(wù)器可同時支持的服務(wù)上限是1000人。半分布式的數(shù)據(jù)交換雖然在一定程度上優(yōu)于集中式的數(shù)據(jù)交換方式,但仍部分依賴于中央服務(wù)器的網(wǎng)絡(luò)帶寬。在半分布式的數(shù)據(jù)交換方法下,對于出口帶寬1000兆的中央服務(wù)器,需要給每個客戶端結(jié)點(diǎn)提供1兆帶寬流量的相同情況下,單臺中央服務(wù)器可同時支持的服務(wù)上限在理論上可達(dá)數(shù)千人甚至上萬人。分布式的數(shù)據(jù)交換方式,由于受到技術(shù)方面的限制,目前在超大規(guī)模直播環(huán)境下沒有能夠得到應(yīng)用。

發(fā)明內(nèi)容
本發(fā)明的目的是為克服已有技術(shù)的不足之處,提出一種基于推拉結(jié)合的純分布式數(shù)據(jù)交換方法,是基于只有一臺或多臺中央服務(wù)器參與網(wǎng)絡(luò)中客戶端結(jié)點(diǎn)進(jìn)入與退出網(wǎng)絡(luò)的登記與注銷,中央服務(wù)器不承擔(dān)此外的任何功能,包括但不限于數(shù)據(jù)交換與服務(wù)提供。本發(fā)明方法較集中式與半分布式有了本質(zhì)的改變,擁有良好的可擴(kuò)展性、容錯性和數(shù)據(jù)互動性等特性,理論上單臺中央服務(wù)器可同時支持的服務(wù)數(shù)量沒有上限。
本發(fā)明提出的一種基于推拉結(jié)合的純分布式數(shù)據(jù)交換方法,其特征在于,對于單臺中央服務(wù)器與網(wǎng)絡(luò)中各個客戶端結(jié)點(diǎn)通過周期性地循環(huán)進(jìn)行數(shù)據(jù)交換,在循環(huán)過程中的每個時間周期內(nèi),完成一組數(shù)據(jù)包的發(fā)送、接收、請求服務(wù);所述每個客戶端結(jié)點(diǎn)在該結(jié)點(diǎn)進(jìn)入網(wǎng)絡(luò)時,由中央服務(wù)器統(tǒng)一分配結(jié)點(diǎn)編號,并告知該結(jié)點(diǎn)網(wǎng)絡(luò)中多個鄰居結(jié)點(diǎn)的編號、位置等信息;所述每一個客戶端結(jié)點(diǎn)的數(shù)據(jù)交換包括以下步驟(1)該結(jié)點(diǎn)建立并更新用于數(shù)據(jù)交換的本地數(shù)據(jù)包列表,在該本地數(shù)據(jù)包列表中包括在該結(jié)點(diǎn)的本地緩存中已經(jīng)收到的并可以為鄰居結(jié)點(diǎn)提供服務(wù)的數(shù)據(jù)包的序列號(該序列號的分配是按數(shù)據(jù)包內(nèi)容順序連續(xù)遞增的,且唯一的);(2)該結(jié)點(diǎn)將其本地數(shù)據(jù)包列表發(fā)送給已知曉的鄰居結(jié)點(diǎn);同時,該結(jié)點(diǎn)接收來自已知曉的鄰居結(jié)點(diǎn)的本地數(shù)據(jù)包列表;(3)該結(jié)點(diǎn)將所有收到的本地數(shù)據(jù)包列表進(jìn)行分析,并建立、更新每一個數(shù)據(jù)包可以提供服務(wù)的候選鄰居結(jié)點(diǎn)列表,該候選鄰居結(jié)點(diǎn)列表包括所有己收到的本地數(shù)據(jù)包列表中含有的數(shù)據(jù)包序列號,每一個數(shù)據(jù)包序列號對應(yīng)的可提供服務(wù)的若干個的候選鄰居結(jié)點(diǎn)編號;(4)若本地數(shù)據(jù)包列表中存在缺失的數(shù)據(jù)包(該結(jié)點(diǎn)還沒有收到的、造成本地數(shù)據(jù)包列表中數(shù)據(jù)包序列號不連續(xù)的數(shù)據(jù)包),該結(jié)點(diǎn)在相對應(yīng)的數(shù)據(jù)包候選鄰居結(jié)點(diǎn)列表中選取一個或多個鄰居結(jié)點(diǎn),并向該鄰居結(jié)點(diǎn)發(fā)出對于該數(shù)據(jù)包的數(shù)據(jù)請求;同時接收上一個數(shù)據(jù)請求所返回的數(shù)據(jù)包;若該結(jié)點(diǎn)收到來自鄰居結(jié)點(diǎn)的數(shù)據(jù)請求,對數(shù)據(jù)請求作出服務(wù)響應(yīng),將相對應(yīng)的數(shù)據(jù)包發(fā)送給數(shù)據(jù)請求方;本發(fā)明稱之為基于雙向傳輸?shù)臄?shù)據(jù)請求的過程處于“拉”模式;(5)若該結(jié)點(diǎn)自動發(fā)送該鄰居結(jié)點(diǎn)的本地數(shù)據(jù)包列表中缺失的數(shù)據(jù)包給該鄰居結(jié)點(diǎn),本發(fā)明稱之為該結(jié)點(diǎn)到其某個鄰居結(jié)點(diǎn)處于“推”模式;若該結(jié)點(diǎn)接收來自該鄰居結(jié)點(diǎn)自動發(fā)送來的其本地數(shù)據(jù)包列表中缺失的數(shù)據(jù)包,本發(fā)明稱之為該結(jié)點(diǎn)的某個鄰居結(jié)點(diǎn)到該結(jié)點(diǎn)處于“推”模式,即上述兩種“推”模式均基于單向傳輸?shù)臄?shù)據(jù)廣播;(6)當(dāng)處于“拉”模式中的某個鄰居結(jié)點(diǎn)響應(yīng)服務(wù)請求的各項指標(biāo)滿足給定的要求時,則其鄰居結(jié)點(diǎn)到該結(jié)點(diǎn)的通信視為流暢,則該鄰居結(jié)點(diǎn)到該結(jié)點(diǎn)的數(shù)據(jù)交換模式由原來的“拉”模式轉(zhuǎn)換為該結(jié)點(diǎn)的某個鄰居結(jié)點(diǎn)到該結(jié)點(diǎn)的“推”模式(即由該結(jié)點(diǎn)的鄰居結(jié)點(diǎn)通知該結(jié)點(diǎn)開始自動發(fā)送該鄰居結(jié)點(diǎn)本地數(shù)據(jù)包列表中的所有數(shù)據(jù)包給該結(jié)點(diǎn));(7)若該結(jié)點(diǎn)自動發(fā)送其本地數(shù)據(jù)包列表中所有數(shù)據(jù)給某個鄰居結(jié)點(diǎn)期間(即該結(jié)點(diǎn)到其鄰居結(jié)點(diǎn)處于“推”模式),數(shù)據(jù)各指標(biāo)(延時、丟包等)滿足給定要求時,則該結(jié)點(diǎn)到其鄰居結(jié)點(diǎn)之間的通信視為阻塞,則該結(jié)點(diǎn)到其鄰居結(jié)點(diǎn)的數(shù)據(jù)交換模式由所述的“推”轉(zhuǎn)為“拉”(即由該結(jié)點(diǎn)通知該鄰居結(jié)點(diǎn)停止自動發(fā)送其本地數(shù)據(jù)包列表中的所有數(shù)據(jù)包給該結(jié)點(diǎn))。
以上步驟(1)-(7)構(gòu)成一個時間周期,循環(huán)執(zhí)行。
所述的本地數(shù)據(jù)包列表的建立采用一個位向量實現(xiàn),該位向量由一個上界值和長度確定,其長度(通常為一個固定值)不大于該結(jié)點(diǎn)的本地緩存可以容納的數(shù)據(jù)包數(shù)量;該位向量可采用循環(huán)隊列的邏輯存儲結(jié)構(gòu)來實現(xiàn),在實際應(yīng)用中,可以采用鏈表、數(shù)組等方式。
所述本地數(shù)據(jù)包列表的更新方法為當(dāng)有新的數(shù)據(jù)包到達(dá)該結(jié)點(diǎn)時,對本地數(shù)據(jù)包列表進(jìn)行更新,該更新的原則是始終保持位向量的上界值等于該結(jié)點(diǎn)當(dāng)前已經(jīng)收到的數(shù)據(jù)包中序列號的最大值。
所述的本地數(shù)據(jù)包列表中的數(shù)據(jù)包序列號所指向的數(shù)據(jù)包是本地緩存中已經(jīng)收到的數(shù)據(jù)包的全部或部分。
所述候選鄰居結(jié)點(diǎn)列表的建立采用一個位向量實現(xiàn),該位向量由一個上界值和長度確定,其長度(通常為一個固定值)不大于該結(jié)點(diǎn)的本地緩存可以容納的數(shù)據(jù)包數(shù)量;該位向量,可采用循環(huán)隊列的邏輯存儲結(jié)構(gòu)來實現(xiàn),在實際應(yīng)用中,可以采用鏈表、數(shù)組等方式。
所述候選鄰居結(jié)點(diǎn)列表的更新方法為當(dāng)鄰居結(jié)點(diǎn)有新的本地數(shù)據(jù)包列表到達(dá)該結(jié)點(diǎn)時,對候選鄰居結(jié)點(diǎn)列表進(jìn)行更新,其中更新的原則是始終保持位向量的上界值等于該鄰居結(jié)點(diǎn)當(dāng)前已經(jīng)收到的本地數(shù)據(jù)包列表中數(shù)據(jù)包序列號的最大值,同時更新每一個數(shù)據(jù)包可以提供服務(wù)的候選鄰居結(jié)點(diǎn)編號;所述候選鄰居結(jié)點(diǎn)列表是用于在“拉”模式中用戶請求數(shù)據(jù)的可選鄰居結(jié)點(diǎn)列表。
所述候選鄰居結(jié)點(diǎn)列表中鄰居結(jié)點(diǎn)的選取方法,包括但不限于隨機(jī)選取、輪盤賭和啟發(fā)式方法。
所述鄰居結(jié)點(diǎn)到該結(jié)點(diǎn)的通信視為流暢的判定方法為匯總與統(tǒng)計該結(jié)點(diǎn)與其鄰居結(jié)點(diǎn)之間的統(tǒng)計數(shù)據(jù)(包括但不限于響應(yīng)率、丟包率和延時時間),當(dāng)統(tǒng)計數(shù)據(jù)滿足給定條件時,該結(jié)點(diǎn)與其鄰居結(jié)點(diǎn)之間的通信視為流暢。
所述該結(jié)點(diǎn)到其鄰居結(jié)點(diǎn)之間的通信視為阻塞的判定方法為匯總與統(tǒng)計該結(jié)點(diǎn)與其鄰居結(jié)點(diǎn)之間的統(tǒng)計數(shù)據(jù)(包括但不限于響應(yīng)率、丟包率和延時時間),當(dāng)統(tǒng)計數(shù)據(jù)滿足給定條件時,該結(jié)點(diǎn)與其鄰居結(jié)點(diǎn)之間的通信視為阻塞。
本發(fā)明的特點(diǎn)及技術(shù)效果本發(fā)明方法提出的純分布式的數(shù)據(jù)交換,是基于只有一臺或多臺中央服務(wù)器參與網(wǎng)絡(luò)中客戶端結(jié)點(diǎn)進(jìn)入與退出網(wǎng)絡(luò)的登記與注銷,中央服務(wù)器不承擔(dān)此外的任何功能,包括但不限于數(shù)據(jù)交換與服務(wù)提供。本發(fā)明方法較集中式與半分布式有了本質(zhì)的改變,擁有良好的可擴(kuò)展性、容錯性和數(shù)據(jù)互動性等特性,理論上單臺中央服務(wù)器可同時支持的服務(wù)數(shù)量沒有上限。本發(fā)明方法結(jié)合數(shù)據(jù)交換二種模式基于單向傳輸?shù)臄?shù)據(jù)廣播的“推”模式和基于雙向傳輸?shù)臄?shù)據(jù)請求的“拉”模式。經(jīng)過理論論證和實驗證明,推拉結(jié)合的純分布式數(shù)據(jù)交換不但充分發(fā)揮了分布式數(shù)據(jù)交換的優(yōu)勢,而且使網(wǎng)絡(luò)始終保持在一個相對最優(yōu)的動態(tài)平衡點(diǎn)上,大大增加了網(wǎng)絡(luò)穩(wěn)定性。


圖1是本發(fā)明方法的流程圖。
圖2是本發(fā)明實施例中的某結(jié)點(diǎn)的本地數(shù)據(jù)包列表。
圖3是本發(fā)明實施例中的某結(jié)點(diǎn)的鄰居結(jié)點(diǎn)列表。
圖4是本發(fā)明實施例中的某結(jié)點(diǎn)的候選鄰居結(jié)點(diǎn)列表。
具體實施例方式
本發(fā)明提出的一種基于推拉結(jié)合的純分布式數(shù)據(jù)交換方法結(jié)合附圖1、2、3、4及實施例詳細(xì)說明如下本發(fā)明提出的一種基于推拉結(jié)合的純分布式數(shù)據(jù)交換方法,對于單臺中央服務(wù)器與網(wǎng)絡(luò)中各個客戶端結(jié)點(diǎn)通過周期性地循環(huán)進(jìn)行數(shù)據(jù)交換(多臺中央服務(wù)器與網(wǎng)絡(luò)中各個客戶端結(jié)點(diǎn)通過周期性地循環(huán)進(jìn)行數(shù)據(jù)交換的情況相同),在循環(huán)過程中的每個時間周期內(nèi),完成一組數(shù)據(jù)包的發(fā)送、接收、請求服務(wù);所述每個客戶端結(jié)點(diǎn)在該結(jié)點(diǎn)進(jìn)入網(wǎng)絡(luò)時,由中央服務(wù)器統(tǒng)一分配結(jié)點(diǎn)編號,并告知該結(jié)點(diǎn)網(wǎng)絡(luò)中多個鄰居結(jié)點(diǎn)的編號、位置等信息;所述每一個客戶端結(jié)點(diǎn)的數(shù)據(jù)交換實施例,如圖1所示,包括以下步驟(1)結(jié)點(diǎn)Point013568建立并更新該結(jié)點(diǎn)的用于數(shù)據(jù)交換的本地數(shù)據(jù)包列表(結(jié)點(diǎn)Point013568的本地數(shù)據(jù)包列表如圖2所示,有5個數(shù)據(jù)包序列號,),在該本地數(shù)據(jù)包列表中包括在該結(jié)點(diǎn)的本地緩存中已經(jīng)收到的并可以為鄰居結(jié)點(diǎn)提供服務(wù)的數(shù)據(jù)包的序列號(該序列號的分配是按數(shù)據(jù)包內(nèi)容順序連續(xù)遞增的,且唯一的,可以看出其中存在缺失的數(shù)據(jù)包);上述的本地數(shù)據(jù)包列表的建立采用一個位向量實現(xiàn),該位向量由一個上界值和長度確定,其長度(通常為一個固定值)不大于該結(jié)點(diǎn)的本地緩存可以容納的數(shù)據(jù)包數(shù)量,在本實施例中本地數(shù)據(jù)包列表的長度為1000(如圖2所示,為方便示意,示例中本地數(shù)據(jù)包列表長度用10代替);該位向量可采用循環(huán)隊列的邏輯存儲結(jié)構(gòu)來實現(xiàn),本實施例的程序設(shè)計中,采用靜態(tài)數(shù)組的方式實現(xiàn)。
本地數(shù)據(jù)包列表的更新與維護(hù)方法為當(dāng)有新的數(shù)據(jù)包到達(dá)該結(jié)點(diǎn)時,對本地數(shù)據(jù)包列表進(jìn)行更新,該更新的原則是始終保持位向量的上界值等于該結(jié)點(diǎn)當(dāng)前已經(jīng)收到的數(shù)據(jù)包中序列號的最大值。
本地數(shù)據(jù)包列表中的數(shù)據(jù)包序列號所指向的數(shù)據(jù)包是本地緩存中已經(jīng)收到的序列號相對大的那一半數(shù)據(jù)包。
(2)該結(jié)點(diǎn)將其本地數(shù)據(jù)包列表發(fā)送給已知曉的鄰居結(jié)點(diǎn)(結(jié)點(diǎn)Point013568的鄰居結(jié)點(diǎn)列表如圖3所示,其有5個鄰居結(jié)點(diǎn));同時,該結(jié)點(diǎn)接收來自己知曉的鄰居結(jié)點(diǎn)的本地數(shù)據(jù)包列表;(3)該結(jié)點(diǎn)將所有收到的本地數(shù)據(jù)包列表進(jìn)行分析,并建立、更新和維護(hù)每一個數(shù)據(jù)包可以提供服務(wù)的候選鄰居結(jié)點(diǎn)列表,該列表包括所有己收到的本地數(shù)據(jù)包列表中含有的數(shù)據(jù)包序列號,每一個數(shù)據(jù)包序列號對應(yīng)的可提供服務(wù)的若干個的候選鄰居結(jié)點(diǎn)編號(結(jié)點(diǎn)Point013568的候選鄰居結(jié)點(diǎn)列表如圖4所示,有20個數(shù)據(jù)包序列號,以及一個或多個可提供這些數(shù)據(jù)包服務(wù)的候選鄰居結(jié)點(diǎn)編號);上述候選鄰居結(jié)點(diǎn)列表的建立可采用一個位向量實現(xiàn),該位向量由一個上界值和長度確定,其長度(通常為一個固定值)不大于該結(jié)點(diǎn)的本地緩存可以容納的數(shù)據(jù)包數(shù)量,在本實施例中候選鄰居結(jié)點(diǎn)列表的長度為2000(如圖4所示,為方便示意,示例中候選鄰居結(jié)點(diǎn)列表長度用20代替);該位向量,可采用循環(huán)隊列的邏輯存儲結(jié)構(gòu)來實現(xiàn),本實施例的程序設(shè)計中,采用鏈表的方式實現(xiàn)。
上述候選鄰居結(jié)點(diǎn)列表的更新與維護(hù)方法為當(dāng)鄰居結(jié)點(diǎn)有新的本地數(shù)據(jù)包列表到達(dá)該結(jié)點(diǎn)時,對候選鄰居結(jié)點(diǎn)列表進(jìn)行更新,其中更新的原則是始終保持位向量的上界值等于該鄰居結(jié)點(diǎn)當(dāng)前已經(jīng)收到的本地數(shù)據(jù)包列表中數(shù)據(jù)包序列號的最大值,同時更新每一個數(shù)據(jù)包可以提供服務(wù)的候選鄰居結(jié)點(diǎn)編號;(4)在本地數(shù)據(jù)包列表中缺失的數(shù)據(jù)包(該結(jié)點(diǎn)還沒有收到的、造成本地數(shù)據(jù)包列表中數(shù)據(jù)包序列號不連續(xù)的數(shù)據(jù)包),該結(jié)點(diǎn)在相對應(yīng)的數(shù)據(jù)包候選鄰居結(jié)點(diǎn)列表中選取一個或多個鄰居結(jié)點(diǎn),并向該鄰居結(jié)點(diǎn)發(fā)出對于該數(shù)據(jù)包的數(shù)據(jù)請求;同時接收上一個數(shù)據(jù)請求所返回的數(shù)據(jù)包;該結(jié)點(diǎn)收到來自鄰居結(jié)點(diǎn)的數(shù)據(jù)請求,對數(shù)據(jù)請求作出服務(wù)響應(yīng),將相對應(yīng)的數(shù)據(jù)包發(fā)送給數(shù)據(jù)請求方;即處于基于雙向傳輸?shù)臄?shù)據(jù)請求的“拉”模式;上述候選鄰居結(jié)點(diǎn)列表中鄰居結(jié)點(diǎn)的選取方法,在本實施例中,綜合考慮網(wǎng)絡(luò)性能和系統(tǒng)負(fù)載,選擇輪盤賭的方法來實現(xiàn)。
(5)該結(jié)點(diǎn)自動發(fā)送該鄰居結(jié)點(diǎn)本地數(shù)據(jù)包列表中缺失的數(shù)據(jù)包給該鄰居結(jié)點(diǎn),即為該結(jié)點(diǎn)到其某個鄰居結(jié)點(diǎn)處于基于單向傳輸?shù)臄?shù)據(jù)廣播的“推”模式;該結(jié)點(diǎn)接收來自該鄰居結(jié)點(diǎn)發(fā)送過來的其緩沖池中缺失的數(shù)據(jù)包,即為該結(jié)點(diǎn)的某個鄰居結(jié)點(diǎn)到該結(jié)點(diǎn)處于基于單向傳輸?shù)臄?shù)據(jù)廣播的“推”模式;上述候選鄰居結(jié)點(diǎn)列表是用于在“拉”模式中用戶請求數(shù)據(jù)的可選鄰居結(jié)點(diǎn)列表。
(6)當(dāng)處于“拉”模式中的某個鄰居結(jié)點(diǎn)響應(yīng)服務(wù)請求的各項指標(biāo)滿足給定的要求時,則其鄰居結(jié)點(diǎn)到該結(jié)點(diǎn)的通信視為流暢,則該鄰居結(jié)點(diǎn)到該結(jié)點(diǎn)的數(shù)據(jù)交換模式由原來的“拉”模式轉(zhuǎn)換為該結(jié)點(diǎn)的某個鄰居結(jié)點(diǎn)到該結(jié)點(diǎn)的“推”模式(即由該結(jié)點(diǎn)的鄰居結(jié)點(diǎn)通知該結(jié)點(diǎn)開始自動發(fā)送該鄰居結(jié)點(diǎn)本地數(shù)據(jù)包列表中的所有數(shù)據(jù)包給該結(jié)點(diǎn));上述鄰居結(jié)點(diǎn)到該結(jié)點(diǎn)的通信視為流暢的判定方法為匯總與統(tǒng)計該結(jié)點(diǎn)與其鄰居結(jié)點(diǎn)之間的統(tǒng)計數(shù)據(jù)(在本實施例中,包括響應(yīng)率、丟包率和延時時間),當(dāng)統(tǒng)計數(shù)據(jù)滿足給定條件(同時滿足響應(yīng)率80%以上,丟包率1%以下,延時時間小于1秒)時,該結(jié)點(diǎn)與其鄰居結(jié)點(diǎn)之間的通信視為流暢。
(7)若該結(jié)點(diǎn)自動發(fā)送其本地數(shù)據(jù)包列表中所有數(shù)據(jù)給某個鄰居結(jié)點(diǎn)期間(即該結(jié)點(diǎn)到其鄰居結(jié)點(diǎn)處于“推”模式),數(shù)據(jù)延時、丟包等指標(biāo)滿足給定要求時,則該結(jié)點(diǎn)到其鄰居結(jié)點(diǎn)之間的通信視為阻塞,則該結(jié)點(diǎn)到其鄰居結(jié)點(diǎn)的數(shù)據(jù)交換模式由所述的“推”轉(zhuǎn)為“拉”(即由該結(jié)點(diǎn)通知該鄰居結(jié)點(diǎn)停止自動發(fā)送其本地數(shù)據(jù)包列表中的所有數(shù)據(jù)包給該結(jié)點(diǎn))。
上述該結(jié)點(diǎn)到其鄰居結(jié)點(diǎn)之間的通信視為阻塞的判定方法為匯總與統(tǒng)計該結(jié)點(diǎn)與其鄰居結(jié)點(diǎn)之間的統(tǒng)計數(shù)據(jù)(在本實施例中,包括響應(yīng)率、丟包率和延時時間),當(dāng)統(tǒng)計數(shù)據(jù)滿足給定條件(響應(yīng)率50%以下,丟包率10%以上,延時時間大于3秒,滿足其中任何一項)時,該結(jié)點(diǎn)與其鄰居結(jié)點(diǎn)之間的通信視為阻塞。
以上步驟(1)-(7)構(gòu)成一個時間周期,循環(huán)執(zhí)行。
權(quán)利要求
1.一種基于推拉結(jié)合的純分布式數(shù)據(jù)交換方法,其特征在于,對于單臺中央服務(wù)器與網(wǎng)絡(luò)中各個客戶端結(jié)點(diǎn)通過周期性地循環(huán)進(jìn)行數(shù)據(jù)交換,在循環(huán)過程中的每個時間周期內(nèi),完成一組數(shù)據(jù)包的發(fā)送、接收、請求服務(wù);所述每個客戶端結(jié)點(diǎn)在該結(jié)點(diǎn)進(jìn)入網(wǎng)絡(luò)時,由中央服務(wù)器統(tǒng)一分配結(jié)點(diǎn)編號,并告知該結(jié)點(diǎn)網(wǎng)絡(luò)中多個鄰居結(jié)點(diǎn)的編號、位置等信息;所述每一個客戶端結(jié)點(diǎn)的數(shù)據(jù)交換包括以下步驟(1)該結(jié)點(diǎn)建立并更新用于數(shù)據(jù)交換的本地數(shù)據(jù)包列表,在該本地數(shù)據(jù)包列表中包括在該結(jié)點(diǎn)的本地緩存中已經(jīng)收到的并可以為鄰居結(jié)點(diǎn)提供服務(wù)的數(shù)據(jù)包的序列號;(2)該結(jié)點(diǎn)將其本地數(shù)據(jù)包列表發(fā)送給已知曉的鄰居結(jié)點(diǎn);同時,該結(jié)點(diǎn)接收來自已知曉的鄰居結(jié)點(diǎn)的本地數(shù)據(jù)包列表;(3)該結(jié)點(diǎn)將所有收到的本地數(shù)據(jù)包列表進(jìn)行分析,并建立、更新每一個數(shù)據(jù)包可以提供服務(wù)的候選鄰居結(jié)點(diǎn)列表,該候選鄰居結(jié)點(diǎn)列表包括所有已收到的本地數(shù)據(jù)包列表中含有的數(shù)據(jù)包序列號,每一個數(shù)據(jù)包序列號對應(yīng)的可提供服務(wù)的若干個的候選鄰居結(jié)點(diǎn)編號;(4)若本地數(shù)據(jù)包列表中存在缺失的數(shù)據(jù)包,該結(jié)點(diǎn)在相對應(yīng)的數(shù)據(jù)包候選鄰居結(jié)點(diǎn)列表中選取一個或多個鄰居結(jié)點(diǎn),并向該鄰居結(jié)點(diǎn)發(fā)出對于該數(shù)據(jù)包的數(shù)據(jù)請求;同時接收上一個數(shù)據(jù)請求所返回的數(shù)據(jù)包;若該結(jié)點(diǎn)收到來自鄰居結(jié)點(diǎn)的數(shù)據(jù)請求,對數(shù)據(jù)請求作出服務(wù)響應(yīng),將相對應(yīng)的數(shù)據(jù)包發(fā)送給數(shù)據(jù)請求方;該過程處于基于雙向傳輸?shù)臄?shù)據(jù)請求的“拉”模式;(5)若該結(jié)點(diǎn)自動發(fā)送該鄰居結(jié)點(diǎn)的本地數(shù)據(jù)包列表中缺失的數(shù)據(jù)包給該鄰居結(jié)點(diǎn),則該結(jié)點(diǎn)到其某個鄰居結(jié)點(diǎn)處于基于單向傳輸?shù)臄?shù)據(jù)廣播“推”模式;若該結(jié)點(diǎn)接收來自該鄰居結(jié)點(diǎn)自動發(fā)送來的其本地數(shù)據(jù)包列表中缺失的數(shù)據(jù)包,則該結(jié)點(diǎn)的某個鄰居結(jié)點(diǎn)到該結(jié)點(diǎn)處于基于單向傳輸?shù)臄?shù)據(jù)廣播“推”模式基于單向傳輸?shù)臄?shù)據(jù)廣播;(6)當(dāng)處于“拉”模式中的某個鄰居結(jié)點(diǎn)響應(yīng)服務(wù)請求的各項指標(biāo)滿足給定的要求時,則其鄰居結(jié)點(diǎn)到該結(jié)點(diǎn)的通信視為流暢,則該鄰居結(jié)點(diǎn)到該結(jié)點(diǎn)的數(shù)據(jù)交換模式由原來的“拉”模式轉(zhuǎn)換為該結(jié)點(diǎn)的某個鄰居結(jié)點(diǎn)到該結(jié)點(diǎn)的“推”模式;(7)若該結(jié)點(diǎn)到其鄰居結(jié)點(diǎn)處于“推”模式,數(shù)據(jù)各指標(biāo)滿足給定要求時,則該結(jié)點(diǎn)到其鄰居結(jié)點(diǎn)之間的通信視為阻塞,則該結(jié)點(diǎn)到其鄰居結(jié)點(diǎn)的數(shù)據(jù)交換模式由所述的“推”轉(zhuǎn)為“拉”;以上步驟(1)-(7)構(gòu)成一個時間周期,循環(huán)執(zhí)行。
2.如權(quán)利要求1所述的基于推拉結(jié)合的純分布式數(shù)據(jù)交換方法,其特征在于,所述的本地數(shù)據(jù)包列表的建立采用一個位向量實現(xiàn),該位向量由一個上界值和長度確定,其長度不大于該結(jié)點(diǎn)的本地緩存可以容納的數(shù)據(jù)包數(shù)量;該位向量采用循環(huán)隊列的邏輯存儲結(jié)構(gòu)來實現(xiàn)。
3.如權(quán)利要求1所述的基于推拉結(jié)合的純分布式數(shù)據(jù)交換方法,其特征在于,所述本地數(shù)據(jù)包列表的更新方法為當(dāng)有新的數(shù)據(jù)包到達(dá)該結(jié)點(diǎn)時,對本地數(shù)據(jù)包列表進(jìn)行更新,該更新的原則是始終保持位向量的上界值等于該結(jié)點(diǎn)當(dāng)前已經(jīng)收到的數(shù)據(jù)包中序列號的最大值。
4.如權(quán)利要求1所述的基于推拉結(jié)合的純分布式數(shù)據(jù)交換方法,所述候選鄰居結(jié)點(diǎn)列表的建立采用一個位向量實現(xiàn),該位向量由一個上界值和長度確定,其長度(不大于該結(jié)點(diǎn)的本地緩存可以容納的數(shù)據(jù)包數(shù)量;該位向量采用循環(huán)隊列的邏輯存儲結(jié)構(gòu)來實現(xiàn)。
5.如權(quán)利要求1所述的基于推拉結(jié)合的純分布式數(shù)據(jù)交換方法,其特征在于,所述候選鄰居結(jié)點(diǎn)列表的更新方法為當(dāng)鄰居結(jié)點(diǎn)有新的本地數(shù)據(jù)包列表到達(dá)該結(jié)點(diǎn)時,對候選鄰居結(jié)點(diǎn)列表進(jìn)行更新,其中更新的原則是始終保持位向量的上界值等于該鄰居結(jié)點(diǎn)當(dāng)前已經(jīng)收到的本地數(shù)據(jù)包列表中數(shù)據(jù)包序列號的最大值,同時更新每一個數(shù)據(jù)包可以提供服務(wù)的候選鄰居結(jié)點(diǎn)編號;
6.如權(quán)利要求1所述的基于推拉結(jié)合的純分布式數(shù)據(jù)交換方法,其特征在于,所述候選鄰居結(jié)點(diǎn)列表中鄰居結(jié)點(diǎn)的選取方法采用隨機(jī)選取、輪盤賭和啟發(fā)式之一種方法。
7.如權(quán)利要求1所述的基于推拉結(jié)合的純分布式數(shù)據(jù)交換方法,其特征在于,所述鄰居結(jié)點(diǎn)到該結(jié)點(diǎn)的通信視為流暢的判定方法為匯總與統(tǒng)計該結(jié)點(diǎn)與其鄰居結(jié)點(diǎn)之間的統(tǒng)計數(shù)據(jù),當(dāng)統(tǒng)計數(shù)據(jù)滿足給定條件時,該結(jié)點(diǎn)與其鄰居結(jié)點(diǎn)之間的通信視為流暢。
8.如權(quán)利要求1所述的基于推拉結(jié)合的純分布式數(shù)據(jù)交換方法,其特征在于,所述該結(jié)點(diǎn)到其鄰居結(jié)點(diǎn)之間的通信視為阻塞的判定方法為匯總與統(tǒng)計該結(jié)點(diǎn)與其鄰居結(jié)點(diǎn)之間的統(tǒng)計數(shù)據(jù),當(dāng)統(tǒng)計數(shù)據(jù)滿足給定條件時,該結(jié)點(diǎn)與其鄰居結(jié)點(diǎn)之間的通信視為阻塞。
全文摘要
本發(fā)明涉及一種基于推拉結(jié)合的純分布式數(shù)據(jù)交換方法,屬于網(wǎng)絡(luò)中的數(shù)據(jù)交換技術(shù)領(lǐng)域,對于單臺中央服務(wù)器與網(wǎng)絡(luò)中各個客戶端結(jié)點(diǎn)通過周期性地循環(huán)進(jìn)行數(shù)據(jù)交換,完成一組數(shù)據(jù)包的發(fā)送、接收、請求服務(wù);包括該結(jié)點(diǎn)建立并更新用于數(shù)據(jù)交換的本地數(shù)據(jù)包列表;將其本地數(shù)據(jù)包列表發(fā)送給已知曉的鄰居結(jié)點(diǎn);并建立、更新每一個數(shù)據(jù)包可以提供服務(wù)的候選鄰居結(jié)點(diǎn)列表;當(dāng)處于“拉”模式中時的通信流暢,則該鄰居結(jié)點(diǎn)到該結(jié)點(diǎn)由原來的“拉”模式轉(zhuǎn)換為“推”模式;若該結(jié)點(diǎn)到其鄰居結(jié)點(diǎn)處于“推”模式的通信阻塞,則該結(jié)點(diǎn)到其鄰居結(jié)點(diǎn)由所述的“推”轉(zhuǎn)為“拉”。本發(fā)明方法擁有良好的可擴(kuò)展性、容錯性和數(shù)據(jù)互動性等特性。
文檔編號H04L12/56GK1665223SQ20051005150
公開日2005年9月7日 申請日期2005年3月4日 優(yōu)先權(quán)日2005年3月4日
發(fā)明者趙黎, 張萌, 毛子青, 羅建光, 吳南山, 楊士強(qiáng) 申請人:清華大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
鄂托克旗| 五台县| 阿瓦提县| 琼海市| 盱眙县| 醴陵市| 凌源市| 新郑市| 平顺县| 金塔县| 汉中市| 英德市| 东兴市| 黄大仙区| 水富县| 宜州市| 白水县| 北碚区| 托里县| 象州县| 江陵县| 大丰市| 宣化县| 杂多县| 旬邑县| 深圳市| 长丰县| 大连市| 类乌齐县| 阜宁县| 延寿县| 正宁县| 建德市| 宜黄县| 南通市| 永顺县| 团风县| 凉城县| 彭水| 土默特左旗| 彩票|