Áp dụng mơ hình tin cậy NICE đảm bảo công bằng trong ứng dụng chia sẻ file BitTorrent

Một phần của tài liệu LUẬN VĂN: ĐẢM BẢO CÔNG BẰNG TRONG CÁC ỨNG DỤNG CỘNG TÁC NGANG HÀNG docx (Trang 51 - 58)

Chương 3 : Đảm bảo công bằng với các ứng dụng cộng tác trong mạng ngang hàng

3.5. Áp dụng mơ hình tin cậy NICE đảm bảo công bằng trong ứng dụng chia sẻ file BitTorrent

dụng chia sẻ file BitTorrent

3.5.1. Giới thiệu về BitTorrent

3.5.1.1. Tổng quan về BitTorrent

BitTorrent là một mạng chia sẻ file được sáng lập bởi Bram Cohen.

BitTorrent là một ứng dụng P2P với mục đích phân phối các file có dung lượng lớn nhanh và hiệu quả qua việc upload băng thông của các máy (peer) khi các máy này download dữ liệu. Nền tảng của vấn đề là phân chia các file thành các block có kích thước như nhau (mỗi block chiếm khoảng 32 đến 256 kbs) để các máy download đồng thời các block từ nhiều máy. Các block ở xa được chia nhỏ hơn để có thể sử dụng đường ống (pipelining) theo các yêu cầu.

Giả sử bạn có 1 file dung lượng 1GB và 300 người cần, sẽ cần rất nhiều thời gian để chia sẻ 300GB dữ liệu. Nhưng nếu bạn chia file thành các mảnh nhỏ gửi cho mọi người và họ lại chia sẻ các mảnh đó cho người khác cho đến khi ai ai cũng có file hồn chỉnh thì sẽ nhanh hơn rất nhiều. Các trang web lớn có thể sử dụng BitTorrent để cập nhật cho các phần mềm của họ, bằng cách này họ sẽ giảm được chi phí trả cho băng thông. Tốc độ của BitTorrent rất đáng kinh ngạc, chỉ mất vài giờ để truyền tải các file cực kỳ lớn. Một vài trang web đã ra đời dựa theo cơng nghệ này phân phát các nội dung có bản quyền. Ngay lập tức, các tổ

-52- chức như MPAA đã đổ lỗi cho công nghệ này, điều đó hồn tồn sai, thực tế lỗi là ở các cá nhân sử dụng cơng nghệ cho mục đích trái phép. Dù thế nào đi nữa, BitTorrent không phải sinh ra để phát tán tài nguyên bất hợp pháp, nó là một phát minh của Bram để giúp cho việc truyền tải trở nên nhanh hơn trong thế giới mạng. Nó được sử dụng trên các trang web trên khắp thể giới và Bram tự hào về điều này.

3.5.1.2. Các khái niệm và hoạt động của BitTorrent:

Torrent:

Mỗi một file lớn có hiệu lực download được gọi là một torrent.

Thường thì torrent là một file mang phần mở rộng .torrent nhận từ server. File .torrent này chứa thông tin về dữ liệu muốn down (chứ không phải là bản thân dữ liệu đó). User có thể save file .torrent đó trên máy của mình, sau đó mở nó bằng trình BitTorrent để tiến hành việc download. Hoặc, bạn có thể down ngay bằng cách click thẳng vào link trên trang web - cách này mất thêm chút cơng sức nếu muốn down lại file đó sau này.

BitTorrent không giống các mạng P2P khác như là eD2K hoặc FastTrack, bạn không thể search được file A bằng cách sử dụng các chương trình BitTorrent. Thay vào đó bạn phải vào các trang web có danh sách các file Torrent. Các file Torrent này chứa các thông tin về file A mà bạn muốn download và chứa thông tin về các “tracker” mà bạn phải kết nối để bắt đầu download. Các “tracker” là các máy chủ trung tâm, nó lưu giữ thơng tin về từng người đang chia sẻ các file A, và các phần mà họ có. Khi bạn download file Torrent, và open nó, chương trình BitTorrent (như là. Bit Torrent, Bit Tornado, Azureus, ...vvv.) sẽ chạy và kết nối đến các tracker. Tracker sẽ kết nối bạn đến Seeds và Peers – những người đang chia sẻ file A này và quá trình download của bạn sẽ bắt đầu. Đến khi bạn có ít nhất một “mảnh” của file A, bạn đã có thể upload “mảnh” đó cho những người chưa có. Như vậy bạn đã có thể thấy rằng BitTorrent khác với các mạng P2P khác : cần có file Torrent cho các file (hoặc thư mục) mà bạn muốn download hoặc chia sẻ.

Tracker:

