王康康, 馮 琳, 汪玉美, 魏振春
(1.合肥工業(yè)大學(xué) 計(jì)算機(jī)與信息學(xué)院,安徽 合肥 230601; 2.陸軍炮兵防空兵學(xué)院 無人機(jī)應(yīng)用系,安徽 合肥 230031)
車輛自組織網(wǎng)絡(luò)(vehicular Ad-hoc network,VANET)是以車輛為節(jié)點(diǎn)的一種特殊的移動自組織網(wǎng)絡(luò),鏈路層采用IEEE802.11p標(biāo)準(zhǔn),用于實(shí)現(xiàn)車輛與車輛通信(vehicle-to-vehicle,V2V)和車輛與基礎(chǔ)設(shè)施通信(vehicle-to-infrastructure,V2I)[1]。其具有網(wǎng)絡(luò)規(guī)模大、網(wǎng)絡(luò)密度極為不均勻及拓?fù)浣Y(jié)構(gòu)變化頻繁等特點(diǎn)。由于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)變化頻繁,IP網(wǎng)絡(luò)架構(gòu)下的VANET無法保證端對端通信時鏈路穩(wěn)定的連通性,因此傳統(tǒng)的IP網(wǎng)絡(luò)架構(gòu)無法在VANET中良好運(yùn)作[2]。命名數(shù)據(jù)網(wǎng)絡(luò)(named data networking,NDN)是以數(shù)據(jù)內(nèi)容為中心的一種未來網(wǎng)絡(luò)架構(gòu)[3],其關(guān)注的是數(shù)據(jù)本身而不是數(shù)據(jù)的物理存儲位置,因此相對于端對端通信的IP網(wǎng)絡(luò),NDN更適合應(yīng)用于VANET。近年來,將NDN應(yīng)用于VANET的車輛命名數(shù)據(jù)網(wǎng)絡(luò)(Vehicular-NDN,V-NDN)是國內(nèi)外的研究熱點(diǎn)。
V-NDN的研究主要是圍繞提高車輛節(jié)點(diǎn)的服務(wù)質(zhì)量(quality of service,QoS)展開的,網(wǎng)絡(luò)獲取數(shù)據(jù)的成功率和成功接收到數(shù)據(jù)的平均時延是衡量V-NDN的2個重要標(biāo)準(zhǔn)。目前,V-NDN的研究主要集中在興趣包(interest packet)的轉(zhuǎn)發(fā)策略和數(shù)據(jù)包(data packet)的緩存策略上。
為了提高節(jié)點(diǎn)的服務(wù)質(zhì)量,目前已有的研究主要集中在對包轉(zhuǎn)發(fā)策略上的改進(jìn),通過引入一些機(jī)制使得興趣包的轉(zhuǎn)發(fā)盡可能地高效或者具有方向性。文獻(xiàn)[4]利用了車載電子地圖將發(fā)送者的位置信息寫入興趣包,從而確保興趣包在當(dāng)前道路的各個方向上被轉(zhuǎn)發(fā)出去;文獻(xiàn)[5]提出了一種推送式的數(shù)據(jù)傳輸方法來降低緊急數(shù)據(jù)的傳輸延遲;文獻(xiàn)[6]將興趣包按照道路路段進(jìn)行路由轉(zhuǎn)發(fā),使得數(shù)據(jù)包轉(zhuǎn)發(fā)具有方向性;文獻(xiàn)[7]提出了一種通過維護(hù)鄰居列表的可靠數(shù)據(jù)傳輸策略。
此外,也有一些學(xué)者對網(wǎng)絡(luò)模型做出了調(diào)整,利用其他的一些通信方式協(xié)助興趣包的轉(zhuǎn)發(fā)。文獻(xiàn)[8]使用4G蜂窩網(wǎng)絡(luò)輔助興趣包的廣播,擁有對應(yīng)數(shù)據(jù)的車輛會把數(shù)據(jù)復(fù)制給周圍的車輛,再次請求該數(shù)據(jù)時,興趣包的命中率就會變大;文獻(xiàn)[9]對V-NDN提出了一種內(nèi)容分發(fā)的層次結(jié)構(gòu),讓蜂窩網(wǎng)絡(luò)和專用短程通信(dedicated short range communications,DSRC)進(jìn)行互補(bǔ),前者用作V2I通信,后者用作V2V通信。但是這些方法得以實(shí)施的前提是車輛上必須安裝有蜂窩網(wǎng)絡(luò)通訊設(shè)備,然而,目前還不太切合實(shí)際。
本文從實(shí)際出發(fā),對傳統(tǒng)V-NDN網(wǎng)絡(luò)模型做出改進(jìn),利用城市道路中被廣泛部署的路側(cè)單元(road side unit,RSU)來輔助興趣包和數(shù)據(jù)包的轉(zhuǎn)發(fā),使得相距較遠(yuǎn)的車輛之間得以通信。不同于以數(shù)據(jù)中心為媒介的間接通信,本文RSU的輔助過程不需要數(shù)據(jù)中心的參與,RSU在接收到數(shù)據(jù)之后,將根據(jù)數(shù)據(jù)的位置信息選擇下一跳的RSU節(jié)點(diǎn)。
本文首次提出了基于RSU輔助的V-NDN網(wǎng)絡(luò)模型,利用RSU之間可以通過有線信道通信來輔助V-NDN網(wǎng)絡(luò)的興趣包和數(shù)據(jù)包的傳輸;通過實(shí)驗(yàn)仿真,分析了在相同場景下基于RSU輔助的V-NDN、傳統(tǒng)V-NDN[4]和基于蜂窩網(wǎng)絡(luò)輔助的V-NDN[8]的網(wǎng)絡(luò)性能,通過性能對比驗(yàn)證了本文策略的優(yōu)越性。
本節(jié)假設(shè)城市道路中的網(wǎng)絡(luò)場景,并分析在該場景下傳統(tǒng)V-NDN所存在的問題,然后針對上述問題提出了基于RSU輔助的V-NDN網(wǎng)絡(luò)模型。
本文假設(shè)在城市道路場景下,車輛之間使用DSRC進(jìn)行V2V通信,通信的主要內(nèi)容是車輛感知信息、天氣信息和一些其他的新聞信息,這些信息是由帶有感知設(shè)備的車輛或交通管理信息中心來發(fā)布。受限于DSRC的通信范圍,通信范圍內(nèi)的車輛可以直接通信,而距離較遠(yuǎn)的車輛之間則只能采用接力方式進(jìn)行多跳通信。本文稱可以通過一跳或多跳的方式進(jìn)行通信的車輛所組成的局部網(wǎng)絡(luò)為一個連通區(qū)域。
為了提高QoS,本文旨在解決以下2個問題:一是如何提高不同連通區(qū)域之間車輛通信的成功率;二是如何降低同一連通區(qū)域中距離較遠(yuǎn)車輛之間的通信時延。V-NDN網(wǎng)絡(luò)模型如圖1所示,傳統(tǒng)的V-NDN中,當(dāng)請求者需要獲取某個數(shù)據(jù)時,就發(fā)送興趣包到網(wǎng)絡(luò)中,數(shù)據(jù)將以數(shù)據(jù)包的形式沿著興趣包的反向路徑從網(wǎng)絡(luò)中返回。在數(shù)據(jù)包傳回的路徑上,所有的中間節(jié)點(diǎn)都有可能緩存數(shù)據(jù)包以便于滿足后續(xù)可能的數(shù)據(jù)請求。部分車輛(數(shù)據(jù)騾子)攜帶數(shù)據(jù)從一個連通區(qū)域到另外一個連通區(qū)域,為不同連通區(qū)域間的通信帶來了可能。不同連通區(qū)域之間的車輛通信完全依靠數(shù)據(jù)騾子,然而數(shù)據(jù)騾子的移動方向是不可確定的,因此這種方式非常不可靠。同一連通區(qū)域中距離較遠(yuǎn)的車輛之間通信需要較多的轉(zhuǎn)發(fā)跳數(shù),因此通信時延較大。
圖1 V-NDN網(wǎng)絡(luò)模型
為了提高網(wǎng)絡(luò)的QoS,本文提出了基于RSU輔助的V-NDN網(wǎng)絡(luò)模型,使用RSU輔助V2V通信。由于城市道路中大部分關(guān)鍵路口均部署有RSU,且RSU之間可以通過有線信道進(jìn)行高速通信。因此RSU可以作為轉(zhuǎn)發(fā)者來輔助不同連通區(qū)域間的車輛通信。此外,對于連通區(qū)域內(nèi)相距較遠(yuǎn)的車輛,RSU的輔助可以很好地降低通信所需的跳數(shù)。上述2種RSU輔助過程如圖2所示。
圖2 RSU輔助的V-NDN網(wǎng)絡(luò)模型
1.2.1 消息類型
本文提出的網(wǎng)絡(luò)模型中,消息類型分為興趣包(interest packet)和數(shù)據(jù)包(data packet)。為了滿足本文的數(shù)據(jù)轉(zhuǎn)發(fā)策略,興趣包在NDN興趣包的基礎(chǔ)上增加了TTL和Position 2個字段,組成部分依次為:數(shù)據(jù)名稱(name)、選擇項(xiàng)(selectors)、隨機(jī)時間值(nonce)、剩余轉(zhuǎn)發(fā)跳數(shù)(TTL)和發(fā)送者位置坐標(biāo)(position);數(shù)據(jù)包的組成依次為:數(shù)據(jù)名稱(name)、數(shù)據(jù)屬性信息(metaInfo)、數(shù)據(jù)內(nèi)容(content)、內(nèi)容簽名(signature)。
TTL表示興趣包剩余可被轉(zhuǎn)發(fā)的次數(shù),每當(dāng)興趣包被轉(zhuǎn)發(fā)一次,TTL將被減1。當(dāng)TTL=0時興趣包將被停止轉(zhuǎn)發(fā),這樣有效地抑制了廣播風(fēng)暴。Position用于記錄發(fā)送者發(fā)送時的位置信息。
1.2.2 系統(tǒng)角色
本文網(wǎng)絡(luò)模型中存在如下5種角色:數(shù)據(jù)提供者(provider)、數(shù)據(jù)請求者(consumer)、車輛轉(zhuǎn)發(fā)者(forwarder of vehicle)、RSU轉(zhuǎn)發(fā)者(forwarder of RSU)、數(shù)據(jù)騾子(data mule)。
本文網(wǎng)絡(luò)模型相對于傳統(tǒng)V-NDN增加了一個RSU轉(zhuǎn)發(fā)者角色,RSU轉(zhuǎn)發(fā)者起到網(wǎng)關(guān)的作用。當(dāng)RSU通過DSRC從無線信道接收到消息就使用TCP/IP協(xié)議從有線信道轉(zhuǎn)發(fā)出去;當(dāng)RSU從有線信道接收到消息就通過DSRC從無線信道轉(zhuǎn)發(fā)出去。
1.2.3 數(shù)據(jù)命名
數(shù)據(jù)的命名通常是根據(jù)實(shí)際應(yīng)用的需要來設(shè)計(jì)的。實(shí)際城市道路場景中,車輛請求數(shù)據(jù)的形式通常是某個時間、某個地點(diǎn)的某類信息。因此,本文數(shù)據(jù)命名格式設(shè)計(jì)為:消息類型/位置/數(shù)據(jù)名稱/時間屬性。例如:/traffic/anhui.hefei.tunxiStreet-1/max-speed-limit/1506819600表示2017年10月1日上午9:00安徽省合肥市屯溪路1號路段的最大限速。其中時間屬性使用Unix時間戳來表示。為方便下文敘述,數(shù)據(jù)名稱中的位置統(tǒng)一稱之為目標(biāo)位置。
1.2.4 存儲結(jié)構(gòu)
為了滿足本文設(shè)計(jì)的數(shù)據(jù)轉(zhuǎn)發(fā)策略,網(wǎng)絡(luò)中每個節(jié)點(diǎn)都需要有PIT(pending interest table)和CS(content store)2個存儲結(jié)構(gòu)。 PIT用于記錄曾經(jīng)向該節(jié)點(diǎn)請求數(shù)據(jù)但是沒有得到滿足的記錄,CS用于記錄緩存的數(shù)據(jù)包的名稱、數(shù)據(jù)內(nèi)容和最近一次被請求的時間,2種存儲結(jié)構(gòu)的格式如圖3所示。
圖3 PIT和CS格式示意圖
基于RSU輔助的V-NDN數(shù)據(jù)轉(zhuǎn)發(fā)策略分為興趣包的轉(zhuǎn)發(fā)策略和數(shù)據(jù)包的轉(zhuǎn)發(fā)策略2個部分。
在車輛節(jié)點(diǎn)中,興趣包的轉(zhuǎn)發(fā)基于節(jié)點(diǎn)與發(fā)送者的距離,節(jié)點(diǎn)根據(jù)興趣包中的位置信息計(jì)算其與發(fā)送者的距離,通過設(shè)置與距離成反比的定時器使得距離發(fā)送者最遠(yuǎn)的節(jié)點(diǎn)優(yōu)先被選作轉(zhuǎn)發(fā)者;而在RSU節(jié)點(diǎn)中,興趣包的轉(zhuǎn)發(fā)基于數(shù)據(jù)的目標(biāo)位置,當(dāng)RSU接收到來自車輛節(jié)點(diǎn)的興趣包就將其轉(zhuǎn)發(fā)至距離數(shù)據(jù)目標(biāo)位置最近的RSU。
如請求車輛C需要獲取數(shù)據(jù)S,就向網(wǎng)絡(luò)中廣播興趣包IS。接收到IS的車輛中離C最遠(yuǎn)的車輛將被選中作為轉(zhuǎn)發(fā)者繼續(xù)轉(zhuǎn)發(fā)興趣包IS。曾經(jīng)處理過IS的車輛再次接收到IS將不再轉(zhuǎn)發(fā)IS。當(dāng)IS被路邊單元RS接收到后,RS將使用TCP/IP協(xié)議把IS轉(zhuǎn)發(fā)給離數(shù)據(jù)S目標(biāo)位置最近的路邊單元Rn。Rn接收到IS后,再向無線信道中廣播興趣包IS。
2.1.1 車輛節(jié)點(diǎn)轉(zhuǎn)發(fā)興趣包
承上所述,車輛節(jié)點(diǎn)轉(zhuǎn)發(fā)興趣包的過程如圖4所示,首先S1廣播興趣包,因?yàn)镾4距離S1最遠(yuǎn),所以由S4來轉(zhuǎn)發(fā)該興趣包。同理,接下來是S10和S11分別執(zhí)行下一步轉(zhuǎn)發(fā),最后由S7和S13轉(zhuǎn)發(fā)。
圖4 車輛節(jié)點(diǎn)轉(zhuǎn)發(fā)興趣包過程
為了實(shí)現(xiàn)使距離發(fā)送者最遠(yuǎn)的車輛成為轉(zhuǎn)發(fā)者。對于每一次數(shù)據(jù)請求,當(dāng)網(wǎng)絡(luò)中任意車輛節(jié)點(diǎn)Sa接收到一個從Sb廣播的興趣包Ii時,就啟動一個時長為Td的定時器Tri,定時器Tri從數(shù)值Td開始倒計(jì)時。當(dāng)Tri的數(shù)值減為0后,Sa首先刪除Tri,其次把Sb的請求信息寫入到PIT,然后修改Ii的TTL為TTL-1,最后轉(zhuǎn)發(fā)Ii。如果Sa在Tri倒計(jì)時過程中接收到具有與Ii相同Nonce的興趣包,那么直接刪除Tri不轉(zhuǎn)發(fā)Ii。
(1)
其中,Dab為Sa與Sb之間的距離;R為DSRC最大通信距離;d為步長;Tm為DSRC通信范圍內(nèi)任意2個車輛平均一跳通信的時間。
算法1 車輛節(jié)點(diǎn)的興趣包轉(zhuǎn)發(fā)算法。算法如下:
Input:Interest PacketI;
SenderS;
Initialize:none
Function:ForwardInterestPacket-V (I,S)
if !(have deal withI)
if CS.Find(I.name)
send DataPacket toS
return
end if
if (Timer.Find(I.nonce))
delete timer withI.nonce
else
if (TTL=0)
return
else
create a timer forTd
end if
end if
end if
return
Function:SendInterestPacket(I,S)//Triggered after the
timer is over.
if !PIT.Find(I.name)
PIT.Create(PIT-Record)
end if
PIT-Record.Update(S)
TTL=TTL-1
Position=current position
sendI
return
2.1.2RSU節(jié)點(diǎn)轉(zhuǎn)發(fā)興趣包
由于城市道路中所有RSU的位置已知,通過興趣包名稱中的位置信息很容易使用車載電子地圖計(jì)算出離數(shù)據(jù)的目標(biāo)位置最近的RSU。當(dāng)RSU節(jié)點(diǎn)通過無線信道接收到來自車輛節(jié)點(diǎn)的興趣包IS后,節(jié)點(diǎn)將使用有線信道通過TCP/IP協(xié)議將IS轉(zhuǎn)發(fā)給離數(shù)據(jù)S的目標(biāo)位置最近的RSU;當(dāng)RSU節(jié)點(diǎn)通過有線信道接收到來自RSU節(jié)點(diǎn)的興趣包IS后,節(jié)點(diǎn)將通過無線信道把IS廣播給附近的車輛。
算法2 RSU節(jié)點(diǎn)的興趣包轉(zhuǎn)發(fā)算法。算法如下:
Input:Interest PacketI;
SenderS;
Initialize:none
Function:ForwardInterestPacket-R (I,S)
if !(have deal withI)
if CS.Find(I.name)
send DataPacket toS
return
end if
if !PIT.Find(I.name)
PIT.Create(PIT-Record)
end if
PIT-Record.Update(S)
TTL=TTL-1
Position=current position
if ReceiveIvia DSRC then
R=the closest RSU to the target positon ofI.
sendItoRvia TCP/IP
else
sendIvia DSRC
end if
end if
return
節(jié)點(diǎn)的數(shù)據(jù)包轉(zhuǎn)發(fā)過程基本和NDN相同,根據(jù)PIT表中的請求記錄,數(shù)據(jù)包沿著興趣包的逆向路徑返回到數(shù)據(jù)請求者。其中,RSU節(jié)點(diǎn)以Pr的概率緩存數(shù)據(jù)包,車輛節(jié)點(diǎn)以Pv的概率緩存數(shù)據(jù)包。
算法3 節(jié)點(diǎn)的數(shù)據(jù)包轉(zhuǎn)發(fā)算法。算法如下:
Input:Data PacketD;
SenderS;
Initialize:none
Function:Forward Data Packet (D,S)
if PIT.Find(D.Name)
ForwardDby PIT-Record
PIT.Delete(D.Name)
else
return
end if
if (is RSU)
CS.Add(D,Pr)
else
CS.Add(D,Pv)
end if
return
本文通過實(shí)驗(yàn)仿真與傳統(tǒng)的V-NDN數(shù)據(jù)轉(zhuǎn)發(fā)策略和基于蜂窩網(wǎng)絡(luò)輔助的V-NDN數(shù)據(jù)轉(zhuǎn)發(fā)策略(cellular aided V-NDN)進(jìn)行對比來驗(yàn)證所提出的數(shù)據(jù)轉(zhuǎn)發(fā)策略的有效性。實(shí)驗(yàn)使用C++編寫仿真程序,分別實(shí)現(xiàn)了以上3種數(shù)據(jù)轉(zhuǎn)發(fā)策略,并對仿真結(jié)果進(jìn)行了分析比較。
實(shí)驗(yàn)使用城市交通模擬器SUMO[10]在面積為1 500 m×1 000 m的安徽省合肥市的局部地圖上模擬車輛的行進(jìn)軌跡,分別設(shè)置了5輛數(shù)據(jù)提供者車輛和數(shù)據(jù)請求者車輛。數(shù)據(jù)提供者車輛隨機(jī)采集自身所處位置的環(huán)境信息并生成數(shù)據(jù)包,請求者車輛以5次/s的頻率請求網(wǎng)絡(luò)中的數(shù)據(jù)包。初始階段,隨機(jī)生成了最近5 d每小時的天氣信息和1 000條新聞信息并隨機(jī)存儲在任意的車輛中。其他的仿真參數(shù)取值見表1所列。
表1 仿真參數(shù)
成功請求數(shù)據(jù)的平均延遲隨車輛數(shù)目的變化曲線如圖5所示,隨著車輛數(shù)目的增加,3種網(wǎng)絡(luò)策略的平均延時都有下降的趨勢。這是由于車輛數(shù)目的增加導(dǎo)致車輛密度越來越大,消費(fèi)者車輛可以從附近的車輛獲取原本需要從較遠(yuǎn)處的車輛獲取的數(shù)據(jù)。
圖5 成功請求數(shù)據(jù)的平均延遲隨車輛數(shù)目的變化曲線
本文的數(shù)據(jù)轉(zhuǎn)發(fā)策略的成功請求數(shù)據(jù)的平均時延與傳統(tǒng)V-NDN相差不大。這是由于本文策略雖然通過RSU的輔助減小了同一連通區(qū)域中相距較遠(yuǎn)車輛間通信的跳數(shù),但是,由于RSU的輔助提高了興趣包的命中率,使得不同連通區(qū)域的車輛也可以進(jìn)行通信,然而這種通信卻要花費(fèi)相當(dāng)于連通區(qū)域中多跳通信2倍的轉(zhuǎn)發(fā)跳數(shù)?;诜涓C網(wǎng)絡(luò)輔助的V-NDN策略延時最大,這是因?yàn)榛诜涓C網(wǎng)絡(luò)輔助的V-NDN在數(shù)據(jù)請求無響應(yīng)時會再次嘗試請求。
獲取數(shù)據(jù)成功率隨車輛數(shù)目的變化曲線如圖6所示,基于蜂窩網(wǎng)絡(luò)輔助的V-NDN和基于RSU輔助的V-NDN均有較好表現(xiàn)。因?yàn)榛诜涓C網(wǎng)絡(luò)輔助的V-NDN在請求數(shù)據(jù)無響應(yīng)后仍會嘗試發(fā)送請求,所以其請求資源的成功率比較高?;赗SU輔助的V-NDN使得不同連通區(qū)域內(nèi)的車輛也可以通信,因此相對于傳統(tǒng)V-NDN也有較高的數(shù)據(jù)請求成功率。
圖6 獲取數(shù)據(jù)成功率隨車輛數(shù)目的變化曲線
本文提出的策略在數(shù)據(jù)請求成功率上要優(yōu)于傳統(tǒng)V-NDN,并且與基于蜂窩網(wǎng)絡(luò)輔助的策略相當(dāng)。而在數(shù)據(jù)請求延時上,本文策略要優(yōu)于基于蜂窩網(wǎng)絡(luò)輔助的策略,并且和傳統(tǒng)V-NDN相當(dāng)。綜上可見,本文的策略對提高QoS有較好的表現(xiàn)。
本文使用RSU輔助城市道路環(huán)境中V-NDN的車對車通信,充分地利用了城市道路中RSU分布均勻和RSU之間信道環(huán)境好的特點(diǎn)。針對傳統(tǒng)V-NDN中QoS較差的問題,本文提出了基于RSU輔助的V-NDN網(wǎng)絡(luò)模型,并設(shè)計(jì)了基于RSU輔助的V-NDN數(shù)據(jù)轉(zhuǎn)發(fā)策略。仿真結(jié)果表明本文的數(shù)據(jù)轉(zhuǎn)發(fā)策略對QoS的提高有較好的表現(xiàn)。
此外,因?yàn)楸疚能囕v間通信只用于傳輸感知、天氣和新聞等信息,所以數(shù)據(jù)的命名設(shè)計(jì)相對簡單,同時也沒有考慮到通信過程中數(shù)據(jù)的安全和隱私性。因此,網(wǎng)絡(luò)的詳細(xì)數(shù)據(jù)命名規(guī)則和數(shù)據(jù)的安全性都是后續(xù)值得研究的。