孫丹東
摘要:車聯(lián)網(wǎng)的特殊結(jié)構(gòu),使高速移動下的數(shù)據(jù)交換會在一定程度上導致比較網(wǎng)絡(luò)存在低的聯(lián)通性和比較高的丟包率。文章設(shè)計一個基于地理信息系統(tǒng)的Gnutella P2P網(wǎng)絡(luò)(Geo-Gnutella)的系統(tǒng)管理交通信息,力圖解決上述缺陷。在地理信息系統(tǒng)的基礎(chǔ)上,將道路劃分為由道路段組成的區(qū)域。路側(cè)單元( RSU)負責的區(qū)域信息交換,多個路側(cè)單元組成分布式交通信息系統(tǒng),服務(wù)于交通大數(shù)據(jù)的采集以及車輛查詢實時交通信息。通過測試分析基于地理信息的改進的Geo-Gnutella P2P車聯(lián)網(wǎng),具有較高的連接成功率及較低的丟包率。
關(guān)鍵詞:智能交通系統(tǒng);自組織車聯(lián)網(wǎng):Gnutella;交通流量系統(tǒng)
近年來,智能交通技術(shù)得到了初步的應(yīng)用和發(fā)展。例如在道路安全方面,實時車道變化警告、電子制動警告等。交通預(yù)警的基礎(chǔ)上,輔助計算機自動控制的情況下可以減少司機的錯誤判斷,從而減少交通事故發(fā)生。AHS的實驗中,智能交通疏導可以分散車流,總體降低交通堵塞的概率。車載Ad hoc網(wǎng)絡(luò)(VANET)是智能交通系統(tǒng)(Intelligent TrafficSystem。ITS)的重要組成部分。汽車可以通過VANET進行信息交換。通過實時交通系統(tǒng)輔助對行車路徑進行修正,車輛可以選擇最優(yōu)路線。
在Rybicki等[1]的論文中提出了一種車輛基于路側(cè)單元的P2P網(wǎng)絡(luò)的交通信息系統(tǒng)。也就是說,對等網(wǎng)覆蓋的車輛可以為系統(tǒng)提供健壯性,基于路側(cè)單元的通信可以提供良好的連通性。但是這種P2P系統(tǒng)沒有考慮在高速移動的情況下,車輛的移動造成與基礎(chǔ)設(shè)施之間的通信隨機丟失,數(shù)據(jù)切換等問題。
1 系統(tǒng)架構(gòu)設(shè)計
本文提出了一種基于地理信息的G nut ella的P2P架構(gòu)(Geo-Gnutella),將這種改進的P2P技術(shù)應(yīng)用于VANET。利用路側(cè)單元組織采集基于路段區(qū)域的車輛構(gòu)成的網(wǎng)絡(luò)的交通信息,而路側(cè)單元組成實時交通信息系統(tǒng),通過互聯(lián)網(wǎng)提供智能交通相關(guān)大數(shù)據(jù)服務(wù)。
對于非結(jié)構(gòu)化P2P- GnutellaP2P模式進行改進與優(yōu)化,可以適應(yīng)車聯(lián)網(wǎng)應(yīng)用。應(yīng)用層的P2P覆蓋網(wǎng)絡(luò)位于車聯(lián)網(wǎng)的頂端,它依賴車聯(lián)網(wǎng)進行信息傳遞。為了減少網(wǎng)絡(luò)負載,我們可以減少P2P覆蓋網(wǎng)絡(luò)的維數(shù)。本文提出基于地理信息系統(tǒng),將道路劃分為“區(qū)域”,而“區(qū)域”由“路段”組成。在每個路段都通過自組織車聯(lián)網(wǎng)形成P2P網(wǎng)絡(luò)覆蓋,從而減少網(wǎng)絡(luò)規(guī)模,保持區(qū)域內(nèi)相對穩(wěn)定。
在結(jié)構(gòu)中每個區(qū)域都有一個路側(cè)單元(Road SideUnit,RSU),用來管理每個路段的交通信息。多個RSU接入互聯(lián)網(wǎng)構(gòu)成分布式信息查詢系統(tǒng)。我們假設(shè)每個車輛都配備了GPS和4G接入設(shè)備。基于地理信息的Gnutella P2P覆蓋網(wǎng)絡(luò)在每一個路段選舉超級節(jié)點,超級節(jié)點和基礎(chǔ)設(shè)施的通信通過4G網(wǎng)絡(luò)進行[2]。
綜上,本文所述Geo- Gnutella的車聯(lián)網(wǎng)整體架構(gòu)如圖l所示。
2 合作的交通信息系統(tǒng)
在基于VANET的交通信息系統(tǒng)中,基本的關(guān)注點是信息傳遞。信息傳遞依賴于車輛間的路由,但由于車輛行駛速度不同,網(wǎng)絡(luò)拓撲結(jié)構(gòu)不斷變化。因此,很多方案被提出來解決上述這些問題,例如,基于地理調(diào)度和改進的鄰居查找方案、軌跡轉(zhuǎn)發(fā)等。
為了建立實時的交通信息系統(tǒng),有文獻提出構(gòu)建基于車輛間的協(xié)同合作的車聯(lián)網(wǎng)絡(luò)。利用車輛間通信進行傳播和查詢交通信息。然而,要持續(xù)地數(shù)據(jù)傳遞需要網(wǎng)絡(luò)上有足夠數(shù)量的車輛。當車輛密度不足時,會導致車聯(lián)網(wǎng)中斷。即使我們假設(shè)有足夠的車輛相互通信,當車輛密度增加,車聯(lián)網(wǎng)又將被廣播包填滿,維持網(wǎng)絡(luò)的系統(tǒng)帶寬占用率變得非常高,造成嚴重的網(wǎng)絡(luò)擁塞[3]。所以我們應(yīng)該考慮控制網(wǎng)絡(luò)的規(guī)模。
2.1 P2P覆蓋的車載自組織網(wǎng)絡(luò)
P2P覆蓋網(wǎng)絡(luò)可能提供了一種高效的車聯(lián)網(wǎng)架構(gòu),在廣域網(wǎng)絡(luò)中具有自組織性、易擴展性和健壯性。由于P2P的這些特點,很多基于P2P的交通信息系統(tǒng)的應(yīng)用被提出。
P2P覆蓋可以分為非結(jié)構(gòu)化的,如Gnutella,結(jié)構(gòu)化如Chord。P2P系統(tǒng)在參與者之間分配資源。從目前的研究來看,P2P VANET有兩種常見的基本架構(gòu)。一個是無基礎(chǔ)設(shè)施的P2P覆蓋網(wǎng)絡(luò),另一個是基于基礎(chǔ)設(shè)施的P2P覆蓋網(wǎng)絡(luò)。P2P覆蓋可以采用非結(jié)構(gòu)化或結(jié)構(gòu)化的。當我們直接搭建一個沒有基礎(chǔ)設(shè)施的VANET的車輛P2P覆蓋網(wǎng)絡(luò)系統(tǒng)時,就像上面的討論一樣,P2P VANET系統(tǒng)將會受到網(wǎng)絡(luò)容量低而連接受限、查找成功率低等困擾。
因此,有文獻提出基于基礎(chǔ)設(shè)施的P2P覆蓋網(wǎng)絡(luò)架構(gòu),在這種架構(gòu)下通信的車輛連通性和延遲會有較大改善。但是文獻中指出,由于通信只依賴于基礎(chǔ)設(shè)施,當網(wǎng)絡(luò)規(guī)模變大時,會導致低效率和高延遲。所以,在Rybicki論文中提出了“GraphTIS”解決方案來提高查找性能和負載分配。2.2有關(guān)車聯(lián)網(wǎng)的網(wǎng)絡(luò)類型
關(guān)于VANET中的網(wǎng)絡(luò)類型,一些文獻提出了一些在V2V和V21網(wǎng)絡(luò)中通過WiFi進行車輛通信的方法。但用于VANET時可能會有以下不足:(1)當車輛高速移動時,WiFi連接不穩(wěn)定,導致頻繁掉線。(2) WiFi覆蓋面積小,當被某建筑物遮擋時,信號衰減嚴重。所以為了達到滿意的覆蓋水平,需要大量的基礎(chǔ)設(shè)施部署,設(shè)備和維護成本都太高。也有文獻中,通過移動互聯(lián)網(wǎng)接入的車輛通信,以及在此基礎(chǔ)上建立P2P覆蓋。如今,隨著4G網(wǎng)絡(luò)將會更普遍和價格更低,這種方法將更適合VANET,因為它可以提供更高的效率、帶寬和更廣的覆蓋范圍。
專用短距離通信(Dedicated Short RangeCommunications,DSRC)是專門為車載通信設(shè)計的中短距離無線通信通道。802.llp也稱為車載環(huán)境中的無線接入(WAVE),它可以用于V2V和V21通信的高速移動,在此基礎(chǔ)上建立標準的基礎(chǔ)設(shè)施。在文獻中,Nausheen通過仿真提出合并WAVE和移動通信網(wǎng)可以提供比較好的效果。WAVE具有低傳輸延遲,我們可以使用WAVE進行車輛間近距離通信,而移動通信網(wǎng)具有較寬的覆蓋范圍,適合V21通信等較長距離的通信。二者相輔相成,可以提高服務(wù)可用性,并在大多數(shù)情況下可以平滑地切換。
2.3路段與區(qū)域
在VANET中,如果要準確獲得實時的流量信息,P2P網(wǎng)絡(luò)覆蓋必須穩(wěn)定,查找成功率更高,延遲更低。所以P2P網(wǎng)絡(luò)規(guī)模應(yīng)該減少,所有的VANET數(shù)量都是可控的。本文假定所有涉及ITS的車輛都配備了GPS導航設(shè)備,移動蜂窩上網(wǎng)模塊(4G-LTE)和DSRC無線設(shè)備。
為了提高查找性能,道路分為幾個區(qū)域,該區(qū)域由一些路段組成。在每個路段中,車輛通過DSRC形成一個獨立的P2P網(wǎng)絡(luò)作為P2P節(jié)點。路段規(guī)模的大小應(yīng)該保證車輛能夠直接通信,并確保車輛能夠與負責區(qū)域的RSU通信,并且RSU的容量不會超載。 根據(jù)公式:g=kv
(1) 及V=Vf(l-k/kjam)
(2)
其中k位車輛密度,表示在路段里面單位長度下車輛的數(shù)量;q為車流量,表示單位時間內(nèi)通過某固定觀測點的車輛數(shù)量:v為車速:Vf為最高限速;kjam為堵車時候車輛密度。
公路場景下IEEE 802.llp收發(fā)器的最大通信距離不足750 m,通信成功率達到90%,車速達到120 km/h時,與RSU的通信時間約為22.5 s。而在一些文獻中,車輛之間距離400 m以內(nèi)的將表現(xiàn)出可以接受的結(jié)果,包傳遞率(PacketDelivery Rate,PDR)高度依賴于底層環(huán)境。而RSU與負責交換數(shù)據(jù)的“超級車輛”節(jié)點之間采用4G-LTE傳輸數(shù)據(jù)。通過計算與分析得知,我們在城市道路每2 km部署一個RSU設(shè)備,在城市高速公路每4 km-個,高速公路每10 km一個。在具體的地形和地形上,RSU的數(shù)量可以根據(jù)車速與車流量進行調(diào)整。一個RSU負責一個區(qū)域的通信,我們將一個區(qū)域劃分為若干個路段,每個路段的距離為400 m,每個路段的P2P覆蓋網(wǎng)絡(luò)是有限的,每個車輛都有一個本地的地圖副本了解所有路段,然后通過接入系統(tǒng)的GPS位置信息來控制P2P廣播范圍。
路段ID由GPS確定采用唯一標識,我們可以將道路ID和區(qū)域ID以及路片ID組合為RSID( Road Segment ID)。例如,道路ID為X201,區(qū)域ID為0023(與路側(cè)單元ID相同,RSUID),路片ID為02,路由左側(cè)和右側(cè)的最后一個編號為0或1。因此,RSID為X2010023020和X2010023021,如圖1所示。
對于交叉區(qū)域,路段可能重疊,我們可以通過GPS信息變化確定行駛方向,以確定車輛屬于哪個RSID。當車輛行駛到地下隧道時,高層建筑覆蓋無法捕捉到GPS衛(wèi)星信號時,系統(tǒng)會自動導入自主導航系統(tǒng),這樣可能對數(shù)據(jù)傳輸造成一定影響凹,本文不作討論。
3 Geo-Gnutella P2P覆蓋網(wǎng)絡(luò)
3.1 Gnutella網(wǎng)絡(luò)
在Gnutella網(wǎng)絡(luò)中,節(jié)點既是客戶端又是服務(wù)器,所以稱為servent。Gnutella 0.6提出了Ultrapeer(超級種子)系統(tǒng)。Ultrapeer系統(tǒng)通過將網(wǎng)絡(luò)上的節(jié)點分類為葉節(jié)點和超級節(jié)點,具有分層網(wǎng)絡(luò)特點。葉節(jié)點只允許連接到超級節(jié)點。超級節(jié)點作為葉節(jié)點的代理連接到上層網(wǎng)絡(luò)。這種結(jié)構(gòu)可以控制網(wǎng)絡(luò)規(guī)模,減少消息處理和路由負擔。所以這種Gnutella網(wǎng)絡(luò)是一個半分布式拓撲網(wǎng)絡(luò),但性能比以前有了很大的提高。Gnutella網(wǎng)絡(luò)具有高度的容錯性,丟棄的部分servent不會中斷正在進行的網(wǎng)絡(luò)操作,而且這個特性恰好適用于VANET資源的搜索和下載。
3.2 Geo-Gnutella P2P車載自組織網(wǎng)結(jié)構(gòu)
本文所提出的Geo-Gnutella系統(tǒng)是路上車輛通過DSRC形成車載自組織網(wǎng)絡(luò),并在應(yīng)用層形成的P2P網(wǎng)絡(luò)覆蓋。這種網(wǎng)絡(luò)是Gnutella P2P網(wǎng)絡(luò)的改進算法,不屬于通常意義的Gnutella網(wǎng)絡(luò),它們之間不能相互通信。
3.2.1背景描述
當車輛進入路段時,將通過GPS和導航地圖中獲取RSID和RSU信息。如果車輛不久前與某些Geo-Gnutellaservent進行了通信,則該車輛將嘗試與存儲在其緩存中的其他超級車輛進行通信。如果所有的超級節(jié)點車都不在線,在緩存中沒有數(shù)據(jù)或沒有連接到網(wǎng)絡(luò),則在x秒后,車輛將向負責該區(qū)域的RSU發(fā)送請求。RSU在網(wǎng)絡(luò)上充當GnutellaGWebCache。在RSU的緩存中存儲了該區(qū)域的超級節(jié)點信息和每個路段的第一級服務(wù)器(如果沒有超級節(jié)點用戶),那么車輛將通信超級節(jié)點或第一級服務(wù)器并嘗試加入Geo-Gnutella網(wǎng)絡(luò),如果RSU緩存空白或者RSU提供的所有超級節(jié)點和第一個servent都無法連接,車輛可能是第一個進入該區(qū)域的servent。它將被存儲在RSU緩存中,直到第二輛車加入相同的路段。在這種Geo-Gnutella網(wǎng)絡(luò)中,所有車輛到車輛(Vehicle-to-Vehicle,V2V)通信將使用DSRC,所有車輛到RSU通信使用通過4G移動網(wǎng)絡(luò)連接互聯(lián)網(wǎng)。
3.2.2建立Geo-Gnutella P2P覆蓋網(wǎng)絡(luò)
在該系統(tǒng)中,一個區(qū)域包含多個路段,每個路段形成一個Geo-Gnutella覆蓋網(wǎng)絡(luò)。如果兩輛車屬于不同的路段,則兩輛車不能通信。由于車輛在行駛,因此,當一輛車進入?yún)^(qū)域并被選舉成超級節(jié)點時,為了保持上層網(wǎng)絡(luò)的穩(wěn)定性,那么它們在每一個路段都是超級節(jié)點,直到離開該區(qū)域或該車輛網(wǎng)絡(luò)中斷系統(tǒng)重選。根據(jù)系統(tǒng)需要,葉節(jié)點可以變成超級節(jié)點:超級節(jié)點也可以降級成為一個葉節(jié)點。
當?shù)诙v車進入路段時,也會自動嘗試連接Geo-Gnutella網(wǎng)絡(luò)。它從本地緩存或區(qū)域RSU的緩存中獲取超級用戶的IP地址列表。當系統(tǒng)沒有超級節(jié)點時,它將提供RSU緩存的該區(qū)域在線第一個車輛IP地址。一旦獲得了同一路段上的第一輛車的IP地址,就會建立一個TCP/IP連接,并啟動握手序列??蛻舳耸堑诙_啟動初始連接請求的車輛,而回應(yīng)連接請求并提供資源的車輛就作為服務(wù)器。當然在Geo-Gnutella網(wǎng)絡(luò)中,車輛既是服務(wù)器又是客戶端。
為了建立Geo-Gnutella網(wǎng)絡(luò)覆蓋,兩輛車將通過發(fā)送“Geo-Gnutella連接”握手。Geo-Gnutella的連接不僅包含“Gnutella連接”的原始參數(shù),還包含一些GPS參數(shù)來控制連接規(guī)模。這些GPS參數(shù)包含當前位置坐標(X,Y),方向角(0),速度(V),時間(T)。
例如,兩輛車可能握手以下過程。
Client
Server
Geo - GNUTELLA CONNECT/0.6
User-Agent: ITShare/l.O
X-GPS: Xi,Yi,Oi,Vi,Ti
X-UltraPeer:False
Pong-Caching: O.l
Geo-GNUTELLA/0.6 200OK
User-Agent:ITShare/l.O
X-GPS: Xj,Yj,Oj,Vj,Tj
X-UltraPeer:False
Pong-Caching: O.kcr>
X-UltraPeer-Needed:True
Geo-GNUTELLA/0.6 200 0K
X-UltraPeer:True
[binary messages]
[binary messages]
客戶端與服務(wù)器建立TCP連接。頭部報文為“Geo-GNUTELLA CONNECT/0.6
我們可以參考inpolygon算法或C#函數(shù)PtInRect來判斷多邊形區(qū)域(路段)內(nèi)的點,并且可以計算角度來確定車輛是否在同一個方向。例如,如果一個車輛的方向角度是。,另一個是β,α-β|<45或360-|α-β|<45,那么我們可以考慮兩輛車在同一個方向。方向角定義為車輛方向和北方的順時針方向角。實際上,GPS是根據(jù)上一次的位置來判斷方向角的。在某些轉(zhuǎn)彎路段可能會造成錯誤的判斷而導致連接中斷,但是通過劃分路段和超級節(jié)點可以降低這種錯誤發(fā)生的概率。
頭部“X-UltraPeer: False”是指車輛(servent)不是超級節(jié)點。一個車輛是否成為超級節(jié)點,取決于網(wǎng)上是否需要更多的超級節(jié)點。頭部“X-UltraPeer-Needed”可以平衡網(wǎng)絡(luò)上超級節(jié)點的數(shù)量。當“X-UltraPeer-Needed”的值為正時,表示希望對方的S ervent成為超級節(jié)點。如果有時網(wǎng)絡(luò)中有太多的超級節(jié)點,當超級連接另一個超級同級時,超級節(jié)點可能會發(fā)送“X-UltraPeer-Needed: False”來協(xié)商另一側(cè)成為一個葉級節(jié)點。通常情況下,在Geo-GNUTELLA系統(tǒng)中,一個超級節(jié)點的葉節(jié)點不超過30個。繼續(xù)上面的例子,當作為服務(wù)器的車輛發(fā)送“X-UltraPeer-Needed: True”的頭部時,客戶車輛發(fā)送“Geo-GNUTELLA/0.6 200 OK”同意該連接,成為一個超級節(jié)點并發(fā)送“X-UltraPeer- UltraPeer:True”。當一個車輛在一個區(qū)域內(nèi)成為一個超級節(jié)點時,它將發(fā)送一個消息給負責該區(qū)域的RSU,RSU隨之更新緩存。其他車輛加入時,過程是一樣的。為了減少RSU的負載,車輛首先在本地緩存中獲取超級列表。當本地緩存為空或所有超級用戶離線時,車輛將向RSU發(fā)送請求。這將確保車輛快速連接到Geo-Gnutella網(wǎng)絡(luò),同時保持RSU緩存呼叫的計數(shù)非常低。
當車輛離開路段時,會通過發(fā)送一個再見命令斷開所有連接,但保持超級節(jié)點狀態(tài)。當它離開一個區(qū)域并進入一個新的區(qū)域時,它會發(fā)送一個消息給這個區(qū)域的RSU,這樣它就可以查詢超級同志的列表并注冊自己。在這個系統(tǒng)中,一個葉子節(jié)點只保留少量的與超級節(jié)點的連接。一個超級節(jié)點作為Geo-Gnutella網(wǎng)絡(luò)的葉節(jié)點的連接代理,這樣可以減少消息處理量和網(wǎng)絡(luò)中對等節(jié)點數(shù)量,以及減少VANET之間的維持連接的流量,分區(qū)段處理Gnutella有利于整體路網(wǎng)信息采集效率的提高。這些Geo-Gnutella網(wǎng)絡(luò)在路段上被分隔,又通過超級節(jié)點和多個RSU將這些Geo-Gnutella網(wǎng)絡(luò)連接起來形成智能交通系統(tǒng)[5]。
4 交通信息查詢
車輛要查詢當前位置到達目的地的實時交通信息,將該請求發(fā)送到該區(qū)域的RSU。因為車輛可以從導航設(shè)備獲得路線,所以它發(fā)送請求包括路線上的所有RSU。RSU轉(zhuǎn)發(fā)查詢并收集其區(qū)域的信息。所有RSU完成交通信息采集,并將數(shù)據(jù)匯總返回給車輛。為了避免同時進行更多的車輛查詢,RSU會將交通信息緩存幾分鐘。但是應(yīng)該建立一個機制,如果突發(fā)堵塞,應(yīng)該強制更新緩存。RSU應(yīng)該存儲歷史交通信息數(shù)據(jù),以提供分布式交通信息查詢、分析和預(yù)測服務(wù)。可以設(shè)計一個爬蟲程序進行交通信息收集,具體信息查詢架構(gòu)不在本文討論。
5 結(jié)語
本文論述了一個用Geo-Gnutella P2P覆蓋網(wǎng)絡(luò)構(gòu)建的實時協(xié)同交通信息系統(tǒng),對Gnutella算法進行了改進,通過分區(qū)路段和動態(tài)GPS信息限制了各個區(qū)域的P2P網(wǎng)絡(luò)傳播。
實時交通信息是車載網(wǎng)絡(luò)中的重要應(yīng)用之一。本文不涉及P2P網(wǎng)絡(luò)的安全性。Geo-Gnutella網(wǎng)絡(luò)的超級節(jié)點和基礎(chǔ)網(wǎng)絡(luò)的構(gòu)建相結(jié)合,動態(tài)調(diào)整整個網(wǎng)絡(luò)安全策略,適應(yīng)網(wǎng)絡(luò)威脅的變化,主動找到惡意節(jié)點是本文今后的工作。我們可以在P2P VANET覆蓋網(wǎng)絡(luò)中共享一些車聯(lián)網(wǎng)用戶都關(guān)注的媒體文件,使用Gnutella爬蟲搜索分享資源下載,我認為這是未來研究的一個非常有趣的方向。