Có một thành phần trung tâm cho biết nơi mà một peer có thể lấy dữ liệu từ các node trong hệ thống, thành phần trung tâm này gọi là tracker. Tracker nhận updates từ các node định kì 30 phút giống như các nút khi kết nối hoặc rời torrent.

Các trang web liệt kê các file torrent (như là torrentbox.com) có những tracker của họ để quản lý việc download và chia sẻ giữa mọi người. File torrent phải có thơng tin chi tiết về tracker. Do đó bạn muốn kết nối đến tracker nào thì chỉ có thể sử dụng file torrent được tạo cho tracker đó. Có các phần mềm để giúp bạn thiết lập các tracker riêng và tạo file torrent.

-53- Một server nằm trên mạng internet, phối hợp hoạt động của các trình BitTorrent. Khi bạn mở một file torrent, máy tính của bạn sẽ liên lạc với tracker để lấy danh sách các peer cần kết nối. Trong quá trình down file torrent, thỉnh thoảng máy tính của bạn sẽ lại liên lạc với tracker, thông báo cho tracker biết bạn đã down và up bao nhiêu, còn bao nhiêu nữa là down xong,... Nếu bạn chuẩn bị down một file mà tracker của nó hiện đang mất kết nối, bạn sẽ không thể tạo kết nối. Nếu đang down mà tracker mất kết nối, bạn vẫn có thể tiếp tục q trình truyền tải file với các peer hiện có, nhưng sẽ không kết nối thêm được với peer mới nào khác. Thường các lỗi với tracker ít khi xảy ra trong một thời gian dài, do đó bạn chỉ việc chờ đợi và để mở trình BitTorrent.

Seed:

Một node trong hệ thống mà sau khi hoàn thành việc sao chép đầy đủ các file và có thể phục vụ cho các node khác thì được gọi là một seed.

Seeds là những người đã có 100% file hoặc thư mục (file hoặc thư mục hoàn chỉnh) và vẫn đang tiếp tục upload cho những người khác.

Một máy tính có bản copy hồn hảo của file torrent bạn muốn down. Khi quá trình down của bạn kết thúc, bạn sẽ hoạt động như một seed cho đến khi bạn bấm Finish hoặc đóng hồn tồn trình BitTorrent lại. Thường thì bạn nên seed một file đã down xong cho người khác. Đồng thời, khi một file torrent mới được đưa lên tracker, một ai đó phải seed nó cho người khác down. Hãy nhớ rằng, tracker khơng biết tí gì về nội dung thực sự của file, vì thế ln cần phải có ít nhất một máy đóng vai trị seed.

Reseed:

Với một file torrent mà số seed của nó là con số 0 trịn trĩnh (hoặc khơng có đủ số peer để tạo thành một bản copy hồn hảo), thì dù muốn hay không tất cả những gì các peer nhận được cũng sẽ là một file khơng hồn chỉnh, vì khơng ai trong swarm đó có các phần cịn thiếu. Khi điều đó xảy ra, một ai đó với file hoàn chỉnh (seed) sẽ phải đứng ra kết nối với swarm để tiến hành việc truyền tải các phần cịn thiếu. Nó gọi là reseed. Thường thì khi một yêu cầu reseed được đưa ra và được chấp thuận, người được yêu cầu phải đảm bảo mình sẽ để trình BitTorrent của mình mở trong một thời gian nhất định, tạo điều kiện cho file torrent đó có thể được nhiều người down hơn.

Swarm:

Một nhóm các máy tính kết nối với nhau thông qua một file torrent. Ví dụ, nếu trình BitTorrent của bạn báo bạn đang nối với 10 peers và 3 seeds, thì điều đó nghĩa là trong swarm đó có 13 người (khơng kể bạn).

-54- Peer là những người chưa có đủ 100% file (file chưa hoàn chỉnh) đang download các phần mà họ chưa có đồng thời upload các phần họ đã có cho người khác.

Peer là một máy tính khác trên mạng internet. Bạn tạo kết nối với peer và truyền tải dữ liệu với nó. Thường thì một peer khơng có cả 100 % file mà bạn muốn down (nếu có nó sẽ được gọi là seed). Một vài người khi nói đến peer lại nghĩ tới leecher, những kẻ sau khi down xong không chịu để trình BitTorrent chạy tiếp và hoạt động như một seed.

Leecher:

Một node mà trong khi đang download các file nhưng vẫn phục vụ các block mà node này hiện có cho các node khác thì được gọi là leecher.

Thường thì Leechers là những người download file nhưng không upload hoặc giảm mức upload xuống mức thấp nhất.

Share rating:

