Chƣơng 3 GIẢI PHÁP XÂY DỰNG MẠNG THẾ GIỚI NHỎ
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
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á:
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ế.