application P2P

P2P(peer-to-peer,對等式網路)
end-system可互相連線,可以不用透過server也能運作


常見的P2P協定
eMule: 檔案傳輸
BitTorrent: 檔案傳輸
KanKan:P2P Streaming
Skype:用在VoIP


.....................................
以下以Bittorrent為範例介紹其原作機制


Bittorrent參與的元件
Peer(對等點):參與p2p的電腦,
Neighbors peer(相鄰對等點): 與對等點成功建立連線的其他對等點
Torrent:所有參與檔案傳輸的對等點
Chunks: 傳輸檔案的最小基本單位,預設256KB
Tracker(追蹤者): Torrent內至少會有一個的基礎節點, 讓剛加入torrent的peer註冊,以追蹤對等點的狀況
Peer list: 記錄每個peer的IP, 會記錄剛加入的peer一開始要聯繫的IP清單


Peer行為
1.當peer剛加入Torrent時,
 向tracker註冊自己,
 此時peer沒有任何chunk
2.tracker將peer list給剛加入的peer
 剛加入的peer會先和peer list中的IP建立連線
3.peer在取得檔案時,
 peer會週期性的告知tracker目前狀況,
 會從neighbors peer下載越來越多chunk,同時也會上傳chunk給neighbors peer
 peer可能會隨時離開或加入Torrent
4.一但peer取得所需要的完整檔案,
 可能會離開Torrent,
 或是在Torrent中繼續分享chunk給neighbors peer


下載策略, rarest first(最稀有優先)
peer會有所有neighbors peer的chunks列表, 每個列表都會不同,
peer會根據自己缺少的chunk和這些列表,計算出最稀有的chunk,並向有此chunk的neighbors peer要求下載
此策略可以讓最稀有的chunk逐漸變普及,讓各peer有機會下載


上傳策略,tit-for-tat(以德報德策略)
peer只會將chunk上傳給unchoked和optimistically unchoked的neighbors peer
unchoked(無阻的):peer每10秒會計算前4名可最快下載的neighbors peer
optimistically unchoked(樂觀無阻的): peer每30秒會隨機選擇1名neighbors peer
choked(被阻斷的):除了這5個neighbors peer以外的neighbors peer都是被阻斷的
此策略可找出更好的trading partners

...


DHT(distributed hash table,分散式雜湊表)
Distributed P2P database, peer可用來查詢那個檔案在那個peer的資料庫
由key,value組成的table , ex: (linux, 對等點a) , (linux, 對等點b)
DHT散布在各peer, 每個peer僅持有整體key,value配對的一部份
DHT運作屬於overlay network,也就是在實體網路之上會有自己的邏輯網路


DHT角色
key負責peer: 擁有此keyValue配對的peer
immediate successor peer: 最接近此peer ID的下一個peer
immediate predecessor peer:最接近此peer ID的上一個peer

 

循環式DHT搜尋key負責對等點
peer搜尋key負責peer時, 只會問immediate successor peer
若immediate successor peer沒有,就會在問他的immediate successor peer,以此類推
若immediate successor peer有,就會回傳給原始peer, 自己是key負責peer
ps:
peer只會處理immediate predecessor peer的搜尋
ps:
此搜尋機制最遭的情況下, 會一個一個問peer問到最後才找到


在DHT儲存keyvalue配對
1.計算key的hash
2.根據以下步驟決定peer
找出和此hash一樣的peer ID
若無,則尋找最接近此hash的peer ID,而且必須是下一個 
若無,則尋找最小的peer ID
3.根據此peer ID , 儲存此keyvalue到此peer
ex:
假設peer有4個,識別碼分別是1,2,4,8
若key的hash為5,就將此keyvalue配對插入下一個最接近的peer 8
若key的hash為9,就將此keyvalue配對插入最小的peer 1


peer churn:離開DHT
peer會偵測後2個immediate successor peer
若immediate successor peer離開 ,
則讓第二個immediate successor peer當第一個


搜尋DHT下個對等點
當peer加入DHT時, 若不知道immediate successor peer和immediate predecessor peer
就會尋問存在DHT的其中1個peer,此peer會一路轉送此問題,
當轉送到正確的immediate predecessor peer ,此peer做2件事
 1.直接回覆給剛加入peer以下資訊
  immediate predecessor peer:自己
  immediate successor peer:自己的下一個peer
 2.將原本immediate predecessor peer設成剛加入的peer

 

 

 

 

 

2016-11-08 10:09:05發表 2016-11-08 10:26:34修改   


金融科技
數據分析
程式開發
計算機組織與結構
資料結構與演算法
Database and MySql
manage tool
windows
unix-like
linux service
network
network layer3
network layer2
network WAN
network service
>application P2P
 openflow
 application voip
 application proxy
 application dhcp
 application DNS
 application email
 application web
 internet caching technology
 application voip infrastructure

作業系統
數位鑑識
資訊安全解決方案
資訊安全威脅
Cisco security
Cisco network
Cisco layer3
Cisco layer2
公開分享的文件