Trong bảng băm phân tán này, các định nghĩa liên kết giữa các nút mạng sẽ được xây dựng theo một cấu trúc cụ thể.. Chord là một giao thức của mạng ngang hàng có cấu trúc sử dụng không gi
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS HỒ SĨ ĐÀM
Hà Nội – 2012
Trang 3MỤC LỤC
LỜI CAM ĐOAN 4
CÁC THUẬT NGỮ VIẾT TẮT 7
DANH MỤC HÌNH VẼ 8
MỞ ĐẦU 9
CHƯƠNG 1 - MẠNG NGANG HÀNG 11
1.1 Giới thiệu chung mạng ngang hàng 11
1.1.1 Khái niệm 11
1.1.2 Ưu điểm và nhược điểm của mạng ngang hàng 12
1.1.3 Phân loại mạng ngang hàng 13
1.2 Mạng ngang hàng có cấu trúc Chord 15
1.2.1 Mô hình hệ thống mạng Chord 16
1.2.2 Ánh xạ khóa vào một nút trong Chord 18
1.2.3 Tìm kiếm trong mạng Chord 19
1.2.4 Tham gia và ổn định mạng 20
CHƯƠNG 2- MỘT SỐ PHƯƠNG PHÁP TỐI ƯU HÓA TOPOLOGY TRÊN MẠNG NGANG HÀNG CÓ CẤU TRÚC CHORD 21
2.1 Vấn đề sai khác topology 21
2.2 Lựa chọn láng giềng gần trong mạng ngang hàng có cấu trúc Chord 22
2.2.1 Giới thiệu 22
2.2.2 Xây dựng không gian tọa độ 2 chiều 23
2.2.3 Không gian định danh nút đa lớp 24
2.2.4 Tối ưu bảng định tuyến dựa vào lựa chọn láng giềng gần 24
2.2.5 Nhận xét 25
2.3 Tối ưu hóa topology mạng ngang hàng có cấu trúc Chord dựa trên giải thuật Vivaldi 26
2.3.1 Giới thiệu 26
2.3.2 Một số khái niệm 27
2.3.3 Thuật toán Vivaldi 28
2.3.4 Tối ưu Chord dựa trên giải thuật Vivaldi 32
2.3.5 Nhận xét 33
Trang 4CHƯƠNG 3- MÔ PHỎNG VÀ ĐÁNH GIÁ CÁC GIẢI PHÁP 34
3.1 Bộ mô phỏng P2Psim 34
3.1.1 Mô phỏng bằng chương trình máy tính 34
3.1.2 Giới thiệu về bộ mô phỏng P2Psim 35
3.2 Thực nghiệm mô phỏng và kết quả 36
3.2.1 Thực nghiệm 1: Mô phỏng Chord, láng giềng gần và giải thuật Vivaldi 36
3.2.2 Thực nghiệm 2: Tăng khoảng cách giữa các nút trong mạng cùng kích thước 40
3.2.3 Thực nghiệm 3: Tăng khoảng cách trong các mạng có kích thước khác nhau 41
KẾT LUẬN 43
TÀI LIỆU THAM KHẢO 44
PHỤ LỤC 45
1 Cài đặt và thực hiện P2Psim 45
2 Thông tin về tệp vết 46
Trang 5CÁC THUẬT NGỮ VIẾT TẮT
CAN Controller Area Network
DHT Distributed hash table
IP Internet Protocol
NS2 Network Simulation 2
PIS Proximity Identifier Selection
PNS Proximity Neighbor Selection
P2P Peer to Peer
RPC Remote Procedure Call
RTT Round-Trip Time
Trang 6DANH MỤC HÌNH VẼ
Hình 1.1: Mạng ngang hàng Chord 11
Hình 1.2: Mạng ngang hàng không có cấu trúc Napster 15
Hình 1.3: Mô hình hoạt động của dịch vụ chia sẻ File 16
Hình 1.4: Mạng Chord với m=3 18
Bảng 1.1: Bảng định nghĩa các trường trong Finger Table 18
Hình 1.5: Lưu giữ khóa trong mạng Chord 19
Hình 1.6: Tìm kiếm trong mạng Chord 19
Hình 2.1: Phân hoạch không gian tọa độ 2 chiều 23
Hình 2.2: Véc tơ chiều cao trong không gian tọa độ 2 chiều 28
Hình 3.1: Sơ đồ mô tả mô phỏng 37
Hình 3.2: Đồ thị về băng thông sử dụng 38
Hình 3.3: Đồ thị về độ trễ tìm kiếm trung bình 38
Hình 3.4: Đồ thị về sai số tương đối của Vivaldi 39
Hình 3.5: Đồ thị so sánh tỉ lệ tìm kiếm không thành công 40
Hình 3.6: Độ trễ tìm kiếm trung bình của mạng 1024 nút 41
Hình 3.7: Độ trễ tìm kiếm trung bình khi tăng khoảng cách theo hệ số 42
Trang 7MỞ ĐẦU
Trong nhiều năm qua, mạng ngang hàng P2P (Peer to Peer) đã nổi lên như
là một mô hình mới trong truyền thông mạng Xuất phát từ mô hình Client- Server truyền thống, P2P cho phép các nút tham gia có tính tự chủ và nâng cao vai trò của mỗi nút trong hoạt động cơ bản của mạng Công nghệ mạng ngang hàng tạo ra những ưu điểm vượt trội như khả năng mở rộng, không tồn tại điểm chết, khả năng của hệ thống tỉ lệ với số lượng máy tham gia Chính vì vậy, nhiều ứng dụng lớn đã và đang được xây dựng trên mạng ngang hàng như: FreeNet, Napster, Gnutella, BitTorrent, eMule
Mạng ngang hàng có cấu trúc sử dụng bảng băm phân tán để xây dựng một mạng phủ trên mạng vật lý Trong bảng băm phân tán này, các định nghĩa liên kết giữa các nút mạng sẽ được xây dựng theo một cấu trúc cụ thể Mỗi nút đều
có các liên kết 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 sử dụng không gian địa chỉ một chiều, các nút được sắp xếp trên một vòng định danh Mạng ngang hàng cấu trúc Chord có nhiều ưu điểm như: Khả năng mở rộng với số lượng nút lớn, cân bằng tải trong việc phân phát khóa, tối ưu định tuyến,
Trong mạng ngang hàng có cấu trúc, mỗi nút được khai báo một định danh
từ không gian định danh bằng cách băm địa chỉ IP của nút đó Các tài liệu được phân phát đến các nút tương ứng có định danh bằng hoặc gần nhất với giá trị băm của nó Các tài liệu này được phân phát đến các nút trên mạng theo cùng một cách giống nhau, nhưng giải thuật DHT có thể làm cho topology của mạng không đồng nhất giữa mạng phủ bên trên và mạng IP bên dưới Do đó các thông báo có thể bị truyền đi xa hơn trên mạng Internet tại mỗi chặng định tuyến, dẫn tới làm tăng độ trễ tìm kiếm và độ trễ xác định các tài liệu trong mạng Để khắc phục những nhược điểm trên, vấn đề quan trọng là xác định vị trí của các nút để tối ưu bảng định tuyến
Hiện tại có một số giải pháp để tối ưu hoá topology mạng ngang hàng có cấu trúc:
- Gải pháp tối ưu Chord: Tối ưu định tuyến và vị trí bản sao dựa trên các thông tin vị trí vật lý [11]
- Tối ưu hóa Chord dựa trên độ trễ: Lựa chọn láng giềng gần, Vivaldi,…
- Tối ưu hóa Chord dựa trên tối ưu bảng băm phân tán
Trang 8Trong luận văn này, chúng tôi lựa chọn các giải pháp tối ưu topology dựa vào độ trễ để nghiên cứu và đánh giá Luận văn sẽ đánh giá độ trễ tìm kiếm cũng như băng thông sử dụng của các nút trong hệ thống ứng với từng giải pháp tối
ưu hóa Từ đó thấy được tính hiệu quả của từng giải pháp cải tiến, lựa chọn các giải pháp phù hợp khi phát triển các ứng dụng trên mạng ngang hàng Chord Luận văn được chia thành 04 chương:
Chương 1: Giới thiệu tổng quan về ngạng ngang hàng
Chương 2: Các giải pháp tối ưu cấu trúc Chord dựa trên độ trễ, các nghiên cứu liên quan đến những vấn đề đó
Chương 3: Mô phỏng và đánh giá các giải pháp
Chương 4: Kết luận, những vấn đề nảy sinh và hướng nghiên cứu tiếp theo
Trang 9CHƯƠNG 1 - MẠNG NGANG HÀNG
Mạng ngang hàng đã trở nên phổ biến trong công nghệ thông tin nói chung
và trong các ứng dụng của 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 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ày càng lớn, mô hình mạng Client - Server bộc lộ nhiều hạn chế 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 Trong chương này tôi sẽ trình bày tổng quan về mạng ngang hàng và một số nghiên cứu về mạng ngang hàng có cấu trúc Chord
1.1 Giới thiệu chung mạng ngang hàng
1.1.1 Khái niệm
Mạng ngang hàng là mạng máy tính hoạt động chủ yếu dựa vào khả năng tính toán và băng thông của các nút thành viên tham gia mà không có 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 [2] Sự xuất hiện của các dịch vụ chia sẻ files như Napster, Gnutella, Bittorent, … thì P2P (Peer-to-Peer) mới được nhận ra là một công nghệ quan trọng cho Internet
Hình 1.1: Mạng ngang hàng Chord
Mô hình mạng ngang hàng đúng nghĩa không có khái niệm máy chủ và máy khách Tất cả các máy tham gia đều bình đẳng và được gọi là Peer 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 mạng ngang hàng so với các mô hình mạng truyền thống
Trang 10Với xu hướng phát triển như hiện nay, mạng ngang hàng sẽ phải đối mặt với nhiều thách thức hơn khi mà yêu cầu về khả năng mở rộng mạng lên tới hàng triệu nút tham gia và vẫn phải đảm bảo mạng hoạt động hiệu quả Đó là [4]:
Đảm bảo khả năng chịu lỗi, tính sẵn sàng sử dụng và khả năng tự ổn định
Duy trì việc phân phối dữ liệu, định tuyến, cân bằng tải trong các mạng phủ
Bảo đảm về mặt an ninh khả năng chống được các cuộc tấn công
Tính tin cậy trong việc tính toán và chia sẻ dữ liệu
Những kỹ thuật nhằm đảm bảo sự công bằng trong khi sử dụng mạng 1.1.2 Ưu điểm và nhược điểm của mạng ngang hàng
Mô hình mạng ngang hàng rất phù hợp với tính phi tập trung của Internet, bởi bản chất của tài nguyên là phân tán, các thông tin lưu trữ không chỉ trên các Server mà ở cả các máy Client Chính điều này tạo ra cho mạng ngang hàng nhiều ưu điểm
1.1.2.1 Ư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 Client- Server không có được Mạng ngang hàng có thể cải thiện đáng kể hiệu quả của các phương pháp phân tích, xử lý dữ liệu, giải các bài toán phức tạp Tất cả các máy khi tham gia mạng đều đóng góp tài nguyên như: Băng thông, lưu trữ và khả năng tính toán Có được điều đó, mạng ngang hàng tận dụng khả năng xử lý, khả năng lưu trữ còn thừa của các máy tính tham gia mạng với những thuật toán phân tán hợp lý Công nghệ này chia việc xử lý lớn 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 máy tính xử lý phần dữ liệu của mình và trả về kết quả cho máy tính trung tâm Máy tính trung tâm ghép nối các kết quả lại với nhau Bằng cách này,
ta có thể giải quyết những bài toán phức tạp mà không cần phải nâng cấp khả năng xử lý cũng như trang bị thêm máy móc cho hệ thống mạng hiện tại
Tí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ệ
Trang 11Mạng ngang hàng dễ cài đặt, dễ tổ chức và quản trị, chi phí thiết bị thấp Còn đối với mạng Client- Server đòi hỏi một máy chủ đủ mạnh với giá thành cao Thông thường thì máy chủ ít sự cố, nhưng nếu có sẽ gây thiệt hại lớn về dữ liệu và chi phí để thiết lập lại hệ thống
Ngoài ra, mạng ngang hàng cũng tận dụng được băng thông trên toàn bộ mạng vì việc tăng số giao tiếp giữa các thiết bị mạng qua các đường truyền khác nhau sẽ làm giảm khả năng tắc nghẽn mạng Khi càng nhiều máy tính tham gia vào mạng thì khả năng xử lý, khả năng lưu trữ và băng thông cũng tăng theo điều đó cho thấy khả năng mở rộng của mạng ngang hàng
- Các tài nguyên có thể biến mất do các nút cung cấp tài nguyên có thể ngắt kết nối bất cứ lúc nào Hay các nút trong mạng độ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 kém do dữ liệu phân tán
1.1.3 Phân loại mạng ngang hàng
Ta có thể phân loại các mạng ngang hàng hiện nay theo 2 tiêu chí sau [2] [4]:
- Dựa vào mức độ tập trung: Mạng ngang hàng được chia làm 2 loại: Mạng
ngang hàng thuần túy và Mạng ngang hàng lai
Mạng ngang hàng thuần túy:
Các máy trạm có vai trò vừa là máy chủ vừa là máy khách
Không có máy chủ trung tâm quản lý mạng
Không có máy định tuyến trung tâm, các máy trạm có khả năng tự định tuyến
Trang 12 Sử dụng các trạm định tuyến để xác định địa chỉ IP của các máy trạm
- Dựa vào cấu trúc liên kết: Giữa các nút mạng trên mạng phủ, mạng ngang
hàng được chia 2 loại: Mạng ngang hàng có cấu trúc và Mạng ngang hàng không có cấu trúc
Mạng ngang hàng không cấu trúc: [2] là mạng mà các liên kết giữa các nút
mạng trong mạng phủ được thiết lập ngẫu nhiên 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 vào mạng có thể lấy cá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ản thâ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: không có gì đảm bảo tìm kiếm sẽ thành công Đối với việc 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á thấp 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 thấp 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ột số mạng ngang hàng không có cấu trúc phổ biến như: Napster, Gnutella, Fasttrack và eDonkey2000
Trang 13Hình 1.2: Mạng ngang hàng không có cấu trúc Napster
Mạng ngang hàng có cấu trúc: Mạng ngang hàng có cấu trúc khắc phục nhƣợc
điểm của mạng ngang hàng không cấu trúc bằng cách sử dụng hệ thống bảng băm phân tán DHT (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ộ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 tài liệu, nó chỉ cần áp dụng một giao thức chung để xác định nút mạng, sau đó liên lạc trực tiếp đến nút mạng đó để lấy kết quả
Mạng ngang hàng có cấu trúc sử dụng một giao thức đảm bảo rằng mọi nút tham gia mạng đều có thể định tuyến, truy vấn tới các nút khác chứa dữ liệu mà
nó cần, ngay cả khi dữ liệu đó không phổ biến Để có đƣợc điều này cần có một mạng phủ đƣợc liên kết theo một cấu trúc nhất định Hầu hết những mạng ngang hàng có cấu trúc hiện nay đƣợc xây dựng dựa trên bảng băm phân tán
Một số mạng ngang hàng sử dụng bảng băm phân tán phổ biến hiện nay có thể kể là: Chord, Pastry, CAN,…
1.2 Mạng ngang hàng có cấu trúc Chord
Dựa vào cấu trúc bảng băm phân tán, có rất nhiều mô hình mạng ngang hàng có cấu trúc: Chord, Pastry, CAN, …nhƣng xét về sự linh hoạt trong việc định tuyến và khả năng phục hồi trạng thái cũng nhƣ khả năng chịu lỗi thì kiến trúc Chord đƣợc đánh giá cao Giao thức Chord là một trong những giải pháp để kết nối các nút trên mạng phủ
Trang 141.2.1 Mô hình hệ thống mạng Chord
Chordlà một trong những mạng sử dụng DHT phổ biến Nó có nhiều ưu điểm hơn các mạng ngang hàng có cấu trúc khác Đặc điểm chính của Chord đó
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 [7]
Cân bằng tải định danh của Chord là sự phân phát khóa tương đối đồng đều vào các nút trong mạng nhờ vào việc sử dụng kỹ thuật băm nhất quán để cấp khóa cho các nút Kĩ thuật băm nhất quán dựa trên hàm băm SHA-1 Để có được khóa, Chord sẽ băm các giá trị của dữ liệu tạo thành khóa Giá trị của dữ liệu ở đây có thể là địa chỉ, tên tài liệu, văn bản, hình ảnh, tài liệu media… Mỗi loại giá trị dữ liệu có những đặc điểm khác nhau, vì vậy trong từng trường hợp cụ thể, các giá trị sẽ được chọn để sử dụng phù hợp với ứng dụng 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 Khi mạng được thiết lập, một hệ thống gồm n nút trong đó mỗi nút
sẽ chứa O(log n) nút xung quanh và thông qua O(log n) thông báo để tìm kiếm các nút khác trong hệ thống
Hình 1.3: Mô hình hoạt động của dịch vụ chia sẻ File
Mạng ngang hàng có cấu trúc Chord có những đặc điểm sau [4] [7]:
- 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 băm nhất quán Các khóa được phân tán đều trên tất
cả các nút, một nút sẽ không chứa quá nhiều khóa Điều này làm cho Chord có khả năng cân bằng tải một cách tự nhiên
Trang 15- Sự phân quyền (Decentralization): 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 Điều này giúp hệ thống giữ được sự ổn định
- Khả năng mở rộng (Scalability): Trong quá trình hình thành mạng, Chord có khả năng mở rộng với số lượng rất lớn các nút từ đó cải thiện hiệu suất tìm kiếm một cách tối đa
- Tính sẵn sàng (Availability): Mỗi nút trong Chord tự động điều chỉnh bảng định tuyến (Finger Table) của chính nó khi có một nút tham gia hoặc rời khỏi mạng Do đó, Chord có thể duy trì sự tồn tại của mạng một cách hoàn toàn
tự động
- Định nghĩa khóa linh hoạt (Flexible naming): Chord không ràng buộc về cấu trúc của khóa mà nó tìm kiếm, không gian khóa được ánh xạ để gán cho khóa một cái tên và thực hiện tìm kiếm
Chord được mô tả dưới dạng một vòng tròn và không gian định danh phân bố đều trên một vòng tròn Nếu gọi m là số bit định danh của không gian khóa thì mạng Chord sẽ có thể chứa tối đa 2m
nút Mỗi nút trên mạng Chord có
một định danh id duy nhất và các id trong mạng Chord sắp xếp thành vòng tròn
tăng theo chiều kim đồng hồ Chúng có khả năng duy trì liên kết 2 chiều với nút đứng liền trước gọi là Successor(id) và liền sau nó Predecessor(id) Ngoài ra, mỗi nút sẽ lưu một bảng thông tin định tuyến gọi là Finger Table, cho phép nút
đó định tuyến tới các nút khác trong mạng Mỗi dòng trong bảng Finger Table sẽ lưu thông tin về 1 nút ở xa gọi là 1 liên kết (Entry) Không gian định danh có bao nhiêu bit thì Finger Table có bấy nhiêu liên kết
Để quá trình tìm kiếm diễn ra hiệu quả, Chord lưu trữ thông tin định tuyến giữa các nút trong một bảng được gọi là Finger Table Gọi i là liên kết thứ i trong bảng Finger Table của nút n, i được thể hiện bằng: n.Finger[i] Nút đầu tiên trong bảng Finger Table của n chính là Successor(n) hay còn được gọi là Immediate Successor
Trang 16 Nút biết thông tin về các nút gần nó nhiều hơn là các nút ở xa
Bằng cách định tuyến thông qua bảng Finger Table, một nút n có thể xác định được vị trí của bất kỳ khóa nào trên mạng
1.2.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 theo cặp (key, value) Một value có thể là địa chỉ IP, văn bản, hoặc hình ảnh… Chord có thể thực hiện chức
Trang 17nă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) [7]
Hình 1.5: Lưu giữ khóa trong mạng Chord
Hình 1.5 cho thấy nút 0 lưu key 6, nút 1 lưu key 1 và nút 3 lưu key 2
1.2.3 Tìm kiếm trong mạng Chord
Khi một nút n cần tìm kiếm một khóa có định danh id, nút đó sẽ thực hiện tìm kiếm nút lưu giữ id đó Trong quá trình tìm kiếm, nếu nút n cách xa nút lưu giữ id, nút n có thể sử dụng thông tin trong bảng Finger Table để định tuyến đến các nút khác ở xa hơn, nhờ vào đó dần tìm ra nút lưu giữ id
Hình 1.6: Tìm kiếm trong mạng Chord
Ví dụ ở hình 1.6, giả sử nút 3 muốn tìm successor của id = 1 (tương ứng với khóa), id =1 thuộc khoảng [7, 3) Nút 3 kiểm tra entry thứ 3 trong bảng định tuyến của nó là 0 Bởi vì 0 nằm ngay trước 1 trên vòng tròn định danh, nút 3 sẽ
Trang 18hỏi nút 0 để tìm successor của 1 Nút 0 sẽ tìm trong bảng định tuyến của nó và thấy successor của 1 chính là nút 1 Nút 0 trả lời nút 3, nút 1 chính là successor của khóa id = 1
1.2.4 Tham gia và ổn định mạng
Trong mạng ngang hàng động, sự tham gia và rời khỏi mạng luôn làm thay đổi cấu trúc mạng Nếu không có các biện pháp để xác định và quản lý khóa, mạng sẽ bị lỗi Để 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ều kiện sau [4][7]:
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 có một nút n muốn tham gia vào mạng Chord:
Nút n cần chọn cho nó một định danh id
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
n 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 Successor các id trong từng entry của Finger Table
Các nút cần thường xuyên chạy thuật toán ổn định mạng stabilize() để cập nhật thông tin về nút bên cạnh (nút hàng xóm)
Cuối cùng là nút Successor của n sẽ chuyển một phần khóa k mà bây giờ n là Successor(k), cho n lưu giữ
Khi một nút chuẩn bị rời khỏi mạng:
Nút đó cần thông báo cho các nút bên cạnh (nút phụ trách của nó) biết
để ổn định lại mạng
Chuyển các khóa nó lưu giữ cho nút Successor của nó
Trang 19CHƯƠNG 2- MỘT SỐ PHƯƠNG PHÁP TỐI ƯU HÓA TOPOLOGY TRÊN MẠNG NGANG HÀNG CÓ CẤU TRÚC CHORD
Việc sử dụng DHT dễ dẫn đến sự khác biệt về topology giữa mạng phủ và mạng IP Để giải quyết vấn đề này, các nút gần nhau tại tầng vật lý cần trở thành hàng xóm của nhau trên mạng phủ Hơn nữa, việc có được thông tin tầng dưới như địa chỉ IP để xây dựng mạng phủ là điều không dễ Do đó, khoảng cách dựa vào thời gian trễ giữa các nút được xem là thước đo khả thi nhất để đánh giá sự gần gũi giữa chúng Việc dự đoán được độ trễ giữa các nút dựa vào tọa độ trong không gian 2 chiều mà không cần thăm dò sẽ có ý nghĩa lớn trong việc tối ưu topo trên mạng phủ Việc này sẽ được thực hiện nhờ giải thuật Vivaldi Ngoài
ra, lựa chọn láng giềng gần (Proximity Neighbor Selection - PNS) cũng là phương pháp được sử dụng rộng rãi vì phương pháp này làm giảm các chặng định tuyến trên mạng phủ Trong chương này, chúng ta sẽ tìm hiểu về vấn đề sai khác topology, tìm hiểu về giải thuật Vivaldi và lựa chọn láng giềng gần để tối
ưu hóa topology mạng ngang hàng có cấu trúc Chord
2.1 Vấn đề sai khác topology
Mạng ngang hàng có cấu trúc sử dụng hệ thống bảng băm phân tán DHT
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 Sự phân phát khóa tương đối đồng đều vào các nút trong mạng nhờ vào việc sử dụng kỹ thuật băm nhất quán để cấp khóa cho các nút Chính điều này tạo cho Chord có khả năng cân bằng tải lớn Tuy nhiên việc xây dựng mạng phủ thông qua DHT mà không quan tâm tới các mối quan hệ gần gũi của các nút ở tầng vật lý dẫn đến vấn đề sai khác topology giữa mạng phủ và mạng vật lý Đó là, hai nút gần nhau trên mạng phủ có thể rất
xa trên mạng vật lý và ngược lại Dẫn đến các thông báo có thể bị truyền đi xa hơn trên mạng Internet tại mỗi chặng định tuyến
Vấn đề sai khác topology giữa mạng phủ và mạng vật lý là nguyên nhân chính làm tăng độ trễ tìm kiếm Mặc dù mạng ngang hàng có cấu trúc có số chặng định tuyến ở mức trung bình nhưng hiệu năng tìm kiếm có thể bị giảm mạnh khi chiều dài chặng trên mạng phủ ngắn hơn chiều dài liên kết vật lý và ngược lại
Trang 20Có 2 hướng nghiên cứu đặc trưng nhằm giải quyết vấn đề sai khác topology trong hệ thống mạng ngang hàng có cấu trúc Hướng nghiên cứu đầu tiên có sử dụng kỹ thuật được gọi là kỹ thuật “Landmark binning” Trong kỹ thuật này, tất cả các nút đo khoảng cách giữa chúng dựa trên độ trễ truyền thông Các nút có tính ổn định cao được gọi là các Landmark Mỗi nút được gán nhãn bằng một chuỗi các giá trị tương ứng với khoảng cách vật lý trung bình từ nút đó đến các landmark Các nút có cùng các giá trị tương ứng đến Landmark được nhóm vào cùng một Bin Nhược điểm của kỹ thuật này liên quan đến việc bổ sung vào hệ thống các landmark Lý do là tải đo lường trên Landmark sẽ tăng mạnh khi kích thước hệ thống tăng Như vậy, Landmark có thể dễ dàng bị quá tải Hướng nghiên cứu thứ 2 là xây dựng một bản đồ toàn cục để lựa chọn những tuyến đường định tuyến ngắn hơn thông qua tham số độ trễ Các trạng thái gần gũi được tạo ra trên các nút chung (nút cụm), các nút khác có thể tìm kiếm các nút láng giềng thông qua nút này Xây dựng các thuật toán trên lớp phủ bằng cách chọn các nút gần nhau trên mạng vật lý làm hàng xóm sẽ giải quyết được vấn đề sai khác topology Các thuật toán này cần phải giải quyết một số vấn đề
Trang 21phục những bất lợi trên, vấn đề cốt yếu đó là xác định vị trí hàng xóm lân cận của các nút Trong các mạng phủ cấu trúc, hiện tại đã có ba phương pháp: Đầu tiên là lựa chọn hàng xóm gần gũi (PNS), là những nút hàng xóm trong bảng định tuyến được lựa chọn dựa trên sự gần gũi của chúng Thứ hai là lựa chọn nút
có chặng tiếp theo khi định tuyến đến nút đích gần với những nút hàng xóm Thứ ba là lựa chọn định danh gần (Proximity Identifier Selection - PIS), các nút
có thể chọn định danh dựa trên vị trí địa lý PNS là phương pháp được sử dụng rộng rãi, phương pháp này làm giảm các chặng định tuyến trên mạng ngang hàng có cấu trúc Chord
2.2.2 Xây dựng không gian tọa độ 2 chiều
Mỗi nút trong mạng sẽ có một tọa độ tương ứng trong không gian tọa độ 2 chiều C và không gian tọa độ 2 chiều này sẽ được chia đều thành các vùng bằng cách sử dụng các vòng tròn đồng tâm ký hiệu là O O được xây dựng như sau:
- Bán kính và tọa độ tâm vòng tròn đầu tiên (gọi là phần C1) là r và (0,0) Phần
C2 có bán kính 2r, bán kính của C3 là 3r, …Cứ như vậy, toàn bộ không gian tọa
độ 2 chiều sẽ được chia thành các vùng
- Sau đó, mỗi vùng lại được chia nhỏ thành các miền có diện tích bằng diện tích của C1 Để thuận tiện cho mô tả, chúng ta đánh số cụm vòng tròn đồng tâm bắt đầu từ C1 Id của khu vực được bao quanh bởi vòng tròn bên trong nhất là r1 và được đánh số là D1,1 Id của vòng tròn bên ngoài r1 là r2, và như vậy cho đến hết Các vùng trên ri được ký hiệu là Di,j, trong đó i là số hiệu đường tròn, j là thứ tự miền Thứ tự miền được đánh số từ góc 0 o theo hướngngược chiều kim đồng
Hình 2.1: Phân hoạch không gian tọa độ 2 chiều
Trang 222.2.3 Không gian định danh nút đa lớp
Mỗi miền trong không gian tọa độ 2 chiều được ánh xạ tới một vùng trong không gian định danh nút trong DHT [6] Tất cả các nút có thể tìm thấy id của miền trong không gian định danh bằng cách dựa vào nguyên tắc ánh xạ Hơn nữa, khi các nút được trong cùng miền, chúng sẽ ánh xạ vào trong cùng khu vực tương tự trong DHT Vì vậy, mối quan hệ gần gũi giữa các nút vẫn được giữ Thông qua việc gọi hàm Get (region.key) và Put(region.key), RPC chính trong Chord, các nút có thể xác định vị trí khu vực của nó được ánh xạ trong Log(n) chặng với xác suất cao Lớp L1 đầu tiên tương ứng với r1 trong tọa độ không gian 2 chiều Lớp thứ hai L2 tương ứng với r2, cứ như vậy cho đến hết Hơn nữa, một khái niệm logic được đưa ra là khoảng cách giữa các lớp, đó là khoảng cách tương ứng với khoảng cách giữa hai vòng tròn đồng tâm liền kề
2.2.4 Tối ưu bảng định tuyến dựa vào lựa chọn láng giềng gần
Các bước chính của thuật toán PNS như sau: Đầu tiên, thực hiện lập bản
đồ không gian để cho mỗi nút ánh xạ tới một vùng trong không gian định danh của Chord mà không làm mất mối quan hệ gần gũi, thứ hai là giai đoạn tìm kiếm láng giềng gần Cuối cùng, sử dụng láng giềng gần đã tìm được để thiết lập, tối
ưu hóa các bảng định tuyến của Chord
2.2.4.1 Tìm kiếm láng giềng gần
Khi một nút muốn tham gia vào mạng, Chord truyền thống sẽ thực hiện băm để nhận một giá trị băm duy nhất Sau đó thực hiện việc tham gia mạng cho nút tại vị trí đó Với giải pháp này, thay vì một giá trị băm, một tập các giá trị băm sẽ được tính toán và chuyển cho nút Đây là tập giá trị có được từ việc băm thông tin nút và chỉ số phụ Một nút a sẽ lấy key của nó bằng cách sử dụng hàm băm Hash(), key này là id duy nhất trong không gian định danh của DHT Ngoài
ra, nó giữ id của vùng sau khi ánh xạ không gian địa chỉ Như vậy, nút a sẽ sử dụng Hash(region.id) để có được key của vùng Nút có key gần nhất với key của vùng được gọi là nút cụm (CN - Cluster Node) [6] Nút a sẽ gửi các thông tin của mình như: tọa độ, định danh, địa chỉ IP, cổng, lên nút cụm để đăng ký Các nút thuộc cùng một cụm cũng phải gửi thông tin của nó lên nút cụm để đăng ký Khi nút a tìm được láng giềng gần, nó sẽ thêm các nút đó vào tập các hàng xóm
để tối ưu bàng định tuyến về sau
Nhưng nếu không có bất kỳ nút nào tham gia khu vực Ix,y trong lớp Lx khi a tham gia, thì nó bắt đầu mở rộng tìm kiếm như sau: tìm kiếm láng giềng gần trong 6 khu vực khác xung quanh Ix,y, chẳng hạn như Ix,y-1, Ix,y+1, Ix-1,y, Ix-1,j, Ix-