các nút mạng.
a) Giải thuật
Nhằm xây dựng cấu trúc mạng có tính mở rộng, phân tán, và vẫn đảm bảo ổn định trƣớc các thay đổi của các nút tham gia vào mạng, [2],[3] đã đƣa ra giải pháp xây dựng lớp phủ mạng thế giới nhỏ theo phƣơng pháp bản thân các nút tham gia, tự đánh giá thông tin cục bộ mình có để thực hiện theo các thuật toán tham lam có tính ngẫu nhiên nhằm xây dựng mạng.
Với nhận xét về số lƣợng tƣơng quan các liên kết gần, và liên kết xa. Tác giả đề xuất giải pháp xây dựng mạng thế giới nhỏ, dựa trên tỉ lệ các hàng xóm gần các hàng xóm xa của mạng. Với hàng xóm gần là hàng xóm có khoảng cách (độ trễ truyền tin) nhỏ, và ngƣợc lại hàng xóm xa là hàng xóm có khoảng cách lớn.
44
Hình 19. Tương quan liên kết gần, liên kết xa
Dựa trên nhận định nếu mạng có nhiều hoặc chỉ có những liên kết xa thì mạng sẽ mang tính chất của mạng ngẫu nhiên. Trong trƣờng mạng chỉ có liên kết gần, thì mạng sẽ có tính chất của mạng dạng lƣới đơn giản. Trƣờng hợp số lƣợng liên kết xa chiếm tỉ lệ thấp so với tổng các kết nối của các đỉnh, thì mạng sẽ có tính chất của mạng thế giới nhỏ.
Với nhận định này, giải thuật đƣa ra phƣơng án: các nút sẽ tự xây dựng danh sách hàng xóm của mình theo tiêu chí có nhiều hàng xóm gần nhƣng vẫn đảm bảo có một tỷ lệ hàng xóm xa nhất định.
Để đảm bảo duy trì cấu trúc mạng thế giới nhỏ, thủ tục xây dựng hàng xóm đƣợc gọi khi máy tham gia vào mạng, và sau đó đƣợc lặp lại định kỳ sau từng khoảng thời gian nhỏ. Theo đó danh sách các hàng xóm đƣợc tự động cập nhật định kỳ, hay nói cách khác là tự bản thân các nút, luôn tự động hoàn thiện cấu trúc mạng thế giới nhỏ.
luaChonHangXomTot(n, s, l){n: nút mạng, s: liên kết ngắn, l: liên kết dài N n.danhSachHangXom; //lấy danh sách hàng xóm
C N U {U v.danhSachHangXom};//lấy danh sách hàng xóm tiềm năng For each node v in C{
D[v] distance(n,v);//lấy khoảng cách giữa n và v }
Sort(D);//sắp xếp
N closest(D, s) U random(D,l) n.danhSachHangXom N; }
45
Chi tiết giải thuật:
Với cách xây dựng lớp mạng phủ nhƣ trên, các nút mạng ƣu tiên tạo nhiều hàng xóm gần theo tiêu chí độ trễ truyền tin thấp, do đó mật độ các nút có khoảng cách truyền tin thấp có liên kết lẫn nhau là cao. Tóm lại, phƣơng pháp trên sẽ giúp các nút mạng phân nhóm theo độ trễ truyền tin.
b) Đánh giá Ƣu điểm:
Dựa trên đặc điểm về tƣơng quan số lƣợng hàng xóm gần và hàng xóm xa, giải thuật đã xây dựng đƣợc mạng thế giới nhỏ hoàn toàn dựa trên thông tin cục bộ ở các nút mạng. Do danh sách hàng xóm đƣợc các nút mạng chủ động tham cập nhật nên tính ổn định của mạng cao, ngay cả khi có những nút mạng tham gia và rời bỏ mạng.
46
Toàn bộ thông tin về mạng đều đƣợc phân bổ đều cho các nút tham gia, nên mạng thực sự không có nút điều khiển trung tâm. Ngoài ra, do tính chất của mạng ngẫu nhiên, khi số cạnh đủ lớn thì mạng là liên thông nên thực chất toàn bộ các nút mạng đƣợc kết nối đến nhau.
Nhƣợc điểm:
Tuy có những ƣu điểm trên, nhƣng mạng thế giới nhỏ xây dựng theo tiêu chí ở trên cũng có những hạn chế nhất định.
Để chọn hàng xóm gần, cần thực hiện đo đạc đến một danh sách các nút đang ở trong mạng, do đó chi phí cho bƣớc đo đạc này là cao ảnh hƣởng đến tổng thể số lƣợng các gói tin dùng cho việc duy trì mạng.
Việc kết nạp hàng xóm hoàn toàn dựa trên thông tin một phía của nút tiến hành xây dựng hàng xóm, do vậy kết quả xây dựng hàng xóm của nút này có thể làm ảnh hƣởng đến danh sách hàng xóm của nút kia.
Ta hãy xét ví dụ sau:
Hình 20. Ví dụ về độ trễ truyền tin
Giả sử nút mạng A là nút mạng có hiệu năng cao. Có tốc độ truyền tin đến các hàng xóm là thấp nhƣ hình trên (nét đứt mô tả liên kết có độ trễ cao, nét liên mô tả liên kết có độ trễ thấp).
47
Dễ thấy, nêu theo thuật toán ở trên, thì nút B, C, D, E, F tất cả sẽ chọn A làm hàng xóm gần, tuy nhiên ở lƣợt chọn hàng xóm của mình nút A loại bỏ bớt một số liên kết chỉ giữ lại những liên kết tốt nhât cho nó chẳng hạn loại bỏ D, E, F, giữ lại B, C.
Quá trình lựa chọn hàng xóm thực hiện định kỳ liên tục, do đó dẫn đến những vòng lặp vô tận ở nút D, E, F thực hiện việc kết nạp A thành hàng xóm gần. Do vậy trong trƣờng hợp này việc xây dựng hàng xóm gần là không hiệu quả vừa làm tăng số lƣợng thông điệp tạo xóa kết nối vừa không hoàn thiện đƣợc cấu trúc của mạng.
Do tính phức tạp không đồng nhất của các nút tham gia vào mạng, nên xác suất để xuất hiện những nút có hiệu năng cao nhƣ A là cao do vậy cần thêm một cơ chế để khắc phục vấn đề này.
3.4. Đề xuất giải thuật cải tiến. 3.4.1.Giải thuật GoCast:
Gocast là phƣơng thức giao tiếp nhóm [6], nó hƣớng tới việc xây dựng các kết nối có độ trễ thấp, đồng thời đảm bảo bậc của các nút trong mạng là nhƣ nhau.
Gocast đƣợc xây dựng bằng cách duy trì cả kết nối gần và kết nối ngẫu nhiên trong mạng. Việc xây dựng kết nối dựa vào một dịch vụ gọi là dịch vụ lấy mẫu nút chọn ra các nút đang tồn tại trong mạng. Mỗi một nút mạng lựa chọn D hàng xóm trong đó bao gồm Crand hàng xóm ngẫu nhiên và Cnear hàng xóm gần. (D, Crand, Cnear là các tham số đầu vào của mạng). Sử dụng phƣơng thức TCP để duy trì danh sách hàng xóm và thực hiện truyền tin giữa các hàng xóm với nhau, sử dụng UDP cho việc truyền tin tới các nút còn lại.
Sau mỗi khoảng thời gian định kỳ, tất cả các nút mạng thực hiện cập nhật danh sách hàng xóm của mình. Đầu tiên là danh sách hàng xóm ngẫu nhiên, sau đó đến danh sách hàng xóm gần theo các bƣớc dƣới đây:
Duy trì danh sách hàng xóm ngẫu nhiên: Mỗi nút mạng p, thực hiện so sánh số
hàng xóm ngẫu nhiên hiện tại với Crand. Nếu giá trị này bằng Crand, thì không cần thực hiện thêm thao tác gì. Nếu số lƣợng hàng xóm ngẫu nhiên nhỏ hơn Crand, thì thực hiện chọn ngẫu nhiên một nút mạng chƣa là hàng xóm để thêm vào danh sách
48
hàng xóm của mình. Và cuối cùng nếu số lƣợng nút vƣợt quá Crand thì nút p sẽ lựa chọn một trong những hành động sau để điều chỉnh danh sách hàng xóm:
Nếu số hàng xóm ngẫu nhiên vƣợt quá Crand + 2, thì nút p sẽ chọn ngẫu nhiên hai hàng xóm q và r, và yêu cầu q và r thay thế kết nối với p thành kết nối với nhau. Thao tác này cho phép giảm số hàng xóm của p đi 2 trong khi vẫn duy trì số lƣợng hàng xóm ngẫu nhiên của các nút khác trong hệ thống.
Nếu số hàng xóm ngẫu nhiên bằng Crand +1, p chỉ đơn giản chọn ngẫu nhiên một nút mạng q để bỏ ra khỏi danh sách hàng xóm.
Duy trì danh sách hàng xóm gần: Gocast duy trì danh sách hàng xóm gần thông qua ba phƣơng thức: thay thế một hàng xóm gần bởi một hàng xóm tốt hơn, thêm một hàng xóm gần, và bỏ hàng xóm gần khi số lƣợng hàng xóm gần vƣợt quá Cnear + 2
Cứ sau mỗi khoảng thời gian định kỳ, nút mạng p sẽ thực hiện đo đạc độ trễ của nó đối với một nút mạng ngẫu nhiên r, nếu độ trễ ƣớc tính của nút p đến r nhỏ hơn độ trễ của p đến một hàng xóm gần q nào đó, p sẽ đánh giá việc thay thế q bởi r nếu bốn điều kiện sau đều đúng: i) số lƣợng hàng xóm gần của q ít nhất cũng là Cnear -1; ii) số lƣợng hàng xóm gần của r không vƣợt quá Cnear + 5; iii) nếu số lƣợng hàng xóm của r lớn hơn Cnear thì r phải có hàng xóm có độ trễ truyền tin với r lớn hơn độ trễ truyền tin với p và cuối cùng iv) để đảm bảo nhận đƣợc lợi ích từ việc thay đổi hàng xóm, thì độ trễ giữa p với r cần dƣới ngƣỡng một nửa độ trễ của p với q.
Để thêm hàng xóm p chọn ngẫu nhiên nút mạng r và thực hiện thêm vào danh sách hàng xóm nếu điều kiện ii) và điều kiện iii) đƣợc thỏa mãn.
Nếu p có số hàng xóm lớn hơn Cnear + 2, nó sẽ xóa kết nối với một hàng xóm mà có số lƣợng hàng xóm vƣợt ngƣỡng Cnear -1.
Đánh giá:
Giải thuật Gocast xây dựng đƣợc lớp mạng phủ với hiệu năng truyền tin cao. giảm độ trễ truyền tin đồng thời duy trì bậc của các nút mạng giữa D – 2 và D + 2.
49
Việc xác định hàng xóm gần trong giải thuật Gocast là hoàn toàn tự nhiên, danh sách hàng xóm gần sẽ dần đần đƣợc cập nhật và đƣợc làm tốt hơn thông qua phƣơng thức thay thế hàng xóm gần bởi những hàng xóm gần hơn. Cách thức tiếp cận này là tốt hơn so với cách đánh giá sắp xếp danh sách hàng gần đƣợc để cử trong giải thuật xây dựng thế giới nhỏ truyền thống vì làm giảm đƣợc chi phí đánh giá độ trễ đến một lƣợng lớn các nút trong mạng.
Cơ chế đánh giá bậc của các nút mạng trƣớc khi thực hiện kết nạp một nút mạng vào danh sách hàng xóm của mỗi nút đã khắc phục đƣợc vòng lặp tuần hoàn vô hạn không hiệu quả của việc kết nạp hàng xóm đƣợc đề xuất trong giải thuật thế giới nhỏ trong phần 3.3.
Thực tế cho thấy giải thuật GoCast đã đƣợc cài đặt và triển khai cho dịch vụ giao tiếp nhóm đã đƣợc ứng dụng trong thực tế.
3.4.2.Đề xuất
Giải thuật đƣợc đƣa ra ở phần 3.3 là giải thuật xây dựng mạng thế giới nhỏ hoàn chỉnh, tuy nhiên nó có những hạn chế về yêu cầu khối lƣợng dữ liệu lớn để xây dựng mạng và nguy cơ phát sinh những vòng lặp không giới hạn cho việc kết nạp hàng xóm. Ý tƣởng chung đƣợc đề xuất để giải quyết vấn đề này là kết hợp phƣơng pháp xây dựng mạng thế giới nhỏ lý thuyết với giải thuật Gocast nêu ở trên nhằm tận dụng điểm mạnh của hai giải thuật đồng thời khắc phục những điểm yếu hiện có trong giải thuật xây dựng mạng thế giới nhỏ cũ.
Với cách tiếp cận trên giải thuật cải tiến đƣợc xây dựng nhƣ sau. Thứ nhất giữ nguyên các tham số cũng nhƣ các điều kiện xây dựng danh sách hàng xóm gần hàng xóm xa nhƣ mạng thế giới nhỏ. Thứ hai thực hiện thay đổi cơ chế lựa chọn hàng xóm gần theo cách xây dựng tối ƣu từng phần của giải thuật Gocast để giảm số lƣợng gói tin điều khiển mạng. Thứ ba thêm các điều kiện số lƣợng hàng xóm của mỗi nút mạng khi kết nạp nút vào danh sách hàng xóm để dảm bảo cân bằng bậc của các đỉnh sau khi kết nạp. Phƣơng thức giao tiếp TCP với các hàng xóm và UDP với các nút còn lại của Gocast cũng đƣợc giữ lại để làm tăng hiệu suất truyền tin.
50
Các nút vẫn thực hiện thao tác xây dựng hàng xóm định kỳ. Phƣơng thức xây dựng hàng xóm gần, hàng xóm xa đƣợc tiến hành nhƣ sau:
Xây dựng hàng xóm xa:
So sánh số lƣợng hàng xóm xa của nút hiện tại p với Cfar, nếu số lƣợng hàng xóm xa bằng Cfar thì không cần thực hiện thêm thao tác gì, nếu số lƣợng hàng xóm xa nhỏ hơn Cfar thực hiện việc chọn thêm hàng xóm, ngƣợc lại tiến hành loại bỏ hàng xóm.
Thêm hàng xóm xa: chọn ngẫu nhiên một nút mạng r, nếu độ trễ của liên kết giữa r đến nút hiện tại thỏa mãn điều kiện là hàng xóm xa thì thực hiện thêm r vào danh sách hàng xóm của p.
Xóa hàng xóm, chọn ngẫu nhiên một nút mạng r là hàng xóm xa của p. tiến hành xóa liên kết r, p.
Xây dựng hàng xóm gần:
Tiến hành xây dựng và duy trì danh sách hàng xóm gần tƣơng tự nhƣ cơ chế của Gocast. Sử cũng dụng ba phƣơng thức, thay thế, thêm và bớt hàng xóm. Tuy nhiên để đảm bảo kết quả xây dựng hàng xóm gần là danh sách hàng xóm tối ƣu, ở lần đầu tiên khi tham gia vào mạng, nút sẽ thực hiện đo đạc độ trễ đến tất cả hàng xóm nó có thể biết để xây dựng danh sách hàng xóm cho mình.
Chi tiết giải thuật:
If (isFirstTimeJointNetwork) {
N n.danhSachHangXom; //lấy danh sách hàng xóm C N; //lấy danh sách hàng xóm tiềm năng
For each node v in C{
D[v] distance(n,v);//lấy khoảng cách giữa n và v }
Sort(D);//sắp xếp
Near_lbr_list C[0,Cnear] //lấy Cnear hàng xóm đầu tiên
isFirstTimeJointNetwork = false;
51
Else{
If (num_of_nbr = Cnear) { replace_node_method; } else If (num_of_nbr < Cnear -1) { add_node_method;
} else If (num_of_nbr > Cnear +2) { delete_node_method;
} }
Ở phần tiếp theo ta sẽ thực hiện đo đạc đánh giá hiệu năng của giải thuật kết hợp so với giải thuật gốc để so sánh các kết quả đạt đƣợc.
Chƣơng 4. MÔ PHỎNG VÀ ĐÁNH GIÁ HIỆU NĂNG
4.1. Phƣơng thức mô phỏng
Tiến hành cài đặt giải thuật thế giới nhỏ, và giải thuật kết hợp trên IgridMedia. Và thực hiện mô phỏng trong điều kiện có 1 kênh truyền (chia sẻ một file duy nhất) và các tham số về độ trễ của mạng đƣợc xây dựng ngẫu nhiên theo độ trễ của các kết nối trên Internet.
Để thực hiện mô phỏng ta thực hiện theo các bƣớc sau:
Bƣớc 1: Thiết lập các tham số mô phỏng
Các tham số chính liên quan đến quá trình mô phỏng:
File: MeridianMatrix-UT – Chứa các thông tin về độ trễ giữa các nút trong mạng, đơn vị tính theo mili giây.
File: conf.xml Chứa các thông tin chính cho việc thực hiện mô phỏng. Nội dung các thông tin phục vụ cho mô phỏng.
<STRM_RATE> 300000 </STRM_RATE> <!-- bit/sec --> <STRM_PACK_SIZE> 1250 </STRM_PACK_SIZE> <!-- bytes -->
52
<BUF_MAP_WIN_SIZE> 9 </BUF_MAP_WIN_SIZE> <!-- sec -->
<FIND_NEW_MEMBER_DELAY_MIN> 500 </FIND_NEW_MEMBER_DELAY_MIN> <!-- msec --> <FIND_NEW_MEMBER_DELAY_MAX> 4000 </FIND_NEW_MEMBER_DELAY_MAX> <!-- msec --> <NBR_CNT> 20 </NBR_CNT>
<EXCHG_BUF_SIZE> 20 </EXCHG_BUF_SIZE>
<QUALITY_MONITOR_CYCLE> 10000 </QUALITY_MONITOR_CYCLE> <!-- msec -->
<SND_BUF_MAP_INTERVAL> 1000 </SND_BUF_MAP_INTERVAL> <!-- msec -->
<SND_REQUEST_PACK_INTERVAL> 500 </SND_REQUEST_PACK_INTERVAL> <!-- msec -->
<STATISTIC_TRAFFIC_RATE_CYCLE> 5000 </STATISTIC_TRAFFIC_RATE_CYCLE> <!-- msec -->
<NBR_USAGE_THRESHOLD_FOR_ELIMINATING>.05</NBR_USAGE_THRESHOLD_FOR_ELIMINATIN> <ELIMINATING_PROB> 0.5 </ELIMINATING_PROB>
<NODE_CNT> 1024 </NODE_CNT> <SRC_NODE_ID> 0 </SRC_NODE_ID>
<SYNC_UNIT_AND_MIN_DELAY> 1 </SYNC_UNIT_AND_MIN_DELAY> <!-- msec -->
<MAX_SIM_DURATION> 300000 </MAX_SIM_DURATION> <!-- msec -->
<PROGRESS_INTERVAL> 10000 </PROGRESS_INTERVAL> <!-- msec -->
<GLOBAL_MONITOR_INTERVAL> 10000 </GLOBAL_MONITOR_INTERVAL> <!-- msec -->
<IP_HEADER_SIZE> 20 </IP_HEADER_SIZE> <TCP_HEADER_SIZE> 20 </TCP_HEADER_SIZE> <PACK_HEADER_SIZE> 8 </PACK_HEADER_SIZE> <SEQ_NUM_SIZE> 2 </SEQ_NUM_SIZE>
<SUB_STRM_CNT> 15 </SUB_STRM_CNT>
<PUSH_CYCLE_TIMES> 6 </PUSH_CYCLE_TIMES> <!-- times of SUB_STRM_CNT, at least 2 times --> <MAX_LAG_SEQ_CNT> 50 </MAX_LAG_SEQ_CNT>
<MAX_SENDING_QUEUE_LEN> 40 </MAX_SENDING_QUEUE_LEN>
<MAX_DELAY_FOR_STAT> 40000 </MAX_DELAY_FOR_STAT> <!-- msec --> <CDF_ZONE_CNT> 42 </CDF_ZONE_CNT>
53
<PLAYBACK_QUALITY> 0.99 </PLAYBACK_QUALITY>
<QUALITY_SAMPLE_INTERVAL> 250 </QUALITY_SAMPLE_INTERVAL> <!-- msec -->
<DETAIL_QUALITY_STAT_INTERVAL> 1000 </DETAIL_QUALITY_STAT_INTERVAL> <!-- msec -->
<NO_BUF_MAP_QUALITY_THRESHOLD> 0.98 </NO_BUF_MAP_QUALITY_THRESHOLD>
<NODE_TYPE_NUM> 4 </NODE_TYPE_NUM>
<SRC_NODE_OUTBOUND_BW> 600000 </SRC_NODE_OUTBOUND_BW> <!-- bit/sec --> <OUTBOUND_BWS> 5000000, 1000000, 384000, 128000 </OUTBOUND_BWS> <!-- bit/sec --> <INBOUND_BWS> 10000000, 3000000, 1500000, 768000 </INBOUND_BWS> <!-- bit/sec --> <NODE_FRACTIONS> 0, 0.15, 0.39, 0.46 </NODE_FRACTIONS>
<E2E_BW_MIN> 50000 </E2E_BW_MIN> <!-- bit/sec --> <E2E_BW_MAX> 2000000 </E2E_BW_MAX> <!-- bit/sec -->
<USER_ARRIVAL_RATE> 10 </USER_ARRIVAL_RATE> <!-- users/sec -->