當前位置:首頁 » 操作系統 » chord演算法

chord演算法

發布時間: 2022-12-08 09:37:11

❶ 什麼是P2P軟體目前那種P2P軟體好用而且病毒少

P2P普及系列之一

拓撲結構是指分布式系統中各個計算單元之間的物理或邏輯的互聯關系,結點之間的拓撲結構一直是確定系統類型的重要依據。目前互聯網路中廣泛使用集中式、層次式等拓撲結構,Interne本身是世界上最大的非集中式的互聯網路,但是九十年代所建立的一些網路應用系統卻是完全的集中式的系統、很多Web應用都是運行在集中式的伺服器系統上。集中式拓撲結構系統目前面臨著過量存儲負載、Dos攻擊等一些難以解決的問題。

P2P系統一般要構造一個非集中式的拓撲結構,在構造過程中需要解決系統中所包含的大量結點如何命名、組織以及確定結點的加入/離開方式、出錯恢復等問題。

根據拓撲結構的關系可以將P2P研究分為4種形式:中心化拓撲(Centralized Topology);全分布式非結構化拓撲(Decentralized Unstructured Topology);全分布式結構化拓撲(Decentralized Structured Topology,也稱作DHT網路)和半分布式拓撲(Partially Decentralized Topology)。

其中,中心化拓撲最大的優點是維護簡單發現效率高。由於資源的發現依賴中心化的目錄系統,發現演算法靈活高效並能夠實現復雜查詢。最大的問題與傳統客戶機/伺服器結構類似,容易造成單點故障,訪問的「熱點」現象和法律等相關問題,這是第一代P2P網路採用的結構模式,經典案例就是著名的MP3共享軟體Napster。

Napster是最早出現的P2P系統之一,並在短期內迅速成長起來。Napster實質上並非是純粹的P2P系統,它通過一個中央伺服器保存所有Napster用戶上傳的音樂文件索引和存放位置的信息。當某個用戶需要某個音樂文件時,首先連接到Napster伺服器,在伺服器進行檢索,並由伺服器返回存有該文件的用戶信息;再由請求者直接連到文件的所有者傳輸文件。

Napster首先實現了文件查詢與文件傳輸的分離,有效地節省了中央伺服器的帶寬消耗,減少了系統的文件傳輸延時。這種方式最大的隱患在中央伺服器上,如果該伺服器失效,整個系統都會癱瘓。當用戶數量增加到105或者更高時,Napster的系統性能會大大下降。另一個問題在於安全性上,Napster並沒有提供有效的安全機制。

在Napster模型中,一群高性能的中央伺服器保存著網路中所有活動對等計算機共享資源的目錄信息。當需要查詢某個文件時,對等機會向一台中央伺服器發出文件查詢請求。中央伺服器進行相應的檢索和查詢後,會返回符合查詢要求的對等機地址信息列表。查詢發起對等機接收到應答後,會根據網路流量和延遲等信息進行選擇,和合適的對等機建立連接,並開始文件傳輸。

這種對等網路模型存在很多問題,主要表現為:
(1)中央伺服器的癱瘓容易導致整個網路的崩饋,可靠性和安全性較低。
(2)隨著網路規模的擴大,對中央索引伺服器進行維護和更新的費用將急劇增加,所需成本過高。
(3)中央伺服器的存在引起共享資源在版權問題上的糾紛,並因此被攻擊為非純粹意義上的P2P網路模型。對小型網路而言,集中目錄式模型在管理和控制方面佔一定優勢。但鑒於其存在的種種缺陷,該模型並不適合大型網路應用。

P2P普及系列之二

Pastry是微軟研究院提出的可擴展的分布式對象定位和路由協議,可用於構建大規模的P2P系統。在Pastry中,每個結點分配一個128位的結點標識符號(nodeID) ,所有的結點標識符形成了一個環形的nodeID空間,范圍從0到2128 - 1 ,結點加入系統時通過散列結點IP地址在128位nodeID空間中隨機分配。

在MIT,開展了多個與P2P相關的研究項目:Chord,GRID和RON。Chord項目的目標是提供一個適合於P2P環境的分布式資源發現服務,它通過使用DHT技術使得發現指定對象只需要維護O(logN)長度的路由表。

