950 likes | 1.17k Views
適用於 P2P 檔案共享系統 傳輸協定之設計. 政治大學資訊科學系 行動計算與網路通訊實驗室 Ⅱ 指導教授:連耀南 研究生:許弘奇. Outline. Introduction Related Work Design of Protocol Packet Loss Recovery Segment Size Determination Adaptive UDP Mechanism Performance Evaluation Conclusion. Introduction. Peer-to-Peer (P2P) 架構:
E N D
適用於P2P檔案共享系統傳輸協定之設計 政治大學資訊科學系 行動計算與網路通訊實驗室Ⅱ 指導教授:連耀南 研究生:許弘奇
Outline • Introduction • Related Work • Design of Protocol • Packet Loss Recovery • Segment Size Determination • Adaptive UDP Mechanism • Performance Evaluation • Conclusion
Introduction • Peer-to-Peer (P2P)架構: • P2P架構讓社群內的使用者收集分散在網路各處之資源。 • 參與者可得到原本無法負擔之運算資源。 • P2P 檔案共享系統: • 最廣為風行的P2P系統,如Napster、BitTorrent。 • P2P 檔案共享系統,參與的角色分別為: • 資料提供者 (Data Source Provider)。 • 資料下載者 (Downloader)。
Centralized Model & Decentralized Model • P2P 檔案共享系統架構分為: • 集中式,如Napster-like Model。 • 分散式,如BitTorrent-like Model。 Decentralized Model Centralized Model
P2P檔案共享系統之分散式架構又可細分 • 結構化: • 下載檔案之來源點和網路拓樸位置有關。 • 非結構化: • 下載檔案之來源點未將網路拓樸納入考量。
BitTorrent • BitTorrent之優點: • 目前最為風行。 • 可擴張性極佳(scalability)。 • 以BitTorrent-like Model為代表,作為我們的研究對象。
BitTorrent 運作時之參與角色 • 檔案提供者(Seeder) • 檔案下載者(Downloader) • Tracker • 扮演中央控管角色協助下載者尋找所需之檔案片段。 • 網頁伺服器(Web server) • 公佈並提供檔案之相關資訊。
BitTorrent 特色 • P2P檔案共享協定。 • 採分散式且非結構化之模式。 • 檔案提供者將檔案切割成多個檔案片段。 • 下載者會開放已完成之檔案片段,供其他下載者抓取。 • 下載檔案時,可從不同之地點下載。 • 同一檔案片段同時有許多地點可供下載。 • 下載者可從不同地點下載同一檔案片段。 • 參與者愈多時,其下載者之下載速度不會大幅降低。
BitTorrent 運作機制 • 檔案提供: • 提供者Seeder利用BitTorrent程式對檔案建立 .torrent 檔,過程中需指定「Tracker」的URL。 • 檔案公佈: • 檔案提供者需將 .torrent 檔公佈至某網頁。 • .torrent除了Tracker URL位置之外,亦含被下載檔案之檔名、檔案大小、檔案Signature等訊息。
BitTorrent 運作機制 • 檔案下載: • 下載前,先至網頁抓取 .torrent 檔, 用BitTorrent程式開啟此.torrent檔,才可下載檔案。 • 檔案下載時,系統會經由「Tracker」尋找所需之檔案片段。
BitTorrent 運作機制 • BitTorrent運作之檔案基本單位: • Piece(Fragment):檔案片段,大小為1/4 Mbytes。 • Sub-piece(Sub-fragment):為利用Pipeline方式提昇Piece傳輸速度之單位。大小為16 Kbytes。 • 傳輸協定:採用TCP傳輸協定。
TCP的特色 • 傳輸層協定(Transport layer protocol)。 • 端對端(end-to-end): • 一個傳送端,一個接收端。 • 資料傳輸前需建立連線(connection-oriented)。 • Positive ACK: • 接收端收到正確資料須回傳ACK。 • ACK驅動傳送端送出新的封包(self-clocking)。 • 保證資料完整及保持原序(data integrity, in-order)。 • 流量控制(flow controlled): • 傳送端之資料速率不超過接收端之接收能力。 • 傳輸速率由擁塞窗框(congestion window)所控制。
TCP 擁塞控管機制 • 利用Window Size調節資料傳輸速率。 • 以封包遺失或逾時當作網路擁塞的指標。 • 資料傳輸中若有封包遺失或逾時,TCP就會啟動擁塞控制機制快速降低資料傳輸速率。
Slow Start Congestion Avoidance threshold 3 duplicate ACKs time out (RTT) TCP擁塞控管機制 • Slow Start (CWND < Threshold) • 探測目前網路可承載的頻寬。 • 當connection建立以後,CWND大小以指數的速度成長,直至超過Treshold或封包遺失產生為止。 • Congestion Avoidance (CWND > Threshold) • AIMD (Additive Increase Multiplicative Decrease)
P2P檔案共享系統的效能缺陷 • 經驗中發現,上行頻寬窄、下行頻寬大的非對稱網路(如ADSL)之下,BitTorrent-like Model之傳輸速度不佳。 • 下載者之下行頻寬大,使用率卻很低。下載者無法完全使用下載頻寬。
P2P檔案共享系統效能問題分析 • Fractional Upward Bandwidth (FUB) : • 一檔案片段被多個下載者同時下載。 • 多個上傳訊務流要共用一個狹窄上行頻寬。 • Blockage of ACK (BoA) : • TCP協定下,接收端收到資料後,須回傳ACK。 • BitTorrent中之資料接收者,亦為資料上傳者。 • 狹窄之上行頻寬擁塞,ACK無法順利回傳。 • ACK在佇列中逾時後,傳送端啟動擁塞控管機制,降低資料傳送速度。
P2P檔案共享系統效能問題分析 • 檔案片段樹(Fragment Tree) : • 以檔案片段Seed為樹根(Root)。 • 上傳者與下載者形成階層架構。
由檔案片段樹觀察到下列結果 • Long Physical Paths: • 檔案片段樹之一鏈結(link) 實際為路徑(path)。 • 下載路徑可能很長,假如未考量路徑長短,便會浪費網路資源。 • 下載路徑之間可能有重疊之處,會浪費網路資源。 • Lien (2005)提出,如果能盡量縮短路徑、減少重覆,必能降低頻寬之浪費。
Bushy Tree • Bushy Tree: • 太多下載者抓取本身下載完成之檔案片段。 • 導致FUB與BoA的問題。 • Lien (2005)提出可將之改成分支度較小的Slim Tree,控制每個參與者分享資料流數目,可減少FUB與BoA的問題。 Bushy Tree Slim Tree
研究目標 • 以上分析有BoA、FUB等問題。 • 因為BoA問題現今尚未有完整之解決方案,本研究之目的,即對BoA效能問題提出可行改進措施。
Outline • Introduction • Related Work • Design of Protocol • Packet Loss Recovery • Segment Size Determination • Adaptive UDP Mechanism • Performance Evaluation • Conclusion
Related Work • 非對稱網路下之資料傳輸問題 • 非對稱網路下TCP問題之回顧 • 非對稱網路下TCP問題之解法
非對稱網路下TCP問題之回顧 • H. Balakrishnan and V. N. Padmanabhan, “How Network Asymmetry Affect TCP,” IEEE Communications Magazine, Apr. 2001. • 回顧TCP協定,在非對稱網路下之效能影響並提出解法。 • 對狹窄頻寬進行管理: • TCP Header Compression、ACK Filtering、ACK Congestion Control、ACKs First Scheduling等方式 • ACK頻率低,會破壞Self-clocking,補救措施: • ACK Reconstruction
非對稱網路下TCP問題之解法 • Wanjiun Liao and Yi-Der Li, "Improving TCP Performance for Asymmetric Networks," IEEE ICC, Helsinki, Finland, Jun. 2001. • TCP Vegas不能分辨在非對稱網路之下,因傳輸方向不同所產生的負面影響,而導致整個效能大為降低。 • 提出一個新的TCP Formosa協定。 • Cumulative ACK的機制 • 減少ACK的數量。 • 避免非對稱網路之下因為ACK遺失所導致的影響 。
評論 • 上述之方法皆是直接修改TCP協定。 • 改變TCP茲事體大,協定更改幅度太大,影響層面廣,不易被接受。 • 現有之使用者不易為了解決非對稱網路產生之問題即採用一個新版的TCP協定。
Outline • Introduction • Related Work • Design of Protocol • Packet Loss Recovery • Segment Size Determination • Adaptive UDP Mechanism • Performance Evaluation • Conclusion
解決BoA問題的方法 • 方案一:增加TCP ACK Timeout時間。 • 導致TCP對真正網路擁塞之反應時間拉長。 • 不能即時處理網路擁塞。 • 方案二:TCP之接受端重覆傳送ACK。 • 增加ACK存活率,但會在非對稱網路狹窄的上行端增加ACK訊務量。 • 此法對TCP更改幅度太大。 • 方案三:以UDP為基礎的方式(UDP-Based Approach)解決。
我們採用UDP的方法 • 使用UDP傳送資料,不必對接收到的封包回送ACK,可避免BoA問題。 • UDP協定有兩個問題: • 無法確保資料的完整性。 • 無法自動決定資料傳送速率。 • 在應用層(Application Layer)加上相關機制解決。
我們提出的協定之特色 • 此協定以UDP協定為基礎,並加入下列機制: • 確保資料完整性之機制。 • 自動決定資料傳送速率之機制。 • 此協定之採用者: • BitTorrent架構下之參與者。 • 傳送端與接收端(sender & receiver)皆需採用。
我們提出的協定之特色 • 本協定必須考慮下列的問題: • 避免因封包錯誤導致之重傳。 • 提供自動重建遺失之封包。 • 計算基本傳輸單位之大小。 • 量測最適可用頻寬,決定傳送速率。
效能目標 • 儘量降低重傳次數。 • 儘量利用可利用之網路頻寬,提高每個下載者的下載速度。
提昇效能之設計 • Packet Loss Recovery (自動重建遺失之封包): • 避免封包遺失而重傳。 • Segment Size Determination (基本傳送單位之計算): • 計算檔案片段中,最佳的基本傳輸單位大小 • 要保護封包,亦要降低overhead。 • Adaptive UDP Mechanism (調節式UDP機制): • 應用層加上自動調整傳輸速率機制。
Packet Loss Recovery • 每n個封包為一群,加一個同位封包(Parity Packet) ,稱為Segment。 • 同位封包:Segment之資料封包經由同位計算後所產生。
Packet Loss Recovery • 同位封包之功用: • Segment任一封包遺失,可用同位封包救回。 • Segment中若有兩個以上封包遺失,同位封包將無法彌補,則資料必須重傳。 • 重傳之單位: • 以Fragment為單位,重傳時須負擔較高的重傳成本。 • 以Segment為單位,減輕重傳之成本。
Packet Loss Recovery Issue • Segment長短影響協定之效能: • Segment較短時,錯誤更正能力較強,但Overhead較大。 • Segment較長時,錯誤更正能力較弱,但Overhead較小。
Segment Size Determination • 因Segment長短會影響協定效能。 • 設計一計算最佳Segment大小之法。 • 其中,每一封包之封包遺失率皆同為γ。
Segment Size Determination • 一個Fragment可分為 Segment。 • 一個Segment中,x個封包遺失的機率: • 一個Segment傳送成功的機率: • 反之,一個Segment傳送失敗之機率為:
Segment Size Determination • 額外成本 • 一個Segment中需增加一個同位封包,成本為 • 當一個Segment傳送失敗時,仍要再重傳一次,其重傳成本為 • 懲罰函數(Penalty Function): • 簡化:
Segment Size Determination • 當懲罰函數最小時,可得最佳Segment封包數。 • 給定一γ值即解得一個n值。
Adaptive UDP Mechanism • UDP協定沒有調整傳送速率之機制。 • 必須在應用層加入自動調整速率之機制。 • 影響資料傳送速率之決定因素:瓶頸鏈結之頻寬。 • 傳送端如何獲得瓶頸鏈結之可用頻寬? • 如在傳送者上行端 • 假設使用者已知上行端之實際可用頻寬。 • 如在核心網路內部 • 需利用探測封包(Probing Packet)的方式,幫助瞭解網路內部瓶頸頻寬(bottleneck bandwidth)的狀況。
UDP with Probing Packets • 傳送端定期發送探測封包量測網路狀態,根據其變化來調整合理傳送速率。 • 接收端在ACK裡加入此項資訊。 • 傳送端使用此資訊來調整合理傳送速率。 • 目標:降低頻寬浪費或網路擁塞之機率。
Packet Dispersion • C. Dovrolis et. al. ,"Packet-Dispersion Techniques and a Capacity-Estimation Methodology," IEEE/ACM Transactions On Networking, VOL. 12, No. 6, Dec 2004. • 緊鄰兩個封包通過瓶頸鏈結時,其封包距離有散開(Dispersion)之現象,此散開可當做瓶頸可用頻寬之估計依據,此法稱為Packet Dispersion法。 • 利用此Packet Dispersion估計目前網路內部瓶頸的頻寬。
Adjusting Coefficient α • 為避免估計偏差(bias)對協定造成負面影響,以一校正係數α(Adjusting Coefficient α)修正估計結果。 • 我們所測得之可用頻寬為調整資料傳送速度之一參考指標,其調整方式,可參考Yung-Ping Chung and Yao-Nan Lien, "Design of TCP Congestion Control Techniques by Router-assisted Approach," Sep. 2005。
Outline • Introduction • Related Work • Design of Protocol • Packet Loss Recovery • Segment Size Determination • Adaptive UDP Mechanism • Performance Evaluation • Conclusion
參數估算與效能評估 • 模擬工具: • 模擬環境為Cygwin下之ns 2.28版。 • 參數估算: • 計算最佳Segment數。 • 用實驗估算調節式UDP機制之校正參數α值。 • 效能評估: • UDP-Based Approach與其他傳輸協定之效能比較。
Segment Size計算 • 實驗目標:給定特定的網路環境,將懲罰函數(Penalty Function)最小化以找出最佳Segment Size。