đồ án :ĐÁNH GIÁ HIỆU NĂNG MỘT SỐ GIAO THỨC DHT TRONG MẠNG NGANG HÀNG
Trang 1KHOA VIỄN THÔNG 1
-*** -ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Trang 2HỌC VIỆN CÔNG NGHỆ
BƯU CHÍNH VIỄN THÔNG CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAMĐộc Lập - Tự Do - Hạnh Phúc
KHOA VIỄN THÔNG 1
Trang 3KHOA VIỄN THÔNG 1
Lý thuyết chung về mạng ngang hàng
Lý thuyết về Bảng băm phân tán DHT
Phương pháp nghiên cứu mạng ngang hàng
Đánh giá hiệu năng một số DHT
Ngày giao đồ án:……/ /2008
Ngày nộp đồ án: ……/11/2008
Ngày … tháng 11 năm 2008Giáo viên hướng dẫn
TS Lê Nhật Thăng
Trang 4……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
Điểm: (bằng chữ ……… )
Ngày … tháng 11 năm 2008 Giáo viên hướng dẫn
Trang 5……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
……….
Điểm: (bằng chữ ……… )
Ngày … tháng 11 năm 2008 Giáo viên phản biện
Trang 6Mục lục
Mục lục 1
Danh mục hình vẽ 4
Thuật ngữ viết tắt 6
Lời nói đầu 7
Chương 1: Lý thuyết chung về mạng ngang hàng 8
1.1 Phân loại các hệ thống mạng máy tính 8
1.2 Khái niệm về mạng ngang hàng 10
1.3 Phân loại mạng ngang hàng 13
1.3.1 Phân loại theo mức độ phân quyền 13
a, Mạng P2P thuần nhất 13
b, Mạng P2P lai ghép 14
1.3.2 Phân loại theo cơ chế tìm kiếm 16
a, Cơ chế danh mục tập trung 16
b, Cơ chế yêu cầu liên tục 17
c, Cơ chế bảng băm phân tán 17
1.3.3 Phân loại theo cấu trúc 18
1.4 Ứng dụng của mạng ngang hàng 19
1.4.1 Chia sẻ tài liệu 19
1.4.2 Phân tán tính toán 19
1.4.3 Hợp tác 20
1.4.4 Lớp nền 20
1.5 Các vấn đề đối với mạng ngang hàng 20
1.5.1 Tính bảo mật 20
1.5.2 Độ tin cậy 20
1.5.3 Độ linh động 21
1.5.4 Cân bằng tải 21
1.6 Một số ví dụ về mạng ngang hàng 21
1.6.1 Mạng Edonkey 21
1.6.2 Mạng Gnutella 23
1.6.3 Mạng Napster 24
1.7 Kết luận chương 1 25
Chương 2: Lý thuyết về Bảng băm phân tán DHT 26
2.1 Khái niệm DHT 26
Trang 72.2.1 Mạng phủ 28
2.2.2 Ánh xạ dữ liệu 29
2.2.3 Quá trình tìm kiếm 30
2.2.4 Quá trình bảo trì mạng 30
2.3 Giao thức Kademlia 37
2.3.1 Mạng phủ 37
2.3.2 Ánh xạ dữ liệu 38
2.3.3 Quá trình tìm kiếm 38
2.3.4 Quá trình bảo trì mạng 38
2.4 Giao thức Kelips 39
2.4.1 Mạng phủ 39
2.4.2 Ánh xạ dữ liệu 40
2.4.3 Quá trình tìm kiếm 40
2.4.4 Quá trình bảo trì mạng 41
2.5 Giao thức Tapestry 41
2.5.1 Mạng phủ 41
2.5.2 Ánh xạ dữ liệu 42
2.5.3 Quá trình tìm kiếm 43
2.5.4 Quá trình bảo trì mạng 45
2.6 Kết luận chương 2 45
Chương 3: Phương pháp nghiên cứu mạng ngang hàng 46
3.1 Các phương pháp nghiên cứu mạng ngang hàng 46
3.1.1 Phương pháp phân tích 46
3.1.2 Phương pháp thử nghiệm 46
3.1.3 Phương pháp mô phỏng 46
3.2 Công cụ mô phỏng mạng ngang hàng 47
3.2.1 NS-2 47
3.2.2 PeerSim 49
3.2.3 PlanetSim 50
3.2.4 OMNet++ 52
3.2.5 OverSim 53
3.2.6 GPS 54
3.2.7 P2PSim 55
3.3 Kết luận chương 3 57
Chương 4: Đánh giá hiệu năng một số DHT 58
Trang 84.1 Bài toán thực tế 58
4.2 Phương pháp luận 59
4.2.1 Mục tiêu 59
4.2.2 Cơ sở 60
4.3 Kết quả và phân tích 63
4.3.1 Xác định ngưỡng churn rate 63
a, Phương pháp 63
b, Chord 64
c, Kademlia 65
d, Kelips 65
e, Tapestry 66
4.3.2 So sánh hiệu năng của các DHT 67
a, Môi trường churn rate rất cao (5-10s) 67
b, Môi trường churn rate cao (60-300s) 68
4.3.3 Phân tích ảnh hưởng của các tham số thiết kế 69
a, Chord 70
b, Kademlia 71
c, Kelips 72
d, Tapestry 73
4.3.4 Đánh giá tính khả mở 73
a, Chord 74
b, Kademlia 74
c, Kelips 75
d, Tapestry 75
4.4 Kết luận chương 4 76
Kết luận 77
Tài liệu tham khảo 78
Trang 9Danh mục hình vẽ
Hình 1-1: Hệ thống mạng 8
Hình 1-2: Hệ thống mạng chủ - khách 9
Hình 1-3: Mạng ngang hàng 10
Hình 1-4: Mạng ngang hàng hoàn toàn 13
Hình 1-5: Mạng lai ghép 14
Hình 1-6: Mạng lai ghép với chỉ số hoá tập trung 15
Hình 1-7: Mạng lai ghép với chỉ số hoá phân tán 15
Hình 1-8: Cơ chế danh mục tập trung 16
Hình 1-9: Cơ chế yêu cầu liên tục 17
Hình 1-10: Cơ chế bảng băm phân tán 17
Hình 1-11: Mạng Edonkey 22
Hình 1-12: Mạng Gnutella 23
Hình 1-13: Mạng Napster 24
Hình 1-14: Tìm kiếm trên mạng Napster 25
Hình 2-1: Chức năng chính của DHT 27
Hình 2-2: Không gian ID của mạng Chord (N=64) 29
Hình 2-3: Các item lưu trên mạng Chord 29
Hình 2-4: Quá trình node tham gia vào mạng Chord 35
Hình 2-5: Quá trình node rời khỏi mạng Chord 36
Hình 2-6: Không gian ID của mạng Kademlia (N=16) 37
Hình 2-7: Các k-bucket của một node 37
Hình 2-8: Bảng định tuyến của node 110 39
Hình 2-9: Quá trình node tham gia vào mạng Kelips 41
Hình 2-10: Bảng định tuyến của một node trong mạng Tapestry 42
Hình 2-11: Các mức liên kết của node 4227 43
Hình 2-12: Đường đi của một message từ node 5230 tới node 42AD 43
Hình 2-13: Các bản sao được định tuyến tới root (node 4377) 44
Hình 2-14: Các node truy vấn đến node lưu item gần nhất 44
Hình 3-1: Minh họa NS-2 49
Hình 3-2: Minh họa PeerSim 50
Hình 3-3: Minh họa PlanetSim 51
Hình 3-4: Minh họa OMNet++ 53
Hình 3-5: Minh họa OverSim 54
Hình 3-6: Minh họa GPS 55
Trang 10Hình 3-7: Minh họa P2PSim 57
Hình 4-1: Minh họa mô hình thực tế 58
Hình 4-2: Hoạt động của P2PSim 60
Hình 4-3: Lưu đồ xác định ngưỡng churn rate 64
Hình 4-4: Ngưỡng churn rate Chord hoạt động tốt 64
Hình 4-5: Ngưỡng churn rate Kademlia hoạt động tốt 65
Hình 4-6: Ngưỡng churn rate Kelips hoạt động tốt 65
Hình 4-7: Ngưỡng churn rate Tapestry hoạt động tốt 66
Hình 4-8: Hiệu năng Chord với churn rate rất cao 67
Hình 4-9: Hiệu năng Kademlia với churn rate rất cao 67
Hình 4-10: Hiệu năng Kelips với churn rate rất cao 68
Hình 4-11: Hiệu năng Tapestry với churn rate rất cao 68
Hình 4-12: So sánh các DHT với churn rate 60s 69
Hình 4-13: So sánh các DHT với churn rate 300s 69
Hình 4-14: Ảnh hưởng của base đối với Chord 70
Hình 4-15: Ảnh hưởng của pnstimer đối với Chord 70
Hình 4-16: Ảnh hưởng của alpha đối với Kademlia 71
Hình 4-17: Ảnh hưởng của stabilize_timer đối với Kademlia 71
Hình 4-18: Ảnh hưởng của round_interval đối với Kelips 72
Hình 4-19: Ảnh hưởng của n_contacts đối với Kelips 72
Hình 4-20: Ảnh hưởng của stabtimer đối với Tapestry 73
Hình 4-21: Ảnh hưởng của base đối với Tapestry 73
Hình 4-22: Tính khả mở của Chord 74
Hình 4-23: Tính khả mở của Kademlia 74
Hình 4-24: Tính khả mở của Kelips 75
Hình 4-25: Tính khả mở của Tapestry 75
Trang 11Thuật ngữ viết tắt
FAQ Frequently Asked Questions Các câu hỏi thường gặp
thời trên Internet
IPv6 Internet Protocol version 6 Giao thức IP phiên bản 6
nguồn mở của Sun MicrosystemsMAC Media-Access Control Điều khiển Truy nhập - Vật lýMIT Massachusetts Institute of
Technology
Học viện kĩ thuật Masachuset Mĩ
OSPF Open Shortest Path First Đường đi ngắn nhất mở đầu tiên
PDA Personal Digital Assistant Máy trợ lý cá nhân kỹ thuật sốPPP Point-to-Point Protocol Giao thức điểm nối điểmPVC Performance versus Cost Hiệu năng đối với chi phíRIP Routing Information Protocol Giao thức định tuyến thông tin
SETI Search for Extraterrestrial
Intelligence
Dự án tìm kiếm nền văn minh
ngoài trái đấtTCL Tool Command Language Bộ công cụ lập trình dòng lệnhTCP Transmission Control Protocol Giao thức điều khiển truyền dẫnUDP User Datagram Protocol Giao thức gói dữ liệu người dùng
Trang 12Lời nói đầu
Khoảng mười năm trở lại đây, thế giới đã chứng kiến sự bùng nổ của Internet băng thông rộng, cùng với nó là sự phát triển mạnh mẽ của các ứng dụng peer-to- peer Với nhiều ưu điểm hứa hẹn như tính hiệu quả, linh hoạt và khả năng mở rộng cao, các mạng peer-to-peer đã và đang thu hút được nhiều sự quan tâm từ cộng đồng nghiên cứu Mạng peer-to-peer đã phát triển qua nhiều thế hệ, thế hệ hiện nay là mạng có cấu trúc dựa trên khả năng lưu trữ và tìm kiếm dữ liệu hiệu quả theo cơ chế Bảng băm phân tán (DHT)
Các DHT được thiết kế để hoạt động trong môi trường tương đối ổn định với các peer là máy tính Tuy nhiên vài năm gần đây, các thiết bị nối mạng ngày càng phong phú và đa dạng, từ điện thoại, PDA, … cho đến tivi Các thiết bị này kết nối và rời khỏi mạng trong thời gian ngắn khiến cho độ ổn định của mạng rất thấp dẫn đến hiệu năng của các DHT giảm sút rõ rệt Phân tích, đánh giá hiệu năng của các DHT trong môi trường mới là vấn đề đang rất được quan tâm hiện nay
Nội dung của đồ án bao gồm bốn phần chính như sau:
Chương 1: Lý thuyết chung về mạng ngang hàng
Chương 2: Lý thuyết về Bảng băm phân tán DHT
Chương 3: Phương pháp nghiên cứu mạng ngang hàng
Chương 4: Đánh giá hiệu năng một số DHT
Em xin gửi lời cám ơn đến các thầy giáo cô giáo đã dạy dỗ em tận tình trong suốt quá trình học tập tại Học Viện Xin chân thành cám ơn TS Nguyễn Chấn Hùng
và ThS Ngô Hoàng Giang đã cung cấp những thông tin tài liệu qúy báu giúp đỡ em trong thời gian vừa qua Đặc biệt em vô cùng biết ơn thầy giáo TS Lê Nhật Thăng đã dành nhiều thời gian tận tình hướng dẫn, tạo điều kiện thuận lợi để em hoàn thành đồ
án này.
Hà Nội, tháng 11 năm 2008
Sinh viên
Nguyễn Thế Tùng
Trang 13Chương 1: Lý thuyết chung về mạng ngang hàng
1.1 Phân loại các hệ thống mạng máy tính
Ban đầu khi mạng máy tính mới ra đời, tốc độ máy còn thấp, số lượng máytham gia trong mạng chưa cao, nhu cầu trao đổi thông tin mới chỉ dừng lại ở những tậptin có kích thước bé nên việc quản lý mạng còn rất đơn giản, cấu trúc của mạng chỉgồm một vài máy Các máy trong mạng được nối trực tiếp với nhau thông qua cổngcom hay cổng máy in LPT… Đó là mô hình mạng ngang hàng sơ khai nhưng lại là cơ
sở để phát triển mạng ngang hàng sau này trên một hệ thống máy tính rộng lớn
Sự phát triển vượt bậc của công nghệ làm cho các máy tính ngày càng nhanhhơn, lượng tài nguyên lưu trữ là rất lớn và nhu cầu trao đổi của con người ngày càngtăng lên Lúc này các máy tính được kết nối khắp toàn cầu đòi hỏi phải có sự ra đờicủa phương thức quản lý mới với những giao thức, giao diện mới Các mô hình hệthống mạng ra đời, Hình 1-1 thể hiện sự phát triển của hệ thống mạng máy tính
Hệ thống
tập trung
Hệ thống phân tán
Hệ thống mạng
Hình 1-1: Hệ thống mạng
Sự tính toán xử lí dữ liệu đầu vào hoặc tài nguyên tại các node trên mạng có thểchia thành hệ thống xử lí tập trung và xử lí phân tán Giải pháp tập trung dựa vào mộtnode được chỉ định là computer node sẽ xử lí tất cả các ứng dụng cục bộ Hệ thống tậptrung thường được triển khai tại một cơ quan, tổ chức khi các máy tính được liên kếtvới nhau trong một không gian kín, không có sự liên kết với mạng bên ngoài Với hệ
Trang 14thống phân tán, các bước xử lí một ứng dụng được chia đều giữa các node tham giavới mục đích giảm thiểu chi phí tính toán và truyền thông Mọi thông tin, tài nguyêntrong mạng được phân tán khắp nơi.
Hệ thống phân tán có thể được chia nhỏ hơn thành mô hình mạng chủ-khách và
mô hình ngang hàng Trong hệ thống mạng chủ-khách có sự phân biệt giữa các máytính trong mạng, một số ít các máy gọi là máy chủ (server), đây là những máy có khảnăng tính toán rất mạnh, tốc độ xử lý nhanh Tại những máy này có lưu trữ tài nguyênmạng và các dịch vụ, nó đóng vai trò là người phục vụ cho các yêu cầu của máy tínhkhác trong mạng về tài nguyên và dịch vụ Phần lớn các máy còn lại gọi là máy khách(client), nó chỉ đưa ra các yêu cầu và sử dụng tài nguyên trên mạng mà không thể chia
sẻ các tài nguyên hay dịch vụ của chính nó Trong hệ thống chủ-khách các máy kháchkhi vào hệ thống được nối với máy chủ, nhận quyền truy nhập và tài nguyên mạng từmáy chủ Các máy khách được sắp xếp tổ chức theo một quy luật nhất định và đặtdưới sự quản lý của máy chủ Mô hình hệ thống chủ-khách được minh họa như Hình1-2
Trang 15Ưu điểm chính của hệ thống này là sự đơn giản của nó Vì tất cả dữ liệu đềuđược tập trung tại một vị trí nên việc quản lý hệ thống là khá dễ dàng và cũng tươngđối dễ bảo mật Tuy nhiên, trở ngại của hệ thống này cũng chính bởi mọi thông tin đềutập trung tại máy chủ Do đó, nó là một điểm có thể gây lỗi trầm trọng cho hệ thống vìnếu gặp trục trặc, toàn bộ các ứng dụng client nối với server cũng sẽ gặp trục trặc theo.Server cũng là nơi làm đình trệ hiệu năng của hệ thống Mặc dù kiến trúc Client/Serverđược chấp nhận rộng rãi tại các Web-server hay các database-server nhưng nhượcđiểm về tính mở rộng và tỉ lệ gặp lỗi làm cho hệ thống này không thích hợp với việctriển khai các ứng dụng phân tán đa năng.
1.2 Khái niệm về mạng ngang hàng
Peer-to-Peer (hay P2P - mạng ngang hàng), là mạng mà trong đó hai hay nhiềumáy tính chia sẻ các tập tin và truy nhập các thiết bị như máy in mà không cần đếnmáy chủ hay các phần mềm máy chủ Ở dạng đơn giản nhất mạng ngang hàng đượctạo ra bởi hai hay nhiều máy tính kết nối với nhau và chia sẻ tài nguyên mà không phảithông qua một máy chủ dành riêng Mạng ngang hàng dựa vào khả năng và băng tầncủa các máy tính tham gia vào mạng hơn là tập trung vào một số các máy tính gọi làserver Nó được sử dụng cho kết nối các node thông qua các kết nối đặc biệt và đượcdùng cho nhiều mục đích như chia sẻ tài liệu, chia sẻ âm nhạc, hình ảnh, dữ liệu, lưulượng điện thoại… Mô hình của mạng ngang hàng được thể hiện trên Hình 1-3
Trang 16Khái niệm P2P như người ta hiểu bao gồm bốn hoạt động khác nhau: sự hợp tácgiữa những người sử dụng, sự tương tác giữa những ứng dụng phần mềm, việc sửdụng hiệu quả các tài nguyên mạng và các siêu tính toán
Nổi bật nhất là các hệ thống hợp tác đang được phát triển bởi các công ty mớinhư Groove Networks, Endeavors Technology Các hệ thống này kết hợp khả nǎngchia sẻ tài nguyên với khả nǎng truyền tin tức thời của ICQ, tất cả trong một môitrường an toàn Sự hấp dẫn chính là ở sự khuyến khích chia sẻ file và truyền thônggiữa các nhóm làm việc
Với Groove, ví dụ, người sử dụng có thể kết nối với các đồng sự trong các môitrường ảo để cùng hợp tác trong công việc, giải quyết các vấn đề phức tạp và thậm chílập kế hoạch chia sẻ tài liệu và cùng lướt Web trên Internet Cũng như các hệ thốngkhác, hệ thống của Groove cung cấp tin cho mỗi người sử dụng khi có đồng sự đang ởtrên mạng, nhận ra họ và cho phép một người sử dụng kết nối tới họ từ bất cứ nơi đâu.Quan trọng hơn cả đối với giới doanh nghiệp là dịch vụ tạo ra một không gian an toàncho người dùng cho dù họ ở trên Internet hay trong Intranet sau tường lửa Không cầnphải có các kỹ sư của công ty; không cần phải thiết lập hình thức tổ chức trung tâm; vàkhông phải lo đến những vị khách lạ truy nhập vào mạng công ty
Mặc dù mọi sự chú ý đều tập trung vào vấn đề cộng tác, các hệ thống P2P chophép các ứng dụng phần mềm tương tác với nhau đem lại nhiều hứa hẹn nhất cho cácứng dụng kết hợp các dữ liệu phân tán cho thương mại điện tử, thiêt kế sản phẩm hoặcquản lý tri thức Các chương trình đó dùng P2P như một phương thức gửi dữ liệu vào
và ra từ trình ứng dụng này tới trình ứng dụng khác hoặc liên kết một số lượng vô hạncác máy tính thành một cơ sở dữ liệu khổng lồ Công nghệ tương tác phần mềm chophép các công ty chia nhỏ các vấn đề phức tạp cho dễ quản lý hơn Các hệ thống chophép đối chiếu dữ liệu và đảm bảo rằng chúng đang được điều khiển bởi chính nhữngngười tạo ra chúng, đảm bảo rằng hoạt động chính xác và kịp thời rất lý tưởng cho cácứng dụng trực tuyến và kinh doanh chứng khoán
Một loạt các hãng mới thành lập đang tạo ra những chương trình tận dụng tàinguyên triển khai khả nǎng của P2P để lưu trữ các file, phân phối nội dung và chia sẻsức mạnh xử lý của các máy khác Mục đích ở đây một phần là cắt giảm giá thànhphần cứng chẳng hạn như thiết bị lưu trữ, server và các thiết bị khác, nhưng cũng giúpcho việc quản lý giao thông trên mạng Mặc dù có tiềm nǎng dịch vụ lớn, nhưng đây làmột vấn đề khó khǎn nhất của P2P Có quá nhiều vấn đề liên quan đến an toàn bảo mật
Trang 17và sự phức tạp - không đề cập đến giá của các thiết bị lưu trữ và các server giảmxuống - khiến cho các dịch vụ P2P trở nên không thiết thực.
Cuối cùng, công nghệ P2P có thể áp dụng cho các dịch vụ tính toán phân tán cókhả nǎng đạt được siêu xử lý cho các công ty cần khả nǎng xử lý lớn nhưng khôngmuốn bỏ hàng triệu đôla cho nó Công nghệ này đã chia việc xử lý lớn ra thành những
xử lý nhỏ có thể phân tán giữa các máy tính trong một mạng Mỗi một PC đồng thời
xử lý các dữ liệu và trả về kết quả cho máy tính trung tâm ráp nối các phần này lại Ví
dụ, tiến trình này có thể được sử dụng để chia ra từng ảnh nhỏ riêng biệt để tạo hìnhảnh động cho những máy PC khác nhau thực hiện đồng thời và sau đó kết hợp nhữnghình đã được xử lý đó thành một chuỗi các hình liên tục Khi có hàng ngàn, hay hàngtriệu máy tính được nối lại với nhau thì có thể liên kết tính toán siêu xử lý song songvới tốc độ nhiều triệu phép tính / giây, với giá thành nhỏ hơn nhiều so với các siêumáy tính như máy đánh cờ Deep Blue hay Blue Gene của IBM Các ứng dụng siêu xử
lý này có thể bán các dịch vụ kiểu này cho các công ty thiết kế công nghệ, nghiên cứu
y dược và tính toán mô hình tài chính kinh tế
Thập kỷ trước đã chứng kiến những thay đổi lớn về cung cách làm việc Biêngiới của các công ty đã trở lên rộng lớn hơn và mối quan hệ giữa khách hàng và nhàcung cấp đã trở lên gần gũi hơn đồng thời sự tin tưởng của công ty vào những ngườilao động tạm thời và các chuyên gia tǎng lên, trong khi đó các tổ chức lại dựa nhiềuhơn vào các nhóm làm việc đặc biệt Những nơi làm việc như vậy sẽ không có một cấutrúc làm việc cố định và một vai trò nghề nghiệp được xác định rõ ràng P2P rất phùhợp với cách thức hợp tác này
Việc sử dụng các hệ thống mạng đã làm thay đổi một cách đáng kể lực lượnglao động trong những nǎm gần đây Những nhóm làm việc tự phát qua mạng là sự pháttriển có ý nghĩa quan trọng về cách thức làm việc của các công ty Lần lượt các hệthống nhắn tin như ICQ và các công cụ P2P khác dùng để giao tiếp sẽ trở thành trungtâm của các mạng như thế và cho phép người sử dụng liên kết với nhau một cách tự do
Trang 18thực hiện nhanh hơn nhiều những chu kì thiết kế tuần hoàn của mình, vì vậy đã tiếtkiệm khoảng 15 triệu USD cho mỗi chương trình thiết kế bánh xe.
Liệu tất cả những điều này đang đánh dấu ngày tàn của server công ty? Các nhàtin học cho rằng trong thương mại, P2P chỉ thích hợp cho những ứng dụng có trao đổithông tin trực tiếp Như vậy, server sẽ tiếp tục duy trì vị trí của mình trong việc quản
lý nhân sự và chi tiêu, kế hoạch kinh doanh và nhiều ứng dụng khác Tuy nhiên, trongtương lai, server sẽ cung cấp các dịch vụ cao cấp hơn thay vì những việc lặt vặt đơngiản như lưu trữ và phân phát các tệp P2P là một kiểu kiến trúc máy tính mới có nhiềuhứa hẹn Tuy vậy để có thể có các ứng dụng tin cậy như thực tế đòi hỏi, không ít côngsức và thời gian sẽ phải bỏ ra
1.3 Phân loại mạng ngang hàng
1.3.1 Phân loại theo mức độ phân quyền
Phân quyền là một trong những khái niệm chính của hệ thống mạng nganghàng Điều này bao gồm phân phối tài nguyên lưu trữ, sự xử lý, thông tin chia sẻ cũngnhư thông tin điều khiển Dựa trên cơ sở mức độ phân quyền và cách thức trao đổi, thunhận tài nguyên của các máy tính trong mạng ngang hàng người ta chia mạng nganghàng ra làm hai loại kiến trúc chính:
a, Mạng P2P thuần nhất
Hình 1-4: Mạng ngang hàng hoàn toàn
Trong hệ thống này, tất cả các máy đều được nối với nhau, đây là mô hình thểhiện chính xác nhất bản chất của mạng ngang hàng Trong mạng ngang hàng hoàn
Trang 19toàn không có máy chủ trung tâm quản lý mạng, mọi máy tính trong mạng có vai tròvừa là máy chủ vừa là máy khách Trong mạng không có các máy định tuyến haytrung tâm định tuyến, các máy trong mạng tự định tuyến cho chính nó Trong hệ thốngnhư vậy tất cả các máy là cân bằng về chức năng, các máy là các node và được gọi là
“serv-ent”
Ưu điểm của loại mạng này là khả năng mở rộng nhanh, khả năng chịu lỗi của
hệ thống lớn, các máy trong mạng có tính tự chủ cao Khi trong mạng có một vài nodelỗi thì không gây ra lỗi toàn mạng và dễ dàng khắc phục Các node có vai trò lớn hơnđối với dữ liệu và tài nguyên của nó Nhược điểm chính của mạng là tốc độ phát hiệnthông tin chậm, không đảm bảo chất lượng dịch vụ, khó đoán biết hành vi của hệthống
Các mạng ngang hàng thuần tuý có thể kể như: Gnutella, Freenet
b, Mạng P2P lai ghép
Hình 1-5: Mạng lai ghép
Mạng P2P lai ghép có một máy chủ trung tâm dùng để lưu trữ thông tin của cácmáy khách và trả lời các truy vấn thông tin của chúng Máy chủ này điều khiển hoạtđộng của mạng như một phần tử có thể kiểm soát toàn bộ các máy khác, đảm bảo tínhchặt chẽ của thông tin trên mạng Các máy khách có vai trò lưu trữ thông tin, tàinguyên được chia sẻ và cung cấp các thông tin của nó cho máy chủ Tất cả các luồng
dữ liệu thông thường đều được truyền trực tiếp giữa các peer, chỉ các luồng thông tinđiều khiển mới được truyền qua Server trung tâm Có hai kiểu mạng lai ghép: mạng laighép với chỉ số hoá tập trung và mạng lai ghép chỉ số hoá phân tán
Trang 20Hình 1-6: Mạng lai ghép với chỉ số hoá tập trung
Trong mạng lai ghép chỉ số hoá tập trung có một máy chủ trung tâm bảo trì cácchỉ số của dữ liệu hoặc tài nguyên hiện tại đang được chia sẻ bởi các máy khách tíchcực, mỗi máy khách giữ gìn một kết nối tới máy chủ trung tâm để gửi các yêu cầu Hệthống này với một server trung tâm đơn giản nhưng xử lí nhanh, có thể tìm kiếm pháthiện thông tin hiệu quả đảm bảo trên toàn bộ hệ thống Tuy vậy khả năng mở rộngkhông cao mô hình này rất dễ bị lỗi và sụp đổ khi máy chủ trung tâm bị lỗi hoặc bị tấncông, kích thước cơ sở dữ liệu và khả năng đáp ứng yêu cầu của nó là có giới hạn.Kiến trúc này được sử dụng trong mạng Napster
Hình 1-7: Mạng lai ghép với chỉ số hoá phân tán
Trong hệ thống này tồn tại một số siêu node lưu chỉ mục thông tin về các peercục bộ Truy vấn thông tin được gửi tới siêu node, nó là proxy cho các peer cục bộ Do
đó truy vấn thông tin nhanh hơn và lưu lượng trao đổi thông tin giữa các node ít hơn
so với hệ thống P2P thuần nhất So với hệ thống chỉ số tập trung nó có ưu điểm là
Trang 21giảm tải đáng kể cho server tránh lỗi cho toàn hệ thống nhưng phát hiện thông tinchậm hơn Ví dụ: mạng Kazaa, Morpheus.
1.3.2 Phân loại theo cơ chế tìm kiếm
Cơ chế định vị thông tin trong hệ thống là đặc điểm căn bản trong hệ thống P2P
Cơ chế tìm kiếm trong mạng ngang hàng được phát triển từ thế hệ thứ nhất với cấutrúc danh mục tập trung tới thế hệ thứ hai với cơ chế yêu cầu liên tục và thế hệ thứ badựa vào bảng băm phân tán
a, Cơ chế danh mục tập trung
Hình 1-8: Cơ chế danh mục tập trung
Cơ chế này được sử dụng trong mạng lai ghép, các máy khách kết nối tới máychủ chứa trung tâm thư mục, là nơi lưu trữ tất cả các thông tin về vị trí và cách sửdụng tài nguyên Dựa trên yêu cầu từ máy khách trung tâm chỉ số sẽ đưa yêu cầu tớimáy khách tốt nhất mà có thư mục phù hợp với yêu cầu Máy khách tốt nhất có thể là
rẻ nhất, nhanh nhất, gần nhất, hoặc sẵn sàng nhất, phụ thuộc vào người sử dụng cần.Sau đó dữ liệu sẽ được trực tiếp trao đổi giữa hai máy khách Mạng Napster sử dụngphương pháp này, một máy chủ trung tâm sẽ giữ gìn chỉ số của dữ liệu với các trườngtiêu đề của tất cả các file trên mạng, một bảng các thông tin đăng kí kết nối của ngườidùng như địa chỉ IP, tốc độ kết nối…, một bảng danh sách các file mà người sử dụnggiữ và chia sẻ trong mạng Khi bắt đầu, máy khách sẽ tiếp xúc với máy chủ trung tâm
và đưa ra một danh sách với các file mà nó giữ Khi máy chủ thu được một yêu cầu từngười dùng Nó sẽ tìm kiếm cho chỉ số phù hợp file cần tìm, trả lại danh sách nhữngngười dùng đang giữ file phù hợp Người dùng sẽ thiết lập một kết nối trực tiếp tớimáy đang giữ file và lấy nó về
Mô hình này có nhược điểm là khả năng mở rộng không cao, dễ bị lỗi toàn hệthống
Trang 22b, Cơ chế yêu cầu liên tục
Hình 1-9: Cơ chế yêu cầu liên tục
Đây là mô hình mạng ngang hàng hoàn toàn trong đó mỗi điểm (peer) khônglưu giữ bất kỳ trung tâm thư mục nào và mỗi điểm sẽ công bố thông tin về nội dungchia sẻ trong mạng ngang hàng Vì vậy không một điểm đơn nào biết về tất cả các tàinguyên, một điểm khi cần tìm kiếm tài nguyên nó sẽ gửi yêu cầu tới tất cả các điểmđang kết nối với nó, cứ như thế yêu cầu được gửi đi cho tới khi được trả lời hoặc khi
số bước gửi yêu cầu là cực đại Khi số điểm trên mạng lớn thì lưu lượng trên mạng sẽrất lớn, đây là nhược điểm của mô hình tìm kiếm này Hệ thống này chỉ làm việc hiệuquả với mạng nhỏ như Gnutella Mô hình cải tiến đưa vào khái niệm super peer giảmtiêu thụ băng thông và cho khả năng mở rộng cao hơn ví dụ Kazaa
c, Cơ chế bảng băm phân tán
Hình 1-10: Cơ chế bảng băm phân tán
Đây là là mô hình tiên tiến nhất và được sử dụng trong mạng ngang hàng hoàntoàn Mô hình định tuyến thêm vào cấu trúc thông tin về những tài nguyên được lưu
Trang 23trữ sử dụng bảng băm phân tán Giao thức này cung cấp một ánh xạ giữa số nhận dạngcủa tài nguyên (ID) và vị trí lưu trữ Trong cấu trúc của bảng định tuyến một truy vấn
có thể được định tuyến hiệu quả tới node có tài nguyên mong muốn Giao thức nàylàm giảm bớt số bước mà node trong mạng cần thiết để định vị tài nguyên tìm kiếm.Mỗi node được gắn một giá trị ID và nó biết một vài các node khác Khi một nodemuốn chia sẻ tài liệu, tên và nội dung của tài liệu đó được băm tạo ra một ID gắn vớitài liệu đó Tài liệu được định tuyến tới node có ID gần với ID của tài liệu nhất Khimột node muốn lấy một tài liệu nào đó nó gửi yêu cầu chứa ID của tài liệu Yêu cầuđược chuyển tới node có ID gần với ID của tài liệu nhất, sau đó tài liệu được chuyểntới node yêu cầu Các mạng ngang hàng thế hệ mới đều sử dụng phương pháp tìmkiếm này như: Freenet, Chord, Kademlia… Mô hình này được chứng minh là có hiệuquả với mạng có số peer lớn Tuy vậy nó vẫn tồn tại các nhược điểm đó là khó cài đặttính năng tìm kiếm do phải biết trước ID của file trước khi gửi yêu cầu Băm tên filehoặc nội dung khác nhau tạo ra ID khác dẫn đến không tìm thấy file Các node khichia vào các nhóm khác nhau không có sự liên hệ dẫn đến vấn đề ‘’islanding’’(cô lập)
1.3.3 Phân loại theo cấu trúc
Cấu trúc mạng ngang hàng bao gồm tất cả các nút mạng đại diện cho các máytham gia và các liên kết giữa các nút mạng này Một liên kết tồn tại giữa hai nút mạngkhi một nút mạng biết vị trí của nút mạng kia Dựa vào cấu trúc liên kết giữa các nútmạng ta có thể phân loại mạng ngang hàng thành 2 loại: có cấu trúc hay không cấutrúc
Một mạng ngang hàng không cấu trúc khi các liên kết giữa các nút mạng trongmạng phủ được thiết lập ngẫu nhiên (tức là không theo qui luật nào) Những mạng nhưthế này dễ dàng được xây dựng vì một máy mới khi muốn tham gia mạng có thể lấycác liên kết có sẵn của một máy khác đang ở trong mạng và sau đó dần dần tự bảnthân nó sẽ thêm vào các liên kết mới của riêng mình Khi một máy muốn tìm một dữliệu trong mạng ngang hàng không cấu trúc, yêu cầu tìm kiếm sẽ được truyền trên cảmạng để tìm ra càng nhiều máy chia sẻ càng tốt Hệ thống này thể hiện rõ nhược điểm:
tỉ lệ tìm kiếm thành công thấp Đối với tìm kiếm các dữ liệu phổ biến được chia sẻ trênnhiều máy, tỉ lệ thành công là khá cao, ngược lại, nếu dữ liệu chỉ được chia sẻ trên mộtvài máy thì xác suất tìm thấy là khá nhỏ Tính chất này là hiển nhiên vì trong mạngngang hàng không cấu trúc, không có bất kì mối tương quan nào giữa một máy và dữliệu nó quản lý trong mạng, do đó yêu cầu tìm kiếm được chuyển một cách ngẫu nhiênđến một số máy trong mạng Số lượng máy trong mạng càng lớn thì khả năng tìm thấy
Trang 24thông tin càng nhỏ Một nhược điểm khác của hệ thống này là do không có địnhhướng, một yêu cầu tìm kiếm thường được chuyển cho một số lượng lớn máy trongmạng làm tiêu tốn một lượng lớn băng thông của mạng, dẫn đến hiệu quả tìm kiếmchung của mạng thấp.
Hầu hết các mạng ngang hàng không cấu trúc phổ biến như Napster, Gnutella,Fasttrack và eDonkey2000
Mạng ngang hàng có cấu trúc khắc phục nhược điểm của mạng không cấu trúcbằng cách sử dụng hệ thống DHT (Bảng Băm Phân Tán: Distributed Hash Table) Hệthống này định nghĩa liên kết giữa các nút mạng trong mạng phủ theo một thuật toán
cụ thể, đồng thời xác định chặt chẽ mỗi nút mạng sẽ chịu trách nhiệm đối với mộtphần dữ liệu chia sẻ trong mạng Với cấu trúc này, khi một máy cần tìm một dữ liệu,
nó chỉ cần áp dụng một giao thức chung để xác định nút mạng nào chịu trách nhiệmcho dữ liệu đó và sau đó liên lạc trực tiếp đến nút mạng đó để lấy kết quả Mô hìnhnày đem lại hiệu quả tìm kiếm cao nhưng lại tăng chi phí duy trì khi các peer tham giahay rời khỏi mạng
Một số mạng ngang hàng có cấu trúc nổi tiếng bao gồm Chord, CAN,Kademlia, Pastry và Tapestry
1.4 Ứng dụng của mạng ngang hàng
Có thể chia các ứng dụng của P2P thành bốn loại:
1.4.1 Chia sẻ tài liệu
Lưu trữ và trao đổi tài nguyên là một trong những mặt thành công nhất của côngnghệ mạng ngang hàng Ứng dụng chia sẻ tài liệu tập trung vào sự lưu trữ thông tin vàkhôi phục thông tin từ nhiều máy khác trên mạng Một trong những ví dụ tốt nhất củamạng ngang hàng là Napster, nó trở thành hệ thống chia sẻ ca nhạc nổi tiếng
1.4.2 Phân tán tính toán
Ứng dụng này sử dụng tài nguyên từ một số các máy tính trên mạng (năng lực
xử lí của các máy tính rỗi trên mạng) Ý tưởng đằng sau ứng dụng này là bất kỳ máytính nào kết nối vào mạng có thể được sử dụng để giải quyết vấn đề của những máykhác đang yêu cầu tính toán thêm Ví dụ dự án SETI (Search for ExtraterrestrialIntelligence: Tìm kiếm nền văn minh ngoài trái đất)
Trang 251.4.3 Hợp tác
Mục đích của ứng dụng hợp tác trong mạng ngang hàng là cho phép cộng tác ởmức ứng dụng giữa các người dùng ví dụ như chat, instant messaging, online gameđến các ứng dụng chia sẻ có thể sử dụng trong kinh doanh, giáo dục …
1.4.4 Lớp nền
P2P platform cung cấp hạ tầng cho các ứng dụng phân tán sử dụng cơ chế P2P.Các phần tử P2P sử dụng ngữ cảnh để phát hiện, kết nối, bảo mật, tập hợp tàinguyên…Ví dụ JXTA là một P2P platform cung cấp một nền cơ bản cho việc lập trình
và xử lí trên mạng
1.5 Các vấn đề đối với mạng ngang hàng
Hệ thống P2P có một số ưu điểm hơn so với hệ thống client-server truyền thốngnhư khả năng mở rộng, khả năng chịu lỗi, hiệu năng cao Tuy nhiên còn nhiều vấn đề
mà các hệ thống P2P hiện nay đang phải giải quyết:
1.5.1 Tính bảo mật
Bảo mật cho hệ thống P2P khó khăn hơn các hệ thống khác, các node trong hệthống là động, phân tán khắp nơi, các node không chứng thực lẫn nhau Các cơ chếbảo mật truyền thống như tường lửa, xác thực… không thể bảo vệ hệ thống P2P ngượclại có thể ngăn cản quá trình truyền thông trong hệ thống Bởi vậy những khái niệmbảo mật mới được đặt ra đối với hệ thống P2P
1.5.2 Độ tin cậy
Một hệ thống đáng tin cậy là hệ thống có thể phục hồi khi lỗi xảy ra Nhữngnhân tố cần phải quan tâm khi tính toán cho sự tin cậy là: nhân bản dữ liệu, phát hiệnnode lỗi, phục hồi… đảm bảo cho thông tin định vị tránh lỗi đơn và khả năng sẵn sàngnhiều đường dẫn tới dữ liệu Nhân bản dữ liệu tăng sự tin cậy bằng việc tăng sự dưthừa và định vị Có hai chiến lược cho nhân bản: nhân bản nguyên gốc và nhân bảnđường dẫn Trong nhân bản nguyên gốc, khi tìm kiếm thành công dữ liệu được lưu trữchỉ tại node yêu cầu Trong nhân bản đường dẫn khi tìm kiếm thành công dữ liệu đượclưu trữ tại tất cả các node dọc theo đường dẫn từ node yêu cầu tới node cung cấp
Trang 261.5.3 Độ linh động
Chính là khả năng tự chủ của các node trong việc gia nhập hoặc rời bỏ hệ thống
Để giải quyết vấn đề quy mô lớn, phân tán và linh động của các hệ thống P2P, khi xâydựng các hệ thống P2P cần chú ý đến khả năng điều chỉnh và tự tổ chức
1.5.4 Cân bằng tải
Phân phối dữ liệu để lưu trữ hoặc tính toán trên các node là vấn đề rất quantrọng trong các hệ thống mạng ngang hàng, một giải pháp đặc biệt cho sự phân phốinày là Bảng băm phân tán (DHT) Trong cách tiếp cận này, cân bằng tải được xem xéttrên hai khía cạnh: cân bằng không gian địa chỉ tức là cân bằng phân phối của khônggian key address trên các node và cân bằng item trong trường hợp phân phối của cácitem trong không gian địa chỉ không thể là ngẫu nhiên Cân bằng tải giữa các node tínhtoán trong hệ thống P2P cũng có thể được cài đặt sử dụng mô hình tự tổ chức dựa trênagent
1.6 Một số ví dụ về mạng ngang hàng
1.6.1 Mạng Edonkey
Hay còn gọi là mạng Edonkey2000 là một chương trình chia sẻ tệp trên mạngngang hàng, được phát triển bởi MetaMachine, sử dụng giao thức truyền tệp đa nguồn(tiếng Anh: Multisource File Transfer Protocol) Chương trình eDonkey hỗ trợ cả haimạng eDonkey và mạng Overnet
Người dùng eDonkey2000 chủ yếu chia sẻ những tệp rất lớn, hàng trămmêgabyte, như đĩa CD, phim, trò chơi, và phần mềm Không như các phần mềm chia
sẻ tệp ngang hàng khác, tệp chia sẻ trong mạng eDonkey được cung cấp dưới dạngmột liên kết ed2k, chương trình eDonkey2000 sẽ tự khởi động và tải tệp khi liên kếted2k được kích hoạt
Trang 27Hình 1-11: Mạng Edonkey
Edonkey là mạng ngang hàng phân quyền, tài nguyên không được lưu trữ ở mộtmáy chủ trung tâm mà được chia sẻ trực tiếp giữa những người sử dụng Phần mềmcủa mạng Edonkey cài đặt trên máy khách kết nối vào mạng để chia sẻ tài nguyên Cácmáy chủ đóng vai trò như những hub truyền thông cho các khách hàng, cho phépngười sử dụng định vị tài liệu trong mạng Bằng việc chạy phần mềm máy chủEdonkey trên một máy tính kết nối vào Internet, bất kỳ người sử dụng nào cũng có thểkết nối tới máy chủ để vào mạng Số máy chủ và địa chỉ của nó thường xuyên thayđổi, chương trình chạy trên các máy khách sẽ thường xuyên cập nhật danh sách cácserver
Đặc tính của mạng Edonkey là các tài liệu được nhận dạng duy nhất bằng cách
sử dụng thuật toán băm MD4, nó là hàm duy nhất của nội dung tài liệu Điều này cónghĩa là khi tên file giống nhau nhưng nội dung khác nhau thì số nhận dạng sẽ khácnhau Hơn nữa những tài liệu mà có kích thước lớn hơn 9.28MB sẽ được chia ra thànhcác khối và việc kiểm tra của thuật toán MD4 sẽ tính toán cho các khối đó Bằng việctính giá trị theo MD4 cho các khối, khối bị lỗi của một file lớn sẽ được nhận dạng vàđược tải về lại sau đó chứ không yêu cầu phải tải lại toàn bộ file Hơn nữa những khốikhông bị lỗi sau khi được tải xuống có thể lập tức được chia sẻ thậm chí trước khiphần còn lại của tài liệu được tải xuống, tăng tốc độ phân phối của những tài liệu lớnkhắp mạng Để tính giá trị tổng của một tài liệu, MD4 cộng tất cả các giá trị của cácphần ra được kết quả băm của file, đây là giá trị ID gắn với file
Trong mạng Edonkey các máy chủ phục vụ xuất hiện để kiểm duyệt những nộidung chia sẻ và thông tin về các file bằng cách kiểm tra kiểu của file Các máy này là
Trang 28cầu nối để các máy khác kết nối vào mạng Việc tìm kiếm, đưa lên và tải về tài liệu,
mã hoá dữ liệu là phần việc của các máy khách
1.6.2 Mạng Gnutella
Đây là mô hình mạng ngang hàng hoàn toàn trong chia sẻ tài nguyên và cả tronggiao thức, ở đó các máy kết nối vào mạng bằng cách kết nối với những máy đã tồn tạitrong mạng Hình thức này hình thành ứng dụng trên mạng vật lý Tất cả các nodetrong mạng có thể quản lý tài nguyên và khôi phục tài nguyên từ node khác Để tạođiều kiện cho việc chia sẻ tài liệu một thông báo được gửi giữa các node, truy vấn vềtài liệu cần tìm được phát quảng bá toàn mạng và được lặp lại định tuyến ngược trở lạinode đầu tiên đã đưa ra yêu cầu trong mạng Thông báo tìm kiếm sẽ được sử dụng đểtìm kiếm các node Hình 1-12 là mô hình mạng Gnutella
Hình 1-12: Mạng Gnutella
Gnutella sử dụng giao thức phân tán, một người bắt đầu bằng dùng một phầnmềm Gnutella và sử dụng out-of-band để định vị những node khác và kết nối với nó.Đây là cách mở rộng mạng và làm cho các tài liệu của node mới được nhận dạng bởicác node trong mạng Khi một kết nối được thiết lập, node sẽ sử dụng giao thứcGnutella để thông tin Trong Gnutella mỗi máy trong mạng trở thành máy khách vàmáy chủ ở cùng một thời điểm Một node là máy khách khi nó tìm kiếm dữ liệu và trởthành máy chủ nếu nó phục vụ cho các yêu cầu của các node khác
Việc thông tin giữa các node được thực hiện bằng giao thức TCP/IP Để kết nốimột node phải biết địa chỉ IP của một node nào đó đang tồn tại trên mạng, khi kết nốiđược thiết lập node đó sẽ tạo ra một thông báo rằng nó đang tồn tại Những node khác
sẽ trả lời tới thông báo những thông tin như số các tài liệu mà nó tiếp xúc và những chitiết khác
Trang 291.6.3 Mạng Napster
Đây là mạng chia sẻ tài nguyên phân tán với máy chủ cơ sở, máy chủ khônggiống như truyền thống, trong nó chỉ chứa danh sách các thư mục Các máy khách sẽtải về và quản lý tài nguyên, trong khi đó máy chủ sẽ giữ chỉ số của tài liệu điều khiểnyêu cầu tìm kiếm của máy khách Một máy khách gửi yêu cầu tìm kiếm của nó tớimáy chủ, máy chủ sẽ tìm kiếm trong các chỉ mục nó lưu trữ và gửi danh sách phù hợptrở lại cho máy khách Máy khách sẽ sử dụng danh sách đó để kết nối tới máy khách
có chứa tài nguyên và tải về tài nguyên từ những máy khách đó Khi máy khách kếtnối với máy chủ lần đầu tiên, chúng sẽ gửi danh sách các tài nguyên mà nó đang muốnchia sẻ lên cho máy chủ, những tài nguyên này sẽ được thêm vào danh sách chỉ mụccủa máy chủ Napster là hệ thống chia sẻ tài nguyên ngang hàng tập trung, có nghĩa làNapster cung cấp một máy chủ cho các máy khách để tổ chức và cho phép truy nhậptới bất kỳ hoặc tất cả các file tồn tại trên các máy khách Hình 1-13 là mô hình mạngNapster
Hình 1-13: Mạng Napster
Giao thức từ máy chủ tới máy khách: Các máy trong mạng Napster sử dụnggiao thức TCP/IP để truyền tin Máy chủ sẽ tạo ra một “danh sách chính” của tất cảcác máy kết nối tới nó, bao gồm địa chỉ IP và file chia sẻ Các máy khách sẽ gửi yêucầu tới máy chủ cho file chi tiết, máy chủ sẽ truy vấn trong cơ sở dữ liệu cho yêu cầu
đó, nếu tìm thấy máy chủ sẽ trả lại danh sách của các máy khách nơi mà file được định
vị và đưa ra số, tên sử dụng, kích cỡ file, tốc độ bit, và những thông tin liên quan từnhững khách hàng giữ file yêu cầu Người sử dụng sẽ gửi một thông báo tới máy
Trang 30khách có file người sử dụng chọn để tải về Máy chủ sẽ ngắt kết nối nếu quá trìnhtruyền dẫn thành công.
Giao thức từ máy khách tới máy khách: File trao đổi được truyền trực tiếp giữacác máy khách mà không thông qua máy chủ Có bốn loại truyền dẫn: tải lên, tải về,tải lên qua tường lửa và tải về qua tường lửa Phương pháp truyền dẫn bình thường làmáy khách tạo một kết nối TCP tới máy khách khác đang giữ file trên cổng dữ liệu củachúng Nếu máy khách chia sẻ file không có tường lửa nó sẽ cần tạo ra một “lực đẩy”file cần truyền bằng cách tạo một kết nối tới cổng dữ liệu yêu cầu Nói chung mộtthông báo được gửi giống như “chúng ta hãy kết nối, đây là địa chỉ của tôi và đây làcái tôi muốn” Nhưng nếu máy khách chia sẻ file ở sau một tường lửa, một thông báogiống như “chúng ta gặp nhau, đây là địa chỉ của tôi và đây là cái tôi muốn, nhưng vịtrí của bạn không được tốt, tại sao bạn không gặp tôi tại đây” Hình 1-14 là sơ đồ tìmkiếm của Napster
Hình 1-14: Tìm kiếm trên mạng Napster
1.7 Kết luận chương 1
Chương 1 trình bày một số khái niệm tổng quan về mạng ngang hàng Ta phânloại các hệ thống mạng ngang hàng dựa trên cơ sở về mức độ phân quyền, về cơ chếtìm kiếm dữ liệu và về cấu trúc mạng Ta cũng trình bày một vài ứng dụng và một sốvấn đề chủ yếu đối với mạng ngang hàng hiện nay Từ đó phân tích các ưu điểm,nhược điểm so với mạng Client-Server truyền thống Phần cuối chương giới thiệu vềhoạt động của một số mạng ngang hàng phổ biến trên Internet
Trang 31Nguyễn Thế Tùng – Đ04VT1
Trang 32Ánh xạ dữ liệu (Mapping items onto nodes): đối với mỗi overlay graph, chúng
ta quan tâm đến mối quan hệ giữa ID của node và ID của các item lưu trên node đó,tức là một item cụ thể sẽ được lưu trên node nào
Quá trình tìm kiếm (Lookup process): Việc tìm kiếm trên một mạng diễn ra nhưthế nào và hiệu năng của quá trình tìm kiếm liên quan chặt chẽ đến loại overlay graphcủa mạng đó
Quá trình bảo trì mạng (Join, leave and maintenance): chúng ta sẽ xem mộtnode mới được thêm vào graph như thế nào và một node rời graph như thế nào Docác node trong mạng thường xuyên join, leave nên cần có một số tiến trìnhmaintenance để xử lý các thay đổi trong mạng, chúng ta quan tâm đến các tiến trìnhnày diễn ra như thế nào và chi phí thực hiện các tiến trình này
2.2 Giao thức Chord
2.2.1 Mạng phủ
Chord sử dụng một không gian ID vòng tròn kích thước N Một node Chord với
ID là u có một con trỏ tới node đầu tiên đứng sau nó trong không gian ID theo chiềukim đồng hồ, ký hiệu là Succ(u) và một con trỏ tới node đứng trước nó trong khônggian ID, ký hiệu là Pred(u) Các node tạo thành một danh sách liên kết hai chiều
Bên cạnh đó, một node Chord lưu M=log2(N) con trỏ gọi là các finger Tập cácfinger của node ID u được xác định như sau F(u)={Succ(u+2i-1)}, 1 ≤ i ≤ M Với cáchlựa chọn finger thế này, trong mạng Chord, các node quan sát không gian ID của vòngtròn bắt đầu từ ID của chúng Đồng thời với cách lựa chọn finger của Chord, khônggian ID sẽ được chia đôi, nửa thứ nhất cũng được chia đôi, rồi phần tư thứ nhất lạiđược chia đôi …
Trang 33Hình 2-2: Không gian ID của mạng Chord (N=64)
Hình 2-2 cho thấy một mạng với không gian ID N=64, mỗi node cóM=log2(N)=6 finger Mạng có các node với ID lần lượt là 1, 8, 14, 21, 32, 38, 42, 48,
51, 56 Node n chọn các finger của nó bằng cách xem nó như là điểm khởi đầu củakhông gian ID, rồi chọn finger là successor của các ID n + 20, n + 21, n + 22, n + 23, n +
24, n + 25 Tuy nhiên, có thể không có node có ID phù hợp tại điểm chia, khi đósuccessor của ID tại điểm chia được chọn làm finger Bảng finger table cho node 8được thể hiện như hình vẽ trên
2.2.2 Ánh xạ dữ liệu
Hình 2-3: Các item lưu trên mạng Chord
Như chúng ta thấy trên Hình 2-3, một item được lưu trên node có ID bằng nó(K38, N38) hoặc là node đầu tiên có ID theo sau chiều kim đồng hồ như (K10, N14);(K24, N32); (K30, N32); (K54, N56) Một node có thể lưu nhiều item nhưng ngược lạithì không đúng
Trang 342.2.4 Quá trình bảo trì mạng
Khi node n muốn join vào mạng, nó phải tìm ID của mình thông qua một sốcontact trong mạng và chèn chính nó vào giữa successor s của nó và predecessor của snhờ sử dụng một thuật toán stabilization chạy định kỳ Bảng định tuyến của n đượckhởi tạo bằng cách sao chép bảng định tuyến của s hoặc yêu cầu s tìm các finger của n.Tập các node cần điều chỉnh bảng định tuyến sau khi n join vào mạng nhờ các nodenày đều chạy thuật toán stabilization định kỳ Nhiệm vụ cuối cùng là chuyển một phầncác item đang lưu trên node s có ID nhỏ hơn hoặc bằng n sang node n Việc di chuyển
dữ liệu này được thực hiện bởi tầng ứng dụng của n và s
Giả mã của các quá trình tìm kiếm successor của node n, khởi tạo bảng địnhtuyến của n, cập nhật bảng finger của các node liên quan và quá trình stabilization nhưsau:
//yêu cầu node n tìm successor của id
Trang 35Algorithm 1 Giả mã tìm node successor của ID n
#define successor finger[1].node
// node n join vào mạng;
}// chuyển key trong khoảng (predecessor,n] từ successor
else // n là node duy nhất trên mạng
{
Trang 37//tìm node p cuối cùng có finger thứ i là n
Trang 38Algorithm 3 Giả mã cho quá trình stabilizaion
Hình 2-4 (a, b) cho chúng ta thấy một ví dụ về quá trình join vào mạng của mộtnode Giả sử node 21 có successor là node 32, trên node 32 đang lưu các key 24 và 30.Node 26 join vào mạng, sau quá trình tìm kiếm, node 26 biết node 32 là successor củamình, nó trỏ con trỏ successor của mình vào node 32 và báo cho node 32 biết Node 32
Trang 39sau khi được thông báo thì trỏ con trỏ predecessor vào node 26 Node 26 sao chép cáckey tương ứng với nó (key 24) từ node 32
Đến định kỳ, node 21 chạy quá trình stabilize, lúc này con trỏ successor vẫn trỏvào node 32 Node 21 hỏi node 32 về predecessor của node 32, lúc này predecessorcủa 32 là 26 Sau khi nhận được câu trả lời, node 21 trỏ con trỏ successor vào node 26
và báo cho node 26 biết nó là predecessor của node 26 Node 26 trỏ con trỏpredecessor vào node 21
(a)
(b)
Hình 2-4: Quá trình node tham gia vào mạng Chord
Quá trình rời khỏi mạng có báo trước được thực hiện như sau: node sắp rời khỏimạng chuyển các key nó đang lưu sang successor của nó rồi báo cho các node