Giao thức IGMP

Một phần của tài liệu Nghiên cứu triển khai dịch vụ IPTV trên hạ tầng mạng nhà khai thác dịch vụ cố định (Trang 49 - 55)

Giao thức quản lý nhóm internet IGMP có ba phiên bản IGMP v1(RFC1112), IGMP v2(RFC2236), và IGMP v3(RFC3376). Giao thức IGMP làm

việc dựa trên các thông điệp IGMP được gửi bên trong gói tin IP với trường protocol number có giá trị bằng 2, trường TTL bằng 1(chỉ trong phạm vi một LAN).

Các thông điệp IGMP có hai yêu cầu chính:

 Thông báo cho router multicast rằng có một máy muốn gia nhập nhóm multicast.

 Thông báo cho router rằng có một máy muốn rời một nhóm multicast. Để tham gia vào một nhóm multicast, đầu tiên host phải được cài và chạy một ứng dụng multicast. 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.

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.

Giao thức IGMPv1

Trường Độ dài bit Giá trị và ý nghĩa

Version 4 0x1 : thông điệp IGMPv1

Type 4 0x1 : Membership Query (MQ)

0x2 : Membership Report (MR)

Unused 8 0x00:Để dành

Checksum 16 Dùng kiểm tra lỗi header

Group address 32 0.0.0.0 : Thông điệp là MQ Ip Multicast : Thông điệp là MR

Bảng 3-2:Định dạng thông điệp IGMPv1

Trong IGMPv1 chỉ sử dụng 2 loại thông điệp MQ và MR.

Thông điệp MQ, router sử dụng để truy vấn các thành viên trong 1 nhóm multicast và kết hợp với việc gởi định kỳ (3 lần liên tiếp) để kiểm tra các host có còn quan tâm nhận lưu lượng multicast nữa không.

Thông điệp MR, được các host sử dụng để gởi yêu cầu đến router xin tham gia nhóm multicast, hay trả lời theo yêu cầu của router khi host nhận được thông điệp MQ truy vấn kiểm tra 1 nhóm multicast của router .

Với chỉ có 2 loại thông điệp MQ, MR thì việc quản lý và thực hiện rời khỏi nhóm multicast không được chủ động bởi host mà phụ thuộc từ router. Router sẽ thiết lập 1 bộ định thời (Timer), nó được xóa mỗi khi có 1 đáp ứng từ 1 host trên mạng. Timer tồn tại trong 3 phút tương đương với 3 chu kỳ truy vấn MQ. Nếu Timer hết hạn mà không có đáp ứng nào từ các host trên giao diện tương ứng,

router sẽ ngưng truyền dữ liệu multicast đến giao diện đó. Đây là một hạn chế của giao thức IGMPv1.

Giao thức IGMPv2

Định dạng thông điệp

Trường Độ dài bit Giá trị và ý nghĩa

Type 8 0x11 : Membership Query (MQ)

0x12 : Membership Report (MR) 0x16 : Membership Report version 2 0x17 : Leave Group

Maximum response time (MRT)

8 Chỉ có ở MQ, là thời gian tối đa mà một MR chờ trước khi gởi đi

0x00 : Các loại thông điệp khác Checksum 16 Dùng kiểm tra lỗi header

Group address 32 0.0.0.0 : Thông điệp là General MQ (adsbygoogle = window.adsbygoogle || []).push({});

Ip nhóm truy vấn : Thông điệp là Group- Specific MQ

Ip nhóm : Thông điệp MR

Bảng 3-3:Định dạng thông điệp IGMPv2

Phiên bản IGMPv2 giới thiệu vài sự khác biệt so với phiên bản đầu tiên. Các loại thông điệp IGMPv2 cơ bản là MQ, MR, và LG (Leave Group). Thông điệp truy vấn MQ có 2 dạng là General MQ hoặc Group-Specific MQ. Thông điệp truy vấn bây giờ có thể gửi tới địa chỉ tất cả các host với tất cả các nhóm (sử dụng General MQ) hoặc tới từng nhóm cụ thể (sử dụng Group-Specific MQ).

IGMPv2 hoạt động tương tự như IGMPv1 nhưng có thêm thông điệp LG cho phép các host chủ động rời khỏi nhóm. Khi một host quyết định rời khỏi một nhóm, nó sẽ gửi thông điệp LG đến địa chỉ tất cả các router trong mạng con. Tất cả các router trên một phân đoạn mạng cục bộ sẽ lưu ý thông điệp này. Các router sẽ trả lời thông điệp trên bằng thông điệp truy cập gửi theo nhóm Group–Specific Query. Thông điệp này sẽ hỏi truy vấn xem còn host nào muốn nhận lưu lượng cho nhóm đó nữa không? Bất cứ host nào cũng phải trả lời lại bằng thông điệp MR. Nếu khác đi, router sẽ kết luậ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 đó. Với thông điệp LG, host có thể thông báo rõ ràng với router cục bộ để tách khỏi nhóm giúp giảm bớt lưu lượng không cần thiết trên mạng con.

