當前位置:首頁 » 操作系統 » 逆向轉發演算法

逆向轉發演算法

發布時間: 2023-06-16 00:13:46

⑴ 逆向搜索法和爬山法的例子有哪些

逆向搜索
計算機科學術語
科普中國 | 本詞條由「科普中國」科學網路詞條編寫與應用工作項目審核
審閱專家 姚遠
逆向搜索就是從目標狀態出發進行的搜索,通常是與正向搜索同時進行(雙向搜索),如果正向搜索時新擴展的狀態是逆向搜索中出現過的,將兩段搜索路徑連接起來就是找到了一個解(通常是一種搜索步數最少的解)。如果反向搜索時新擴展的狀態是正向搜索中出現過的,則與上述一樣,也是一種最優解。逆向搜索既是一種技術,又是一種思維,廣泛應用於計算機軟體、互聯網技術、電信技術、工業通用技術及貿易經濟等領域。
中文名
逆向搜索
外文名
backward search
相對
正向搜索
學科
計算機技術
本質
逆向思維
人工智慧舉例互聯網應用舉例鐵路運輸舉例網路貿易舉例計算機軟體舉例TA說參考資料
人工智慧舉例
在人工智慧中,雙向產生式系統是一種同時應用正向和逆向搜索方式的產生式系統。在該系統中,把狀態描述和目標描述合並為一資料庫,其中狀態描述應用F規則,目標描述應用B規則。[1]比如,智能機器人為了制定行動規劃,具有自動求解問題的能力,它可用一套特殊的產生式規則在狀態空間中搜索求解。為了得到操作序列,可以從當前的狀態集出發,進行正向搜索,也可以從目標狀態集出發進行逆向搜索,也可根據目標狀態和當前狀態的差選擇合適的操作(手段-目的分析法)等。[2]
互聯網應用舉例
搜索引擎優化(SEO)的主要工作是通過了解各類搜索引擎如何抓取互聯網頁面、如何進行索引以及如何確定其對某一特定關鍵詞的搜索結果排名等技術,來對SEO網頁進行相關的優化,更改自己的網站,向排列在搜索結果前列的網站學習網站的組織方式和網頁的編寫方式,使其提高搜索引擎排名,從而提高網站訪問量,最終提升網站的銷售能力或宣傳能力的技術,達到SEO目的。沒銀這個揣摩搜索引擎的過程是種逆向搜索的過程。
鐵路運輸舉例
逆向進路搜索演算法是鐵路運輸系統中的一種重要演算法。這種演算法利用站場圖和二叉樹的相似性,通過站場信息建立二叉樹模型,但該演算法搜索二叉樹的過程與傳統的二叉樹搜索演算法的搜索方向相反,它是由目標孩子向根節點搜索,這種逆向滑大搜索不需要進行遍歷搜索,就可以快速有效地完成所有進路的搜索。即在站場圖中完成任意一對車站按鈕之間的基本進路和變更進路的搜索。為了滿足一些特殊的要求(解決車次跟蹤的問題),該搜索也能完成任意一對車站設備之間的基本進路和變更進路的搜索。
網路貿易舉例
網路目標市場逆向搜索模型的建立思路是首先從分析一個具體產品的原理、功能和用途入手,並考慮它的主要技術規范、價格等其他因素,確定此商品的樣本特徵;由以上對產品樣本特徵的分析,推測出有效市場;制定出一套搜索步驟,檢索出需要此產品的商務網站,從而找到需此產品的企業、公司等顧客。
計算機軟體舉例
逆向搜索系統,用於從輸入的子字串中檢驗來自給定列表的一個或幾個字的存在的一種系統。字的列表存儲在一存儲器陣列,其對於存儲一個子字的每一存儲器單元包括一個比較器。串被分子串。每一子串被載入幾次到比較寄存器,每次滾動移動一個子字。在每一存儲器單元,同時與輸入子串進行比較。對於每一存儲器枯讓宴單元一個邏輯電路檢測串的子字與列表字的子字的相繼匹配。只要對於列表的完整字出現匹配,則對這一字設置一信號。設置一列表匹配信號,優先權編碼器可用來輸出匹配字之一的地址(位置)。[3]一、爬山法簡介
爬山法(climbing method)是一種優化演算法,其一般從一個隨機的解開始,然後逐步找到一個最優解(局部最優)。 假定所求問題有多個參數,我們在通過爬山法逐步獲得最優解的過程中可以依次分別將某個參數的值增加或者減少一個單位。例如某個問題的解需要使用3個整數類型的參數x1、x2、x3,開始時將這三個參數設值為(2,2,-2),將x1增加/減少1,得到兩個解(1,2,-2), (3, 2,-2);將x2增加/減少1,得到兩個解(2,3, -2),(2,1, -2);將x3增加/減少1,得到兩個解(2,2,-1),(2,2,-3),這樣就得到了一個解集:
(2,2,-2), (1, 2,-2), (3, 2,-2), (2,3,-2), (2,1,-2), (2,2,-1), (2,2,-3)
從上面的解集中找到最優解,然後將這個最優解依據上面的方法再構造一個解集,再求最優解,就這樣,直到前一次的最優解和後一次的最優解相同才結束「爬山」。
二、Python實例
設方程 y = x1+x2-x3,x1是區間[-2, 5]中的整數,x2是區間[2, 6]中的整數,x3是區間[-5, 2]中的整數。使用爬山法,找到使得y取值最小的解。
代碼如下:
import random
def evaluate(x1, x2, x3):
return x1+x2-x3
if__name__== '__main__':
x_range = [ [-2, 5], [2, 6], [-5, 2] ]
best_sol = [random.randint(x_range[0][0], x_range[0][1]),
random.randint(x_range[1][0], x_range[1][1]),
random.randint(x_range[2][0], x_range[2][1])]
while True:
best_evaluate = evaluate(best_sol[0], best_sol[1], best_sol[2])
current_best_value = best_evaluate
sols = [best_sol]
for i in xrange(len(best_sol)):
if best_sol[i] > x_range[i][0]:
sols.append(best_sol[0:i] + [best_sol[i]-1] + best_sol[i+1:])
if best_sol[i] < x_range[i][1]:
sols.append(best_sol[0:i] + [best_sol[i]+1] + best_sol[i+1:])
print sols
for s in sols:
el = evaluate(s[0], s[1], s[2])
if el < best_evaluate:
best_sol = s
best_evaluate = el
if best_evaluate == current_best_value:
break
print 'best sol:', current_best_value, best_sol
某次運行結果如下:
[[0, 5, 1], [-1, 5, 1], [1, 5, 1], [0, 4, 1], [0, 6, 1], [0, 5, 0], [0, 5, 2]]
[[-1, 5, 1], [-2, 5, 1], [0, 5, 1], [-1, 4, 1], [-1, 6, 1], [-1, 5, 0], [-1, 5, 2]]
[[-2, 5, 1], [-1, 5, 1], [-2, 4, 1], [-2, 6, 1], [-2, 5, 0], [-2, 5, 2]]
[[-2, 4, 1], [-1, 4, 1], [-2, 3, 1], [-2, 5, 1], [-2, 4, 0], [-2, 4, 2]]
[[-2, 3, 1], [-1, 3, 1], [-2, 2, 1], [-2, 4, 1], [-2, 3, 0], [-2, 3, 2]]
[[-2, 2, 1], [-1, 2, 1], [-2, 3, 1], [-2, 2, 0], [-2, 2, 2]]
[[-2, 2, 2], [-1, 2, 2], [-2, 3, 2], [-2, 2, 1]]
best sol: -2 [-2, 2, 2]
可以看到,最優解是-2,對應的x1、x2、x3分別取值-2、2、2。
三、如何找到全局最優
爬山法獲取的最優解的可能是局部最優,如果要獲得更好的解,多次使用爬山演算法(需要從不同的初始解開始爬山),從多個局部最優解中找出最優解,而這個最優解也有可能是全局最優解。
另外,模擬退火演算法也是一個試圖找到全局最優解的演算法。
Python實現的Kmeans++演算法實例
1、從Kmeans說起Kmeans是一個非常基礎的聚類演算法,使用了迭代的思想,關於其原理這里不說了。下面說一下如何在matlab中使用kmeans演算法。創建7個二維的
Python中的map、rece和filter淺析
1、先看看什麼是iterable對象以內置的max函數為例子,查看其doc:printmax.__doc__max(iterable[,key=func])-valuemax(a,b,c,...[,key=func])-,returnitsla
Python中的Numpy入門教程
1、Numpy是什麼很簡單,Numpy是Python的一個科學計算的庫,提供了矩陣運算的功能,其一般與Scipy、matplotlib一起使用。其實,list已經提供了類似於矩陣的