在DHT技術中,網路結點按照一定的方式分配一個唯一結點標識符(Node ID) ,資源對象通過散列運算產生一個唯一的資源標識符(Object ID) ,且該資源將存儲在結點ID與之相等或者相近的結點上。需要查找該資源時,採用同樣的方法可定位到存儲該資源的結點。因此,Chord的主要貢獻是提出了一個分布式查找協議,該協議可將指定的關鍵字(Key) 映射到對應的結點(Node) 。從演算法來看,Chord是相容散列演算法的變體。MIT GRID和RON項目則提出了在分布式廣域網中實施查找資源的系統框架。

T&T ACIRI中心的CAN(Content Addressable Networks) 項目獨特之處在於採用多維的標識符空間來實現分布式散列演算法。CAN將所有結點映射到一個n維的笛卡爾空間中,並為每個結點盡可能均勻的分配一塊區域。CAN採用的散列函數通過對(key, value) 對中的key進行散列運算,得到笛卡爾空間中的一個點,並將(key, value) 對存儲在擁有該點所在區域的結點內。CAN採用的路由演算法相當直接和簡單,知道目標點的坐標後,就將請求傳給當前結點四鄰中坐標最接近目標點的結點。CAN是一個具有良好可擴展性的系統,給定N個結點,系統維數為d,則路由路徑長度為O(n1/d) ,每結點維護的路由表信息和網路規模無關為O(d) 。

DHT類結構最大的問題是DHT的維護機制較為復雜,尤其是結點頻繁加入退出造成的網路波動(Churn)會極大增加DHT的維護代價。DHT所面臨的另外一個問題是DHT僅支持精確關鍵詞匹配查詢,無法支持內容/語義等復雜查詢。

半分布式結構(有的文獻稱作 Hybrid Structure)吸取了中心化結構和全分布式非結構化拓撲的優點,選擇性能較高(處理、存儲、帶寬等方面性能)的結點作為超級點(英文文獻中多稱作:SuperNodes, Hubs),在各個超級點上存儲了系統中其他部分結點的信息,發現演算法僅在超級點之間轉發,超級點再將查詢請求轉發給適當的葉子結點。半分布式結構也是一個層次式結構,超級點之間構成一個高速轉發層,超級點和所負責的普通結點構成若干層次。最典型的案例就是KaZaa。

KaZaa是現在全世界流行的幾款p2p軟體之一。根據CA公司統計,全球KaZaa的下載量超過2.5億次。使用KaZaa軟體進行文件傳輸消耗了互聯網40%的帶寬。之所以它如此的成功,是因為它結合了Napster和Gnutella共同的優點。從結構 上來說,它使用了Gnutella的全分布式的結構,這樣可以是系統更好的擴展,因為它無需中央索引伺服器存儲文件名,它是自動的把性能好的機器成為SuperNode,它存儲著離它最近的葉子節點的文件信息,這些SuperNode,再連通起來形成一個Overlay Network. 由於SuperNode的索引功能,使搜索效率大大提高。

P2P普及系列之三

全分布非結構化網路在重疊網路(overlay)採用了隨機圖的組織方式,結點度數服從"Power-law"[a][b]規律,從而能夠較快發現目的結點,面對網路的動態變化體現了較好的容錯能力,因此具有較好的可用性。同時可以支持復雜查詢,如帶有規則表達式的多關鍵詞查詢,模糊查詢等,最典型的案例是Gnutella。

Gnutella是一個P2P文件共享系統,它和Napster最大的區別在於Gnutella是純粹的P2P系統,沒有索引伺服器,它採用了基於完全隨機圖的洪泛(Flooding)發現和隨機轉發(Random Walker)機制。為了控制搜索消息的傳輸,通過TTL (Time To Live)的減值來實現。具體協議參照〔Gnutella協議中文版〕

在Gnutella分布式對等網路模型N中,每一個聯網計算機在功能上都是對等的,既是客戶機同時又是伺服器,所以被稱為對等機(Servent,Server+Client的組合)。

隨著聯網節點的不斷增多,網路規模不斷擴大,通過這種洪泛方式定位對等點的方法將造成網路流量急劇增加,從而導致網路中部分低帶寬節點因網路資源過載而失效。所以在初期的Gnutella網路中,存在比較嚴重的分區,斷鏈現象。也就是說,一個查詢訪問只能在網路的很小一部分進行,因此網路的可擴展性不好。所以,解決Gnutella網路的可擴展性對該網路的進一步發展至關重要。