Nếu bạn dùng một trình BitTorrent với giao diện GUI, bạn sẽ thấy thông số share rating hiện trên giao diện. Nó đơn giản chỉ là tỉ lệ bạn up trên tỉ lệ down. Nếu thông số share ratio là 1.0, điều đó có nghĩa là lượng bạn down bằng với lượng bạn up. Số này càng cao thì nghĩa là bạn đóng góp càng nhiều. Nếu bạn thấy share ratio là vơ cùng, thì nghĩa là bạn đang seed một file - bạn up nhưng khơng down. Vì lợi ích của người khác, hãy giữ cho share ratio của bạn lớn nhất có thể.

Các trang có file torrent

Có rất nhiều trang web liệt kê các file torrent. Bạn chọn rồi down load file torrent về. Sau đó open bằng chương trình BitTorrent của bạn. Ngay lập tức, bạn sẽ được kết nối với tracker và bắt đầu download.

Một số trang web đó là: mininova.org

Torrentbits.org TorrentReactor.com

FileList.org – Phải đăng ký ...

Tầm quan trọng của việc Upload.

Việc upload trên BitTorrent là đương nhiên và cần thiết. Đặt trường hợp bạn đang download file có 3 seeds và 800 peers, và việc chia sẽ đã hoàn tất ở một số peers. Giả sử bạn là 1 peer đã download xong nhưng chỉ upload 10% của file rồi ngừng. Việc làm này sẽ dẫn đến hậu quả rất xấu bởi vì bạn làm vậy thì nhiều người khác cũng có thể làm như vậy, sau đó sẽ có rất ít seeds và có thể sẽ khơng cịn seeds và những người chưa hồn tất sẽ khơng có file hồn chỉnh. Nếu

-55- tất cả mọi người đều có thói quen ngừng upload ngay khi download xong thì file đó sẽ khơng tồn tại lâu. Hãy đảm bảo rằng dung lượng upload của bạn bằng với dung lượng download hoặc hơn. Nếu ai đó download 700MB và upload 700MB thì vẫn chưa tốt. Để file đó có thể tồn tại lâu và những người khác còn được download về với tốc độ cao, mọi người hãy cố upload bằng 150% dung lượng mình download. Khi bạn đã download xong, hãy tiếp tục upload đến khi bạn đạt tỉ lệ này. Các tracker luôn cấm các leechers do đó ln theo dõi việc download/upload của bạn. Nếu bạn thích BitTorrent, đừng thử hoặc cố đánh lừa nó.

Cơ chế hoạt động của BitTorrent

Khi một node mới kết nối với một torrent, nó sẽ liên hệ với tracker để nắm được danh sách tập ngẫu nhiên các seed hoặc leecher có trong hệ thống hiện tại. Node mới sau đó sẽ thử thiết lập tới khoảng 40 node tồn tại hiện có trong hệ thống để trở thành hàng xóm với các node này. Nếu số các node hàng xóm của một nút thấp hoặc giảm xuống dưới 20 (do các node đó rời hệ thống - chẳng hạn) thì node mới này sẽ liên hệ lại với tracker để được bổ sung thêm các node mà node này có thể kết nối tới được.

Mỗi một node sẽ tìm kiếm thời điểm thích hợp (thời cơ) để download các khối từ các node khác (hàng xóm) và upload các khối tới các node hàng xóm này. Thường thì một nút có thể chọn một vài khối mà nó có thể download. Nó sử dụng chính sách local rarest first (ưu tiên cục bộ-LRF) trong việc chọn các

block để download, nghĩa là node thử download các khối được sao chép ít nhất xung quanh các hàng xóm của node đó.

Chính sách tit-for-tat (có đi có lại – TFT) được sử dụng để cảnh giác chống lại cái gọi là free-riding, nghĩa là: một node sẽ thích hơn việc upload cho các node hàng xóm đã cung cấp cho node này tỉ lệ download tốt nhất. Mỗi một node giới hạn số các upload đồng thời thành một số nhỏ, số này vào khoảng 5. Các seed khơng có gì để download, nhưng chúng cho một chính sách như nhau, đó là chúng upload tới 5 nodes mà có tỉ lệ download cao nhất.

Cơ cấu được sử dụng để giới hạn số các upload đồng thời gọi là choking (ngăn chặn, điều tiết), đó là khoảng thời gian từ chối của một node để upload tới

hàng xóm. Chỉ những kết nối để chọn hàng xóm (vào khoảng 5) là unchoked ở

bất kỳ thời điểm nào. Một node tính tốn tỉ lệ download nhận được từ hàng xóm của nó từ 10 giây để quyết định hàng xóm này (chưa bị chokes) sẽ bị choke để thay thế bởi một hàng xóm khác.

