Tải bản đầy đủ (.pdf) (10 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 (412.08 KB, 10 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


Đỗ Phương Dung


Trường Đại học Quốc gia Hà Nội; Trường Đại học Công nghệ
Chuyên ngành: Truyền dữ liệu và mạng máy tính; Mã số: 60 48 15
Cán bộ hướng dẫn khoa học: PGS.TS Hồ Sĩ Đàm
Năm bảo vệ: 2012


Abstract. Giới thiệu tổng quan về ngạng ngang hàng và mạng ngang hàng có cấu trúc
Chord. Nghiên cứu một số phương pháp tối ưu hóa Topology mạng ngang hàng có cấu trúc
Chord. Mô phỏng và đánh giá các giải pháp. Đưa ra kết luận, những vấn đề nảy sinh và
hướng nghiên cứu tiếp theo.

Keywords: Truyền dữ liệu; Mạng truyền thông; Mạng hàng ngang; Cấu trúc

Content.

Chương 1: Mạng ngang hàng

Mạng ngang hàng có cấu trúc 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ể,
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.
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 ví dụ như : Chord, Pastry, CAN,…


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 tăng dần hướng theo chiều kim đồng hồ. Trong một không gian định danh m bit sẽ có 2 mũ
m định danh. Mỗi nút trên Chord có một định danh id và có khả năng duy trì liên kết 2 chiều với các
nút đứng liền trước và liền sau nó theo chiều kim đồng hồ, tạo thành 1 mạch kiên kết vòng. Nút liền
trước được gọi là Successor(id), và nút liền sau được gọi là Predecessor(id). Thêm vào đó, 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 ở 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. Không gian định
danh có bao nhiêu bit thì Finger Table có bấy nhiêu entry.
Tuy nhiên, ngoài ưu điểm tìm kiếm dữ liệu nhanh và cân bằng tải giữa các nút, nó còn bộc lộ
một số nhược điểm để khắc phục điều đó tập trung vào 2 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: hai nút ở rất gần nhau về topo vật lý nhưng lại có thể xa nhau trên mạng
chord và ngược lại. Trong ngang hàng Chord, truy vấn ngắn thường có tần suất lớn hơn các truy vấn
dài do cơ chế ưu tiên trong quá trình tìm kiếm.
Khi xây dựng bảng định tuyến nút được chọn 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 làm cho độ trễ truy vấn lớn, chi phí truyền thông
cao.
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.

Đã có nhiều nghiên cứu nhằm cải tiến và tối ưu hiệu năng của Chord: Lựa chọn láng giềng
gần và giải thuật Vivaldi
2.1. Lựa chọn láng giềng gần:
2.1.1. 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.
Sau đó, mỗi vùng lại được chia nhỏ thành các miền có diện tích bằng nhau (tối đa có 2i-1 miền). Các
vùng trên ri được ký hiệu là d
i,j
, với d

i,j
là vùng thứ j trong r
i
bắt đầu từ mốc 0 độ theo hướng ngược
chiều kim đồng
2.1.2. Tối ưu bảng định tuyến
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 gần nút đang
xét nhất.
2.1.3. Nhận xét
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 toạ độ 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 ứ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.
2.2. Giải thuật Vivaldi
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.
2.2.1. Không gian tọa độ.
- Xây dựng không gian tọa độ thỏa mãn: 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.
- Sử dụng tọa độ 2-chiều với các hàm khoảng cách Euclide chuẩn.
2.2.2. Giải thuật:
Việc xây dựng thuật toán Vivaldi dựa trên việc mô phỏng hệ thống lò xo
Giả sử đặt một lò xo giữa 2 cặp nút (i,j), độ dài của lò xo là Lij.
Fij là vector lực của lò xo giữa các nút i và j mà nó tác dụng trên nút i. Theo định luật Hooke:


là khoảng cách dịch chuyển.
Vector đơn vị u (xi-xj) cho biết hướng của lực tại i.
Tính cường độ lực của các vector lực lò xo tác động lên nút i trong toàn mạng:

Điều chỉnh lại tọa độ của i theo hướng của lực:

Khó khăn chính trong việc thực hiện Vivaldi là đảm bảo rằng nó hội tụ đến tọa độ mà dự đoán được
RTT tốt. Để giải quyết điều này, Vivaldi sẽ điều chình tỷ lệ hội tụ bằng bước nhảy δ: giá trị δ lớn thì
Vivaldi dùng để điều chỉnh tọa độ trong bước nhảy lớn. Giá trị δ có thể được tính bằng:

hoặc

2.2.3. Tối ưu Chord dựa vào giải thuật Vivaldi.
Trước hết, các nút trong hệ thống sẽ tự cập nhật tọa độ của mình đến tọa độ mới theo thuật
toán Vivaldi sao cho việc dự đoán RTT chính xác nhất.
Một nút A sẽ duy trì một danh sách các nút ứng cử viên của nó. Việc lựa chọn Successor của
nút A sẽ thực hiện đo khoảng cách tứ nó đến các nút ứng viên để tìm ra nút có RTT ngắn nhất. Và
nút đó sẽ được chọn làm Successor của A. Khi có một nút mới tham gia vào hệ thống, thuật toán
Vivaldi sẽ được thực hiện để các nút lại tự cập nhật tọa độ của mình.
Ngoài ra cần thay đổi Chord để có thể sử dụng Vivaldi đó là: Bất cứ khi nào một nút gửi RPC
yêu cầu hoặc trả lời nút khác, nó sẽ gửi tọa độ của nó vào trong RPC đó. Dựa vào thông tin có trong
RPC, Vivaldi sẽ tính độ trễ tới các nút khác. Cũng nhờ vậy, Vivaldi có thể thu thập thông tin mà
không làm tăng chi phí của mạng. Ngoài ra, bất cứ khi nào các nút trao đổi thông tin định tuyến,
chúng sẽ gửi thêm tọa độ cũng như địa chỉ IP của chúng. Do đó Chord luôn luôn biết tọa độ của nút
mà không phải “nói chuyện” với nút đó trước.
(2.
4)
(2.5)
( 2.6)

( 2.8)
( 2.9)
2.2.4. Nhận xét:
- Vivaldi là thuật toán phân tán vì mỗi một thủ tục Vivaldi giống nhau sẽ được thực hiện trên mỗi
nút. Và nó sẽ được thực hiện lại khi có một nút mới tham gia vào mạng.
- Tính hiệu quả của thuật toán: Mỗi nút cung cấp thông tin để một nút khác cập nhật tọa độ của nó.
Do vậy, khi có những thay đổi cấu trúc topology thì các nút sẽ cập nhật tọa độ của chúng một cách tự
nhiên và phù hợp.
- Vivaldi đã giúp Chord cải tiến được hiệu năng của mạng, tối ưu trong quả trình tìm kiếm lặp.
3. Mô phỏng
3.1. Mục đích:
- Đánh giá tính hiệu quả của các giải pháp cũng như đánh giá được những cải tiến về hiệu năng của
các giải pháp tối ưu trên mạng Chord thông các độ đo như: Độ trễ tìm kiếm, băng thông sử dụng, tỉ lệ
tìm kiếm thành công.
- Từ đó chọn lựa các giải pháp phù hợp để xây dựng các ứng dụng dựa trên mạng Chord.
3.2. Các vấn đề cần giải quyết:
Xây dựng topo và kịch bản mô phỏng nhằm giải quyết các vấn đề sau:
+ Đánh giá ảnh hưởng của kích thước mạng tới độ trễ tìm kiếm và băng thông sử dụng của các nút
cũng như tỉ lệ tìm kiếm thành công ứng với từng giao thức.
+ Đánh giá ảnh hưởng của topo mạng tới độ trễ tìm kiếm ứng với từng giao thức.
3.3. Thực nghiệm mô phỏng
3.3.1. Thực nghiệm 1: Mô phỏng Chord, ChordPNS và Vivaldi
Cấu hình mô phỏng:
- Kích thước mạng lần lượt là 128, 256, 512, 1024 nút.
- Ma trận độ trễ tương ứng với từng kích thước mạng được xây dựng từ tập dữ liệu King. Độ trễ
trung bình giữa các nút là 159ms.
- Giao thức mô phỏng lần lượt là Chord, láng giềng gần và Vivaldi.
- Thời gian sinh thông báo là 10ms.
- Một số tham số mô phỏng cho từng giao thức:
 Chord: Tập hàng xóm bao gồm 16 nút (neighbors=16);

 Láng giềng gần: Tập successors là 16 (successors =16); số lần lấy mẫu tối đa là 10
(Samples = 10)
 Vivaldi: Không sử dụng vector chiều cao( using-height-vectors=0), sử dụng không gian 2
chiều ( model-dimension=2); Tập hàng xóm là 16 (neighbors=16)
Kết quả mô phỏng:
- Băng thông sử dụng: là tổng số byte gửi đi bởi tất cả các nút (bao gồm cả dữ liệu điều khiển) chia
cho khoảng thời gian trung bình mà các nút tồn tại trong hệ thống. Sau khi thực hiện mô phỏng ta có
đồ thị như sau:
Băng thông sử dụng
0
10
20
30
40
50
60
70
80
128 256 512 1024
Số node
(byte/s)
Chord
Chord PNS
Vivaldi

Hình 3.2: Băng thông sử dụng
Dựa vào đồ thị hình 3.2 với kích thước mạng tăng lên thì băng thông sử dụng của Chord và
ChordPNS cũng tăng lên. Tuy nhiên khi kích thước mạng tăng lên thì tỉ lệ tăng đó cũng không nhiều.
Dựa vào đồ thị thì chúng ta cũng thấy rằng băng thông sử dụng của Chord cao gấp 2 lần so với lựa
chọn láng giềng gần. So với lựa chọn láng giềng gần, thuật toán Vivaldi sử dụng băng thông mạng

gần như tương đương. Nguyên nhân đó là do khi thực hiện Vivaldi, thông tin các nút được trao đổi
trên mạng được gửi đi trong các message của RPC chính vì vậy nó sẽ không làm tăng chi phí của
mạng.
- Độ trễ tìm kiếm trung bình: Là thời gian trung bình mà các nút sử dụng trong các tìm kiếm thành
công.
Độ trễ tìm kiếm trung bình
0
50
100
150
200
250
300
350
400
450
500
128 256 512 1024
Số node
Độ trễ (ms)
Chord
Chord PNS
Vivaldi

Hình 3.3: Đồ thị về độ trễ tìm kiếm trung bình
Dựa vào đồ thị hình 3.3 chúng ta thấy rằng với số nút trong mạng tăng gấp đôi thì độ trễ tìm
kiếm trung bình của chord, chordPNS và Vivaldi cũng tăng lên. Tuy nhiên đối với Chord, độ trễ tìm
kiếm tăng 1.5 lần khi kích thước mạng tăng gấp đôi trong khi đó với ChordPNS và Vivaldi, độ trễ
tìm kiếm chỉ tăng tuyến tính. Ngoài ra, so với Chord, ChordPNS, Vivaldi có độ trễ thấp hơn ứng với
cùng số nút như nhau. Nguyên nhân chính của kết quả này là do việc tối ưu trong quá trình chọn

successor của ChordPNS và Vivaldi. Việc chọn nút làm successor có khoảng cách ngắn nhất trong
danh sách các nút ứng viên làm láng giềng gần đã làm giảm đáng kể độ trễ tìm kiếm. Đối với lựa
chọn láng giềng gần việc ánh xạ các nút vào các miền đã cải thiện đáng kể việc lưu thông tin trong
bảng định tuyến và rút ngắn thời gian định tuyến. Mỗi nút lưu lại định danh của miền mà nó thuộc về
miền đó. Quá trình tìm kiếm sẽ được thực hiện trên 6 miền lan cận và việc chọn định danh nút hàng
xóm sẽ nằm trong khoảng [k+2
i-1
, k+2
i
), với k là định danh nút hiện tại.
Tuy băng thông sử dụng mạng là tương đương nhau so với lựa chọn láng giềng gần (trong đồ
thị hình 3.2) nhưng Vivaldi đã cải thiện đáng kể độ trễ tìm kiếm trung bình của mạng. Dựa vào đồ thị
hình 3.3 có thể thấy rằng độ trễ tìm kiếm trung bình của mạng đã giảm hơn ½ lần. Có được kết quả
như vậy là do Vivaldi thực hiện cập nhật lại tọa độ từ đó tối ưu được độ trễ dự đoán.
- Sai số tương đối của lỗi dự đoán: giá trị này được tính theo công thức
Sai số tương đối = abs(measured-predicted) / min (measured; predicted)
Đây là đại lượng chỉ ra sự sai khác giữa độ trễ dự đoán và khoảng cách giữa cặp nút trong hệ
thống.
Sai số tương đối
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
128 256 512 1024
Số node
Sai số

Vivaldi

Hình 3.4: Đồ thị về sai số tương đối của Vivaldi
Với kích thước mạng tăng lên, đồ thị hình 3.4 cho thấy sai số tương đối giảm dần. Điều này
cho thấy rằng với kích thước mạng càng lớn khả năng hội tụ của các nút về những vị trị mới lý tưởng
càng cao. Như vậy khả năng dự đoán RTT của các nút càng chính xác.
- Tỉ lệ tìm kiếm không thành công: là tỉ số giữa số lần tìm kiếm không thành công chia cho tổng số
lần tìm kiếm. Ta có kết quả như sau:
Tỉ lệ tìm kiếm không thành công
0
0.2
0.4
0.6
0.8
1
1.2
1.4
128 256 512 1024
Số node
Tỉ lệ (%)
Chord
ChordPNS
Vivaldi

Hình 3.5: Đồ thị so sánh tỉ lệ tìm kiếm không thành công.
Đồ thị hình 3.5 cho ta thấy rằng, tỉ lệ tìm kiếm không thành công của Chord, ChordPNS và
Vivaldi khá thấp (chưa đến 1.5%). Điều này cho thấy việc tìm kiềm của cả ba giải pháp khá hiệu quả.
Ngoài ra chúng ta còn thấy rằng ChordPNS (tương đương Vivaldi) có tỉ lệ tìm kiếm thành công cao
hơn Chord và khi kích thước mạng tăng lên thì tỉ lệ tìm kiếm thành công cũng tăng theo. Có được
điều này là do khi kích thước mạng tăng lên thì xác suất tìm kiếm của các giải pháp tối ưu cũng tăng

theo.
3.3.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.
Cấu hình mô phỏng:
- Kích thước mạng 1024 nút.
- Ma trận độ trễ được xây đựng lại dựa trên ma trận trong thực nghiệm 1, thay đổi khoảng cách
giữa từng cặp nút bằng cách gia tăng độ trễ giữa chúng lần lượt là 10, 20, 40, 80 (giây).
- Các tham số còn lại giống với thực nghiệm 1.
Kết quả mô phỏng như sau:
- Độ trễ tìm kiếm trung bình
0
100
200
300
400
500
600
700
800
900
1000
0 10 20 40 80
Khoảng cách tăng (s)
Độ trễ (ms)
Chord
ChordPNS
Vivaldi

Hình 3.6: Độ trễ tìm kiếm trung bình của mạng 1024 nút
Dựa vào hình 3.6 với kích thước mạng 1024 nút, khi tăng khoảng cách từng cặp nút thì độ trễ
tìm kiếm trung bình của Chord và ChordPNS tương ứng cũng tăng lên. Tuy nhiên đối với Vivaldi

việc tăng là không đáng kể. Điều này cho thấy rằng độ trễ tìm kiếm trung bình của Chord và
ChordPNS phụ thuộc vào khoảng cách giữa các nút. Vì vậy việc xây dựng được mạng phủ phù hợp
sẽ giàm được khá nhiều chi phí tìm kiếm.
3.3.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
Cấu hình mô phỏng:
- Kích thước mạng sử dụng lần lượt là 128, 256, 512, 1024.
- Ứng với mỗi kích thước mạng, lần lượt tăng khoảng cách giữa từng cặp nút lên 1.5 và 2 lần.
- Các điều kiện mô phỏng giống ở thực nghiệm 1.
Kết quả mô phỏng như sau:
- Độ trễ tìm kiếm trung bình:
Độ trễ tìm kiếm trung bình
0
100
200
300
400
500
600
700
800
900
128 256 512 1024
Số node
Độ trễ (ms)
Chord, a=1
Chord, a=1.5
Chord, a=2
ChordPNS, a=1
ChordPNS, a=1.5
ChordPNS, a=2

Vivaldi, a=1
Vivaldi, a=1.5
Vivaldi, a=2

Hình 3.7: Độ trễ tìm kiếm trung bình khi tăng khoảng cách theo hệ số.
Đồ thị hình 3.7 cho thấy rằng khi hệ số a=1.5 và a=2 (tăng khoảng cách 1.5 và 2 lần), tương
ứng với từng kích thước mạng độ trễ tìm kiếm trung bình tăng nhanh ứng với Chord và ChordPNS.
Đối với Vivalđi, độ trễ tìm kiếm tăng không đáng kể.
Nhận xét: Trong thực nghiệm mô phỏng 2 và 3, khi tăng khoảng cách giữa các nút nhìn
chung Chord và ChordPNS có độ trễ tìm kiếm tăng nhanh. Tuy nhiên với Vivaldi giá trị này lại
không tăng. Sự khác biệt này là do Vivaldi thực hiện cập nhật lại tọa độ của các nút về tọa độ mong
muốn, giảm thiểu độ trễ tìm kiếm.
KẾT LUẬN
Tất cả các hệ thống P2P được xây dựng dựa trên tầng ứng dụng, các liên kết trên đó là độc
lập với mạng vật lý bên dưới. Trong mạng ngang hàng không có cấu trúc, một nút mới sẽ chọn ngẫu
nhiên một số các nút hiện có của các hệ thống để làm các láng giềng của nó, trong khi ở mạng ngang
hàng có cấu trúc, một nút mới sẽ nhận được một giá trị nhất định được xác định bởi hàm băm và xây
dựng kết nối với các nút khác dựa trên các quy tắc cụ thể của DHT. Kết quả là, mối quan hệ giữa hai
nút trên mạng phủ sẽ không phản ánh được sự gần gũi trong mạng vật lý. Chính vấn đề này là một
trở ngại lớn trong việc xây dựng mạng có quy mô lớn hiệu quả. Chính vì vậy, việc nghiên cứu tối ưu
hóa topology trên mạng ngang hàng là vấn đề quan trọng để xây dựng các mạng ngang hàng.
Luận văn đã tập trung trình bày về mạng ngang hàng có cấu trúc Chord và những giải pháp
tối ưu hóa topology trên mạng ngang hàng có cấu trúc. Những kết quả nghiên cứu trong luận văn đã
cho thấy rằng, các giải pháp tối ưu topology trên mạng Chord đã khắc phục được những nhược điểm
của mạng Chord truyền thống, giảm thiểu được sự sai khác về topo giữa mạng vật lý và mạng phủ.

HƯỚNG NGHIÊN CỨU TIẾP THEO
Trên cơ sở đã đạt được, trong thời gian tới chúng tôi dự kiến sẽ nghiên cứu những vấn đề sau:
- Tối ưu topology trên mạng có cấu trúc khác như Pastry, Kademlia, Tapestry dựa vào giải
thuật Vivaldi.

- Đánh giá các phương pháp lựa chọn láng giềng trên mạng ngang hàng có cấu trúc: Lựa chọn
láng giềng gần, lựa chọn định danh gần (Proximity Identifier Selection).
- Các đề xuất xử lý vấn đề sai khác topology trên mạng ngang hàng khác: F-Chord, Giao thức
tối ưu định tuyến thông qua trao đổi Peer (Peer-exchange Routing Optimization Protocols -
PROP).

References.
Tiếng Việt
1. PGS.TS Nguyễn Đình Việt (2009), bài giảng “Đánh giá hiệu năng mạng máy tính”,
2.
Tiếng Anh
3. Frank Dabek, Russ Cox, Frans Kaashoek, and Robert Morris. “Vivaldi: A
Decentralized Network Coordinate System.” In the Proceedings of the ACM SIGCOMM '04
Conference, Portland, Oregon, August 2004.
4. Frank Dabek, Emma Brunskill, M. Frans Kaashoek, David Karger, Robert Morris, Ion Stoica,
and Hari Balakrishnan, “Building Peer-to-Peer Systems With Chord, a Distributed Lookup
Service”, Proceedings of the 8th Workshop on Hot Topics in Operating Systems (HotOS-
VIII), May 2001.
5. F. Dabek, J. Li, E. Sit, J. Robertson, M. F. Kaashoek, and R. Morris. “Designing a DHT for
low latency and high throughput.” In Proceedings of the 1st USENIX Symposiumon
Networked Systems Design and Implementation (NSDI ’04), San Francisco, California, March
2004.
6. Hancong Duan, Xianliang Lu, Hui Tang; Xu Zhou, Zhijun Zhao. “Proximity Neighbor
Selection in Structured P2P Network.” Computer and Information Technology, 2006. CIT
'06. The Sixth IEEE International Conference. September 2006.
7. Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan. “Chord: A
scalable peer-to-peer lookup service for internet applications.” In Proceedings of the 2001
Conference on Applications, Technologies, Architectures, and Protocols For Computer
Communications (San Diego, California, United States). SIGCOMM „01. ACM, New York,
NY, 149-160. 2001.

8. R. Cox and F. Dabek. “Learning Euclidean coordinates for Internet hosts.”
December 2002.
9. T. Gil, J. Li, F. Kaashoek, and R. Morris. Peer-to-peer simulator, 2003.

10.
Tiếng Việt
11. PGS.TS Nguyễn Đình Việt (2009), bài giảng “Đánh giá hiệu năng mạng máy tính”.
12.
Tiếng Anh
13. Frank Dabek, Russ Cox, Frans Kaashoek, and Robert Morris. “Vivaldi: A
Decentralized Network Coordinate System.” In the Proceedings of the ACM SIGCOMM '04
Conference, Portland, Oregon, August 2004.
14. Frank Dabek, Emma Brunskill, M. Frans Kaashoek, David Karger, Robert Morris, Ion Stoica,
and Hari Balakrishnan, “Building Peer-to-Peer Systems With Chord, a Distributed Lookup
Service”, Proceedings of the 8th Workshop on Hot Topics in Operating Systems (HotOS-
VIII), May 2001.
15. F. Dabek, J. Li, E. Sit, J. Robertson, M. F. Kaashoek, and R. Morris. “Designing a DHT for
low latency and high throughput.” In Proceedings of the 1st USENIX Symposiumon
Networked Systems Design and Implementation (NSDI ’04), San Francisco, California, March
2004.
16. Hancong Duan, Xianliang Lu, Hui Tang; Xu Zhou, Zhijun Zhao. “Proximity Neighbor
Selection in Structured P2P Network.” Computer and Information Technology, 2006. CIT
'06. The Sixth IEEE International Conference. September 2006.
17. Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan. “Chord: A
scalable peer-to-peer lookup service for internet applications.” In Proceedings of the 2001
Conference on Applications, Technologies, Architectures, and Protocols For Computer
Communications (San Diego, California, United States). SIGCOMM „01. ACM, New York,
NY, 149-160. 2001.
18. R. Cox and F. Dabek. “Learning Euclidean coordinates for Internet hosts.”
December 2002.

19. T. Gil, J. Li, F. Kaashoek, and R. Morris. Peer-to-peer simulator, 2003.

20.
21. Yong Ma, Song Wang, Gang Wang, and Xiaoguang Liu, “A New Structured Peer-to-Peer
Architecture Based On Physical Distance”, 2010 16th International Conference on Parallel
and Distributed Systems.
22. Yjang Li, Russ Cox, Frank Dabek, Frans Kaashoek, Robert Morris, “Practical, Distributed
Network Coordinates”, MIT Laboratory for Computer Science , 2010

×