⑵ 有沒有做演算法的人最短路徑樹SPT有哪些演算法

IP 組播技術實現了 IP 網路中點到多點的高效數據傳送。因為組播能夠有效地節約網路帶寬、降低網路負載,所以在實時數據傳送、多媒體會議、數據拷貝、游戲和模擬等諸多方面都有廣泛的應用。本文介紹了組播的基本概念和目前通用的組播協議,以及組播組網的基本方案;並針對組播業務需求和運營過程中面臨的問題,提出了電信級的可運營、可管理的「受控組播」解決方案,包括信源管理、用戶管理和組播安全控制等方面的內容。

關鍵詞
組播 運營管理 受控組播 IGMP DVMRP PIM-SM PIM-DM MBGP MSDP

1 組播概述
1.1組播技術的產生原因
傳統的IP通信有兩種方式:第一種是在一台源 IP 主機和一台目的 IP 主機之間進行,即單播(unicast);第二種是在一台源 IP 主機和網路中所有其它的 IP 主機之間進行,即廣播(broadcast)。如果要將信息發送給網路中的多個主機而非所有主機,則要麼採用廣播方式,要麼由源主機分別向網路中的多台目標主機以單播方式發送 IP 包。採用廣播方式實現時,不僅會將信息發送給不需要的主機而浪費帶寬,也可能由於路由回環引起嚴重的廣播風暴;採用單播方式實現時,由於 IP 包的重復發送會白白浪費掉大量帶寬,也增加了伺服器的負載。所以,傳統的單播和廣播通信方式不能有效地解決單點發送多點接收的問題。

