Tải bản đầy đủ (.pdf) (45 trang)

Đánh giá các giải pháp tối ưu hóa Topology cho mạng ngang hàng có cấu trúc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.19 MB, 45 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ









ĐỖ PHƯƠNG DUNG









ĐÁNH GIÁ CÁC GIẢI PHÁP TỐI ƯU HÓA TOPOLOGY
CHO MẠNG NGANG HÀNG
CÓ CẤU TRÚC








LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
















Hà Nội – 2012







2
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ











ĐỖ PHƯƠNG DUNG




ĐÁNH GIÁ CÁC GIẢI PHÁP TỐI ƯU HÓA TOPOLOGY
CHO MẠNG NGANG HÀNG
CÓ CẤU TRÚC



Ngành : Công nghệ thông tin
Chuyên ngành : Truyền dữ liệu và Mạng máy tính
Mã số : 60 48 15





LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN







NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS HỒ SĨ ĐÀM








Hà Nội – 2012








5
MỤ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

6
CHƢƠ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


7
CÁC THUẬT NGỮ VIẾT TẮT
Từ viết tắt
Nghĩa tiếng Anh
CAN
Controller Area Network
CN
Cluster Node
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

8
DANH 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


9


MỞ ĐẦ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.

10

Trong 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.

11
CHƢƠ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.

12
Vớ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ệ.

13
Mạ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.

1.1.2.2 Nhƣợc điểm
Bên cạnh những ƣu điểm trên, mạng ngang hàng cũng có một số nhƣợc
điểm:
- Kết quả truy vấn có thể nhận đƣợc nhiều giá trị khác nhau do kết nối đến
nhiều nút khác nhau.
- Các yêu cầu gửi đi có thể không nhận đƣợc phản hồi vì không có gì đảm
bảo đƣợc rằng tồn tại một nút nào đó trong mạng có khả năng đáp ứng
đƣợc yêu cầu.
- 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.

14
Mạng ngang hàng lai:
 Có một máy chủ trung tâm dùng để lƣu trữ thông tin của các máy trạm và
trả lời các truy vấn thông tin này.
 Các máy trạm có vai trò lƣu trữ thông tin, tài nguyên đƣợc chia sẻ, cung
cấp các thông tin về chia sẻ tài nguyên của nó cho máy chủ.
 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.

15

Hì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ủ.

16
1.2.1. Mô hình hệ thống mạng Chord
Chord

là 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.

17
- 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 2

m
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.

18

Hình 1.4: Mạng Chord với m=3
Hình 1.4: ví dụ về mạng Chord với m= 3 bít có các nút 0, 1, 3 tham gia vào
mạng và các bảng Finger Table ứng với mỗi nút.
Các trƣờng trong mỗi liên kết trong bảng Finger Table của nút n đƣợc
định nghĩa:

Bảng 1.1: Bảng định nghĩa các trƣờng trong Finger Table
Từ bảng 1.1 ta thấy:
 Mỗi nút chỉ cần lƣu trữ thông tin của một số nút nhất định trong bảng
định tuyến của mình.
 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

19
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)
[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ẽ

20
hỏ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ó.

21
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

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.

22
Có 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 đề
cơ bản sau:
(1). Phân tán và có khả năng mở rộng.
(2). Phải chính xác và thích nghi với môi trƣờng tự động thay đổi.
(3). Có chi phí thấp.
Lựa chọn láng giềng gần và Vivaldi là những giải thuật có khả năng giải quyết
đƣợc vấn đề sai khác topology.
2.2. Lựa chọn láng giềng gần trong mạng ngang hàng có cấu trúc Chord.
2.2.1. Giới thiệu
Các ứng dụng rộng lớn của chia sẻ file, đa phát trên mạng Overlay và web
caching đã thúc đẩy đáng kể việc nghiên cứu hệ thống P2P. 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 có
định danh bằng hoặc gần nhất với giá trị băm của nó. Hơn nữa, các tài liệu đƣợc
phân phát đến các nút trên mạng theo một cách giống nhau. Tuy nhiên, DHT có
thể làm cho topo mạng không cân đối giữa mạng phủ bên trên và mạng IP bên
dƣới. Dẫn đến, thông báo có thể đi một khoảng rất xa trên mạng Internet tại mỗi
chặng định tuyến do vậy làm tăng độ trễ tìm kiếm và xác định tài liệu. Để khắc


23
phụ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 C
1
) là r và (0,0). Phần
C
2
có bán kính 2r, bán kính của C
3
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 C
1
. Để 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ừ C
1
. Id của khu vực đƣợc bao quanh bởi vòng tròn bên trong

nhất là r
1
và đƣợc đánh số là D
1,1
. Id của vòng tròn bên ngoài r
1
là r
2
, và nhƣ
vậy cho đến hết. Các vùng trên r
i
đƣợc ký hiệu là D
i,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ƣớng
ngƣợc chiều kim đồng.


Hình 2.1: Phân hoạch không gian tọa độ 2 chiều

