Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 70 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
70
Dung lượng
1,23 MB
Nội dung
-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ẢOCÔNGBẰNGTRONGCÁCỨNGDỤNG
CỘNG TÁCNGANGHÀ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ảocông
bằng trongcácứngdụngcộngtácngang 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. Ứngdụng phân tán 7
1.2. Ứngdụngcộngtácnganghàng 9
1.3. Mạng nganghà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 nganghà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ộngtá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: Đảmbảocôngbằng với cácứngdụngcộngtáctrong mạng nganghà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 đảmbảocôngbằngtrongứngdụ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 nganghàng Peer - to - Peer (P2P) cùng với cácứngdụ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áccô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ộngtác với nhau. Chia sẻ file và cộngtáctrong
các ứngdụ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ộngtá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ộngtác nhưng có tính phí. Để có
thể cải thiện được một môi trường cộngtác hiệu quả hơn trongcácứngdụng
P2P, làm cho nó ngày càng phát triển, thì đã có rất nhiều cáccô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ảocôngbằng trong cácứngdụngcộ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ứngdụngcộngtá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 ứngdụng (người) cộngtá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 ứngdụngcộng
tác.
- Áp dụng kết quả nghiên cứu vào cácứngdụngcộngtáctrong mạng P2P.
Nội dung nghiên cứu
- Ứngdụngcộngtáctrong mạng P2P
- Suy luận tin cậy trong mạng P2P, mô hình độ tin cậy nganghàng của
NICE.
- Đảmbảocôngbằng cho cácứngdụngcộngtáctrong mạng P2P.
-6-
+ Vấn đề côngbằngtrong mạng.
+ Áp dụng mô hình tin cậy NICE đảm bảocôngbằng trong ứngdụ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à ứngdụngcộ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 ứngdụng của chương 3.
Chương 3: Đảmbảocôngbằng với cácứngdụngcộngtácngang hàng:
Chương này trình bày về những khái niệm công bằng, đảmbảocôngbằngtrong
các ứngdụ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 ứngdụ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. Ứngdụ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ề ứngdụng phân tán, lĩnh vực liên quan đến cộngtácngang hàng.
a) Khái niệm ứngdụ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ứngdụng phân tán
– Ứngdụ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 ứngdụ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ứngdụ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 ứngdụ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 nganghà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ứngdụng quy mô lớn
đòi hỏi nhiều công sức cấu hình.
1.2. Ứngdụngcộngtácnganghàng
Một ứngdụngcộngtác là một ứngdụ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ộngtác sử dụng. Nói
một cách khác, một ứngdụngcộngtác là một ứngdụ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ụngcộng tác.
Khi cácứngdụngcộngtá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ứngdụ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ứngdụ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ộngtá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ộngtá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ộngtá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ộngtá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 ứngdụngcộngtác là cácứngdụng đầu
cuối, nơi cung cấp một platform trong việc thực hiện cácứngdụ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ụngcộngtácnganghàng Peer-to-Peer (P2P), và những thế hệ tiếp theo của
các ứngdụ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 nganghà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 ứngdụng phù hợp cho máy tính của mình.
+ Có nhiều mạng P2P và phần mềm ứngdụ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,
[...]... đổi các tài nguyên cục bộ Các giao dịch trong NICE bao gồm các trao đổi an toàn các chứng thực tài nguyên Các chứng thực này có thể được giữ lại với các tài nguyên được đặt tên (ở xa) Những người không cộngtác có thể mở rộng truy cập “tự do” tới các tài nguyên ở xa bằng cách phát hành các chứng thực mà các chứng thực này rốt cuộc không được giữ lại -24- NICE cung cấp một dịch vụ API tới cácứng dụng. .. nhanh chóng hình thành các nhóm cộngtác thiết thực Các nút nguy hiểm và tương tự sẽ không có khả năng bẻ gãy các nhóm cộngtácbằng cách đưa các thông tin thiếu tới các nút tốt Đặc biệt, NICE phát triển các giao thức trong đó các nút nguy hiểm nhanh chóng bị tỉa bớt ra ngoài các nhóm cộngtác Xa hơn, NICE giả thiết các nút nguy hiểm có thể khuếch tán tùy ý thông tin tin cậy, và tập các nút tốt cùng dạng... lại các cuộc tấn công dạng này 2.5 Mô hình hệ thống tin cậy NICE: NICE là viết tắt của “NICE is the Internet Cooperative Environment” (NICE là môi trường cộngtác trên Internet) Mục đích của NICE là cung cấp phạm vi các giải thuật tính toán tin cậy phân tán NICE là một platform đối với việc thực hiện cácứngdụng phân tán cộngtác Các ứngdụngtrong NICE mở rộng truy cập tới các tài nguyên ở xa bằng. .. truyền đạt, trong đó có chứa thông tin danh tiếng Mỗi agent lưu các bản ghi danh tiếng trong cơ sở dữ liệu riêng của chính nó và sử dụng thông tin này để tạo các đề cử tới các agent khác 2.3 Xác định người cộngtác Phần này giới thiệu kĩ thuật trong việc xác định những người cộngtác và không cộngtác Những người sử dụng riêng lẻ có thể suy ra và gán các giá trị “tin cậy” cho những người sử dụng khác... được phân tầng giữa các giao thức tầng ứngdụng và tầng vận chuyển Kiến trúc thành phần của NICE được giới thiệu ở hình trên Cácứngdụng tương tác qua lại với NICE sử dụng NICE API, và phát ra lời gọi để tìm các tài nguyên thích ứng Tất cả các giao thức đổi chác, mua bán, bồi thường được thực hiện bên trong NICE và không bộc lộ tới ứngdụngCác giao thức con này chia sẻ thông tin bên trong chính nó và... không thay đổi các khóa thường xuyên Tính -25- chất này làm cho các ứng dụng của NICE chống được một số các tấn công DoS, điều mà xảy ra được với các hệ thống P2P khác Trong NICE, các hành động ứngdụng ở xa được chuyển thành các yêu cầu tài nguyên cục bộ, và nếu tiện lợi, các tài nguyên cục bộ này được đổi chác với các tài nguyên khác ở các nút ở xa (Nó cũng được tham gia để mua bán các tài nguyên... trên các giao thức vận chuyển để trao đổi các chứng thực tài nguyên Giao thức này đảmbảo rằng không bộ phận nào có thể thu được một chứng thực có thể dùng được ngoài những chứng thực có hiệu lực được phát hành Các chứng thực tài nguyên này cuối cùng được giữ ở các nút phát hành Các nút tốt luôn luôn giữ bất kì chứng thực mà chúng phát ra, trong khi các nút nguy hiểm có thể chọn không làm như vậy Trong. .. thông tin tin cậy trong hệ thống Những người sử dụngtrong hệ thống chỉ dự -22- trữ thông tin rõ ràng có thể sử dụng đối với lợi ích sở hữu của họ Một giải thuật phân chia côngbằng với lượng dự trữ được giới hạn ở mỗi nút, và có thể sử dụng để thực hiện hiệu quả cácứngdụng phân tán rộng lớn Hơn nữa các giải pháp trong hệ thống tin cậy cho phép những người sử dụng đơn lẻ tính toán các giá trị tin tưởng... người sử dụng sử dụngcác chính sách theo nút (per-node) Các máy NICE được sắp xếp bên trong giao thức báo hiệu (signaling) sử dụng giao thức đa phát tầng ứngdụng Tất cả các thông báo đặc trưng giao thức NICE khi gửi sử dụng đơn phát trực tiếp hoặc đa phát qua giao thức báo hiệu này Định danh người sử dụng NICE: sau đây sử dụng thuật ngữ nhóm người sử dụng (user) và nút (node) theo dạng tổng quát Trong. .. dụng không cộngtác -23- Ví dụ: Xem xét trường hợp khi tất cả những người sử dụngcộngtác nhưng tài liệu không được phục vụ, từ đó mạng thất bại Đây là vấn đề vốn có ở bất kì một hệ thống suy luận tin cậy nào dựa trên các giao dịch chất lượng (quality) Một hệ thống suy luận tin cậy lí tưởng, trong quá khứ, sẽ có khả năng phân loại tất cả những người sử dụng thành các lớp cộngtác hoặc không cộngtác .
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. 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