You are on page 1of 15

CHƯƠNG 1: GIAO THỨC IGMP TRONG IPTV

Các kiểu lưu lượng mạng IP thời gian thực khác nhau được tạo ra bởi các loại
dịch vụ trên nền IP khác nhau như VOIP hay truy cập Internet tốc độ cao. Với mỗi
loại dịch vụ có những đặc điểm riêng về nội dung, vì thế cần phải có những phương
thức phân phối thích hợp. Hiện nay có 3 phương thức dùng để phân phối nội dung
IPTV qua mạng IP là Unicast, Multicast và Broadcast.
Multicast là cách truyền thông tin tới một nhóm các đích đến một cách đồng
thời sử dụng một phương pháp hiệu quả để truyền các bản tin trên mỗi kết nối của
mạng chỉ một lần và chỉ tạo ra các bản sao khi các kết nối đến các đích đến rẽ nhánh.
Một địa chỉ Multicast cho phép phân phối dữ liệu tới một tập hợp các host đã
được cấu hình như những thành viên của một nhóm multicast trong các mạng con
phân tán khác nhau. Đây là phương pháp truyền dẫn đa điểm, trong đó các host có nhu
cầu nhận dữ liệu mới tham gia vào nhóm. Điều này hạn chế tối đa sự lãng phí băng
thông trên mạng.

Hình 1: Kết nối IP được sử dụng bởi kỹ thuật truyền thông đa hướng

1
Giao thức quản lý nhóm Internet IGMP là giao thức tiêu biểu cho truyền thông
Multicast. Dưới đây chúng ta sẽ cùng tìm hiểu cụ thể về giao thức này.
1. IGMP là gì ?
IGMP (Internet Group Management Protocol – giao thức quản lý nhóm Internet) là
giao thức truyền thông để thông báo cho các bộ định tuyến hướng lên rằng một máy
trạm muốn nhận một luồng multicast. Một máy trạm trở thành một thành viên của một
nhóm multicast (được định nghĩa bởi một địa chỉ IP lớp D 224.0.0.0 đến
239.255.255.255) cùng với các thiết bị thu khác. Đây là một cơ chế khác của các cơ
chế MPR (Multicast Routing Protocol) chỉ chạy trên các thiết bị định tuyến. Nói cách
khác khi một máy trạm chỉ ra rằng nó muốn nhận một luồng multicast, tùy vào mạng
các thiết bị định tuyến để quyết định xử lý như thế nào và kết quả luôn là host sẽ nhận
được một luồng.
IGMP sử dụng hai bản tin cơ sở cho các hoạt động tiêu chuẩn: Các Report và
Query, các host gửi các Report để gia nhập hoặc rời khỏi một nhóm. Một host nhận
Query từ một thiết bị định tuyến nếu thiết bị đó muốn, cho dù host có muốn là thành
viên của một nhóm multicast hay không.
IGMP phát triển từ IGMPv1 đến IGMPv2 và phát triển đến bản cuối cùng
IGMPv3. 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 ( time to live ) có giá trị bằng 1

2. Ứng dụng
 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 có một máy muốn rời nhóm multicast. 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.
 Là giao thức cơ bản được sử dụng trong hệ thống IPTV chính, IGMP cho
đăng ký vào một dòng truyền tải thông tin đa hướng (kênh truyền hình) và
thay đổi từ một dòng truyền tải thông tin đa hướng khác (kênh truyền hình
thay đổi). Địa chỉ IP của dòng truyền tải thông tin đa hướng hoạt động
ở mạng LAN (bao gồm các VLAN) và mạng WAN. Địa chỉ IP của dòng
truyền tải thông tin đa hướng thường được định tuyến trong mạng lõi của mã
chương trình phát đa hướng không phụ thuộc vào giao thức (PIM), thiết lập
đúng sự phân bổ của dòng truyền tải thông tin đa hướng (các kênh truyền
hình) từ nguốn phát sóng của tất cả các đường truyền đến với khách hàng.

2
3. Phiên bản và hoạt động của IGMP

Hiện tại có 3 phiên bản 

IGMPv1 xác định các thành viên nhóm query và report process. Ver2 mở rộng
của ver 1 bằng cách thêm các cơ chế querier và cơ chế leave của thành viên. ver 3 mở
rộng của ver 2 cho phép host chỉ định multicast source mà chúng muốn hoặc không
muốn nhận data. Các router multicast chạy phiên bản IGMP mới hơn có thể xác định
được những bản tin IGMP gửi từ các host chạy phiên bản cũ hơn, mặc dù mỗi phiên
bản thì message có những format khác nhau. 