24
2.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 L
1
đầu tiên tƣơng ứng với r
1
trong tọa độ không
gian 2 chiều. Lớp thứ hai L
2
tƣơng ứng với r
2
, 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 I
x,y
trong lớp L
x
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 I
x,y
, chẳng hạn nhƣ I
x,y-1
, I
x,y+1
, I
x-1,y
, I
x-1,j
, I
x-

25
1,j+1
, I
x+1,k
, I
x,k+1
. Tƣơng tự, a sẽ định vị CN nằm trong mỗi khu vực hàng xóm
thông qua gọi Get(key*) trong 6 lần và key* là một trong những ID của khu vực

láng giềng. Nếu bất kỳ nút láng giềng trong 6 khu vực đƣợc tìm thấy, quá trình
tìm kiếm kết thúc. Nếu không, nút a tiếp tục tìm kiếm trong không gian định
danh lớp trên cho đến khi tìm đƣợc nút láng giềng hoặc đến lớp đầu tiên.
2.2.4.2 Tối ƣu entry trong bảng định tuyến Chord.
Trong bảng định tuyến Chord, entry của Finger thứ i cần đƣợc điền bằng
nút có định danh sau , k là định danh nút. Áp dụng cho chiến lƣợc xây
dựng bảng định tuyến một cách linh hoạt với các nút có độ trễ thấp hơn mà định
danh của chúng nằm trong khoảng . Mặc dù theo một số nghiên cứu,
phƣơng pháp lấy mẫu ngẫu nhiên để chọn hàng xóm cải thiện hiệu suất định
tuyến nhƣng kết quả của nó là không tối ƣu vì các chi phí thăm dò lớn. Thuật
toán chọn láng giềng gần giữ tất cả các thông tin hàng xóm tìm thấy đƣợc trong
quá trình tìm kiếm trƣớc đó. Vì vậy, chúng ta có thể sử dụng nó để tối ƣu hóa
các bảng định tuyến một cách trực tiếp.
Giả sử a có láng giềng là tập N
a
. n
i
thuộc N
a
là một láng giềng gần trong
N
a
. Nút a sẽ tìm entry trong Finger Table có chứa n
i
. Sau đó, a sẽ so sánh độ trễ
tới n
i
với nút hiện tại là nút trong finger entry của n
i
. Nút có độ trễ thấp hơn sẽ

đƣợc chọn và điền vào finger entry này [6] [7]. Trong Chord phiên bản cải tiến,
thông tin của một số các nút sao lƣu đƣợc lƣu trữ trong mỗi entry để giảm độ trễ
tới các nút. Các nút không chọn sẽ đƣợc thêm vào danh sách nút sao lƣu của
entry này. Sau khi tất cả các nút ở N
a
đƣợc kiểm tra, các entry còn lại không
phải n
i
đƣợc tối ƣu hóa nhƣ sau: Nút a sẽ hỏi tất cả các nút trong N
a
về bảng
định tuyến của chúng và trích xuất các Successor từ mỗi finger entry. Bởi vì,
mỗi nút chứa tọa độ mạng của nút hàng xóm, vì thế có thể nhận đƣợc độ trễ đến
mỗi Successor bằng cách tính toán khoảng cách Euclide mà không cần thăm dò
vật lý. Nút a sẽ chọn nút có độ trễ thấp hơn là Successor mới của mình.
2.2.5. Nhận xét
Sử dụng tiêu chí là thời gian trễ để thực hiện chọn hàng xóm là một trong
những tiêu chí giúp cải thiện hiệu năng mạng. Việc phân hoạch để tạo ra không
gian tọa độ 2 chiều giúp các nút mạng có đƣợc tọa độ của mình và có thể dự
đoán đƣợc RTT mà không cần thực hiện việc thăm dò trên toàn mạng. Dựa vào
tọa độ 2 chiều của mạng ảo, các nút gần nhau sẽ đƣợc nhóm vào trong cùng một
miền và miền kế nhau sau khi ánh xạ từ không gian toạ độ của mạng sang không
gian định danh của DHT, chính vì vậy mà quan hệ gần gũi của các nút mạng
trong hệ thống sẽ không bị thay đổi. Nhờ vào việc tìm kiếm trên vùng id tƣơng

26
ứng bằng RPC trong Chord, các nút sẽ tìm đƣợc láng giềng gần một cách nhanh
chóng trong vùng phân tán đó. Từ đó giảm đƣợc độ trễ tìm kiếm trên mạng. Lựa
chọn láng giềng gần là một phƣơng pháp đã tối ƣu hóa đƣợc topology của mạng
ngang hàng có cấu trúc Chord.

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.
2.3.1. Giới thiệu
Số lƣợng lớn các ứng dụng của Internet có thể đƣợc hƣởng lợi từ khả
năng dự đoán RTT đến các nút khác mà không phải thăm dò để đo RTT. Việc
đo chính xác RTT là không thể bởi vì chi phí bỏ ra có thể lớn hơn gấp nhiều lần
so với lợi ích mà nó mang lại. Vivaldi là một thuật toán giúp các nút trong mạng
có thể tự dự đoán RTT. Đây là một thuật toán phân tán không yêu cầu hạ tầng
mạng và không phụ thuộc vào các nút.
Vivaldi đã giải quyết đƣợc những khó khăn trong việc thiết kế một hệ tọa
độ nhân tạo để sử dụng trong các ứng dụng Internet phân tán quy mô lớn đó là
[3]:
 Xây dựng đƣợc không gian tƣơng ứng có tỉ lệ lỗi thấp, có khả năng giải
