ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
TRƯƠNG CÔNG ÁI
IP MULTICAST VÀ ỨNG DỤNG
LUẬN VĂN THẠC SĨ
Hà Nội – 2009
LỜI CẢM ƠN
Tôi xin chân thành cảm ơn TS. Ngô Khánh Vân, ngƣời đã tận tình hƣớng
dẫn, chỉ bảo tôi trong suốt thời gian dài thực hiện đề tài.
Tôi xin chân thành cảm ơn PGS.TS Nguyễn Văn Tam, công tác tại Viện
công nghệ thông tin, đã chỉ bảo và cho tôi những lời khuyên quý báu để hoàn
thiện luận văn.
Tô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
I
MỤ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
I
1.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 30
2.2 Giao thức PIM Dense Mode 32
2.2.1 Tìm kiếm hàng xóm 32
2.2.1.1 Thông điệp Hello 32
2.2.1.2 Router đƣợc chỉ định 32
2.2.1.3 Cây phân phối multicast 33
2.2.2 Cắt nhánh 34
2.2.3 Cơ chế xác nhận 36
2.2.4 Ghép nhánh 37
2.3 PIM Sparse Mode 38
2.3.1 Mô hình tham gia 38
2.3.2 Cây chia sẻ 39
2.3.2.1 Tham gia cây chia sẻ 39
2.3.2.2 Cắt nhánh trên cây chia sẻ 42
2.3.3 Cây đƣờng đi ngắn nhất 44
2.3.3.1 Tham gia cây đƣờng đi ngắn nhất 44
2.3.3.2 Cắt nhánh trên cây đƣờng đi ngắn nhất 46
2.3.4 Thông điệp Join/Prune 47
2.3.5 Đăng ký nguồn dữ liệu 48
2.3.5.1 Thông điệp PIM Register 48
2.3.5.2 Thông điệp PIM Register – Stop 49
2.3.6 Chuyển từ cây chia sẻ sang cây đƣờng đi ngắn nhất 49
I
2.4 Giao thức Multicast Open Shortest Path First 53
2.4.1 Định tuyến multicast trong vùng 53
2.4.2 Định tuyến multicast trên nhiều vùng 55
2.4.3 Định tuyến multicast trên các vùng tự trị 58
CHƢƠNG 3 60
SỬ DỤNG ACCESS GRID XÂY DỰNG 60
HỆ THỐNG HỘI NGHỊ TRUYỀN HÌNH DỰA TRÊN IP MULTICAST 60
3.1 Các khái niệm chung về dịch vụ hội nghị truyền hình 60
3.1.1 Hệ thống hội nghị truyền hình 61
3.1.2 Các thành phần cơ bản của hội nghị truyền hình 62
3.2 Giao thức RTP 63
3.2.1 Khuôn dạng RTP header 63
3.2.2 Các ứng dụng sử dụng RTP 64
3.2.2.1 Thoại hội nghị đơn giản 64
3.2.2.2 Thoại và truyền hình hội nghị 66
3.2.2.3 Bộ trộn và bộ biên dịch 66
3.3 Đồng bộ luồng hình ảnh và âm thanh 67
3.4 Sử dụng Access Grid xây dựng một hội nghị truyền hình 69
3.4.1 Các thành phần của Access Grid 69
3.4.2 Sử dụng Access Grid client để tham gia vào hội nghị truyền hình 72
KẾT LUẬN 75
HƢỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 76
TÀI LIỆU THAM KHẢO
II
DANH 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
II
PIM
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
Control Protocol
Giao thức điều khiển truyền thông
thời gian thực
RTP
Realtime Transport
Protocol
Giao thức truyền thông thời gian
thực
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
III
DANH 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 27
Hình 2.4: Trao đổi định tuyến DVMRP bƣớc 3 28
Hình 2.5: Cắt nhánh trong DVMRP bƣớc 1 29
Hình 2.6: Cắt nhánh trong DVMRP bƣớc 2 30
Hình 2.7: Ghép nhánh trong DVMRP bƣớc 1 31
Hình 2.8: Ghép nhánh trong DVMRP bƣớc 2 31
Hình 2.9: Cây phân phối PIM-DM 34
Hình 2.10: Cắt nhánh trong PIM-DM bƣớc 1 35
Hình 2.11: Cắt nhánh trong PIM-DM bƣớc 2 35
Hình 2.12: Cắt nhánh trong PIM-DM bƣớc 3 36
Hình 2.13: Xác nhận trong PIM-DM 37
III
Hình 2.14: Ghép nhánh trong PIM-DM 38
Hình 2.15: Tham gia cây chia sẻ PIM bƣớc 1 39
Hình 2.16: Tham gia cây chia sẻ PIM bƣớc 2 40
Hinh 2.17: Tham gia cây chia sẻ PIM bƣớc 3 41
Hình 2.18: Tham gia cây chia sẻ PIM bƣớc 4 41
Hình 2.19: Tham gia cây chia sẻ PIM bƣớc 5 42
Hình 2.20: Tham gia cây chia sẻ PIM bƣớc 6 42
Hình 2.21: Cắt nhánh trên cây chia sẻ bƣớc 1 43
Hình 2.22: Cắt nhánh trên cây chia sẻ bƣớc 2 43
Hình 2.23: Cắt nhánh trên cây chia sẻ bƣớc 3 44
Hình 2.24: Tham gia cây đƣờng đi ngắn nhất bƣớc 1 45
Hình 2.25: Tham gia cây đƣờng đi ngắn nhất bƣớc 2 45
Hình 2.26: Tham gia cây đƣờng đi ngắn nhất bƣớc 3 46
Hình 2.27: Cắt nhánh trên cây đƣờng đi ngắn nhất bƣớc 1 46
Hình 2.28: Cắt nhánh trên cây đƣờng đi ngắn nhất bƣớc 2 47
Hình 2.29: Cắt nhánh trên cây đƣờng đi ngắn nhất bƣớc 3 47
Hình 2.30: Chuyển sang cây SPT bƣớc 1 50
Hình 2.31: Chuyển sang cây SPT bƣớc 2 50
Hình 2.32: Cắt bỏ nguồn khỏi cây chia sẻ bƣớc 3 51
Hình 2.33: Cắt bỏ nguồn khỏi cây chia sẻ bƣớc 4 52
Hình 2.34: Cắt bỏ nguồn khỏi cây chia sẻ bƣớc 5 52
Hình 2.35: Vùng MOSPF chứa nguồn và thành viên nhóm G 54
Hình 2.36: Cây đƣờng đi ngắn nhất MOSPF SPT cho mạng N3 và N4 55
Hình 2.37: Thông điệp nhóm tóm tắt trong vùng đƣờng trục 56
Hình 2.38: Cây đƣờng đi ngắn nhất SPT trong vùng đƣờng trục 57
Hình 2.39: Nguồn trong vùng không phải đƣờng trục 58
Hình 2.40: Lƣu lƣợng multicast xuống các miền MOSPF 59
Hình 3.1: Thành phần của hội nghị truyền hình 62
Hình 3.2: Khuôn dạng RTP header 63
Hình 3.3: Các thành phần của Access Grid 69
Hình 3.4: Desktop node 70
III
Hình 3.5: Office node 71
Hình 3.6: Room node 71
Hình 3.7: Mối quan hệ giữa multicast và Access Grid 72
Hình 3.8: Profile Dialog 72
Hình 3.9: Điền địa chỉ virtual venue để kết nối 72
Hình 3.10: Venue client 73
Hình 3.11: Cửa sổ video 73
Hình 3.12: Cửa sổ audio 74
IV
DANH 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
1
MỞ ĐẦ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
tham gia nhóm multicast thông qua giao thức Internet Group Management
Protocol.
2
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.
3
CHƢƠNG 1
CƠ BẢN VỀ IP MULTICAST
1.1 Mở đầu
IP multicast là một nhóm các công nghệ và tiêu chuẩn cho phép việc truyền
tải đa điểm – đa điểm nhƣ hội nghị, hay truyền tài điểm – đa điểm nhƣ việc
quảng bá âm thanh, video trên Internet. Việc ứng dụng công nghệ này ngày càng
phát triển do nhu cầu ngày càng cao đối với các ứng dụng đa phƣơng tiện và sự
cải tiến công nghệ IP multicast.
Multicast 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
phƣơ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ệ
4
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à
5
cá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:
6
Hì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:
7
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.
Multicast Group ID
0
1
1
1
Class D
28 bits
8
Hì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
0
0
0
0
0
0
0
0
1
0
1
1
1
0
1
0
1
1
1
0
5 bit
Không sử dụng
01
00
5E
X
Y
Z
X
Y
Z
IP Multicast
Address
224 - 239
9
Đị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
10
Hì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ả
11
cá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
12
dữ 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
13
Hì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ữ
14
liệ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