• If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.
Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Peer-to-peer (p2p)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Peer-to-peer (p2p)

    PEER-TO-PEER (P2P)
    I. I.Giới Thiệu
    - Bắt đầu xuất hiện 1999 và đã thu hút được sự quan tâm của giới công nghệ thông tin trong những năm gần đây, mô hình Peer-to-peer đã được áp dụng trong việc xây dựng những ứng dụng chia sẻ file(file sharing), điện thoại trên nền Internet(Internet-based telephony) và đã đạt được những thành công nhất định. Khi mới ra đời đã thu hút được 60 triệu người trên thế giới sử dụng, và hiện nay các ứng dụng Peer-to-peer chiếm khoảng 50% băng thông trên Internet.
    - Mô hình peer-to-peer hay còn gọi là mô hình mạng ngang hàng là một kiểu mạng được thiết kế trong đó nhiệm vụ và chức năng của các thiết bị tham gia vào mô hình mạng là như nhau.
    - Mạng peer-to-peer không có khái niệm Server/Client mà chỉ có các Node (peer) đóng vai trò vừa là Server và vừa là Client.


    II.
    Nguyên tắc hoạt động và ứng dụng trong BitTorrent
    - BitTorrent là ứng dụng về chia sẻ file được ứng dụng dựa trên nguyên tắc hoạt động của mô hình Peer-to-peer mà các bạn thường hay sử dụng, bây giờ chúng ta đi vào tìm hiểu nguyên tắc hoạt dộng của các ứng dụng này.
    - Trước tiên chúng ta tìm hiểu về thời gian để gởi 1 file có dung lượng F từ Server đến N Client trong mạng thông qua 2 mô hình Server/Client và P2P để thấy được những lợi ích từ việc sử dụng mô hình P2P.
    · Mô hình Client-Server



    Với:
    -F : dung lượng của file cần truyền.
    - Us: băng thông upload của Server.
    - Ui: băng thông upload của Client.
    - di: băng thông download của Client thứ i.
    - Thì ta có thời gian Server gởi N bản sao file đến N client hết NF/Us (giây)
    - Client i tải về một bản sao của File mất F/di (giây).
    - Do đó thời gian để truyền một file F đến N client sử dụng cách tiếp cận của mô hình Client/Server mất: max{NF/Us, F/min(di)} (1)
    · +Mô hình Peer-to-peer(P2P)

    - Một peer đóng vai trò là Client gởi bản sao file có dung lượng là F hết F/Us (giây).
    - Client i tải file hết F/di (giây)
    - Với mô hình này, tổng cộng sẽ có NF bits được tải.
    - Tốc độ upload nhanh nhất có thể là: Us + ∑Ui (vì trong mô hình này các peer ngoài việc tải về nó còn upload những gì nó được tải về lên mạng nữa nên sẽ tăng tốc độ upload chung của mạng đối với một file).
    - Do đó thời gian để truyền một file F đến N client sử dụng cách tiếp cận của mô hình Peer-to-peer là:
    Max{F/min(di), F/Us, NF/( Us + ∑Ui)}
    (2)
    - So sánh thời gian truyền một file của 2 mô hình ((1), (2))chúng ta có thể thấy được hầu như thời gian truyền 1 file của mô hình P2P thấp hơn so với mô hình Client/Server.

    Hình: Biểu đồ so sánh giữa 2 mô hình.
    - Trước khi đi vào nguyên tắt hoạt động xin giới thiệu các thuật ngữ được sử dụng trong BitTorrent.
    o Chunks(mãnh): file được chia sẻ sẽ được chia thành các mãnh nhỏ gọi là chunk. Mỗi chunk là 256 KB.
    o Peer: máy tham gia vào mô hình.
    o Tracker: Đóng vai trò theo dõi các peers đang tham gia vào Torrent(lấy danh sách).
    o Torrent: Nhóm các peers đang trao đổi các phân mãnh file(chunks).
    +v Nguyên tắc hoạt động của BitTorrent
    - Các peer tham gia vào Torrent ban đầu chưa có chunk nào nhưng sẽ tích lũy nhưng sẽ tích lũy chunks trong suốt quá trình tham gia mạng.
    - Peer sẽ ghi danh với Tracker để lấy danh sách các peer đang tham gia trong Torrent và sẽ kết nối đến tập con các peer (láng giềng).
    - Trong khi đang download file, peer cũng upload các chunks.
    - Tại một thời điểm nhất định, các peer khác nhau đang có được các chunks khác nhau.
    - Peer sẽ xử lý chunks dưới 2 dạng đó là: chunks cần down về và chunks upload(những chunks đã down về giờ upload lại lên mạng để chia sẻ).
    § Chunks cần download
    Định kỳ, một peer sẽ hỏi các peer láng giềng danh sách các chunks mà peer láng giềng có. Sau khi có được danh sách chunks của các peers láng giềng thì nó sẽ gởi yêu cầu để xin các chunks mà nó thiếu, việc gởi yêu cầu này cũng có quy luật là ưu tiên cho những chunks mà ít peers láng giềng có nhất(để phòng trừ các trường hợp peers láng giềng rời khỏi mạng thì chunks này sẽ trở nên “thiếu thốn” , các chunks có nhiều láng giềng có thì gởi yêu cầu sau vì xác suất các chunks đó tồn tại trên mạng lớn hơn).
    § Chunks upload
    - Peer A sẽ gởi các chunks đến 4 peer láng giềng mà hiện thời chúng đã gởi chunks khác cho peer A ở mức độ cao nhất (Top 4 này được peer A đánh giá cứ sau 10 giây) => Điều này đảm bao được một truyền thống là các peer nào upload càng nhiều thì tốc độ download càng nhanh.
    - Sau 30 giây, peer A sẽ chọn ngẫu nhiên 1 peer khác trong mạng(peer không nằm trong top 4 của Peer A) và gởi chunks cho peer này, quá trình này được gọi là Tit-for-Tat => điều này tạo điều kiện cho peer mới được chọn có thể tham gia vào top 4, để peer này có thể được chia sẻ và chia sẻ nhiều hơn
    Lợi ích của Tit-for-Tat

    - Peer A chọn ngẫu nhiên được Peer B và gởi chunks cho Peer B.
    - Peer A sẽ trở thành 1 trong 4 peer gởi chunks cho Peer B nhiều nhất và vào top 4 của Peer B, Peer B sẽ gởi chunks đáp trả.
    - Peer B gởi cho Peer A nhiều chunks nên nó sẽ trở thành 1 trong 4 Peer gởi cho Peer A nhiều nhất.
    ð Với Tit-for-Tat thì Peer càng upload với tốc độ cao càng có thể tìm thấy các Peer trao đổi chunks dễ dàng hơn và download file nhanh hơn
    - Khi Peer có đủ cả 1 file thì nó có thể rời Torrent hoặc ở lại Torrent, nhưng trong văn hóa sử dụng BitTorrent nói riêng và P2P nói chung thì khuyến khích các Peer ở lại Torrent vì đây là mạng chia sẻ chung.
    - Có rất nhiều phần mền để sử dụng cho việc chia sẻ và download file như: BitTorrent, Utorrent,…
    III.
    Distribute Hash Table(DHT: Cơ sở dữ liệu phân tán trên môi trường P2P)
    - Cơ sở dữ liệu(CSDL) trên môi trường P2P chứa cặp (key, value)
    o Key: tên nội dung.
    o Value: Địa chỉ IP(nới lưu nội dung).
    - Peer truy cập CSDL bằng cách cung cấp giá trị key, CSDL sẽ trả về giá trị value tương ứng với giá trị key.
    - Peer còn có thể chèn các cặp (key, value) mới vào CSDL.
    - Mỗi peer sẽ được gán một số ID để định danh khi tham gia vào P2P là số nguyên nằm trong vùng[0,2n-1] (n là số nguyên cố định). Mỗi ID có thể được biểu diễn qua chuỗi n bits.
    - Để thu được mỗi trị key là một số nguyên thuộc vùng [0,2n-1] thì nó sử dụng 1 hàm băm H, H nhận key gốc và trả về giá trị key nằm trong vùng [0,2n-1] => đây chính là lý do gọi nó là DHT(Distributed “Hash” Table).
    - Bây giờ chúng ta có thể thấy được mỗi peer đã có 1 ID trong vùng [0,2n-1] thì quy tắt lưu các cặp (key, value) như sau:
    o Lưu tại peer có ID=key.
    o Nếu không có peer như vậy thì lưu tại peer có ID gần nhất(ID gần nhất là ID liền sau trong danh sách các ID)
    Ví dụ có n=4 và các các Peers với các ID tương ứng như sau: 1, 3, 4, 5, 8,10, 12, 15.
    Key = 9 thì Peer liền sau là Peer 10.
    Key = 15 thì Peer liền sau là Peer 1.
    - Mỗi Peer chỉ biết Peer liền trước và Peer liền sau tạo nên 1 vòng tròn DHT.

    - Khi Peer 3 muốn truy xuất giá trị tại key 15( 1111b) thì nó tìm chính nó không thấy lưu thì sẽ hỏi peer liền sau, peer liền sau nếu không có lưu sẽ hỏi peer liền sau nữa, và cứ vậy cho đến khi peer nào chưa giá trị key 15 thì trả lời và dừng quá trình truy vấn lại.
    - Ngoài việc quản lý IP của Peer liền trước và liền sau, để cho quá trình truy vấn diễn ra nhanh hơn thì Peer còn quản lý shortcut của peer khác (không phải liền trước hay liền sau)

    - Như trong hình trên thì peer 3 còn quản lý shortcut của peer 8, điều này sẽ giúp peer 3 truy vấn nhanh hơn, giảm từ 6 còn 2 message.
    - Trong mạng P2P thì có thể xảy ra là 1 Peer đến tham gia và ra đi không hề báo trước và điều này làm cho số Peer trong vòng trong DHT thay đổi dẫn đến các Peer khác sẽ gặp khó khăn khi truy vấn. Để giải quyết tình tình trạng này thì mỗi Peer phải biết địa chỉ của 2 Peer liền sau nó. Mỗi Peer sẽ ping định kỳ 2 peer liền sau đó để xác định nó còn trên mạng hay đã rút lui

    - Nếu Peer 5 đột ngột rời khỏi vòn thì Peer 4 phát hiện ra điều này(vì Peer 5 lưu IP của 2 Peer liền sau nên mất Peer5 thì còn Peer8), hỏi Peer 8 “Peer liền sau của Peer8” và sau đó Peer liền sau của Peer8 là Peer kế liền sau của Peer 4.

    - Ngược lại khi có 1 Peer 13 tham gia vào mạng thì trong thời gian nó tham gia vào, nó sẽ gởi đi messeage để hỏi “2 peer nào là Peer kế tiếp của nó???”. Gói tin này sẽ đi trong DHT và khi tới Peer 12 thì Peer 12 phát hiện ra là có thêm Peer 13 trong DHT và Peer 12 sẽ nhận Peer 13 làm Peer liền kề thay cho Peer 15. Tiếp theo Peer 12 gởi gói tin chứa thông tin chứ 2 peer liền kề của nó trước đó(trước lúc peer 13 gia nhập) cho Peer 13 và Peer 13 sẽ nhận 2 Peer trong gói tin này làm 2 Peer liền kề của mình, và từ bây giờ Peer 13 có thể tham gia vào vòng trong DHT một cách bình thường.
    IV.
    Ưu điểm và nhược điểm của Peer-to-Peer
    · Ưu điểm
    - Các peer tham gia vào mạng có thể đóng góp tài nguyên chia sẻ với nhau, tài nguyên có thể riêng lẻ và có thể truy cập tài nguyên ở bất các các nodes nào trong mạng.
    - Các peer đóng vai tròn như cả Client khi truy vấn thông tin và Server khi cung cấp thông tin.
    - Không cần Server riêng, khi hệ thống càng mở rộng thì khả năng hoạt động càng tốt.
    - Chi phí thấp, dễ cài đặt và bảo trì
    · Nhược điểm
    - Liên quan đến văn hóa trong chia sẻ về các tài nguyên có bản quyền.
    - Không đáng tin cậy và không tốt cho các ứng dụng cơ sở dữ liệu cần bảo mật cao.
    Last edited by bqt; 07-06-2011, 04:56 PM.
    Viet Professionals Co. Ltd. VnPro ®
    ---------------------------------------
    149/1D Ung Văn Khiêm P25 Q.Bình thạnh TPHCM
    Tel: (08) 35124257
    Fax: (08) 5124314
    Support Forum : http://www. vnpro.org
    Live Chat http://vnpro.org/forum/image.php?u=2...ine=1233770177 : http://www.vnpro.vn/support
    Blog VnPro : http://www.vnpro.org/blog
    Search: VNPRO.ORG
    Cộng Đồng Mạng Không Dây Việt Nam
Working...
X