Tài liệu tham khảo công nghệ thông tin Tối ưu hóa topology cho mạng ngang hàng có cấu trúc chord
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Đặng Ngọc Bền
TỐI ƯU HÓA TOPOLOGY CHO MẠNG NGANG
HÀNG CÓ CẤU TRÚC CHORD
KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ Thông tin
Cán bộ hướng dẫn: TS Nguyễn Hoài Sơn
HÀ NỘI - 2009
Trang 2LỜI CẢM ƠN
Em xin chân thành cảm ơn các thầy cô giáo trong trường Đại học Công nghệ - Đại học Quốc gia Hà Nội đã tận tình giúp đỡ và truyền đạt kiến thức cho em trong suốt 4 năm học qua để em có đủ kiến thức hoàn thành khóa luận này
Đặc biệt, em xin gửi lời cảm ơn sâu sắc tới thầy Nguyễn Hoài Sơn – người đã nhiệt tình động viên, định hướng em trong quá trình định hình, nghiên cứu và hoàn thành khóa luận
Em xin cảm ơn sự nhiệt tình chia sẻ kinh nghiệm, đóng góp ý kiến của nhóm nghiên cứu do thầy Nguyễn Hoài Sơn hướng dẫn, của các anh chị cao học Em xin gửi lời cảm ơn chân thành tới thầy Nguyễn Đại Thọ, người đã giảng dạy cho em những kiến thức cơ bản liên quan trực tiếp đến đề tài của khóa luận
Mặc dù đã rất cố gắng hoàn thành khóa luận này, xong khóa luận sẽ khó tránh khỏi những thiếu sót, kính mong quý thầy cô tận tình chỉ bảo giúp em Một lần nữa em xin cảm ơn tất cả mọi người
Hà Nội, tháng 5 năm 2009 Sinh viên
Đặng Ngọc Bền
Trang 3Tóm tắt
Ngày nay, Internet đã thực sự phát triển và đi sâu vào đời sống của mỗi con người Khả năng chia sẻ những tài nguyên lớn một cách nhanh chóng và hiệu quả luôn nhận được quan tâm từ những người nghiên cứu cũng như sử dụng Internet Với những đặc điểm phù hợp, mạng ngang hàng, đặc biệt là mạng ngang hàng có cấu trúc ngày càng được sử dụng phổ biến cho các ứng dụng nêu trên Tuy nhiên, bên cạnh những ưu điểm, mạng ngang hàng có cấu trúc cũng bộc lộ những hạn chế nhất định, làm tiêu tốn băng thông và khả năng của mạng cũng như ứng dụng Vì thế, vấn đề tối ưu mạng ngang hàng có cấu trúc, khắc phục những nhược điểm còn tồn tại trở lên cần thiết
Khóa luận sẽ trình bày một giải pháp tối ưu mạng ngang hàng cấu trúc Chord - một giao thức của mạng ngang hàng có cấu trúc - dựa trên thời gian trễ Giải pháp tập trung giải quyết vấn đề khác biệt về topo (topology mismatch) qua hai quá trình: lựa chọn vị trí tham gia mạng của nút và tối ưu bảng định tuyến Tiêu chí dùng để tối ưu chính là thời gian trễ giữa các nút tham gia Giải pháp này đã được thử nghiệm trên chương trình mô phỏng với môi trường mạng ảo có thời gian trễ gần giống với Internet Kết quả cho thấy, giải pháp tối ưu đã đem lại hiệu quả với việc làm giảm thời gian trễ
và chi phí truyền thông trong các truy vấn tìm kiếm Theo đó, hiệu năng của mạng và ứng dụng cũng được nâng lên
Trang 4Mục lục
Mở đầu 1
Chương 1 Tổng quan 3
1.1 Mạng ngang hàng 3
1.2 Phân loại mạng ngang hàng 6
1.2.1 Hệ thống ngang hàng lai (Hybrid Peer-to-peer System) 6
1.2.2 Mạng ngang hàng thuần túy (Pure Peer-to-peer System) 7
1.2.3 Kiến trúc siêu ngang hàng (Super-peer Architecture) 8
1.2.4 Mạng ngang hàng có cấu trúc (Structured) 10
1.3 Cấu trúc Chord 11
1.3.1 Mô hình mạng Chord 12
1.3.2 Ánh xạ khóa vào một nút trong Chord 13
1.3.3 Tìm kiếm trong mạng Chord 14
1.3.4 Tham gia và ổn định mạng 14
Chương 2 Các nghiên cứu về tối ưu Chord 16
2.1 Tối ưu hóa trên Chord 16
2.2 Lựa chọn láng giềng gần (Proximity Neighbor Selection[5]) 17
2.3 Quasi-Chord [7] 19
Chương 3 Tối ưu Chord dựa trên lựa chọn độ trễ 24
3.1 Đề xuất 24
3.2 Nội dung 25
3.3 Ưu nhược điểm 27
Chương 4 Mô phỏng và đánh giá 28
4.1 Chương trình mô phỏng 28
4.1.1 Kiến trúc mạng mô phỏng 28
4.1.2 Dữ liệu 30
4.1.3 Các đối tượng 31
4.1.4 Thực thi 33
4.2 Kết quả và đánh giá 36
4.2.1 Hiệu quả so với Chord truyền thống 36
4.2.2 Hiệu quả khi thay đổi tham số 37
40
Chương 5 Kết luận 42
5.1 Kết luận 42
Trang 55.2 Hướng phát triển tiếp theo của đề tài 42 Tài liệu tham khảo 44 Phụ lục A 45
Trang 7Danh mục hình ảnh
Hình 1 Mô hình mạng ngang hàng 3
Hình 2 Mô hình mạng khách chủ 4
Hình 3 Mạng ngang hàng lai thế hệ thứ nhất (Napster) 7
Hình 4 Mạng ngang hàng thuần túy (Gnutella 0.4, FreeNet) 8
Hình 5 Kiến trúc siêu ngang hàng(Gnutella 0.6, JXTA) 9
Hình 6 Cơ chế của bảng băm phân tán (DHT) 11
Hình 7 Mạng ngang hàng có cấu trúc Chord dạng vòng tròn 11
Hình 8 Một mạng Chord với 3 nút 13
Hình 9 Lưu giữ key trong mạng Chord 14
Hình 10 Bản đồ miền trong không gian hai chiều 18
Hình 11 Tính toán với các điểm mốc 21
Hình 12 Tính toán với nút thông thường 21
Hình 13 Biểu đồ không gian Cantor với C=8 22
Hình 14: Bảng định tuyến giả định của N51 trong Quasi-Chord 23
Hình 15: Lựa chọn vị trí tham gia mạng 26
Hình 16: Mô hình mạng thực tế 28
Hình 17: Mô hình mạng mô phỏng 30
Hình 18: Biểu đồ thời gian trễ trung bình của Chord truyền thống và cải tiến 37
Hình 19: Biểu đồ thời gian trễ trung bình biến đổi theo CHOICE 38
Hình 20: Biểu đồ thời gian trễ trung bình theo EXPANSION 39
Hình 21: Biểu đồ thời gian trễ trung bình thay đổi theo lượng miền 40
Hình 22: Biểu đồ thời gian trễ trung bình thay đổi theo lượng nút tối đa 40
Trang 9Mạng ngang hàng có cấu trúc sử dụng giải thuật DHT (Distributed Hash Table – bảng băm phân tán) tạo nên một mạng phủ (overlay) trên mạng liên kết vật lý Giải thuật này định nghĩa liên kết giữa các nút mạng trong mạng phủ theo một cấu trúc 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ột phần dữ liệu chia sẻ trong mạng Mỗi nút đều được kết nối với một tập các nút khác gọi là tập nút láng giềng Chord là một giao thức của mạng ngang hàng có cấu trúc với không gian địa chỉ một chiều dạng vòng Mạng ngang hàng cấu trúc Chord ngày càng thể hiện nhiều ưu điểm như khả năng mở rộng, cân bằng tải, định tuyến, Giống như những giao thức trên mạng có cấu trúc khác, mỗi nút trong Chord xây dựng một bảng định
tuyến giúp cho việc tìm kiếm thông tin giảm từ O(N) với N là số lượng tối đa nút trong mạng, xuống còn O(log 2 N).
Trong mạng ngang hàng có cấu trúc nói chung và Chord nói riêng, quan hệ hàng xóm của các nút được thiết lập mà không xem xét đến topo (topology) tầng dưới Đó chính là nguyên nhân gây ra sự sai khác giữa topo của mạng DHT và topo mạng liên kết vật lý (topology mismatch) Điều này làm cho độ trễ truyền thông báo giữa các nút và chi phí truyền thông trong mạng P2P Yêu cầu đặt ra là làm sao để tối ưu mạng phủ, khắc phục sự khác biệt đó
Ngoài ra, khi xây dựng bảng định tuyến trong cấu trúc Chord, liên kết tại hàng thứ
i được chọn cố định là nút quản lý định danh k+2 i Như vậy, quá trình xây dựng liên kết trong bảng định tuyến cũng không xem xét đến quan hệ giữa các nút ở tầng dưới Nếu như liên kết này có thời gian trễ lớn thì tất cả những truy vấn đi qua nó đều bị ảnh hưởng bởi độ trễ này Quá trình chuyển tiếp truy vấn là đưa truy vấn đến vị trí mà khóa cần tìm kiếm thuộc lân cận của vị trí đó Vì thế, phương pháp hiện có để xây dựng các liên kết trong bảng định tuyến là chưa tốt
Trang 10Khóa luận này sẽ đề xuất một phương pháp mới để giải quyết hai vấn đề nêu trên xảy ra với mạng ngang hàng có cấu trúc nói chung và cấu trúc Chord nói riêng Vẫn dựa trên cấu trúc và định tuyến của Chord truyền thống, trong đề xuất mà khóa luận đưa ra, thứ nhất, các nút tham gia vào mạng sẽ lựa chọn vị trí theo tiêu chí mà tại đó, nút được chọn có thời gian trễ tới các nút liền trước và liền sau là nhỏ nhất; thứ hai, bảng định tuyến của nút sẽ được thay đổi bằng cách lựa chọn lại các nút đích của các liên kết từ một tập nút nào đó cũng theo tiêu chí thời gian trễ nhỏ nhất, nhằm tiết kiệm chi phí đường đi của các thông báo Hai đề xuất sẽ giải quyết lần lượt vấn đề khác biệt về topo
và xây dựng liên kết trong bảng định tuyến dựa vào thời gian trễ
Để đánh giá hiệu quả của giải pháp đề xuất, khóa luận xây dựng một chương trình
mô phỏng giả lập mạng Internet và đo thời gian trễ truyền thông báo giữa các nút trong mạng Chord Các kết quả thử nghiệm chứng minh cho khả năng của giải pháp đề xuất trong việc giảm thời gian truyển thông báo trên mạng, kéo theo giảm chi phí truyền thông
Khóa luận được chia thành năm chương:
Chương 1: Giới thiệu tổng quan về ngạng ngang hàng, ưu nhược điểm và sự phân loại mạng ngang hàng; những kiến thức cơ bản về DHT và đặc biệt là cấu trúc Chord.Chương 2: Đề cập đến sự tối ưu hóa trong mạng Chord, các vấn đề và các nghiên cứu cho những vấn đề đó
Chương 3: Đề xuất giải pháp tối ưu cấu trúc Chord dựa trên độ trễ, những ưu nhược điểm của giải pháp đó
Chương 4: Xây dựng chương trình mô phỏng, các bước thực thi chương trình và những đánh giá từ kết quả đạt được
Chương 5: Kết luận, những vấn đề nảy sinh và hướng đi tiếp theo
Trang 11Chương 1 Tổng quan
Mạng ngang hàng (mạng đồng đẳng, peer-to-peer, P2P) hay công nghệ ngang hàng
đã trở thành thuật ngữ phổ biến trong công nghệ thông tin nói chung và trong lĩnh vực Internet nói riêng Các ứng dụng trên mạng ngang hàng xuất hiện ngày càng nhiều, thu hút đông đảo người dùng máy tính Rất nhiều công ty, ứng dụng với công nghệ ngang hàng đã trở lên nổi tiếng, được đông đảo cư dân mạng sử dụng như: Usenet, Freenet, Napster, Gnutella, BitTorrent… Trong điều kiện Internet ngày càng phát triển, lượng thông tin truyền tải và chia sẻ ngàng càng lớn, mô hình client server bộc lộ nhiều hạn chế về băng thông và sức mạnh, mạng ngang hàng với nhiều ưu điểm nổi bật có thêm nhiều cơ hội mới để phát triển
Chương này, khóa luận sẽ giới thiệu về mạng ngang hàng, những ưu nhược điểm của mạng ngang hàng để biết tại sao chúng lại được sử dụng rộng rãi như vậy Phân biệt được các loại mạng ngang hàng, đặc điểm, cách hoạt động của từng loại Và hơn hết, chúng ta sẽ làm quen với cấu trúc Chord, một trong những giao thức phổ biến nhất trong mạng ngang hàng có cấu trúc
1.1 Mạng ngang hàng
Định nghĩa
Mạng ngang hàng, là một mạng máy tính trong đó hoạt động của mạng chủ yếu dựa vào khả năng tính toán và băng thông của các máy tham gia chứ không tập trung vào một số nhỏ các máy chủ trung tâm như các mạng thông thường Mạng ngang hàng thường được sử dụng để kết nối các máy thông qua một lượng kết nối dạng ad hoc Mạng ngang hàng có nhiều ứng dụng Ứng dụng
thường xuyên gặp nhất là chia sẻ tệp tin, tất cả
các dạng như âm thanh, hình ảnh, dữ liệu, hoặc
để truyền dữ liệu thời gian thực như điện thoại
VoIP
Một mạng ngang hàng đúng nghĩa không có
khái niệm máy chủ và máy khách, nói cách khác,
tất cả các máy tham gia đều bình đẳng và được
gọi là peer, là một nút mạng đóng vai trò đồng
thời là máy khách và máy chủ đối với các máy
khác trong mạng Một ví dụ điển hình là dịch vụ
Hình 1 Mô hình mạng ngang hàng
Trang 12truyền dữ liệu Các nút trong mạng ngang hàng sẽ
liên lạc với nhau, lấy dữ liệu từ nút khác về, đồng
thời chia sẻ dữ liệu đó cho những nút có nhu cầu
Với mô hình khách chủ, máy khách gửi yêu cầu,
thực hiện việc nhận dữ liệu một chiều từ phía
máy chủ Đây chính là điểm khác biệt cơ bản nhất
của mô hình ngang hàng so với các mô hình
truyền thống
Một số mạng hay kênh như Napster, IRC
(thuộc thế hệ thứ nhất) sử dụng mô hình máy
chủ-máy khách cho một số tác vụ và mô hình ngang
hàng cho những tác vụ khác Ngược lại, các mạng
như Gnutella hay Freenet (thế hệ thứ 2) sử dụng mô hình ngang hàng cho tất cả các tác
vụ, nên các mạng này thường được xem như là mạng ngang hàng đúng nghĩa (thực ra Gnutella vẫn sử dụng một số máy chủ để giúp các máy trong mạng tìm kiếm địa chỉ IP của nhau)
Cấu trúc mạng ngang hàng là biểu hiện của một trong những khái niệm quan trọng nhất của Internet, mô tả trong "RFC 1, Host Software" xuất bản ngày 7 tháng 4 năm
1969 Gần hơn, khái niệm này đã được sự công nhận rộng rãi trong các cấu trúc chia sẻ nội dung mà không có máy chủ trung tâm
Khái niệm ngang hàng ngày nay được tiến hóa vào nhiều mục đích sử dụng khác nhau, không chỉ để trao đổi tệp mà còn khái quát hóa thành trao đổi thông tin giữa người với người, đặc biệt trong những tình huống hợp tác giữa một nhóm người trong cộng đồng
Ưu điểm
Ưu điểm của mạng ngang hàng thể hiện ở việc áp dụng vào từng ứng dụng cụ thể
mà cấu trúc mạng khách chủ không có được Nói cách khác, ưu điểm của mạng ngang hàng chính là khắc phục những nhược điểm của mô hình mạng cũ
Mục đích quan trọng của mạng đồng đằng là trong mạng tất cả các máy tham gia đều đóng góp tài nguyên, bao gồm băng thông, lưu trữ, và khả năng tính toán Do đó khi càng có nhiều máy tham gia mạng thì khả năng tổng thể của hệ thống mạng càng lớn Ngược lại, trong cấu trúc máy chủ-máy khách, nếu số lượng máy chủ là cố định, thì khi
số lượng máy khách tăng lên khả năng chuyển dữ liệu cho mỗi máy khách sẽ giảm xuống
Hình 2 Mô hình mạng khách chủ
Trang 13Tính chất phân tán của mạng ngang hàng cũng giúp cho mạng hoạt động tốt khi một số máy gặp sự cố Đối với cấu trúc tập trung, chỉ cần máy chủ gặp sự cố thì cả hệ thống sẽ ngưng trệ.
Ngoài ra, do mô hình mạng ngang hàng đơn giản nên dễ cài đặt, tổ chức và quản trị, chi phí thiết bị thấp Mô hình khách chủ đòi hỏi một server đủ mạnh với giá thành cao, thường thì server này ít sự cố, nhưng nếu có sẽ gây thiệt hại lớn về thông tin và cả chi phí để tái thiết lập lại hệ thống Hiện nay, máy tính cá nhân đủ mạnh để có thể làm nhiều hơn công việc của một client, vì thế tham gia vào mạng ngang hàng với nhiều tiềm năng là khả thi
Đối với mạng Napster, thuật ngữ ngang hàng nói lên tính chất quan trọng của giao thức giao tiếp ngang hàng, còn thực ra thành công của Napster phải nhờ vào sự liên kết chặt chẽ giữa các máy tham gia với máy chủ trung tâm lưu trữ danh sách nội dung tệp trên các máy tham gia Nhờ vậy việc tìm kiếm trở nên nhanh và hiệu quả hơn, tuy nhiên, đây cũng chính là điểm yếu dẫn đến các rắc rối pháp lý mà kết cục là sự sụp đổ của Napster
Nhược điểm
Mặc dù có rất nhiều ưu điểm, nhưng mạng ngang hàng cũng bộc lộ khá nhiều nhược điểm Các nút tham gia với tính phân tán, trách nhiệm và vai trò là như nhau trong mạng, ít tuân theo quy luật hay giàng buộc nào Đáng kể như:
− Kết quả truy vấn trả về có thể là rất nhiều do kết nối đến nhiều nút khác nhau,
sự đồng bộ giữa các nút là khá khó khăn Hoặc có thể chẳng nhận được trả lời nào hay dữ liệu cần tìm không tồn tại, do không biết trước nút đích có còn nằm trong mạng hay không
− Các nút đột ngột rời khỏi mạng sẽ làm sai bảng định tuyến trong một thời gian nhất định, làm cho việc truy vấn thiếu chính xác Dữ liệu mà nút đó phụ trách cũng có thể bị mất theo
− Sự bảo mật dữ liệu là kém do dữ liệu phân tán
Các nhược điểm trên đang dần được san lấp bằng nhiều phương pháp Đáng chú ý
là đặt ra các luật lệ, nội quy ràng buộc các bên tham gia với quyền lợi và trách nhiệm nhất định sẽ giúp cho mạng ổn định và an toàn hơn Số lượng thành viên tham gia mạng ngang hàng ngày càng nhiều giúp cho tài nguyên mạng trở lên phong phú, hiệu suất mạng cũng tăng tỉ lệ với số lượng nút tham gia Ngoài ra, các cơ chế nhân bản giúp cho xác suất mất dữ liệu khi các nút rời đi trở lên vô cùng nhỏ
Trang 141.2 Phân loại mạng ngang hàng
Hai tiêu chí cơ bản để phân loại mạng ngang hàng:
− Theo mục đích sử dụng
Chia sẻ file (file sharing)
Điện thoại VoIP (telephony)
Đa phương tiện media streaming (audio, video)
Diễn đàn thảo luận (Discussion forums)
Tiêu chí này thường được các nhà phát triển ứng dụng quan tâm Theo đó các ứng dụng với đặc điểm riêng sẽ được phân loại và áp dụng theo những mô hình sẵn có, chuyên biệt
− Theo topo của mạng ở tầng vật lý và mạng phủ
Đây là tiêu chí được phát triển qua từng thời kỳ và được xem xét nghiên cứu
để tìm ra những giải pháp tốt nhất, xây dựng nền tảng vững chắc cho các ứng dụng sau này
1.2.1 Hệ thống ngang hàng lai (Hybrid Peer-to-peer System)
Đây là mạng ngang hàng thế hệ thứ nhất, đặc điểm là vẫn còn dựa trên một máy chủ tìm kiếm trung tâm - đặc điểm của mô hình khách chủ, chính vì vậy nó còn được gọi là mạng ngang hàng lai hay mạng tập trung (centralized Peer-to-Peer networks) Cấu trúc Overlay của mạng ngang hàng lai có thể được mô tả như một mạng hình sao
Nguyên tắc hoạt động:
Mỗi client lưu trữ files định chia sẻ với các nút khác trong mạng
Một bảng lưu trữ thông tin kết nối của người dùng đăng kí (IP address, connection bandwidth…)
Một bảng liệt kê danh sách các files mà mỗi người dùng định chia
sẻ (tên file, dung lượng, thời gian tạo file…)
Mọi máy tính tham gia mạng được kết nối với máy chủ tìm kiếm trung tâm, các yêu cầu tìm kiếm được gửi tới máy chủ trung tâm phân tích, nếu yêu cầu được giải quyết máy chủ sẽ gửi trả lại địa chỉ IP của máy chứa tài nguyên trong mạng và quá trình truyền file được thực hiện theo đúng cơ chế của mạng ngang hàng, giữa các host với nhau mà không cần quan máy chủ trung tâm
Trang 15Hình 3 Mạng ngang hàng lai thế hệ thứ nhất (Napster)
Cần quản trị (central server)
Napster là mạng ngang hàng đặc trưng cho hệ thống mạng ngang hàng của thế hệ thứ nhất, chúng được dùng cho việc chia sẻ các file giữa các người dùng Internet, được sử dụng rộng rãi, tuy nhiên nhanh chóng bị mất thị trường bởi yếu
tố về luật pháp Khái niệm và kiến trúc của Napster vẫn còn được sử dụng trong các ứng dụng khác như: Audiogalaxy, WinMX
Với Napster, việc tìm kiếm file bị thất bại khi bảng tìm kiếm trên máy chủ vì
lý do nào đó không thực hiện được Chỉ có các file truy vấn và việc lưu trữ được phân tán, vì vậy máy chủ đóng vai trò là một nút cổ chai Khả năng tính toán và lưu trữ của máy chủ tìm kiếm phải tương xứng với số nút mạng trong hệ thống, do
đó khả năng mở rộng mạng bị hạn chế rất nhiều
1.2.2 Mạng ngang hàng thuần túy (Pure Peer-to-peer System)
Mạng ngang hàng thuần túy là một dạng khác của thế hệ thứ nhất trong hệ thống các mạng ngang hàng Không còn máy chủ tìm kiếm tập trung như trong
Trang 16mạng Napster, nó khắc phục được vấn đề nút cổ chai trong mô hình tập trung Tuy nhiên vấn đề tìm kiếm trong mạng ngang hàng thuần túy lại sử dụng cơ chế Flooding, yêu cầu tìm kiếm được gửi cho tất cả các nút mạng là láng giềng với nó, điều này làm tăng đáng kể lưu lượng trong mạng Đây là một yếu điểm của các mạng ngang hàng thuần túy Các phần mềm tiêu biểu cho mạng ngang hàng dạng này là Gnutella 0.4, FreeNet.
Hình 4 Mạng ngang hàng thuần túy (Gnutella 0.4, FreeNet)
Ưu điểm:
Dễ xây dựng
Đảm bảo tính phân tán hoàn toàn cho các nút tham gia mạng, các nút tham gia và rời khỏi mạng một cách tùy ý mà không ảnh hưởng đến cấu trúc của mạng
1.2.3 Kiến trúc siêu ngang hàng (Super-peer Architecture)
Để khắc phục nhược điểm của mạng ngang hàng thuần túy, một mô hình mang ngang hàng mới được phát triển với tên gọi là mạng siêu ngang hàng Đây được gọi là mạng ngang hàng thế hệ 2 Phần mềm tiêu biểu cho mạng ngang hàng
Trang 17kiểu này là Gnutella 0.6 và JXTA (Juxtapose) JXTA được bắt đầu phát triển bởi SUN từ 2001 (Đây là giao thức P2P mã nguồn mở) JXTA được sử dụng cho PCs, mainframes, cell phones, PDAs - để giao tiếp theo cách không tập trung Skype cũng được xây dựng dựa trên cấu trúc này.
Hình 5 Kiến trúc siêu ngang hàng(Gnutella 0.6, JXTA)
Mỗi Supper-peer chứa một danh sách các file được cung cấp bởi các Client-peer và địa chỉ IP của chúng vì vậy nó có thể trả lời ngay lập tức các yêu cầu truy vấn từ các Client-peer gửi tới
Trang 18Nhược điểm:
Mỗi điểm Super-peer trở thành điểm gây lỗi cho nhóm siêu ngang hàng tương ứng trong trường hợp số lượng Client trong nhóm là rất lớn (tuy nhiên, nhược điểm này đã được giải quyết bằng việc cải tiến mạng siêu ngang hàng thông thường, đưa ra khái niệm siêu ngang hàng dư cấp k)
1.2.4 Mạng ngang hàng có cấu trúc (Structured)
Hệ thống mạng ngang hàng không cấu trúc thể hiện nhược điểm: không có gì đảm bảo tìm kiếm sẽ thành công Đối với tìm kiếm các dữ liệu phổ biến được chia
sẻ trên nhiề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ột và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ạng ngang 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 thô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ó định hướ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 trong mạ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ếm chung của mạng thấp
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úc bằng cách sử dụng hệ thống DHT (Distributed Hash Table - Bảng Băm Phân Tán) 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ột phầ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ệm cho dữ liệu đó và sau đó liên lạc trực tiếp đến nút mạng đó
để lấy kết quả
Nguyên tắc hoạt động:
Topo mạng được kiểm soát chặt chẽ
Files (hoặc con trỏ trỏ tới files) được đặt ở một vị trí xác định
Điều quan trọng đối với những hệ thống có cấu trúc là cung cấp sự liên kết (mapping) giữa nội dung (ví dụ: id của file) và vị trí nút (ví dụ: địa chỉ nút) Việc này thường dựa trên một cấu trúc dữ liệu bảng băm phân tán (Distributed Hash Table)
Trang 19Hình 6 Cơ chế của bảng băm
Dựa trên cấu trúc bảng băm
phân tán đã có nhiều nghiên cứu và
đề xuất ra các mô hình mạng ngang
hàng có cấu trúc, điển hình là cấu
Vấn đề cân bằng tải trong mạng
Sự khác biệt về topology trên mạng overlay và mạng liên kết vật lý dẫn đến thời gian trễ truy vấn trung bình cao
1.3 Cấu trúc Chord
Chord là một trong những mạng DHT phổ biến nhất, với những đặc điểm riêng mang tính ưu thế của mình Hai trong số những đặc điểm của Chord không thể không kể tới đó là khả năng tìm kiếm dữ liệu nhanh và cân bằng tải giữa các nút
Một đặc điểm của mạng DHT dễ nhận thấy ở Chord là sự phân phát khóa tương đối đồng đều vào các nút trong mạng Đây chính là hệ quả của việc sử dụng kỹ thuật
consistent hashing để cấp khóa cho các nút Phương thức hình thành khóa phổ biến nhất
thường được dùng là băm giá trị của dữ liệu để tạo thành khóa Giá trị của dữ liệu ở đây
Hình 7 Mạng ngang hàng có cấu trúc
Chord dạng vòng tròn.
Trang 20có thể là địa chỉ, tên tài liệu, những từ xuất hiện nhiều trong một văn bản, nội dung văn bản đó,… Mỗi loại giá trị dữ liệu có những đặc điểm khác nhau, tùy từng trường hợp
mà giá trị nào được sử dụng sao cho phù hợp với ứng dụng nhất Sự phân bổ khóa trong giao thức Chord thường đi kèm với dữ liệu, thường là một cặp (khóa, dữ liệu) Khóa được coi như phương thức chỉ đường để có thể tìm thấy dữ liệu mong muốn một cách nhanh nhất
Có thể nói Chord là đại diện tiêu biểu nhất của hệ thống mạng ngang hàng có cấu trúc DHT, không những vậy Chord còn là nền tảng cho những nghiên cứu phát triển ứng dụng sau này Một số nghiên cứu đã chỉ ra rằng: Chord không chỉ là một mạng DHT đơn thuần mà còn mang nhiều ưu điểm khác mà một số mạng DHT không có Nói tới Chord ta có thể nhắc tới những đặc điểm sau đây:
- Cân bằng tải (Load Balance): Quá trình hình thành và phân bổ khóa của Chord dựa trên thuật toán Consistent Hashing Chính những đặc điểm của thuật toán này đã tạo cho Chord một khả năng cân bằng tải một cách tự nhiên ngay khi mạng được khởi tạo
- Sự phân quyền: Trong giao thức Chord, không nút nào quan trọng hơn nút nào, quyền hạn này được thực hiện rất hiệu quả trong giao thức Chord Một số mạng P2P ban đầu cũng có những đặc điểm tương tự nhưng vẫn tồn tại những yếu điểm mà Chord đã khắc phục được
- Khả năng mở rộng: Quá trình hình thành mạng, tìm kiếm dữ liệu trong Chord phụ thuộc nhiều vào sự biến thiên của hàm số logarit Chính điều này tạo cho Chord khả năng mở rộng với số lượng rất lớn các nút, cải thiện hiệu suất tìm kiếm một các tối đa
- Tính sẵn sàng: Mỗi nút trong Chord tự động điều chỉnh bảng thông tin định tuyến ( Finger Table) của chính nó khi có một nút tham gia hoặc dời mạng Nói cách khác trong mạng Chord quá trình duy trì sự tồn tại của mạng diễn ra hoàn toàn tự động, chính điều này đã giảm thiểu khả năng đổ vỡ xuống mức tối thiểu khi quá trình tham gia và dời bỏ mạng của các nút diễn ra
1.3.1 Mô hình mạng Chord
Chord được mô tả dưới dạng một vòng tròn và có không gian định danh cỡ
N, với N là số bit định danh của không gian Mạng Chord sẽ có thế chứa tối đa 2
mũ N Chord nút Một Chord nút (hay một nút - một máy tính trong mạng Chord)
có một định danh id, và các id trong mạng Chord sắp xếp thành vòng tròn và tăng theo chiều kim đồng hồ Chord sử dụng một hàm băm để sinh định danh cho nút
Trang 21và tài liệu, đầu ra của hàm băm là một giá trị N bit Để đảm bảo xác suất định danh trùng nhau là thấp, N phải đủ lớn Với Chord, N thường là 160 bit Một nút trỏ tới nút tiếp theo là nút có id lớn hơn, được gọi là Successor(id), và một nút nữa có id nhỏ hơn, được gọi là Predecessor(id) Các nút liên kết với nhau dựa vào Succcessor và Predecessor của nó
Hình 8 Một mạng Chord với 3 nút
Mỗi nút sẽ lưu một bảng định tuyến gọi là Finger Table Thay vì phải tìm kiếm tuyến tính, bảng định tuyến cho phép một nút định tuyến tới các nút ở xa Mỗi dòng trong bảng Finger Table sẽ lưu thông tin về 1 nút ở xa, gọi là 1 entry Entry thứ i sẽ lưu nút là successor của khóa có định danh cách định danh nút đang xét 2i theo chiều tiến của vòng Chord Vì vậy, không gian định danh có bao nhiêu bit thì Finger Table có bấy nhiêu entry
1.3.2 Ánh xạ khóa vào một nút trong Chord
Chord ánh xạ các khóa vào các nút, thường sẽ là một cặp key và value Một value có thể là 1 address, 1 văn bản, hoặc 1 mục dữ liệu Chord có thể thực hiện chức năng này bằng cách lưu các cặp key/value ở các nút mà key được ánh xạ Một nút sẽ chịu trách nhiệm lưu giữ một khóa k nếu nút đó là nút có định danh id nhỏ nhất và lớn hơn k Một nút khi lưu giữ khóa k cũng sẽ được gọi là Successor(k)
Trang 22Hình 9 Lưu giữ key trong mạng Chord
1.3.3 Tìm kiếm trong mạng Chord
Khi một nút cần tìm kiếm một khóa có định danh id, nút đó sẽ tìm nút chịu trách nhiệm lưu giữ id đó Nếu nút ở xa so với vị trí của nút lưu giữ id, nút có thể nhờ vào thông tin trong bảng Finger Table để định tuyến đến các nút xa hơn, từ đó dần dần biết được nút chịu trách lưu giữ id
Một ví dụ được chỉ trong hình 6, giả sử nút 3 muốn tìm successor của ID (hoặc còn có thể coi là khóa) 1 ID 1 thuộc khoảng [7, 3), tức là 3.finger[3].interval nút 3 kiểm tra entry thứ 3 trong bảng định tuyến của nó, là 0 Bởi vì 0 trước 1, nút 3 sẽ hỏi nút 0 để tìm successor của 1 Quay trờ lại, nút 0 sẽ suy ra từ bảng định tuyển rằng successor của 1 chính là nút 1, và trả về nút 1 cho nút 3
1.3.4 Tham gia và ổn định mạng
Trong 1 mạng động , thường xuyên có sự thay đổi với các nút tham gia và rời khỏi bất kì lúc nào Để có thể xác định được vị trí của các khóa ở trong mạng, Chord cần thỏa mãn 2 điểm sau :
• Mỗi successor của 1 nút phải đc duy trì đúng
• Với mỗi khóa k, nút successor(k) có trách nhiệm quản lý k
Khi tham gia vào một mạng Chord, một nút n cần chọn cho nó một định danh id và báo cho các nút bên cạnh biết sự tham gia của nó Các nút Successor và Predecessor sẽ cần phải cập nhật thông tin về nút mới tham gia vào mạng Nút n cũng cần khởi tạo bảng định tuyến Finger Table bằng cách tìm các nút mà Successor các id trong từng entry của Finger Table Để mạng vẫn định tuyến đúng
Trang 23sau khi có sự tham gia của nút n, các nút cần thường xuyên chạy thuật toán ổn định mạng để cập nhật thông tin về nút bên cạnh ( hay nút hàng xóm) Một số nút
sẽ có n trong bảng Finger Table, nên cần cập nhật một số entry của Finger Table Cuối cùng là nút Successor của n sẽ chuyển một phần khóa mà bây giờ n là Successor(khóa), cho n lưu giữ Việc chuyển khóa sẽ do tầng trên của ứng dụng thực hiện
Khi một nút chuẩn bị rời khỏi mạng, nó cần thông báo cho các nút bên cạnh biết để ổn định lại mạng Nút đó cũng sẽ chuyển các khóa nó lưu giữ cho nút Successor của nó
Trang 24Chương 2 Các nghiên cứu về tối ưu Chord
Trong chương một, chúng ta đã được làm quen với Chord, cách xây dựng, cơ chế vận hành của Chord nói riêng và mạng ngang hàng có cấu trúc DHT nói chung Đồng thời cũng thấy được tính ưu việt của Chord so với các cấu trúc khác Tuy nhiên, vẫn tồn tại rất nhiều vấn đề của Chord và cả DHT – những vấn đề trở thành nhược điểm làm cho chi phí truyền thông cao, hiệu suất mạng giảm
Tiếp theo, khóa luận sẽ nói kỹ hơn về một số vấn đề mà mạng Chord gặp phải, phương hướng giải quyết cũng như tối ưu những vấn đề trên Sau đó là một số nghiên cứu tiêu biểu cho vấn đề này
2.1 Tối ưu hóa trên Chord
Cấu trúc Chord ngày càng được áp dụng cho nhiều ứng dụng ngang hàng Vì vậy, việc tối ưu, khắc phục những nhược điểm của cấu trúc này là cần thiết Có nhiều vấn đề
đã được đề cập đến trong rất nhiều các bài nghiên cứu, báo cáo Nhưng tập trung vào hai vấn đề chính: sự khác biệt về topo và tối ưu bảng định tuyến
Sự khác biệt về topo (Topology mismatch)
Vấn đề khác biệt về topo nảy sinh ngày từ khi mạng ngang hàng có cấu trúc với bẳng băm phân tán được đưa ra DHT xây dựng một mạng phủ bên trên mạng kết nối vật lý giữa các nút và sử dụng topo này trong việc xác định quan hệ, liên lạc, truyền dữ liệu Mạng phủ định vị lại các nút trong một topology mới với địa chỉ là các giá trị băm
Sự phân tán của giá trị băm giúp cho mạng phủ được cân bằng ngẫu nhiên về không gian địa chỉ - tránh sự tập trung của nút và tài liệu trên toàn dải địa chỉ, đồng thời hỗ trợ việc bảo mật thông tin địa chỉ giữa các tầng cũng như các nút tham gia mạng, nhưng lại gây ra sự không đồng bộ về topo như trên Theo đó, hai nút ở rất gần nhau về đường truyền vật lý có thể sẽ trở lên xa nhau trên dải địa chỉ của Chord và ngược lại Trong các ứng dụng ngang hàng Chord, các truy vấn ngắn thường có tần suất lớn hơn các truy vấn dài do quá trình tìm kiếm ưu tiên các nút hàng xóm trước Như vậy, hậu quả rõ rệt là với một truy vấn bất kỳ, thời gian đáp ứng cho truy vấn đó có thể rất lớn, hiệu suất của ứng dụng giảm
Một cách tiếp cận để giải quyết vấn đề Topology mismatch là dựa vào các đặc điểm vật lý Đặc điểm vật lý chúng ta nói ở đây là vị trí của nút, địa chỉ của nút Với các thông tin này, chúng ta có thể làm mới cấu trúc của mạng phủ sao cho phù hợp với mạng vật lý nhất Nhưng giá phải trả cho phương pháp này là không nhỏ Trước hết, cấu
Trang 25trúc gần với mạng vật lý trong nhiều trường hợp lại tỏ ra kém hiệu quả, đặc biệt là sự khó kiểm soát giao thông trên mạng tại từng vùng, từng điều kiện và thời điểm Thứ hai, rất quan trọng, là làm mất đi tính trong suốt giữa các tầng Tầng ứng dụng phải nắm được rất nhiều thông tin về tầng dưới không chỉ của máy local, các máy khác cũng phải cung cấp thông tin Điều này ảnh hưởng đến an toàn giao thông mạng, các hình thức tấn công và hơn hết là sự riêng tư của những người tham gia mạng ngang hàng.
Tối ưu bảng định tuyến (Finger Table)
Một điểm cải tiến rất lớn lớn trong cấu trúc Chord (DHT nói chung) so với các thế
hệ mạng ngang hàng trước chính là việc bổ xung thêm bảng định tuyến Thay vì phát tràn các truy vấn hay thực hiện phát truy vấn theo một thuật toán ưu tiên nào đó như trong mạng ngang hàng không có cấu trúc, hoặc truy vấn tuyến tính trên dải địa chỉ băm của mạng có cấu trúc, bảng định tuyến giúp cho việc gửi các yêu cầu truy vấn diễn ra nhanh chóng, hiệu quả Số lượng truy vấn phát ra từ nút tìm kiếm là duy nhất, và sau tối
đa log2n bước chuyển tiếp, truy vấn sẽ tới đích Cơ chế này dựa trên thuật toán tìm kiếm nhị phân, điều này lý giải tại sao entry thứ i trong bảng định tuyến sẽ lưu nút là successor của khóa có định danh cách định danh nút đang xét 2i định danh
Nhận thấy rằng, nút được chọn khi xây dựng từng entry của một bảng định tuyến
là cố định, chỉ phụ thuộc vào topo hiện tại của mạng Chord Sự thiếu mềm dẻo khi xây dựng bảng định tuyến cũng sẽ làm gia tăng thời trễ truy vấn, giảm chất lượng ứng dụng
Từ những nhận xét trên, đã có nhiều nghiên cứu nhằm cải tiến và tối ưu hiệu năng của Chord Sau đây là một số nghiên cứu tiêu biểu – những nghiên cứu cũng được áp dụng trên nền Chord
Nghiên cứu này tập trung cải thiện thuộc tính gần gũi trong mạng ngang hàng có cấu trúc nói chung Căn cứ vào mạng liên kết tọa độ hai chiều ảo, những nút được xem
là gần nhau được tập hợp lại vào một miền, các miền này kề sát nhau và phủ kín mặt phẳng tọa độ Sau đó là quá trình ánh xạ (mapping) từ không gian mạng quan hệ sang không gian địa chỉ của DHT Thông qua quá trình tìm kiếm các định danh miền tương ứng sử dụng thủ tục RPC trong Chord, các nút có thể nhận được danh sách hàng xóm của chúng một cách nhanh chóng theo cách thức phân tán hoàn toàn Kết quả thu được thông qua chương trình mô phỏng mô hình với topo mở rộng đủ lớn chỉ ra rằng, cải tiến
có một độ trễ lân cận trung bình thấp hơn phương pháp lấy ngẫu nhiên rất nhiều
Trang 26Phương pháp này có hai điểm chính tập trung vào việc tối ưu hóa mạng Chord Đầu tiên là sự chọn lọc láng giềng gần (Proximity Neighbor Selection - PNS), ở đó những láng giềng trong bảng định tuyến được lựa chọn dựa vào mức độ gần gũi của chúng với nút đang xét Thứ hai là lựa chon tuyến đường gần, diễn ra khi lựa chọn điểm đích tiếp theo trong quá trình định tuyến tới một điểm đích riêng biệt, và cũng dựa trên mức độ gần gũi đã nêu Phương pháp này giải quyết cả hai nhược điểm được nêu ở phần trước của Chord.
Phân chia không gian liên kết hai chiều
Trước tiên chúng ta sẽ xem xét cách xây dựng không gian liên kết hai chiều của các nút Từ đó có thể đánh giá được mức độ gần gũi của các nút Vì vậy, đây là một phần trọng trong khâu chuẩn bị, quyết định khá nhiều đến sự thành công của thuật toán
Hình 10 Bản đồ miền trong không gian hai chiều
Thông qua thuật toán Vivaldi, mỗi nút sẽ lấy được tập các quan hệ trong mạng ảo
hai chiều Thuật toán Vivaldi sẽ ánh xạ một nút vào một tọa độ hai chiều (x, y) dựa vào
công thức với nhiều tham số, trong đó có thời gian quay vòng (round-trip delay time - RTT) là thời gian đo đc tương tự như quá trình ping hay DNS và tọa độ của các nút trước đó Kết quả của thuật toán là một mặt phằng tọa độ với các nút được ánh xạ vào một điểm trên đó
Tiếp theo là ánh xạ chia miền để xét quan hệ gần gũi Với mỗi nút s được chọn là
nút trung tâm, xét r cố định, các đường tròn có bán kính r, 2r, 3r… được định nghĩa như
hình vẽ Miền được định nghĩa như sau: hình vành khăn tạo bới phần cắt giữa đường
tròn bán kính ir với đường tròn có bán kính (i-1)r chia thành 2i-1 miền diện tích bằng nhau và bằng PI*r 2 Điều này chứng minh khá đơn giản Các miền được đặt định danh
bằng một cặp (i, j), trong đó i là số hiệu đường tròn nhỏ nhất chứa miền đó, j là thứ tự
Trang 27miền trong hình vành khăn đang xét Thứ tự miền được đánh số theo chiều dương và từ
góc 0 o Như vậy, mỗi nút sẽ có một bản đồ miền như mô tả Từ vị trí của bản thân nút và
vị trí tương đối của các nút xung quanh, thực hiện ánh xạ các nút hàng xóm vào các miền, các nút trong cùng một miền được xem là có quan hệ như nhau với nút trung tâm
Độ ưu tiên miền dựa vào tên định danh của miền, theo đó, giá trị i càng nhỏ, miền càng gần nút trung tâm Việc chia miền giúp những cụm nút có khoảng cách và thuộc tính gần như nhau hợp lại, trợ giúp cho quá trình tìm kiếm và định tuyến phía sau
Tối ưu quá trình định tuyến
Việc tìm kiếm các láng giềng gần diễn ra khá đơn giản Mỗi nút đều lưu định danh miền mà nó thuộc về Khi có yêu cầu tìm kiếm những nút láng giềng, nút được yêu cầu
sẽ dựa vào định danh miền, xác định các nút nằm trong cùng miền đó Như vậy dễ dàng tìm ra các nút láng giềng gần Nếu nút đó 1 mình 1 miền, quá trình tìm kiếm bắt đầu với
6 miền lân cận Quá trình tìm kiếm diễn ra cho đến khi tìm được ít nhất một nút Những nút tìm được sẽ được add vào tập láng giềng gần
Thay đổi các đường dẫn trong bảng định tuyến là mục đích chính của nghiên cứu này Trong Chord truyền thống, entry thứ i của là định danh của nút là successor của
khóa k+2 i với k là định danh nút hiện tại Để có thể tận dụng được thời gian trễ và topo xây dựng bên trên, đồng thời tạo tính mềm dẻo cho việc lựa chọn, cải tiến đã chọn lại
nút này bằng nút hàng xóm có định dạnh nằm trong khoảng [k+2 i-1 , k+2 i ) và gần nút
đang xét nhất Quá trình tìm kiếm nút hàng xóm gần đã được mô tả ở trên
Ưu điểm
- Cải thiện hiệu năng mạng, giảm độ trễ
- Giữ nguyên cơ chế chạy của Chord truyền thống, đặc biệt là phần truy vấn