Giao thức IGMPv3

IGMPv3 sử dụng thông điệp Group-Source Report cho phép 1 host báo cho router biết nhóm mà nó muốn tham gia và từ nguồn nào mà nó muốn nhận lưu lượng (SSM – Source Specific Multicast). Với IGMPv3 các máy nhận sẽ báo hiệu ở 2 trạng thái Include và Exclude sử dụng 2 loại thông điệp tương ứng là :

 Include mode: ở mode này bên nhận sẽ cung cấp một danh sách các địa chỉ nguồn mà nó muốn nhận lưu lượng.

 Exclude mode: bên nhận sẽ cung cấp một danh sách các nguồn mà nó không muốn nhận lưu lượng và chỉ nhận lưu lượng từ những địa chỉ IP không có trong danh sách.

Với IGMPv1 hoặc 2, nếu 1 host muốn nhận lưu lượng từ 1 nhóm, thì lưu lượng từ tất cả các nguồn cho nhóm đó sẽ được chuyển đến nó. IGMPv3 sẽ giúp tiết kiệm băng thông bằng cách cho phép 1 host chỉ định rõ những nguồn mà nó muốn nhận lưu lượng. IGMPv3 cho phép các host chỉ định lưu lượng xuất phát từ một nguồn cụ thể hoặc nhận từ tất cả ngoại trừ từ một nguồn nào đó. Đồng thời các giao thức định tuyến multicast sẽ sử dụng những thông tin này để tiết kiệm băng thông khi xây dựng cây phân phối luồng multicast cho tối ưu.

Việc hỗ trợ thông điệp LG như ở IGMPv2 đã được mở rộng để hỗ trợ thông điệp Group–Source Leave. Đặc điểm này cho phép 1 host rời khỏi toàn bộ nhóm hoặc là chỉ định những địa chỉ IP cụ thể mà nó muốn rời khỏi.

Cơ chế IGMP Snooping

Trong chế độ hoạt động bình thường, một host muốn tham gia vào một nhóm Multicast phải liên lạc với một router gateway để router đưa host đó vào nhóm Multicast. IGMP Snooping cho phép một Switch lắng nghe các thông điệp IGMP MR này sao cho nó có thể tìm ra host nào đang yêu cầu nhận lưu lượng của nhóm nào.

Để tham gia vào một nhóm, một host phải gửi các thông điệp Multicast MR về địa chỉ Multicast của nhóm đó. Một Switch L2 phải lắng nghe tất cả các khung Multicast để tìm ra thông tin IGMP. Đây rõ ràng là một gánh nặng cho CPU của Switch. Một thiết bị L3 Switch có thể tách ra thông tin lớp 3 trong khung. Kiểu Switch này phải lắng nghe mọi gói IGMP. Khi một thông điệp MR được lắng nghe, Switch sẽ thêm địa chỉ MAC của nhóm Multicast vào bảng CAM của nó cùng với cổng nguồn nơi mà một gói IGMP được nhận. Tác vụ này sẽ liên kết địa chỉ nhóm với các host đã yêu cầu tham gia nhóm.

Khi các host khác cũng yêu cầu tham gia nhóm, các cổng tương ứng sẽ được thêm vào bảng CAM. Khi có một khung cần đến một địa chỉ Multicast, nó có thể được nhân bản ra chính xác các cổng của các host.Với IGMP Snooping, có hai trường hợp đặc biệt trong bảng CAM:

Một là, tất cả các địa chỉ IGMP là nhận biết bởi Switch cũng sẽ được lưu trong bảng CAM. Các khung Multicast phải được sao lưu về phía các router để lưu lượng này có thể được định tuyến nếu cần thiết.

Hai là, CPU của Switch cũng là một thành viên của nhóm Multicast vì nó có thể xem các gói IGMP đến và đi. Chỉ có lưu lượng của IGMP là được xử lý. CPU sẽ không kiểm tra các khung Multicast khác.

IGMP Snooping được cho phép trên tất cả các cổng của Switch và các giao diện thuộc Vlan. IGMP Snooping có thể được dùng cho một môi trường có nhiều loại Switch khác nhau để kiểm soát việc phân phối lưu lượng ở lớp 2. IGMP Snooping yêu cầu phần mềm Switch lắng nghe các trao đổi IGMP giữa các host và các router. Switch sẽ kiểm tra các thông điệp IGMP và học vị trí của các router và các thành viên nhóm.

Một phần của tài liệu Nghiên cứu triển khai dịch vụ IPTV trên hạ tầng mạng nhà khai thác dịch vụ cố định (Trang 49 - 55)