2. IGMP phiên bản 2
IGMP phiên bản 2 giới thiệu vài sự khác biệt so với phiên bản đầu tiên. Các gói tin truy vấn bây giờ được gọi là gói tin truy vấn tổng quát (General Queries). Các gói này có thể gửi tới địa chỉ tất cả các máy trạm hoặc tới từng nhóm cụ thể.
Một cải tiến khác nữa là các máy trạm được phép rời khỏi nhóm. Khi một máy trạm quyết định rời khỏi một nhóm nó đã tham gia, nó sẽ gửi thông điệp rời bỏ nhóm (Leave Group) đến địa chỉ tất cả các router là 224.0.0.2. Tất cả các router trên một phân đoạn mạng nội bộ sẽ lưu ý thông điệp này và router truy vấn sẽ tiếp tục quá trình. Router sẽ trả lời thông điệp trên bằng thông điệp truy vấn gửi theo nhóm. Thông điệp này sẽ hỏi rằng có còn máy trạm nào muốn nhận lưu lượng cho nhóm đó nữa không? Bất cứ máy trạm nào cũng phải trả lời lại bằng thông điệp báo cáo quan hệ (membership report). Nếu khác đi, router sẽ kết luận một cách an toàn là không cần thiết chuyển lưu lượng cho nhóm đó trên phân đoạn mạng đó.
Một trong những nguyên nhân IGMP phiên bản 2 được phát triển là cung cấp một cơ chế rời khỏi nhóm tốt hơn. IGMP phiên bản 2 có thêm một số tính năng mới:
IGMP phiên bản 2 có bốn trường, được định nghĩa như sau:
Nếu có nhiều router trên cùng một kết nối, router có địa chỉ IP nhỏ nhất sẽ gửi ra gói tin truy vấn. Vì vậy, khi một router nhận được một gói tin truy vấn từ một router nào đó, nó sẽ kiểm tra địa chỉ nguồn của gói tin đó. Nếu địa chỉ nguồn của router cục bộ nhỏ hơn địa chỉ nguồn trong gói tin vừa đến, router sẽ vẫn tiếp tục gửi gói tin query vì nó biết rằng nó sẽ giữ vai trò truy vấn. Còn nếu địa chỉ nguồn của gói tin truy vấn là nhỏ hơn, router sẽ từ bỏ vai trò truy vấn.
IGMP phiên bản 2 hỗ trợ tính tương thích ngược với IGMP phiên bản 1. Mã số cho kiểu thông điệp truy vấn và báo cáo của IGMP phiên bản 2 và IGMP phiên bản 1 đều cùng là 0x11 và 0x12. Điều này cho phép các máy trạm chạy IGMP phiên bản 2 và các router nhận ra IGMP phiên bản 1 khi có các máy trạm chạy IGMP phiên bản 1 trên mạng. IGMP phiên bản 2 giúp giảm số lượng các thông điệp báo cáo được gửi bởi các máy trạm bằng cách cho phép người quản trị thay đổi khoảng thời gian truy vấn.
IGMP phiên bản 1 không có thông số MRT, vì vậy các máy trạm chỉ đơn giản dùng khoảng thời gian mặc định là 10 giây. Tuy nhiên thông điệp IGMP phiên bản 2 có bao gồm trường MRT, chỉ ra khoảng thời gian MRT được dùng bởi tất cả các máy trạm IGMP phiên bản 2 trên LAN. Các tiến trình mà các máy trạm gửi các thông điệp báo cáo của IGMP phiên bản 2 cũng giống trong IGMP phiên bản 1. Có một sự khác nhau nhỏ là các router gửi gói tin truy vấn IGMP phiên bản 2 mỗi 125 giây thay vì mỗi 60 giây.
IGMP phiên bản 2 cải tiến quá trình Truy vấn/Báo cáo bằng cách dùng cơ chế truy vấn cho từng nhóm cụ thể. Trong IGMP phiên bản 2, khi một máy trạm rời một nhóm, nó gửi ra một thông điệp rời nhóm IGMP phiên bản 2. Khi một router nhận được thông điệp rời khỏi nhóm IGMP phiên bản 2, thay vì chờ một khoảng thời gian truy vấn là 125 giây, router sẽ gửi ngay một thông điệp truy vấn cho nhóm đó. Thông điệp này chỉ để hỏi là còn có máy trạm nào muốn lưu lượng cho nhóm Multicast đó không. Kết quả là, router sẽ nhanh chóng biết được có còn máy trạm nào quan tâm đến lưu lượng của nhóm đó.
Thuận lợi chính của IGMP phiên bản 2 so với IGMP phiên bản 1 là thời gian rời khỏi nhóm của IGMP phiên bản 2 ngắn hơn. IGMP phiên bản 2 chỉ mất có ba giây để kết luận rằng không còn máy trạm nào trên mạng con đó quan tâm đến Multicast.
Các thông điệp rời bỏ nhóm (IGMPv2 Leave Group) và các thông điệp truy vấn cho từng nhóm cụ thể (Group-Specific Query Messages)
IGMP phiên bản 2 RFC 2236 khuyến cáo rằng một máy trạm gửi ra một thông điệp rời khỏi nhóm chỉ nếu nó là máy trạm cuối cùng gửi thông điệp báo cáo quan hệ. Tuy nhiên phần lớn các hiện thực IGMP phiên bản 2 đều cho phép một máy trạm gửi ra thông điệp rời khỏi nhóm khi bất kỳ máy trạm nào rời khỏi nhóm.
Router IGMP phiên bản 2 lặp lại tiến trình ở bước 2 mỗi lần nó nhận được thông điệp rời bỏ nhóm trong bước 1. Trong ví dụ trước, R1 không ngừng việc gửi lưu lượng . Trong hình 19.16, H3 là máy trạm duy nhất còn lại của nhóm 226.1.1.1. Giả sử rằng H3 cũng muốn rời bỏ khỏi nhóm.
Ba bước sau đây sẽ mô tả quá trình khi H3 rời khỏi nhóm:
Mặc định, router sẽ dùng một giá trị MRT bằng 10 (1 giây) cho các thông điệp truy vấn cho nhóm. Bởi vì một router phải nhận một thông điệp trả lời cho thông điệp truy vấn theo nhóm trước đây trong khoảng thời gian MRT này, router sẽ dùng giá trị MRT như là khoảng thời gian để xác định thành viên cuối cùng rời khỏi nhóm. Router dùng tiến trình sau:
Khi router truy vấn ngừng gửi một thông điệp truy vấn trong hai chu kỳ rưỡi, router truy vấn sẽ bị xem như đã chết và cần có một router truy vấn khác. RFC2236 qui định khoảng thời gian này là khoảng thời gian giới thiệu router truy vấn khác (Other querier present Interval). Giá trị mặc định cho khoảng thời gian này là 255 giây bởi vì khoảng thời gian mặc định của gói tin truy vấn của IGMP phiên bản 2 là 125 giây và giá trị mặc định của thời gian trả lời truy vấn là 10 giây.
3. So sánh IGMP phiên bản 1 và IGMP phiên bản 2
IGMP phiên bản 1 không có thông điệp rời bỏ nhóm. Điều này có nghĩa là sẽ tốn một khoảng thời gian dài hơn để máy trạm cuối cùng rời khỏi nhóm và router ngừng việc truy vấn. IGMP phiên bản 1 không có thông điệp cho riêng từng nhóm. Điều này là kết quả của đặc điểm 1. Các máy trạm có khoảng thời gian MRT này mặc định là 10 giây. IGMP phiên bản 1 không có tiến trình bầu chọn router truy vấn. Thay vào đó, nó dựa trên cơ chế định tuyến của Multicast để để bầu ra router truy vấn. Do có thể có nhiều giao thức định tuyến khác nhau cho các nhóm Multicast khác nhau, sẽ có một khả năng là sẽ có nhiều router truy vấn trong IGMP phiên bản 1.
4. Sự tương thích của IGMP phiên bản 1 và 2
IGMP phiên bản 2 được thiết kế để tương thích ngược với IGMP phiên bản 1. Sau đây là một vài trường hợp tương thích.
Khi một máy trạm gửi ra một thông điệp báo cáo IGMP với kiểu thông điệp là 0x16 (kiểu này không được định nghĩa trong IGMP phiên bản 1, router đang chạy IGMP phiên bản 1 sẽ xem kiểu thông điệp này là không hợp lệ và bỏ qua nó. Vì vậy, một máy chạy IGMP phiên bản 2 phải gửi thông điệp báo cáo IGMP phiên bản 1 khi router IGMP phiên bản 1 đang tồn tại. Nhưng bằng cách nào một máy trạm IGMP phiên bản 2 phát hiện sự tồn tại của một IGMP phiên bản 1 router?
Máy trạm chạy IGMP phiên bản 2 sẽ xác định router truy vấn đang dùng IGMP phiên bản 1 hay IGMP phiên bản 2 dựa trên giá trị của trường MRT của các thông điệp truy vấn định kỳ. Trong IGMP phiên bản 1, trường này bằng 0, trong IGMP phiên bản 2, trường này là khác 0. Khi một máy trạm chạy IGMP phiên bản 2 nhận được một truy vấn từ router IGMP phiên bản 1, máy trạm biết rằng có một router IGMP phiên bản 1 đang tồn tại trên mạng con và đánh dấu cổng này như là IGMP phiên bản 1. Máy trạm chạy IGMP phiên bản 2 sau đó sẽ không gửi thông điệp IGMP phiên bản 2.
Bất cứ khi nào một máy trạm IGMP phiên bản 2 nhận một thông điệp truy vấn IGMP phiên bản 1, nó sẽ khởi tạo một bộ định thời phiên bản 1 (version 1 router Present timeout) có thời lượng 400 giây. Bộ định thời này sẽ được khởi tạo lại bất cứ khi nào máy trạm nhận được một thông điệp truy vấn IGMP phiên bản 1. Nếu bộ định thời này hết, có nghĩa là không có router IGMP phiên bản 1 nào tồn tại trên mạng, máy trạm sẽ bắt đầu gửi thông điệp IGMP phiên bản 2.
Nếu một máy trạm IGMP phiên bản 2 cũng tồn tại trên cùng một mạng con, nó sẽ gửi các thông điệp báo cáo IGMP phiên bản 2. Tuy nhiên, các máy trạm IGMP phiên bản 1 sẽ không hiểu các thông điệp báo cáo IGMP phiên bản 2 và bỏ qua các thông điệp này. Các thông điệp IGMP phiên bản 2 này không kích hoạt các cơ chế giảm thông điệp báo cáo trong các máy trạm chạy IGMP phiên bản 1. Vì vậy, thỉnh thoảng một router IGMP phiên bản 2 sẽ nhận cả thông điệp báo cáo từ phiên bản 1 và phiên bản 2.
Khi một router chạy IGMP phiên bản 2 biết rằng có một máy trạm IGMP phiên bản 1 tồn tại trên LAN, router sẽ bỏ qua thông điệp rời bỏ nhóm và cũng không gởi ra các thông điệp truy vấn cho từng nhóm. Điều này là cần thiết vì nếu một router IGMP phiên bản 2 trả lời lại thông điệp rời bỏ nhóm bằng thông điệp truy vấn cho từng nhóm, các máy trạm chay IGMP phiên bản 1 sẽ không hiểu loại thông điệp này và sẽ bỏ qua.
Khi một router IGMP phiên bản 2 không nhận được một trả lời cho thông điệp truy vấn theo nhóm, nó có thể kết luận sai rằng không còn ai muốn nhận lưu lượng và sẽ ngừng chuyển lưu lượng vào LAN đó. Vì vậy nếu một hoặc nhiều máy trạm IGMP phiên bản 1 đang lắng nghe đến một nhóm nào đó, router cần phải bỏ quá trình tối ưu giúp giảm thiểu độ trễ khi các máy trạm rời khỏi nhóm. Router IGMP phiên bản 2 tiếp tục bỏ qua thông điệp rời bỏ nhóm cho đến khi nào khoảng thời gian định thời IGMP phiên bản 1 là hết.
Khi router IGMP phiên bản 2 nhận được một thông điệp báo cáo IGMP phiên bản 1, router sẽ thiết lập một bộ định thời IGMP phiên bản 1. Khoảng thời gian này phải bằng với khoảng thời gian xác định thành viên nhóm (Group membership Interval), mặc định là 180 giây trong IGMP phiên bản 1 và 260 giây trong IGMP phiên bản 2. Đây là khoảng thời gian mà trong đó một router không nhận được một thông điệp báo cáo IGMP, router sẽ kết luận là không còn thành viên nào trên mạng.
Bảng 19.2 tóm tắt các thông số thời gian trong IGMP:
Bảng 19.2: Các thông số thời gian của IGMP phiên bản 1 và 2
IGMP phiên bản 2 giới thiệu vài sự khác biệt so với phiên bản đầu tiên. Các gói tin truy vấn bây giờ được gọi là gói tin truy vấn tổng quát (General Queries). Các gói này có thể gửi tới địa chỉ tất cả các máy trạm hoặc tới từng nhóm cụ thể.
Một cải tiến khác nữa là các máy trạm được phép rời khỏi nhóm. Khi một máy trạm quyết định rời khỏi một nhóm nó đã tham gia, nó sẽ gửi thông điệp rời bỏ nhóm (Leave Group) đến địa chỉ tất cả các router là 224.0.0.2. Tất cả các router trên một phân đoạn mạng nội bộ sẽ lưu ý thông điệp này và router truy vấn sẽ tiếp tục quá trình. Router sẽ trả lời thông điệp trên bằng thông điệp truy vấn gửi theo nhóm. Thông điệp này sẽ hỏi rằng có còn máy trạm nào muốn nhận lưu lượng cho nhóm đó nữa không? Bất cứ máy trạm nào cũng phải trả lời lại bằng thông điệp báo cáo quan hệ (membership report). Nếu khác đi, router sẽ kết luận một cách an toàn là không cần thiết chuyển lưu lượng cho nhóm đó trên phân đoạn mạng đó.
Một trong những nguyên nhân IGMP phiên bản 2 được phát triển là cung cấp một cơ chế rời khỏi nhóm tốt hơn. IGMP phiên bản 2 có thêm một số tính năng mới:
- Truy vấn nhóm xác định (Group specific Query): cho phép router gửi truy vấn cho một nhóm cụ thể thay vì cho tất cả các nhóm.
- Thời gian đáp ứng tối đa (Maximum response Time): Một trường mới trong gói tin truy vấn, cho phép hiệu chỉnh khoảng thời gian cho thông điệp báo cáo quan hệ máy trạm. Đặc điểm này có thể hữu ích khi một số lớn các nhóm tồn tại trên một mạng con và bạn muốn giảm số thông điệp trả lời bằng cách kéo dài những thông điệp trả lời ra một khoảng thời gian dài hơn.
- Thông điệp rời bỏ nhóm (Leave group message): cho phép máy trạm thông báo cho router rằng máy trạm muốn rời khỏi nhóm.
- Bầu chọn router truy vấn: cung cấp cơ chế cho phép bầu chọn router gửi ra các thông điệp truy vấn khi có nhiều router cùng kết nối vào một mạng con.
Hình 19.14: Định dạng của gói tin IGMP phiên bản 2
IGMP phiên bản 2 có bốn trường, được định nghĩa như sau:
- Loại (Type): trường này có chiều dài 8 bit, chỉ ra một trong bốn loại thông điệp được định nghĩa bởi IGMP phiên bản 2. Các giá trị có thể có là:
- Truy vấn quan hệ (Membership query) có giá trị là 0x11: được dùng bởi router để tìm ra sự hiện diện của các máy trạm trên một mạng con. Thông điệp loại này gán giá trị địa chỉ nhóm về 0.0.0.0 giống như trong IGMP phiên bản 1. Một thông điệp truy vấn cho một nhóm cụ thể sẽ gán địa chỉ nhóm vào trường này. Thông điệp loại này thường được gửi khi router nhận được một thông điệp rời khỏi nhóm IGMP phiên bản 2 từ một máy trạm. Thông điệp loại này được dùng để xác định xem có còn thành viên nào của một nhóm cụ thể không.
- Báo cáo quan hệ phiên bản 1 có giá trị 0x12: được dùng bởi IGMP phiên bản 2 để tương thích với IGMP phiên bản 1.
- Báo cáo quan hệ phiên bản 2 có giá trị 0x16: được gởi bởi thành viên để thông báo cho router là còn ít nhất một thành viên trên mạng.
- Thông điệp rời khỏi nhóm (Leave group) có giá trị là 0x17: được gửi bởi thành viên nhóm nếu nó là thành viên cuối cùng gửi thông điệp báo cáo quan hệ. Thông điệp này báo cho router rằng máy trạm đang rời khỏi nhóm.
- Thời gian đáp ứng tối đa (Maximum Response Time): Trường có độ dài 8 bit chỉ có trong các thông điệp truy vấn. Giá trị mặc định cho trường này là 100 (tương đương 10 giây). Giá trị sẽ thay đổi từ 1 đến 255 (nghĩa là từ 0.1 giây đến 25.5giây).
- Kiểm tra lỗi (Checksum): Chứa giá trị 16 bit được tính toán bởi máy nguồn. Kiểm tra lỗi IGMP tính toán trên toàn bộ phần tải của IP chứ không phải chỉ 8 byte đầu tiên mặc dù IGMP phiên bản 2 có độ dài 8byte.
- Địa chỉ nhóm (Group Address): Được gán giá trị 0.0.0.0 trong gói tin truy vấn và gán địa chỉ nhóm nếu thông điệp là cho từng nhóm cụ thể. Các thông điệp báo cáo quan hệ (membership report) hoặc thông điệp rời khỏi nhóm (leave group) có thể mang địa chỉ của nhóm trong trường này.
Code:
[INDENT][SIZE=14px][FONT=Tahoma]Router#show ip igmp groups[/FONT][/SIZE][/INDENT] [SIZE=14px][FONT=Tahoma][/FONT][/SIZE]
Nếu có nhiều router trên cùng một kết nối, router có địa chỉ IP nhỏ nhất sẽ gửi ra gói tin truy vấn. Vì vậy, khi một router nhận được một gói tin truy vấn từ một router nào đó, nó sẽ kiểm tra địa chỉ nguồn của gói tin đó. Nếu địa chỉ nguồn của router cục bộ nhỏ hơn địa chỉ nguồn trong gói tin vừa đến, router sẽ vẫn tiếp tục gửi gói tin query vì nó biết rằng nó sẽ giữ vai trò truy vấn. Còn nếu địa chỉ nguồn của gói tin truy vấn là nhỏ hơn, router sẽ từ bỏ vai trò truy vấn.
IGMP phiên bản 2 hỗ trợ tính tương thích ngược với IGMP phiên bản 1. Mã số cho kiểu thông điệp truy vấn và báo cáo của IGMP phiên bản 2 và IGMP phiên bản 1 đều cùng là 0x11 và 0x12. Điều này cho phép các máy trạm chạy IGMP phiên bản 2 và các router nhận ra IGMP phiên bản 1 khi có các máy trạm chạy IGMP phiên bản 1 trên mạng. IGMP phiên bản 2 giúp giảm số lượng các thông điệp báo cáo được gửi bởi các máy trạm bằng cách cho phép người quản trị thay đổi khoảng thời gian truy vấn.
IGMP phiên bản 1 không có thông số MRT, vì vậy các máy trạm chỉ đơn giản dùng khoảng thời gian mặc định là 10 giây. Tuy nhiên thông điệp IGMP phiên bản 2 có bao gồm trường MRT, chỉ ra khoảng thời gian MRT được dùng bởi tất cả các máy trạm IGMP phiên bản 2 trên LAN. Các tiến trình mà các máy trạm gửi các thông điệp báo cáo của IGMP phiên bản 2 cũng giống trong IGMP phiên bản 1. Có một sự khác nhau nhỏ là các router gửi gói tin truy vấn IGMP phiên bản 2 mỗi 125 giây thay vì mỗi 60 giây.
IGMP phiên bản 2 cải tiến quá trình Truy vấn/Báo cáo bằng cách dùng cơ chế truy vấn cho từng nhóm cụ thể. Trong IGMP phiên bản 2, khi một máy trạm rời một nhóm, nó gửi ra một thông điệp rời nhóm IGMP phiên bản 2. Khi một router nhận được thông điệp rời khỏi nhóm IGMP phiên bản 2, thay vì chờ một khoảng thời gian truy vấn là 125 giây, router sẽ gửi ngay một thông điệp truy vấn cho nhóm đó. Thông điệp này chỉ để hỏi là còn có máy trạm nào muốn lưu lượng cho nhóm Multicast đó không. Kết quả là, router sẽ nhanh chóng biết được có còn máy trạm nào quan tâm đến lưu lượng của nhóm đó.
Thuận lợi chính của IGMP phiên bản 2 so với IGMP phiên bản 1 là thời gian rời khỏi nhóm của IGMP phiên bản 2 ngắn hơn. IGMP phiên bản 2 chỉ mất có ba giây để kết luận rằng không còn máy trạm nào trên mạng con đó quan tâm đến Multicast.
Các thông điệp rời bỏ nhóm (IGMPv2 Leave Group) và các thông điệp truy vấn cho từng nhóm cụ thể (Group-Specific Query Messages)
IGMP phiên bản 2 RFC 2236 khuyến cáo rằng một máy trạm gửi ra một thông điệp rời khỏi nhóm chỉ nếu nó là máy trạm cuối cùng gửi thông điệp báo cáo quan hệ. Tuy nhiên phần lớn các hiện thực IGMP phiên bản 2 đều cho phép một máy trạm gửi ra thông điệp rời khỏi nhóm khi bất kỳ máy trạm nào rời khỏi nhóm.
Hình 19.15: Quá trình gửi thông điệp rời bỏ nhóm
- Bước 1: H1 gửi một thông điệp rời bỏ nhóm IGMP phiên bản 2. Địa chỉ đích của gói tin là 224.0.0.2. Đây là địa chỉ của tất cả các router đang chạy Multicast. Thông điệp này muốn báo rằng “Tôi không muốn nhận Multicast lưu lượng của 226.1.1.1”.
- Bước 2: R1 sẽ gửi ra một thông điệp cho riêng nhóm đó. Bởi vì H1 đã quyết định rời khỏi nhóm 226.1.1.1, R1 quyết định ngừng đẩy lưu lượng của nhóm 226.1.1.1 trên cổng Fa0/0 nếu H1 là thành viên cuối cùng của 226.1.1.1. Tuy nhiên, R1 cần phải đảm bảo rằng không còn máy trạm nào trên cổng này vẫn cần nhận lưu lượng của nhóm 226.1.1.1. Vì vậy, R1 gửi ra một thông điệp để xác định có còn thành viên nào của nhóm 226.1.1.1. R1 dùng địa chỉ đích 226.1.1.1 như là địa chỉ đích trên gói tin sao cho chỉ có các máy trạm là thành viên của nhóm này là nhận thông điệp và trả lời. Thông qua thông điệp này, R1 sẽ hỏi các máy trạm còn lại trong nhóm là “Có còn ai muốn nhận lưu lượng Multicast cho 226.1.1.1 không?”.
- Bước 3: H3 gửi một thông điệp báo cáo quan hệ. H3 vẫn là một thành viên của nhóm 226.1.1.1. Máy H3 nghe thông điệp truy vấn theo nhóm và trả lời bằng một thông điệp báo cáo IGMP phiên bản 2 để thông báo cho router là vẫn còn thành viên của nhóm 226.1.1.1.
Router IGMP phiên bản 2 lặp lại tiến trình ở bước 2 mỗi lần nó nhận được thông điệp rời bỏ nhóm trong bước 1. Trong ví dụ trước, R1 không ngừng việc gửi lưu lượng . Trong hình 19.16, H3 là máy trạm duy nhất còn lại của nhóm 226.1.1.1. Giả sử rằng H3 cũng muốn rời bỏ khỏi nhóm.
Hình 19.16: Mô tả quá trình H3 rời bỏ khỏi nhóm
Ba bước sau đây sẽ mô tả quá trình khi H3 rời khỏi nhóm:
- Bước 1: H3 gửi ra một thông điệp rời khỏi nhóm IGMP phiên bản 2. Địa chỉ đích của gói tin là 224.0.0.2 để thông báo cho tất cả các router trên mạng con là “Tôi không muốn nhận lưu lượng của nhóm 226.1.1.1”.
- Bước 2: R1 gửi ra một thông điệp truy vấn cho riêng nhóm đó. R1 nhận thông điệp rời khỏi nhóm từ H3. R1 sẽ gửi các thông điệp truy vấn cho từng nhóm để xác định có còn máy nào vẫn là thành viên của nhóm 226.1.1.1. R1 dùng địa chỉ đích là 226.1.1.1 sao cho chỉ có những máy là thành viên của nhóm này nhận được thông điệp và trả lời.
- Bước 3: Không có thông điệp báo cáo nào là nhận được, vì vậy R1 sẽ ngừng đẩy lưu lượng . Bởi vì không còn thành viên nào của nhóm 226.1.1.1, R1 sẽ không nhận được thông điệp trả lời nào cho thông điệp truy vấn trước đây do R1 gửi ra. Kết quả là R1 sẽ ngừng đẩy lưu lượng Multicast của nhóm 226.1.1.1 ra cổng fa0/0.
Mặc định, router sẽ dùng một giá trị MRT bằng 10 (1 giây) cho các thông điệp truy vấn cho nhóm. Bởi vì một router phải nhận một thông điệp trả lời cho thông điệp truy vấn theo nhóm trước đây trong khoảng thời gian MRT này, router sẽ dùng giá trị MRT như là khoảng thời gian để xác định thành viên cuối cùng rời khỏi nhóm. Router dùng tiến trình sau:
- Bước 1: Gửi ra một thông điệp truy vấn cho từng nhóm cụ thể khi router nhận được một thông điệp rời khỏi nhóm.
- Bước 2: Nếu không có thông điệp báo cáo nào nhận được trong khoảng thời gian MRT, lặp lại bước 1.
- Bước 3: Lặp lại bước 1 một số lần được chỉ ra trong thông số last member query count. Chỉ số này là số lần các thông điệp truy vấn theo nhóm được gửi trước khi router kết luận là không còn thành viên nào tích cực trong nhóm. Giá trị mặc định của thông số này bằng 2. Vì vậy thường chỉ mất dưới 3 giây để xác định không còn thành viên nào trong nhóm. Trong khi đối với IGMP phiên bản 1, thời gian này là ba phút.
- Các router truy vấn IGMP phiên bản 2
Khi router truy vấn ngừng gửi một thông điệp truy vấn trong hai chu kỳ rưỡi, router truy vấn sẽ bị xem như đã chết và cần có một router truy vấn khác. RFC2236 qui định khoảng thời gian này là khoảng thời gian giới thiệu router truy vấn khác (Other querier present Interval). Giá trị mặc định cho khoảng thời gian này là 255 giây bởi vì khoảng thời gian mặc định của gói tin truy vấn của IGMP phiên bản 2 là 125 giây và giá trị mặc định của thời gian trả lời truy vấn là 10 giây.
3. So sánh IGMP phiên bản 1 và IGMP phiên bản 2
IGMP phiên bản 1 không có thông điệp rời bỏ nhóm. Điều này có nghĩa là sẽ tốn một khoảng thời gian dài hơn để máy trạm cuối cùng rời khỏi nhóm và router ngừng việc truy vấn. IGMP phiên bản 1 không có thông điệp cho riêng từng nhóm. Điều này là kết quả của đặc điểm 1. Các máy trạm có khoảng thời gian MRT này mặc định là 10 giây. IGMP phiên bản 1 không có tiến trình bầu chọn router truy vấn. Thay vào đó, nó dựa trên cơ chế định tuyến của Multicast để để bầu ra router truy vấn. Do có thể có nhiều giao thức định tuyến khác nhau cho các nhóm Multicast khác nhau, sẽ có một khả năng là sẽ có nhiều router truy vấn trong IGMP phiên bản 1.
4. Sự tương thích của IGMP phiên bản 1 và 2
IGMP phiên bản 2 được thiết kế để tương thích ngược với IGMP phiên bản 1. Sau đây là một vài trường hợp tương thích.
- Máy trạm dùng IGMP phiên bản 2 và router chạy IGMP phiên bản 1.
- Máy trạm dùng IGMP phiên bản 1 và router dùng IGMP phiên bản 2.
- Router chạy IGMP phiên bản 1 và một số router khác chạy IGMP phiên bản 2.
- Máy trạm chạy IGMP phiên bản 2 và router chạy IGMP phiên bản 1
Khi một máy trạm gửi ra một thông điệp báo cáo IGMP với kiểu thông điệp là 0x16 (kiểu này không được định nghĩa trong IGMP phiên bản 1, router đang chạy IGMP phiên bản 1 sẽ xem kiểu thông điệp này là không hợp lệ và bỏ qua nó. Vì vậy, một máy chạy IGMP phiên bản 2 phải gửi thông điệp báo cáo IGMP phiên bản 1 khi router IGMP phiên bản 1 đang tồn tại. Nhưng bằng cách nào một máy trạm IGMP phiên bản 2 phát hiện sự tồn tại của một IGMP phiên bản 1 router?
Máy trạm chạy IGMP phiên bản 2 sẽ xác định router truy vấn đang dùng IGMP phiên bản 1 hay IGMP phiên bản 2 dựa trên giá trị của trường MRT của các thông điệp truy vấn định kỳ. Trong IGMP phiên bản 1, trường này bằng 0, trong IGMP phiên bản 2, trường này là khác 0. Khi một máy trạm chạy IGMP phiên bản 2 nhận được một truy vấn từ router IGMP phiên bản 1, máy trạm biết rằng có một router IGMP phiên bản 1 đang tồn tại trên mạng con và đánh dấu cổng này như là IGMP phiên bản 1. Máy trạm chạy IGMP phiên bản 2 sau đó sẽ không gửi thông điệp IGMP phiên bản 2.
Bất cứ khi nào một máy trạm IGMP phiên bản 2 nhận một thông điệp truy vấn IGMP phiên bản 1, nó sẽ khởi tạo một bộ định thời phiên bản 1 (version 1 router Present timeout) có thời lượng 400 giây. Bộ định thời này sẽ được khởi tạo lại bất cứ khi nào máy trạm nhận được một thông điệp truy vấn IGMP phiên bản 1. Nếu bộ định thời này hết, có nghĩa là không có router IGMP phiên bản 1 nào tồn tại trên mạng, máy trạm sẽ bắt đầu gửi thông điệp IGMP phiên bản 2.
- Máy trạm chạy IGMP phiên bản 1 và router chạy IGMP phiên bản 2
Nếu một máy trạm IGMP phiên bản 2 cũng tồn tại trên cùng một mạng con, nó sẽ gửi các thông điệp báo cáo IGMP phiên bản 2. Tuy nhiên, các máy trạm IGMP phiên bản 1 sẽ không hiểu các thông điệp báo cáo IGMP phiên bản 2 và bỏ qua các thông điệp này. Các thông điệp IGMP phiên bản 2 này không kích hoạt các cơ chế giảm thông điệp báo cáo trong các máy trạm chạy IGMP phiên bản 1. Vì vậy, thỉnh thoảng một router IGMP phiên bản 2 sẽ nhận cả thông điệp báo cáo từ phiên bản 1 và phiên bản 2.
Khi một router chạy IGMP phiên bản 2 biết rằng có một máy trạm IGMP phiên bản 1 tồn tại trên LAN, router sẽ bỏ qua thông điệp rời bỏ nhóm và cũng không gởi ra các thông điệp truy vấn cho từng nhóm. Điều này là cần thiết vì nếu một router IGMP phiên bản 2 trả lời lại thông điệp rời bỏ nhóm bằng thông điệp truy vấn cho từng nhóm, các máy trạm chay IGMP phiên bản 1 sẽ không hiểu loại thông điệp này và sẽ bỏ qua.
Khi một router IGMP phiên bản 2 không nhận được một trả lời cho thông điệp truy vấn theo nhóm, nó có thể kết luận sai rằng không còn ai muốn nhận lưu lượng và sẽ ngừng chuyển lưu lượng vào LAN đó. Vì vậy nếu một hoặc nhiều máy trạm IGMP phiên bản 1 đang lắng nghe đến một nhóm nào đó, router cần phải bỏ quá trình tối ưu giúp giảm thiểu độ trễ khi các máy trạm rời khỏi nhóm. Router IGMP phiên bản 2 tiếp tục bỏ qua thông điệp rời bỏ nhóm cho đến khi nào khoảng thời gian định thời IGMP phiên bản 1 là hết.
Khi router IGMP phiên bản 2 nhận được một thông điệp báo cáo IGMP phiên bản 1, router sẽ thiết lập một bộ định thời IGMP phiên bản 1. Khoảng thời gian này phải bằng với khoảng thời gian xác định thành viên nhóm (Group membership Interval), mặc định là 180 giây trong IGMP phiên bản 1 và 260 giây trong IGMP phiên bản 2. Đây là khoảng thời gian mà trong đó một router không nhận được một thông điệp báo cáo IGMP, router sẽ kết luận là không còn thành viên nào trên mạng.
- Các Router chạy IGMP phiên bản 1 và IGMP phiên bản 2
Bảng 19.2 tóm tắt các thông số thời gian trong IGMP:
Bộ định thời | Sử dụng | Giá trị mặc định cho IGMP phiên bản 1 | Giá trị mặc định cho IGMP phiên bản 2 |
Thời gian truy vấn | Khoảng thời giữa các lần gửi gói tin truy vấn bởi router | Cố định là 60 giây | 125 giây |
Thời gian đáp ứng truy vấn | Khoảng thời gian tối đa cho các máy trạm trả lời lại cho các gói truy vấn | 10 giây | 10 giây. Có thể có giá trị từ 1 giây đến 25,5 giây |
Thời gian quan hệ nhóm | Là khoảng thời gian mà nếu router không nhận được thông điệp báo cáo, router kết luận rằng không còn thành viên nào của nhóm trên mạng con |
180 giây | 260 giây |
Thời gian truy vấn khác | Là khoảng thời gian trong đó nếu một router IGMP phiên bản 2 không phải là router truy vấn không nhận được thông điệp truy vấn, router sẽ kết luận là router truy vấn là chết |
- | 255 giây |
Thời gian thành viên truy vấn lần cuối | Khoảng thời gian trả lời tối đa được chỉ ra bởi router chạy IGMP phiên bản 2 trong thông điệp truy vấn theo nhóm và khoảng thời gian giữa hai thông điệp truy vấn liên tiếp gửi đến cùng nhóm |
- | 1 giây |
Thời gian hết hạn của router đang chạy phiên bản 1 | Là khoảng thời gian trong đó nếu một máy trạm chạy IGMP phiên bản 2 không nhận được gói tin truy vấn IGMP phiên bản 1 query, máy trạm sẽ kết luận rằng không có router chạy IGMP phiên bản 1 và máy trạm bắt đầu gửi thông điệp IGMP phiên bản 2. |
- | 400 giây |