LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm của
riêng cá nhân tôi, không sao chép lại của người khác. Luận văn là kết quả của
quá
trình học tập, nghiên cứu và làm việc nghiêm túc trong suốt hơn hai năm
học cao
học. Trong toàn bộ nội dung của luận văn, những điều được trình bày
hoặc là kết
quả nghiên cứu của cá nhân hoặc là kết quả tổng hợp từ nhiều
nguồn tài liệu
khác. Những kết quả nghiên cứu nào của cá nhân đều được chỉ
ra rõ ràng trong
luận văn. Các thông tin tổng hợp hay các kết quả lấy từ nhiều
nguồn tài liệu khác
thì được trích dẫn một cách đầy đủ và hợp lý. Tất cả các
tài liệu tham khảo đều
có xuất xứ rõ ràng và được trích dẫn hợp pháp.
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo
quy định cho lời cam đoan của mình.
Thái Nguyên, tháng 10 năm 2010
Người cam đoan
Trần Ngọc Sơn
Trang: 2
MỤC LỤC
DANH MỤC BẢNG 4
DANH MỤC HÌNH ẢNH 5
MỞ ĐẦU 7
1. Đặt vấn đề 7
2. Mục tiêu luận văn 7
3. Hướng tiếp cận 8
4. Kết cấu của luận văn 8
CHƯƠNG 1: TÌM HIỂU VỀ CÔNG NGHỆ IP MULTICAST 9
1.1. Khái quát về IP Multicast 9
1.1.1. Các thành phần cơ bản 9
1.1.2 Địa chỉ Multicast 10
1.1.3 Cây phân phối multicast 11
1.2. Định tuyến Multicast 18
1.2.1 Giao thức định tuyến multicast véctơ khoảng cách 18
1.2.2 Giao thức PIM
Dense mode 20
1.2.2.1 Tìm kiếm hàng xóm 21
1.2.2.2 Cắt nhánh 22
1.2.2.3 Cơ chế xác nhận 23
1.2.2.4 Ghép nhánh 23
1.2.3 PIM Sparse Mode 24
1.2.3.1 Cây chia sẻ 24
1.2.3.2 Cây đường đi ngắn nhất 24
1.2.3.3 Thông điệp Join/Prune 25
1.2.3.4 Đăng ký nguồn dữ liệu 25
1.2.3.5 Chuyển
từ cây chia sẻ sang cây đường đi ngắn nhất 27
1.2.4 Multicast Open Shortest Path First (MOSPF) 27
1.2.4.1 Định tuyến
multicast trong vùng 27
1.2.4.2 Định tuyến
multicast trên nhiều vùng 29
1.2.4.3. Định tuyến
multicast trên các AS 32
CHƯƠNG 2: ĐÀO TẠO ĐIỆN TỬ DỰA TRÊN CÔNG NGHỆ IP MULTICAST 33
2.1. Một số công nghệ mạng phục vụ cho hệ thông đào tạo điện tử 33
2.1.1. Giao thức ITU H.323: 33
2.1.1.1 Tổng quan:
33
2.1.1.2 Cấu trúc của H.323:
34
2.1.1.3 Chồng giao thức H.323:
34
2.1.1.4. Hoạt động của H.323: 35
2.1.1.5. Mô hình mạng
cơ bản của H.323: 35
2.1.2 Giao thức khởi tạo phiên SIP
36
2.1.2.1 Tổng quan:
36
2.1.2.2. Cấu trúc của SIP 37
2.1.2.3 Tổng quan về hoạt động của SIP
39
2.1.2.4. Hoạt động chính của SIP 42
2.1.2.5. Mô hình liên mạng
giữa SIP và H.323: 43
2.2. Đào tạo điện tử dựa trên công nghệ IP Multicast 44
2.2.1. Giới thiệu 45
Trang: 3
2.2.2. Dịch vụ E-Learning 46
2.2.3 Kiến trúc hệ thống 48
2.2.4. Chất lượng dịch vụ QOS 50
2.2.5. E-Learning dịch vụ và tính năng 51
CHƯƠNG 3: XÂY DỰNG HỆ THỐNG ĐÀO TẠO ĐIỆN TỬ DỰA TRÊN CÔNG
NGHỆ IP MULTICAST 53
3.1. Mục tiêu và yêu
cầu
dựng ứng dụng 53
3.2. Công cụ MBone 56
3.3. Xây dựng hệ thống Đào tạo điện tử dựa trên công nghệ Multicast 58
3.3.1. Cài đặt và cấu hình máy chủ Linux 62
3.3.1.1. Đặt địa chỉ IP 62
3.3.1.2. Thiết lập định tuyến (route) hỗ trợ Multicast 63
3.3.1.3. Cấu hình ZEBRA 63
3.3.1.4. Khởi động các dịch vụ mạng: 65
3.3.1.5. Kiểm tra lưu lượng trên NIC 66
3.3.2. Demo
hệ thống truyền
Video 67
3.3.2.1. Thao tác trên LAN 1 (Máy nguồn phát tín hiệu Video) 67
3.3.2.2. Thao tác trên LAN 2 (Các máy nhận Video) 69
KẾT QUẢ ĐẠT ĐƯỢC 71
KẾT LUẬN 72
NHỮNG KIẾN NGHỊ NGHIÊN CỨU TIẾP THEO 73
TÀI LIỆU THAM KHẢO 74
Trang: 4
DANH MỤC BẢNG
Bảng 1.1: Thông điệp IGMPv13 13
Bảng 1.2: Các trường trong thông điệp IGMPv1 13
Bảng 1.3: Thông điệp IGMPv2 14
Bảng 1.4: Các trường trong thông điệp IGMPv2 14
Bảng 1.5: Các trường trong thông điệp IGMPv3 16
Bảng 2.1. vic và chuột tham số QoS được sử dụng để điều chỉnh hồ sơ các ứng dụng . 50
Bảng 3.1. Thiết lập các thông số cho các phương thức khác nhau QoS thích 57
Trang: 5
DANH MỤC HÌNH ẢNH
Hình 1.1: Các thành phần tham gia vào IP Multicast 9
Hình 1.2: Định dạng của địa chỉ IP lớp D 10
Hình 1.3: Ánh xạ địa chỉ IP multicast sang địa chỉ MAC 10
Hình 1.4: Cây đường đi ngắn nhất của host A 12
Hình 1.5: Cây chia sẻ 12
Hình 1.6: Tìm hàng xóm trong DVMRP 19
Hình 1.7: Cắt nhánh trong DVMRP 19
Hình 1.8: Ghép nhánh trong DVMRP 20
Hình 1.9: Cây phân phối PIM-DM 22
Hình 1.10: Cắt nhánh trong PIM-DM 22
Hình 1.11: Xác nhận trong PIM-DM 23
Hình 1.12: Ghép nhánh trong PIM-DM 24
Hình 1.13: Một vùng MOSPF chứa nguồn và thành viên nhóm multicast G 28
Hình 1.14 Thông điệp nhóm tóm tắt trong vùng đường trục 30
Hình 1.15 Cây đường đi ngắn nhất SPTs trong vùng đường trục 30
Hình 1.16 Nguồn trong vùng không phải đường trục 31
Hình 1.17. Lưu lượng multicast xuống các miền MOSPF 32
Hình 2.1: Cấu trúc của H.323 34
Hình 2.2: Chồng giao thức H.323 34
Hình 2.3. Các giai đoạn chính của H.323 35
Hình 2.4. Mô hình H.323 cơ bản thông qua Internet 35
Hình 2.5. Redirect Server 39
Hình 2.6. Hoạt động của Proxy server 42
Hình 2.7. Hoạt động của Redirect server 42
Hình 2.8. Kết hợp SIP và H.323 sử dụng TDM 43
Hình 2.9. Kết hợp SIP và H.323 sử dụng Proxy đa giao thức 43
Hình 2.10. Kết hợp SIP và H.323 không dùng kết nối 44
Trang: 6
Hình 2.11. QoS dung sai ứng dụng chung các loại âm thanh và video 47
Hình 2.12. hệ thống của kiến trúc 48
Hinh 3.1. BW nhu cầu cho từng chế độ QoS 59
Hình 3.2. CPU nhu cầu cho từng chế độ QoS 59
Hình 3.3. Tuyến tính phân phối băng thông bằng cách sử dụng các ứng dụng mặc
định, thích ứng không được sử dụng 60
Hình 3.4. Tăng số lượng các thành viên trong nhóm đang hoạt động bằng cách sử
dụng thích ứng để phân phối lại nguồn mạng 60
Hình 3.5 - Hình thức QoS thông qua hệ thống phải đối mặt với điều kiện nguồn tài
nguyên có sẵn 61
Hình 3.6. Sơ đồ hệ thống 62
Hình 3.7. Khởi động Vic 67
Hình 3.8. Kết quả 1 68
Hình 3.9. Kết quả 2 69
Hình 3.10. Kết quả 3 70
Trang: 7
MỞ ĐẦU
1. Đặt vấn đề
Mạng máy tính và các ứng dụng trên mạng máy tính ngày càng trở
nên thông dụng, nhu cầu chuyển một lượng rất lớn các thông tin đến nhiều
nơi trong cùng một thời gian là rất cần thiết. Phần lớn các ứng dụng trên mạng
hiện nay sử dụng phương pháp truyền dữ liệu unicast, đó là phương pháp
truyền dữ liệu từ điểm tới điểm.
Trong thực tế hiện nay nhu cầu phải thường xuyên gửi dữ liệu từ một
điểm tới nhiều điểm, phương pháp truyền dữ liệu unicast không hiệu quả.
Trường này sử dụng unicast thì cùng một dữ liệu sẽ phải được đóng gói nhiều
lần và lần lượt gửi chúng tới từng điểm đích. Một cách khác để thực hiện việc
truyền dữ liệu từ một điểm đến nhiều điểm thì có thể sử dụng giao thức
broadcast, đây là phương pháp gửi dữ liệu từ một điểm đến tất cả các điểm
trên mạng. Cả hai phương pháp trên đều gây nên những sự lãng phí tài
nguyên mạng, trong trường hợp này với hạ tầng cơ sở mạng như hiện nay
giao thức multicast thay thế là tốt nhất, giúp ta tiết kiệm được băng thông
mạng cũng như cải thiện được tốc độ truyền dữ liệu. Multicast là phương
pháp truyền dữ liệu từ điểm tới nhiều điểm, trong đó một nguồn dữ liệu sẽ gửi
tới một nhóm thông qua địa chỉ nhóm multicast. Phương pháp multicast có
các giao thức cho phép các máy tính có thể đơn giản gia nhập vào nhóm để
nhận dữ liệu hay huỷ bỏ nhóm, các giao thức định tuyến cũng được xây dựng
cho phép các ứng dụng có thể gửi dữ liệu một cách hiệu trên mạng.
2. Mục tiêu luận văn
Xuất phát từ vấn đề nêu trên, luận văn “Tìm hiểu giao thức IP
multicast ứng dụng trong đào tạo điện tử” là đối tượng nghiên cứu với những
vấn đề tập trung chủ yếu như sau:
Trang: 8
- Tìm hiểu các thành phần cơ bản của quá trình truyền dữ liệu
multicast, cây
multicast, chuyển tiếp multicast, cũng như quá trình tham gia
nhóm
multicast thông qua giao thức Internet Group Management Protocol
(IGMP).
- Tìm hiểu các giao thức định tuyến được sử dụng trong multicast như
giao
thức định tuyến Distance Vector Multicast Routing Protocol (DVMRP), giao
thức định tuyến Protocol Independent Multicast (PIM) và giao thức định
tuyến Multicast Open Shortest Path First (MOSPF).
- Ứng dụng giao thức IP Multicast trong đào tạo điện tử
3. Hướng tiếp cận
Với mục tiêu là tìm hiểu công nghệ IP multicast, luận văn được tiếp
cận theo hướng tập trung nghiên cứu các khái niệm, tìm hiểu các giao thức
phổ biến của multicast, từ đó chỉ ra được các ưu điểm nhược điểm cũng như
khả năng áp dụng của IP multicast vào các ứng dụng đào tạo điện tử.
4. Kết cấu của luận văn
Phần mở đầu
Chương 1: Tìm hiểu về công nghệ IP Multicast
Chương 2: Đào tạo điện tử dựa trên công nghệ IP Multicast
Chương 3: Xây dựng hệ thống đào tạo điện tử dựa trên công nghệ IP
Multicast
Kết quả đạt được
Kết luận
Những kiến nghị nghiên cứu tiếp theo
Tài liệu tham khảo
Trang: 9
CHƯƠNG 1: TÌM HIỂU VỀ CÔNG NGHỆ IP
MULTICAST
1.1. Khái quát về IP Multicast
1.1.1. Các thành phần cơ bản
Để xây dựng hệ thống trao đổi được dữ liệu đầu tiên ta cần phải có các
máy tính và các router hỗ trợ giao thức multicast, khi đó các máy tính có thể
gửi hay nhận dữ liệu từ giao thức IP multicast.
Thứ nhất máy nguồn gửi dữ liệu qua giao thức multicast tới một địa
chỉ nhóm ( sử dụng một địa chỉ lớp D).
Thứ hai các máy trạm muốn nhận các gói tin multicast sẽ liên hệ với
router cục bộ để đăng ký tham gia nhóm và nhận dữ liệu.
Thứ ba các router sẽ sử dụng một giao thức định tuyến multicast để
xác định các mạng con và chuyển dữ liệu multicast tới các thành viên của
nhóm. Nếu mạng con không có thành viên của nhóm, router sẽ không chuyển
dữ liệu tới mạng đó.
Hình 1.1: Các thành phần tham gia vào IP Multicast
Trang: 10
1.1.2 Địa chỉ Multicast
IP multicast sử dụng địa chỉ lớp D từ 224.0.0.0 đến 239.255.255.255
để cho các thiết bị mạng có thể dễ dàng xác định được các địa chỉ multicast
bằng cách đọc 4 bit bên trái của một địa chỉ. Bốn bit này của một địa chỉ
multicast luôn luôn bằng 1110.
Class D
28 bits
1 1 1 0
Multicast Group ID
Hình 1.2: Định dạng của địa chỉ IP lớp D
Do không có cơ chế tương đương với giao thức phân giải địa chỉ như
trong truyền thông unicast, một dạng giá trị đặc biệt dành riêng cho địa chỉ
MAC của multicast sẽ được dùng. Các địa chỉ này bắt đầu bằng 01005E, phần
28 bit sau của địa chỉ IP multicast sẽ được ánh xạ vào 23 bit thấp của địa chỉ
MAC bằng một giải thuật đơn giản.
Hình 1.3: Ánh xạ địa chỉ IP multicast sang địa chỉ MAC
Cơ chế ánh xạ địa chỉ, chỉ có 23 bit cuối của địa chỉ là được chép từ
địa chỉ IP sang địa chỉ MAC còn 5 bit của địa chỉ IP không được chuyển sang
địa chỉ MAC. Cơ chế ánh xạ này có thể có 32 địa chỉ multicast khác nhau có
thể ánh xạ vào cùng một địa chỉ MAC. Vì vậy, khi một host nhận dữ liệu nó
Trang: 11
kiểm tra tất cả các frame có MAC mà nó quan tâm, sau đó host này phải kiểm
tra phần địa chỉ IP bên trong mỗi frame để nhận ra phần địa chỉ của từng
nhóm multicast.
Một số loại địa chỉ được dành riêng của multicast:
- Toàn bộ không gian địa chỉ multicast: 224.0.0.0 - 239.255.255.255.
- Địa chỉ link-local: 224.0.0.0 - 224.0.0.255 được dùng bởi các giao
thức
định tuyến. Router sẽ không chuyển các gói tin có địa chỉ này. Các địa
chỉ
bao gồm địa chỉ tất cả các host 224.0.0.1, tất cả các router 224.0.0.2, tất cả
các OSPF router 224.0.0.5 … đây là địa chỉ các nhóm cố định được định
nghĩa trước.
- Khoảng địa chỉ dành cho quản trị 239.0.0.0 - 239.255.255.255 được
dùng
trong các miền multicast khác nhau. Địa chỉ này không được sử dụng giữa
các miền multicast nên nó có thể được dùng lại nhiều lần.
- Địa chỉ toàn cục 224.0.1.0 - 238.255.255.255 được dùng bởi bất cứ
đối
tượng nào. Các địa chỉ này được sử dụng trên Internet, vì vậy địa chỉ này
phải duy nhất.
1.1.3 Cây phân phối multicast
Để phân phối dữ liệu multicast tới tất cả các máy nhận, cây phân phối
multicast được sử dụng, nó có tác dụng điều khiển đường đi của dữ liệu
truyền trên mạng. Có hai loại cơ bản của cây phân phối
* Cây nguồn: Là cây với gốc của nó chính là nguồn dữ liệu multicast
và các nhánh của nó dẫn tới các đầu cuối nhận dữ liệu trên mạng. Do loại cây
này sử dụng đường đi ngắn nhất nên gọi là cây đường đi ngắn nhất (Shortest
Path Tree – SPT).
Trang: 12
Hình 1.4: Cây đường đi ngắn nhất của
host A
* Cây chia sẻ: Là cây sử dụng một gốc chung duy nhất tại một điểm đã chọn
trên mạng. Gốc sẻ này còn được gọi là điểm hẹn (Rendezvous Point – RP).
Khi sử dụng cây chia sẻ, nguồn phải gửi lưu lượng của nó tới gốc sau đó lưu
lượng này được chuyển tiếp theo các nhánh của cây đến các đầu cuối nhận dữ
liệu.
Hình 1.5: Cây chia sẻ
Trang: 13
Dữ liệu multicast từ host A và host D được gửi tới gốc cây là router D
và theo nhánh cây đến hai máy nhận là host B và host C. Tất cả các nguồn
trong nhóm multicast cùng sử dụng chung một cây chia sẻ, ký hiệu (*, G)
được sử dụng để biểu diễn cây.
- Trong đó * :là tất cả các nguồn
- G: là địa chỉ nhóm multicast.
Vì thế cây chia sẻ trong hình 1.5 có thể được viết (*, 224.2.2.2). Cây
chia sẻ được chia làm hai loại: cây một chiều và cây hai chiều. Trong cây hai
chiều dữ liệu có thể truyền lên và xuống để tới tất cả các máy nhận.
1.1.4 Giao thức quản lý nhóm Internet
Để nhận dữ liệu multicast từ một nguồn, các máy nhận đầu tiên phải
tham gia vào một nhóm multicast, đượ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. Thao tác này được thực hiện thông qua giao thức quản lý
nhóm IGMP (Internet Group Management Protocol). Giao thức IGMP phát
triển từ giao thức Host Membership Protocol. IGMP phát triển từ IGMPv1
(RFC 1112) đến IGMPv2 (RFC 2236) và phiên bản cuối cùng IGMPv3 (RFC
3376). Các thông điệp IGMP được đóng gói trong IP datagram với trường
protocol number bằng 2, trong đó trường TTL (Time To Live) có giá trị bằng
1. Các gói IGMP chỉ được truyền trong LAN và không được tiếp tục chuyển
sang LAN khác do giá trị TTL của nó. Hai mục đích quan trọng nhất của
IGMP là:
- Thông báo cho router multicast biết rằng có một máy muốn nhận dữ
liệu từ
một nhóm multicast.
- Thông báo cho router biết có một máy muốn rời nhóm multicast
Trang: 14
* Giao thức IGMPv1: Bao gồm 2 loại thông điệp là Host Membership
Report và Host Membership Query. Định dạng của thông điệp IGMPv1 được
thể hiện như sau:
0 3 4 8 16
7 15 31
Version Type Unused Checksum
Group Address
Bảng 1.1: Thông điệp IGMPv1
Giá trị của các trường trong IGMPv1 được mô tả:
Tên trường Độ dài Mô tả
Version 4 bit Chỉ định phiên bản của giao thức và luôn có giá trị là 1
Xác định 2 kiểu thông điệp có giá trị:
Type 4 bit
0x1 cho Host Membership Query
0x2 cho Host Membership Report
Unused 8 bit Chứa giá trị 0 khi gửi và bị bỏ qua khi nhận
Checksum 16 bit Dùng để kiểm tra lỗi trong quá trình truyền dữ liệu
Được gán về giá trị 0.0.0.0 khi router gửi gói tin Host
Group
Address
32 bit
Membership Query và được gán giá trị địa chỉ nhóm
multicast khi một máy gửi thông điệp Host Membership
Report
Bảng 1.2: Các trường trong thông điệp IGMPv1
* Giao thức IGMPv2
Giao thức IGMP phiên bản 2 là sự mở rộng các chức năng của IGMP
phiên bản 1 bao gồm:
- Một phương thức để xác định router nào sẽ gửi các thông điệp truy vấn
multicast khi có nhiều router cùng kết nối vào một mạng con.
- Một thông điệp mới được sử dụng khi một host muốn rời nhóm.
- Một thông điệp mới cho phép router truy vấn cho từng nhóm cụ thể
thay vì
tất cả các nhóm.
- Phiên bản mới của thông điệp Host Membership Report. Định dạng
của
thông điệp IGMPv2 được thể hiện như trong bảng 1.3:
Trang: 15
0 8 16
7
15 31
Type Max
RTime
Group Address
Checksum
Bảng 1.3: Thông điệp IGMPv2
Giá trị của các trường trong IGMPv2 được mô tả:
Tên trường Độ dài Mô tả
Xác định 4 kiểu thông điệp có giá trị:
0x11 cho Host Membership Query
Type 8 bit
Maximum
0x12 cho IGMPv1 Host Membership Report
0x16 cho IGMPv2 Host Membership Report
0x17 cho Leave Group Message
Chỉ ra khoảng thời gian tối đa (tính bằng giây) mà
Response Time
8 bit một host có thể phản hồi thông tin truy vấn, chỉ sử
dụng trong các thông điệp truy vấn
Checksum 16 bit Dùng để kiểm tra lỗi trong quá trình truyền dữ liệu
Đượ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
Group Address 32 bit
cụ thể. Các thông điệp Host Membership Report
hoặc thông điệp Leave Group có thể mang địa chỉ
của nhóm trong trường này
Bảng 1.4: Các trường trong thông điệp IGMPv2
Trang: 16
* Giao thức IGMPv3
IGMP phiên bản 3 mở rộng chức năng của IGMPv2 bằng việc hỗ trợ
tính năng multicast cho từng nguồn cho phép các host lọc dữ liệu đi vào dựa
trên địa chỉ IP nguồn. Với IGMPv3 có thể có nhiều nguồn cho một dòng dữ
liệu multicast vì thế các host có thể gia nhập nhóm và nhận dữ liệu từ các
nguồn gần nhất. IGMPv3 còn cải tiến thông điệp Host Membership Query và
thêm phiên bản mới của Host Membership Report.
- Lọc dữ liệu là khả năng cho phép một host chỉ ra nó sẽ nhận nguồn dữ liệu
multicast từ địa chỉ nguồn xác định. IMGPv3 cho phép một host chỉ
rõ hai
thuộc tính sau đây cho các nhóm multicast cụ thể:
+ Danh sách các nguồn mà host nhận dữ liệu.
+ Danh sách các nguồn mà host không nhận dữ liệu.
- Thông điệp IGMPv3 Host Membership Query có cùng giá trị kiểu
và có
cùng định dạng với IGMPv2 Host Membership Query ngoại trừ nó thêm
một số trường ở sau trường địa chỉ nhóm. Các trường này cung cấp các
tham
số truy vấn cho router và chỉ rõ các nguồn được chấp nhận và không được
chấp nhận ứng với mỗi nhóm multicast. Danh sách các nguồn được chấp
nhận
và không chấp nhận chỉ được sử dụng cho truy vấn tới một nhóm cụ thể
có sử
dụng tính năng lọc dữ liệu.
Trang: 17
Bảng mô tả các trường trong thông điệp IGMPv3 Host Membership Query:
Tên trường Độ dài Mô tả
8 bit Xác định 4 kiểu thông điệp có giá trị: 0x11
Type
Maximum
Response Time
8 bit
cho Host Membership Query
Chỉ ra khoảng thời gian tối đa (tính bằng giây)
mà một host có thể phản hồi thông tin truy
vấn, chỉ sử dụng trong các thông điệp truy vấn
Dùng để kiểm tra lỗi trong quá trình truyền dữ
Checksum 16 bit
Group Address 32 bit
Reserved (Dành
4 bit
liệu
Đượ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
Membership Report hoặc thông điệp Leave
Group có thể mang địa chỉ của nhóm trong
trường này
Chứa giá trị 0 khi gửi và bị bỏ qua khi nhận
riêng)
Suppress 1 bit
Querier’s Robustness
Gán giá trị 1 để chi rõ các router nhận dừng
cập nhật thời gian khi nhận một truy vấn
Chỉ ra các gói datagram mong đợi trên mạng.
Variable (QRV)
Querier’s Query
Interval Code(QQIC)
3 bit
8 bit
IGMP có thể lấy lại QRV-1 gói datagram bị
mất
Chỉ ra khoảng thời gian tính bằng giây mà
router đợi giữa hai truy vấn thông thường
Chỉ số lượng địa chỉ nguồn chứa thông điệp
Number of Sources 16 bit
truy vấn
Source Addresses 32 bit Chứa địa chỉ IP của nguồn multicast
Bảng 1.5: Các trường trong thông điệp IGMPv3
1.2. Định tuyến Multicast
Được phân thành ba loại chính gồm:
- Giao thức hoạt động theo mô hình tập trung (Dense Mode) như
DVMRP
và PIM-DM. Hoạt động theo cơ chế quảng bá và loại bỏ trong đó các
router cho rằng trên các mạng còn tồn tại ít nhất một máy nhận dữ liệu
multicast, vì thế chúng gửi dữ liệu xuống tất cả các mạng cho đến khi nhận
được thông báo dừng gửi dữ liệu. Với cơ chế này các giao thức dense mode
phù hợp với các mạng máy tính nhỏ, trong đó lưu lượng multicast được
truyền tới hầu hết các máy trên mạng.
- Giao thức hoạt động theo mô hình phân tán (Sparse Mode) như PIM- SM và
CBT. Hoạt động theo cách ngược lại, các router sẽ không gửi dữ liệu
lên
mạng trừ khi nó nhận được yêu cầu gửi dữ liệu từ các máy nhận. Điều này
làm giảm dữ liệu dư thừa truyền trên mạng, giúp cho các giao thức sparse
mode phù hợp với các mạng lớn, với số lượng các máy tham gia nhận dữ liệu
nhiều nhưng nằm rải rác trên các mạng con.
- Giao thức hoạt động theo mô hình trạng thái liên kết như MOSPF.
1.2.1 Giao thức định tuyến multicast véctơ khoảng cách
DVMRP (Distance Vector Multicast Routing Protocol) là giao thức
định tuyến multicast đầu tiên được sử dụng phổ biến. DVMRP được phát
triển dựa trên giao thức định tuyến unicast Routing Information Protocol
(RIP) với một số thay đổi để phù hợp với cơ chế multicast.
* Tìm kiếm hàng xóm: Là quá trình quan trọng các router sử dụng giao
thức DVMRP cần phải duy trì một danh sách các router hàng xóm để
thực
hiện chuyển tiếp multicast. Điều này đặc biệt đúng khi DVMRP hoạt
động
trên mạng đa truy cập như mạng Ethernet, vì trên mạng có thể có nhiều
router DVMRP cùng tham gia.
Hình 1.6: Tìm hàng xóm trong DVMRP
* Cắt nhánh: DVMRP sử dụng cây nguồn để điều khiển đường đi
của
luồng dữ liệu, ban đầu dữ liệu multicast được gửi xuống tất cả các nhánh
của
cây. Để giảm lưu lượng dư thừa cần có một cơ chế cắt bỏ các nhánh cây mà
trên đó không có các máy nhận dữ liệu. Tại các router không có máy nhận
dữ
liệu kết nối trực tiếp thì router đó gọi là router lá, router này gửi một thông
điệp DVMRP Prune lên cây multicast để yêu cầu dừng gửi dữ liệu và cắt bỏ
nhánh khỏi cây multicast.
Hình 1.7: Cắt nhánh trong DVMRP
* Ghép nhánh: Để thực hiện ghép nhánh thì router gửi một thông điệp
DVMRP Graft tới router phía trên để thông báo nó muốn được ghép
nhánh trở lại cây multicast. Sau khi router phía trên nhận được nó sẽ phản hồi
lại bằng thông điệp Graft-Ack và chuyển tiếp lưu lượng multicast xuống
router phía dưới.
Hình 1.8: Ghép nhánh trong DVMRP
1.2.2 Giao thức PIM
Dense mode
Là giao thức multicast hoạt động độc lập với giao thức định tuyến IP
unicast. PIM (Protocol Independent Multicast) không quan trọng giao thức
nào được sử dụng để tạo ra bảng định tuyến unicast (bao gồm cả bảng định
tuyến tĩnh) trên router, mà nó sử dụng thông tin từ bảng định tuyến unicast để
thực hiện quá trình kiểm tra Reverse Path Forwarding (RPF) từ đó đưa ra
quyết định gửi dữ liệu. Bởi vì PIM không phải dùy trì dữ liệu của bảng định
tuyến, nó không cần thực hiện các thao tác gửi và nhận, thông báo cập nhật
đuờng đi trong bảng định tuyến giữa các router như các giao thức khác, điều
đó làm giảm đáng kể lưu lượng truyền trên mạng. PIM có thể cấu hình để
hoạt động theo hai cơ chế là dense mode và sparse mode, trong phần này trình
bày về PIM (PIM – DM) bao gồm các quá trình cơ bản như: tìm kiếm hàng
xóm, cắt bỏ và ghép nhánh trên cây phân phối multicast, cơ chế xác nhận.
1.2.2.1 Tìm kiếm hàng
xóm
* Thông điệp Hello: Cũng như giao thức DVMRP, PIM-DM sử dụng
cơ chế tìm kiếm router hàng xóm. Trong PIM-DMv1 thông điệp tìm kiếm có
tên là Router Query được đóng gói trong thông điệp IGMP và được gửi tới
224.1.1.2 (địa chỉ all-routers). Trong PIM-DMv2 thông điệp thăm dò có tên là
Hello
được gửi theo chu kỳ 30 giây tới 224.0.0.13 (địa chỉ all-PIM-routers). Trong
thông điệp Hello chứa giá trị Holdtime là thời gian hiệu lực được kết
nối
giữa hai máy.
* Router được chỉ định: Thông điệp PIM Hello vừa để thiết lập liên
kết hàng
xóm vừa sử dụng để tìm ra router được chỉ định để gửi dữ liệu
(Designated Router – DR) cho mạng đa truy cập. Thông điệp Hello để các
router biết được router nào trên mạng có giá trị địa chỉ IP cao nhất được chọn
làm DR cho mạng. Trong một phân đoạn mạng có nhiều router cùng tồn tại,
người quản trị cần chỉ định một router là DR. Tuy nhiên việc thay đổi địa chỉ
IP của router để chỉ định một router là DR thường khó khăn hoặc không thể
thực hiện. Để thực hiện điều này, trong thông điệp PIMv2 Hello thêm vào
một lựa chọn về độ ưu tiên DR-Priority. Khi đó các router có độ ưu tiên cao
sẽ được chọn làm DR, nếu có hai hay nhiều router cùng độ ưu tiên thì giá trị
IP được so sánh để bầu chọn.
* Cây phân phối multicast: Sử dụng cây nguồn (hay cây đường đi
ngắn
nhất) chỉ ra quá trình phân phối dữ liệu tới các máy nhận trên mạng. Các
cây
nguồn được xây dựng bằng cách sử dụng cơ chế quảng bá và loại bỏ
(Flood and Prune) ngay khi nguồn multicast bắt đầu truyền dữ liệu. Không
như DVMRP là giao thức sử dụng bảng định tuyến multicast của riêng nó,
PIM-DM sử dụng thông tin về hàng xóm của nó để xây dựng cây nguồn.
Trong PIM-DM các router kết nối với nguồn được cho là ở trên cây đường đi
ngắn nhất SPT. Cây SPT ban đầu chính là cây quảng bá (Broadcast Tree) vì
router gửi dữ liệu tới tất cả các hàng xóm của nó, mà không biết trên các
router đó có tồn tại các máy nhận dữ liệu hay không.
Hình 1.9: Cây phân phối PIM-DM
1.2.2.2 Cắt nhánh
Khi thấy có luồng dữ liệu dư thừa router PIM-DM gửi thông điệp cắt
nhánh Prune lên router phía trên để thông báo cắt nhánh.
Hình 1.10: Cắt nhánh trong PIM-DM
1.2.2.3 Cơ chế xác nhận
Một router nhận dữ liệu multicast trên cổng mà cổng đó cũng gửi dữ
liệu từ nguồn, thì router sẽ gửi một thông điệp PIM Assert tới cổng mà nó
nhận dữ liệu để tìm ra router được lựa chọn. Trong thông điệp PIM Assert
chứa giá trị metric tới nguồn, và router nào có giá trị metric tốt nhất sẽ được
chọn làm router gửi dữ liệu. Các router khác sẽ ngừng gửi dữ liệu và loại bỏ
cổng của nó ra khỏi cây multicast. Trong trường hợp nhiều router có cùng
metric, thì xét chọn router nào có địa chỉ IP cao nhất.
Hình 1.11: Xác nhận trong PIM-DM
1.2.2.4 Ghép nhánh
Khi cần ghép nhánh thì router đó sẽ gửi một thông điệp Graft tới
router trên nó để yêu cầu nhận dữ liệu. Router trên nó nhận thông điệp và trả
lời bằng cách gửi lại một thông điệp Graft-Ack thông báo đã được ghép
nhánh.
Hình 1.12: Ghép nhánh trong PIM-DM
1.2.3 PIM Sparse Mode
1.2.3.1 Cây chia sẻ
Các hoạt động của PIM-SM xoay quanh một cây chia sẻ một chiều,
trong đó gốc cây được gọi là điểm hẹn RP (Rendezvous Point). Cây chia sẻ
còn có một tên khác là cây RP được viết tắt là RPT vì gốc của nó ở tại điểm
RP. Router ở chặng cuối muốn nhận dữ liệu từ một nhóm multicast nó sẽ
tham gia vào cây chia sẻ. Khi router không muốn nhận dữ liệu từ nhóm
multicast nữa nó sẽ cắt bỏ khỏi cây chia sẻ.
1.2.3.2 Cây đường đi ngắn nhất
Giao thức PIM-SM người dùng có thể nhận dữ liệu multicast thông
qua cây đường đi ngắn nhất SPT. Bằng cách tham gia cây SPT dữ liệu
multicast sẽ được đưa trực tiếp tới máy nhận mà không thông qua router RP,
điều đó giúp giảm tải trên router RP. Nhược điểm của cây SPT là router phải
tạo và duy trì các thực thể trạng thái (S, G) trong bảng định tuyến multicast.
1.2.3.3 Thông điệp Join/Prune
Các phần trước đây đã nhắc đến thông điệp PIM Join và PIM Prune
như hai thông điệp khác nhau với mục đích làm sáng tỏ quá trình tham gia
hay cắt bỏ nhánh. Tuy nhiên thức tế PIM chỉ sử dụng một thông điệp đơn
Join/Prune cho cả hai chức năng. Mỗi thông điệp Join/Prune chứa cả hai
danh sách Join và Prune và một trong hai danh sách đó có thể rỗng. Các thực
thể Join và Prune trong thông điệp Join/Prune có cùng một định dạng chung,
bao gồm các thông tin sau:
- Địa chỉ nguồn multicast: địa chỉ IP của nguồn multicast để thực
hiện quá
trình Join hay Prune, nếu cờ Wildcard được bật thì trường này chứa
địa chỉ
của router RP.
- Địa chỉ nhóm multicast: địa chỉ nhóm multicast để thực hiện quá
trình
Join hay Prune.
- Cờ Wildcard (WC bit): chỉ ra rằng thực thể là một thông điệp (*,
G) Join/Prune.
- Cờ RP Tree (RP bit): thông điệp Join/Prune là thích hợp và cần được
gửi lên cây chia sẻ.
1.2.3.4 Đăng ký nguồn dữ liệu
Trong cây chia sẻ PIM-SM chúng ta đã biết cách router gửi thông điệp
(*, G) tới cây chia sẻ cho nhóm multicast G. Tuy nhiên PIM-SM sử dụng cây
chia sẻ một chiều nên dữ liệu multicast chỉ có thể đi theo chiều từ gốc cây
xuống các nhánh. Vì thế nguồn dữ liệu cần phải có một cách khác để gửi dữ
liệu của nó tới router RP. Tuy nhiên trước tiên router RP cần phải được thông
báo về nguồn đang tồn tại. Để làm điều này PIM-SM sử dụng thông điệp PIM
Register và Register-Stop để thực hiện quá trình đăng ký nguồn dữ liệu. Quá
trình này sẽ thông báo với router RP một nguồn đang hoạt động và phân phối
các gói tin multicast đầu tiên tới RP để tiếp tục được gửi xuống các nhánh.