Mở đầu – Giới thiệu và mô tả về các phương pháp truyền thông multicast cũng như cở sở và mục đích nghiên cứu của luận văn. Chương 2: Tổng quan các giao thức multicast lớp ứng dụng – Trình bầy phân loại và tổng quan 17 giao thức multicast lớp ứng dụng, đánh giá khả năng mềm dẻo và hiệu quả của các giao thức. Chương 3: Trình bầy về định tuyến multicast mạng và phân phối băng thông trong các mạng overlay. Trong chương này, chúng ta trình bầy một số thuật toán định tuyến multicast điển hình cho mạng overlay và tập trung vào việc tối ưu băng thông giao diện tại các nút dịch vụ multicast.
Chương 4: Trình bầy một hướng ứng dụng multicast lớp ứng dụng trong truyền video theo yêu cầu (VoD). Phần kết luận nêu kết quả đạt được, ứng dụng của luận văn đồng thời đưa ra hướng nghiên cứu tương lai của tác giả. Luận văn cao học ĐTVT 2004 – 2006 Nguyễn Thị Thu Hà - 20 - CHƯƠNG 2: TỔNG QUAN CÁC GIAO THỨC MULTICAST LỚP ỨNG DỤNG Multicast ở lớp ứng dụng (AL) với các đặc tính như: thành viên nhóm (membership), lặp gói tin và định tuyến multicast được thực hiện ở các máy chủ kết cuối (end-host) chứ không phải là tại các bộ định tuyến mạng (network router). Máy chủ kết cuối thường không sẵn có thông tin định tuyến cho bộ định tuyến, thay vào đó chúng dựa vào các bản tin đo đạc end-to-end để nhận định mạng và dựa vào đó để xây dựng cây phân phối multicast giữa các máy chủ kết cuối.
Tất cả các giao thức multicast lớp ứng dụng tổ chức các thành viên nhóm thành hai loại kiến trúc liên mạng (topology): topo điều khiển (control topology) và topo dữ liệu (data topology). Các thành viên ngang hàng nhau trong topo điều khiển thì trao đổi định kỳ các bản tin làm mới (refresh message) đề nhận dạng và kiểm soát lại sự rời nhóm (mà không thông báo) của thành viên nhóm. Topo dữ liệu thường là một tập con của topo điều khiển và có chức năng xác định đường đi để một gói tin multicast được truyền đi trong mạng overlay. Trong thực tế, topo dữ liệu có cấu trúc dạng cây còn topo điều khiển là để đảm bảo sự kết nối chặt chẽ giữa các thành viên với nhau.
Với ý nghĩa như vậy, topo điều khiển được gọi là lưới (mesh) còn topo dữ liệu được gọi là một cây (tree). Các phương pháp multicast lớp ứng dụng được phân loại theo nhiều cách khác nhau. Một tiêu chí đó là dựa trên nút mạng overlay được lựa chọn như thế nào. Theo tiêu chí này, hai giao thức có thể được phân loại thành: cách tiếp cận với các nút (node) cố định và cách tiếp cận với các nút động.
Trong cách tiếp cận với nút cố định, các nút tạo thành cây multicast và được đặt một cách chiến lược trên mạng Internet tổng thể. Ưu điểm của cách này là do sử dụng các nút cố định nên cây multicast hoạt động ổn định. Tuy nhiên dịch vụ multicast sẽ Luận văn cao học ĐTVT 2004 – 2006 Nguyễn Thị Thu Hà - 21 - không linh động và vẫn cần sự hỗ trợ từ phía nhà cung cấp dịch vụ Internet (Internet Service Provider - ISP). Ngoài ra, những nút cố định này có thể tạo thành hiện tượng nút cổ chai (bottleneck).
Trong khi đó với cách tiếp cận dựa trên nút động, các thành viên của nhóm tự tổ chức thành một cây multicast và tự cải tiến một cách định kỳ. Một tiêu chí phân loại khác nữa đó là dựa vào thuật toán xây dựng mạng overlay là tập trung (centralized) hay phân tập (distributed). Phần dưới đây chúng ta đề cập cách tiếp cận phân loại các giao thức multicast lớp AL dựa trên kiểu topo được tạo thành để truyền thông giữa các máy chủ kết cuối (end-host). Theo tiêu chí này, chúng ta có thể phân thành 4 loại chính: kiểu lưới (mesh based), kiểu cây (tree based), kiểu multicast ở lớp trên cùng của mạng overlay có cấu trúc ngang hàng (peer-to-peer), và kiểu multicast phân cấp.
Phần dưới sẽ trình bầy chi tiết từng loại. Multicast theo lưới (mesh-based) Trong cách tiếp cận kiểu lưới, các nhóm nút trước tiên tự tổ chức thành một mạng lưới (messh topology) sao cho mỗi cặp nút có nhiều đường đi đến nhau. Tiếp theo, tạo cây với nút gốc là nút bất kỳ bằng cách chạy một vài cơ chế định tuyến multicast phổ biến như DVMRP[9]. Chúng ta sẽ đi vào mô tả chi tiết Narada [10], giao thức điển hình nhất của phân loại này và Scattercast [11].
Narada [10] Mỗi thành viên trong nhóm hay mỗi nút trong mạng lưới giữ cho mình danh sách về trạng thái của tất cả các thành viên khác trong nhóm. Một thành viên mới muốn gia nhập vào một nhóm nào đó thì trước hết cần có được danh sách các thành viên hiện thời của nhóm. Nó sẽ nhận danh sách này từ nút được ấn định như điểm “gặp gỡ” (Rendezvous point) với sự trợ giúp của giao thức BOOTP ( BOOTP là một giao thức Internet có thể cung cấp thông tin cấu hình mạng cho các trạm làm việc không có đĩa cứng hay các trạm làm việc khác nếu Luận văn cao học ĐTVT 2004 – 2006 Nguyễn Thị Thu Hà - 22 - cần thiết trong mạng cục bộ. Khi một trạm làm việc khởi động, nó gởi thông điệp BOOTP lên mạng.
Một máy dịch vụ BOOTP nhận thông điệp này, lấy thông tin cấu hình cho máy tính được thiết kế đó, và gởi lại nó cho máy t ính. Lưu ý là hệ thống khởi động không có địa chỉ IP khi gởi thông điệp BOOTP). Thành viên chỉ gia nhập thành công khi nó nhận được bản tin chấp nhận từ ít nhất là một thành viên nút. Thành viên mới bắt đầu trao đổi các bản tin làm mới định kỳ với các nút lân cận (neighbor) trong lưới, cập nhật bảng thông tin của các nút này.
Thông tin này tiếp tục được lan rộng hơn cho đến khi tất cả các thành viên của nhóm đều nhận được. Nếu một thành viên muốn rời nhóm, nó sẽ gửi bản tin rời nhóm tới tất cả các thành viên khác lân cận nó và dần dần gửi tới toàn nhóm. Cây phân phối dữ liệu multicast của giao thức Narada là kiểu cây mà bất kỳ nút nào cũng được xem như là nút gốc (source-based). Cây phân phối này được tính toán bởi các nút của mạng lưới bằng giao thức véctơ khoảng cách khác thay đổi.
Cây này được hình thành từ những đường đi ngắn nhất (shortest path) của từng nút nhận với nút nguồn (giao thức DVMRP[9]). Cây dữ liệu dạng này được minh hoạ như ở Hình 2.1: Giao thức Narada [10] Một trong những mục tiêu thiết kế chính của giao thức Narada này là tính bền vững (robustness). Trong trường hợp lỗi, ví dụ nút 2, khi đó nút 1,3,7 sẽ truy vấn nút 2 do chúng không nhận được bất kỳ bản làm mới nào nào từ nút này. Khi không có tín hiệu trả lời, nút 2 được xem như “đã chết” và các nút còn lại trong mạng lưới sẽ nhanh chóng được thông báo thông tin này.
Hậu quả sẽ Luận văn cao học ĐTVT 2004 – 2006 Nguyễn Thị Thu Hà - 23 - nghiêm trọng hơn khi nút 3 và 7 cùng bị lỗi, như chỉ ra ở hình 2. Các nút khác sẽ phát hiện ra sự chia cắt này bằng việc không thấy sự cập nhật thông tin từ hai nút 3 và 7 đến các thành viên khác. Mỗi thành viên sẽ giữ danh sách các nút thành viên mà nó không nhận được thông tin gì. Mỗi thực thể trong danh sách sẽ được duy trì trong danh sách đó một khoảng thời gian nhất định.
Một cách định kỳ và với khả năng chắc chắn, mỗi nút mà đã phát hiện ra sự phân cách sẽ lựa chọn và thăm dò một trong số các nút có trong danh sách. Nếu nó nhận được hồi đáp nó sẽ cố gắng tạo thêm đường liên kết tới nút đó và sửa chữa lại sự phân cách. Nếu không như thế, nút được thăm dò sẽ coi như đã chết. Giá trị của khả năng này phải được lựa chọn một cách cẩn thận để sao cho ngay cả khi có một số nút thành viên cùng cố gắng sửa chữa lại sự phân cách đồng thời thì cũng chỉ một số lượng nhỏ đường liên kết mới được tạo thêm.
Do một vài nguyên nhân, mạng lưới xây dựng có thể không tối ưu: (1) sự lựa chọn các nút lân cận ban đầu là ngẫu nhiên, (2) các đường liên kết được tạo ra trong quá trình sửa chữa sự phân cách chỉ cần thiết nhất thời nhưng sau đó trở nên không cần thiết, (3) quá trình tham gia/ rời bỏ mạng là động, (4) các trạng thái động của mạng hạ tầng. Do các đường dẫn dữ liệu trong giao thức Narada là các cây bao trùm (spanning tree – Giải thuật cây bao trùm. Được dùng trong các môi trường liên mạng để dò tìm và tách các mẫu giao thông bằng cách vô hiệu hóa một số liên kết cụ thể. Giao thức IEEE 801.2-D STP (spanning tree protocol) ngăn cấm vòng lặp trong các cầu dự phòng bằng cách dự phòng cầu thứ cấp.
Nếu cầu đầu tiên bị tắt, cầu thứ cấp sẽ thay thế) của mạng lưới. Do đó, Narada cho phép sự chọn lọc định kỳ mạng lưới bằng việc thêm hoặc ngắt một số kết nối. Từng nút ước lượng giá trị và tính hữu dụng của các đường liên kết hiện có một cách định kỳ cũng như ước lượng giá trị và tính hữu dụng từ một đường liên kết tới một nút khác bất kỳ mà không phải là nút lân cận. Trong ví dụ minh hoả ở hình 2.1(c), nút 9 muốn gia nhập hệ thống, nó chọn ngẫu nhiên 2 nút để tạo kết nối (ví dụ nút 1 và nút 8), trong hình vẽ này liên kết giữa nút 6 và nút 8 được thiết lập để giảm số lượng các bước truyền Luận văn cao học ĐTVT 2004 – 2006 Nguyễn Thị Thu Hà - 24 - (hop) khi nút 9 muốn giao tiếp với nút 6 và đây là đường liên kết hữu ích, còn liên kết không hữu ích giữa 1 và 8 có thể được ngắt ra khỏi mạng lưới.
Các proxy này (SCXs) sử dụng một giao thức gọi là Gossamer để tự tổ chức phân tập thành một cấu trúc lưới. Mỗi phiên multicast sẽ tạo ra một mạng lưới mới. Các nút mong muốn gia nhập, trước tiên phải bắt tay với một cụm dịch vụ (services cluster) gần nhất và gửi yêu cầu tới một SCX. Cụm này sẽ thiết lập một SCX (nếu chưa có) và thông báo địa chỉ IP của mình tới nút mới.
Ngoài ra, nó sẽ gửi địa chỉ multicast cục bộ cốt để các thành viên mới có thể thông tin với một SCX khác thông qua địa chỉ unicast hoặc multicast cục bộ nếu có thể.