Chương 2 CÔNG NGHỆ IPTV TRÊN MẠNG xDSL
3.2. Lựa chọn giao thức mạng
3.2.1. Giao thức cho dịch vụ multicast
3.2.1.1. Giao thức IGMP
Giao thức IGMP phát triển từ giao thức Host Membership Protocol, được mô tả trong tài liệu của Deering. Giao thức IGMP có ba phiên bản verion 1, verion 2,và verion 3. IGMP phát triển từ IGMPv1 (RFC1112) đến IGMPv2 (RFC2236) và đến phiên bản cuối cùng IGMPv3 (RFC3376). Các thông điệp IGMP được gửi bên trong gói tin IP với trường protocol number bằng 2, trong đó trường TTL có giá trị bằng 1. Các gói IGMP chỉ được truyền trong LAN và không được tiếp tục chuyển sang LAN khác do giá trị TTL của nó.
Hai mục đích quan trọng nhất của IGMP là:
- Thông báo cho router multicast rằng có một máy muốn nhận multicast traffic của một nhóm cụ thể.
- Thông báo cho router rằng một có một máy muốn rời một nhóm multicast (nói cách khác, có một máy không còn quan tâm đến việc nhận multicast traffic nữa). Các router thường dùng IGMP để duy trì thông tin cho từng cổng của router là những nhóm multicast nào router cần phải chuyển và những host nào muốn nhận.
Trước khi một host có thể nhận bất kỳ một multicast traffic nào, một ứng dụng multicast phải được cài đặt và chạy trên host đó. Sau khi một host tham gia vào một nhóm, phần mềm sẽ tính toán địa chỉ multicast và sau đó card mạng sẽ bắt đầu lắng nghe địa chỉ multicast MAC. Trước khi một host hoặc một người dùng muốn tham gia vào một nhóm, người dùng cần phải biết nhóm nào đang tồn tại và làm thế nào để tham gia vào nhóm đó. Đối với các ứng dụng mức doanh nghiệp, người dùng chỉ cần đơn giản nhấp vào một link trên một trang web hoặc địa chỉ multicast có thể cấu hình trước trên client. Ví dụ, một người dùng có thể được yêu cầu để log vào một máy chủ và xác thực bằng tên và người dùng. Nếu tên người dùng được xác thực, ứng dụng multicast sẽ tự động cài trên PC của người dùng, nghĩa là người dùng đã tham gia vào nhóm multicast. Khi người dùng không còn muốn dùng ứng dụng multicast nữa, người dùng phải rời khỏi nhóm. Ví dụ, người dùng đơn giản chỉ cần đóng ứng dụng multicast để rời khỏi nhóm. Đối với cơ chế multicast, một người dùng cần phải tìm ra ứng dụng nào họ muốn chạy, địa chỉ multicast được dùng bởi ứng dụng.
Làm thế nào một router biết được các máy cần nghe multicast traffic? Để nhận multicast traffic từ một nguồn, cả nguồn và các máy nhận đầu tiên phải gia nhập (join) vào một nhóm multicast. Nhóm này được xác định thông qua địa chỉ multicast. Một host có thể tham gia vào một nhóm multicast bằng cách gửi các yêu cầu đến router gần nhất. Tác vụ này được thực hiện thông qua giao thức IGMP. IGMPv1 được định nghĩa trong RFC1112 và bản cải tiến của nó, IGMPv2 được định nghĩa trong RFC2236. Khi có vài host muốn tham gia vào nhóm, giao thức PIM sẽ thông báo cho nhau giữa các router và hình thành nên cây multicast giữa các routers. IGMP và ICMP có nhiều điểm tương đồng, cùng chia sẽ một vài chức năng tương tự. IGMP cũng đóng gói trong gói tin IP (protocol number 2), nhưng IGMP giới hạn chỉ trong một kết nối lớp 2. Để đảm bảo router không bao giờ tiếp tục chuyển gói tin đi, trường TTL của IGMP luôn
có giá trị bằng 1.
3.2.1.2. Giao thức PIM
Giao thức PIM là giao thức xử lý gói tin multicast độc lập nhau. Hiện nay có ba loại PIM đang được sử dụng là: PIM-SM, PIM-DM, PIM-SSM
3.2.1.2.1. Giao thức PIM-SM
Giao thức định tuyến chế độ sparse được sử dụng khi có ít số lượng các ứng dụng multicast. Các giao thức PIM chế độ sparse không truyền lưu lượngcủa nhóm tới bất kỳ router nào trừ phi nó nhận được một thông điệp yêu cầu các bản sao của các gói tin được gửi tới một nhóm multicast đặc biệt.
Một router láng giềng yêu cầu các gói chỉ nhằm một trong hai mục đích:
- Router đã nhận được một yêu cầu nhận gói tin từ một vài router láng giềng -Một host trên một phân đoạn mạng đã gửi thông điệp IGMP join cho nhóm đó. PIM-SM hoạt động với một chiến lược khác hẳn với PIM-DM mặc dù cơ chế của giao thức không hoàn toàn đối lập. PIM-SM (Protocol Independent Multicast-Sparse Mode)giả sử rằng không có máy nào muốn nhận lưu lượng multicast cho đến khi nào các máy chủ động hỏi. Kết quả là, cho đến khi nào trong một subnet có một máy yêu cầu nhận multicast thì multicast mới được phân phối vào subnet đó. Với PIM-SM, các router downstream phải yêu cầu nhận multicast dùng thông điệp PIM Join. Khi các router nhận được các thông điệp này, các router bên dưới phải định kỳ gửi thông điệp Join lên router upstream. Nếu khác đi, router upstream sẽ không đưa lưu lượng xuống, đặt kết nối vào trong trạng thái prune. Tiến trình này thì ngược lại với tiến trình được dùng trong PIM-DM, trong đó mặc định là phát tán lưu lượng multicast với các router downstream cần phải liên tục gửi thông điệp Prune hay thông điệp làm mới trạng thái State refresh để giữ cho một kết nối là trong trạng thái prune. PIM- SM phù hợp khi chỉ có những tỉ lệ nhỏ các phân đoạn mạng nhận lưu lượng multicast.
3.2.1.2.2. Giao thức PIM-DM (Dense Mode)
Giao thức PIM-DM thường được sử dụng khi mà lưu lượng luồng multicast là rất lớn. PIM-DM luôn có một cổng trong trạng thái prune trong khoảng ba phút. Các thông điệp prune liệt kê một nguồn và nhóm. Đối với giao thức PIM-DM này thì bất cứ khi nào một router nhận được thông điệp prune nó sẽ tìm một hang (S, G) SPT trong bảng định tuyến multicast và đánh dấu các cổng trong đó thông điệp prune là nhận được. Tuy nhiên, các router cũng thiết lập giá trị prune timer, và thường thì mặc định là khoảng 3 phút, để sao cho trong khoảng 3 phút cổng này được đặt trong trạng thái forwarding. Để có thể khắc phục được những tình trạng như là các kết nối bị loại bỏ, liên kết bị loại bỏ và sau 3 phút thì các link tiếp tục hoạt động thì ở PIM-DM có cơ chế làm mới trạng thái stase refresh. Các thông điệp làm mới trạng thái đã khắc phục được sự yếu kém của PIM-DM trong tiến trình pruning.
Trong giao thức PIM-DM các router còn gửi thông điệp Graft để router nhận được đưa một cổng vào trạng thái forwarding cho một nhóm multicast nào đó.
Giao thức PIM-DM nhận biết các thiết bị láng giềng bằng cách trao đổi các gói “hello”. Thông tin láng giềng này được dùng trước để xây dựng cây đến tất cả các láng giềng. Sau đó, các nhánh của cây sẽ lần lượt được loại bỏ. Nếu một dòng multicast bắt đầu, cây sẽ được xây dựng, cây sẽ chỉ tồn tại khi các thành viên tích cực còn tồn tại. Nếu một host mới đăng ký tham gia nhóm, nhánh của phân đoạn mạng đó sẽ được đính thêm vào cây.
3.2.1.2.3. Giao thức PIM-SSM
Giao thức PIM-SSM là giao thức mở rộng của PIM. Khi sử dụng SSM thì một client có thể nhận luồng multicast trực tiếp từ địa chỉ nguồn. PIM- SSM sử dụng chức năng của PIM-SM để tạo ra một cây SPT giữa nguồn và đích nhận, tuy nhiên nó xây dựng SPT mà không cần sự giúp đỡ của router RP. Mặc định là nhóm địa chỉ multicast được giới hạn trong dải địa chỉ 232.0.0.0 tới 232.255.255.255. Tuy nhiên, chúng ta có thể mở rộng tầm hoạt động của SSM sang lớp dải lớp D bao gồm địa chỉ ở mức cao.
Việc cấu hình PIM-SSM có sự khác biệt so với cấu hình PIM-SM truyền thống. Ở đây ta không cần phải chia sẻ hay là RP mapping, hoặc là RP -to -RP nguồn lấy lại thông qua Multicast source discovery Protocol (MSDP).
Triển khai SSM là rất dễ dàng. Chúng ta chỉ cần cấu hình PIM-SM trên tất cả interface của router và chỉ định cái nào cần SSM, bao gồm một cách rõ ràng IGMPv3 trên Lan. Nếu PIM-SM không được cấu hình rõ ràng trên cả nguồn và nhóm thành viên interface thì gói tin multicast sẽ không được forwarded. Trên danh sách hỗ trợ IGMPv3 có sử dụng PIM-SSM. Như tại ở nguồn, trước khi active và bắt đầu gửi gói tin multicast thì quan tâm đến nơi nhân gói tin multicast đó là SSM. Trong việc cấu hình mạng theo PIM- SSM, một thuê bao tới một kênh SSM (sử dụng IGMPv3) sẽ thông báo với các thuê bao để join vào nhóm G và nguồn S. Kết nối trực tiếp với router PIM-SM, router được phân công nhận làm DR, nhận bản tin từ RPF láng giềng.
Source Receiver
Router 4
Router 3 Router 2 Router 1
IGMPv3 Host Report (S.G join) IGMPv3 IGMPv3 (S.G join)
Hình 3.15. Quá trình nhận và thông báo tới các thuê bao để vào group G và sourse S Giao thức PIM là giải pháp hỗ trợ truyền tín hiệu multicast. Khi mà số lượng các nhóm multicast cần phải truyền tăng lên thì PIM là một giải pháp quan trọng để quản lý và giám sát lưu lượng multicast.