IGMP từ lâu đã được biết đến là một giao thức truyền thông được sử dụng bởi các máy chủ và các bộ định tuyến liền kề để liên lạc đa hướng. Giao thức này có thể được sử dụng trong các công cụ truyền phát video, chơi game hoặc hội nghị trên web. Trong bài viết này Vietnix sẽ giúp bạn tìm hiểu rõ hơn về cách IGMP hoạt động.
Giao thức IGMP là gì?
IGMP là từ viết tắt của Internet Group Management Protocol là một giao thức cho phép một số thiết bị chia sẻ một địa chỉ IP để tất cả chúng có thể nhận cùng một dữ liệu. IGMP là một giao thức ở network layer được sử dụng để thiết lập multicasting trên networks sử dụng Internet Protocol version 4 (IPv4). Cụ thể, IGMP cho phép các thiết bị tham gia một nhóm multicasting.
Multicasting là gì?
Multicasting là khi một nhóm thiết bị đều nhận được các thông điệp hoặc packets giống nhau. Multicasting hoạt động bằng cách chia sẻ địa chỉ IP giữa nhiều thiết bị. Bất kỳ network traffic nào được hướng đến địa chỉ IP đó sẽ đến được tất cả các thiết bị chia sẻ địa chỉ IP, thay vì chỉ một thiết bị. Điều này giống như khi một nhóm nhân viên đều nhận được email của công ty được hướng đến một alias email nhất định.
Cách thức hoạt động của IGMP
Máy tính và các thiết bị khác được kết nối với mạng sử dụng IGMP khi chúng muốn tham gia nhóm multicast. Router hỗ trợ IGMP lắng nghe các đường truyền IGMP từ các thiết bị để tìm ra thiết bị nào thuộc nhóm multicast nào.
IGMP sử dụng các địa chỉ IP được thiết lập cho multicast. Địa chỉ Multicast IP nằm trong khoảng từ 224.0.0.0 đến 239.255.255.255. (Ngược lại, anycast networks có thể sử dụng bất kỳ địa chỉ IP thông thường nào.) Mỗi nhóm multicast chia sẻ một trong các địa chỉ IP này. Khi một router nhận được một loạt các packets được hướng đến địa chỉ IP được chia sẻ, nó sẽ sao chép các packets đó, gửi các bản sao đến tất cả các thành viên của nhóm multicast.
Nhóm IGMP multicast có thể thay đổi bất kỳ lúc nào. Một thiết bị có thể gửi thông điệp IGMP “join group” hoặc “leave group” tại bất kỳ thời điểm nào.
IGMP hoạt động trực tiếp trên Internet Protocol (IP). Mỗi IGMP packet có cả IGMP header và IP header. Cũng giống như ICMP, IGMP không sử dụng giao thức transport layer như TCP hoặc UDP.
Có những loại thông điệp IGMP nào?
Giao thức IGMP cho phép một số loại thông điệp IGMP:
- Membership reports: Các thiết bị gửi các báo cáo này tới bộ multicast router để trở thành thành viên của nhóm multicast.
- “Leave group” messages: Những thông điệp này đi từ thiết bị đến router và cho phép các thiết bị rời khỏi nhóm multicast.
- General membership queries: Bộ multicast-capable router sẽ gửi các thông điệp này đến toàn bộ network của các thiết bị được kết nối để cập nhật thành viên nhóm multicast cho tất cả các nhóm trên network.
- Group-specific membership queries: Router gửi các thông điệp này đến một nhóm multicast cụ thể, thay vì toàn bộ network.
IGMP snooping là gì?
IGMP là một giao thức ở network layer và chỉ các thiết bị network nhận biết được network layer mới có thể gửi và nhận thông điệp. Router hoạt động ở network layer, trong khi một network switch có thể chỉ biết layer 2, còn được gọi là lớp liên kết dữ liệu (data link layer).
Do đó, một network switch có thể không biết thiết bị network nào đã tham gia hoặc không tham gia nhóm multicast. Nó có thể kết thúc việc chuyển tiếp multicast traffic đến các thiết bị không cần đến nó, điều này chiếm băng thông mạng và sức mạnh xử lý của thiết bị, làm chậm toàn bộ network.
IGMP snooping giải quyết vấn đề này bằng cách bật các switch chuyển sang “snoop” trên các thông điệp IGMP. Thông thường, một switch ở layer 2 sẽ không biết được các thông điệp IGMP, nhưng chúng có thể lắng nghe các thông điệp này thông qua IGMP snooping. Điều này cho phép chúng xác định nơi các thông điệp multicast nên được chuyển tiếp, để chỉ những thiết bị chính xác mới nhận được multicast traffic.
Multicasting khác như thế nào trong IPv4 and IPv6
IPv4 và IPv6 là hai phiên bản khác nhau của Internet Protocol (IP). IPv6 hiện đại hơn, nhưng IPv4 vẫn được sử dụng rộng rãi. Trong IPv6, Multicast Listener Discovery (MLD) là giao thức multicast, không phải IGMP.
Multicasting khác với anycast và unicast như thế nào?
Multicast so với anycast
Anycast là một công nghệ khác cho phép network communication đến nhiều nơi. Tương tự như multicast, anycast network cho phép cùng một nhóm server chia sẻ một hoặc nhiều địa chỉ IP. Tuy nhiên, thay vì tất cả các server nhận tất cả traffic đến các địa chỉ IP đó, network gửi traffic trực tiếp đến một trong các server đó dựa trên một bộ tiêu chí được xác định trước. Anycast networks cũng có thể hỗ trợ một loạt các địa chỉ IP hơn các nhóm multicast.
Multicast so với unicast
“Unicast” mô tả hầu hết cách hoạt động của Internet. Trong unicast networks, mọi thiết bị được kết nối trên network đều có một địa chỉ duy nhất. Các thông điệp được hướng đến địa chỉ đó (trên Internet, một địa chỉ IP) chỉ được gửi đến thiết bị đó – chứ không phải đến nhiều thiết bị như trong multicast.
Lời kết
Như vậy là bạn đã hiểu được khái niệm và cách thức hoạt động của giao thức IGMP. Bên cạnh đó là những thông tin ứng dụng và các loại thông điệp IGMP. Hy vọng qua bài viết này bạn có thêm nhiều kiến thức mới bổ ích, chúc bạn thành công!