2. Giao thức multicast nội vùng IGMP Giao thức quản lý nhóm IGMP là cơ chế truyền thông giữa trạm con và router gắn trực tiếp với mạng đó. Router sử dụng IGMP để xác định có hay không có thành viên nhóm multicast trong mạng con. Nếu có thành viên nhóm, router sẽ tham gia vào nhóm multicast đó và chuyển tiếp dữ liệu multicast đến các trạm con trong nhóm. Phiên bản đầu tiên của IGMP được mô tả chi tiết trong RFC 1112, "Host Extensions for IP Multicasting". Phiên bản hiện hành là "Internet Group Management Protocol, Version 2" mô tả trong RFC 2236. 2.1 Internet Group Management Protocol, IGMP Version 1 RFC1112 quy định khoảng địa chỉ multicast cho các máy trạm từ 224.0.0.0 đến 239.255.255.255 và xác định cơ chế gửi và nhận dữ liệu multicast cho các máy trạm. Các trạm con sử dụng IGMP để thông báo việc tham gia vào nhóm multicast với router kết nối trực tiếp với nó. Ðịnh dạng thông điệp IGMP như hình sau. -Trường Version dài 4 bit mang giá trị 0x1 đối với IGMPv1. -Trường Type dài 4 bit xác định loại thông điệp truy vấn: .Type = 0x1 : thông điệp truy vấn thành viên Membership Query .Type = 0x2 : thông điệp báo cáo thành viên Membership Report -Trường Unused dài 8 bit không sử dụng nên mang giá trị 0x00. -Trường Checksum dài 16 bit dùng để kiểm tra lỗi header. -Trường Group Address dài 32 bit chứa địa chỉ nhóm multicast, mang giá trị 0.0.0.0 khi loại thông điệp là Membership Query, mang giá trị địa chỉ nhóm multicast khi loại thông điệp là Membership Report. Router gửi thông điệp Membership Query để xác định có trạm con nào là thành viên của nhóm multicast không (xem hình ). Khi có 1 trạm trả lời truy vấn, router sẽ tiếp tục gửi dữ liệu multicast cho nhóm đó trong mạng. Các thông điệp này được gửi đến địa chỉ nhóm tất cả các trạm con trong mạng (224.0.0.1) và có giá trị TTL là 1. Khi nhận thông điệp Membership Query, trạm con sẽ trả lời bằng cách gửi một hay nhiều thông điệp Membership Report (xem hình dưới). Mỗi thông điệp Membership Report chứa địa chỉ nhóm multicast mà trạm con đó là thành viên. Khi nhận được thông điệp Membership Query, trạm con sẽ thiết lập một giá trị thời gian ngẫn nhiên t= random(n), n =10 giây đối với IGMPv1. Khi hết thời gian này, trạm con tiến hành gửi thông điệp Membership Report để xác lập quan hệ. Khi trạm con đầu tiên gửi thông điệp Membership Report, các trạm con khác trên cùng đoạn mạng sẽ nhận được thông điệp này, bộ đếm thời gian bị loại bỏ và sẽ không gửi thông điệp Membership Report đi nữa. Như vậy, trên mỗi đoạn mạng chỉ có 1 thông điệp Membership Report được tạo ra cho mỗi truy vấn Membership Query (xem hình ). Hình : Router xác nhận quan hệ thành viên nhóm Trong hình trên, khi trạm con A, C, và D nhận thông điệp Membership Query từ router, mỗi trạm sử dụng bộ đếm thời gian để thiết lập khoảng thời gian ngẫu nhiên. Khi trạm đầu tiên hết hạn, giả sử là trạm A, khi đó A gửi thông điệp report, giá trị thời gian của trạm C và D giảm đi 1. Như vậy, trước khi thời gian ở trạm C và D hết hạn thì đã nhận thông điệp Host Membership Report gửi bởi trạm A. Bởi vì đây là thông điệp report của nhóm nên các trạm này không cần gửi lại thông điệp report. Cuối cùng, khi trạm con quyết định rời khỏi nhóm, nó sẽ lặng lẽ rời khỏi nhóm vì không có thông điệp rời nhóm trong IGMP version 1. Nếu trạm con là trạm cuối cùng rời khỏi nhóm, router sẽ không biết điều này cho đến khi nó không nhận được thông điệp hồi đáp định kỳ Membership Query. Hình : Trạm con xác nhận quan hệ thành viên nhóm 2.2 Internet Group Management Protocol, IGMP Version 2 2.2.1 Ðịnh dạng thông điệp IGMPv2 IGMP version 2 được mô tả chi tiết trong RFC 2236. Ðịnh dạng thông điệp IGMP version 2 như hình sau: Trường Type dài 8 bit, mỗi giá trị trường Type ứng với mỗi loại thông điệp: -Type = 0x11: Thông điệp truy cấn thành viên Membership Query -Type = 0x12: Thông điệp báo cáo thành viên Membership Report Version 1 -Type = 0x16: Thông điệp báo cáo thành viên Membership Report Version 2 -Type = 0x17: Thông điệp rời khỏi nhóm Leave Group Thông điệp Membership Query, ứng với giá trị Type = 0x11, mang 2 nội dung. Thứ nhất thông điệp General Query dùng để xác định nhóm nào trên mạng có thành viên hoạt động. Thứ hai là thông điệp Group-Specific Query dùng để xác định một nhóm multicast cụ thể có thành viên hoạt động. Trường Maximum Response Time (Max. Rtime) chỉ áp dụng cho thông điệp Membership Query. Trường này chỉ ra thời gian lớn nhất mà trạm con phải chờ trước khi nhận thông điệp hồi đáp Membership Query. Trường Checksum dài 16 bit dùng để kiểm tra lỗi header. Trường Group Address chứa địa chỉ nhóm. Ðối với thông điệp General Query, trường này mang giá trị 0.0.0.0. Ðối với thông điệp Group Specfic, trường này sẽ chứa địa chỉ của nhóm multicast được truy vấn. 2.2.2 So sánh IGMPv2 và IGMPv1 -IGMPv1 không có thông điệp Group Leave nên thời gian nhận biết trạm cuối cùng rời khỏi nhóm và thời gian router ngừng gửi dữ liệu multicast lâu hơn so với IGMPv2. Trong khi IGMPv2 giảm thiểu thời gian chờ khi xác định trạm con rời nhóm và nhanh chóng bỏ qua lưu lượng không mong muốn. -IGMPv2 có sử dụng thông điệp truy vấn Group-Specific Query trong khi IGMPv1 thì không có thông điệp này. -IGMPv1 không chỉ định khoảng thời gian Maximum Response Time trong các thông điệp Membership Query mà cố định thời gian này là 10 giây. -IGMPv1 không chọn ra router nào gửi thông điệp Membership Query nên có thể có nhiều router gửi thông điệp này trên cùng mạng con. - Một cải tiến của IGMP version 2 so với version 1 liên quan đến mạng đa truy cập (multi-access networks) ví dụ như mạng ethernet có nhiều hơn 1 router multicast trong mạng. Do chỉ cần 1 router gửi thông điệp Membership Query, IGMP version 2 thêm một tính năng là xác định được router sẽ chịu trách nhiệm gửi thông điệp Membership Query gọi là Querier router và các router khác trở thành Non-Querier router (xem hình 2-14). Hình: Router có địa chỉ IP thấp nhất sẽ trở thành Querier router Giả sử rằng router A gửi thông điệp Membership Query vào mạng trước router B. Router B nhận thông điệp này và bởi vì router A có địa chỉ IP thấp hơn router B nên router A vẫn là Querier router và router B trở thành Non-Querier router . Nếu router B gửi thông điệp Membership Query trước router A, điều này không ngăn cản được thông điệp Membership Query từ router A vì router A có địa chỉ IP thấp hơn. Router A sẽ gửi thông điệp Membership Query và router B(trong lúc nhận thông điệp này) sẽ trở thành Non- Querier router trong mạng. Ðiểm mới nữa của IGMP version 2 so với IGMP version 1 là có thêm thông điệp Leave Group. Khi trạm con quyết định rời khỏi nhóm và nếu trạm con là trạm hồi đáp thông điệp Membership Query cuối cùng, thì trạm con sẽ gửi thông điệp Leave Group đến địa chỉ multicast của tất cả các router trong mạng 224.0.0.2. Nếu trạm con chưa phải là trạm cuối cùng gửi thông điệp Membership Query, thì thông điệp Leave Group chưa gửi đi. RFC cũng cho phép gửi thông điệp Leave Group đến nhóm multicast cụ thể thay vì gửi đến địa chỉ multicast của tất cả các router. Lợi ích của việc gửi thông điệp Leave Group đến địa chỉ multicast của tất cả các router là các trạm con khác không là thành viên của nhóm không phải xử lý thông điệp này. . viên nhóm 2. 2 Internet Group Management Protocol, IGMP Version 2 2. 2.1 Ðịnh dạng thông điệp IGMPv2 IGMP version 2 được mô tả chi tiết trong RFC 22 36. Ðịnh dạng thông điệp IGMP version 2 như hình. 2. Giao thức multicast nội vùng IGMP Giao thức quản lý nhóm IGMP là cơ chế truyền thông giữa trạm con và router gắn trực tiếp với mạng đó. Router sử dụng IGMP để xác định có. Group Management Protocol, IGMP Version 1 RFC11 12 quy định khoảng địa chỉ multicast cho các máy trạm từ 22 4.0.0.0 đến 23 9 .25 5 .25 5 .25 5 và xác định cơ chế gửi và nhận dữ liệu multicast cho các máy