Luận văn Đảm bảo công bằng trong các ứng dụng cộng tác ngang hàng

Hiện nay mạng nganghàng Peer -to -Peer (P2P) cùng với các ứng dụng của nó đang nổi lên và ngày càng chiếm nhiều thị phần trong đời sống. Các mô hình ứng dụng chia sẻ file dữ liệu đã được triển khai nhiều ở các công ty, xí nghiệp, trường học và đã và đang đem lại nhiều lợiích. Để có thể sử dụng mạng P2P hiệu quả thì người sử dụng phải cộng tác với nhau. Chia sẻ file và cộng tác trong các ứng dụng P2P là đặc trưng tiêu biểu của mạng ngang hàng. Tuy nhiên trong quá trình cộng tác với nhau nảy sinh nhiều vấn đề, ví dụ như cách chia sẻ file, quyền truy cập lấy tài liệu, thứ tự ưu tiên lấy tài liệu, kiểm tra tính tín cậy trong cộng tác, ảnh hưởng trong giao dịch đến băng thông và hiệu năng của mạng, vấn đề bảo mật,. đặc biệt là trong môi trường cộng tác nhưng có tính phí. Để có thể cải thiệnđược một môi trường cộng tác hiệu quả hơn trong các ứng dụng P2P, làm cho nó ngày càng phát triển, thì đã có rất nhiều các công trình nghiên cứu trong và ngoài nước và cũng đạt được nhiều thành tựu. Với những lý do trên mà tôi chọn đề tài nghiên cứu “Đảm bảo công bằng trong các ứng dụng cộng tác ngang hàng”, v ới mong muốn nghiên cứu về một lĩnh vực nhỏ trong ứng dụng P2P, và góp một phần vào việc nâng cao hiệu quả trong ứng dụng cộng tác ngang hàng.

