Trong phương pháp multicast có các giao thức cho phép các máy tính có thể gia nhập vào nhóm để nhận dữ liệu hay rời bỏ nhóm một cách dễ dàng, các giao thức định tuyến cũng được xây dựng
Trang 2Tôi xin chân thành cảm ơn các thầy cô trong trường Đại Học Công Nghệ, Đại Học Quốc Gia Hà Nội đã giảng dạy, truyền đạt và tạo điều kiện học tập tốt nhất cho tôi trong suốt thời gian học tập cũng như trong quá trình thực hiện luận văn
Hà Nội, tháng 08 năm 2009
Trương Công Ái
Trang 3MỤC LỤC
LỜI CẢM ƠN
MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT
DANH SÁCH HÌNH VẼ
DANH SÁCH CÁC BẢNG
MỞ ĐẦU 1
1 Đặt vấn đề 1
2 Đối tượng và mục tiêu luận văn 1
3 Hướng tiếp cận 2
4 Kết cấu của luận văn 2
CHƯƠNG 1 3
CƠ BẢN VỀ IP MULTICAST 3
1.1 Mở đầu 3
1.2 Các thành phần tham gia vào truyền thông multicast 5
1.3 Địa chỉ multicast 7
1.4 Cây phân phối multicast 9
1.4.1 Cây nguồn 9
1.4.2 Cây chia sẻ 10
1.5 Chuyển tiếp multicast 13
1.6 Đường trục multicast 15
1.7 Giao thức quản lý nhóm Internet 17
1.7.1 Giao thức IGMPv1 17
1.7.1.1 Thông điệp Host Membership Report 18
1.7.1.2 Thông điệp Host Membership Query 19
1.7.2 Giao thức IGMPv2 19
1.7.2.1 Lựa chọn router truy vấn 20
1.7.2.2 Thông điệp rời nhóm 21
1.7.2.3 Truy vấn cho từng nhóm 21
1.7.3 Giao thức IGMPv3 21
Trang 41.7.3.1 Lọc dữ liệu 21
1.7.3.2 Thông điệp IGMPv3 Host Membership Query 22
1.7.3.3 Thông điệp IGMPv3 Host Membership Report 23
CHƯƠNG 2 25
ĐỊNH TUYẾN MULTICAST 25
2.1 Giao thức định tuyến multicast véctơ khoảng cách 25
2.1.1 Tìm kiếm hàng xóm 25
2.1.2 Trao đổi thông báo định tuyến 26
2.1.3 Cắt nhánh 29
2.1.4 Ghép nhánh 31
2.2 Giao thức PIM Dense Mode 33
2.2.1 Tìm kiếm hàng xóm 33
2.2.1.1 Thông điệp Hello 33
2.2.1.2 Router được chỉ định 33
2.2.1.3 Cây phân phối multicast 34
2.2.2 Cắt nhánh 35
2.2.3 Cơ chế xác nhận 37
2.2.4 Ghép nhánh 38
2.3 PIM Sparse Mode 39
2.3.1 Mô hình tham gia 39
2.3.2 Cây chia sẻ 40
2.3.2.1 Tham gia cây chia sẻ 40
2.3.2.2 Cắt nhánh trên cây chia sẻ 43
2.3.3 Cây đường đi ngắn nhất 45
2.3.3.1 Tham gia cây đường đi ngắn nhất 45
2.3.3.2 Cắt nhánh trên cây đường đi ngắn nhất 47
2.3.4 Thông điệp Join/Prune 48
2.3.5 Đăng ký nguồn dữ liệu 49
2.3.5.1 Thông điệp PIM Register 49
2.3.5.2 Thông điệp PIM Register – Stop 50
2.3.6 Chuyển từ cây chia sẻ sang cây đường đi ngắn nhất 50
Trang 52.4 Giao thức Multicast Open Shortest Path First 54
2.4.1 Định tuyến multicast trong vùng 54
2.4.2 Định tuyến multicast trên nhiều vùng 56
2.4.3 Định tuyến multicast trên các vùng tự trị 59
CHƯƠNG 3 61
SỬ DỤNG ACCESS GRID XÂY DỰNG 61
HỆ THỐNG HỘI NGHỊ TRUYỀN HÌNH DỰA TRÊN IP MULTICAST 61
3.1 Các khái niệm chung về dịch vụ hội nghị truyền hình 61
3.1.1 Hệ thống hội nghị truyền hình 62
3.1.2 Các thành phần cơ bản của hội nghị truyền hình 63
3.2 Giao thức RTP 64
3.2.1 Khuôn dạng RTP header 64
3.2.2 Các ứng dụng sử dụng RTP 65
3.2.2.1 Thoại hội nghị đơn giản 65
3.2.2.2 Thoại và truyền hình hội nghị 67
3.2.2.3 Bộ trộn và bộ biên dịch 67
3.3 Đồng bộ luồng hình ảnh và âm thanh 68
3.4 Sử dụng Access Grid xây dựng một hội nghị truyền hình 70
3.4.1 Các thành phần của Access Grid 70
3.4.2 Sử dụng Access Grid client để tham gia vào hội nghị truyền hình 73
KẾT LUẬN 76
HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 77
TÀI LIỆU THAM KHẢO
Trang 6DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt Viết đầy đủ Nghĩa tiếng Việt
ABR Area Border Router Router biên vùng
AG Access Grid Phần mềm hỗ trợ xây dựng ứng dụng
hội nghị truyền hình
AS Autonomous System Vùng tự trị
ASBR Autonomous System
Border Routers
Router trên biên vùng tự trị
DR Designated Router Router được lựa chọn
DVMRP Distance Vector Multicast
Routing Protocol
Giao thức định tuyến multicast
véc-tơ khoảng cách IGMP Internet Group
Management Protocol
Giao thức quản lý nhóm Internet
LAN Local Area Network Mạng nội bộ
LSA Link-State Advertisement Thông điệp quảng bá trạng thái liên
kết MABR Multicast Area Border
Router
Router biên vùng multicast
MBONE Multicast Backbone Đường trục multicast
MOSPF Multicast Open Shortest
Path First
Giao thức định tuyến multicast dựa trên thuật toán đường đi ngắn nhất MCU Multipoint Control Unit Bộ điều khiển đa điểm
OSPF Open Shortest Path First Giao thức định tuyến unicast dựa
trên thuật toán đường đi ngắn nhất
Trang 7PIM Protocol Independent
Multicast
Giao thức định tuyến multicast độc lập
PIM-DM Protocol Independent
Multicast Dense Mode
Giao thức định tuyến multicast độc lập theo mô hình tập trung
PIM-SM Protocol Independent
Multicast Sparse Mode
Giao thức định tuyến multicast độc lập theo mô hình phân tán
RAT Robust Audio Tool Công cụ truyền âm thanh trong ứng
dụng hội nghị truyền hình RIP Routing Information
Protocol
Giao thức thông tin định tuyến
RPF Reverse Path Forwarding Kiểm tra đường dẫn ngược
RP Rendezvous Point Điểm hẹn
RTCP Real Time Transport
SPT Shortest Path Tree Cây đường đi ngắn nhất
TTL Time To Live Thời gian tồn tại gói tin
VIC Video Conference Ứng dụng video trong hội nghị
truyền hình
Trang 8DANH SÁCH HÌNH VẼ
Hình 1.1: Truyền thông unicast và multicast 3
Hình 1.2: Các thành phần tham gia vào truyền thông multicast 6
Hình 1.3: Định dạng của địa chỉ IP lớp D 7
Hình 1.4: Ánh xạ địa chỉ IP multicast sang địa chỉ MAC 8
Hình 1.5: Cây đường đi ngắn nhất của host A 9
Hình 1.6: Cây đường đi ngắn nhất của host B 10
Hình 1.7: Cây chia sẻ 11
Hình 1.8: Cây chia sẻ hai chiều 12
Hình 1.9: Cây chia sẻ một chiều sử dụng cây SPT 12
Hình 1.10: Cây chia sẻ một chiều sử dụng định tuyến unicast 13
Hình 1.11: Giới hạn TTL 14
Hình 1.12: Cơ chế đường hầm liên kết các ốc đảo multicast 15
Hình 1.13: Đóng gói IP multicast theo cơ chế tunneling 16
Hình 1.14: Cơ chế đường hầm liên kết các MRouter 16
Hình 1.15: Thông điệp IGMPv1 18
Hình 1.16: Thông điệp IGMPv2 19
Hình 2.1: Tìm hàng xóm trong DVMRP 26
Hình 2.2: Trao đổi định tuyến DVMRP bước 1 27
Hình 2.3: Trao đổi định tuyến DVMRP bước 2 28
Hình 2.4: Trao đổi định tuyến DVMRP bước 3 29
Hình 2.5: Cắt nhánh trong DVMRP bước 1 30
Hình 2.6: Cắt nhánh trong DVMRP bước 2 31
Hình 2.7: Ghép nhánh trong DVMRP bước 1 32
Hình 2.8: Ghép nhánh trong DVMRP bước 2 32
Hình 2.9: Cây phân phối PIM-DM 35
Hình 2.10: Cắt nhánh trong PIM-DM bước 1 36
Hình 2.11: Cắt nhánh trong PIM-DM bước 2 36
Hình 2.12: Cắt nhánh trong PIM-DM bước 3 37
Hình 2.13: Xác nhận trong PIM-DM 38
Trang 9Hình 2.14: Ghép nhánh trong PIM-DM 39
Hình 2.15: Tham gia cây chia sẻ PIM bước 1 40
Hình 2.16: Tham gia cây chia sẻ PIM bước 2 41
Hinh 2.17: Tham gia cây chia sẻ PIM bước 3 42
Hình 2.18: Tham gia cây chia sẻ PIM bước 4 42
Hình 2.19: Tham gia cây chia sẻ PIM bước 5 43
Hình 2.20: Tham gia cây chia sẻ PIM bước 6 43
Hình 2.21: Cắt nhánh trên cây chia sẻ bước 1 44
Hình 2.22: Cắt nhánh trên cây chia sẻ bước 2 44
Hình 2.23: Cắt nhánh trên cây chia sẻ bước 3 45
Hình 2.24: Tham gia cây đường đi ngắn nhất bước 1 46
Hình 2.25: Tham gia cây đường đi ngắn nhất bước 2 46
Hình 2.26: Tham gia cây đường đi ngắn nhất bước 3 47
Hình 2.27: Cắt nhánh trên cây đường đi ngắn nhất bước 1 47
Hình 2.28: Cắt nhánh trên cây đường đi ngắn nhất bước 2 48
Hình 2.29: Cắt nhánh trên cây đường đi ngắn nhất bước 3 48
Hình 2.30: Chuyển sang cây SPT bước 1 51
Hình 2.31: Chuyển sang cây SPT bước 2 51
Hình 2.32: Cắt bỏ nguồn khỏi cây chia sẻ bước 3 52
Hình 2.33: Cắt bỏ nguồn khỏi cây chia sẻ bước 4 53
Hình 2.34: Cắt bỏ nguồn khỏi cây chia sẻ bước 5 53
Hình 2.35: Vùng MOSPF chứa nguồn và thành viên nhóm G 55
Hình 2.36: Cây đường đi ngắn nhất MOSPF SPT cho mạng N3 và N4 56
Hình 2.37: Thông điệp nhóm tóm tắt trong vùng đường trục 57
Hình 2.38: Cây đường đi ngắn nhất SPT trong vùng đường trục 58
Hình 2.39: Nguồn trong vùng không phải đường trục 59
Hình 2.40: Lưu lượng multicast xuống các miền MOSPF 60
Hình 3.1: Thành phần của hội nghị truyền hình 63
Hình 3.2: Khuôn dạng RTP header 64
Hình 3.3: Các thành phần của Access Grid 70
Hình 3.4: Desktop node 71
Trang 10Hình 3.5: Office node 72
Hình 3.6: Room node 72
Hình 3.7: Mối quan hệ giữa multicast và Access Grid 73
Hình 3.8: Profile Dialog 73
Hình 3.9: Điền địa chỉ virtual venue để kết nối 73
Hình 3.10: Venue client 74
Hình 3.11: Cửa sổ video 74
Hình 3.12: Cửa sổ audio 75
Trang 12DANH SÁCH CÁC BẢNG
Bảng 1.1: Các trường trong thông điệp IGMPv1 18
Bảng 1.2: Các trường trong thông điệp IGMPv2 20
Bảng 1.3: Các trường trong thông điệp IGMPv3 Host Membership Query 22
Bảng 1.4: Các trường trong thông điệp IGMPv3 Host Membership Report 24
Trang 13MỞ ĐẦU
1 Đặt vấn đề
Ngày nay mạng Internet và các ứng dụng trên mạng ngày càng trở nên thông dụng, vì thế có một lượng rất lớn các thông tin cần phải chuyển tiếp đến nhiều nơi trong cùng một thời gian 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, đây là phương pháp truyền dữ liệu
từ điểm tới điểm, tức là dữ được truyền từ một người gửi tới một người nhận Tuy nhiên với một số ứng dụng yêu cầu phải thường xuyên gửi dữ liệu từ một điểm tới nhiều điểm, dữ liệu được gửi từ một người gửi tới nhiều người nhận, phương pháp truyền dữ liệu unicast trở nên không hiệu quả Trong trường hợp này, các ứng dụng sử dụng unicast phải đóng gói cùng một dữ liệu nhiều lần và lần lượt gửi chúng từ điểm tới điểm Một cách khác để thực hiện việc truyền dữ liệu từ điểm đến nhiều điểm là sử dụng 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 Dễ thấy rằ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, khi đó multicast là một sự thay thế tốt nhất, phương pháp này 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 gửi sẽ gửi lưu lượng tới một nhóm nguồn nhận thông qua địa chỉ nhóm multicast Trong phương pháp multicast có các giao thức cho phép các máy tính có thể gia nhập vào nhóm để nhận dữ liệu hay rời bỏ nhóm một cách dễ dàng, 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 quả trên mạng
2 Đối tượng và mục tiêu luận văn
Xuất phát từ vấn đề nêu trên, luận văn xác định IP multicast là đối tượng nghiên cứu với những vấn đề tập trung chủ yếu như sau:
− Tìm hiểu các thành phần cơ bản của quá trình truyền dữ liệu multicast gồm: địa chỉ multicast, cây multicast, chuyển tiếp multicast cũng như quá trình
Trang 14tham gia nhóm multicast thông qua giao thức Internet Group Management Protocol
− Tìm hiểu các giao thức định tuyến cơ bản được sử dụng trong truyền thông multicast như giao thức định tuyến Distance Vector Multicast Routing Protocol, giao thức định tuyến Protocol Independent Multicast và giao thức định tuyến Multicast Open Shortest Path First
− Tìm hiểu khả năng áp dụng của multicast trong ứng dụng thời gian thực
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
4 Kết cấu của luận văn
− Luận văn gồm phần mở đầu, 03 chương và kết luận
− Chương 1: Trình bày các vấn đề cơ bản của IP multicast như địa chỉ multicast, cây phân phối multicast, chuyển tiếp multicast và quá trình tham gia nhóm multicast
− Chương 2: Trình bày các giao thức định tuyến được sử dụng trong truyền thông multicast gồm giao thức định tuyến Distance Vector Multicast Routing Protocol, giao thức định tuyến Protocol Independent Multicast theo hai mô hình tập trung và phân tán và giao thức định tuyến Multicast Open Shortest Path First
− Chương 3: Tìm hiểu về hội nghị truyền hình, ứng dụng phần mềm Access Grid để xây dựng hệ thống hội nghị truyền hình dựa trên IP multicast
− Cuối cùng là kết luận và hướng nghiên cứu tiếp theo của luận văn
Trang 15Multicast là thuật ngữ kỹ thuật, có nghĩa một gói tin có thể được gửi đến nhiều nơi trong cùng thời điểm Cách thức thông thường trong việc truyền thông tin trên Internet là sử dụng các giao thức unicast, các giao thức này gửi các gói tin đến mỗi điểm thu tại một thời điểm Trên mạng multicast, một gói tin có thể được gửi từ một máy tính đến một vài máy tính khác, thay vì gửi gói tin đó lần lượt đến từng máy tính Do 5, 10 hay 100 máy có thể nhận được cùng gói tin nên băng thông được tiết kiệm Khi sử dụng multicast để gửi đi gói tin thì không cần thiết phải biết địa chỉ của những người cần nhận luồng tin multicast đó: dữ liệu được quảng bá theo một phương thức mà những người quan tâm đến nó có thể nhận được
Hình 1.1: Truyền thông unicast và multicast Các mạng hỗ trợ multicast cung cấp nhiều dịch vụ và các ứng dụng cho người sử dụng đầu cuối Nhiều ứng dụng hỗ trợ multicast là các ứng dụng đa
Trang 16phương tiện, tuy nhiên còn có nhiều loại ứng dụng khác nhau sử dụng công nghệ
IP multicast cho các mục đích không phải đa phương tiện Các ứng dụng thời gian thực bao gồm: truyền hình trực tiếp, đài phát thanh, hội nghị truyền hình, các ứng dụng không phải thời gian thực như truyền file, dữ liệu, video theo yêu cầu …
Truyền tải multicast đưa lại nhiều ưu điểm so với unicast truyền thống Băng thông của mạng được tận dụng hiệu quả hơn do nhiều luồng dữ liệu được thay thế bởi một luồng dữ liệu multicast Công nghệ này đem lại chất lượng tối
ưu do cần ít bản sao dữ liệu để chuyển đi và xử lý tại các nút mạng Để có thể có được các ưu điểm của IP multicast, thì khả năng định tuyến multicast phải được
hỗ trợ tại các nút mạng Tùy thuộc vào chính sách sử dụng và nhu cầu của người
sử dụng, thì các vấn đề liền quan đến định tuyến, độ tin cậy, đánh địa chỉ mạng
và các giao thức truyền tải đa phương tiện có tầm quan trọng đối với nhà vận hành mạng
Multicast không chỉ đem lại lợi ích cho người sử dụng đầu cuối Hầu hết các ứng dụng multicast là dựa trên UDP, việc sử dụng giao thức này có thể dẫn đến các ảnh hưởng phụ không mong muốn (các gói tin có thể bị hủy) so với các ứng dụng unicast tương tự dựa trên TCP Tuy nhiên, việc thiếu kiểm soát nghẽn
có thể dẫn đến việc suy giảm chất lượng mạng tổng thể Các gói tin trùng có thể thỉnh thoảng được tạo ra khi các topo mạng multicast thay đổi Trong tương lai việc triển khai IPv6 sẽ đem lại multicast có sẵn cho người sử dụng mạng Phần mềm định tuyến tin cậy hơn với các giao thức mới sẽ tận dụng được hạ tầng mạng Với multicast có sẵn, các vấn đề định tuyến sẽ được giải quyết dễ dàng hơn và băng thông sẽ được tiết kiệm hơn
Multicast là một công nghệ tương đối mới cho phép các khách hàng được hưởng lợi từ các ứng dụng thời gian thực mà đáng ra phải yêu cầu một lượng băng thông cực lớn Công nghệ này cho phép nhiều loại công ty đưa các sản phẩm của họ đến các nhóm người với chi phí thấp so với unicast Multicast giảm lưu lượng mạng và tiết kiệm băng thông cho phép người dùng khai thác khả năng
sử dụng cực đại có thể của Internet Multicast cung cấp cho các người sử dụng liên quan đến Internet (các người sử dụng đầu cuối, nhà vận hành mạng, ISP và
Trang 17các công ty liên quan khác) giải pháp khả thi kinh tế và kỹ thuật cho vấn đề truyển tải khối lượng thông tin lớn đến các nhóm người dùng được lựa chọn
Để có được multicast trên Internet hay các mạng Intranet, cách đầu tiên là kết nối các ốc đảo mạng hỗ trợ multicast với các đường hầm IP multicast Do các đường hầm này không khả phân cấp và không đưa lại các ưu điểm kế thừa của multicast, bước kế tiếp là thay thế hạ tầng đường hầm với hạ tầng định tuyến multicast thực sự Công nghệ multicast hiện tại đưa ra các thách thức khác nhau cho việc định tuyến và đánh địa chỉ, hiện nay thử thách lớn nhất là để thiết lập hạ tầng toàn cầu có tính tin cậy và có tính khả phân cấp tương tự như hạ tầng mạng Internet unicast ngày nay
Trong khi giao thức mạng IP tự bản thân nó cung cấp các cơ chế kế thừa đối với IP multicast, các giao thức lớp cao hơn không hỗ trợ nó Mặc dù các giao thức không tin cậy như UDP, RTP có thể sử dụng trên nóc của IP multicast, TCP
và các giao thức truyền tải tin cậy hơn trong các môi trường unicast không hộ trợ multicast Do vậy các giao thức truyền tải multicast phải được phát triển và vì thế không có giao thức truyền tải mục đích chung cho mọi trường hợp, tuy nhiên lại xuất hiện các giao thức khả cấu hình cao và các giao thức được chuyên biệt cao cho các mục đích truyền tải tin cậy đặc biệt trong môi trường IP multicast
1.2 Các thành phần tham gia vào truyền thông multicast
Để tham gia vào quá trình trao đổi dữ liệu các máy tính và router cần hỗ trợ giao thức multicast, khi đó các máy có thể gửi hay nhận lưu lượng multicast Máy nguồn gửi dữ liệu multicast tới một địa chỉ nhóm, đây là một địa chỉ lớp D 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 Các router sẽ sử dụng một giao thức định tuyến multicast để xác định các mạng con có các thành viên của nhóm và chuyển dữ liệu multicast tới các máy nhận 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 đó Ta sẽ tìm hiểu các thành thành phần tham gia vào truyền thông multicast và hoạt động của chúng trong mạng qua minh hoạ trên hình 1.2:
Trang 18Hình 1.2: Các thành phần tham gia vào truyền thông multicast
Trong mô phỏng trên hình 1.2 các hoạt động diễn ra như sau:
− Host A trong Subnet 1 là một nguồn multicast và gửi dữ liệu multicast tới địa chỉ nhóm
− Host B trong Subnet 1 gửi yêu cầu tham gia nhóm tới router cục bộ của nó Bởi vì Host B đã gia nhập vào nhóm nên giao diện mạng của nó sẽ lắng nghe các gói dữ liệu gửi tới địa chỉ nhóm Các máy tính còn lại trong Subnet 1 không tham gia nhóm nên chúng sẽ lọc bỏ các lưu lượng gửi tới địa chỉ nhóm multicast
− Router sẽ chuyển dữ liệu multicast tới tất cả các mạng con có thành viên của nhóm Trong trường hợp này, router sẽ chuyển dữ liệu từ Subnet 1 tới Subnet 3
− Host C trong Subnet 3 đã tham gia vào nhóm do đó nó sẽ nhận dữ liệu multicast
− Host D trong Subnet 3 gửi yêu cầu tới router để tham gia nhóm, sau khi tham gia nhóm giao diện mạng của nó sẽ lắng nghe và nhận các dữ liệu gửi tới địa chỉ nhóm
Các thành phần tham gia vào truyền thông multicast:
Trang 19− Host (bao gồm nguồn hoặc đích): là các là các máy tính tham gia kết nối vào mạng và hỗ trợ quá trình gửi và nhận dữ liệu multicast
− Router: là các router hỗ trợ giao thức multicast, nó có khả năng xử lý các yêu cầu tham gia hay rời nhóm và có giao thức định tuyến multicast để xác định và chuyển dữ liệu tới các mạng con
− Địa chỉ multicast: là địa chỉ lớp D, nó chính là địa chỉ của nhóm multicast
− Nhóm multicast: là một tập các thiết bị đầu cuối lắng nghe dữ liệu gửi tới một địa chỉ multicast
− MBone: viết tắt của từ Internet multicast backbone là một phần của Internet
hỗ trợ quá trình định tuyến và gửi dữ liệu multicast
1.3 Địa chỉ multicast
Các router phải có phương thức để phân biệt dữ liệu dạng multicast với dạng unicast hay broadcast Điều này thực hiện thông qua việc gán địa chỉ IP, bằng cách dùng địa chỉ lớp D từ 224.0.0.0 đến 239.255.255.255 cho multicast các thiết bị mạng có thể nhanh chóng lọc ra 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, hình 1.3 thể hiện định dạng của một địa chỉ lớp D
Hình 1.3: Định dạng của địa chỉ IP lớp D Làm thế nào để một router kết hợp một địa chỉ multicast của IP với một địa chỉ MAC 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
28 bits
Trang 20Hình 1.4: Ánh xạ địa chỉ IP multicast sang địa chỉ MAC
Hình 1.4 cho thấy 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 Tuy nhiên chú ý rằng có 5 bit của địa chỉ IP không được chuyển sang địa chỉ MAC Ánh xạ này làm nảy sinh một vấn
đề là có thể có 32 địa chỉ multicast khác nhau có thể ánh xạ vào cùng một địa chỉ MAC Sự nhập nhằng này dẫn đến một vấn đề nhỏ khi host multicast nhận một Ethernet frame của địa chỉ multicast Một địa chỉ MAC có thể tương ứng với 32 địa chỉ IP multicast khác nhau Vì vậy, khi một host nhận dữ liệu nó 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 Sau đây là một số không gian đị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 vì các địa chỉ này được xác định 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, giống như dãy địa chỉ dành riêng trong RFC1918 Đị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
28 bit Ánh xạ sang địa chỉ MAC
Multicast
MAC Address 0 0 0 0 0 0 0 1 0 000000 0010 11 1010
1110
5 bit Không sử dụng
IP Multicast
224 - 239
Trang 21− Đị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.4 Cây phân phối multicast
Để phân phối dữ liệu multicast tới 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 multicast là cây nguồn và cây chia sẻ
1.4.1 Cây nguồn
Dạng đơn giản nhất của cây phân phối là cây nguồn,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 còn có tên là cây đường đi ngắn nhất (Shortest Path Tree – SPT) Hình 1.5 biểu diễn một ví dụ của cây SPT cho nhóm 224.1.1.1 có gốc tại host A là nguồn dữ liệu và hai máy nhận
là host B và host C
Hình 1.5: Cây đường đi ngắn nhất của host A
Trang 22Hình 1.6: Cây đường đi ngắn nhất của host B
Ký hiệu đặc biệt (S, G) chỉ ra một cây SPT trong đó S là địa chỉ IP của nguồn dữ liệu và G là địa chỉ của nhóm multicast Áp dụng cho mạng như trên hình 1.5 ký hiệu có thể được viết như sau (192.1.1.1, 224.1.1.1) Mỗi ký hiệu (S, G) ứng với một nguồn gửi dữ liệu vì thế nếu host B cũng gửi dữ liệu tới nhóm 224.1.1.1 và các host A và C là các máy nhận thì ký hiệu (S, G) ứng với nguồn B
sẽ là (192.2.2.2, 224.1.1.1) như trong hình 1.6
1.4.2 Cây chia sẻ
Không có gốc ứng với từng nguồn như cây nguồn, các cây chia sẻ 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 chia sẻ này còn được gọi là điểm hẹn (Rendezvous Point – RP) Hình 1.7 thể hiện một cây chia
sẻ cho nhóm 224.2.2.2 với gốc cây tại router D 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 và 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
Trong hình 1.7 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 Bởi vì tất cả
Trang 23các nguồn trong nhóm multicast cùng sử dụng chung một cây chia sẻ, một ký hiệu (*, G) được sử dụng để biểu diễn cây Trong đó ký hiệu * có nghĩa là tất cả các nguồn và G biểu diễn địa chỉ nhóm multicast Vì thế cây chia sẻ trong hình 1.7 có thể được viết (*, 224.2.2.2)
Hình 1.7: Cây chia sẻ 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 Hình 1.8 thể hiện một ví dụ của cây chia sẻ hai chiều, trong đó dữ liệu từ host B được gửi ngược lên gốc cây và từ gốc cây được gửi xuống router B đến router A và đến máy nhận
Cây chia sẻ một chiều chỉ cho dữ liệu multicast đi xuống theo chiều từ gốc cây đến các máy nhận Vì thế nguồn dữ liệu cần sử dụng một cách khác để gửi
dữ liệu tới gốc cây và từ đó chuyển tới các máy nhận Một phương pháp được sử dụng đó là cho gốc của cây chia sẻ tham gia vào một cây SPT có gốc là nguồn dữ liệu Hình 1.9 minh họa một cây chia sẻ một chiều trong đó gốc của cây tham gia vào cây SPT có gốc là host B và dữ liệu được gửi từ B tới gốc Khi gốc cây nhận
Trang 24dữ liệu nó sẽ gửi dữ liệu xuống các nhánh để tới các máy nhận Giao thức định tuyến PIM sử dụng phương pháp này để lấy dữ liệu từ nguồn tới router RP
Hình 1.8: Cây chia sẻ hai chiều
Hình 1.9: Cây chia sẻ một chiều sử dụng cây SPT
Trang 25Hình 1.10: Cây chia sẻ một chiều sử dụng định tuyến unicast
Một cách khác để gửi dữ liệu multicast tới gốc cây là cho gốc cây kết nối trực tiếp với nguồn và dữ liệu được gửi tới gốc thông qua phương thức unicast Giao thức định tuyến CBT sử dụng phương pháp này khi một máy nguồn chỉ gửi
dữ liệu tới nhóm (máy nguồn chỉ gửi dữ liệu và không nhận dữ liệu từ nhóm) Trong hình 1.10 host A là nguồn chỉ gửi dữ liệu nó không tham gia vào nhóm multicast vì thế nó không thuộc một nhánh trên cây chia sẻ
Trong ví dụ trên router A đóng gói dữ liệu multicast từ host A và sử dụng định tuyến unicast để gửi gói tin trực tiếp đến gốc cây Tại gốc cây dữ liệu được
mở gói và gửi xuống các nhánh cây để tới máy nhận
1.5 Chuyển tiếp multicast
Trong cơ chế định tuyến unicast, lưu lượng được chuyển tiếp qua mạng theo một đường duy nhất từ nguồn tới đích Router unicast không thực sự quan tâm đến địa chỉ nguồn, nó chỉ quan tâm đến địa chỉ đích và cách để chuyển tiếp lưu lượng tới đích Router quét bảng định tuyến của nó và chuyển tiếp một bản sao duy nhất qua giao diện hướng đến đích Trong cơ chế multicast nguồn gửi dữ
Trang 26liệu tới một nhóm các máy thông qua địa chỉ nhóm được lưu trong trường địa chỉ đích của một gói tin IP Vì thế các gói tin multicast không thể chỉ đơn giản xác định đường đi tiếp theo cho gói tin dựa vào địa chỉ đích như trong giao thức định tuyến unicast Các router thường phải gửi dữ liệu lên nhiều giao diện của nó để đến được tất cả các máy nhận Chính vì thế giao thức định tuyến multicast phức tạp hơn so với định tuyến unicast
Hầu hết các phương pháp định tuyến multicast sử dụng chuyển tiếp theo đường dẫn ngược (Reverse Path Forwarding – RPF) như là một cơ chế kiểm tra chính để quyết định chuyển tiếp hay loại bỏ một gói tin Khi một gói tin multicast đến router, router sẽ thực hiện kiểm tra RPF đối với gói tin Địa chỉ nguồn của gói tin sẽ được kiểm tra để biết rằng gói tin đó có được nhận từ giao diện có đường đi ngắn nhất trở lại nguồn (giao diện RPF) hay không Nếu kiểm tra RPF thành công gói tin được chuyển tiếp, nếu kiểm tra thất bại router sẽ loại bỏ gói tin
đó Cách thức để router xác định giao diện là RPF đối với một gói tin phụ thuộc vào giao thức định tuyến được sử dụng Một số giao thức multicast duy trì một bảng định tuyến multicast riêng của nó để sử dụng vào kiểm tra RPF như giao thức DVMRP Có những giao thức khác sử dụng bảng định tuyến unicast ở trên router để xác định giao diện RPF như giao thức PIM hay CBT
Mỗi lần một gói tin multicast được chuyển tiếp bởi router giá trị trường TTL (Time To Live) trong IP header sẽ giảm đi một Nếu giá trị TTL của gói tin giảm về không, router sẽ loại gói tin Giới hạn TTL có thể được áp dụng cho một giao diện cụ thể của một router multicast để ngăn chặn các gói tin multicast có giá trị TTL nhỏ hơn ngưỡng được chuyển qua giao diện Trong hình 1.11 minh họa một router áp dụng giới hạn TTL cho các giao diện của nó
Hình 1.11: Giới hạn TTL
Trang 27Trong hình 1.11, gói tin multicast đến router từ cổng Serial0, giả sử rằng kiểm tra RPF thành công và các cổng còn lại của router đều có trong danh sách cổng ra cho nhóm multicast, vì thế dữ liệu sẽ được chuyển tiếp đến các cổng Tuy nhiên do router áp dụng giới hạn ngưỡng TTL tại các giao diện vì thế gói tin chỉ được chuyển tiếp ra các cổng Serial1 và Ethernet0, còn ở cổng Serial2 ngưỡng TTL là 64 lớn hơn giá trị TTL của gói tin là 23 vì thế gói tin không được chuyển tiếp
1.6 Đường trục multicast
Mạng đường trục multicast – MBone được xây dựng nhằm đánh giá các ứng dụng cũng như các giao thức được xây dựng phục vụ truyền thông multicast
dữ liệu, audio và video MBone được thiết kế hoạt động ở lớp trên của Internet
và được cấu thành bởi mạng lưới các ốc đảo multicast Các ốc đảo giao tiếp với mạng bên ngoài thông qua một bộ định tuyến có khả năng xử lý các gói IP multicast thông qua hỗ trợ giao thức quản lý nhóm Internet IGMP và các giao thức định tuyến khác được xác định là một MRouter hay IP multicast router Tiếp giáp với các ốc đảo là các bộ định tuyến IP truyền thống chỉ hỗ trợ xử lý các gói
IP unicast được xác định là các URouter (IP unicast router) Các MRouter của các mạng khác nhau kết nối thông qua các liên kết ảo từ điểm tới điểm thông qua
cơ chế đường hầm – tunneling Kết quả là MBone được hình thành nhờ tập hợp các MRouter được nối với nhau bởi các đường hầm bao phủ toàn mạng
Hình 1.12: Cơ chế đường hầm liên kết các ốc đảo multicast
Trang 28Đường hầm là cơ chế cho phép chuyển gói dữ liệu multicast từ MRouter nguồn đến MRouter đích thông qua các bộ định tuyến MRouter nguồn thực hiện đóng gói và chuyển tiếp dữ liệu Việc đóng gói theo cơ chế đường hầm thực hiện
bổ sung thêm phần tiêu đề IP mới với địa chỉ đích là địa chỉ IP unicast của MRouter ở đầu bên kia của đường hầm và địa chỉ nguồn là địa chỉ IP unicast của MRouter đang gửi gói tin đó
Hình 1.13: Đóng gói IP multicast theo cơ chế tunneling
Các bộ định tuyến trung gian nằm trên tuyến liên kết từ MRouter nguồn đến MRouter đích sẽ xem gói này như gói dữ liệu unicast bình thường và truyền đi theo thông tin trong bảng định tuyến unicast Ốc đảo multicast đích ở phía bên kia của đường hầm sẽ nhận gói unicast này và tách phần header đã được thêm vào rồi sau đó gửi gói dữ liệu đó đi một cách thích hợp Với bộ định tuyến các gói dữ liệu được xem như đến từ MRouter lân cận và trong suốt đối với các bộ định tuyến trung gian Đường đi trung gian đã bị ẩn đi đối với bộ định tuyến này Khi đó các MRouter xử lý các gói IP multicast tương tự như các bộ định tuyến
xử lý các gói IP unicast như thể hiện trên hình 1.13
Hình 1.14: Cơ chế đường hầm liên kết các MRouter
Trang 29Như thể hiện trên hình 1.14, MRouter R2 muốn gửi một gói tin IP đa hướng tới MRouter R5 Trước hết, R2 sẽ đóng vỏ gói tin (chuyển từ gói IP đa hướng thành gói IP đơn hướng) rồi chuyển tiếp tới URouter R3 Gói đa hướng này sẽ đi theo tuyến R3-R7-R8-R5 Như vậy, theo cơ chế đường hầm, với MRouter R5 thì gói tin này được xử lý với địa chỉ nguồn đến từ R2
1.7 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, 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 quản
lý nhóm Internet - IGMP (Internet Group Management Protocol) Giao thức IGMP phát triển từ giao thức Host Membership Protocol, được mô tả trong tài liệu của Deering IGMP phát triển từ IGMPv1 (RFC 1112) đến IGMPv2 (RFC 2236) và phiên bản mới nhất 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 có giá trị bằng 1 Các gói IGMP chỉ được truyền trong mạng 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 (nói cách khác, máy đó không còn quan tâm đến việc nhận dữ liệu multicast nữa) Các router thường dùng IGMP để duy trì thông tin cho từng giao diện để biết những nhóm multicast nào router cần phải truyền dữ liệu và những host nào muốn nhận
1.7.1 Giao thức IGMPv1
Giao thức IGMP phiên bản 1 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ư trong hình 1.15:
Trang 30Hình 1.15: Thông điệp IGMPv1 Giá trị của các trường trong IGMPv1 được mô tả trong bảng 1.1:
Bảng 1.1: Các trường trong thông điệp IGMPv1 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 Type 4 bit Xác định 2 kiểu thông điệp có giá trị:
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 Group Address 32 bit Được gán về giá trị 0.0.0.0 khi router gửi gói
tin Host 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
1.7.1.1 Thông điệp Host Membership Report
Để tham gia vào một nhóm, host sẽ gửi một thông điệp Host Membership Report tới router cục bộ, nó không cần quan tâm có các host khác trên mạng con
đã là thành viên của nhóm hay chưa Thông điệp này sử dụng địa chỉ 224.0.0.1 (địa chỉ all-hosts) như địa chỉ đích và chứa địa chỉ nhóm mà host muốn tham gia
0 3 4 7 8 15 16 31
UnusedType
Group Address
Trang 311.7.1.2 Thông điệp Host Membership Query
Một router IGMPv1 sẽ gửi một cách định kỳ (mỗi 60 giây) thông điệp Host Membership Query đến tất cả các host để kiểm tra xem các host này có còn quan tâm nhận dữ liệu multicast nữa không Các host có thể tham gia vào các nhóm multicast ở bất kỳ thời điểm nào IGMPv1 không có cơ chế để cho phép một host rời khỏi một nhóm nếu host đó không còn muốn nhận dữ liệu từ nhóm multicast Thay vào đó, router sẽ kết luận là một cổng của nó không còn thuộc về một nhóm multicast nào nếu cổng đó không nhận được thông điệp Host Membership Report trong ba chu kỳ truy vấn liên tiếp Điều này có nghĩa là, dữ liệu multicast vẫn gửi vào một phân đoạn mạng trong ba chu kỳ truy vấn liên tiếp sau khi tất cả các thành viên của nhóm không còn lắng nghe dữ liệu multicast nữa
− 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 hình 1.16:
Hình 1.16: Thông điệp IGMPv2
0 7 8 15 16 31
Max RTime
Group Address
Trang 32Giá trị của các trường trong IGMPv1 được mô tả trong bảng 1.2:
Bảng 1.2: Các trường trong thông điệp IGMPv2 Tên trường Độ dài Mô tả
Type 8 bit Xác định 4 kiểu thông điệp có giá trị:
0x11 cho Host Membership Query 0x12 cho IGMPv1 Host Membership Report 0x16 cho IGMPv2 Host Membership Report 0x17 cho Leave Group Message
Maximum
Response Time
8 bit 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 Checksum 16 bit Dùng để kiểm tra lỗi trong quá trình truyền dữ
liệu Group Address 32 bit Đượ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 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
1.7.2.1 Lựa chọn router truy vấn
Khác với IGMPv1, trong đó giao thức định tuyến multicast sẽ lựa chọn router truy vấn, IGMPv2 sử dụng một phương thức lựa chọn đơn giản để chọn một router trên mỗi mạng con để gửi định kỳ các thông điệp Host Membership Query Router được chọn là router có địa chỉ IP nhỏ nhất 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
Trang 33trò truy vấn Còn nếu địa chỉ nguồn của gói tin truy vấn nhỏ hơn, router sẽ từ bỏ vai trò truy vấn và không gửi gói tin
1.7.2.2 Thông điệp rời nhóm
Khi một host muốn rời nhóm, nó sẽ gửi một thông điệp tới địa chỉ 224.0.0.2 (địa chỉ all-routers) Khi nhận được thông điệp rời nhóm, router sẽ gửi truy vấn cho từng nhóm cụ thể tới mạng con chứa host Nếu router không nhận được được trả lời của truy vấn nó sẽ quyết định rằng trên mạng con đó không còn thành viên nào của nhóm và không đẩy dữ liệu multicast tới đó nữa Nếu router nhận được phản hồi, nghĩa là trên mạng con đó vẫn còn host là thành viên của nhóm và nó
sẽ tiếp tục chuyển dữ liệu tới Sử dụng thông điệp rời nhóm làm giảm đi các dữ liệu thừa mà router chuyển đến các mạng con khi không còn thành viên nào của nhóm
1.7.2.3 Truy vấn cho từng nhóm
Một thông điệp Host Membership Query được gửi tới địa chỉ 224.0.0.1 để tìm ra các nhóm multicast có thành viên trên mạng con Trong IGMPv2 các router còn có thể gửi thông điệp cho từng nhóm cụ thể tới một địa chỉ nhóm để xác định nhóm đó có thành viên trên một mạng con hay không
1.7.3 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
1.7.3.1 Lọc dữ liệu
Đây 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 Với IGMPv1 và IGMPv2 một host thông báo nhóm thành viên mà không quan tâm nguồn của dữ liệu gửi tới nhóm Nếu
dữ liệu multicast gửi tới nhóm từ nhiều nguồn, một mạng con có thể nhận dữ liệu
Trang 34multicast từ mỗi nguồn 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
Các multicast router và các giao thức định tuyến multicast sử dụng thông tin cho từng nguồn cụ thể trong IGMPv3 Host Membership Report để ngăn việc chuyển các thông điệp multicast từ một nguồn tới một mạng con không có thành viên của nhóm
1.7.3.2 Thông điệp IGMPv3 Host Membership Query
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 Bảng 1.3 mô tả các trường trong thông điệp IGMPv3 Host Membership Query:
Bảng 1.3: Các trường trong thông điệp IGMPv3 Host Membership Query Tên trường Độ dài Mô tả
Type 8 bit Xác định 4 kiểu thông điệp có giá trị:
0x11 cho Host Membership Query 0x12 cho IGMPv1 Host Membership Report 0x16 cho IGMPv2 Host Membership Report 0x17 cho Leave Group Message
Maximum
Response Time
8 bit 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 Checksum 16 bit Dùng để kiểm tra lỗi trong quá trình truyền dữ
liệu
Trang 35Group Address 32 bit Đượ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
Reserved (Dành
riêng)
4 bit Chứa giá trị 0 khi gửi và bị bỏ qua khi nhận
Suppress 1 bit 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 Querier’s
Robustness
Variable (QRV)
3 bit Chỉ ra các gói datagram mong đợi trên mạng
IGMP có thể lấy lại QRV-1 gói datagram bị mất
Querier’s Query
Interval
Code(QQIC)
8 bit 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
Number of
Sources
16 bit Chỉ số lượng địa chỉ nguồn chứa thông điệp
truy vấn Source Addresses 32 bit Chứa địa chỉ IP của nguồn multicast
1.7.3.3 Thông điệp IGMPv3 Host Membership Report
Host sử dụng thông điệp IGMPv3 Host Membership Report để chỉ rõ các nhóm multicast mà nó muốn gia nhập, với mỗi địa chỉ nhóm kèm theo danh sách những địa chỉ nguồn mà host muốn nhận dữ liệu multicast và nguồn nào host không muốn nhận Thông điệp IGMPv3 Host Membership Report chứa một dãy các bản ghi nhóm Mỗi nhóm chứa địa chỉ nhóm multicast và một danh sách liên kết các nguồn Thông điệp IGMPv3 Host Membership Report được gửi tới địa chỉ 224.0.0.22, đây là địa chỉ dành riêng cho router multicast hỗ trợ IGMPv3
Trang 36Bảng 1.4: Các trường trong thông điệp IGMPv3 Host Membership Report Tên trường Độ dài Mô tả
Type 8 bit Xác định 3 kiểu thông điệp có giá trị:
0x12 cho IGMPv1 Host Membership Report 0x16 cho IGMPv2 Host Membership Report 0x22 cho IGMPv3 Host Membership Report Reserved 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 Reserved 16 bit Chứa giá trị 0 khi gửi và bị bỏ qua khi nhận Number of
Records
16 bit Chứa số lượng của nhóm bản ghi trong thông
điệp Group Records Variable Mỗi bản ghi chỉ ra địa chỉ IP cho nhóm
multicast tham gia hay rời và danh sách các nguồn nhận dữ liệu và không nhận dữ liệu
Trang 37CHƯƠNG 2 ĐỊNH TUYẾN MULTICAST
Các giao thức định tuyến multicast được chia làm 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, các giao thức hoạt động theo mô hình phân tán (sparse mode) như PIM-SM và giao thức hoạt động theo mô hình trạng thái liên kết (link-state) như MOSPF Các giao thức dense mode 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 con 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 Các giao thức sparse mode 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
2.1 Giao thức định tuyến multicast véctơ khoảng cách
Giao thức định tuyến multicast véctơ khoảng cách (Distance Vector Multicast Routing Protocol – DVMRP) 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
2.1.1 Tìm kiếm hàng xóm
Tìm kiếm router hàng xóm là một quá trình quan trọng bởi vì 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, bởi vì trên mạng có thể có nhiều router
Trang 38DVMRP cùng tham gia Để thực hiện điều đó, các thông điệp thăm dò DVMRP Probe được các router gửi một cách định kỳ tới địa chỉ all-DVMRP-router (224.0.0.4) Trên hình 2.1 thể hiện cơ chế tìm kiếm hàng xóm thông qua hoạt động của 2 router
Hình 2.1: Tìm hàng xóm trong DVMRP Các bước hoạt động của cơ chế tìm kiếm được minh họa trên hình 2.1 gồm:
− Đầu tiên router 1 gửi một gói tin thăm dò, lúc này router 1 chưa phát hiện được các hàng xóm vì thế danh sách hàng xóm trong gói tin là rỗng
− Router 2 nhận được thông điệp thăm dò từ router 1, nó thêm địa chỉ IP của router 1 vào danh sách các router hàng xóm của giao diện đã nhận gói tin
− Router 2 gửi thông điệp thăm dò lên mạng, trong đó có chứa địa chỉ IP của router 1 trong danh sách hàng xóm
− Router 1 nhận được thông điệp từ router 2 thêm địa chỉ IP của router 2 vào danh sách hàng xóm Và ở chu kỳ gửi gói tin tiếp theo tiếp theo, router 1 gửi thông điệp lên mạng với địa chỉ IP của router 2 trong danh sách hàng xóm
Khi một router nhận được thông điệp thăm dò trong đó địa chỉ IP của nó có trong danh sách hàng xóm, router biết rằng đã có một kết nối hai chiều được thiết lập thành công giữa nó và hàng xóm, khi đó hai router có thể trao đổi dữ liệu với nhau
2.1.2 Trao đổi thông báo định tuyến
Trang 39Các thông báo định tuyến của DVMRP được gửi một cách định kỳ theo cách giống với giao thức định tuyến unicast RIP Một điểm khác biệt quan trọng
là DVMRP quảng bá các đường đi cùng với subnet mask cho phép DVMRP hoạt động được trên giao thức classless Trên hình 2.2 thể hiện một mạng multicast bao gồm 2 router sử dụng DVMRP kết nối với nhau
Hình 2.2: Trao đổi định tuyến DVMRP bước 1 Trong bảng định tuyến của 2 router có chứa một số đường đi mà các router
đã học được thông qua giao diện S0 Giả sử router 2 gửi thông điệp thông báo trước như trên hình 2.3
Trang 40Hình 2.3: Trao đổi định tuyến DVMRP bước 2 Thông báo định tuyến từ router 2 chứa hai đường đi và được gửi tới router
1 Router 1 thêm một thực thể cho mạng 204.1.16.0/24 vào bảng định tuyến của
nó, ngoài ra vì router 2 có giá trị metric tới mạng 151.10.0.0 nhỏ hơn nên router 1 cập nhật thực thể đã có trong bảng định tuyến với giá trị metric mới là 4 và giao diện ra là E0 Sau đó router 1 phản hồi bằng cách gửi thông điệp thăm dò của nó lên mạng để tới router 2
Trong gói tin gửi tới router 2, router 1 đã sử dung kỹ thuật Poison Reverse với hai đường đi mà nó đã nhận trên cổng E0 bằng cách thêm giá trị ngưỡng (32) vào giá trị metric hiện tại Kỹ thuật Poison Reverse trong DVMRP được sử dụng
để thông báo tới một router là có một router khác phụ thuộc vào nó trong việc nhận dữ liệu từ một nhóm multicast Vì thế router 2 biết rằng router 1 ở phía dưới trong cây multicast của nguồn dữ liệu và mong muốn nhận dữ liệu multicast từ hai mạng này thông qua router 2 Router 2 nhận thông báo và thêm vào bảng định tuyến của nó một thực thể mới cho mạng 198.14.32.0/24 như trong hình 2.4