BitTorrent cũng kết hợp một chính sách gọi là optimistic unchoke (unchoke lạc quan) trong một node, trong việc unchoke bình thường đã mơ tả ở

trên, trong unchoke chọn ngẫu nhiên hàng xóm bất chấp tỉ lệ download đạt được từ hàng xóm đó. Optimistic unchoke thực hiện 30 giây mỗi lần. Cơ cấu này cho

-56- phép các node khám phá các node hàng xóm thường có tỉ lệ download cao, giống như cho phép các node mới nhận được block đầu tiên của chúng.

Có thể nói BitTorrent là một giao thức được tạo ra phục vụ cho quá trình truyền tải file. Dưới hình thức kết nối peer-to-peer, người sử dụng kết nối trực tiếp với nhau để gửi và nhận các phần của một file. Một server trung tâm, dưới tên gọi tracker, được lập ra để xác định vị trí những người dùng ấy. Tracker mang nhiệm vụ duy nhất là quản lý các kết nối, nó khơng cần biết gì về nội dung file đang được truyền tải, bởi thế ngay cả khi tracker có băng thơng cực nhỏ, một số lượng người dùng cực lớn vẫn có thể tham gia vào việc truyền tải file. Điểm cơ bản trong BitTorrent chính là việc người dùng thực hiện việc up và down cùng một lúc trong khi băng thông được tổ chức sao cho tối ưu nhất. BitTorrent được thiết kế để khi số người dùng càng tăng cao thì càng làm việc hiệu quả - điều này trái ngược hẳn với các giao thức truyền tải file khác.

Một ví dụ để dễ hình dung q trình này này là hình ảnh một nhóm người ngồi quanh một cái bàn. Hiển nhiên ai cũng có thể nói và nghe người khác nói. Giờ hãy tưởng tượng họ đều đang cố lấy một bản copy của một cuốn sách. Người A cho biết anh ta có trang 1-10, 23, 42-50 và trang 75. Người C, D, E đều thiếu một số trang trong số các trang người A có, vì thế họ cần sắp xếp để lấy bản copy của những trang mà mình thiếu. Đến người B, anh cho biết mình có trang 11-22, 31-37, và 63-70. Người A, D và E bảo B rằng họ muốn một vài trang trong số đó, và B cần đưa cho họ bản copy các trang ấy. Quá trình cứ thế tiếp tục, mọi người lần lượt trao đổi cho nhau những phần mình có và người khác cần. Sau một lát, dù tất cả đã có bản copy của hầu hết các trang trong cuốn sách, song không ai trong số họ có đủ cả cuốn.

Giờ hãy chú ý đến một người khác cũng ngồi bên bàn mà ta tạm gọi là S. Người này có bản copy của cả cuốn sách, và vì thế khơng cần nhận bất cứ trang nào. Anh ta có nhiệm vụ phân phát những trang mà không ai trong nhóm có. Cịn người nhận sẽ khơng lấy các trang mà người khác trong nhóm đã có. Như vậy, người S có thể chia sẻ cuốn sách cho người khác mà không cần phải gửi cả bản copy cho từng người. Anh ta chỉ việc đưa bản copy các trang khác nhau cho những người khác nhau, và tự họ sẽ chia sẻ cho nhau. Người S ở đây được gọi là seed trong BitTorrent.

Qui trình khi download với chương trình BitTorrent

1. Trước hết, bạn tải về một file có phần mở rộng là .torrent và mở nó với chương trình BitTorrent của mình. File torrent này không chứa file mà bạn muốn down, nó chỉ mang dữ liệu mô tả file mà bạn CHUẨN BỊ down.

2. Chương trình BitTorrent của bạn dùng thông tin ghi nhận được trong file torrent để kết nối với tracker. Tracker là server mang thông tin và danh sách các peer đang kết nối với file bạn muốn down.

-57- 3. Trình BitTorrent của bạn gửi request tới các peer đang kết nối với file đó (swarm) và bắt đầu down về các phần nhỏ của file đó từ mỗi peer.

4. Khi đã down xong mỗi phần nhỏ, trình BitTorrent sẽ bắt đầu up phần đó lên cho những ai trong swarm chưa có cơ hội down phần nhỏ ấy.

5. Quá trình tiếp diễn cho và mọi người trong swarm tiến hành down các phần của file mình cần.

6. Sau khi down xong file bạn cần, trình BitTorrent sẽ chuyển máy bạn

Một phần của tài liệu LUẬN VĂN: ĐẢM BẢO CÔNG BẰNG TRONG CÁC ỨNG DỤNG CỘNG TÁC NGANG HÀNG docx (Trang 51 - 58)

Tải bản đầy đủ (PDF)

(70 trang)