由於沒有確定拓撲結構的支持,非結構化網路無法保證資源發現的效率。即使需要查找的目的結點存在發現也有可能失敗。由於採用TTL(Time-to-Live)、洪泛(Flooding)、隨機漫步或有選擇轉發演算法,因此直徑不可控,可擴展性較差。

因此發現的准確性和可擴展性是非結構化網路面臨的兩個重要問題。目前對此類結構的研究主要集中於改進發現演算法和復制策略以提高發現的准確率和性能。

全分布非結構化網路在重疊網路(overlay)採用了隨機圖的組織方式,結點度數服從"Power-law"[a][b]規律,從而能夠較快發現目的結點,面對網路的動態變化體現了較好的容錯能力,因此具有較好的可用性。同時可以支持復雜查詢,如帶有規則表達式的多關鍵詞查詢,模糊查詢等,最典型的案例是Gnutella。

Gnutella是一個P2P文件共享系統,它和Napster最大的區別在於Gnutella是純粹的P2P系統,沒有索引伺服器,它採用了基於完全隨機圖的洪泛(Flooding)發現和隨機轉發(Random Walker)機制。為了控制搜索消息的傳輸,通過TTL (Time To Live)的減值來實現。具體協議參照〔Gnutella協議中文版〕

在Gnutella分布式對等網路模型N中,每一個聯網計算機在功能上都是對等的,既是客戶機同時又是伺服器,所以被稱為對等機(Servent,Server+Client的組合)。

隨著聯網節點的不斷增多,網路規模不斷擴大,通過這種洪泛方式定位對等點的方法將造成網路流量急劇增加,從而導致網路中部分低帶寬節點因網路資源過載而失效。所以在初期的Gnutella網路中,存在比較嚴重的分區,斷鏈現象。也就是說,一個查詢訪問只能在網路的很小一部分進行,因此網路的可擴展性不好。所以,解決Gnutella網路的可擴展性對該網路的進一步發展至關重要。

由於沒有確定拓撲結構的支持,非結構化網路無法保證資源發現的效率。即使需要查找的目的結點存在發現也有可能失敗。由於採用TTL(Time-to-Live)、洪泛(Flooding)、隨機漫步或有選擇轉發演算法,因此直徑不可控,可擴展性較差。

因此發現的准確性和可擴展性是非結構化網路面臨的兩個重要問題。目前對此類結構的研究主要集中於改進發現演算法和復制策略以提高發現的准確率和性能。

P2P普及系列之四

半分布式結構的優點是性能、可擴展性較好,較容易管理,但對超級點依賴性大,易於受到攻擊,容錯性也受到影響。下表比較了4種結構的綜合性能,比較結果如表1-1所示。

比較標准/拓撲結構 中心化拓撲 全分布式非結構化拓撲 全分布式結構化拓撲 半分布式拓撲
可擴展性 差 差 好 中
可靠性 差 好 好 中
可維護性 最好 最好 好 中
發現演算法效率 最高 中 高 中
復雜查詢 支持 支持 不支持 支持

表1:4種結構的性能比較

P2P普及系列之五

國外開展P2P研究的學術團體主要包括P2P工作組(P2PWG) 、全球網格論壇(Global Grid Forum ,GGF) 。P2P工作組成立的主要目的是希望加速P2P計算基礎設施的建立和相應的標准化工作。P2PWG成立之後,對P2P計算中的術語進行了統一,也形成相關的草案,但是在標准化工作方面工作進展緩慢。目前P2PWG已經和GGF合並,由該論壇管理P2P計算相關的工作。GGF負責網格計算和P2P計算等相關的標准化工作。

從國外公司對P2P計算的支持力度來看,Microsoft公司、Sun公司和Intel公司投入較大。Microsoft公司成立了Pastry項目組,主要負責P2P計算技術的研究和開發工作。目前Microsoft公司已經發布了基於Pastry的軟體包SimPastry/ VisPastry。Rice大學也在Pastry的基礎之上發布了FreePastry軟體包。

在2000年8月,Intel公司宣布成立P2P工作組,正式開展P2P的研究。工作組成立以後,積極與應用開發商合作,開發P2P應用平台。2002年Intel發布了. Net基礎架構之上的Accelerator Kit (P2P加速工具包) 和P2P安全API軟體包,從而使得微軟. NET開發人員能夠迅速地建立P2P安全Web應用程序。