quyết đƣợc những vấn đề nhƣ: định tuyến, thời gian truyền và hàng đợi.
 Có khả năng mở rộng số lƣợng các host.
 Giảm thiểu lƣu lƣợng thăm dò: Ý tƣởng xây dựng không gian tọa độ nhân
tạo của Vivaldi đã không bổ sung thêm bất kỳ lƣu lƣợng truy cập mạng
nào cũng nhƣ giảm thiểu đƣợc lƣu lƣợng của mạng khi không thực hiện
những truy vấn không cần thiết.
 Thích ứng với sự thay đổi điều kiện mạng: Vị trí tƣơng đối của nút trong
một mạng có thể thay đổi do tắc nghẽn hoặc thậm chí phải cấu hình lại
mạng. Hệ thống sẽ có thể để điều chỉnh tọa độ của các nút theo định kỳ để
đáp ứng với những thay đổi này.
Khả năng dự đoán RTT không trao đổi trƣớc cho phép các hệ thống sử
dụng thông tin cho hiệu quả tốt hơn với chi phí ít hơn so với thăm dò. Hệ tọa độ
có thể đƣợc sử dụng để lựa chọn một số các máy chủ và có thể lấy dữ liệu từ đó,
tọa độ đặc biệt hữu ích khi số lƣợng các máy chủ lớn hoặc số lƣợng dữ liệu là
nhỏ.

27

2.3.2. Một số khái niệm
2.3.2.1 Cấu trúc tọa độ tự tạo
Trƣớc khi xem xét bất kỳ không gian tọa độ cụ thể, chúng ta hãy xem
không gian tọa độ đó có thể đáp ứng đƣợc các điều kiện của bất đẳng thức tam
giác hay không, nghĩa là khoảng cách trực tiếp giữa hai nút A và C phải nhỏ hơn
hoặc bằng với khoảng cách dọc theo đƣờng đi từ A đến B và B đến C.
Các thuật toán có thể lựa chọn cấu trúc tọa độ và sử dụng hàm khoảng
cách để quyết định độ trễ từ hai nút. Việc xây dựng tọa độ nên nhỏ gọn và nó sẽ
dễ dàng để tính toán và dự đoán RTT. Việc lựa chọn đơn giản nhất là sử dụng
tọa độ 2-chiều với các hàm khoảng cách Euclide chuẩn.
Dƣới đây là một số công thức đƣợc sử dụng đến tính toán [8] [3]:




2.3.2.2 Vec-tơ chiều cao
Vector chiều cao là vector bao gồm vector của không gian Euclide bổ
sung thêm tham số chiều cao. Trong không gian Euclide, chúng ta thấy rằng độ
trễ tỷ lệ thuận với khoảng cách địa lý. Tuy nhiên, ngoài độ trễ trên các đƣờng
truyền, việc xếp hàng tại các nút cũng tạo ra độ trễ đáng kể. Để dự đoán đúng độ
trễ giữa 2 nút cần phải tính toán thêm độ trễ chờ xử lý tại 2 nút. Vì vậy, Vivaldi
thêm vào tham số chiều cao trong vector tọa độ của mình. Khi đó, một gói tin
đƣợc gửi từ một nút đến nút khác sẽ phải đi hết chiều cao của nút nguồn, sau đó
đi trong không gian Euclide và đi hết chiều cao của nút đích. Đây là sự khác biệt
cơ bản giữa các vector chiều cao và việc thêm một chiều trong không gian
Euclide. Dƣới đây là một số phép toán thực hiện với vector chiều cao [8]:





Mỗi nút sẽ có thêm yếu tố chiều cao trong hệ tọa độ của nó, do đó chiều cao của
nó có thể thay đổi lên hoặc xuống. Trong không gian Euclide bình thƣờng, một
nút biết mình quá xa với một nút khác sẽ di chuyển đển gần hơn với nút đó. Còn
(2.1)
(2.2)
[x, x
h
] – [y

, y
h
] = [ (x – y)

, x
h
y
h
]
||[ x, x
h
] || = || x || + x
h
α [ x

, x
h
] = [ αx, αx
h
]


[x
1
, , x
n
] – [y
1
, , y
n
] = [ x
1
– y
1
, , x
n
– y
n
]
||[ x
1
,

, x
n
] || =
α [ x
1
, , x
n
] = [ αx
1

,

, αx
n
]

×