Tất cả các phiên bản IGMP hỗ trợ any-source multicast (ASM). IGMPv3 có thể
áp dụng trực tiếp cho phát đa hướng nguồn cụ thể - source-specific multicast (SSM).
IGMP v1 và v2 có thể áp dụng SSM model tuy nhiên phải cấu hình trước

Item IGMPv1 IGMPv2 IGMPv3

Lựa chọn hàng Thông qua protocol Thông qua sự cạnh Thông qua sự cạnh
đợi Independent tranh giữa các tranh giữa các
multicast – giao router multicast router multicast
thức không phụ trong một phân trong một phân
thuộc multicast đoạn mạng cục bộ đoạn mạng cục bộ
(PIM)

Bản tin general Được hỗ trợ Được hỗ trợ Được hỗ trợ


query

Bản tin Report Được hỗ trợ Được hỗ trợ Được hỗ trợ

Bản tin Group- Không hỗ trợ Được hỗ trợ Được hỗ trợ


specific query
(hàng đợi
nhóm cụ thể)

Leave massage Không hỗ trợ Được hỗ trợ Không có bản tin


leave. Thay vào đó,
thành viên nhóm
gửi 1 bản tin report
cụ thể để thông báo
với multicast router
rằng chúng đang

3
rời nhóm

Bản tin Group- Không hỗ trợ Không hỗ trợ Hỗ trợ


and-source-
specific query

(nhóm và
nguồn cụ thể)

Chỉ định nguồn Không hỗ trợ Không hỗ trợ Không hỗ trợ


phát đa hướng
trong bản tin
report

ASM model Được hỗ trợ Được hỗ trợ Được hỗ trợ

SSM model Yêu cầu config Yêu cầu config Được hỗ trợ
IGMP SSM mapping IGMP SSM
mapping

Các bản tin IGMPv1 IGMPv2 IGMPv1,v2,v3


phiên bản giao
thức được hỗ
trợ

3.1. IGMP version 1

Để tham gia vào một nhóm multicast, một host sẽ gửi thông điệp
đăng ký nhóm đến router cục bộ của nó. Thông điệp này có tên
Membership Report IGMP chứa địa chỉ multicast, thông báo cho router
về địa chỉ multicast mà host muốn tham gia vào.

Cứ 60 giây, một router trên mỗi phân đoạn mạng sẽ gửi truy vấn
đến tất cả các host để kiểm tra xem các host này có còn quan tâm nhận
lưu lượng multicast nữa không. Router này còn gọi là IGMPv1 Querier
và chức năng của nó là mời các host tham gia vào nhóm.

4
Chủ yếu sử dụng mô hình query-response cho phép multicast
router và multilayer switch tìm nhóm multicast nào đang hoạt động (có
một hoặc nhiều host quan tâm đến nhóm multicast) trên phân đoạn mạng
cục bộ.

3.1.1. IGMPv1 message

IGMP version 1 xác định 2 loại bản tin:

  General query: một querier gửi 1 bản tin General Query tới tất cả các host
và router trong phân đoạn nội bộ để khám phá nhóm multicast nào có
những thành viên trong cùng phân đoạn mạng.
 Report: các host gửi Report message tới multicast router để yêu cầu tham
gia vào nhóm multicast hoặc phản hồi bản tin General query.

Hình 2: IGMPv1 Message format

Field Mô tả

Version Được set là 1

Type Hai bản tin sẽ có 2 option:

·        0x1: general query

·        0x2: report

Unused Trong bản tin IGMPv1, trường này được


set là 0 bởi người gửi và được bỏ qua
bởi người nhận.

Checksum Ban đầu trường này được set là 0, thiết


bị gửi tính toán payload rồi điền vào

5
trường này, thiết bị nhận xác minh trước
khi xử lý

Group address Trong bản tin General Query, trường này


set là 0. Trong bản tin Membership
Report, trường này được set là địa chỉ
của nhóm mà thành viên yêu cầu tham
gia.

3.1.2. Hoạt động của IGMPv1

