Đề tài nghiên cứu của khóa luận tập trung vào vấn đề nghiên cứu ảnh hưởng của hiện tượng tham gia mà không đóng góp(tiếng Anh: free-riding) đối với hệ thống chia sẻ file ngang hàng BitTorrent. Trước hết, khóa luận sẽ cung cấp một cái nhìn tổng quan về hệ thống mạng ngang hàng hiện nay. Tiếp đó, chúng ta sẽ đi sâu vào nghiên cứu hệ thống chia sẻ file ngang hàng BitTorrent (khái niệm, cơ chế và hoạt động). và để làm rõ nội dung của đề tài nghiên cứu, Hệ thống BitTorrent sẽ được mô hình...
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Lê Quang Tuấn NGHIÊN CỨU ẢNH HƯỞNG CỦA HIỆN TƯỢNG “THAM GIA MÀ KHƠNG ĐĨNG GĨP” LÊN HỆ THỐNG CHIA SẺ FILE NGANG HÀNG BITTORRENT KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng nghệ thơng tin HÀ NỘI - 2009 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Lê Quang Tuấn NGHIÊN CỨU ẢNH HƯỞNG CỦA HIỆN TƯỢNG “THAM GIA MÀ KHƠNG ĐĨNG GÓP” LÊN HỆ THỐNG CHIA SẺ FILE NGANG HÀNG BITTORRENT KHỐ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán hướng dẫn: Tiến sỹ Nguyễn Đại Thọ HÀ NỘI - 2009 Lời cảm ơn Mở đầu cho khóa luận, em xin gửi lời cám ơn chân thành tới thầy cô giáo khoa Công nghệ thông tin, Trường đại học Công Nghệ, Đại học Quốc gia Hà nội tận tình dạy dỗ em năm học vừa qua Đặc biệt, em xin chân thành cám ơn tiến sỹ Nguyễn Đại Thọ, người hướng dẫn, bảo em trình thực khóa luận Mình muốn gửi lời cám ơn tới người bạn học K50CB K50MMT, người với em chia ngày tháng ghế giảng đường đại học, chia sẻ niềm vui giúp đỡ lẫn trình học tập trường Cuối cùng, với tất lịng biết ơn, muốn nói lời cám ơn cha mẹ, người tin tưởng động viên em, cho em chỗ dựa vững để vững tin sống Tháng năm 2009 Lê Quang Tuấn Tóm tắt Đề tài nghiên cứu khóa luận tập trung vào vấn đề “nghiên cứu ảnh hưởng tượng “tham gia mà khơng đóng góp”(tiếng Anh: free-riding) hệ thống chia sẻ file ngang hàng BitTorrent” Trước hết, khóa luận cung cấp nhìn tổng quan hệ thống mạng ngang hàng Tiếp đó, sâu vào nghiên cứu hệ thống chia sẻ file ngang hàng BitTorrent (khái niệm, chế hoạt động) để làm rõ nội dung đề tài nghiên cứu, Hệ thống BitTorrent mơ hình hóa tham số, nút tham gia mạng chia làm loại seed (nút upload mà khơng download), free-rider (nút tham gia vào hệ thống download mà không đóng góp) non free-rider (các nút bình thường, vừa tham gia download vừa tham gia upload), từ xem xét khả tự bảo vệ chống lại freeriding chế BitTorrent, đề xuất phương án cải thiện Trong phần sau khóa luận, tơi sử dụng chương trình mơ OctoSim (một chương trình mơ hệ thống BitTorrent Microsoft Research) để thực thử nghiệm chứng minh tính đắn nghiên cứu Mục lục Giới thiệu chung Chương Tổng quan mạng ngang hàng 1.1 Khái niệm mạng ngang hàng 1.2 Phân loại mạng ngang hàng 1.2.1 Mạng ngang hàng túy mạng ngang hàng lai ghép 1.2.2 Mạng ngang hàng khơng có cấu trúc mạng ngang hàng có cấu trúc 1.3 Ưu vấn đề cần xem xét mạng ngang hàng 1.3.1 Các ưu mạng ngang hàng 1.3.2 Các vấn đề cần xem xét mạng ngang hàng 1.3.3 Tiềm phát triển mạng ngang hàng Chương Mạng chia sẻ file ngang hàng BitTorrent 2.1 BitTorrent gì? 2.2 Cơ chế hoạt động BitTorrent 2.2.1 Quá trình chia sẻ file 2.2.2 Sự lựa chọn phần đơn vị (Piece Selection) 2.2.3 Thuật toán Choking 10 2.3 Optimistic Unchoking Free-Rider 10 2.4 So sánh BitTorrent số hệ thống chia sẻ file ngang hàng khác 11 Chương Mơ hình hóa xem xét ảnh hưởng free-riding lên hệ thống chia sẻ file BitTorrent 13 3.1 Một số nghiên cứu liên quan 13 3.2 Mơ hình tham số 13 3.3 Nghiên cứu hệ thống trạng thái ổn định (steady-state) 16 Chương Chương trình mơ OctoSim 23 4.1 Cài đặt sử dụng chương trình 23 4.1.1 Giới thiệu, cách thức cài đặt thiết lập môi trường để chạy chương trình OctoSim 23 4.1.2 Đầu vào đầu chương trình mơ 24 4.2 Cấu trúc chức chương trình mơ 25 4.2.1 File Main.cs: 25 4.2.2 File WorkloadProcessor.cs: 26 4.2.3 File Sim.cs: 27 4.2.4 File ProtocolMain.cs: 28 4.2.5 File Node.cs: 29 4.2.6 File SimParameters.cs 30 4.2.7 Các file khác 30 Chương Các thí nghiệm mơ đánh giá 31 5.1 Kết luận sau xem xét mơ hình đề xuất phương án cải thiện 31 5.1.1 Kết luận thu từ q trình phân tích tính toán 31 5.1.2 Đề xuất phương án cải thiện 31 5.2 Tiến hành thử nghiệm 32 5.2.1 Thử nghiệm thứ 32 5.2.2 Thử nghiệm thứ hai 34 5.2.3 Thử nghiệm thứ ba 36 Chương Kết luận phương hướng 37 Tài liệu tham khảo 39 Giới thiệu chung Hiện nay, máy tính trở thành cơng cụ khơng thể thiếu sống người Máy tính hỗ trợ đắc lực cho công việc, học tập giải trí nơi, lúc Và lý lớn khiến cho máy tính len lỏi vào ngõ ngách sống có xuất mạng Internet Internet giúp thu hẹp khoảng cách, mở cánh cửa bước vào kho tài nguyên tri thức vô tận nhân loại Trong trình phát triển Internet, bên cạnh ứng dụng theo mơ hình Client / Server truyền thống WWW, email, FTP,… thời gian gần đây, xuất ứng dụng theo mơ hình ngang hàng (Peer to Peer – P2P) Với ưu điểm tốn chi phí xây dựng sở hạ tầng, tận dụng tài nguyên máy tham gia vào mạng, giải vấn đề điểm chết trung tâm mơ hình Client / Server truyền thống, ứng dụng mạng ngang hàng ngày quan tâm phát triển nhiều Từ xuất Napster vào năm 1999, có nhiều ứng dụng chia sẻ file ngang hàng phát triển, ví dụng Gnutella, KaZaA BitTorren Nhưng BitTorrent có số lượng người dùng lớn trở thành giải pháp cho việc chia sẻ file ngang hàng Trong nghiên cứu cho thấy rằng, tài khoản sử dụng BitTorrent chiếm tới 35% lưu lượng trung chuyển mạng Internet, số lớn, tất hệ thống chia sẻ file khác gộp lại Sự phát triển mạnh mẽ BitTorrent thời gian vừa qua cho thấy hiệu ổn định chế giao thức Tuy nhiên, hầu hết hệ thống hoạt động mơ hình mạng ngang hàng, hoạt động BitTorrent dựa tự nguyện đóng góp thành phần tham gia mạng Do đó, BitTorrent phải đối mặt với vấn đề free-riding (có người dùng tham gia vào mạng để lấy tài nguyên mà khơng chịu đóng góp cho hệ thống) Trong khn khổ khóa luận, bước tìm hiểu qua chương: Chương 1: Tổng quan mạng ngang hàng, Trình bày kiến thức mạng ngang hàng (P2P Network),ưu nhược điểm mạng ngang hàng vấn đề cần ý nghiên cứu mạng ngang hàng Chương 2: Hệ thống chia sẻ file ngang hàng BitTorrent, giới thiệu BitTorrent, giao thức, cách thức chia sẻ file, chế thúc đẩy nút tham gia đóng góp cho hệ thống So sánh BitTorrent với vài hệ thống chia sẻ file ngang hàng khác Trong chương trình bày nguyên nhân dẫn đến khả tồn nút free-rider Chương 3: Mơ hình hóa xem xét ảnh hưởng tượng free-riding lên hệ thống chia sẻ file BitTorrent, chương nghiên cứu mơ hình BitTorrent đề xuất báo “Free-Riding on BitTorrent-like File Sharing System: Modeling, Analysis and Improvement” tác giả Jiadia Yu, Minglu Li, Jie Wu Qua thấy mức độ ảnh hưởng tượng free-riding lên hệ thống khả tự bảo vệ hệ thống BitTorrent Từ đó, đề xuất chế khắc hạn chế tượng free-riding Chương 4: Chương trình mơ OctoSim, chương giới thiệu mơ tả cấu trúc chức chương trình mơ OctoSim ( chương trình mơ hệ thống BitTorrent Microsoft Research viết ngôn ngữ C#) Chương 5: Các thí nghiệm mơ đánh giá, chương rút số kết luận từ trình nghiên cứu đề xuất phương án nhằm hạn chế tượng free-riding, sau sử dụng chương trình mơ OctoSim để thực thí nghiệm nhằm kiểm chứng kết nghiên cứu hiệu đề xuất, có nhận xét giải thích kết đạt Chương 6: Kết thu trình làm khóa luận phương hướng nghiên cứu tương lai Chương Tổng quan mạng ngang hàng 1.1 Khái niệm mạng ngang hàng Mạng ngang hàng (Peer-to-Peer hay P2P) [1] mạng máy tính hoạt động mạng chủ yếu dựa vào khả tính tốn băng thơng máy tham gia không tập trung vào số nhỏ máy chủ trung tâm mạng thông thường Mạng ngang hàng thường sử dụng để kết nối máy thông qua lượng kết nối dạng ad hoc Mạng ngang hàng có nhiều ứng dụng Các loại ứng dụng thường xuyên gặp ứng dụng chia sẻ tập tin, tất dạng âm thanh, hình ảnh, liệu, ứng dụng truyền liệu thời gian thực điện thoại VoIP Một mạng ngang hàng nghĩa khơng có khái niệm máy chủ máy khách, nói cách khác, tất máy tham gia bình đẳng, máy nút mạng (cịn gọi peer) đóng vai trị đồng thời máy khách máy chủ máy khác mạng 1.2 Phân loại mạng ngang hàng 1.2.1 Mạng ngang hàng túy mạng ngang hàng lai ghép Mạng ngang hàng túy: - Các máy trạm có vai trị vừa máy chủ vừa máy khách - Khơng có máy chủ trung tâm quản lý mạng - Khơng có máy định tuyến (bộ định tuyến) trung tâm Các máy trạm có khả tự định tuyến Mạng ngang hàng lai ghép: - Có máy chủ trung tâm dùng để lưu trữ thông tin máy trạm trả lời truy vấn thơng tin - Các máy trạm có vai trị lưu trữ thông tin, tài nguyên chia sẻ để cung cấp thông tin chia sẻ tài nguyên cho máy chủ - Sử dụng trạm định tuyến để xác định đia IP máy trạm 1.2.2 Mạng ngang hàng khơng có cấu trúc mạng ngang hàng có cấu trúc Mạng phủ (Overlay) ngang hàng bao gồm tất nút mạng đại diện cho máy tham gia liên kết nút mạng Một liên kết tồn hai nút mạng nút mạng biết vị trí nút mạng Dựa vào cấu trúc liên kết nút mạng mạng phủ ta phân loại hệ thống mạng ngang hàng phân tán thành loại: có cấu trúc hay khơng cấu trúc Một mạng ngang hàng không cấu trúc liên kết nút mạng mạng phủ thiết lập ngẫu nhiên (tức không theo qui luật nào) Những mạng dễ dàng xây dựng máy muốn tham gia mạng lấy liên kết có sẵn máy khác mạng sau tự thân thêm vào liên kết riêng Khi máy muốn tìm liệu mạng đồng đẳng không cấu trúc, yêu cầu tìm kiếm truyền mạng để tìm nhiều máy chia sẻ tốt Hệ thống thể rõ nhược điểm: khơng có đảm bảo tìm kiếm thành cơng Đối với tìm kiếm liệu phổ biến chia sẻ nhiều máy, tỉ lệ thành công cao, ngược lại, liệu chia sẻ vài máy xác suất tìm thấy nhỏ Tính chất hiển nhiên mạng ngang hàng khơng cấu trúc, khơng có mối tương quan máy liệu quản lý mạng, u cầu tìm kiếm chuyển cách ngẫu nhiên đến số máy mạng Số lượng máy mạng lớn khả tìm thấy thơng tin nhỏ Một nhược điểm khác hệ thống khơng có định hướng, yêu cầu tìm kiếm thường chuyển cho số lượng lớn máy mạng làm tiêu tốn lượng lớn băng thông mạng, dẫn đến hiệu tìm kiếm chung mạng thấp Hầu hết mạng ngang hàng phổ biến không cấu trúc Napster, Gnutella, Fasttrack eDonkey2000 Mạng ngang hàng có cấu trúc khắc phục nhược điểm mạng không cấu trúc cách sử dụng hệ thống DHT (Bảng Băm Phân Tán, tiếng anh: Distributed Hash Table) Hệ thống định nghĩa liên kết nút mạng mạng phủ theo thuật toán cụ thể, đồng thời xác định chặt chẽ nút mạng chịu trách nhiệm phần liệu chia sẻ mạng Với cấu trúc này, máy cần tìm liệu, cần áp dụng giao thức chung để xác định nút mạng chịu trách nhiệm cho liệu sau liên lạc trực tiếp đến nút mạng để lấy kết Một số mạng ngang hàng có cấu trúc tiếng bao gồm Chord, CAN, Kademlia, Pastry Tapestry Như thấy hệ thống BitTorrent mà chúng nghiên cứu thuộc loại mạng ngang hàng lai ghép ☺ 1.3 Ưu vấn đề cần xem xét mạng ngang hàng 1.3.1 Các ưu mạng ngang hàng Các ưu mạng ngang hàng mục đích ban đầu tạo mạng ngang hàng người ta nghĩ đến Mạng ngang hàng tập hợp liên kết máy tính đơn lẻ với đóng góp tài nguyên (bao gồm dung lượng ổ cứng, băng thơng khả tính tốn) Do đó, sức mạnh mạng ngang hàng tăng lên số nút tham gia mạng tăng lên(trái với mô hình client/server truyền thống, sức mạnh hiệu mạng giảm số lượng client tham gia vào mạng tăng lên) Một ưu khác mạng ngang hàng so với mơ hình client/server truyền thống tính chất phân tán Điều đảm bảo tính bền vững mạng có một(hoặc vài nút) gặp phải cố Mặt khác, tính chất bền vững mạng lớn nên có chế phân phối thơng tin hợp lý ln đảm bảo tính sẵn sàng cao mạng Một ưu đáng nói đến mơ hình P2P chi phí xây dựng hệ thống thấp, việc triển khai hệ thống mạng dễ dàng 1.3.2 Các vấn đề cần xem xét mạng ngang hàng Các hệ thống mạng ngang hàng xây dựng nên dựa tự nguyện tham gia nút thành viên Do thiết kế nghiên cứu cần ý đến vấn đề sau: Tính ổn định dễ mở rộng mạng: Làm nút tham gia vào mạng cách dễ dàng có thể, đồng thời phải giữ tính ổn định mạng, có nghĩa mạng hoạt động bình thường có số nút rời mạng (tự nguyệt hay đột ngột bị lỗi) Tận dụng tối đa tài nguyên đóng góp nút tham gia mạng: Sức mạnh hệ thống mạng ngang hàng phụ thuộc vào việc hệ thống tận dụng tài nguyên đóng góp nút tham gia mạng Đặc biệt ý đến vấn đề tận dụng băng thông nút tham gia mạng tình trạng tồn nút mạng thời điểm xét, nút dòng, cụ thể, thơng tin dịng là: #d #u p s #p D Muốn biết chi tiết hiểu khái niệm, xem phương thức Dump class Node file Node.cs 4.2 Cấu trúc chức chương trình mơ Tại thư mục tạo sau bung nén chương trình, có chứa thư mục sau: + cmu_scripts + exp_scripts + OctoSim + plotscripts + scripts + workloads Tuy nhiên, xem xét thực thi chương trình ta cần ý tác động vào file thư mục OctoSim workloads Thư mục OctoSim chứa tồn mã nguồn C# chương trình Sau đây, mô tả vài file mã nguồn quan trọng chương trình 4.2.1 File Main.cs: Chức file xử lý tham số dòng lệnh lưu vào mảng tĩnh để xử lý sau Về mặt cấu trúc file chứa class MainWrapper class chứa hàm public static int Main(String[] args) gọi đến chạy chương trình Ngồi ra, lớp cịn khai báo mảng tĩnh public static ArrayList cmdline_arguments dùng để lưu giá trị tham số dịng lệnh 25 Nhiệm vụ hàm Main đọc vào tham số dòng lệnh, lưu vào mảng tĩnh khai báo (chi tiết tham số ý nghĩa tham số xem cụ thể file mã nguồn), sau tạo thực thể new WorkloadProcessor(workload_file) để xử lý file nằm thư mục workloads nói Nội dung chi tiết WorkloadProcessor nêu sau 4.2.2 File WorkloadProcessor.cs: Chức file đọc nội dung file workload (*.wl), dịch nội dung dòng tương ứng thành chức gán tham số cho chương trình, tạo thực thể Simulator khởi động vòng lặp để xử lý kiện chương trình mơ Về mặt cấu trúc, nội dung file mã nguồn có phương thức: void ProcessWorkload(string workloadfile): Đọc vào nội dung file workload theo dòng, bỏ qua dịng bắt đầu kí tự ‘#’ (kí tự # để dịng dịng thích), gọi phương thức GetTimeOfJob để lấy thời gian lệnh thực kiểm tra kiểm tra xem thời gian thực lệnh nội dung dịng có cịn hiệu lực hay khơng, cịn gọi đến hàm ProcessJob để thực public void ProcessJob(string jobstring):Xử lý nội dung dòng thực chức tương ứng với từ khóa Khi xem nội dung phương thức này, hiểu thêm ý nghĩa từ khóa chứa file workload, đồng thời biết cách thức viết dòng file workload cho xác phù hợp với ý định Hai từ khơng thể thiếu viết file workload "process_cmdline_args" dùng chương trình biết cần xử lý tham số dòng lệnh (đã xử lý lưu hàm Main()), "initialize" dùng để bắt đầu “chạy” chương trình mơ Thiếu từ khóa chương trình mơ khơng hoạt động ý Như thế, dịng ln ln phải có file workload “now process_cmdline_args end” “now initialize end” Ngồi cịn có từ khóa "setparam" dùng để gán giá trị tham số chương trình Chi tiết xem file mã nguồn Thông tin ý 26 nghĩa tham số chương trình nêu phần mô tả file SimParameter.cs private long GetTimeOfJob(string job): Phương thức đọc lấy thời gian thực dòng lệnh file workload (lấy giá trị từ trái sang phải – giá trị time mô tả cấu trúc file workload đầu vào nói phần trước) 4.2.3 File Sim.cs: Chứa lớp đại diện cho mơ chương trình, với hàng đợi kiện xử lý theo băng thơng Về mặt cấu trúc, file có chứa lớp giao diện: public interface TimerEvent: Khai báo mẫu cho kiện xử lý chương trình, để lưu vào hàng đợi xử lý, kiện cần tuân theo mẫu public class WorkloadGenerator : Tạo thông số môi trường cho thử nghiệm ( ví dụ phân phối băng thông nút, thời gian tham gia rời khỏi mạng nút … tùy thuộc tham số đầu vào) public class Sim: Đây lớp đại diện cho tồn chương trình mô Trong lớp cần ý đến: private EventQueue triggers : Cây lưu giữ kiện xử lý chương trình mơ Khi chương trình chạy duyệt từ gốc xử lý kiện private SortedList nodes : Chứa danh sách toàn nút tham gia hệ thống public void RaiseSimulationEvent(long ms, TimerEvent obj): Phương thức thêm kiện vào hàng đợi, với đầu vào nội dung kiện thời gian diễn kiện, phương thức quan trọng dùng để xây dựng nên hàng đợi chương trình mơ public void AssignBandwidth(Node node): Gán băng thông cho nút public Node CreateNode(): Thêm nút vào danh sách nút gán băng thơng cho nút (chuẩn bị cho nút tham gia vào mạng) public void KillNode(Node node): Xóa nút danh sách nút lưu (sử dụng trường hợp nút rời khỏi mạng) 27 public bool ProcessTill: Đây phương thức tạo vịng lặp xử lý cho chương trình mơ Nó duyệt kiện hàng đợi xử lý hết kiện hết thời gian quy định Trong phương thức cịn có chức xuất hình console số thơng tin tiến trình thực thử nghiệm thời điểm định 4.2.4 File ProtocolMain.cs: Chứa kiện chức điều khiển chương trình mơ cách đưa vào kiện thích hợp thời điểm hợp lý Về mặt cấu trúc, nội dung file bao gồm lớp: public class CreateNodeEvent : TimerEvent: Khai báo xử lý kiện tạo nút Sự kiện gọi đến xử lý có nút tham gia mạng public class KillNodeEvent : TimerEvent: Khai báo xử lý sử kiện hủy bỏ nút Được sử dụng muốn nút rời mạng public class ScheduleSomeJoinsEvent : TimerEvent: Khai báo xử lý kiện lập lịch cho số nút tham gia vào mạng public class ProtocolSim: Lớp file này, định nghĩa cách thức xảy kiện chương trình Một số phương thức cần ý lớp là: public static void CreateNode(): Tạo nút public static void KillNode(Node n): Hủy nút private static void CreateSeeds(int n_seeds): Tạo seed thời điểm bắt đầu (initial seeds) public static void Initialize(): Bắt đầu chương trình mơ public static void ScheduleSomeJoins(): Lập lịch cho tồn nút q trình tham gia vào mạng Các giá trị sử dụng hàm thiết lập thông qua tham số chương trình public static void SchedulePFCJoins(): lập lịch cho nút khác tham gia vào mạng Có thể đọc chi tiết phần VIII.A [4] (phần nói Post-Flash Crowd), khóa luận này, tơi tận dụng chức để thực thử nghiệm 28 4.2.5 File Node.cs: Nội dung file xem “lõi” toàn hệ thống, file có lớp biểu diễn tồn đời sống nút từ tạo tham gia vào mạng đến rời khỏi hệ thống Về mặt cấu trúc, file có nhiều lớp, quan trọng lớp Node, mơ cho nút tham gia vào hệ thống lớp cần ý đến: private LinkCap m_LinkCap : Chứa thông tin băng thông download upload nút private Hashtable m_Connections: Chứa toàn kết nối nút đến nút hàng xóm private ArrayList m_Uploads : Chứa danh sách liên kết upload private ArrayList m_Downloads : Chứa danh sách liên kết dang download private PieceInfo[] m_PieceInfoArray : Chứa thơng tin tồn pieces chứa nút private bool m_AmSeed : Cờ để xác định xem nút có phải seed hay không public Node(Sim s, Oracle ora, int n_pieces) : Phương thức khởi tạo, cho ta nhìn tổng quan nút, giá trị thuộc tính nút khởi tạo public void JoinNetwork() : Phương thức biểu diễn hành động nút gia nhập vào hệ thống Và lập lịch cho hoạt động nút public void BecomeSeed() : Phương thức sử dụng nút hoàn thành download lại thành seed hệ thống private int FindPieceToDownload(Connection conn): Trong phương thức có cài đặt quy tắc chọn piece theo Local Rarest First nói phần chế BitTorrent public float GetTotalDownloadRate(),public float GetTotaluploadRate(): Trả tốc độ download upload nút public void Dump(StreamWriter stream): Phương thức xuất thông tin nút, sử dụng để ghi vào file output *.out.bw 29 Ngồi cịn nhiều thuộc tính phương thức khác, xem trực tiếp nội dung file mã nguồn 4.2.6 File SimParameters.cs Đây file liệt kê hầu hết tham số sử dụng chương trình mơ Khi tiến hành thử nghiệm, cần lưu ý nhiều đến file Về mặt cấu trúc, file có chứa lớp public SimParameters, lớp có class thuộc tính dùng làm tham số cho chương trình mơ Các tham số mơ tả kĩ file mã nguồn, đây, ta liệt kê vài tham số quan trọng: public static long simulationTime: Tổng thời gian tiến hành thử nghiệm public static long joinTime : Thời gian để nút tham gia vào hệ thống public static float joinRate : Tốc độ nút tham gia vào hệ thống public static int fileSize : Dung lượng file sử dụng, tính theo kilobit public static int blockSize : Độ lớn piece, tính theo kilobit public static double seedLeavingProbability : Tỉ lệ nút rời mạng sau hồn thành download ( giá trị ln nằm khoảng từ đến 1) public static int maxUploads: Số lượng kết nối upload đồng thời nút public static int nInitialSeeds : Số lượng seed thời điểm bắt đầu kiện, seed nguồn cung cấp nội dung file cho toàn hệ thống 4.2.7 Các file khác Ngồi file nêu, cịn có số file khác thư mục mã nguồn Logger.cs, file có chức tạo file text đầu chương trình hay Choker.cs file mơ lại chiến lược TFT BitTorrent … 30 Chương Các thí nghiệm mơ đánh giá 5.1 Kết luận sau xem xét mơ hình đề xuất phương án cải thiện 5.1.1 Kết luận thu từ trình phân tích tính tốn Thơng qua nghiên cứu mơ hình xây dựng chương 3, thấy Optimistic Unchoking có khả dẫn đến công mạng tượng free-riding Đẳng thức (3) cho thấy free-rider nhận phần tài nguyên cung cấp non free-rider thông qua Optimistic Unchoking Tuy nhiên, kết thu từ định lý cho thấy rằng, phần tài nguyên hệ thống mà free-rider thu thơng qua Optimistic Unchoking không đáng kể, số lượng free-rider mạng tăng lên (tương ứng với tăng lên α), thời gian download trung bình free-rider tăng lên đáng kể thời gian download trung bình non free-rider khơng thay đổi nhiều Mặt khác, từ kết thu định lý 2, thấy rằng, số lượng seed hệ thống tăng lên thời gian download trung bình free rider lại giảm đi, số lượng seed hệ thống đạt đến giá trị định thời gian download trung bình free-rider non free-rider trở nên tương đương với Như vậy, ta thấy rằng, hệ thống chia sẻ file BitTorrent, free-rider chủ yếu nhận nguồn tài nguyên từ seed 5.1.2 Đề xuất phương án cải thiện Ở thấy rằng, free-rider chủ yếu nhận nguồn tài nguyên hệ thống nhờ có seed Nguyên nhân tượng chế BitTorrent, seed nút tự nguyện upload liệu vào mạng, upload liệu cho số lượng giới hạn nút liên kết với có tốc độ download từ nhanh mà khơng phân biệt nút free-rider hay non free-rider Điều gây nên cơng nút non free-rider Trong khóa luận này, xin đề xuất thay đổi nhỏ chế BitTorrent seed Đó là, chọn lựa nút hàng xóm để upload liệu, seed xem xét đến đóng góp nút mạng, với quy tắc đơn giản thay upload đến số lượng giới hạn nút có tốc độ download từ nhanh 31 upload liệu cho số lượng giới hạn nút có tổng tốc độ upload vào hệ thống nhanh nhất, từ chối upload cho nút có tổng tốc độ upload vào mạng Từ thay đổi nhỏ trên, thấy rằng, hệ thống mới, seed ưu tiên nút có đóng góp nhiều mạng, nút có tốc độ upload cao có hội phục vụ trước, cải thiện tính cơng mạng Quy tắc thứ 2, khơng mở kết nối upload cho nút có tốc độ download nhằm loại bỏ hội download từ seed free-rider Tuy nhiên, lại thấy rằng, free-rider nhận phần tài nguyên hệ thống seed áp dụng Optimistic Unchoking Do hạn chế thời gian trình độ, tơi chưa có điều kiện kiểm chứng đánh giá hiệu phương án thay đổi đề xuất thơng qua mơ hình tham số, nhiên, thấy hiệu sau thay đổi chế seed hệ thống BitTorrent chương sau, tiến hành thử nghiệm mô 5.2 Tiến hành thử nghiệm Trong phần này, tiến hành thử nghiệm để xác nhận kết định lý đề xuất cải thiện nêu Để chuẩn bị cho thử nghiệm, mở file sln Visual Studio, thí nghiệm, sử dụng file đầu vào Homog.wl thư mục workloads Để tiến hành thí nghiệm nêu, tơi chỉnh sửa lại chương trình mơ chút Đó thêm thuộc tính đánh dấu node có phải free-rider hay khơng (vì free-rider có hành động hồn tồn khác với nút bình thường, không mở kết nối upload cho nút hàng xóm nào) Trong thí nghiệm, tơi sử dụng chức thiết kế cho “post flash crown” báo [4] để đưa free-rider vào hệ thống song song với nút bình thường Và để thực thử nghiệm 3, chỉnh sửa lại chế choke seed theo mô tả phần đề xuất phương án cải thiện 5.2.1 Thử nghiệm thứ A Mô tả thử nghiệm: Trong thử nghiệm này, kiểm tra để xác nhận lại kết định lý Chúng ta xem xét ảnh hưởng free-riding lên hệ thống thay đổi tốc độ tham gia vào mạng free-rider từ đến 12, cố định tốc độ tham gia vào mạng non free-rider 100 32 B Thiết lập tham số - File size: 50MB - Block(piece) size: 256KB - #initial seed: - Seed leaving probability: - Non free-rider join rate: 100/s - Free rider join rate: thay đổi từ đến 12 - Join time : 10s - Băng thông non free-rider: Download: 1500, Upload 400 - Băng thông free-rider: Download: 1500, Upload C Kết thu được: Hình 5: Sự thay đổi thời gian download trung bình free-rider non free-rider theo biến thiên tốc độ tham gia mạng free-rider Từ kết thử nghiệm thấy thời gian download trung bình free-rider tăng lên cách nhanh chóng (đường dốc) tăng tốc độ free33 rider tham gia mạng (Tôi thử nghiệm λf 20 số free-rider khơng thể hồn thành download – kết khơng thể biểu đồ này) Trong đó, thời gian download trung bình nút non free-rider lại thay đổi không đáng kể Kết thí nghiệm hình thấy có tương ứng với biểu đồ lý thuyết thu hình Điều chứng tỏ chế BitTorrent có khả hạn chế tượng free-riding hiệu hệ thống seed 5.2.2 Thử nghiệm thứ hai A Mơ tả thử nghiệm Trong thử nghiệm này, xác nhận lại ảnh hưởng seed freerider Chúng ta cố định tốc độ tham gia vào mạng free-rider non free-rider tương ứng 100 12 Và thay đổi tham số seed leaving probability (giá trị tham số từ đến 1, tương ứng với tỉ lệ số non free-rider rời khỏi hệ thống sau hồn thành q trình download, giá trị có nghĩa tất non free-rider rời hệ thống sau download hoàn thành, giá trị có nghĩa tất non free-rider lại hệ thống trở thành seed sau hồn thành q trình download) B Thiết lập tham số - File size: 50MB - Block(piece) size: 256KB - #initial seed: - Seed leaving probability: Nhận giá trị 1, 0.975, 0.95, 0.8, 0.5, 0.2, - Non free-rider join rate: 100/s - Free rider join rate: 12 - Join time : 10s - Băng thông non free-rider: Download: 1500, Upload 400 - Băng thông free-rider: Download: 1500, Upload C Kết thu 34 Hình 6: So sánh thời gian download trung bình free-rider non free-rider số lượng seed hệ thống thay đổi Từ kết thí nghiệm, thấy rằng, số lượng seed hệ thống tăng lên thời gian download hồn thành trung bình free-rider giảm đi, giảm đến giá trị gần cố định tỉ lệ rời mạng 0.8 (lúc này, số nút non free-rider lại mạng trở thành seed tương đương với số lượng free-rider có mạng, đó, free-rider dễ dàng có đủ lượng tài nguyên hệ thống cần thiết để hoàn thành download sớm) Điều khẳng định, chế BitTorrent không hiệu việc hạn chế tượng free-riding hệ thống có nhiều seed 35 5.2.3 Thử nghiệm thứ ba A Mô tả thử nghiệm Trong thử nghiệm thứ này, tiến hành xem xét hiệu của đề xuất cải tiến nêu chương Các tham số thiết lập tương tự thử nghiệm Tuy nhiên, có thay đổi chế seed B Thiết lập tham số - File size: 50MB - Block(piece) size: 256KB - #initial seed: - Seed leaving probability: Nhận giá trị 1, 0.975, 0.95, 0.8, 0.5, 0.2, - Non free-rider join rate: 100/s - Free rider join rate: 12 - Join time : 10s - Băng thông non free-rider: Download: 1500, Upload 400 - Băng thông free-rider: Download: 1500, Upload C Kết thu Hình 7: Thời gian download trung bình free-rider chế cũ 36 Trong thử nghiệm với tỉ lệ rời mạng non free-rider chế mới, hệ thống có 32 free-rider hồn thành download ( tổng số 120 freerider có hệ thống), thời gian download trung bình biểu đồ tính cho nút hồn thành download lại Với tỉ lệ rời mạng non free-rider 0.975 có 41 nút hồn thành trình download, với tỉ lệ 0.95 có 57 nút hồn thành download Từ tỉ lệ 0.9 trở xuống, free-rider có đủ tài nguyên để hồn thành q trình download Từ biểu đồ cho thấy rằng, sau thay đổi chế BitTorrent, thời gian download trung bình free-rider bị tăng lên, chế tỏ đặc biệt hiệu hệ thống có số lượng seed Khi số lượng seed hệ thống tăng lên (~ cỡ số lượng free-rider free-rider có hội nhận đủ tài ngun thơng qua Optimistic Unchoking) Điều chứng tỏ đề xuất cải thiện nêu chương đạt hiệu định 37 Chương Kết luận phương hướng Trong nội dung khóa luận, tơi giới thiệu tổng quan mơ hình mạng ngang hàng tập trung vào tìm hiểu chế cách thức hoạt động hệ thống chia sẻ file ngang hàng BitTorrent, hệ thống chia sẻ file lớn phổ biến Nghiên cứu tập trung vào vấn đề Free-riding hệ thống BitTorrent Bằng việc mơ hình hóa hệ thống BitTorrent với tham số, thấy rằng, free-rider có khả chiếm phần nguồn tài nguyên hệ thống thông qua Optimistic Unchoking Tuy nhiên, tính tốn chế thúc đẩy BitTorrent có khả hạn chế hiệu tượng free-riding mơi trường khơng có seed, nhiên, chế lại khơng thành cơng hệ thống có nhiều seed Dựa kết luận trên, đề xuất cải tiến nhỏ giúp cho hệ thống BitTorrent hoạt động hiệu việc hạn chế tượng free-riding Các thử nghiệm chương trình mơ chứng minh tính đắn kết luận thu từ q trình tính toán lý thuyết Kết thử nghiệm cho thấy đề xuất cải tiến có hiệu định, nhiên, kết chưa đạt yêu cầu mong muốn Đề tài nghiên cứu ảnh hưởng tượng free-riding lên hệ thống chia sẻ file ngang hàng BitTorrent đạt kết định Tuy nhiên, kết nghiên cứu dừng lại góc độ lý thuyết mô phỏng, với hạn chế thời gian trình độ, nghiên cứu tơi gặp phải sai sót Vấn đề đảm bảo tính cơng mạng chia sẻ file ngang hàng, đặc biệt hạn chế hiệu tượng free-riding lng vấn đề quan trọng thúc đẩy người dùng tham gia đóng góp cho hệ thống, nâng cao tính bền vững hiệu hệ thống Trong tương lai, có điều kiện tơi tiếp tục nghiên cứu để có kiến thức sâu hệ thống chia sẻ file ngang hàng BitTorrent, từ đề xuất cải tiến giá trị hiệu Xa nữa, tìm hiểu viết ứng dụng BitTorrent Client thực để cải tiến đưa vào ứng dụng thực tế 38 Tài liệu tham khảo [1]http://en.wikipedia.org/wiki/BitTorrent_(protocol) [2]http://en.wikipedia.org/wiki/Peer_to_peer [3] D.Bertsekas and R Gallager, “Data Networks”, Prentice Hall, Englewood Cliffs NJ 1987 [4] A.R Bharambe, C Herley, and V.N Padmanabhan, “Analyzing and Improving a BitTorrent’s Performance Mechanism”, Infocom 2006 [5] Bram Cohen, “ Incentives Build Robustness in BitTorrent”, 2003 [6] L Guo, S Chen, Z Xiao, E Tan, X Ding, and X Zhang, “Measurements, Analysis, and Modeling of BitTorrent-like Systems,” Proc Internet Measurement Conference (IMC) , Berkeley, CA,October 2005 [7] M Izal, G Urvoy-Keller, E Biersack, P Felber, A Hamra, and L Garces-Erice, “Dissecting BitTorrent: five months in a torrents lifetime,” Proc Passive and Active Measurements, Antibes Juan-les-Pins, France, April 2004 [8] S Jun, andM Ahamad, “Incentives in BitTorrent Induce Free Riding,” Proc the ACMSIGCOMM Workshop on Economics of Peer-to-Peer Systems (P2PECON), ACM Press, Aug 2005 [9] T Locher, Patrick Moor, S Schmid, R Wattenhofer, “Free-riding in BitTorrent is cheap”, 2006 [10] J A Pouwelse, P.Garbacki, D H J Epema, and H J Sips, “A Measurement Study of the BitTorrent Peer-to-Peer File-Sharing System,” Technical Report PDS2004-003, Delft University of Technology, The Netherlands, April 2004 [11] J A Pouwelse, P Garbacki, D H J Epema, and H J Sips, “The BitTorrent P2P File-Sharing System: Measurements and Analysis,” Proc Fourth International Workshop on Peer-to-Peer Systems (IPTPS), February 2005 [12] D Qiu and R Srikant, “Modeling and Performance Analysis of BitTorrent-like Peer-to-Peer Networks,” SIGCOMM, Sep 2004 [13] Jiadia Yu, Minglu Li, Jie Wu, “Free-Riding on BitTorrent-like File Sharing System: Modeling, Analysis and Improvement” IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL 19, pages 954-966 [14] Nguyễn Ngọc Hà Nghiên cứu mô tham số ảnh hưởng tới hiệu mạng BitTorrent Khóa luận Tốt nghiệp Đại học, Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội, 2008 39 ...ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Lê Quang Tuấn NGHIÊN CỨU ẢNH HƯỞNG CỦA HIỆN TƯỢNG “THAM GIA MÀ KHƠNG ĐĨNG GĨP” LÊN HỆ THỐNG CHIA SẺ FILE NGANG HÀNG BITTORRENT KHOÁ LUẬN TỐT NGHIỆP... nghiên cứu khóa luận tập trung vào vấn đề “nghiên cứu ảnh hưởng tượng “tham gia mà khơng đóng góp”( tiếng Anh: free-riding) hệ thống chia sẻ file ngang hàng BitTorrent? ?? Trước hết, khóa luận cung... 2.4 So sánh BitTorrent số hệ thống chia sẻ file ngang hàng khác 11 Chương Mô hình hóa xem xét ảnh hưởng free-riding lên hệ thống chia sẻ file BitTorrent 13 3.1 Một số nghiên cứu liên quan