Sun公司以java技術為背景,開展了JXTA項目。JXTA是基於Java的開源P2P平台,任何個人和組織均可以加入該項目。因此,該項目不僅吸引了大批P2P研究人員和開發人員,而且已經發布了基於JXTA的即時聊天軟體包。JXTA定義了一組核心業務:認證、資源發現和管理。在安全方面,JXTA加入了加密軟體包,允許使用該加密包進行數據加密,從而保證消息的隱私、可認證性和完整性。在JXTA核心之上,還定義了包括內容管理、信息搜索以及服務管理在內的各種其它可選JXTA服務。在核心服務和可選服務基礎上,用戶可以開發各種JXTA平台上的P2P應用。

P2P實際的應用主要體現在以下幾個方面:

P2P分布式存儲
P2P分布式存儲系統是一個用於對等網路的數據存儲系統,它可以提供高效率的、魯棒的和負載平衡的文件存取功能。這些研究包括:OceanStore,Farsite等。其中,基於超級點結構的半分布式P2P應用如Kazza、Edonkey、Morpheus、Bittorrent等也是屬於分布式存儲的范疇,並且用戶數量急劇增加。

計算能力的共享
加入對等網路的結點除了可以共享存儲能力之外,還可以共享CPU處理能力。目前已經有了一些基於對等網路的計算能力共享系統。比如SETI@home。目前SETI@home採用的仍然是類似於Napster的集中式目錄策略。Xenoservers向真正的對等應用又邁進了一步。這種計算能力共享系統可以用於進行基因資料庫檢索和密碼破解等需要大規模計算能力的應用。

P2P應用層組播
應用層組播,就是在應用層實現組播功能而不需要網路層的支持。這樣就可以避免出現由於網路層遲遲不能部署對組播的支持而使組播應用難以進行的情況。應用層組播需要在參加的應用結點之間實現一個可擴展的,支持容錯能力的重疊網路,而基於DHT的發現機制正好為應用層組播的實現提供了良好的基礎平台。
Internet間接訪問基礎結構(Internet Indirection Infrastructure)。

為了使Internet更好地支持組播、單播和移動等特性,Internet間接訪問基礎結構提出了基於匯聚點的通信抽象。在這一結構中,並不把分組直接發向目的結點,而是給每個分組分配一個標識符,而目的結點則根據標識符接收相應的分組。標識符實際上表示的是信息的匯聚點。目的結點把自己想接收的分組的標識符預先通過一個觸發器告訴匯聚點,當匯聚點收到分組時,將會根據觸發器把分組轉發該相應的目的結點。Internet間接訪問基礎結構實際上在Internet上構成了一個重疊網路,它需要對等網路的路由系統對它提供相應的支持。

P2P技術從出現到各個領域的應用展開,僅用了幾年的時間。從而證明了P2P技術具有非常廣闊的應用前景。

P2P普及系列之六

隨著P2P應用的蓬勃發展,作為P2P應用中核心問題的發現技術除了遵循技術本身的邏輯以外,也受到某些技術的發展趨勢、需求趨勢的深刻影響。

如上所述,DHT發現技術完全建立在確定性拓撲結構的基礎上,從而表現出對網路中路由的指導性和網路中結點與數據管理的較強控制力。但是,對確定性結構的認識又限制了發現演算法效率的提升。研究分析了目前基於DHT的發現演算法,發現衡量發現演算法的兩個重要參數度數(表示鄰居關系數、路由表的容量)和鏈路長度(發現演算法的平均路徑長度)之間存在漸進曲線的關系。

研究者採用圖論中度數(Degree)和直徑(Diameter)兩個參數研究DHT發現演算法,發現這些DHT發現演算法在度數和直徑之間存在漸進曲線關系,如下圖所示。在N個結點網路中,圖中直觀顯示出當度數為N時,發現演算法的直徑為O(1);當每個結點僅維護一個鄰居時,發現演算法的直徑為O(N)。這是度數和直徑關系的2種極端情況。同時,研究以圖論的理論分析了O(d)的度和O(d)的直徑的演算法是不可能的。

從漸進曲線關系可以看出,如果想獲得更短的路徑長度,必然導致度數的增加;而網路實際連接狀態的變化造成大度數鄰居關系的維護復雜程度增加。另外,研究者證明O(logN)甚至O(logN/loglogN)的平均路徑長度也不能滿足狀態變化劇烈的網路應用的需求。新的發現演算法受到這種折衷關系制約的根本原因在於DHT對網路拓撲結構的確定性認識。