IP 組播是指在 IP 網路中將數據包以盡力傳送(best-effort)的形式發送到網路中的某個確定節點子集,這個子集稱為組播組(multicast group)。IP 組播的基本思想是,源主機只發送一份數據,這份數據中的目的地址為組播組地址;組播組中的所有接收者都可接收到同樣的數據拷貝,並且只有組播組內的主機(目標主機)可以接收該數據,網路中其它主機不能收到。組播組用 D 類 IP 地址(224.0.0.0 ~ 239.255.255.255)來標識。

1.2組播技術的市場前景
IP 組播技術有效地解決了單點發送多點接收的問題,實現了 IP 網路中點到多點的高效數據傳送,能夠大量節約網路帶寬、降低網路負載。作為一種與單播和廣播並列的通信方式,組播的意義不僅在於此。更重要的是,可以利用網路的組播特性方便地提供一些新的增值業務,包括在線直播、網路電視、遠程教育、遠程醫療、網路電台、實時視頻會議等互聯網的信息服務領域。

組播從 1988 年提出到現在已經經歷了十幾年的發展,許多國際組織對組播的技術研究和業務開展進行了大量的工作。隨著互聯網建設的迅猛發展和新業務的不斷推出,組播也必將走向成熟。盡管目前端到端的全球組播業務還未大規模開展起來,但是具備組播能力的網路數目在增加。一些主要的 ISP 已運行域間組播路由協議進行組播路由的交換,形成組播對等體。在 IP 網路中多媒體業務日漸增多的情況下,組播有著巨大的市場潛力,組播業務也將逐漸得到推廣和普及。

2 組播技術的基本原理
組播技術涵蓋的內容相當豐富,從地址分配、組成員管理,到組播報文轉發、路由建立、可靠性等諸多方面。下面首先介紹組播協議體系的整體結構,之後從組播地址、組播成員管理、組播報文轉發、域內組播路由和域間組播路由等幾個方面介紹有代表性的協議和機制。

2.1組播協議體系結構
根據協議的作用范圍,組播協議分為主機-路由器之間的協議,即組播成員管理協議,以及路由器-路由器之間協議,主要是各種路由協議。組成員關系協議包括 IGMP(互連網組管理協議);組播路由協議又分為域內組播路由協議及域間組播路由協議兩類。域內組播路由協議包括 PIM-SM、PIM-DM、DVMRP 等協議,域間組播路由協議包括 MBGP、MSDP 等協議。同時為了有效抑制組播數據在二層網路中的擴散,引入了 IGMP Snooping 等二層組播協議。

通過 IGMP 和二層組播協議,在路由器和交換機中建立起直聯網段內的組成員關系信息,具體地說,就是哪個介面下有哪個組播組的成員。域內組播路由協議根據 IGMP 維護的這些組播組成員關系信息,運用一定的組播路由演算法構造組播分發樹,在路由器中建立組播路由狀態,路由器根據這些狀態進行組播數據包轉發。域間組播路由協議根據網路中配置的域間組播路由策略,在各自治系統(AS,Autonomous System)間發布具有組播能力的路由信息以及組播源信息,使組播數據能在域間進行轉發。

2.2組播地址機制
2.2.1組播IP地址
IP組播地址用於標識一個 IP 組播組。IANA 把 D 類地址空間分配給組播使用,范圍從 224.0.0.0 到 239.255.255.255。如下圖所示(二進製表示),IP 組播地址前四位均為「1110」。

2.2.2組播地址的劃分
整個 IP 組播地址的空間劃分如下圖所示。

其中:

224.0.0.0 到 224.0.0.255 地址范圍被 IANA 預留,地址 224.0.0.0 保留不做分配,其它地址供路由協議及拓撲查找和維護協議使用。該范圍內的地址屬於局部范疇,不論生存時間欄位(TTL)值是多少,都不會被路由器轉發;