IGMPv1 sử dụng cấu trúc query -  report để quản lý multicast groups. Khi
có nhiều multicast router trên cùng 1 phân đoạn mạng, tất cả các multicast
router có thể nhận bản tin membership report từ các host. Do đó chỉ một
multicast router cần gửi bản tin query tới phân đoạn mạng. Router lựa chọn gửi
bản tin query được coi là IGMP querier. Trong khi thực hiện IGMPv1, 1 router
được lựa chọn bởi PIM ( Protocol Independent Multicast là tập giao thức định
tuyến đa hướng) với tư cách là querier. 

Hình 3: Multicast Network

Hình trên biểu thị một network chạy IGMPv1, router A và router B kết nối từ 1
phân đoạn mạng với 3 thiết bị nhận: Host A, Host B, Host C. Router A là IGMP
querier trong phân đoạn mạng này. Host A và host B muốn nhận dữ liệu từ nhóm G1,
và host C muốn nhận dữ liệu từ G2.

IGMPv1 liên quan đến 3 cơ chế: cơ chế general query và report, cơ chế tham
gia và cơ chế rời khỏi.

6
a. Cơ chế general query và report
Bằng cách gửi bản tin General Query và nhận bản tin Report, một IGMP
querier biết nhóm nào có thành viên trên phân đoạn mạng cục bộ.

Hình 4:  Trình bày general query và report process.

1. IGMP querier gửi bản tin General query, với địa chỉ đích là 224.0.0.1
(chỉ ra tất cả các host và router trong cùng phân đoạn mạng). Tất cả các
thành viên trong nhóm bắt đầu hẹn giờ khi chúng nhận được General
Query message.

IGMP querier gửi bản tin General query theo từng khoảng thời gian.
Khoảng thời gian này mặc định là 60 giây/lần . Host A và Host B là
thành viên của G1 và bắt đầu hẹn giờ cho G1. Độ dài bộ hẹn giờ là một
số ngẫu nhiên từ 0 đến thời gian phản hồi tối đa (mặc định 10s).

2.  Host có bộ đếm thời gian hết hạn trước tiên sẽ gửi bản tin Report cho
group.

Trong ví dụ này, bộ đếm thời gian G1 trong Host A hết hạn trước, và
Host A gửi 1 bản tin Report với địa chỉ đích G1. Khi Host B nhận một
bản tin Report được gửi từ Host A, nó sẽ dừng bộ đếm giờ G1 và không
gửi bản tin Report cho G1. Cơ chế này làm giảm số lượng bản tin
Report được truyền tải trên phân đoạn mạng, giảm tải trên multicast
router.

7
3. Sau khi IGMP querier nhận bản tin Report từ host A, nó biết rằng group
G1 có thành viên trong phân đoạn mạng cục bộ. IGMP querier sử dụng
giao thức định tuyến đa hướng (multicast routing protocol) để tạo 1 (*,
G1) entry, trong đó * là viết tắt của nguồn bất kỳ đa hướng nào.
Khi IGMP querier nhận dữ liệu gửi đến G1, nó chuyển tiếp dữ liệu tới
phân đoạn mạng này.

b. Cơ chế join

Hình 5: Host C tham gia group G2.

1. Host C gửi 1 bản tin Report cho G2 mà không cần đợi bản tin
General Query.
2. Sau khi nhận bản tin Report, IGMP querier biết rằng một thành viên
của G2 đã kết nối với phân đoạn mạng cục bộ, và tạo 1 (*, G2) entry.
Khi IGMP querier nhận dữ liệu đến G2, nó sẽ chuyển tiếp dữ liệu tới
phân đoạn mạng này.

c. Cơ chế Leave
IGMPv1 không xác định bản tin Leave. Sau khi 1 host rời khỏi group, nó
không phản hồi bản tin General Query nữa (60 giây thì Querier sẽ gửi 1 bản tin
General Query 1 lần).

8
1. Nếu host A rời G1

Khi host A nhận bản tin General Query từ IGMP querier, nó không gửi bản tin
Report cho G1. G1 có host B là thành viên khác trên phân đoạn mạng, host B
không rời khỏi G1 nên vẫn gửi bản tin Report cho G1 để phản hồi lại bản tin
General Query. Do đó, IGMP querier không nhận ra Host A đã rời khỏi nhóm.

2. Nếu Host C rời G2

