Cây khung trong mạng đa phát [2] đƣợc định nghĩa nhƣ sau: Xét đồ thị vô hƣớng G=(V,E), gọi V' là tập con của V trong G. Gọi cây khung con bao trùm tất cả các nút của V' trong G là cây khung không đầy đủ hoặc cây khung đa phát (Spanning Tree for Multicast - STM). Lúc đó tập hợp các nút trong V' gọi là nhóm đa phát, nút v thuộc V’ gọi là nút đa phát.
Tƣ tƣởng của giải pháp cây khung đa phát là sẽ không cố gắng xây dựng cây khung bao trùm tất cả các nút mà chỉ cố gắng xây dựng cây khung bao trùm tất cả các nút thuộc nhóm đa phát V’. Trong cây khung này, đƣờng nối giữa các nút thuộc nhóm đa phát là đƣờng nối ngắn nhất có thể đƣợc. Nói cách khác, giải pháp cây khung đa phát là giải pháp kết hợp giữa giải thuật cây khung nhỏ nhất và giải thuật cây đƣờng đi ngắn nhất Dijkstra (Dijkstra Shortest Path). Trong hệ thống tính toán phân tán, tƣ tƣởng của giải thuật bảo trì cây khung trong mạng tĩnh và thuật toán phân tán có tính đáp ứng cây đƣờng đi ngắn nhất Dijkstra (Adaptive Distributed Shortest Path - ADSP[17]) đƣợc kế thừa. Trong các mạng
động nói chung và mạng MANET nói riêng, giải pháp cây khung đa phát áp dụng tƣ tƣởng của giải thuật OMST.
Để trình bày chi tiết hơn về giải thuật STM, ta định nghĩa lại một số thuật ngữ đã dùng trong các chƣơng trƣớc để phù hợp với ngữ cảnh đa phát:
- Mảnh STM: Là một cây con thuộc cây khung STM. Ban đầu mỗi mảnh STM là một nút thuộc nhóm đa phát V’, các mảnh này sẽ kết hợp lại với nhau để tạo thành cây khung STM.
- Liên kết ngoài đơn: Là liên kết ngoài từ 1 nút đến nút hàng xóm của nó.
- Liên kết ngoài đƣờng dẫn: Nếu đƣờng dẫn nối từ một nút trong cây mảnh STM hiện tại đến một nút ngoài không thuộc mảnh STM qua một liên kết ngoài đơn bất kì (các liên kết còn lại của đuờng dẫn này đều thuộc mảnh STM).
- Liên kết ngoài đƣờng dẫn nhỏ nhất: là liên kết ngoài đƣờng dẫn có tổng chi phí nối 2 nút của liên kết là nhỏ nhất (liên kết này có thể bao gồm nhiều liên kết đơn khác).
- Liên kết đa phát: Là liên kết ngoài đơn hoặc liên kết ngoài đƣờng dẫn mà ít nhất một trong 2 đầu của liên kết là một nút thuộc nhóm đa phát.
- Gốc của mảnh: là nút trong mảnh đƣợc lấy làm gốc, định danh nút này đƣợc lấy làm định danh của mảnh.
- Đƣờng dẫn nhỏ nhất: là đƣờng nối có tổng chi phí nhỏ nhất nối 2 nút thuộc V’ (có thể đƣờng dẫn này đi qua 1 hoặc nhiều nút khác không thuộc V’).
Với khái niệm liên kết có sự khác biệt so với giải thuật OMST gốc, do đó khác với giải thuật OMST, giải thuật STM không chỉ bao gồm quá trình kết hợp (giữa 2 mảnh với nhau) thông qua liên kết đa phát mà có cả quá trình mở rộng (là quá trình kết hợp giữa một mảnh MST mà một nút không thuộc V’). Tƣ tƣởng chính của STM là sẽ mở rộng mảnh theo đƣờng dẫn nhỏ nhất (thuật toán ADSP[12]) cho đến khi nào gặp một mảnh khác thì kết hợp với mảnh đấy. Sau khi kết hợp, quá trình lại tiếp tục đƣợc lặp lại. Tại mỗi lần lặp, mảnh STM sẽ chọn ra 1 nút ngoài tối thiểu để kết hợp. Nút ngoài tối thiểu đƣợc định nghĩa là nút có liên kết ngoài đơn hoặc nút có liên kết ngoài đƣờng dẫn nhỏ nhất đến nút đang thực hiện tìm kiếm.
Mỗi nút v trong mạng sẽ lƣu trữ danh sách các nút hàng xóm (NB_List) cùng với loại liên kết đến các nút đó. Có 3 loại liên kết:
- Mesh_Link: là liên kết ngoài, nếu liên kết từ v đến i là Mesh_Link thì i không thuộc cùng cây STM với v.
- Tree_Link: là liên kết đƣợc tạo thành do quá trình mở rộng mảnh.
- Data_Link: là liên kết đƣợc tạo thành do quá trình kết hợp mảnh (thông qua liên kết đa phát).
Có thể thấy điểm khác nhau cơ bản giữa Tree_Link và Data_Link là: từ bất kì một nút nào thuộc V’ đi theo liên kết Data_Link sẽ đến một nútkhác cũng thuộc V’, còn Tree_Link thì không. Các liên kết thuộc đƣờng dẫn nhỏ nhất nối 2 nút thuộc nhóm đa phát luôn là Data_Link. Nói cách khác, Data_Link là liên kết giữa các nút thuộc nhóm đa phát, dữ liệu sẽ đƣợc truyền qua các nút này. Còn liên kết Tree_Link là liên kết với các router trung gian, dữ liệu sẽ không truyền qua nút đó, mà chỉ có các gói tin điều khiển để mở rộng hoặc kết hợp mảnh đƣợc gửi qua. Liên kết Tree_Link sẽ trở thành liên kết Data_Link nếu nhƣ quá trình mở rộng mảnh chạm đến một mảnh STM khác.
Ngoài danh sách các nút hàng xóm, mỗi nút còn lƣu trữ danh sách các nút thuộc cây khung hiện tại của mình (Tree_List), theo kết quả của chƣơng 3. Các nút thuộc danh sách này sẽ không là ứng viên tìm kiếm nút ngoài tối thiểu. Ban đầu, danh sách các nút hàng xóm NB_List và danh sách Tree_List chỉ bao gồm chính nút hiện tại.