224.0.1.0 到 238.255.255.255 地址范圍作為用戶組播地址,在全網范圍內有效。其中233/8 為 GLOP 地址。GLOP 是一種自治系統之間的組播地址分配機制,將 AS 號直接填入組播地址的中間兩個位元組中,每個自治系統都可以得到 255 個組播地址;

239.0.0.0 到 239.255.255.255 地址范圍為本地管理組播地址(***istratively scoped addresses),僅在特定的本地范圍內有效。

當 IP 層收到組播數據報文時,根據組播目的地址查找組播轉發表,對報文進行轉發。

2.2.3IP 組播地址到 MAC 地址的映射
IANA 將 MAC 地址范圍 01:00:5E:00:00:00 ~ 01:00:5E:7F:FF:FF 分配給組播使用,這就要求將28位的 IP 組播地址空間映射到 23 位的 MAC 地址空間中,具體的映射方法是將組播地址中的低 23 位放入 MAC 地址的低 23 位,如下圖所示。

由於 IP 組播地址的後 28 位中只有 23 位被映射到 MAC 地址,這樣會有 32 個 IP 組播地址映射到同一 MAC 地址上。

2.3組播成員管理
2.3.1IGMP ( Internet Group Management Protocol )
IGMP 協議運行於主機和與主機直接相連的組播路由器之間,IGMP 實現的功能是雙向的:一方面,通過 IGMP 協議,主機通知本地路由器希望加入並接收某個特定組播組的信息;另一方面,路由器通過 IGMP 協議周期性地查詢區域網內某個已知組的成員是否處於活動狀態(即該網段是否仍有屬於某個組播組的成員),實現所連網路組成員關系的收集與維護。通過 IGMP,在路由器中記錄的信息是某個組播組是否在本地有組成員,而不是組播組與主機之間的對應關系。

到目前為止,IGMP 有三個版本。IGMPv1(RFC1112)中定義了基本的組成員查詢和報告過程;目前通用的是 IGMPv2,由 RFC2236 定義,在 IGMPv1 的基礎上添加了組成員快速離開的機制;IGMPv3 中增加的主要功能是成員可以指定接收或指定不接收某些組播源的報文。以下著重介紹 IGMPv2 協議的原理。

IGMPv2 的原理如下圖所示:

當同一個網段內有多個組播路由器時,IGMPv2 通過查詢器選舉機制從中選舉出唯一的查詢器。查詢器周期性地發送通用組查詢消息進行成員關系查詢;主機發送報告消息來響應查詢。主機發送報告消息的時間有隨機性,當檢測到同一網段內有其它成員發送同樣的消息時,則抑制自己的響應報文。如果有新的主機要加入組播組,不必等待查詢器的查詢消息,而是主動發送報告消息。當要離開組播組時,主機發送離開組消息;收到離開組消息後,查詢器發送特定組查詢消息來確定是否所有組成員都已離開。對於作為組成員的路由器而言,其行為和普通的主機一樣,響應其它路由器的查詢。

通過上述機制,在組播路由器里建立起一張表,其中記錄了路由器的各個介面所對應的子網上都有哪些組的成員。當路由器接收到某個組 G 的數據報文後,只向那些有 G 的成員的介面上轉發數據報文。至於數據報文在路由器之間如何轉發則由路由協議決定,不是 IGMP 協議的功能。

2.3.2二層環境中組成員管理的實現
IGMP 組播成員管理機制是針對第三層設計的,在第三層,路由器可以對組播報文的轉發進行控制,只要進行適當的介面配置和對 TTL 值的檢測就可以了。但是在很多情況下,組播報文要不可避免地經過一些二層交換設備,尤其是在區域網環境里。如果不對二層設備進行相應的配置,則組播報文就會轉發給二層交換設備的所有介面,這顯然會浪費大量的系統資源。IGMP 監聽(IGMP Snooping)可以解決這個問題。

IGMP 監聽的工作原理如下:

主機發出 IGMP 成員報告消息,這個消息是給路由器的;在 IGMP 成員報告經過交換機時,交換機對這個消息進行監聽並記錄下來,形成組成員和介面的對應關系;

交換機在收到組播數據報文時,根據組成員和介面的對應關系,僅向具有組成員的介面轉發組播報文。

IGMP 監聽可以解決二層環境中的組播報文泛濫問題,但要求交換機具有提取第三層信息的功能;其次,要求交換機對所有的組播報文進行監聽和解讀,這會產生很多的無效工作;此外,組播報文監聽和解讀工作也會佔用大量的 CPU 處理時間。

2.4組播報文轉發
與單播報文的轉發相比,組播報文的轉發相對復雜。一方面,組播路由類型與單播路由不同,是點到多點的一棵路由樹;另一方面組播報文轉發的處理過程也有所不同。

