mạng ngang hàng Chord
Ứng dụng truyền video được sử dụng trong khóa luận là ứng dụng truyền multicast theo phương thức multicast dựa trên nền mạng ngang hàng Chord. Ứng dụng gồm hai phần: phần máy chủ giành cho nguồn phát video và phần máy khách giành cho các node nhận.
Tất cả các node nguồn và node nhận đều là các node tham gia vào một mạng ngang hàng Chord. Trên mỗi node, cổng truyền và nhận gói tin điều khiển của giao thức Chord và cổng truyền/nhận gói tin video multicast là các cổng khác nhau. Việc truyền các gói tin
điều khiển của giao thức Chord được thực hiện trên nền giao thức giao vận UDP có bổ
sung các cơ chế truyền tin tin cậy, trong khi việc truyền các gói tin video multicast sử
dụng giao thức UDP đơn thuần, không có cơ chế truyền tin tin cậy.
Hình 19. Kiến trúc chương trình phía máy khách
Việc triển khai truyền video multicast sử dụng bảng finger của các node để định tuyến, tuy nhiên quá trình truyền hoàn toàn tách biệt với giao thức Chord.
Hình 18 và hình 19 thể hiện sự liên quan giữa chức năng truyền video multicast (xây dựng trong các lớp WebcamServer và WebcamClient) và giao thức Chord. Trong phần xây dựng giao thức Chord, lớp Node chứa các thuộc tính và phương thức của giao thức Chord, trong khi lớp MessageHandler có chức năng liên kết lớp Node với giao thức UDP tầng giao vận, đồng thời bổ sung cơ chế tin cậy cho giao thức UDP.
Ứng dụng phần giành cho máy chủ (nguồn phát video) có hai hàm chính: hàm
captureImage() được sử dụng để lấy hình ảnh video từ camera, và hàm
SendBroadcastImage() được sử dụng để gửi hình ảnh đã lấy cho các node tham gia
cây multicast.
Ở ứng dụng máy chủ, chức năng định tuyến sử dụng bảng finger phục vụ cho quá trình truyền multicast được tích hợp vào trong hàm SendBroadcastImage(), gửi hình ảnh đã nhận được tới tất cả các node có trong bảng finger, cũng như thông báo cho mỗi node biết khoảng multicast mà nó chịu trách nhiệm.
Ứng dụng phần giành cho máy khách (các node nhận video) gồm ba luồng chạy độc lập:
• ProcessPacket(): Xử lý các gói tin trong hàng đợi gói tin để xếp vào hàng đợi hình ảnh và thực hiện việc gọi hàm FowardPacket() để chuyển tiếp gói tin cho các node khác trong cây multicast.
• Show(): Biểu diễn các hình ảnh đã được xử lý ra màn hình của máy khách.
Ở ứng dụng phía máy khách, chức năng định tuyến multicast sử dụng bảng finger
được tích hợp vào trong hàm ForwardPacket(), gửi các gói tin hình ảnh đến cho các node thuộc bảng finger và nằm trong khoảng multicast mà nó quản lý, đồng thời gửi khoảng multicast của các node con cho các node này.