本發(fā)明涉及通信技術(shù)領(lǐng)域,更具體地,涉及一種數(shù)據(jù)轉(zhuǎn)發(fā)方法及裝置。
背景技術(shù):
隨著移動終端設(shè)備在數(shù)量上的迅速增長,無線通信技術(shù)迅速發(fā)展。實時流媒體服務(wù)作為未來互聯(lián)網(wǎng)的關(guān)鍵業(yè)務(wù),在學(xué)術(shù)界和工業(yè)界被廣泛地研究,尤其在車輛自組織網(wǎng)(vanets)中。在車輛自組織網(wǎng)中,車輛之間可以相互通信并分享數(shù)據(jù)。其中,流媒體數(shù)據(jù)的共享是車輛自組織網(wǎng)的關(guān)鍵服務(wù)。然而,ip協(xié)議不能有效支持由于車輛自組織網(wǎng)絡(luò)拓?fù)漕l繁變化,導(dǎo)致在移動性環(huán)境下流媒體的傳輸效率顯著降低。信息中心網(wǎng)絡(luò)以一個全新的范式出現(xiàn),將內(nèi)容作為網(wǎng)絡(luò)基元取代傳統(tǒng)ip地址的地位,以開拓的方式重構(gòu)了未來網(wǎng)絡(luò)。
基于這個設(shè)計思想,信息中心網(wǎng)絡(luò)通過網(wǎng)絡(luò)緩存和名稱路由,來實現(xiàn)內(nèi)容存儲。一般而言,信息中心網(wǎng)絡(luò)中數(shù)據(jù)傳遞的過程主要是先由數(shù)據(jù)消費者發(fā)出對特定名稱數(shù)據(jù)的請求,信息中心網(wǎng)絡(luò)路由請求并定位一組候選數(shù)據(jù)提供者,被請求的數(shù)據(jù)按路由相反的方法回傳給數(shù)據(jù)消費者。不失一般性,數(shù)據(jù)的請求在信息中心網(wǎng)絡(luò)架構(gòu)的術(shù)語中被稱為興趣包。由于流媒體是一種延時靈敏的應(yīng)用場景,興趣包需盡可能快的路由到潛在的數(shù)據(jù)提供者,來確保用戶需求的時效性。在以信息中心網(wǎng)為基礎(chǔ)車輛自組織網(wǎng)絡(luò)中,用戶同時扮演數(shù)據(jù)請求者和數(shù)據(jù)提供者的雙重角色,數(shù)據(jù)副本分散在網(wǎng)絡(luò)的各個角落。因此,如何轉(zhuǎn)發(fā)興趣包來定位用戶請求的數(shù)據(jù)成為信息中心網(wǎng)絡(luò)中的一個重要研究問題。
目前的數(shù)據(jù)轉(zhuǎn)發(fā)方法主要是由數(shù)據(jù)請求用戶對應(yīng)節(jié)點通過網(wǎng)絡(luò)接口廣播興趣包,即將興趣包轉(zhuǎn)發(fā)至所有單跳鄰居節(jié)點。接收到該興趣包的節(jié)點會重復(fù)這一過程直到興趣包抵達(dá)數(shù)據(jù)提供者,從而這些數(shù)據(jù)提供者會將數(shù)據(jù)包返回至數(shù)據(jù)請求用戶。
在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:由于會持續(xù)向鄰居節(jié)點廣播興趣包,直到找到興趣包對應(yīng)的數(shù)據(jù)提供者,從而會造成數(shù)據(jù)泛洪,導(dǎo)致網(wǎng)絡(luò)癱瘓。
技術(shù)實現(xiàn)要素:
現(xiàn)有技術(shù)中是由數(shù)據(jù)請求用戶對應(yīng)節(jié)點通過網(wǎng)絡(luò)接口廣播興趣包,即將興趣包轉(zhuǎn)發(fā)至所有單跳鄰居節(jié)點。接收到該興趣包的節(jié)點會重復(fù)這一過程直到興趣包抵達(dá)數(shù)據(jù)提供者,從而這些數(shù)據(jù)提供者會將數(shù)據(jù)包返回至數(shù)據(jù)請求用戶。由于會持續(xù)向鄰居節(jié)點廣播興趣包,直到找到興趣包對應(yīng)的數(shù)據(jù)提供者,從而會造成數(shù)據(jù)泛洪,導(dǎo)致網(wǎng)絡(luò)癱瘓。為了解決上述問題,本發(fā)明提供一種克服上述問題或者至少部分地解決上述問題的數(shù)據(jù)轉(zhuǎn)發(fā)方法及裝置。
根據(jù)本發(fā)明的第一方面,提供了一種數(shù)據(jù)轉(zhuǎn)發(fā)方法,該方法包括:
步驟1,對于車輛自組織網(wǎng)絡(luò)中獲取到興趣包的任一節(jié)點,將任一節(jié)點作為轉(zhuǎn)發(fā)節(jié)點,當(dāng)轉(zhuǎn)發(fā)節(jié)點的本地緩存中未存儲興趣包所請求的數(shù)據(jù),并查詢轉(zhuǎn)發(fā)節(jié)點的內(nèi)容偏好表中是否存儲有數(shù)據(jù)的數(shù)據(jù)名稱;
步驟2,當(dāng)內(nèi)容偏好表存儲有數(shù)據(jù)名稱時,從轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合中,選取內(nèi)容偏好表中數(shù)據(jù)名稱對應(yīng)的鄰居協(xié)助節(jié)點,并作為轉(zhuǎn)發(fā)節(jié)點的下一跳節(jié)點,由轉(zhuǎn)發(fā)節(jié)點將興趣包轉(zhuǎn)發(fā)至下一跳節(jié)點。
本發(fā)明提供的方法,對于車輛自組織網(wǎng)絡(luò)中獲取到興趣包的任一節(jié)點,通過將任一節(jié)點作為轉(zhuǎn)發(fā)節(jié)點,當(dāng)轉(zhuǎn)發(fā)節(jié)點的本地緩存中未存儲興趣包所請求的數(shù)據(jù),并查詢轉(zhuǎn)發(fā)節(jié)點的內(nèi)容偏好表中是否存儲有數(shù)據(jù)的數(shù)據(jù)名稱。當(dāng)內(nèi)容偏好表存儲有數(shù)據(jù)名稱時,從轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合中,選取內(nèi)容偏好表中數(shù)據(jù)名稱對應(yīng)的鄰居協(xié)助節(jié)點,并作為轉(zhuǎn)發(fā)節(jié)點的下一跳節(jié)點,由轉(zhuǎn)發(fā)節(jié)點將興趣包轉(zhuǎn)發(fā)至下一跳節(jié)點。由于可從基于構(gòu)建的內(nèi)容偏好表,從內(nèi)容偏好表中選取轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點,以實現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā),而不用通過廣播興趣包的方式來轉(zhuǎn)發(fā)數(shù)據(jù)。因此,不會造成數(shù)據(jù)泛洪而導(dǎo)致網(wǎng)絡(luò)癱瘓。
結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,步驟1中查詢轉(zhuǎn)發(fā)節(jié)點的內(nèi)容偏好表中是否存儲有數(shù)據(jù)的數(shù)據(jù)名稱之后,還包括:
當(dāng)內(nèi)容偏好表未存儲數(shù)據(jù)名稱時,查詢轉(zhuǎn)發(fā)節(jié)點的轉(zhuǎn)發(fā)信息表中是否存儲有數(shù)據(jù)名稱和相應(yīng)的下一跳節(jié)點;
當(dāng)轉(zhuǎn)發(fā)信息表中未存儲數(shù)據(jù)名稱或相應(yīng)的下一跳節(jié)點時,從鄰居協(xié)助節(jié)點集合中選取具有最高跳轉(zhuǎn)能力的鄰居協(xié)助節(jié)點,由轉(zhuǎn)發(fā)節(jié)點將興趣包轉(zhuǎn)發(fā)至具有最高跳轉(zhuǎn)能力的鄰居協(xié)助節(jié)點。
結(jié)合第一方面的第一種或第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,步驟2之前還包括:
基于轉(zhuǎn)發(fā)節(jié)點的速度矢量信息及歷史播放行為信息,確定轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合。
結(jié)合第一方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,基于轉(zhuǎn)發(fā)節(jié)點的速度矢量信息及歷史播放行為信息,確定轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合,包括:
基于轉(zhuǎn)發(fā)節(jié)點的速度矢量信息,確定轉(zhuǎn)發(fā)節(jié)點的協(xié)作節(jié)點集合;
基于轉(zhuǎn)發(fā)節(jié)點的歷史播放行為信息,對協(xié)作節(jié)點集合進(jìn)行篩選,得到轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合。
結(jié)合第一方面的第四種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,基于轉(zhuǎn)發(fā)節(jié)點的速度矢量信息,確定轉(zhuǎn)發(fā)節(jié)點的協(xié)作節(jié)點集合,包括:
基于轉(zhuǎn)發(fā)節(jié)點的速度矢量信息,計算轉(zhuǎn)發(fā)節(jié)點與每一相鄰節(jié)點之間的余弦相似性值;
選取余弦相似性值大于預(yù)設(shè)閾值的相鄰節(jié)點作為轉(zhuǎn)發(fā)節(jié)點的協(xié)作節(jié)點,得到轉(zhuǎn)發(fā)節(jié)點的協(xié)作節(jié)點集合。
結(jié)合第一方面的第四種可能的實現(xiàn)方式,在第六種可能的實現(xiàn)方式中,基于轉(zhuǎn)發(fā)節(jié)點的歷史播放行為信息,對協(xié)作節(jié)點集合進(jìn)行篩選,得到轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合,包括:
基于轉(zhuǎn)發(fā)節(jié)點的歷史播放行為信息,構(gòu)建轉(zhuǎn)發(fā)節(jié)點的偏好程度向量;
根據(jù)轉(zhuǎn)發(fā)節(jié)點的偏好程度向量及每一協(xié)作節(jié)點的偏好程度向量,對協(xié)作節(jié)點集合進(jìn)行篩選,得到轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合。
結(jié)合第一方面的第六種可能的實現(xiàn)方式,在第七種可能的實現(xiàn)方式中,基于轉(zhuǎn)發(fā)節(jié)點的歷史播放行為信息,構(gòu)建轉(zhuǎn)發(fā)節(jié)點的偏好程度向量,包括:
基于轉(zhuǎn)發(fā)節(jié)點的歷史播放行為信息,確定轉(zhuǎn)發(fā)節(jié)點對每一視頻類型的偏好程度值;
根據(jù)轉(zhuǎn)發(fā)節(jié)點對每一視頻類型的偏好程度值,得到轉(zhuǎn)發(fā)節(jié)點的偏好程度向量。
結(jié)合第一方面的第六種可能的實現(xiàn)方式,在第八種可能的實現(xiàn)方式中,根據(jù)轉(zhuǎn)發(fā)節(jié)點的偏好程度向量及每一協(xié)作節(jié)點的偏好程度向量,對協(xié)作節(jié)點集合進(jìn)行篩選,得到轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合,包括:
根據(jù)轉(zhuǎn)發(fā)節(jié)點的偏好程度向量及每一協(xié)作節(jié)點的偏好程度向量,計算轉(zhuǎn)發(fā)節(jié)點與每一協(xié)作節(jié)點之間的偏好程度相似值;
按照從大到小的順序?qū)γ恳粎f(xié)作節(jié)點對應(yīng)的偏好程度相似值進(jìn)行排列,選取前預(yù)設(shè)數(shù)量個協(xié)作節(jié)點作為轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合。
結(jié)合第一方面的第一種可能的實現(xiàn)方式,在第九種可能的實現(xiàn)方式中,步驟1之前還包括:
對于車輛自組織網(wǎng)絡(luò)中每一節(jié)點,基于興趣交互包在每一節(jié)點之間的傳遞過程,構(gòu)建每一節(jié)點的內(nèi)容偏好表。
根據(jù)本發(fā)明的第一方面,提供了一種數(shù)據(jù)轉(zhuǎn)發(fā)裝置,該裝置包括:
第一查詢模塊,用于對于車輛自組織網(wǎng)絡(luò)中獲取到興趣包的任一節(jié)點,將任一節(jié)點作為轉(zhuǎn)發(fā)節(jié)點,當(dāng)轉(zhuǎn)發(fā)節(jié)點的本地緩存中未存儲興趣包所請求的數(shù)據(jù),并查詢轉(zhuǎn)發(fā)節(jié)點的內(nèi)容偏好表中是否存儲有數(shù)據(jù)的數(shù)據(jù)名稱;
第一轉(zhuǎn)發(fā)模塊,用于當(dāng)內(nèi)容偏好表存儲有數(shù)據(jù)名稱時,從轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合中,選取內(nèi)容偏好表中數(shù)據(jù)名稱對應(yīng)的鄰居協(xié)助節(jié)點,并作為轉(zhuǎn)發(fā)節(jié)點的下一跳節(jié)點,由轉(zhuǎn)發(fā)節(jié)點將興趣包轉(zhuǎn)發(fā)至下一跳節(jié)點。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述是示例性和解釋性的,并不能限制本發(fā)明。
附圖說明
圖1為本發(fā)明實施例的一種數(shù)據(jù)轉(zhuǎn)發(fā)方法的流程示意圖;
圖2為本發(fā)明實施例的一種數(shù)據(jù)轉(zhuǎn)發(fā)方法的流程示意圖;
圖3為本發(fā)明實施例的一種興趣包的快速轉(zhuǎn)發(fā)示意圖;
圖4為本發(fā)明實施例的一種數(shù)據(jù)轉(zhuǎn)發(fā)裝置的結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖和實施例,對本發(fā)明的具體實施方式作進(jìn)一步詳細(xì)描述。以下實施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
隨著移動終端設(shè)備在數(shù)量上爆炸式的增長,無線通信技術(shù)迅速發(fā)展。實時流媒體服務(wù)作為未來互聯(lián)網(wǎng)的關(guān)鍵業(yè)務(wù),在學(xué)術(shù)界和工業(yè)界被廣泛的研究。尤其在車輛自組網(wǎng)(vanets)中,車輛之間可以相互通信并分享數(shù)據(jù)。其中,流媒體數(shù)據(jù)的共享是該領(lǐng)域的關(guān)鍵服務(wù)。不幸的是,ip協(xié)議不能有效支持由于車輛自組織網(wǎng)絡(luò)拓?fù)涞念l繁變化,導(dǎo)致在移動性環(huán)境下流媒體的傳輸效率顯著降低。信息中心網(wǎng)絡(luò)以一個全新的范式出現(xiàn),將內(nèi)容作為網(wǎng)絡(luò)基元取代傳統(tǒng)ip地址的地位,以開拓的方式重構(gòu)了未來網(wǎng)絡(luò)?;谶@個設(shè)計思想,信息中心網(wǎng)絡(luò)通過網(wǎng)絡(luò)緩存和名稱路由,來完成無處不在的內(nèi)容存儲和與生俱來的移動支持性,從而在車輛自組織網(wǎng)絡(luò)領(lǐng)域迅速發(fā)展。
一般而言,信息中心網(wǎng)絡(luò)中數(shù)據(jù)傳遞的過程主要是先由數(shù)據(jù)消費者發(fā)出對特定名稱數(shù)據(jù)的請求,信息中心網(wǎng)絡(luò)路由請求并定位一組候選數(shù)據(jù)提供者,被請求的數(shù)據(jù)按路由相反的方法回傳給數(shù)據(jù)消費者。不失一般性,數(shù)據(jù)的請求在信息中心網(wǎng)絡(luò)架構(gòu)的術(shù)語中被稱為興趣包。由于流媒體是一種延時靈敏的應(yīng)用場景,興趣包需盡可能快的路由到潛在的數(shù)據(jù)提供者,來確保用戶需求的時效性。在以信息中心網(wǎng)為基礎(chǔ)車輛自組織網(wǎng)絡(luò)中,用戶同時扮演數(shù)據(jù)請求者和數(shù)據(jù)提供者的雙重角色,數(shù)據(jù)副本分散在網(wǎng)絡(luò)的各個角落。因此,如何轉(zhuǎn)發(fā)興趣包來定位用戶請求的數(shù)據(jù)成為信息中心網(wǎng)絡(luò)中的一個重要研究問題。
目前的數(shù)據(jù)轉(zhuǎn)發(fā)方法主要是由數(shù)據(jù)請求用戶對應(yīng)節(jié)點通過網(wǎng)絡(luò)接口廣播興趣包,即將興趣包轉(zhuǎn)發(fā)至所有單跳鄰居節(jié)點。接收到該興趣包的節(jié)點會重復(fù)這一過程直到興趣包抵達(dá)數(shù)據(jù)提供者,從而這些數(shù)據(jù)提供者會將數(shù)據(jù)包返回至數(shù)據(jù)請求用戶。
在實現(xiàn)本發(fā)明的過程中,發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:由于會持續(xù)向鄰居節(jié)點廣播興趣包,直到找到興趣包對應(yīng)的數(shù)據(jù)提供者,從而會造成數(shù)據(jù)泛洪,導(dǎo)致網(wǎng)絡(luò)癱瘓。
針對現(xiàn)有技術(shù)中的問題,本發(fā)明實施例提供了一種數(shù)據(jù)轉(zhuǎn)發(fā)方法。參見圖1,該方法包括:101,對于車輛自組織網(wǎng)絡(luò)中獲取到興趣包的任一節(jié)點,將任一節(jié)點作為轉(zhuǎn)發(fā)節(jié)點,當(dāng)轉(zhuǎn)發(fā)節(jié)點的本地緩存中未存儲興趣包所請求的數(shù)據(jù),并查詢轉(zhuǎn)發(fā)節(jié)點的內(nèi)容偏好表中是否存儲有數(shù)據(jù)的數(shù)據(jù)名稱;102,當(dāng)內(nèi)容偏好表存儲有數(shù)據(jù)名稱時,從轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合中,選取內(nèi)容偏好表中數(shù)據(jù)名稱對應(yīng)的鄰居協(xié)助節(jié)點,并作為轉(zhuǎn)發(fā)節(jié)點的下一跳節(jié)點,由轉(zhuǎn)發(fā)節(jié)點將興趣包轉(zhuǎn)發(fā)至下一跳節(jié)點。
本發(fā)明實施例提供的方法,對于車輛自組織網(wǎng)絡(luò)中獲取到興趣包的任一節(jié)點,通過將任一節(jié)點作為轉(zhuǎn)發(fā)節(jié)點,當(dāng)轉(zhuǎn)發(fā)節(jié)點的本地緩存中未存儲興趣包所請求的數(shù)據(jù),并查詢轉(zhuǎn)發(fā)節(jié)點的內(nèi)容偏好表中是否存儲有數(shù)據(jù)的數(shù)據(jù)名稱。當(dāng)內(nèi)容偏好表存儲有數(shù)據(jù)名稱時,從轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合中,選取內(nèi)容偏好表中數(shù)據(jù)名稱對應(yīng)的鄰居協(xié)助節(jié)點,并作為轉(zhuǎn)發(fā)節(jié)點的下一跳節(jié)點,由轉(zhuǎn)發(fā)節(jié)點將興趣包轉(zhuǎn)發(fā)至下一跳節(jié)點。由于可從基于構(gòu)建的內(nèi)容偏好表,從內(nèi)容偏好表中選取轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點,以實現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā),而不用通過廣播興趣包的方式來轉(zhuǎn)發(fā)數(shù)據(jù)。因此,不會造成數(shù)據(jù)泛洪而導(dǎo)致網(wǎng)絡(luò)癱瘓。
作為一種可選實施例,步驟101中查詢轉(zhuǎn)發(fā)節(jié)點的內(nèi)容偏好表中是否存儲有數(shù)據(jù)的數(shù)據(jù)名稱之后,還包括:
當(dāng)內(nèi)容偏好表未存儲數(shù)據(jù)名稱時,查詢轉(zhuǎn)發(fā)節(jié)點的轉(zhuǎn)發(fā)信息表中是否存儲有數(shù)據(jù)名稱和相應(yīng)的下一跳節(jié)點;
當(dāng)轉(zhuǎn)發(fā)信息表中未存儲數(shù)據(jù)名稱或相應(yīng)的下一跳節(jié)點時,從鄰居協(xié)助節(jié)點集合中選取具有最高跳轉(zhuǎn)能力的鄰居協(xié)助節(jié)點,由轉(zhuǎn)發(fā)節(jié)點將興趣包轉(zhuǎn)發(fā)至具有最高跳轉(zhuǎn)能力的鄰居協(xié)助節(jié)點。
作為一種可選實施例,步驟102之前還包括:
基于轉(zhuǎn)發(fā)節(jié)點的速度矢量信息及歷史播放行為信息,確定轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合。
作為一種可選實施例,基于轉(zhuǎn)發(fā)節(jié)點的速度矢量信息及歷史播放行為信息,確定轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合,包括:
基于轉(zhuǎn)發(fā)節(jié)點的速度矢量信息,確定轉(zhuǎn)發(fā)節(jié)點的協(xié)作節(jié)點集合;
基于轉(zhuǎn)發(fā)節(jié)點的歷史播放行為信息,對協(xié)作節(jié)點集合進(jìn)行篩選,得到轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合。
作為一種可選實施例,基于轉(zhuǎn)發(fā)節(jié)點的速度矢量信息,確定轉(zhuǎn)發(fā)節(jié)點的協(xié)作節(jié)點集合,包括:
基于轉(zhuǎn)發(fā)節(jié)點的速度矢量信息,計算轉(zhuǎn)發(fā)節(jié)點與每一相鄰節(jié)點之間的余弦相似性值;
選取余弦相似性值大于預(yù)設(shè)閾值的相鄰節(jié)點作為轉(zhuǎn)發(fā)節(jié)點的協(xié)作節(jié)點,得到轉(zhuǎn)發(fā)節(jié)點的協(xié)作節(jié)點集合。
作為一種可選實施例,基于轉(zhuǎn)發(fā)節(jié)點的歷史播放行為信息,對協(xié)作節(jié)點集合進(jìn)行篩選,得到轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合,包括:
基于轉(zhuǎn)發(fā)節(jié)點的歷史播放行為信息,構(gòu)建轉(zhuǎn)發(fā)節(jié)點的偏好程度向量;
根據(jù)轉(zhuǎn)發(fā)節(jié)點的偏好程度向量及每一協(xié)作節(jié)點的偏好程度向量,對協(xié)作節(jié)點集合進(jìn)行篩選,得到轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合。
作為一種可選實施例,基于轉(zhuǎn)發(fā)節(jié)點的歷史播放行為信息,構(gòu)建轉(zhuǎn)發(fā)節(jié)點的偏好程度向量,包括:
基于轉(zhuǎn)發(fā)節(jié)點的歷史播放行為信息,確定轉(zhuǎn)發(fā)節(jié)點對每一視頻類型的偏好程度值;
根據(jù)轉(zhuǎn)發(fā)節(jié)點對每一視頻類型的偏好程度值,得到轉(zhuǎn)發(fā)節(jié)點的偏好程度向量。
作為一種可選實施例,根據(jù)轉(zhuǎn)發(fā)節(jié)點的偏好程度向量及每一協(xié)作節(jié)點的偏好程度向量,對協(xié)作節(jié)點集合進(jìn)行篩選,得到轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合,包括:
根據(jù)轉(zhuǎn)發(fā)節(jié)點的偏好程度向量及每一協(xié)作節(jié)點的偏好程度向量,計算轉(zhuǎn)發(fā)節(jié)點與每一協(xié)作節(jié)點之間的偏好程度相似值;
按照從大到小的順序?qū)γ恳粎f(xié)作節(jié)點對應(yīng)的偏好程度相似值進(jìn)行排列,選取前預(yù)設(shè)數(shù)量個協(xié)作節(jié)點作為轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合。
作為一種可選實施例,步驟101之前還包括:
對于車輛自組織網(wǎng)絡(luò)中每一節(jié)點,基于興趣交互包在每一節(jié)點之間的傳遞過程,構(gòu)建每一節(jié)點的內(nèi)容偏好表。
上述所有可選技術(shù)方案,可以采用任意結(jié)合形成本發(fā)明的可選實施例,在此不再一一贅述。
基于上述圖1對應(yīng)實施例的內(nèi)容,本發(fā)明實施例提供了一種數(shù)據(jù)轉(zhuǎn)發(fā)方法。參見圖2,該方法包括:201、對于車輛自組織網(wǎng)絡(luò)中每一節(jié)點,基于興趣交互包在每一節(jié)點之間的傳遞過程,構(gòu)建每一節(jié)點的內(nèi)容偏好表;202、對于車輛自組織網(wǎng)絡(luò)中獲取到興趣包的任一節(jié)點,將任一節(jié)點作為轉(zhuǎn)發(fā)節(jié)點,當(dāng)轉(zhuǎn)發(fā)節(jié)點的本地緩存中未存儲興趣包所請求的數(shù)據(jù),并查詢轉(zhuǎn)發(fā)節(jié)點的內(nèi)容偏好表中是否存儲有數(shù)據(jù)的數(shù)據(jù)名稱;203、當(dāng)內(nèi)容偏好表存儲有數(shù)據(jù)名稱時,從轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合中,選取內(nèi)容偏好表中數(shù)據(jù)名稱對應(yīng)的鄰居協(xié)助節(jié)點,并作為轉(zhuǎn)發(fā)節(jié)點的下一跳節(jié)點,由轉(zhuǎn)發(fā)節(jié)點將興趣包轉(zhuǎn)發(fā)至下一跳節(jié)點。
其中,步驟201、對于車輛自組織網(wǎng)絡(luò)中每一節(jié)點,基于興趣交互包在每一節(jié)點之間的傳遞過程,構(gòu)建每一節(jié)點的內(nèi)容偏好表。
由于后續(xù)需要根據(jù)內(nèi)容偏好表轉(zhuǎn)發(fā)興趣包,從而在本步驟中可先構(gòu)建每一節(jié)點的內(nèi)容偏好表。其中,對于任一節(jié)點,其內(nèi)容偏好表中的每一條目主要用來存儲攜帶興趣包所請求數(shù)據(jù)的節(jié)點(節(jié)點id)、從該節(jié)點到興趣包所請求數(shù)據(jù)的節(jié)點之間的距離(跳數(shù)),從該節(jié)點所跳至下一跳節(jié)點以及該條目的更新時間(時間戳)。其中,內(nèi)容偏好表的內(nèi)容可參考表1。
表1
考慮到vanets的自組織性,從而可通過完全分布式的方法構(gòu)建內(nèi)容偏好表?;谏鲜鲈恚上葮?gòu)建一種特殊的興趣交互包。該興趣交互包主要由內(nèi)容偏好表的主體內(nèi)容和內(nèi)容名稱組成,具體形式如下所示:“/hpct/username/timestamp/”。
其中,“/hpct”是所有興趣交互包的公共前綴,“/username”指的是內(nèi)容偏好表的歸屬節(jié)點,“/timestamp”代表興趣交互包的生成時間。相應(yīng)地,本發(fā)明實施例不對基于興趣交互包在每一節(jié)點之間的傳遞過程,構(gòu)建每一節(jié)點的內(nèi)容偏好表的方式作具體限定,包括但不限于:對于車輛自組織網(wǎng)絡(luò)中任一節(jié)點,當(dāng)任一節(jié)點接收到上一跳節(jié)點轉(zhuǎn)發(fā)的興趣交互包時,檢測任一節(jié)點的內(nèi)容偏好表中是否包含興趣交互包中的數(shù)據(jù)名稱或節(jié)點;基于興趣交互包在任一節(jié)點的內(nèi)容偏好表中增加相應(yīng)的數(shù)據(jù),以對任一節(jié)點的內(nèi)容偏好表進(jìn)行更新。
具體地,興趣交互包可周期性地在鄰居協(xié)助節(jié)點間相互交換,并且每個節(jié)點可根據(jù)收到的興趣交互包更新自身本地的內(nèi)容偏好表。例如,若節(jié)點x接收到一個來自節(jié)點y的興趣交互包,且節(jié)點y的興趣交互包中包含節(jié)點x的內(nèi)容偏好表所不含的數(shù)據(jù)名稱或數(shù)據(jù)提供者的名稱(節(jié)點id),則在節(jié)點x的內(nèi)容偏好表中可基于數(shù)據(jù)名稱和數(shù)據(jù)提供者的名稱,在內(nèi)容偏好表中添加相應(yīng)的新條目。其中,新條目的下一跳將會被設(shè)置為節(jié)點y,跳數(shù)等于節(jié)點y到數(shù)據(jù)攜帶者的跳數(shù)加一,時間戳將被設(shè)置為接收到興趣交互包的時刻。
反之,若興趣交互包中不包含任何節(jié)點x的內(nèi)容偏好表所不含的數(shù)據(jù)名稱或者數(shù)據(jù)攜帶者名稱,則x僅僅根據(jù)節(jié)點y的興趣交互包更新本存儲的內(nèi)容偏好表中對應(yīng)條目的值。相應(yīng)地,更新的內(nèi)容偏好表將會在下一個周期發(fā)送給節(jié)點x的所有鄰居協(xié)助節(jié)點。經(jīng)過幾輪更新,所有協(xié)助節(jié)點的緩存狀態(tài)將被記錄在節(jié)點x在本地存儲的內(nèi)容偏好表中。通過上述過程,可構(gòu)建每一節(jié)點的內(nèi)容偏好表。需要說明的是,上述過程可在沒有任何集中控制或者遠(yuǎn)端信息交換的條件下為節(jié)點獲得遠(yuǎn)端協(xié)助節(jié)點的緩存情況。
另外,考慮到興趣包轉(zhuǎn)發(fā)的成功率依賴于內(nèi)容偏好表內(nèi)容的準(zhǔn)確性。現(xiàn)考慮兩種導(dǎo)致內(nèi)容偏好表中條目失效的情形:
1、鄰居協(xié)助節(jié)點中緩存發(fā)生替換;
2、下一跳的鄰居協(xié)助節(jié)點移動出單跳范圍。
對于上述第一種情形,不同于其它移動設(shè)備,由于車輛擁有較強的緩存能力,從而視頻內(nèi)容可以被永久保存。因此,上述過程中提出的周期性交換興趣交互包可解決緩存替換導(dǎo)致的失效。
對于上述第二種情形,節(jié)點可首先刪除下一跳中已離開的節(jié)點條目,并且立刻發(fā)送更新信息到所有鄰居協(xié)助節(jié)點。接收節(jié)點更新內(nèi)容偏好表,且與其它的鄰居協(xié)助節(jié)點在下一個周期交換更新后的內(nèi)容偏好表。除此之外,當(dāng)路由失敗發(fā)生時,路由路徑的終端節(jié)點將返回ack告知路由失敗。在路徑上的節(jié)點在接收到ack之后,可刪除在內(nèi)容偏好表中導(dǎo)致路由失敗的條目。
在上述過程中,還可先基于轉(zhuǎn)發(fā)節(jié)點的速度矢量信息及歷史播放行為信息,確定轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合。本發(fā)明實施例不對基于轉(zhuǎn)發(fā)節(jié)點的速度矢量信息及歷史播放行為信息,確定轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合的方式作具體限定,包括但不限于:基于轉(zhuǎn)發(fā)節(jié)點的速度矢量信息,確定轉(zhuǎn)發(fā)節(jié)點的協(xié)作節(jié)點集合;基于轉(zhuǎn)發(fā)節(jié)點的歷史播放行為信息,對協(xié)作節(jié)點集合進(jìn)行篩選,得到轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合。
由于節(jié)點在運動時存在移動相似性,如馬路上的汽車作為節(jié)點時在馬路上移動存在移動相似性,從而可基于節(jié)點的速度矢量信息,確定轉(zhuǎn)發(fā)節(jié)點的協(xié)作節(jié)點集合。本發(fā)明實施例不對基于轉(zhuǎn)發(fā)節(jié)點的速度矢量信息,確定轉(zhuǎn)發(fā)節(jié)點的協(xié)作節(jié)點集合的方式作具體限定,包括但不限于:基于轉(zhuǎn)發(fā)節(jié)點的速度矢量信息,計算轉(zhuǎn)發(fā)節(jié)點與每一相鄰節(jié)點之間的余弦相似性值;選取余弦相似性值大于預(yù)設(shè)閾值的相鄰節(jié)點作為轉(zhuǎn)發(fā)節(jié)點的協(xié)作節(jié)點,得到轉(zhuǎn)發(fā)節(jié)點的協(xié)作節(jié)點集合。
其中,以轉(zhuǎn)發(fā)節(jié)點x為例,其速度矢量信息可以為一個二維矢量sx=(x1,x2)。在計算余弦相似性值時,可參考如下公式(1):
在上述公式(1)中,r(sx,sy)是sx和sy的余弦相似性。r(sx,sy)的值越大,表明節(jié)點x和節(jié)點y的移動行為比較一致。擁有更高r(sx,sy)的相鄰節(jié)點y將會相應(yīng)的在x單跳范圍內(nèi)停留更久時間?;诠?1),可選擇出r(sx,sy)>θ1的鄰居節(jié)點作為候選的協(xié)作節(jié)點。其中,θ1為可調(diào)節(jié)的預(yù)設(shè)閾值。
通過上述過程在得到協(xié)作節(jié)點集合后,可對協(xié)作節(jié)點集合進(jìn)行篩選,得到轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合。本發(fā)明實施例不對得到轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合的方式作具體限定,包括但不限于:基于轉(zhuǎn)發(fā)節(jié)點的歷史播放行為信息,構(gòu)建轉(zhuǎn)發(fā)節(jié)點的偏好程度向量;根據(jù)轉(zhuǎn)發(fā)節(jié)點的偏好程度向量及每一協(xié)作節(jié)點的偏好程度向量,對協(xié)作節(jié)點集合進(jìn)行篩選,得到轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合。
其中,節(jié)點的歷史播放行為信息指的是轉(zhuǎn)發(fā)節(jié)點x對應(yīng)用戶相應(yīng)的視頻播放記錄,如播放過視頻的播放時長等。由于用戶的歷史播放行為可表明用戶對不同視頻類型的偏好程度,不同用戶可能喜歡同一個或者多個視頻類型,從而可基于轉(zhuǎn)發(fā)節(jié)點的歷史播放行為信息,構(gòu)建轉(zhuǎn)發(fā)節(jié)點的偏好程度向量。本發(fā)明實施例不對構(gòu)建轉(zhuǎn)發(fā)節(jié)點的偏好程度向量的方式作具體限定,包括但不限于:基于轉(zhuǎn)發(fā)節(jié)點的歷史播放行為信息,確定轉(zhuǎn)發(fā)節(jié)點對每一視頻類型的偏好程度值;根據(jù)轉(zhuǎn)發(fā)節(jié)點對每一視頻類型的偏好程度值,得到轉(zhuǎn)發(fā)節(jié)點的偏好程度向量。
具體地,結(jié)合用戶對視頻的偏好相似性,基于gossip-like方法,可進(jìn)一步地篩選協(xié)作節(jié)點。為預(yù)測視頻偏好相似性,本發(fā)明實施例為每個節(jié)點配置如下所示的記錄用戶歷史播放行為數(shù)據(jù)結(jié)構(gòu):
<視頻名稱,類型,播放時間>。
其中,視頻名稱是被觀看視頻的分層目錄名稱,類型代表視頻的分類,播放時間為用戶在相應(yīng)視頻上花費的時間。本發(fā)明實施例定義一個非負(fù)的參數(shù)
在上述公式(2)中,vx代表用戶x所觀看的所有視頻集合。px(vj)和ptotal(vj)分別代表在歷史播放行為中,對應(yīng)視頻播放的時間和完整視頻vj的時間。ii(vj)是一個指示器方程,可參考如下公式(3):
在公式(3)中,ti表示i類型的視頻集合。
在上述公式(4)中,px為轉(zhuǎn)發(fā)節(jié)點x的偏好程度向量。
通過上述過程,可得到轉(zhuǎn)發(fā)節(jié)點的偏好程度向量?;谕瑯拥脑?,可得到轉(zhuǎn)發(fā)節(jié)點的協(xié)作節(jié)點集合中每一協(xié)作節(jié)點的偏好程度向量。在得到節(jié)點的偏好程度向量后,可對協(xié)作節(jié)點集合進(jìn)行篩選,得到轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合。本發(fā)明實施例不對得到轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合的方式作具體限定,包括但不限于:根據(jù)轉(zhuǎn)發(fā)節(jié)點的偏好程度向量及每一協(xié)作節(jié)點的偏好程度向量,計算轉(zhuǎn)發(fā)節(jié)點與每一協(xié)作節(jié)點之間的偏好程度相似值;按照從大到小的順序?qū)γ恳粎f(xié)作節(jié)點對應(yīng)的偏好程度相似值進(jìn)行排列,選取前預(yù)設(shè)數(shù)量個協(xié)作節(jié)點作為轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合。
具體地,可計算轉(zhuǎn)發(fā)節(jié)點與協(xié)作節(jié)點之間偏好程度向量的歐式距離,即將px作為歐幾里得空間內(nèi)的一個點,并通過如下公式(6)計算轉(zhuǎn)發(fā)節(jié)點x和協(xié)作節(jié)點y之間的偏好程度相似性:
在計算得到轉(zhuǎn)發(fā)節(jié)點與每一協(xié)作節(jié)點之間的偏好程度相似性之后,可按照相似性值的大小對協(xié)作節(jié)點進(jìn)行排序,從而選取前預(yù)設(shè)數(shù)量個協(xié)作節(jié)點作為轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合。
其中,上述得到轉(zhuǎn)接節(jié)點的鄰居協(xié)助節(jié)點集合的過程可參考如下偽代碼(單跳鄰居協(xié)助節(jié)點發(fā)現(xiàn)算法):
1:輸入:轉(zhuǎn)接節(jié)點x的單跳鄰居節(jié)點集合nx;
2:輸出:節(jié)點x的輸出候選協(xié)助節(jié)點集合cx和協(xié)助節(jié)點集合ax;
3:fory∈nx
4:根據(jù)公式(1)計算r(sx,sy);
5:ifr(sx,sy)≥θ1
6:將y添加到cx集合中;
7:endif
8:endfor
9:fory∈cx
10:根據(jù)公式(6)給出的d2(px,py)計算公式得到偏好相似度;
11:endfor
12:根據(jù)偏好程度相似性對集合cx中的點進(jìn)行分類;
13:for(j=1,j≤h,j++)
14:ax[j]=cx[j];
15:endfor
16:returnax[j]和cx[j];
基于上述過程基于已發(fā)掘的單跳協(xié)助節(jié)點,結(jié)合gossip-like思想,讓每個節(jié)點利用協(xié)作節(jié)點表記錄協(xié)作節(jié)點信息,并通過在mac層的信標(biāo)信息周期性的交換協(xié)作節(jié)點表。最后,每個節(jié)點通過接收到的協(xié)作節(jié)點表更新自身的協(xié)作節(jié)點表。經(jīng)過幾次迭代之后,節(jié)點x的協(xié)作節(jié)點表中將會包含網(wǎng)絡(luò)中所有具有相似移動性和視頻偏好性的協(xié)作節(jié)點。
其中,步驟202,對于車輛自組織網(wǎng)絡(luò)中獲取到興趣包的任一節(jié)點,將任一節(jié)點作為轉(zhuǎn)發(fā)節(jié)點,當(dāng)轉(zhuǎn)發(fā)節(jié)點的本地緩存中未存儲興趣包所請求的數(shù)據(jù),并查詢轉(zhuǎn)發(fā)節(jié)點的內(nèi)容偏好表中是否存儲有數(shù)據(jù)的數(shù)據(jù)名稱。
在本步驟中,轉(zhuǎn)發(fā)節(jié)點可先檢查本地緩存是否存儲有興趣包所請求的數(shù)據(jù)。如果本地緩存中存儲有興趣包所請求的數(shù)據(jù),則將請求數(shù)據(jù)的視頻通過興趣包的進(jìn)入端口直接發(fā)送回上游節(jié)點。當(dāng)轉(zhuǎn)發(fā)節(jié)點的本地緩存中未存儲興趣包所請求的數(shù)據(jù)時,可在轉(zhuǎn)發(fā)節(jié)點的待定請求表中存儲興趣包對應(yīng)的請求信息,并檢查轉(zhuǎn)發(fā)節(jié)點的待定請求表。如果轉(zhuǎn)發(fā)節(jié)點的待定請求表中已包含請求內(nèi)容的入口,轉(zhuǎn)發(fā)節(jié)點可將進(jìn)入端口加入到自身的待定請求表中,然后丟棄興趣包,并等待數(shù)據(jù)的到來。否則,如果轉(zhuǎn)發(fā)節(jié)點待定請求表中沒有包含請求內(nèi)容的入口,則可在該待定請求表中創(chuàng)建一個新的請求數(shù)據(jù)記錄,該記錄主要包含數(shù)據(jù)名稱及進(jìn)入接口。在執(zhí)行完上述過程后,可查詢轉(zhuǎn)發(fā)節(jié)點的內(nèi)容偏好表中是否存儲有數(shù)據(jù)的數(shù)據(jù)名稱。
其中,步驟203、當(dāng)內(nèi)容偏好表存儲有數(shù)據(jù)名稱時,從轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合中,選取內(nèi)容偏好表中數(shù)據(jù)名稱對應(yīng)的鄰居協(xié)助節(jié)點,并作為轉(zhuǎn)發(fā)節(jié)點的下一跳節(jié)點,由轉(zhuǎn)發(fā)節(jié)點將興趣包轉(zhuǎn)發(fā)至下一跳節(jié)點。
在本步驟中,內(nèi)容偏好表中數(shù)據(jù)名稱對應(yīng)的鄰居協(xié)助節(jié)點,即為所請求內(nèi)容的內(nèi)容提供者節(jié)點。當(dāng)內(nèi)容偏好表中存在多個內(nèi)容提供者時,轉(zhuǎn)發(fā)節(jié)點可選擇距離最近的內(nèi)容提供者節(jié)點以作為下一跳節(jié)點,并將興趣包轉(zhuǎn)發(fā)至該下一跳節(jié)點。
在查詢轉(zhuǎn)發(fā)節(jié)點的內(nèi)容偏好表中是否存儲有數(shù)據(jù)的數(shù)據(jù)名稱之后,當(dāng)內(nèi)容偏好表未存儲數(shù)據(jù)名稱時,可查詢轉(zhuǎn)發(fā)節(jié)點的轉(zhuǎn)發(fā)信息表中是否存儲有數(shù)據(jù)名稱和相應(yīng)的下一跳節(jié)點;當(dāng)轉(zhuǎn)發(fā)信息表中未存儲數(shù)據(jù)名稱或相應(yīng)的下一跳節(jié)點時,從鄰居協(xié)助節(jié)點集合中選取具有最高跳轉(zhuǎn)能力的鄰居協(xié)助節(jié)點,由轉(zhuǎn)發(fā)節(jié)點將興趣包轉(zhuǎn)發(fā)至具有最高跳轉(zhuǎn)能力的鄰居協(xié)助節(jié)點。
本發(fā)明實施例主要是對興趣轉(zhuǎn)發(fā)過程進(jìn)行說明,其中,內(nèi)容偏好表維系了關(guān)于數(shù)據(jù)名稱和數(shù)據(jù)載體的映射信息,從而能夠支持基于單播的興趣轉(zhuǎn)發(fā)。如果請求的數(shù)據(jù)不在內(nèi)容偏好表中,可簡單選擇一個下一跳節(jié)點作為轉(zhuǎn)發(fā)者。在這種情況下,本發(fā)明可從具有相似移動模式和相似內(nèi)容偏好的相鄰協(xié)助節(jié)點集合中選擇一個節(jié)點作為下一跳轉(zhuǎn)發(fā)節(jié)點。
具體地,可先利用如下的公式(7)計算每個鄰居協(xié)助節(jié)點y關(guān)于請求數(shù)據(jù)vh的興趣度:
在上述公式(7)中,
在上述公式(8)中,
基于上述公式(1)及公式(8),可計算每一鄰居協(xié)助節(jié)點的跳轉(zhuǎn)能力值,并選擇具有最高跳轉(zhuǎn)能力的候選節(jié)點作為下一跳節(jié)點,具體過程可參考如下公式(9):
在選取具有最高跳轉(zhuǎn)能力的下一跳節(jié)點之后,可由轉(zhuǎn)發(fā)節(jié)點將興趣包轉(zhuǎn)發(fā)給下一跳節(jié)點。
圖3中所示的是興趣包轉(zhuǎn)發(fā)的一個示例。移動車輛x1在轉(zhuǎn)發(fā)平面上收到一個請求視頻內(nèi)容v1的興趣包,先檢查本地緩存,并且在待定請求表中記錄缺失的緩存事件。接著,查找內(nèi)容偏好表,若該表中沒有相關(guān)的任何匹配,則根據(jù)轉(zhuǎn)發(fā)v1的興趣包到下一跳x2。節(jié)點x2發(fā)現(xiàn)它的內(nèi)容偏好表中可以檢索到v1,v1的內(nèi)容來自于節(jié)點x5。然后,節(jié)點x2可將興趣包轉(zhuǎn)發(fā)至下一跳x4。根據(jù)內(nèi)容偏好表中的信息,x4可直接將請求轉(zhuǎn)發(fā)至內(nèi)容提供者x5。最后,x5將數(shù)據(jù)包沿著反向路徑返回至請求節(jié)點。至此,借助內(nèi)容偏好表完成了基于偏好感知的快速興趣轉(zhuǎn)發(fā)。
本發(fā)明實施例提供的方法,對于車輛自組織網(wǎng)絡(luò)中獲取到興趣包的任一節(jié)點,通過將任一節(jié)點作為轉(zhuǎn)發(fā)節(jié)點,當(dāng)轉(zhuǎn)發(fā)節(jié)點的本地緩存中未存儲興趣包所請求的數(shù)據(jù),并查詢轉(zhuǎn)發(fā)節(jié)點的內(nèi)容偏好表中是否存儲有數(shù)據(jù)的數(shù)據(jù)名稱。當(dāng)內(nèi)容偏好表存儲有數(shù)據(jù)名稱時,從轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合中,選取內(nèi)容偏好表中數(shù)據(jù)名稱對應(yīng)的鄰居協(xié)助節(jié)點,并作為轉(zhuǎn)發(fā)節(jié)點的下一跳節(jié)點,由轉(zhuǎn)發(fā)節(jié)點將興趣包轉(zhuǎn)發(fā)至下一跳節(jié)點。由于可從基于構(gòu)建的內(nèi)容偏好表,從內(nèi)容偏好表中選取轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點,以實現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā),而不用通過廣播興趣包的方式來轉(zhuǎn)發(fā)數(shù)據(jù)。因此,不會造成數(shù)據(jù)泛洪而導(dǎo)致網(wǎng)絡(luò)癱瘓。
另外,當(dāng)轉(zhuǎn)發(fā)信息表中未存儲數(shù)據(jù)名稱或相應(yīng)的下一跳節(jié)點時,由于可根據(jù)轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合中每一鄰居協(xié)助節(jié)點的跳轉(zhuǎn)能力值,選取最高跳轉(zhuǎn)能力的鄰居協(xié)助節(jié)點作為下一跳節(jié)點以實現(xiàn)數(shù)據(jù)的轉(zhuǎn)發(fā),而不用通過廣播興趣包的方式來轉(zhuǎn)發(fā)數(shù)據(jù),從而不會造成數(shù)據(jù)泛洪而導(dǎo)致網(wǎng)絡(luò)癱瘓。
最后,由于可在每個節(jié)點構(gòu)建并維護視頻偏好及移動相似性的信息,并將信息存儲在內(nèi)容偏好表中,每個節(jié)點根據(jù)內(nèi)容偏好表上的信息決定轉(zhuǎn)發(fā)的下一跳,從而消費者可以有效地轉(zhuǎn)發(fā)興趣包,以使快速高效地定位并地獲取視頻內(nèi)容。
本發(fā)明實施例提供了一種數(shù)據(jù)轉(zhuǎn)發(fā)裝置,該裝置用于執(zhí)行上述圖1或圖2對應(yīng)的實施例中所提供的數(shù)據(jù)轉(zhuǎn)發(fā)方法。參見圖4,該裝置包括:
第一查詢模塊401,用于對于車輛自組織網(wǎng)絡(luò)中獲取到興趣包的任一節(jié)點,將任一節(jié)點作為轉(zhuǎn)發(fā)節(jié)點,當(dāng)轉(zhuǎn)發(fā)節(jié)點的本地緩存中未存儲興趣包所請求的數(shù)據(jù),并查詢轉(zhuǎn)發(fā)節(jié)點的內(nèi)容偏好表中是否存儲有數(shù)據(jù)的數(shù)據(jù)名稱;
第一轉(zhuǎn)發(fā)模塊402,用于當(dāng)內(nèi)容偏好表存儲有數(shù)據(jù)名稱時,從轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合中,選取內(nèi)容偏好表中數(shù)據(jù)名稱對應(yīng)的鄰居協(xié)助節(jié)點,并作為轉(zhuǎn)發(fā)節(jié)點的下一跳節(jié)點,由轉(zhuǎn)發(fā)節(jié)點將興趣包轉(zhuǎn)發(fā)至下一跳節(jié)點。
作為一種可選實施例,該裝置還包括:
第二查詢模塊,用于當(dāng)內(nèi)容偏好表未存儲數(shù)據(jù)名稱時,查詢轉(zhuǎn)發(fā)節(jié)點的轉(zhuǎn)發(fā)信息表中是否存儲有數(shù)據(jù)名稱和相應(yīng)的下一跳節(jié)點;
第二轉(zhuǎn)發(fā)模塊,用于當(dāng)轉(zhuǎn)發(fā)信息表中未存儲數(shù)據(jù)名稱或相應(yīng)的下一跳節(jié)點時,從鄰居協(xié)助節(jié)點集合中選取具有最高跳轉(zhuǎn)能力的鄰居協(xié)助節(jié)點,由轉(zhuǎn)發(fā)節(jié)點將興趣包轉(zhuǎn)發(fā)至具有最高跳轉(zhuǎn)能力的鄰居協(xié)助節(jié)點。
作為一種可選實施例,該裝置還包括:
確定模塊,用于基于轉(zhuǎn)發(fā)節(jié)點的速度矢量信息及歷史播放行為信息,確定轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合。
作為一種可選實施例,確定模塊,包括:
確定單元,用于基于轉(zhuǎn)發(fā)節(jié)點的速度矢量信息,確定轉(zhuǎn)發(fā)節(jié)點的協(xié)作節(jié)點集合;
篩選單元,用于基于轉(zhuǎn)發(fā)節(jié)點的歷史播放行為信息,對協(xié)作節(jié)點集合進(jìn)行篩選,得到轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合。
作為一種可選實施例,確定單元,用于基于轉(zhuǎn)發(fā)節(jié)點的速度矢量信息,計算轉(zhuǎn)發(fā)節(jié)點與每一相鄰節(jié)點之間的余弦相似性值;選取余弦相似性值大于預(yù)設(shè)閾值的相鄰節(jié)點作為轉(zhuǎn)發(fā)節(jié)點的協(xié)作節(jié)點,得到轉(zhuǎn)發(fā)節(jié)點的協(xié)作節(jié)點集合。
作為一種可選實施例,篩選單元,包括:
構(gòu)建子單元,用于基于轉(zhuǎn)發(fā)節(jié)點的歷史播放行為信息,構(gòu)建轉(zhuǎn)發(fā)節(jié)點的偏好程度向量;
篩選子單元,用于根據(jù)轉(zhuǎn)發(fā)節(jié)點的偏好程度向量及每一協(xié)作節(jié)點的偏好程度向量,對協(xié)作節(jié)點集合進(jìn)行篩選,得到轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合。
作為一種可選實施例,構(gòu)建子單元,用于基于轉(zhuǎn)發(fā)節(jié)點的歷史播放行為信息,確定轉(zhuǎn)發(fā)節(jié)點對每一視頻類型的偏好程度值;根據(jù)轉(zhuǎn)發(fā)節(jié)點對每一視頻類型的偏好程度值,得到轉(zhuǎn)發(fā)節(jié)點的偏好程度向量。
作為一種可選實施例,篩選子單元,用于根據(jù)轉(zhuǎn)發(fā)節(jié)點的偏好程度向量及每一協(xié)作節(jié)點的偏好程度向量,計算轉(zhuǎn)發(fā)節(jié)點與每一協(xié)作節(jié)點之間的偏好程度相似值;按照從大到小的順序?qū)γ恳粎f(xié)作節(jié)點對應(yīng)的偏好程度相似值進(jìn)行排列,選取前預(yù)設(shè)數(shù)量個協(xié)作節(jié)點作為轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合。
作為一種可選實施例,該裝置還包括:
構(gòu)建模塊,用于對于車輛自組織網(wǎng)絡(luò)中每一節(jié)點,基于興趣交互包在每一節(jié)點之間的傳遞過程,構(gòu)建每一節(jié)點的內(nèi)容偏好表。
本發(fā)明實施例提供的裝置,對于車輛自組織網(wǎng)絡(luò)中獲取到興趣包的任一節(jié)點,通過將任一節(jié)點作為轉(zhuǎn)發(fā)節(jié)點,當(dāng)轉(zhuǎn)發(fā)節(jié)點的本地緩存中未存儲興趣包所請求的數(shù)據(jù),并查詢轉(zhuǎn)發(fā)節(jié)點的內(nèi)容偏好表中是否存儲有數(shù)據(jù)的數(shù)據(jù)名稱。當(dāng)內(nèi)容偏好表存儲有數(shù)據(jù)名稱時,從轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合中,選取內(nèi)容偏好表中數(shù)據(jù)名稱對應(yīng)的鄰居協(xié)助節(jié)點,并作為轉(zhuǎn)發(fā)節(jié)點的下一跳節(jié)點,由轉(zhuǎn)發(fā)節(jié)點將興趣包轉(zhuǎn)發(fā)至下一跳節(jié)點。由于可從基于構(gòu)建的內(nèi)容偏好表,從內(nèi)容偏好表中選取轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點,以實現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā),而不用通過廣播興趣包的方式來轉(zhuǎn)發(fā)數(shù)據(jù)。因此,不會造成數(shù)據(jù)泛洪而導(dǎo)致網(wǎng)絡(luò)癱瘓。
另外,當(dāng)轉(zhuǎn)發(fā)信息表中未存儲數(shù)據(jù)名稱或相應(yīng)的下一跳節(jié)點時,由于可根據(jù)轉(zhuǎn)發(fā)節(jié)點的鄰居協(xié)助節(jié)點集合中每一鄰居協(xié)助節(jié)點的跳轉(zhuǎn)能力值,選取最高跳轉(zhuǎn)能力的鄰居協(xié)助節(jié)點作為下一跳節(jié)點以實現(xiàn)數(shù)據(jù)的轉(zhuǎn)發(fā),而不用通過廣播興趣包的方式來轉(zhuǎn)發(fā)數(shù)據(jù),從而不會造成數(shù)據(jù)泛洪而導(dǎo)致網(wǎng)絡(luò)癱瘓。
最后,由于可在每個節(jié)點構(gòu)建并維護視頻偏好及移動相似性的信息,并將信息存儲在內(nèi)容偏好表中,每個節(jié)點根據(jù)內(nèi)容偏好表上的信息決定轉(zhuǎn)發(fā)的下一跳,從而消費者可以有效地轉(zhuǎn)發(fā)興趣包,以使快速高效地定位并地獲取視頻內(nèi)容。
最后,本申請的方法僅為較佳的實施方案,并非用于限定本發(fā)明的保護范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。