2.4.1組播路由的分類
組播路由可以分為兩大類:信源樹(Source Tree)和共享樹(Shared Tree)。信源樹是指以組播源作為樹根,將組播源到每一個接收者的最短路徑結合起來構成的轉發樹。由於信源樹使用的是從組播源到接收者的最短路徑,因此也稱為最短路徑樹(shor*** path tree,SPT)。對於某個組,網路要為任何一個向該組發送報文的組播源建立一棵樹。 共享樹以某個路由器作為路由樹的樹根,該路由器稱為匯集點(Rendezvous Point,RP),將 RP 到所有接收者的最短路結合起來構成轉發樹。使用共享樹時,對應某個組,網路中只有一棵樹。所有的組播源和接收者都使用這棵樹來收發報文,組播源先向樹根發送數據報文,之後報文又向下轉發到達所有的接收者。

信源樹的優點是能構造組播源和接收者之間的最短路徑,使端到端的延遲達到最小;但是付出的代價是,在路由器中必須為每個組播源保存路由信息,這樣會佔用大量的系統資源,路由表的規模也比較大。共享樹的最大優點是路由器中保留的狀態數可以很少,缺點是組播源發出的報文要先經過 RP,再到達接收者,經由的路徑通常並非最短,而且對 RP 的可靠性和處理能力要求很高。

2.4.2組播報文轉發過程
單播報文的轉發過程中,路由器並不關心組播源地址,只關心報文中的目的地址,通過目的地址決定向哪個介面轉發。在組播中,報文是發送給一組接收者的,這些接收者用一個邏輯地址標識。路由器在接收到報文後,必須根據源和目的地址確定出上游(指向組播源)和下遊方向,把報文沿著遠離組播源的方向進行轉發。這個過程稱作 RPF(Reverse Path Forwarding,逆向路徑轉發)。

RPF 執行過程中會用到原有的單播路由表以確定上游和下游的鄰接結點。只有當報文是從上游鄰接結點對應的介面(稱作 RPF 介面)到達時,才向下游轉發。RPF 的作用除了可以正確地按照組播路由的配置轉發報文外,還能避免由於各種原因造成的環路,環路避免在組播路由中是一個非常重要的問題。RPF 的主體是 RPF 檢查,路由器收到組播報文後,先對報文進行 RPF 檢查,只有檢查通過才轉發,否則丟棄。RPF 檢查過程如下:

1)路由器在單播路由表中查找組播源或 RP 對應的 RPF 介面(當使用信源樹時,查找組播源對應的 RPF 介面,使用共享樹時查找 RP 對應的 RPF 介面),某個地址對應的 RPF 介面是指從路由器向該地址發送報文時的出介面;

2)如果組播報文是從 RPF 介面接收下來的,則 RPF 檢查通過,報文向下游介面轉發;

3)否則,丟棄該報文。

2.5域內組播路由協議
與單播路由一樣,組播路由也分為域內和域間兩大類。域內組播路由目前已經討論的相當成熟,在眾多的域內路由協議中,DVMRP(距離矢量組播路由協議)、PIM-DM(密集模式協議無關組播)和PIM-SM(稀疏模式協議無關組播)是目前應用最多的協議。

2.5.1DVMRP(Distance Vector Multicast Routing Protocol)
DVMRP 是第一個在 MBONE 上得到普遍使用的組播路由協議,它在 RIP 協議的基礎上擴充了支持組播的功能。DVMRP 協議首先通過發送探測消息來進行鄰居發現,之後通過路由交換來進行單播尋徑和確定上下游依賴關系。

DVMRP 採用逆向路徑組播(RPM)演算法進行組播轉發。當組播源第一次發送組播報文時,使用截斷逆向路徑組播(truncated RPM)演算法沿著源的組播分發樹向下轉發組播報文。當葉子路由器不再需要組播數據包時,它朝著組播源發送剪枝消息,對組播分發樹進行剪枝,藉此除不必要的通信量。上游路由器收到剪枝消息後將收到此消息的介面置為剪枝狀態,停止轉發數據。剪枝狀態關聯著超時定時器,當定時器超時時,剪枝狀態又重新變為轉發狀態,組播數據再次沿著這些分支流下。另外,當剪枝區域內出現了組播組成員時,為了減少反應時間,下游不必等待上游剪枝狀態超時,而是主動向上游發送嫁接報文,以使剪枝狀態變為轉發狀態。可見,DVMRP 是由數據觸發驅動,建立組播路由表,而路由樹的建立過程可以概括為「擴散與剪枝」(Broadcast and Prune)。轉發特點可以概括為「被動接受,主動退出」。

另外,在多路訪問網路中,當有兩個或多個的組播路由器時,網路上可能會重復轉發包。為了防止這種情況出現,在多路訪問網路上,DVMRP 為每個源選擇了一個唯一的轉發器。