Khi host C nhận General Query message từ IGMP querier, nó không gửi bản
tin Report cho G2. Bởi vì G2 không có thành viên khác trong nhóm trong phân
đoạn mạng này, IGMP querier không nhận được bản tin Report nào từ G2 gửi
đến. Sau một thời gian nhất định (130s là mặc định) (sau 3 lần querier gửi bản
tin General Query và sau khi chờ 10s mặc định phản hồi lần thứ 3) IGMP
querier xóa (*,G2) entry.

3.2. IGMP version 2

Mở rộng của IGMPv1, cung cấp các tính năng như quy trình IGMP leave để
giảm độ trễ rời nhóm (leave) do version 1 có độ trễ rời nhóm khá lâu là 130
giây, truy vấn theo nhóm cụ thể và thời gian query-response tối đa rõ ràng.
IGMPv2 bổ sung khả năng chọn IGMP querier mà không phụ thuộc vào
giao thức multicast để thực hiện tác vụ này.

9
IGMPv2 làm việc tương tự như V1. Sự khác nhau cơ bản nhất của 2 phiên
bản là cơ chế leave. Khi một host trong IGMPv2 rời nhóm, nó sẽ gửi leave
message tới IGMP querier.  Khi IGMP querier nhận được bản tin leave
message, nó gửi 1 bản tin Group - Specific (nhóm cụ thể) Query để kiểm tra
xem trong nhóm có có thành viên khác không. Nếu IGMP querier không
nhận được bất kỳ bản tin Report cho nhóm trong 1 khoảng thời gian cụ thể,
nó sẽ không duy trì tư cách thành viên của nhóm. IGMPv2 cho phép IGMP
querier biết nhóm không có thành viên nào trên phân đoạn mạng cục bộ và
và update lại thành viên trong nhóm nhanh chóng. Cơ chế rời nhóm làm
giảm lưu lượng phát đa hướng dư thừa trên mạng.

 Dịch vụ LineTV trong nhóm dịch vụ của IPTV sử dụng giao thức
IGMPv2. Để xem một kênh LineTV thì client gửi gói tin IGMP
Report/Join Group. Nếu không muốn xem nữa, để rời một kênh LineTV thì
gửi gói tin IGMP Report/Leave Group.

3.2.1. IGMPv2 message

IGMP version 2 khác version 1 ở chỗ: ngoài  General Query và Report, v2


xác định thêm 2 loại bản tin:

 Leave message: được gửi bởi 1 host thông báo cho querier trong phân
đoạn mạng nội bộ rằng đã rời nhóm.
 Group-specific query: được gửi bởi 1 querier tới 1 nhóm cụ thể trong
phân đoạn mạng nội bộ để kiểm tra nhóm có thành viên hay không.

IGMPv2 thêm trường mới đến bản tin General Query: như Max response
time. Trường này có thể được cấu hình để kiểm soát tốc độ phản hồi host
sau khi nhận bản tin Query.

Hình 6:  IGMP v2 format message

Field Mô tả

Type 0x11: bản tin query gồm general và


group-specific

10
0x12: IGMPv1 response message.

0x16: IGMPv2 response message.

0x17: Leave message.

Max response Time Sau khi nhận bản tin General Query, các
host phải phản hồi với bản tin Report
trong khoảng thời gian phản hồi tối đa.

Trường này chỉ có giá trị trong bản tin


Query.

checksum Dài 16 bit. Khi tính toán checksum, một


thiết bị ban đầu set trường này là 0.
Người gửi tính toán checksum và chèn nó
vào trường này. Người nhận xác minh
checksum trước khi xử lý bản tin.

Group address Địa chỉ group được set khác nhau ở mỗi
loại bản tin khác nhau:

General query: 0

Group-specific query: là địa chỉ của nhóm


được truy vấn.

Report/leave: trường này được set là địa


chỉ của nhóm mà host muốn tham gia
hoặc rời đi

3.2.2. Hoạt động của IGMP version 2

11
IGMPv2 giới thiệu cách chọn ra querier và cơ chế rời nhóm (leave).

a. Cơ chế chọn router nào là querier


IGMPv2 định nghĩa một cơ chế chọn ra querier độc lập. Khi nhiều bộ multicast
router có mặt trên một phân đoạn mạng cục bộ, router có địa chỉ IP nhỏ nhất sẽ
được bầu làm querier.

Hình 7: Quá trình chọn querier trong IGMPv2.