非結構化P2P系統中發現技術一直採用洪泛轉發的方式,與DHT的啟發式發現演算法相比,可靠性差,對網路資源的消耗較大。最新的研究從提高發現演算法的可靠性和尋找隨機圖中的最短路徑兩個方面展開。也就是對重疊網路的重新認識。其中,small world特徵和冪規律證明實際網路的拓撲結構既不是非結構化系統所認識的一個完全隨機圖,也不是DHT發現演算法採用的確定性拓撲結構。

實際網路體現的冪規律分布的含義可以簡單解釋為在網路中有少數結點有較高的「度」,多數結點的「度」較低。度較高的結點同其他結點的聯系比較多,通過它找到待查信息的概率較高。

Small-world[a][b]模型的特性:網路拓撲具有高聚集度和短鏈的特性。在符合small world特性的網路模型中,可以根據結點的聚集度將結點劃分為若干簇(Cluster),在每個簇中至少存在一個度最高的結點為中心結點。大量研究證明了以Gnutella為代表的P2P網路符合small world特徵,也就是網路中存在大量高連通結點,部分結點之間存在「短鏈」現象。

因此,P2P發現演算法中如何縮短路徑長度的問題變成了如何找到這些「短鏈」的問題。尤其是在DHT發現演算法中,如何產生和找到「短鏈」是發現演算法設計的一個新的思路。small world特徵的引入會對P2P發現演算法產生重大影響。

P2P普及系列之七

有DHT演算法由於採用分布式散列函數,所以只適合於准確的查找,如果要支持目前Web上搜索引擎具有的多關鍵字查找的功能,還要引入新的方法。主要的原因在於DHT的工作方式。

基於DHT的P2P系統採用相容散列函數根據精確關鍵詞進行對象的定位與發現。散列函數總是試圖保證生成的散列值均勻隨機分布,結果兩個內容相似度很高但不完全相同的對象被生成了完全不同的散列值,存放到了完全隨機的兩個結點上。因此,DHT可以提供精確匹配查詢,但是支持語義是非常困難的。

目前在DHT基礎上開展帶有語義的資源管理技術的研究還非常少。由於DHT的精確關鍵詞映射的特性決定了無法和信息檢索等領域的研究成果結合,阻礙了基於DHT的P2P系統的大規模應用。

P2P發現技術中最重要的研究成果應該是基於small world理論的非結構化發現演算法和基於DHT的結構化發現演算法。尤其是DHT及其發現技術為資源的組織與查找提供了一種新的方法。

隨著P2P系統實際應用的發展,物理網路中影響路由的一些因素開始影響P2P發現演算法的效率。一方面,實際網路中結點之間體現出較大的差異,即異質性。由於客戶機/伺服器模式在Internet和分布式領域十幾年的應用和大量種類的電子設備的普及,如手提電腦、行動電話或PDA。這些設備在計算能力、存儲空間和電池容量上差別很大。另外,實際網路被路由器和交換機分割成不同的自治區域,體現出嚴密的層次性。

另一方面,網路波動的程度嚴重影響發現演算法的效率。網路波動(Churn、fluctuation of network)包括結點的加入、退出、失敗、遷移、並發加入過程、網路分割等。DHT的發現演算法如Chord、CAN、Koorde等都是考慮網路波動的最差情況下的設計與實現。由於每個結點的度數盡量保持最小,這樣需要響應的成員關系變化的維護可以比較小,從而可以快速恢復網路波動造成的影響。但是每個結點僅有少量路由狀態的代價是發現演算法的高延時,因為每一次查找需要聯系多個結點,在穩定的網路中這種思路是不必要的。

同時,作為一種資源組織與發現技術必然要支持復雜的查詢,如關鍵詞、內容查詢等。盡管信息檢索和數據挖掘領域提供了大量成熟的語義查詢技術,由於DHT精確關鍵詞映射的特性阻礙了DHT在復雜查詢方面的應用。

P2P普及系列之八

Internet作為當今人類社會信息化的標志,其規模正以指數速度高速增長.如今Internet的「面貌」已與其原型ARPANET大相徑庭,依其高度的復雜性,可以將其看作一個由計算機構成的「生態系統」.雖然Internet是人類親手建造的,但卻沒有人能說出這個龐然大物看上去到底是個什麼樣子,運作得如何.Internet拓撲建模研究就是探求在這個看似混亂的網路之中蘊含著哪些還不為我們所知的規律.發現Internet拓撲的內在機制是認識Internet的必然過程,是在更高層次上開發利用Internet的基礎.然而,Internet與生俱來的異構性動態性發展的非集中性以及如今龐大的規模都給拓撲建模帶來巨大挑戰.Internet拓撲建模至今仍然是一個開放性問題,在計算機網路研究中佔有重要地位.