2.5.2PIM-DM(Protocol Independent Multicast Dense Mode)
在 PIM-DM 域中,運行 PIM-DM 協議的路由器周期性的發送 Hello 消息,發現鄰接的 PIM 路由器,進行葉子網路、葉子路由器的判斷,並且負責在多路訪問網路中選舉指定路由器(DR)。

PIM-DM 協議使用下面的假設:當組播源開始發送組播數據時,域內所有的網路節點都需要接收數據,因此採用「擴散-剪枝」的方式進行組播數據包的轉發。組播源開始發送數據時,沿途路由器向除組播源對應的 RPF 介面之外的所有介面轉發組播數據包。這樣,PIM-DM 域中所有網路節點都會收到這些組播數據包。為了完成組播轉發,沿途的路由器需要為組 G 和源 S 創建相應的組播路由項 (S, G)。 (S, G) 路由項包括組播源地址、組播組地址、入介面、出介面列表、定時器和標志等。

如果網路中某區域沒有組播組成員,該區域內的路由器會發送剪枝消息,將通往該區域的轉發介面剪枝,並且建立剪枝狀態。剪枝狀態對應著超時定時器。當定時器超時時,剪枝狀態又重新變為轉發狀態,組播數據得以再次沿著這些分支流下。另外,剪枝狀態包含組播源和組播組的信息。當剪枝區域內出現了組播組成員時,為了減少反應時間,協議不必等待上游剪枝狀態超時,而是主動向上游發送嫁接報文,以使剪枝狀態變為轉發狀態。

2.5.3PIM-SM(Protocol Independent Multicast Sparse Mode)
在 PIM-SM 域中,運行 PIM-SM 協議的路由器周期性的發送 Hello 消息,用以發現鄰接的 PIM 路由器,並且負責在多路訪問網路中進行 DR 的選舉。這里,DR 負責為與其直連的組成員向組播樹根節點的方向發送「加入/剪枝」消息,或是將直連組播源的數據發向組播分發樹。

PIM-SM 通過建立組播分發樹來進行組播數據包的轉發。組播分發樹分為兩種:以組 G 的 RP 為根的共享樹和以組播源為根的最短路徑樹。PIM-SM 通過顯式的加入/剪枝機制來完成組播分發樹的建立與維護。

PIM-SM 中還涉及到 RP 的選擇機制。在 PIM-SM 域內配置了一個或多個候選自舉路由器(Candidate-BSR)。使用一定的規則從中選出自舉路由器 (BSR) 。PIM-SM 域中還配置有候選 RP 路由器(Candidate-RP),這些候選 RP 將包含了它們地址及可以服務的組播組等信息的報文單播發送給自舉路由器,再由 BSR 定期生成包括一系列候選 RP 以及相應的組地址的「自舉」消息。「自舉」消息在整個域中逐跳發送。路由器接收並保存這些「自舉」消息。若 DR 從直連主機收到了 IGMP 加入報文後,如果它沒有這個組的路由項,將使用 hash 演算法將組地址映射到一個候選 RP。然後朝 RP 方向逐跳組播「加入/剪枝」消息。若 DR 從直連主機收到組播數據包,如果它沒有這個組的路由項,也將使用 hash 演算法將組地址映射到一個候選 RP,然後將組播數據封裝在注冊消息中單播發送到 RP。

在多路訪問網路中,PIM-SM 還引入了以下機制:使用斷言機制選舉唯一的轉發者,以防向同一網段重復轉發組播數據包;使用加入/剪枝抑制機制減少冗餘的加入/剪枝消息;使用剪枝否決機制否決不應有的剪枝行為。

2.6域間組播路由協議
域間組播目前仍然處於研究和試驗階段,目前比較成型的解決方案是下面三個協議的組合:

MBGP(組播邊界網關協議),用於在自治域之間交換組播路由信息;MSDP(組播信源發現協議),用於在 ISP 之間交換組播信源信息;PIM-SM,用作域內的組播路由協議。

PIM-SM 前文已經介紹,這里重點介紹 MBGP 和 MSDP,以及 PIM-SM / MBGP / MSDP 組合方案的工作過程。

2.6.1MBGP(MultiProtocol Border Gateway Protocol)
域間路由的首要問題是路由信息(或者說可達信息)如何在自治系統之間傳遞,由於不同的 AS 可能屬於不同的運營商,因此除了距離信息外,域間路由信息必須包含運營商的策略,這是與域內路由信息的不同之處。

目前使用最多的域間單播路由協議是 BGP-4。為了實現域間組播路由信息的傳遞,必須對 BGP 進行改動,因為組播的網路拓撲和單播拓撲有可能不同。這里既有物理方面的原因,也有策略方面的原因。網路中的一些路由器可能只支持單播不支持組播,也可能按照策略配置不轉發組播報文。為了構造域間組播路由樹,除了要知道單播路由信息外,還要知道網路中哪些部分是支持組播的,即組播的網路拓撲情況。簡而言之,域間的組播路由信息交換協議應該滿足下面的要求:

能對單播和組播拓撲進行區分;

有一套穩定的對等和策略控制方法。

BGP-4 已經滿足後一個條件,而且已經被證明是一個有效的、穩定的單播域間路由協議,因此合理的解決方案是對 BGP-4 協議進行增強和擴展,而不是構建一套全新的協議。在 RFC2858 中規定了對 BGP 進行多協議擴展的方法,擴展後的 BGP 協議(MBGP,也寫作 BGP-4+)不僅能攜帶 IPv4 單播路由信息,也能攜帶其它網路層協議(如組播、IPv6 等)的路由信息,攜帶組播路由信息只是其中一個擴展功能。

有了 MBGP 之後,單播和組播路由信息可以通過同一個進程交換,但是存放在不同的路由表裡。由於 MBGP 是 BGP-4 協議的一個增強版,因此 BGP-4 所支持的常見的策略和配置方法都可以用到組播里。

2.6.2MSDP(Multicast Source Discovery Protocol)
對於 ISP 來說,不希望依靠競爭對手的 RP 轉發組播流量,但同時又要求無論信源的 RP 在哪裡,都能從信源獲取信息發給自己內部的成員。MSDP 就是為了解決這個問題而提出的。在 MSDP 里使用的是域間信源樹而不是公共樹,而且要求域內組播路由協議必須是 PIM-SM。

在 MSDP 中,某個域內的 RP 使用 TCP 連接與其它域內的 RP 建立 MSDP 對等關系,用這些對等關系交換信源信息。如果本地的接收者要接收其它域的信源發出的報文,則使用與 PIM-SM 中同樣的方法構造信源樹。

PIM-SM / MBGP / MSDP 組合方案實際上是 PIM-SM 協議在域間環境下的擴展。如果把整個 PIM-SM / MBGP / MSDP 組合方案機制看作 PIM-SM,則所有域的 RP 的集合就是 PIM-SM 協議中的「RP」,而 PIM-SM / MBGP / MSDP 無非是增加了兩個過程:

1、信源信息在 RP 集合中的泛濫,以實現信源和成員在「RP」點的會合;

2、域間組播路由信息的傳遞,目的是保證組播報文在域間的順利轉發。在上述過程中,AS3 中的 RP 和收端向 AS2 中的遠端建立逆向路徑的過程中都需要用到 MBGP 傳遞的組播拓撲信息。

⑶ 山東大學的王小雲真的研究出了MD5的逆向演算法嗎

MD5是不可能逆向的。王教授的碰撞法是利用了MD5或者SHA1演算法的一個特性,根據MD5和SHA1等Hash演算法的特點,因為他們是任意長度的字元串變成固定長度的摘要信息。那麼這里就有可能發生一個問題,就是不同的字元串在理論上是有可能產生相同的摘要信息。王教授所謂的碰撞法,碰撞的就是不同的字元串所產生的摘要信息是一樣的那些字元串。因此得名碰撞法。 碰撞就是體現在這里。沒有什麼其它的傳神的東西了。根據SHA1和MD5等Hash演算法,在設計時候,設計這個演算法的人認為不同的字元串要產生相同結果的摘要信息的可能性幾乎為零。而王教授則證明了SHA1和MD5等Hash演算法產生的摘要信息規則是可以在比較短時間內被破解的。這樣一來,原始數據的 Integrity 就被打破了。 所謂的破解,也就是體現在這里。至於破解工具,下面的地址提供一些免費的破解服務,能破解一些簡單的密碼,其實都是採用字典或暴力破解。 www.cmd5.com www.xmd5.org我有時去破解一些常用的密碼,有一定的成功率

⑷ 著名的可逆的加密演算法有哪些

1,DES(Data Encryption Standard):對稱演算法,數據加密標准,速度較快,適用於加密大量數據的場合。

2,3DES(Triple DES):是基於DES的對稱演算法,對一塊數據用三個不同的密鑰進行三次加密,強度更高。

3,RC2和RC4:對稱演算法,用變長密鑰對大量數據進行加密,比 DES 快。

4,IDEA(International Data Encryption Algorithm)國際數據加密演算法,使用 128 位密鑰提供非常強的安全性。

5,RSA:由 RSA 公司發明,是一個支持變長密鑰的公共密鑰演算法,需要加密的文件塊的長度也是可變的,非對稱演算法。

(4)逆向轉發演算法擴展閱讀:

據記載,公元前400年,古希臘人發明了置換密碼。1881年世界上的第一個電話保密專利出現。在第二次世界大戰期間,德國軍方啟用「恩尼格瑪」密碼機,密碼學在戰爭中起著非常重要的作用。