12
1. Tất cả IGMPv2 router (router A và B trong ví dụ) tự xem nó là querier và
gửi bản tin General Query tới tất cả các host và router trong phân đoạn
mạng chia sẻ.

Khi router nhận bản tin General Query, chúng so sánh địa chỉ IP nguồn
của bản tin với địa chỉ IP interface của chính nó. Router với địa chỉ IP
nhỏ hơn trở thành querier, và router khác được xem là non-querier. Trong
ví dụ trên, router A có địa chỉ interface IP nhỏ hơn Router B. do đó,
router A trở thành querier, và router B trở thành non-querier.

2. IGMP querier (router A) gửi bản tin General Query tới tất cả các host và
multicast router khác trong phân đoạn mạng cục bộ. Non-querier (router
B) không còn gửi bản tin General Query.

Router B khởi động bộ đếm thời gian hiện tại querier khác. Nếu router B
nhận một bản tin Query từ querier trước khi hết giờ, nó sẽ reset lại thời
gian.

b. Cơ chế rời khỏi nhóm

Hình 8: Quá trình rời khỏi nhóm

1. Host A gửi một bản tin Leave cho G1 tới tất cả multicast router trong phân
đoạn mạng cục bộ. Địa chỉ đích của bản tin leave là 224.0.0.2.

2. Khi querier nhận bản tin leave, nó gửi bản tin Group – Specific query cho
G1 trong một khoảng thời gian để kiểm tra xem G1 có thành viên khác trên
phân đoạn mạng này hay không. Khoảng thời gian và số lượng truy vấn có

13
thể được cấu hình. Bằng cách mặc định, querier gửi bản tin Group-Specific
lần 2, ở khoảng thời gian 1 giây. Ngoài ra querier khởi động bộ đếm thời
gian thành viên nhóm.  Độ dài của bộ đếm thời gian là tích số của khoảng
thời gian và số lượng truy vấn dành cho nhóm.

3. Có thành viên khác của G1 trong phân đoạn mạng, host B sẽ gửi 1 bản tin
Report cho G1 ngay lập tức sau khi nhận 1 bản tin Group-Specific query.
Do đó Querier tiếp tục duy trì thành viên của G1.

Nếu G1 không có thành viên trong phân đoạn mạng, querier sẽ không nhận
bản tin Report cho G1. Khi bộ hẹn giờ thành viên nhóm hết thời gian,
querier sẽ xóa (*,G1) entry. Sau đó, khi querier nhận dữ liệu multicast đến
G1, nó không chuyển tiếp dữ liệu nữa.

 Khi cấu hình IGMP và sau khi host gửi bản tin LEAVE trong IGMPv2
ta quan sát được trên Wireshark:

14
3.3. IGMP version 3
3.3.1. IGMPv3 message
Phiên bản này giới thiệu bổ sung bản tin Group – Source Report cho phép
một host có thể quyết định nhận lưu lượng từ các nguồn riêng biệt của một
nhóm Multicast. Một bản tin Group – Source Report cho phép một host chỉ
ra địa chỉ IP của các nguồn riêng biệt mà nó muốn nhận. Một bản tin
Exclusion Group – Source Report cho phép host nhận dạng chính xác các
nguồn mà nó không muốn nhận. Cuối cùng bản tin Leave Group của
IGMPv2 được nâng cao thành bản tin Group – Source Leave. Đặc điểm này
cho phép một host rời khỏi toàn bộ nhóm hay chỉ ra các IP riêng biệt mà nó
muốn rời khỏi.
Bản tin Report của v3 có thể có thông tin của nhiều group trong khi của v1,
v2 chỉ được  1 group. Nhờ đó khi sử dụng IGMPv3 sẽ giảm thiểu gói tin
truyền trong mạng.
3.3.2. Hoạt động của IGMPv3
IGMPv3 khác với v2 ở chỗ là nó cho phép host chọn source multicast cụ
thể.
IGMPv3 Report Message có destination là 224.0.0.22 đại diện cho tất cả
các router có thể gửi multicast trong cùng một đoạn mạng. Report
Message bao gồm Group Record Field, cho phép host chọn source
multicast cụ thể. Nó muốn nhận hay không muốn nhận multicast data thì
nó chọn cụ thể luôn.
Hình dưới thể hiện rằng có 2 multicast source là S1 và S2, gửi data
multicast tới Group C. Host chỉ muốn lấy data gửi từ S1 tới G.

15

You might also like