專利名稱:一種氣味路由方法
技術領域:
本發明屬于網絡路由技術領域,涉及網絡中用戶搜尋目的用戶、內容、服務等對象的路由方法,特別涉及網絡中有移動節點的路由方法。
背景技術:
目前互聯網比較通用的路由協議可分為基于距離向量(Distance-Vector)的路由協議和基于鏈路狀態(Link^tate)的路由協議。前者的典型協議是路由信息協議 RIP (Routing Information ftOtocol),后者的典型協議是開放最短路徑優先0SPF(0pen Shortest Path First)。路由信息協議RIP的核心算法是Bellman-Ford算法,它的主要思想是路由器根據 IP地址進行尋址,相鄰路由器之間會定期或在網絡拓撲發生改變時互相交換路由表,路由表包含的主要信息有目的網絡、到目的網絡的距離、下一跳路由器等。路由信息協議RIP 雖然只是在相鄰路由器之間交換路由信息,但是事實證明RIP協議是可以收斂的,經過一段時間的多次路由信息交換之后,網絡中的每個路由器都會維持一張到網絡其它節點的路由表。開放最短路徑優先OSPF的核心算法是Dijkstra算法,它的主要思想是只有在網絡拓撲發生變化時,路由器才用洪泛的方式向網絡中的所有路由器發送信息,該發送的信息與RIP協議發送的路由表(包含網絡所有信息)不同,在OSPF協議中,路由器只發送與本路由器相鄰的所有鏈路的狀態。前面兩類路由協議都存在一些共同的問題,比如,當網絡拓撲結構變化較快時,路由協議需要傳輸大量的路由控制消息,從而占用了大量的帶寬。由于以上路由協議都是根據IP地址進行尋址,當網絡中有移動的用戶時,不能很好的支持網絡中節點的移動性。當網絡規模較大時,或者網絡拓撲變化較快時,會產生大量的路由條目,使得路由協議的路由表很大。
發明內容
本發明提出了一種全新的路由思想,較好的解決了上面路由協議中的路由表龐大和不支持用戶移動性等問題。在本發明的路由方法中,移動用戶和非移動用戶、內容、服務等稱為對象;移動用戶和非移動用戶統稱為用戶。下面分別從命名、被動等待請求和訪問對象散發氣味、對象留下和加強氣味、氣味隨時間衰減和按氣味濃度轉發等方面來說明本發明提出的路由方法。一、命名現有的hternet傳統路由協議都是對主機進行編址的,使用的是網絡層的地址, 即IP地址。通過查找主機的IP地址,找到主機從而找到所需要的數據。使用網絡層的標識符IP地址對節點進行標識會帶來很多的缺點,比如不能很好地支持節點的移動性等等, 這些缺點在有些應用中會使網絡的性能嚴重降低。
本發明使用唯一的ID標識網絡中的移動用戶和非移動用戶、內容、服務等對象。二、散發氣味網絡中有些用戶會主動搜尋其它用戶、內容、服務等對象,而有些對象幾乎一直是被動等待請求和訪問的。被動等待請求和訪問的用戶、內容、服務等對象,為了方便其它用戶找到它們,會主動地、周期性地用廣播的方式在網絡中向周圍散發自己的氣味;且散發的氣味的濃度隨著跳數的增加而衰減。廣播的半徑由它們自己決定,用r表示。三、留下和加強氣味(1)按次數留下或加強氣味在網絡中用戶搜尋其它用戶、內容、服務等對象時會沿途留下自己的氣味。用戶、 內容、服務等對象,在每次通信開始時發出的第一個請求包或者響應包中,都給出一個氣味標記;沿途的節點每看到這個標記時,就在收到該數據包的接口處留下或加強該對象的氣味;同一個節點中的同一個接口收到來自相同對象的有氣味標記的包的次數越多,該對象的氣味就越濃。(2)按時間加強氣味對象之間隨著通信時間的加長,每隔一個時間周期,每個對象都在發出的某個數據包中給出一個氣味標記;沿途的節點每當看到這個標記時,就在收到該數據包的接口處加強該對象的氣味。四、氣味隨時間衰減關于時間的衰減的思想是基于在一個節點中,所有對象的氣味隨著時間推移都要慢慢消退;在此過程中不被加強的氣味將被衰減為0。五、按氣味濃度轉發當一個節點收到一個數據包時,根據該數據包要尋址的對象,在其所有接口中查找該對象的氣味,并把該數據包向具有該對象最濃氣味的接口轉發出去;如果所有接口都具有相等濃度的或者0濃度的該對象的氣味,則隨機選擇一個接口轉發出去。 下面通過附圖具體說明本發明。
圖1是記錄對象在每個接口留下的氣味濃度的表格的示意圖。圖2是氣味包與非氣味包的示意圖。圖3是隨機尋找過程及沿途留下氣味的方式的示意圖。圖4是兩個用戶通信按時間加強氣味的情況的示意圖。
具體實施例方式本發明是基于網絡中的移動用戶和非移動用戶、內容、服務等對象,都會在網絡中留下或者散發各自特有的氣味,使得通過追尋氣味就可以找到這些對象的思想而提出的一種氣味路由方法。網絡中的用戶相互間通信或是被動等待請求和訪問的用戶、內容、服務想要其它用戶訪問自己時,它們的信息會以自身氣味的形式在網絡中存在一定的時間,其它用戶在需要時可以通過這個氣味去尋找留下氣味的用戶、內容、服務等對象。下面從三方面具體說明本發明的實施方法
首先,對網絡中對象的命名和對象氣味的具體表示方法。網絡中使用唯一的ID對用戶、內容、服務等對象進行命名。ID是一個非固定長的字符串,唯一地標識一個用戶、內容、服務等對象;該字符串可以是地址、名字、層次化的名字、URL、URI、內容本身、內容的語義表達、月艮務描述、月艮務屬性、用戶ID、用戶特征等。該ID 區別于現在網絡的IP地址(工作于網絡層),在支持移動性等方面會有很好的效果。在網絡中,對象的氣味的具體表示方法是,如果id是一個對象的標識,則其氣味可以用一個k維向量Ovtv...,hk)來代表hj = hashj(id), for all j = 1,2, . . . , k (1-1)其中hashj(·),j = l,...,k,是k個不同的散列函數,hj是大于等于0的整數。 由于散列函數得到的結果可能會有沖突,為了使錯誤肯定率(false positive rate)小到可以接受的程度,hj的最大值,即maxlh^},比每個接口要記住的最多種氣味數大很多,j =對象的氣味在每個節點記錄的方法是,對節點中的每個接口 i都設置k個氣味表 DijljDij2j--^Dijko k維向量0^1 ,...,! )表示的是對象的氣味在氣味表中的序號,具體的說,就是對象的氣味在氣味表中的位置。即Ii1表示對象氣味在氣味表Diil中的第Ii1個位置,h2表示對象氣味在氣味表Di,2中的第Ii2個位置,...,hk表示對象氣味在氣味表Di, k中的第hk個位置。對象氣味濃度的具體值由DiijQlj)表示,j = 1,2,...,k。如圖1所示,在此圖中每個氣味的濃度值DiJhj)是一個大于等于0的數,其中h = 0,t!2 = 11,. . .,hk = 4 ;Di, Jh1) = 2. 1,Dij2(h2) = 4· 2,· · ·,Dijk(hk) = 3. 3。如果需要增加某個對象的氣味值,則可以把增加值加入到DiJhj)中。比如,當從接口 i收到來自于對象id的一個帶氣味標記的數據包時,令DiijQij)+ = d, for all j = 1,2,. · ·,k (1-2)其中,d是氣味增加值。對于不同的加強氣味情況,d的具體表達式有所不同,后面有詳細說明。其次,對象的氣味在網絡中是如何散發、留下、加強和衰減的。為方便實現這些機制,在網絡數據包中加入了一位標志(flag)。以此來區別哪些數據包是需要做氣味處理的,如圖2所示。當該標志位為1時,此包為氣味包,中間路由器節點會把srcID提取出來,由式(1-1)得到該srcID的氣味向量Qi1, Iv . . .,hk),然后用式 (1-2)在與接收到該氣味包的接口相對應的氣味表中加強其氣味;當該標志位為0時,此數據包為非氣味包,中間路由器不對它做氣味處理。標志位為1或0是由發出該數據包的對象自己決定的。具體的機制如以下。散發氣味被動等待請求和訪問的內容、服務、用戶等對象,為了方便其它用戶找到它們,會主動地、周期性地用廣播的方式在網絡中向周圍散發自己的氣味;散發的氣味的濃度隨著跳數的增加而衰減。廣播的半徑由它們自己決定,用r表示。 散發氣味的方法是,每隔一個時間周期T1 (大小由用戶自己決定),產生一個氣味廣播包,即令其頭部的flag位為1、dstID為“廣播”,同時在其頭部包含一個整數r代表允許氣味散發的半徑(即跳數,例如r = 2表示2跳),并令其TTL = r,然后把該廣播包從所有的接口廣播出去。
當某個節點從接口 i收到該廣播包時,先檢查該數據包是否第一次收到(根據其 dstID、srcID和序號SN等參數判斷)。如果不是第一次收到,則刪除該數據包;如果是第一次收到,則令d = α (^),并用下式記錄和加強其氣味DyQij)+ = α (r_TTL),for all j = 1,2,· · ·,k (1-3)其中0< α <1是給定的衰減系數。然后,令TTL減1 ;這時,如果TTL = O,則刪除該廣播包,否則把該廣播包向除了接口 i之外的所有接口廣播出去。用戶搜尋對象時留下氣味在網絡中用戶搜尋其它用戶、內容、服務等對象時會沿途留下自己的氣味。S卩,用戶、內容、服務等對象,在每次通信開始時發出的第一個請求包或者響應包中,都給出一個氣味標記(flag位為1);沿途的節點看到這個標記時,就在收到該數據包的接口處留下該對象的氣味。如圖3所示。留下氣味的方法是,當節點從接i收到一個帶有氣味標記的數據包時,從該數據包頭部找到其來源srcID,令d = 1,并用式(1-4)留下其氣味DiijQij)+ = 1,for all j = 1,2,· · .,k (1-4)兩個長時間通信的對象之間加強氣味某些對象之間會長時間的保持通信,此時對象之間隨著通信時間的加長,每隔一個時間周期T2,每個對象都在發出的某個數據包中給出一個氣味標記(flag位為1)。沿途的節點每當看到這個標記時,就在收到該數據包的接口處加強該對象的氣味。這種情況下的加強氣味機制也是通過上式實現。如圖4所示的對象A分別與B、C間有長時間通信。在通信過程中,每隔一個時間周期T2,對象A、B、C會在自己發出的某個數據包中把其頭部的氣味標識flag設為1,在沿途做加強氣味處理。氣味隨時間衰減關于時間的衰減的思想是基于在一個節點中,其它對象的氣味隨著時間推移要慢慢消退,即節點中所有接口的所有氣味表一起衰減;在此過程中不被加強的氣味將被逐漸衰減為0。氣味隨時間衰減的方法是,每隔一個時間周期T3,對所有接口的所有氣味表中的值衰減一個給定系數0 < β < 1,即令DyOij) X = β , for all i and j = 1,2,· · .,k (1-5)其中β是時間衰減因子;Τ3是一個時間間隔參數,表示每過時間間隔1~3氣味就衰減一次。再次,路由器是如何轉發數據包的。在路由器中,針對每個接口,維持一組用于轉發數據包的氣味表。當前往某目標對象的數據包到達路由器時,路由器查詢一下其為各個接口設的氣味表,通過判斷找出目標對象氣味最濃烈的接口,然后從該接口中把數據報轉發出去。如果所有接口氣味表中目標對象的氣味相等或是都為0,則隨機地選擇一個接口轉發出去。這種按氣味濃度轉發的方法,具體做法是當節點收到一個目的對象為dstID的數據包時,用式(1-1)得到其氣味標識O^h2,..,hk),然后在所有的接口中提取其氣味濃度, 即令si = min {D. .(/ζ.)}(1-6)
式(1-6)的意義是,由于散列函數可能存在沖突,因此氣味表中用不同dstID得到的散列值有可能相同,則此時氣味表中的氣味不僅會有目標對象的氣味,還會有其它對象的氣味。因此通過式(1-6)取氣味最小值,此時包含的氣味僅為目標對象的氣味。再找到含有其最濃氣味的接口/* = arg(1-7)式(1-7)的意義是,通過式(1-6)找出每個接口中目標對象的氣味值后,找出目標對象氣味值最大的接口。然后,把該數據包從目標對象氣味值最大的接口 Γ轉發出去;如果Si = C or 0,for all i,則隨機地選擇一個接口轉發出去。另外,在網絡中用戶、內容、服務等對象可以是移動的,本發明的路由方法可以很好地支持對象的移動性。對于移動對象,有如下機制當一個對象移動時,如果有數據包要發出,則給該數據包帶上氣味標記,即它發出的數據包氣味標識flag為1。如果沒有數據包要發出,則發出一個帶有氣味標記的廣播包來散發其氣味。
權利要求
1.一種氣味路由方法,其特征在于包括以下操作一、命名使用唯一的ID標識網絡中的對象,所述對象包括移動用戶和非移動用戶、內容和/或服務,其中把移動用戶和非移動用戶統稱為用戶;二、散發氣味等待請求和訪問的對象,采用廣播的方式在網絡中向周圍散發代表對象自己的氣味, 散發的氣味的濃度隨著跳數的增加而衰減,所述氣味采用一個多維向量標識;三、留下和加強氣味對象在每次通信開始時發出的第一個請求包或者響應包中,都給出一個氣味標記;此后,隨著通信時間的加長,每隔一個時間周期,每個對象都在發出的某個數據包中給出一個氣味標記;沿途的節點每當看到這個標記時,就在收到該數據包的接口處留下或加強該對象的氣味;同一個節點中的同一個接口收到來自相同對象的有氣味標記的包的次數越多, 該對象的氣味就越濃;四、氣味隨時間衰減所有氣味都隨著時間衰減;不被加強的氣味將被衰減為0 ;五、按氣味濃度轉發當一個節點收到一個數據包時,根據該數據包要尋址的對象,在其所有接口中查找該對象的氣味,并把該數據包向具有該對象最濃氣味的接口轉發出去;如果所有接口都具有相等濃度的或者0濃度的該對象的氣味,則隨機選擇一個接口轉發出去。
2.如權利要求1所述的氣味路由方法,其特征在于ID是一個非固定長的字符串,唯一地標識一個對象;該字符串采用地址、名字、層次化的名字、URL、URI、內容本身、內容的語義表達、服務描述、服務屬性、用戶ID或用戶特征。
3.如權利要求1所述的氣味路由方法,其特征在于氣味的具體表達方法是,如果id 是一個對象的標識,則其氣味用一個k維向量(h” h2, . . . , hk)來標識hj = hashj (id),for all j = 1,2,…,k (0-1)其中hash^ · ),j = 1,. . .,k,是k個不同的散列函數,hj是大于等于0的整數,其最大值比每個接口要記住的最多種氣味數大很多,j = 1,. . .,k。
4.如權利要求1所述的氣味路由方法,其特征在于每個節點記錄氣味的方法是,對節點中的每個接口 i都設置k個氣味表=Di,^Dii2,. . .,Di,k,當從接口 i收到來自于對象id的一個帶氣味標記的數據包時,令DiijQij)+ = d, for all j = 1,2,· · ·,k (0-2)
5.如權利要求4所述的氣味路由方法,其特征在于散發氣味的方法是,每隔一個時間周期,產生一個廣播包,其頭部包含一個整數r代表氣味散發的半徑,并令其TTL = r,然后把該廣播包從所有的接口廣播出去;如果某個節點從接口 i收到該廣播包,先檢查該數據包是否第一次收到;如果不是第一次收到,則刪除該數據包;如果是第一次收到,則令d = α (1Γ_ττ ,并用公式(0-2)記錄其氣味,其中0 < α < 1是給定的衰減系數;然后,令TTL減 1 ;如果TTL = 0,則刪除該廣播包,否則把該廣播包向除了接口 i之外的所有接口廣播出去。
6.如權利要求4所述的氣味路由方法,其特征在于留下和加強氣味的方法是,當節點從接口 i收到一個帶有氣味標記的數據包時,從該數據包頭部找到其來源id,令d = 1,并用公式(0-2)留下或加強其氣味。
7.如權利要求1所述的氣味路由方法,其特征在于氣味隨時間衰減的方法是,每隔一個時間周期,對所有接口的所有氣味表中的值衰減一個給定系數0< β <1,即令DiijQij) X = β , for all i and j = 1,2,· · ·,k (0-3)
8.如權利要求3所述的氣味路由方法,其特征在于按氣味濃度轉發的方法是,當節點收到一個目的地為對象id的數據包時,用公式(0-1)得到其氣味標識Oi1, h2,. . .,hk),然后在所有的接口中提取其氣味濃度,即令 =(Aj(^)I(0-4)再找到含有其最濃氣味的接口z* = argmax{ }(0-5)然后,把該數據包從接口 i*轉發出去;如果Si = c or 0,for all i,則隨機地選擇一個接口轉發出去。
9.如權利要求1所述的氣味路由方法,其特征在于對象是移動的,當一個對象移動時,如果有數據包要發出,則給該數據包帶上氣味標記;如果沒有數據包要發出,則發出一個帶有氣味標記的廣播包來散發其氣味。
全文摘要
本發明提出了一種氣味路由方法,特別適用于擁有較多移動用戶的網絡。網絡中的用戶、內容、服務等對象之間會話時會在沿途的路由器中留下和加強自己特有的“氣味”,被動等待訪問的用戶、內容、服務等對象也會在其周圍散發自己的氣味,氣味會隨著距離和時間的增加而衰減。用戶沿著氣味濃度最強的路徑找到特定的用戶、內容、服務等對象。本發明使得熱點用戶、內容、服務等對象可以形成長時間和大范圍的氣味留存,變得更容易被尋址;使得網絡能夠適應大的規模和動態變化,能夠支持用戶、內容、服務等對象的移動,能夠用做未來互聯網的基本架構。
文檔編號H04L12/18GK102413058SQ20111043971
公開日2012年4月11日 申請日期2011年12月23日 優先權日2011年12月23日
發明者余順爭 申請人:中山大學