隨著信息化和數字化社會的發展,人們對信息安全和保密的重要性認識不斷提高,於是在1997年,美國國家標准局公布實施了「美國數據加密標准(DES)」,民間力量開始全面介入密碼學的研究和應用中,採用的加密演算法有DES、RSA、SHA等。隨著對加密強度需求的不斷提高,近期又出現了AES、ECC等。

使用密碼學可以達到以下目的:

保密性:防止用戶的標識或數據被讀取。

數據完整性:防止數據被更改。

身份驗證:確保數據發自特定的一方。

參考資料來源:網路-加密演算法

⑸ 透明網橋的逆向學習法

透明網橋採用的演算法是逆向學習法(backward learning)。網橋按混雜的方式工作,故它能看見所連接的任一LAN上傳送的幀。查看源地址即可知道在哪個LAN上可訪問哪台機器,於是在散列表中添上一項。
當計算機和網橋加電、斷電或遷移時,網路的拓撲結構會隨之改變。為了處理動態拓撲問題,每當增加散列表項時,均在該項中註明幀的到達時間。每當目的地已在表中的幀到達時,將以當前時間更新該項。這樣,從表中每項的時間即可知道該機器最後幀到來的時間。網橋中有一個進程定期地掃描散列表,清除時間早於當前時間若干分鍾的全部表項。於是,如果從LAN上取下一台計算機,並在別處重新連到LAN上的話,那麼在幾分鍾內,它即可重新開始正常工作而無須人工干預。這個演算法同時也意味著,如果機器在幾分鍾內無動作,那麼發給它的幀將不得不散發,一直到它自己發送出一幀為止。
到達幀的路由選擇過程取決於發送的LAN(源LAN)和目的地所在的LAN(目的LAN),如下所示:
1、如果源LAN和目的LAN相同,則丟棄該幀。
2、如果源LAN和目的LAN不同,則轉發該幀。
3、如果目的LAN未知,則進行擴散。
為了提高可靠性,有人在LAN之間設置了並行的兩個或多個網橋,但是,這種配置引起了另外一些問題,因為在拓撲結構中產生了迴路,可能引發無限循環。

⑹ 逆向工程是怎麼實現的能舉例嗎

逆向工程(又名反向工程,Reverse Engineering-RE)是對產品設計過程的一種描述。在2007年初,我國相關的法律為逆向工程正名,承認了逆向技術用於學習研究的合法性。
在工程技術人員的一般概念中,產品設計過程是一個從設計到產品的過程,即設計人員首先在大腦中構思產品的外形、性能和大致的技術參數等,然後在詳細設計階段完成各類數據模型,最終將這個模型轉入到研發流程中,完成產品的整個設計研發周期。這樣的產品設計過程我們稱為「正向設計」過程。逆向工程產品設計可以認為是一個從產品到設計的過程。簡單地說,逆向工程產品設計就是根據已經存在的產品,反向推出產品設計數據(包括各類設計圖或數據模型)的過程。從這個意義上說,逆向工程在工業設計中的應用已經很久了。比如早期的船舶工業中常用的船體放樣設計就是逆向工程的很好實例。
隨著計算機技術在各個領域的廣泛應用,特別是軟體開發技術的迅猛發展,基於某個軟體,以反匯編閱讀源碼的方式去推斷其數據結構、體系結構和程序設計信息成為軟體逆向工程技術關注的主要對象。軟體逆向技術的目的是用來研究和學習先進的技術,特別是當手裡沒有合適的文檔資料,而你又很需要實現某個軟體的功能的時候。也正因為這樣,很多軟體為了壟斷技術,在軟體安裝之前,要求用戶同意不去逆向研究。
逆向工程的實施過程是多領域、多學科的協同過程。

熱點內容
python的total 發布:2025-03-23 08:35:08 瀏覽:473
linux個shell 發布:2025-03-23 08:26:02 瀏覽:680
oraclelinux監聽配置 發布:2025-03-23 08:07:48 瀏覽:966
鎖頻密碼忘了怎麼辦 發布:2025-03-23 08:05:30 瀏覽:739
如何查詢公會伺服器 發布:2025-03-23 07:50:24 瀏覽:768
老電腦卡頓如何升級配置 發布:2025-03-23 07:48:08 瀏覽:979
伺服器tnt禁了怎麼炸區塊 發布:2025-03-23 07:43:48 瀏覽:687
線上兒童編程哪家好 發布:2025-03-23 07:43:42 瀏覽:923
如何配置多肉的圖片 發布:2025-03-23 07:38:37 瀏覽:805
千尋位置手簿哪裡輸入賬號密碼 發布:2025-03-23 07:34:50 瀏覽:419