Internet拓撲作為Internet這個自組織系統的「骨骼」,與流量協議共同構成模擬Internet的3個組成部分,即在拓撲網路中節點間執行協議,形成流量.Internet拓撲模型是建立Internet系統模型的基礎,由此而體現的拓撲建模意義也可以說就是Internet建模的意義,即作為一種工具,人們用其來對Internet進行分析預報決策或控制.Internet模型中的拓撲部分刻畫的是Internet在宏觀上的特徵,反映一種總體趨勢,所以其應用也都是在大尺度上展開的.對Internet拓撲模型的需求主要來自以下幾個方面1) 許多新應用或實驗不適合直接應用於Internet,其中一些具有危害性,如蠕蟲病毒在大規模網路上的傳播模擬;(2) 對於一些依賴於網路拓撲的協議(如多播協議),在其研發階段,當前Internet拓撲只能提供一份測試樣本,無法對協議進行全面評估,需要提供多個模擬拓撲環境來進行實驗;(3) 從國家安全形度考慮,需要在線控制網路行為,如美國國防高級研究計劃局(DARPA)的NMS(network modeling and simulation)項目。

隨機網路是由N個頂點構成的圖中,可以存在條邊,我們從中隨機連接M條邊所構成的網路。還有一種生成隨機網路的方法是,給一個概率p,對於中任何一個可能連接,我們都嘗試一遍以概率p的連接。如果我們選擇M = p,這兩種隨機網路模型就可以聯系起來。對於如此簡單的隨機網路模型,其幾何性質的研究卻不是同樣的簡單。隨機網路幾何性質的研究是由Paul,Alfréd Rényi和Béla Bollobás在五十年代到六十年代之間完成的。隨機網路在Internet的拓撲中佔有很重要的位置。

隨機網路參數
描述隨機網路有一些重要的參數。一個節點所擁有的度是該節點與其他節點相關聯的邊數,度是描述網路局部特性的基本參數。網路中並不是所有節點都具有相同的度,系統中節點度的分布情況,可以用分布函數描述,度分布函數反映了網路系統的宏觀統計特徵。理論上利用度分布可以計算出其他表徵全局特性參數的量化數值。

聚集系數是描述與第三個節點連接的一對節點被連接的概率。從連接節點的邊的意義上,若為第i個節點的度,在由k.個近鄰節點構成的子網中,實際存在的邊數E(i)與全部k.個節點完全連接時的總邊數充的比值定義為節點i的聚集系數。

emule很不錯,不過不要用verycd版的,有搜索限制,用官方原版的更好。
bt下載也很好
參考資料:http://www.p2psky.com/tech/article2976.html

❷ 吉他高把位和弦推演算法

根據十二個調之間的半音關系,相鄰兩個和弦之間差半音(對應在吉他上就是一個品格);
那麼,根據低把位的和弦指法就能推出高把位的;
舉個例子,比如低把位的C和弦,整體向高把位移動一個品格就得到了C#和弦,但是沒按住的空弦理應也升高一個格,因此需要用一個大橫按放在一品(就是相當於把琴頭向高位移動了一格);
那麼,以此類推,理論上所有低把位的指法都可以推算出任意位置的和弦;
但是,許多指法無法實現在按下的同時再加上大橫按;
因此,經驗規律總結出常用的、比較容易按的一些指法;
比如:大三和弦:由F和弦指法推導出的各種高把位指法;(或者由B和弦推導)(其實F和弦是由E和弦推導出來的)
小三和弦:由Bm和弦指法推倒出的高把位指法;(或者由Fm)(其實Bm是由Am推導來的)

大七和弦:由F7或者B7推導

小七和弦:由Bm7或者Fm7推導
另外:其實許多低把位的和弦可以直接按在高把位上(需要按住4-5根弦的都可以),只要不彈奏沒按住的音就可以了,比如C7和弦、A7和弦等等

給你個網址吧,和弦很全的
http://www.ijita.com/tool/chord/
純手打,望採納,不明白之處追問即可~~

❸ 求用java寫的chord演算法完整代碼,謝謝了!