pdf70 trang | Chia sẻ: lvbuiluyen | Lượt xem: 1958 | Lượt tải: 1download
Bạn đang xem trước 20 trang 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, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
-1- ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGH NGUYỄN XUÂN LÔ ĐẢM BẢO CÔNG BẰNG TRONG CÁC ỨNG DỤNG CỘNG TÁC NGANG HÀNG Ngành: Công nghệ thông tin Chuyên ngành: Truyền dữ liệu và Mạng máy tính Mã số: 60 48 15 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS HỒ SĨ ĐÀM Hà Nội – 2011 -2- LỜI CAM ĐOAN Tôi xin cam đoan toàn bộ nội dung của bản luận văn với tên “Đảm bảo công bằng trong các ứng dụng cộng tác ngang hàng” là do tôi tự nghiên cứu, tham khảo và phát triển các ý, các giải thuật theo yêu cầu của đề tài luận văn. Nội dung bản luận văn chưa từng được công bố, phát hành hoặc sao chép dưới bất kì hình thức nào. Nếu sai, tôi xin chịu hoàn toàn mọi trách nhiệm ! Hà Nội, ngày 13/6/2011 Người cam đoan Nguyễn Xuân Lô -3- LỜI CẢM ƠN Em xin chân thành cảm ơn các 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; các Thầy, Cô giáo trong và ngoài trường Đại học Công nghệ đã giảng dạy, giúp đỡ, tạo điều kiện cho em học tập, nghiên cứu để có tri thức bậc Sau đại học. Đặc biệt, em xin bày tỏ lòng biết ơn sâu sắc tới Thầy giáo - Phó Giáo sư Tiến sĩ Hồ Sĩ Đàm đã tận tình hướng dẫn, chỉ bảo để em hoàn thành luận văn. Tôi cũng xin chân thành cảm ơn tới tất cả các bạn học viên cao học K14 ngành Công nghệ thông tin trường Đại học Công nghệ - Đại học Quốc gia Hà Nội đã giúp đỡ tôi trong thời gian học tập và làm luận văn. Mặc dù đã có nhiều cố gắng, song do trình độ năng lực còn hạn chế, nên luận văn không tránh khỏi thiếu sót. Rất mong nhận được sự góp ý, quan tâm của các Thầy, Cô cùng toàn thể các bạn và những ai quan tâm tới luận văn. Một lần nữa, tôi xin chân thành cảm ơn. Hà Nội, tháng 6 năm 2011 Người làm luận văn Nguyễn Xuân Lô -4- MỤC LỤC Trang Chương Mở đầu .................................................................................................................................5 Lý do chọn đề tài............................................................................................................................ 5 Mục đích nghiên cứu...................................................................................................................... 5 Nội dung nghiên cứu...................................................................................................................... 5 Bố cục luận văn .............................................................................................................................. 6 Chương 1: Những vấn đề chung..........................................................................................................7 1.1. Ứng dụng phân tán.................................................................................................................. 7 1.2. Ứng dụng cộng tác ngang hàng................................................................................................ 9 1.3. Mạng ngang hàng Peer – to - Peer (P2P).................................................................................10 1.4. Một số mạng chia sẻ file .........................................................................................................10 1.5. Thuật toán và độ phức tạp thuật toán ....................................................................................13 Chương 2: Suy luận tin cậy trong mạng ngang hàng ..........................................................................19 2.1. Khái niệm tin cậy và quản lí tin cậy .........................................................................................19 2.2. Mô hình tin cậy ......................................................................................................................19 2.3. Xác định người cộng tác .........................................................................................................22 2.4. Mô hình suy luận....................................................................................................................23 2.5. Mô hình hệ thống tin cậy NICE: ..............................................................................................24 2.6. Tính toán tin cậy phân tán trong NICE.....................................................................................28 2.7. Các hệ thống tin cậy khác .......................................................................................................36 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 .........................38 3.1. Giới thiệu ...............................................................................................................................38 3.2. Bài toán..................................................................................................................................39 3.3. Giao dịch dựa trên cookie.......................................................................................................43 3.4. Kiểm tra tính tin cậy của các cookie ........................................................................................46 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 ......51 3.6. Chương trình Demo và các kết quả thu được..........................................................................58 Kết luận và hướng nghiên cứu ..........................................................................................................69 Tài liệu tham khảo ............................................................................................................................70 -5- Chương Mở đầu Lý do chọn đề tài Hiện nay mạng ngang hàng Peer - to - Peer (P2P) cùng với các ứng dụng của nó đang nổi lên và ngày càng chiếm nhiều thị phần trong đời sống. Các mô hình ứng dụng chia sẻ file dữ liệu đã được triển khai nhiều ở các công ty, xí nghiệp, trường học và đã và đang đem lại nhiều lợi ích. Để có thể sử dụng mạng P2P hiệu quả thì người sử dụng phải cộng tác với nhau. Chia sẻ file và cộng tác trong các ứng dụng P2P là đặc trưng tiêu biểu của mạng ngang hàng. Tuy nhiên trong quá trình cộng tác với nhau nảy sinh nhiều vấn đề, ví dụ như cách chia sẻ file, quyền truy cập lấy tài liệu, thứ tự ưu tiên lấy tài liệu, kiểm tra tính tín cậy trong cộng tác, ảnh hưởng trong giao dịch đến băng thông và hiệu năng của mạng, vấn đề bảo mật,... đặc biệt là trong môi trường cộng tác nhưng có tính phí. Để có thể cải thiện được một môi trường cộng tác hiệu quả hơn trong các ứng dụng P2P, làm cho nó ngày càng phát triển, thì đã có rất nhiều các công trình nghiên cứu trong và ngoài nước và cũng đạt được nhiều thành tựu. Với những lý do trên mà tôi chọn đề tài nghiên cứu “Đảm bảo công bằng trong các ứng dụng cộng tác ngang hàng”, với mong muốn nghiên cứu về một lĩnh vực nhỏ trong ứng dụng P2P, và góp một phần vào việc nâng cao hiệu quả trong ứng dụng cộng tác ngang hàng. Mục đích nghiên cứu Mục đích nghiên cứu của đề tài là: - Phân biệt ứng dụng (người) cộng tác và không cộng tác. - Tìm được giải thuật định giá và kiểm tra tính tin cậy của ứng dụng cộng tác. - Áp dụng kết quả nghiên cứu vào các ứng dụng cộng tác trong mạng P2P. Nội dung nghiên cứu - Ứng dụng cộng tác trong mạng P2P - Suy luận tin cậy trong mạng P2P, mô hình độ tin cậy ngang hàng của NICE. - Đảm bảo công bằng cho các ứng dụng cộng tác trong mạng P2P. -6- + Vấn đề công bằng trong mạng. + Á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ô phỏng và đánh gía hiệu năng. Bố cục luận văn Luận văn gồm 4 chương: Chương mở đầu: trình bày về lí do chọn đề tài nghiên cứu, mục đích nghiên cứu, nội dung nghiên cứu. Chương 1: Những vấn đề chung: Trình bày các khái niệm cơ bản về ứng dụng phân tán và ứng dụng cộng tác, các khái niệm trong mạng ngang hàng, giải thuật và độ phức tạp của giải thuật. Chương 2: Suy luận tin cậy trong mạng ngang hàng: Trình bày về các khái niệm tin cậy, định giá tin cậy, mô hình tin cậy NICE làm nền tảng cho áp dụng vào ứng dụng của chương 3. Chương 3: Đảm bảo công bằng với các ứng dụng cộng tác ngang hàng: Chương này trình bày về những khái niệm công bằng, đảm bảo công bằng trong các ứng dụng chủ/khách và ngang hàng, giao dịch dựa trên cookie và kiểm tra tính tin cậy của cookie. Chương này cũng tập trung trình bày việc áp dụng mô hình NICE vào một ứng dụng nhỏ trong mạng BitTorrent và chương trình demo cùng kết quả. -7- Chương 1: Những vấn đề chung 1.1. Ứng dụng phân tán Theo tác giả Dinesh C. Verma [2]. Phần này trình bày những khái niệm cơ bản về ứng dụng phân tán, lĩnh vực liên quan đến cộng tác ngang hàng. a) Khái niệm ứng dụng phân tán: Bao gồm hai hoặc nhiều module phần mềm chạy trên các máy tính khác nhau, tương tác với nhau thông qua mạng truyền thông kết nối giữa các máy tính. Các vấn đề chủ yếu cần quyết định khi xây dựng ứng dụng phân tán – Ứng dụng cần bao nhiêu module phần mềm – Triển khai các module phần mềm trên các máy tính khác nhau như thế nào – Bằng cách nào mỗi module phần mềm phát hiện ra các module khác nó cần giao tiếp b) Kiến trúc client/server Kiến trúc client/server là cách tổ chức một ứng dụng phân tán bao gồm hai modules phần mềm khác nhau: – Module server với chỉ một thể hiện trong hệ thống. – Module client với nhiều thể hiện trong hệ thống. Về mặt giao tiếp trong hệ thống: Chỉ diễn ra giữa module server và các module client. Đặc trưng của kiến trúc client/server là có một module server làm điểm trung tâm trong giao tiếp. Các client không giao tiếp trực tiếp với nhau mà chỉ giao tiếp với module server. Trong kiến trúc client/server, server thường chứa nhiều phần mềm phức tạp, trong khi clients thì đơn giản. Với lợi ích của trình duyệt web trong hầu hết các máy tính, thì đây là kiến trúc hầu như dành để phát triển các ứng dụng phân tán vì rằng chúng có thể sử dụng một trình duyệt web chuẩn làm client. Vấn đề phát hiện để giao tiếp: Mỗi client cần phát hiện địa chỉ mạng của server:  Server chạy trên cổng và địa chỉ IP biết trước với các client  Client kết nối với server theo địa chỉ mạng đã biết -8-  Server không cần biết trước bất kỳ thông tin nào về các client Trên Internet, client chỉ cần biết địa chỉ IP của server vì số hiệu cổng của client đã được chuẩn hóa. • Ưu điểm – Đơn giản hóa công việc bảo trì và nâng cấp • Module server thường phức tạp hơn module client lại được đặt ở chỉ một máy tính • Hiện nay thường trình duyệt Web được sử dụng làm client, người phát triển ứng dụng không cần phát triển và bảo trì • Nhược điểm Không sử dụng hiệu quả sức mạnh tính toán của các máy client như máy server c) Kiến trúc ngang hàng Kiến trúc P2P là cách tổ chức nhiều module phần mềm giống nhau, mỗi module chạy trên một máy tính khác nhau giao tiếp với nhau. Theo cách này thì có thể coi mỗi máy tính vừa chạy module client yêu cầu truy nhập dịch vụ vừa chạy module server cung cấp dịch vụ cho các máy tính khác. + Vấn đề phát hiện Mỗi máy tính cần biết địa chỉ mạng của các máy tính khác nó muốn giao tiếp + Ưu và nhược điểm Tận dụng sức mạnh kết hợp và khả năng mở rộng, tuy nhiên vấn đề bảo trì và nâng cấp phần mềm khó khăn hơn. d) Vấn đề khám phá Để có thể giao tiếp với nhau mỗi module cần biết nơi gửi thông báo cho các module khác (Tức địa chỉ mạng gồm địa chỉ IP và số cổng). - Các giải pháp phát hiện địa chỉ: + Cố định số cổng, cho tất cả các module biết địa chỉ IP và số cổng của các module khác. Điều này làm được bằng cách: Có thể mã cứng vào chương -9- trình, tuy nhiên cũng giống như phương pháp cấu hình địa chỉ IP tĩnh trên mạng -> cần phối hợp tổng thể tránh đụng độ số cổng. + Địa chỉ IP và số cổng của các module khác được cung cấp như các tham số cấu hình. Phương pháp này có nhược điểm đối với các ứng dụng quy mô lớn đòi hỏi nhiều công sức cấu hình. 1.2. Ứng dụng cộng tác ngang hàng Một ứng dụng cộng tác là một ứng dụng chia sẻ các thành phần tài nguyên của chúng để cho các thành viên khác trong nhóm cộng tác sử dụng. Nói một cách khác, một ứng dụng cộng tác là một ứng dụng phân bổ một tập con tài nguyên của nó cho việc sử dụng của các máy khác trong ứng dụng. Tài nguyên phân bổ ở đây là bộ xử lí, băng thông, dữ liệu lưu trữ,…, của ứng dụng cộng tác. Khi các ứng dụng cộng tác với nhau, chúng tạo thành các nhóm cộng tác. Các nhóm cộng tác, trong thực tế, hiện nay có thể kể đến một lớp rộng lớn các ứng dụng, bao gồm các ứng dụng dòng đa phương tiện trực tuyến, các ứng dụng hội nghị đa thành phần và các ứng dụng P2P…, và có thể là một hạ tầng cơ sở cộng tác. Tuy vậy các hệ thống cộng tác chỉ thi hành tốt nhất nếu tất cả mọi người sử dụng làm việc, cộng tác và cung cấp chia sẻ tài nguyên của họ tới hệ thống. Quan điểm của hệ thống cộng tác là không duy nhất trong liên mạng. Trong thực tế các gói tin vận chuyển trong Internet là sự cộng tác mạo hiểm khi dùng các tài nguyên chia sẻ ở các bộ định tuyến (router). Mục đích hướng tới đối với những ứng dụng cộng tác là các ứng dụng đầu cuối, nơi cung cấp một platform trong việc thực hiện các ứng dụng phân tán rộng lớn theo kiểu cộng tác. Rõ ràng, một số các tài nguyên phân tán rộng lớn có thể có được qua Internet trong sự cộng tác. Đây cũng chính là xu hướng của các ứng dụng cộng tác ngang hàng Peer-to-Peer (P2P), và những thế hệ tiếp theo của các ứng dụng P2P dựa trên các khái niệm của sự chia sẻ tài nguyên phân tán cộng tác. -10- 1.3. Mạng ngang hàng Peer – to - Peer (P2P) Định nghĩa: Theo tài liệu của Ralf Steinmetz [7] trang 21 thì Oram et al đưa ra định nghĩa cơ bản về hệ thống Peer – to – Peer như sau: [a Peer-to-Peer system is] a self-organizing system of equal, autonomous entities (peers) [which] aims for the shared usage of distributed resources in a networked environment avoiding central services. Mạng P2P không có khái niệm máy trạm (client) hay máy chủ (server), mà chỉ có khái niệm các nốt (peers) đóng vai trò cả client và server. Theo Karl Aberer, Zoran Despotovic [4] thì các nốt khi tham gia trao đổi trong cộng đồng mạng sẽ cung cấp truy cập tới các tài nguyên tính toán của chính nó. Một mạng P2P có thể được đặc trưng bởi các tính chất sau: - Không có sự sắp đặt trung tâm (Các máy không chịu sự sắp đặt của một máy khác). - Không có cơ sở dữ liệu trung tâm (Cơ sở dữ liệu là phân tán). - Không có máy nào bao trùm hệ thống (Các máy là ngang hàng). - Các máy tự trị - Các máy và các kết nối là không tin cậy. 1.4. Một số mạng chia sẻ file 1.4.1. Mạng chia sẻ file P2P: - Là mạng P2P phổ biến và nổi tiếng nhất trên Internet hiện nay. + Chức năng chủ yếu của mạng là cho phép tìm kiếm và truyền dữ liệu dựa trên giao thức IP (Internet Protocol). + Để truy cập vào mạng P2P này, người dùng chỉ cần download và cài đặt phần mềm ứng dụng phù hợp cho máy tính của mình. + Có nhiều mạng P2P và phần mềm ứng dụng P2P tồn tại hiện nay. Một số phần mềm chỉ sử dụng được cho 1 mạng P2P nhất định, một số hoạt động được với nhiều mạng P2P khác nhau. + Một số mạng P2P nổi tiếng trên Internet như: BitTorent, Gnutella,... -11- 1.4.2. Chia sẻ file trong mạng ngang hàng - Có thể nói ứng dụng được sử dụng nhiều nhất của mạng ngang hàng đó là chia sẻ file. - Theo ước tính khoảng 50% (có thời điểm đến 75% ) lưu lượng mạng trên Internet được cho là để trao đổi các file đặc biệt là các file âm nhạc (hơn 1 tỷ các file âm nhạc được download mỗi tuần). - Đặc điểm của vấn đề chia sẻ file là các máy (Peer) có các file được download với vai trò là một Client làm cho chúng luôn sẵn sàng với các Peer khác trong vai trò của một Server. - Vấn đề chủ yếu cho mạng ngang hàng nói chung và cho vấn đề chia sẻ file nó riêng là vấn đề tìm kiếm. Trong ngữ cảnh của hệ thống chia sẻ file, có ba mô hình khác nhau được phát triển: mô hình flooded request, mô hình thư mục trung tâm và mô hình hướng tài liệu. Các mô hình này được minh hoạ qua các ứng dụng thực của mạng ngang hàng sau: Gnutella, Naspter và FreeNet. Gnutella : Trong hệ thống Gnutella, không có sự tập trung hoá, các file được lưu trữ trên các Peer của hệ thống, khi có yêu cầu tìm kiếm một file máy tính sẽ gửi yêu cầu này tới tất cả các peer là láng giềng của nó và quá trình này được lặp lại cho tới khi tìm thấy máy chứa file cần tìm. Tiếp theo là quá trình trao đổi file trực tiếp giữa hai máy tính trong mạng. Hiện nay phần mềm nổi tiếng sử dụng phương pháp tìm kiếm và chia sẻ file dạng này là Bittorent. Naspter : Trong hệ thống Naspter, có sự tập trung hoá. Khi một máy tham gia vào mạng, danh mục các file sẽ được đăng ký và lưu trữ trên Server trung tâm, khi có yêu cầu tìm kiếm, máy tính sẽ hỏi Server trung tâm về vị trí của file. Sau đó việc trao đổi file được thực hiện giữa hai máy tính với nhau. FreeNet: Trong hệ thống Freenet, file không được lưu trữ trên đĩa cứng của các peer cung cấp chúng mà được lưu trữ ở các vị trí khác trong mạng. Mục đích của việc phát triển mạng Freenet là làm cho thông tin được lưu trữ và truy cập mà không cần biết định danh. Với các tổ chức như vậy, chủ sở hữu của một node mạng cũng không biết được tài liệu gì được lưu trữ trên đĩa cứng của máy anh ta. Vì lý do này mà các Peer và các file được cung cấp các số định danh khác nhau. Khi một file được tạo, nó được truyền qua các peer láng giềng tới các peer có số định danh gần với số định danh của file nhất và được lưu trữ ở đó. 1.4.3. Một số giao thức sử dụng trong các mạng chia sẻ file -12- a) Hệ thống Gnutella Giao thức trong Gnutella là giao thức tìm kiếm phân tán. Giao thức Gnutella được định nghĩa là lối vào để các servent truyền thông qua mạng. Nó bao gồm một tập các đặc tả được sử dụng cho truyền thông dữ liệu giữa các servent và một tập các qui tắc chủ yếu trao đổi bên trong các servent của các đặc tả. Mặc dù giao thức Gnutella hỗ trợ tìm kiếm theo dạng chủ-khách truyền thống, nhưng nét đặc biệt của Gnutella là mô hình không tập trung, dạng peer- to-peer chính nó. Trong mô hình này, mỗi máy khách cũng đồng thời là máy chủ. Chính vì vậy, Gnutella còn được gọi là servents thực hiện công việc của cả máy chủ lẫn máy khách. Chúng cung cấp các giao diện phía máy khách để cho người sử dụng phát ra các truy vấn và xem các kết quả tìm kiếm được, trong khi ở cùng thời điểm chúng cũng truy cập các truy vấn ở các servent khác, kiểm tra tính tương phản của tập dữ liệu cục bộ, và trả lời đối với các kết quả tương xứng. Do tính phân tán tự nhiên của chính nó, mà một mạng servents áp dụng giao thức Glutella sẽ có khả năng kháng lỗi rất cao, việc xử lí của mạng sẽ không bị ngắt nếu như có một tập các servent xảy ra tình trạng offline. Việc tìm kiếm trong mạng ngang hàng theo cơ chế lan truyền giữa các máy gây ra sự chiếm dụng băng thông đường truyền lớn. Trong Gnutella, các máy vận chuyển truy vấn của các máy khác làm ngập lụt hệ thống. Mỗi thông báo vận chuyển tiêu thụ băng thông và bộ xử lí ở mỗi nút nó viếng thăm. Cải thiện vấn đề này chính là khả năng cân bằng tải của mạng. b) Hệ thống dựa trên giải thuật Chord Trong Chord, tài liệu được ánh xạ tới nút đặc biệt sử dụng hàm băm. Tuy vậy mỗi máy phục vụ một tài liệu, tài liệu này trong thực tế được sở hữu bởi một vài nút khác trong hệ thống. Như vậy các máy trong hệ thống tiêu thụ tài nguyên của chúng để phục vụ các tài liệu đối với các nút khác trong hệ thống. Tình trạng này là không duy nhất đối với Chord; tất cả các hệ thống xác định dựa trên việc băm, bao gồm CAN, Bayeux, Pastry, đều có tính chất này. Điều đó có thể làm được nhằm xây dựng một hệ thống trong đó các nút chỉ phục vụ một điểm tới tài liệu và cũng để thực hiện các hệ thống cân bằng tải khác nhau. Như vậy, -13- ngay cả trong hệ thống được cân bằng tải tốt nhất, có thể nhất thời xảy ra quá tải khi một lượng lớn các tài nguyên cục bộ được tiêu