2.3.4 Thông điệp Join/Prune
Các phần trƣớc đây chúng ta đã nhắc đến thông điệp PIM Join và PIM Prune nhƣ hai thông thông điệp khác nhau với mục đích làm sáng tỏ quá trình
tham gia hay cắt bỏ nhánh. Tuy nhiên thức tế PIM chỉ sử dụng một thông điệp đơn Join/Prune cho cả hai chức năng. Mỗi thông điệp Join/Prune chứa cả hai danh sách Join và Prune và một trong hai danh sách đó có thể rỗng. Các thực thể Join và Prune trong thông điệp Join/Prune có cùng một định dạng chung, bao gồm các thông tin nhƣ sau:
Địa chỉ nguồn multicast: địa chỉ IP của nguồn multicast để thực hiện quá trình Join hay Prune, nếu cờ Wildcard đƣợc bật thì trƣờng này chứa địa chỉ của router RP.
Địa chỉ nhóm multicast: địa chỉ nhóm multicast để thực hiện quá trình Join hay Prune.
Cờ Wildcard (WC bit): chỉ ra rằng thực thể là một thông điệp (*, G) Join/Prune.
Cờ RP Tree (RP bit): thông điệp Join/Prune là thích hợp và cần đƣợc gửi lên cây chia sẻ.
2.3.5 Đăng ký nguồn dữ liệu
Trong cây chia sẻ PIM-SM chúng ta đã biết cách router gửi thông điệp (*, G) tới cây chia sẻ cho nhóm multicast G. Tuy nhiên PIM-SM sử dụng cây chia sẻ một chiều nên dữ liệu multicast chỉ có thể đi theo chiều từ gốc cây xuống các nhánh. Vì thế nguồn dữ liệu cần phải có một cách khác để gửi dữ liệu của nó tới router RP. Tuy nhiên trƣớc tiên router RP cần phải đƣợc thông báo về nguồn đang tồn tại. Để làm điều này PIM-SM sử dụng thông điệp PIM Register và Register-Stop để thực hiện quá trình đăng ký nguồn dữ liệu. Quá trình này sẽ thông báo với router RP một nguồn đang hoạt động trên mạng và phân phối các gói tin multicast đầu tiên tới RP để tiếp tục đƣợc gửi xuống các nhánh cây.
2.3.5.1 Thông điệp PIM Register
Thông điệp PIM Register đƣợc gửi từ router DR kết nối với nguồn dữ liệu tới router RP, với hai mục đích là:
Báo cho router RP biết rằng S là nguồn hoạt động và đang gửi dữ liệu tới nhóm G.
Gửi các gói tin multicast đầu tiên từ S (các gói tin đƣợc đóng gói trong một thông điệp PIM Register) tới RP để gửi xuống cây chia sẻ tới máy nhận. Vì thế khi một nguồn multicast bắt đầu gửi dữ liệu, router DR nhận gói tin multicast từ nguồn và tạo một thực thể trạng thái (S, G) trong bảng định tuyến multicast. Tiếp đó router DR đóng gói mỗi gói tin multicast trong các thông điệp PIM Register riêng rẽ và gửi tới router RP. Khi router RP nhận một thông điệp PIM Register, đầu tiên nó sẽ mở gói thông điệp và nhận đƣợc gói tin multicast trong đó. Nếu gói tin là của một nhóm multicast có các máy nhận RP gửi gói tin xuống các nhánh cây phù hợp. Sau đó router RP tham gia vào cây đƣờng đi ngắn nhất của nguồn S và có thể nhận dữ liệu trực tiếp từ nguồn mà không cần nhận thông qua thông điệp PIM Register nữa. Nếu nhƣ gói tin multicast trong thông điệp PIM Register không có máy nào yêu cầu nhận (lúc đó danh sách cổng ra cho trạng thái (S, G) là rỗng) thì router RP sẽ loại bỏ thông điệp multicast và không gửi thông điệp Join trở lại nguồn.
2.3.5.2 Thông điệp PIM Register – Stop
Router RP sử dụng thông điệp PIM Register-Stop để thông báo với router DR ngừng việc gửi các thông điệp PIM Register khi thỏa mãn một trong hai điều kiện sau:
Khi router RP bắt đầu nhận dữ liệu multicast từ nguồn thông qua cây (S, G) SPT giữa nguồn và RP.
Khi router RP không cần nhận dữ liệu nữa vì trên nó không còn tồn tại các máy yêu cầu nhận dữ liệu multicast.
Khi router DR nhận thông điệp Register-Stop nó biết router RP không cần nhận dữ liệu nữa vì thế nó ngừng việc đóng gói và gửi các thông điệp Register.
2.3.6 Chuyển từ cây chia sẻ sang cây đƣờng đi ngắn nhất
PIM-SM hỗ trợ khả năng cho phép router DR ở chặng cuối (là router kết nối trực tiếp với các máy nhận dữ liệu) có thể chuyển từ cây chia sẻ sang cây SPT cho một nguồn multicast. Điều này đƣợc thực hiện tự động thông qua việc đặt ra một ngƣỡng SPT-Threshold của băng thông mạng, khi giá trị băng thông đạt ngƣỡng router DR sẽ tham gia vào cây SPT.
Xét mạng có hai nguồn và hai máy nhận nhƣ trên hình 2.30, bởi vì router C là router DR chặng cuối nó có một lựa chọn để chuyển sang cây SPT cho nguồn S1 và S2. Để làm đó router C gửi thông điệp (S1, G) Join tới nguồn G nhƣ đƣợc thể hiện bằng mũi tên đứt nét trên hình 2.30.