P2P的一個常見問題是如何高效的定位節點,也就是說,一個節點怎樣高效的知道在網路中的哪個節點包含它所尋找的數據,如下圖:

對此,有三種比較典型的來解決這個問題。

Napster:使用一個中心伺服器接收所有的查詢,伺服器告知去哪下載其所需要的數據。存在的問題是中心伺服器單點失效導致整個網路癱瘓。

Gnutella:使用消息洪泛(message
flooding)來定位數據。一個消息被發到系統內每一個節點,直到找到其需要的數據為止。當然,使用生存時間(TTL)來限制網路內轉發消息的數量。存在的問題是消息數與節點數成線性關系,導致網路負載較重。

SN型:現在大多數採用所謂超級節點(Super
Node),SN保存網路中節點的索引信息,這一點和中心伺服器類型一樣,但是網內有多個SN,其索引信息會在這些SN中進行傳播,所以整個系統的崩潰幾率就會小很多。盡管如此,網路還是有崩潰的可能。

現在的研究結果中,Chord、Pastry、CAN和Tapestry等常用於構建結構化P2P的分布式哈希表系統(Distributed Hash
Table,DHT)。

DHT的主要思想是:首先,每條文件索引被表示成一個(K,
V)對,K稱為關鍵字,可以是文件名(或文件的其他描述信息)的哈希值,V是實際存儲文件的節點的IP地址(或節點的其他描述信息)。所有的文件索引條目(即所有的(K,
V)對)組成一張大的文件索引哈希表,只要輸入目標文件的K值,就可以從這張表中查出所有存儲該文件的節點地址。然後,再將上面的大文件哈希表分割成很多局部小塊,按照特定的規則把這些小塊的局部哈希表分布到系統中的所有參與節點上,使得每個節點負責維護其中的一塊。這樣,節點查詢文件時,只要把查詢報文路由到相應的節點即可(該節點維護的哈希表分塊中含有要查找的(K,V)對)。

這里介紹的Chord演算法就是解決網路內節點定位問題的一種P2P協議。它通過多個節點跳轉找到我們所查找的資源:

我們先看看它是如何進行的,隨後再總結其特點和操作特徵,以及一些實現。

1.Chord裡面的基本要素

節點ID:NID(node
identifier),表示一個物理機器,m位的一個數字(m要足夠大以保證不同節點的NID相同的幾率小的可以忽略不計),由節點機器的IP地址通過哈希操作得到。

資源ID;KID(key
identifiers),原為鍵ID,其實際表示一個資源(因為Key與一個資源value哈希綁定),故在本文中統稱資源ID(這樣比較直觀),m位的一個數字(m要足夠大以保證不同資源的KID相同的幾率小的可以忽略不計),由Key通過哈希操作得到。

常哈希函數:較之一般哈希函數,節點的加入和離開對整個系統影響最小,另外還有一些優勢在此不贅述。在Chord中使用SHA-1來進行常哈希計算。

Chord環:Chord
Ring,NID和KID被分配到一個大小為2^m的環上,用於資源分配(給某一個節點)和節點分布,以及資源定位(註:在這個環上的ID為0--2^m-1)。首先我們說資源分配,資源被分配到NID>=KID的節點上,這個節點成為k的後繼節點,是環上從k起順時針方向的第一個節點,記為successor(k)。而節點分布則順時針將節點N由大到小放在這個環上。例如下邊這幅圖:

這是一個m=6的環,其中有10個節點,5個資源,K10的後繼節點為N14,也就是說K10被分配給了N14。

2.Chord資源定位(Key
Location)

熱點內容
python中ord函數 發布:2025-05-16 10:14:25 瀏覽:340
電腦啟動後無法連接伺服器 發布:2025-05-16 10:06:39 瀏覽:984
jar包編譯過程 發布:2025-05-16 10:03:37 瀏覽:679
選舉源碼 發布:2025-05-16 09:58:59 瀏覽:748
超級訪問陳小春應采兒 發布:2025-05-16 09:43:29 瀏覽:478
緩存視頻合並工具最新版 發布:2025-05-16 09:35:03 瀏覽:194
花雨庭伺服器ip地址和埠 發布:2025-05-16 09:34:58 瀏覽:240
同時修改多台伺服器管理地址工具 發布:2025-05-16 09:20:36 瀏覽:422
什麼配置就能玩地平線 發布:2025-05-16 09:13:46 瀏覽:83
python旋轉圖片 發布:2025-05-16 09:13:40 瀏覽:639