.3 Quá trình 1 nút gia nhập vào nhóm

Một phần của tài liệu xây dựng ứng dụng luồng video streaming qua mạng ngang hàng (Trang 58 - 59)

Nút B có nodeId là 0111 muốn tham gia vào nhóm có A là gốc, nó sẽ gửi gói tin route (JOIN,x) với x là groupId của nhóm này, giao thức Pastry sẽ định tuyến gói tin tới nút D có nodeId là 1001. Nhưng nút D không phải là một thành phần của nhóm này cho nên D sẽ tạo ra một children table của nó và thêm vào đó mục (122.45.1.23 ; 0111). Tiế theo D sẽ gửi gói tin yêu cầu tham gia vào nhóm có gốc A : route (JOIN ,x). Tiếp tục giao thức Pastry lại định tuyến nó tới nút E và E cũng khơng phải thành viên của nhóm này. Vì thế E cũng tạo ra một children table của nó và thêm mục (172.16.2.13; 1001). Và sau đó E gửi gói tin route (JOIN,x). Gói tin này tiếp tục được định tuyến và tới A vì A là một thành phần của nhóm cho nên ở đây A sẽ thêm mục

Lê Ngọc Anh – D09VT2 59

(10.10.1.123;1101) vào children table của nó. Kết quả là ta sẽ có thêm 3 thành phần mới của nhóm là B, D và E.

3.2.3 Quá tr nh rời nhóm (leave group)

Khi một nút nào đó muốn rời khỏi nhóm thì nó sẽ ghi một cách cục bộ rằng nó đã rời khỏi nhóm (tức là chỉ một mình nó biết là nó đã rời khỏi mạng). Sau đó nếu bảng children table của nút này là rỗng (tức là nó khơng có con trong cây multicast) thì nó sẽ gửi thơng điệp LEAVE tới cha của nó trong cây multicast. Thông điệp này sẽ được đệ quy trong cây multicast cho tới khi nó tới một nút mà nút có con đã rời khỏi như trong trường hợp nó khơng có con nào cả. Sau đó các con của nó sẽ xem như nó bị lỗi và thực thi theo cơ chế sửa lỗi (sẽ trình bày ở dưới).

Với cách gia nhập và rời khỏi nhóm như thế này và với đặc tính phân phối ngẫu nhiên của Pastry thì cây multicast sẽ được xây dựng một cách đồng đều theo nghĩa là không một nút nào trong cây mutlicast, ngay cả nút gốc phải chịu quá nhiều kết nối tới các nút khác. Việc này giúp cho Scribe có khả năng mở rộng về kích thước cũng mhư về khả năng, tức là cả khi tăng số lượng nút trong nhóm hay tăng các gói tin multicast gửi đến mạng thì Scribe vẫn có thể đảm đương được.

3.2.4 Truyền tin multicast tới mạng

Khi một nút nào đó muốn truyền multicast tới các điểm trong một nhóm nào đó thì nó sẽ gửi thông điệp multicast tới “điểm gặp” (route (MULTICAST,rootId). Sau khi điểm gặp nhận được thơng điệp này nó sẽ gửi trả lại nút kia IP của nó (rootIP), sau đó nút này sẽ truyền thơng tin muốn gửi tới điểm gặp. Điểm gặp này sẽ sao chép gói tin multicast này và gửi cho các con của nó trong cây multicast ( nếu có ). Các điểm con này khi nhận được dữ liệu cũng lại tiếp tục sao chép dữ liệu đó và gửi tới các con của nó trong cây ( nếu có ). Cứ lặp đi lặp lại như vậy và chỉ dừng lại việc này khi dữ liệu tới các nút là nút lá của cây.

Một phần của tài liệu xây dựng ứng dụng luồng video streaming qua mạng ngang hàng (Trang 58 - 59)

Tải bản đầy đủ (PDF)

(66 trang)