MỤC LỤC LỜI NÓI ĐẦU 1 Chương 1 TỔNG QUAN VỀ MULTICAST 2 1 1 Giới thiệu chung về IP Multicast 2 1 2 Các công nghệ Multicast 2 1 3 Cây phân phối Multicast 3 1 4 Địa chỉ Multicast 3 1 5 Giao thức quản lí.
Trang 1MỤC LỤC LỜI NÓI ĐẦU……….1
LỜI NÓI ĐẦU
Với sự bùng nổ của công nghệ thông tin, mạng internet và các ứng dụngtrên mạng ngày càng trở nên thông dụng, vì thế nhu cầu chuyển một lượng lớncác thông tin đến nhiều nơi trong cùng một thời gian là rất cần thiết
Đối với các ứng dụng yêu cầu phải thường xuyên gửi dữ liệu từ một điểmđến một tập hợp các điểm thì phương pháp truyền dữ liệu unicast - trong đóthông tin được gửi từ một điểm này đến điểm khác, không còn hiệu quả nữa.Trong trường hợp này, các ứng dụng sử dụng unicast phải đóng gói một dữ liệunhiều lần và lần lượt gửi chúng tới từng điểm đích Để đáp ứng yêu cầu trên,chúng ta có thể sử dụng phương pháp truyền dữ liệu broadcast, tuy nhiên thôngtin sẽ gửi từ một điểm đến tất cả các điểm trên mạng Chúng ta thấy rằng, cả haiphương pháp trên sẽ gây nên sự lãng phí tài nguyên mạng Để khắc phục nhượcđiểm trên, ta nên sử dụng phương pháp multicast sẽ tiết kiệm được băng thôngmạng một cách đáng kể và cải thiện tốc độ truyền dữ liệu dữ liệu được chuyểntới đích nhanh chóng và chính xác
Trong thời gian gần đây multicast ngày càng được chú ý nhiều hơn, chuẩnmulticast hỗ trợ hàng nghìn người có thể nhận thông tin đồng thời mà không ảnhhưởng đến băng thông chung Multicast được sử dụng trong rất nhiều lĩnh vựccủa ứng dụng mạng, bao gồm dịch vụ truyền hình, hội thảo, trình diễn báo cáo,truyền phát thông tin
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ácmá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
Trang 2Chương 1 TỔNG QUAN VỀ MULTICAST 1.1 Giới thiệu chung về IP Multicast
Multicast là thuật ngữ được sử dụng để mô tả cách thức truyền tin được gửi
từ 1 hoặc nhiều điểm đến 1 tập hợp các điểm khác, khác với truyền tin Unicast
từ một điểm đến một điểm và truyền tin Broadcast từ một điểm tới tất cả cáchost trên mạng con Một địa chỉ Multicast cho phép phân phối dữ liệu tới mộttập hợp các host đã được cấu hình như những thành viên của một nhómMulticast trong các mạng con phân tán khác nhau Đây là phương pháp truyềndẫn đa điểm, trong đó chỉ các host có nhu cầu nhận dữ liệu mới tham gia vàonhóm Điều này hạn chế tối đa sự lãng phí băng thông trên mạng, hơn nữa cònnhờ cơ chế gửi gói dữ liệu Multicast mà băng thông được tiết kiệm triệt để (trìnhbày ở phần sau)
- IP Multicast: IP Multicast là một chuẩn mở của IETF dùng để truyền dẫncác gói dữ liệu IP từ một nguồn đến nhiều đích trong một mạng LAN hay WAN.Các host tham gia vào một nhóm Multicast và các ứng dụng chỉ gửi một bản saocủa thông tin cho một địa chỉ nhóm Kĩ thuật Multicast đánh địa chỉ các gói làđịa chỉ nhóm thay vì địa chỉ của từng người nhận Thông tin này chỉ gửi đếnnhững điểm muốn nhận được lưu lượng đó
- Multicast trên các lớp: Multicast có thể được cài đặt trên cả hai lớp link và network Tại lớp data-link các giao thức Ethernet, FDDI, và token ring
data-hỗ trợ địa chỉ Multicast trong các trường mở rộng Multicast tại lớp data-link chỉđược giới hạn trong các ứng ụng tại một mạng LAN Tuy nhiên, multicast cũng
có thể được sử dụng tại lớp network nếu các ứng dụng multicast mở rộng ra khỏimạng LAN hoặc phát triển trên nền Internet bao gồm các môi trường truyềnkhác nhau và các cấu trúc mạng khác nhau Multicast được thực hiện ở lớp nàybởi vì các lí do sau:
+ Quá trình chuyển đổi địa chỉ tại ISO/OSI Layer 3-to-Layer 2
+ Quá trình chuyển đổi địa chỉ tại ISO/OSI Layer 3-to-Layer 2
- Multicast còn được hỗ trợ trong quá trình định tuyến thông qua liên lạcgiữa các router với nhau Có một số chuẩn cho việc truyền multicast như sau:
+ RFC 1075 định nghĩa Distance Vector Multicast Routing Protocol (DVMRP)
+ RFC 1584 định nghĩa giao thức Multicast Open Shortest Path First (MOSPF), một sự mở rộng của OSPF và hỗ trợ IP Multicast
+ RFC 2117 định nghĩa giao thức Protocol Independent Sparse Mode (PIM-SM)
Multicast-+ Protocol Independent Multicast-Dense Mode (PIM-DM) hiện đang được xây dựng cho Internet
1.2 Các công nghệ Multicast
- Công nghệ peer to peer: Giao thức Peer-to-peer (P2P) sắp xếp để mỗi máytính đều là máy chủ, có thể streaming luồng dữ liệu Hoạt động của giao thứcchủ yếu dựa vào khả năng tính toán và băng thông của các máy tham gia chứ
Trang 3không tập trung vào một số nhỏ các máy chủ trung tâm như các mạng thôngthường, tất cả các máy tham gia đều đóng vai trò đồng thời là máy khách và máychủ đối với các máy khác trong mạng Các máy tham gia đều đóng góp tàinguyên, bao gồm băng thông, lưu trữ, và khả năng tính toán Tuy nhiên, Mộtnhược điểm khác của hệ thống này là do không có định hướng, một yêu cầu tìmkiếm thường được chuyển cho một số lượng lớn máy trong mạng làm tiêu tốnmột lượng lớn băng thông của mạng, nó làm tăng các vấn đề kỹ thuật, hiệu suất,chất lượng.
- Central sever: H th ng dùng m t thi t b trên m ng i u khi n toànệ ố ộ ế ị ạ để đ ề ể
b ho t ộ ạ động c a nhóm multicast, g i là central Server M t client mu n k tủ ọ ộ ố ế
n i vào nhóm ph i xin quy n t central server N u central server t ch i choố ả ề ừ ế ừ ốclient truy c p nhóm thì không m t gói tin nào ậ ộ được chuy n ti p t i nó.ể ế ớ
+ Lưu ý: hệ thống nhóm multicast theo công nghệ central serverkhông được hỗ trợ bởi IP Hiện nay chỉ có mạng ATM có hỗ trợ nhóm multicast
1.3 Cây phân phối Multicast
Các router hỗ trợ Multicast tạo ra cây phân phối để quản lý các đường củalưu lượng IP Multicast đến tất cả các máy nhận.hai loại cây phân phối cơ bản làcây nguồn (source tree) và cây chia sẻ (shared tree)
- Source tree
+ Là dạng phân phối đơn giản nhất với gốc là nguồn dữ liệu multicast
và các nhánh là đường dẫn tới máy nhận dữ liệu Do loại cây này sử dụng dường
đi ngắn nhất nên còn có tên là SPT ( shortest path tree)
+ Giải pháp sử dụng source tree có ưu điểm tạo đường dẫn tối ưu giữanguồn dữ liệu giảm thiểu sự trễ khi truyền dữ liệu Multicast Tuy nhiên cácrouter phải duy trì các thông tin đường dẫn cho từng nguồn Do đó không gian
để lưu trữ các bảng định tuyến là rất lớn
- Shared tree
+ Không có gốc từng nguồn như cây nguồn sử dụng một gốc chungduy nhất tại một điểm trên mạng Gốc của Shared tree được gọi là điểm hẹn(RP,Rendezvous point)
+ Giải pháp sử dụng shared không gặp phải vấn đề về bộ nhớ cần thiếtcho bảng định tuyến nhưng trong một số trường hợp cụ thể đường dẫn giữanguồn và đích không tối ưu gây trễ trong quá trình phân phát dữ liệu
1.4 Địa chỉ Multicast
Các ứng dụng multicast luôn luôn dùng địa chỉ multicast Địa chỉ multicastnày tượng trưng cho các ứng dụng multicast và còn được gọi là các nhóm.Không giống như trong địa chỉ unicast (một địa chỉ tượng trưng cho một host),một địa chỉ multicast được dùng như một địa chỉ đích trên một gói tin IP chỉ rarằng gói tin đang mang traffic cho một ứng dụng multicast Ví dụ, nếu một góimulticast mang địa chỉ đích là 225.5.5.5, điều này có ý nghĩa là “Tôi đang mang
Trang 4mạng, vì vậy nó sẽ không bao giờ dùng như một địa chỉ nguồn Một địa chỉnguồn trên một gói multicast cũng sẽ giống như mọi gói tin unicast, luôn luôndùng một địa chỉ unicast.
Các router và switch phải có phương thức để phân biệt traffic dạngmulticast 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 chỉcho multicast Các thiết bị mạng có thể nhanh chóng lọc ra các địa chỉ multicastbằ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 Không giống như dãy địa chỉ lớp A,B và C, địachỉ lớp D này không có quá trình subnetting Vì vậy có đến 2 lũy thừa 28 địa chỉnhóm multicast được trích dẫn ra từ lớp D này Các địa chỉ multicast là tượngtrưng một nhóm, không tượng trưng cho host
- Ánh xạ địa chỉ IP multicast sang địa chỉ MAC: Làm thế nào mà mộtrouter và switch kết hợp một địa chỉ multicast của IP với một địa chỉ MAC Việcgán địa chỉ multicast vào một nhóm L3 sang một nhóm multicast thường sẽ tựđộng tạo ra địa chỉ multicast lớp 2 Do không có cơ chế tương đương với cơ chếARP, 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 0100.5e Phần 28 bit sau của địa chỉmulticast IP sẽ được ánh xạ vào 23bit thấp của địa chỉ MAC bằng một giải thuậtđơn giản Địa chỉ MAC được hình thành bằng cách dùng dạng OUI 01005E, sau
đó là giá trị 0 và sau cùng là 23 bits địa chỉ của L3 multicast Chỉ có 23 bit cuốicủ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 Khả năng này làmcho 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 Do sự nhập nhằng này, một host multicast cómột vấn đề nhỏ khi nó nhận một Ethernet frame của một địa chỉ multicast MộtMAC có thể tương ứng với 32 địa chỉ multicast khác nhau Vì vậy, khi một hostphải nhận và kiểm tra tất cả các frame có MAC mà nó quan tâm Sau đó hostnà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
- Tiến trình chuyển đổi địa chỉ Multicast
Để hiểu tiến trình chuyển đổi dùng các bước sau:
+ Bước 1: Chuyển đổi địa chỉ IP sang dạng nhị phân Lưu ý 4bit đầu
tiên luôn luôn là địa chỉ 1110 cho bất kỳ địa chỉ multicast nào
+ Bước 2: Thay thế bốn bit đầu tiên 1110 của địa chỉ IP với 6 ký tự
(24bits) 01-00-5E như là địa chỉ bắt đầu trong tổng số 12 ký tự dạng thập lụcphân (48bits) của địa chỉ multicast MAC
+ Bước 3: Thay thế 5bit kế tiếp của dạng địa chỉ IP vớI một bit 0 trong
không gian địa chỉ MAC
+ Bước 4: Chép 23 bit cuối của địa chỉ IP dạng nhị phân vào 23 bit
cuối của địa chỉ multicast
+ Bước 5: Chuyển đổi 24bit cuối của địa chỉ multicast từ dạng nhị
phân sang dạng 6 số thập lục phân
Trang 5+ Bước 6: Kết hợp sáu chữ số hexa đầu tiên 01-00-5E với sáu chữ số
hexa vừa tính ở bước 5 để hình thành địa chỉ multicast đầy đủ
Theo cách thức nêu trên, địa chỉ 238.10.24.5 sẽ sinh ra địa chỉ MAC là0x01-00-5E-0A-18-05 cũng giống như kết quả do địa chỉ 228.10.24.5 IETF đãchỉ ra rằng khả năng hai ứng dụng multicast trên cùng một LAN có thể tạo racùng những địa chỉ MAC là thấp Nếu tình cờ điều này xảy ra, một gói tin từmột ứng dụng multicasat khác có thể sẽ được phân biệt bằng địa chỉ lớp 3.Người quản trị nên cẩn thận khi chọn lựa địa chỉ multicast, tránh việc tạo ranhững địa chỉ MAC tương tự nhau
1.5 Giao thức quản lí nhóm internet (IGMP)
Internet Group Management Protocol là cơ chế truyền thông giữa trạm con
và router gắn trực tiếp với mạng đó Router sử dụng IGMP để xác định có haykhông có thành viên nhóm multicast trong mạng con Nếu có thành viên nhóm,router sẽ tham gia vào nhóm multicast đó và chuyển tiếp dữ liệu multicast đếncác trạm con trong nhóm Hai mục đích quan trọng nhất của IGMP là:
- Thông báo cho router multicast rằng có một máy muốn nhận multicasttraffic của một nhóm cụ thể
- Thông báo cho router rằng một có một máy muốn rời một nhóm multicast(nói cách khác, có một máy không còn quan tâm đến việc nhận multicast trafficnữa) Các router thường dùng IGMP để duy trì thông tin cho từng cổng củarouter là những nhóm multicast nào router cần phải chuyển và những host nàomuốn nhận
Trước khi một host có thể nhận bất kỳ một multicast traffic nào, một ứngdụng multicast phải được cài đặt và chạy trên host đó Sau khi một host tham giavào một nhóm, phần mềm sẽ tính toán địa chỉ multicast và sau đó card mạng sẽbắt đầu lắng nghe địa chỉ multicast MAC Trước khi một host hoặc một ngườidùng muốn tham gia vào một nhóm, người dùng cần phải biết nhóm nào đangtồn tại và làm thế nào để tham gia vào nhóm đó Đối với các ứng dụng mứcdoanh nghiệp, người dùng chỉ cần đơn giản nhấp vào một link trên một trangweb hoặc địa chỉ multicast có thể cấu hình trước trên client Ví dụ, một ngườidùng có thể được yêu cầu để log vào một máy chủ và xác thực bằng tên vàngười dùng Nếu tên người dùng được xác thực, ứng dụng multicast sẽ tự độngcài trên PC của người dùng, nghĩa là người dùng đã tham gia vào nhómmulticast Khi người dùng không còn muốn dùng ứng dụng multicast nữa, ngườidùng phải rời khỏi nhóm Ví dụ, người dùng đơn giản chỉ cần đóng ứng dụngmulticast để rời khỏi nhóm Đối với cơ chế multicast, một người dùng cần phảitìm ra ứng dụng nào họ muốn chạy, địa chỉ multicast được dùng bởi ứng dụng.Làm thế nào một router biết được các máy cần nghe multicast traffic? Đểnhận multicast traffic từ một nguồn, cả nguồn và các máy nhận đầu tiên phải gianhập (join) vào một nhóm multicast Nhóm này được xác định thông qua địa chỉmulticast Một host có thể tham gia vào một nhóm multicast bằng cách gửi cácyê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
Trang 6- IGMPv1
IGMPv1 được định nghĩa trong RFC1112 Cứ mỗi 60 giây, một router trênmỗi phân đoạn mạng sẽ gửi truy vấn đến tất cả các host để kiểm tra xem cáchost này có còn quan tâm nhận multicast traffic nữa không? Router này gọi làrouter truy vấn IGMPv1 Querier và chức năng của nó là mời các host tham giavào nhóm
Nếu một host muốn tham gia vào một nhóm, hoặc nó muốn tiếp tục nhậntraffic từ một nhóm mà nó đã tham gia, nó phải trả lời lại bằng thông điệpmembership-report Các host có thể tham gia vào các nhóm multicast ở bất kỳthời điểm nào
Tuy nhiên IGMPv1 không có cơ chế để cho phép một host rời khỏi mộtnhóm nếu host đó không còn quan tâm đến nội dung của nhóm multicast đó.Thay vào đó, router sẽ kết luận là một cổng giao tiếp của bó không còn thuộc vềmột nhóm multicast nào nếu router không nhận được thông điệp membership-report trong ba chu kỳ truy vấn liên tiếp Điều này có nghĩa là, ở chế độ mặcđịnh, các lưu lượng 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 nghemulticast traffic nữa
Ngoài ra, router không có giữ một danh sách đầy đủ các máy thành viêncho từng nhóm multicast Thay vào đó, nó cần phải lưu những nhóm multicastnào là đang tồn tại trên những cổng nào của nó
Để tham gia vào một nhóm multicast, một host sẽ gửi một thông điệp đăng
ký tham gia vào nhóm đến router cục bộ của nó Thông điệp này có tên làMembership Report IGMP Thông điệp này sẽ thông báo cho router về địa chỉnhóm multicast mà host muốn tham gia vào Địa chỉ multicast tượng trưng chotất cả các máy 224.0.0.1 được dùng như địa chỉ đích Trong thông điệp này cóchứa địa chỉ nhóm multicast
- IGMPv2
Phiên bản IGMPv2 giới thiệu vài sự khác biệt so với phiên bản đầu tiên.Các gói tin truy vấn bây giờ được gọi là General Queries Các gói này có thể gửitới địa chỉ all-hosts hoặc tới từng nhóm cụ thể Một cải tiến khác nữa là các hostđược phép rời khỏi nhóm Khi một host quyết định rời khỏi một nhóm nó đãtham gia, nó sẽ gửi thông điệp LeaveGroup đến địa chỉ all-router 224.0.0.2 Tất
cả các router trên một phân đoạn mạng nội bộ sẽ lưu ý thông điệp này và routertruy vấn sẽ tiếp tục quá trình Router sẽ trả lời thông điệp trên bằng thông điệptruy cập gửi theo nhóm Thông điệp này sẽ hỏi rằng có còn host nào muốn nhậntraffic cho nhóm đó nữa không? Bất cứ host nào cũng phải trả lời lại bằng thôngđiệp membership report Nếu khác đi, router sẽ kết luận một cách an toàn làkhông cần thiết chuyển traffic cho nhóm đó trên phân đoạn mạng đó Khoảngthời gian này mặc định là 3 phút
Một trong những nguyên nhân IGMPv2 được phát triển là cung cấp một cơchế rời khỏi nhóm tốt hơn IGMPv2 có thêm một số tính năng mới:
Trang 7+ Group-specific Query: cho phép router gửi truy vấn cho một nhóm
cụ thể thay vì cho tất cả các nhóm
+ Maximum response Time: Một trường mớI trong gói tin truy vấn,cho phép hiệu chỉnh khoảng thời gian cho thông điệp Host membership report.Đặc điểm này có thể hữu ích khi một số lớn các nhóm tồn tại trên một subnet vàbạn muốn giảm số thông điệp trả lời bằng cách kéo dài những thông điệp trả lời
ra một khoảng thời gian dài hơn
+ Leave group message: cho phép host thông báo cho router rằng hostmuốn rời khỏi nhóm
+ Bầu chọn router truy vấn: cung cấp cơ chế cho phép bầu chọn routergửi ra các thông điệp truy vấn khi có nhiều router cùng kết nối vào một subnet.Thông điệp Membership report sẽ được gửi khi một host muốn tham giamột nhóm Thỉnh thoảng, thông điệp loại này cũng được dùng để trả lời cho loạithông điệp truy vấn query từ router Khi một host muốn tham gia một nhóm, nó
sẽ không chờ gói tin query từ router Thay vào đó, nó sẽ gửi membership report.Địa chỉ đích của membership report sẽ là địa chỉ đích của nhóm Để đảm bảorằng router nhận được thông điệp này, host sẽ gửi vài thông điệp, cách nhau mỗi
10 giây
- IGMPv3
Tháng 10 năm 2002, RFC3376 định nghĩa đặc tả cho IGMPv3 IGMPv3 làmột phiên bản cải tiến của giao thức IGMP và là giao thức khá phức tạp Đểdùng các đặc điểm mới của IGMP, router trạm cuối cùng phải được cập nhật, hệđiều hành của máy trạm phải thay đổi và ứng dụng multicast phải thiết kế và viếtlại.Ở thời điểm hiện tại, chỉ có rất ít các ứng dụng của IGMPv3 là có sẵn Phầnnày chỉ tóm tắt các đặc điểm chủ yếu của IGMPv3
Trong IGMPv1 và IGMPv2, khi một host tham gia vào một nhóm, router sẽtruyền các traffic cho nhóm đó vào phân đoạn mạng bất chấp địa chỉ nguồn củagói tin Ví dụ, giả sử có một buổi hội thảo đa phương tiện đang diễn ra Mộtthành viên của nhóm quyết định phá hỏng phiên hội thảo bằng cách gửi ra một
số dữ liệu nhiễu bằng cách nói chuyện hay gửi nhạc cho các thành viên củanhóm Mặc dù các ứng dụng multimedia cho phép một người dùng làm im lặngcác thành viên khác, ứng dụng không làm dừng các traffic không mong muốnphân phối đến host
Nếu một nhóm các hacker quyết định phát tán một mạng của một công tybằng các dữ liệu băng thông cao dùng cùng địa chỉ nhóm multicast mà công tyđang dùng, nó có thể tạo ra kiểu tấn công từ chối dịch vụ Cả IGMPv1 vàIGMPv2 đều không có cơ chế để ngăn ngừa một kiểu tấn công như vậy
IGMPv3 cho phép các host lọc các traffic đi vào dựa trên địa chỉ IP nguồnthông qua một tính năng gọi là multicast theo từng nguồn (Source SpecificMulticast –SSM) IGMPv3 cho phép các host chỉ định các traffic xuất phát từmột nguồn cụ thể hoặc nhận từ tất cả ngoại trừ từ một nguồn nào đó
Trang 8Chương 2 CÁC GIẢI THUẬT VÀ GIAO THỨC ĐỊNH TUYẾN
2.1 Giải thuật Flooding
- Đặc điểm:
+ Mỗi nút gửi gói tin nó nhận được ra tất cả các nút trừ nút mà từ đó
nó đã nhận được gói tin Nút đó vừa là nút nhận vừa là nút gửi
+ Giải thuật có thể có thêm các cơ chế chống lặp, chống vận chuyểnvòng tròn, cơ chế hết hạn…
- Khi router nhận được một gói multicast, đầu tiên nó kiểm tra xem gói tinnày đã nhận được trước đó chưa
+ Nếu là lần đầu tiên, router sẽ gửi gói tin đến tất cả các cổng của nó,ngoại trừ cổng mà đã gửi gói tin đến
+ Nếu là gói tin đã được nhận trước đó, router sẽ loại bỏ gói tin này.Bằng cách này, chắc chắn rằng tất cả các router sẽ nhận được ít nhất là một góitin
Hình 2.1 Giải thuật Flooding
* Chú thích:
: Soure;
: Router;
: Nhánh con có tham gia vào nhóm;
: Nhánh con không tham gia vào nhóm;
: Đường chuyển gói nhận;
: Đường các gói bị loại bỏ
2.2 Reverse Path Forwarding – RDF
Các router thường phải thực hiện một phép kiểm tra trên tất cả các góimulticast mà nó nhận RPF (kiểm tra đường dẫn ngược) là một công cụ để đảmbảo rằng các gói tin không bị đưa ngược trở về cây multicast ở một vị trí nào đó.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 như là một cơ chế kiểm tra chính để quyết định chuyển tiếphay loại bỏ một gói tin Đối với router sử dụng giao thức PIM (ProtocolIndependent Multicast) thì phải tìm địa chỉ nguồn trong bảng định tuyến unicast.Router không thể chỉ nhận gói multicast và sau đó chuyển bản sau ra tất cảcác cổng mà không gây vòng lặp Để ngăn ngừa lặp, các router không chuyển
Trang 9các gói multicast ra cùng một cổng mà nó nhận Các multicast router dùng mộtphép kiểm tra gọi là RPF để ngăn ngừa lặp.
Phép kiểm tra này sẽ thêm vào một số bước trong hoạt động của một router.Xem địa chỉ nguồn IP của gói multicast Nếu có một tuyến đường đúng bằng vớiđịa chỉ nguồn trên, hãy kiểm tra cổng ra trên bản định tuyến xem có đúng làcổng mà router nhận được gói tin Nếu đúng, gói tin đã vượt qua phép kiểm traRPD Nếu cổng nhận gói tin khác với cổng đi ra trong bảng định tuyến, gói tin
sẽ không được nhân bản và không được truyền
Quá trình kiểm tra được thể biện theo các bước:
- Khi một gói tin được nhận trên một cổng của router, địa chỉ nguồn của gói sẽđược kiểm tra (ví dụ cổng S1 của router, lúc này địa chỉ nguồn Source151.10.3.21 sẽ được kiểm tra)
- Sau đó, router sẽ so sánh địa chỉ nguồn này với một entry trong bảng địnhtuyến unicast
- Nếu cột out-going interface (danh sách cổng gửi đi) của bảng định tuyến cómột interface cũng đúng bằng cổng nhận multicast, gói multicast sẽ được xử lý
và chuyển ra các nhánh của cây
Hình 2.2 Mô hình kiểm tra RDF thành công
- Nếu cổng là không so trùng, điều này có nghĩa là có một ai đó đã đưa góitin vào một vị trí không mong đợi, chuyển gói tin ngược về root Gói tin lúc này
Trang 10- Những router trên con đường ngăn nhất đến nhánh mạng chứa các thànhviên nhóm multilcast.
Gói multicast đầu tiên sẽ được gửi theo giải thuật TRPB Những router nàokhông có liên kết với bất kỳ router nào trong cây TRPB thì được gọi là router lá.Nếu một router lá nhận gói tin và nó không có nhóm thành viên nào trênnhánh mạng, nó sẽ gửi một thông điệp “Prune” ngược về router mà nó đã nhậngói tin Thông điệp “Prune” thông báo cho router trước đó (upstream) là khôngnên gởi gói tin trên con đường này, những router upstream phải lưu lại thôngđiệp “Prune”
Nếu routerupstream nhân được thông điệp từ tất cả các router của nó trongcây TRPB, thì nó lại gửi thông điệp prune về router cha trong cây TRPB chobiết rằng gói tin không cần gửi tới nó Những thông điệp “Prune” sẽ xén bớt câyTRPB ban đầu kết quả là gói multicast chỉ được truyền đến các con đường đếnnút đích (nhóm thành viên)
Hình 2.4 Giải thuật Reverse Path Multicast
Nhóm thành viên và mô hình mạng có thể thay đổi theo mỗi lần xén bớtcây phân phối Do đó, trong giải thuật RPM các thông tin prune trong routerđược bỏ đi theo chu kỳ và gói multicast kế tiếp được gởi đến tất cả các router lá Đây là mặt hạn chế của giải thuật RPM Cần không gian bộ nhớ tương đối
để lưu thông tin của mỗi gói tin là điểu trở ngạy khác làm cho giải thuật nàykhông được mở rộng (và do đó không phù hợp với mô hình mạng lớn)
2.4 Giải thuật Multicast Backbone
Multicast trên internet diễn ra trên Multicast Backbone(Mbone) Mbone làtập hợp những router có khả năng chuyển tiếp lưu lượng multicast (mrouter) vàcác host được kết nối với nhau
Mbone thuộc phần trên cùng của internet đóng vai trò như một mạng ảo.Trong Mbone các nhánh mạng có hỗ trợ multicast được kết nối với nhau bằngmột liên kết ảo là “tunnels” Nhờ tunnels này mà các thông điệp multicast đượcchuyển tiếp đến phần internet không hỗ trợ chuyển tiếp multicast
Trang 11Khi chuyển tiếp qua tunnels, các gói IP được đóng gói trong một gói IPkhác (IP over IP) khi đó chúng như các gói unicast thông thường chuyển tiếpgiữa các router.
@ M1
unicast
@ M2unicast
@ M1unicast 224.5.5
Unicast IP header Original Mcast packet
Tunnel
M2M1
R2R1
Trang 12Hình 2.6 RPB từ nguồn A và C
Nếu một router không năm trên đường ngăn nhất giữ nút nguồn và routerlân cần, gói tin sẽ bị loại bỏ tại router lân cận Giải thuật này hiệu quả và dễ
Trang 13dàng thực hiện, hơn nữa các gói tin gởi tới thông qua con đường ngắn nhất từnguồn gởi đến nút rất nhanh.
Hạn chế: không lưu thông tin thành viên nhóm multicast khi xây dựng câyphân phối
- TRPB:
TRPB-truncated reverse path broadcasting, giải thuật này được đề xuất đểkhắc phục một số hạn chế của giải thuật RPB, như đã biết: bằng cách sữ dụnggiao thức IGMP, một router có thể xác định xem các thành viên của nhómmulticast, có trong 1 nhánh mạng không
Nếu nhánh mạng là một lá của cây multicaste (không có router nào kết nốitới nó) thì router sẽ xén bớt trong cây bao trùm Nó được đánh dấu lại và cũngtương tự như giải thuật RPB gói tin sẽ không được gửi đến router lân cận nếurouter không thuộc con đường ngắn nhất từ router lân cận đến nút nguồn
Hạn chế: không loai trừ những lưu lượng không cần thiết trên các lá màkhông có thành viên multicaste
2.5 Giao thức PIM
PIM (Protocol Independent Multicast – giao thức định tuyến multicast độclập) là một giao thức định tuyến có thể được dùng để chuyển các multicasttraffic PIM hoạt động độc lập với các giao thức định tuyến IP unicast vì vậyPIM sử dụng bảng định tuyến IP và không giữ các bảng định tuyến Cần chú ý làbảng định tuyến cũng không phụ thuộc vào các giao thức định tuyến vì nhiềugiao thức định tuyến có thể đóng góp vào cùng một bảng định tuyến
PIM không quan trọng giao thức nào được sử dụng để tạo ra bảng địnhtuyến unicast (bao gồm cả bảng định tuyến tĩnh) 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 PathForwarding (RDF) từ đó đưa ra quyết định gửi dữ liệu PIM không phải duy trì
dữ liệu của bảng định tuyến, nó sẽ không cần thực hiện các quá trình gửi vànhận các thông báo cập nhật đường đi trong bảng định tuyến giữa các router nhưcác giao thức khác, điều này làm giảm đáng kể lưu lượng truyền trên mạng.Giao thức PIM định nghĩa một loạt các giao thức và các luật để qua đórouter có thể giúp định tuyến hiệu quả gói tin multicast
PIM có thể hoạt động ở ba chế độ:
- PIM Dense Mode
- PIM Sparse Mode
- PIM Spare Dense Mode
2.5 1 PIM Dense Mode (PIM-DM)
Các PIM router có thể được cấu hình theo kiểu Dense Mode (chế độ dàyđặc) nếu các host tham gia vào multicast group nằm ở khắp nơi trên tất cả cácsubnet Thông thường, router hoạt động ở chế độ Dense nhận gói multicast trênmột cổng và đẩy những phiên bản sao chép ra tất cả các cổng khác, gói tin nàykhông được chuyển ra cổng mà nó nhận Dense mode thường được dùng trongmôi trường LAN, văn phòng
Trang 14Hình 2.7 Hoạt động tham gia MULTICAST group Hình 2.7 Router R1 sử dụng giao thức định tuyến PIM – DM Router R1
sẽ phát tán tất cả các bản sao của gói tin ra tất cả các cổng (s0/0, s0/1), ngoại trừcổng mà gói tin được nhận (fa0/0) Giả sử, trên hình có nhiều router khác nhưR2, R3… thì các router này có thể nhận lưu lượng multicast này và sẽ lặp lạicùng một tiến trình Tất cả các mạng sẽ nhận một bản sao của gói tin multicastban đầu
Để cấu hình PIM Dense Mode trên một cổng, dùng lệnh: if)# ip pim dense-mode
Router(config-PIM-DM bao gồm các quá trình cơ bản sau: tìm kiếm hàng xóm, cắt bỏ vàghép thêm nhánh trên cây phân phối multicast, cơ chế xác nhận
* Quá trình tìm kiếm hàng xóm
- Thông điệp Hello: PIM-DM sử dụng cơ chế tìm kiếm hàng xóm để thiếtlập mối liên kết với router hàng xóm Thông điệp Hello được sử dụng trongPIM-DMv2, được gửi theo chu kỳ 30 giây tới địa chỉ 224.0.0.13 (địa chỉ all-PIM-routers) Trong thông điệp Hello chứa một giá trị Holdtime để thông báocho các máy nhận biết khoảng thời gian hiệu lực của kết nối giữa hai máy bị hếtnếu không có thông điệp Hello khác được gửi trong thời gian đó
- Router được chỉ định (Designated router – DR): Khi trong một phân đoạnmạng có nhiều router cùng tồn tại, người quản trị mạng thông thường cần chỉđịnh một router là DR Thông qua thông điệp Hello, các router sẽ biết đượcrouter nào trên mạng có giá trị IP cao nhất để chọn làm DR cho mạng Tuynhiên, việc thay đổi địa chỉ IP của router để chỉ định một router là DR thườngkhó khăn hoặc không thực hiện được Do đó, trong thông điệp PIMv2 Hellothêm vào một sự lựa chọn về độ ưu tiên DR-Priority Khi đó các router có độ ưutiê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 để lựa chọn
- Cây phân phối multicast
Địa chỉ multicast nguồn trở thành gốc của cây và cây multicast được xâydựng từ nguồn đến đích thông qua các thông tin về hàng xóm của nó Cơ chếnày còn được gọi bằng ký hiệu (S,G) trong đó đường đi từ nguồn đến các thànhviên trong nhóm này là duy nhất và được xác định S là địa chỉ nguồn của gói tin
IP và G là địa chỉ nhóm Ví dụ kí hiệu (S,G) trong hình … sẽ được viết là(10.0.1.10, 226.1.1.1)
Cây multicast được xây dựng bằng cách cho phép phát tán các traffic từnguồn đến tất cả các router trong mạng Cây sẽ phát triển từ trên xuống dưới.Trong PIM-DM các router kết nối với nguồn được cho là ở trên cây đường đi
Trang 15ngắn nhất SPT (Shortest Path Tree) và các hàng xóm PIM-DM khác ở các nhánhphía dưới của nguồn dữ liệu Trong một thời gian ngắn, các traffic không cầnthiết sẽ được lưu chuyển giống như trong broadcast traffic, đó là cơ chếFlooding Cây SPT ban đầu chính là cây quảng bá (broadcast tree) bởi vì routergử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.
Khi các router nhận được traffic cho một nhóm, router sẽ quyết định nó cócác máy nhận muốn nhận dữ liệu hay không Nếu là muốn, router sẽ duy trì tìnhtrạng im lặng và để dòng traffic tiếp tục Nếu không có host nào đăng kí chonhóm cho nhóm multicast đó (thông qua IGMP), router sẽ gửi thông điệp Pruneđến các router láng giềng của nó (theo hướng về gốc của cây) gọi là quá trìnhPruning Nhánh của cây sau đó sẽ bị loại bỏ (prune) sao cho các traffic khôngcần thiết sẽ không được phát tán về hướng đó
Hình 2.8 Mô hình ban đầu
dữ liệu tới một phân đoạn mạng Cây quảng bá này sẽ được điều chỉnh để loại
bỏ dư thừa khi quá trình cắt nhánh được hoàn tất
Các router PIM-DM gửi thông điệp cắt nhánh Prune lên router phía trêncủa nó khi có một trong các điều kiện sau: khi dữ liệu đến từ một giao diệnkhông phải là giao diện RPF (Reverse Path Forwarding) hay khi một router nhậnthấy phân đoạn mạng phía sau nó không tồn tại các máy nhận muốn nhận dữliệu từ nhóm multicast
Trên hình 2.8, giả sử metric cho đường đi từ router A đến C tốt hơn đường
đi từ router B đến C, lúc đó router C gửi thông điệp Prune tới router B vì dữ liệuđến nó trên giao diện không phải là giao diện RPF đối với nguồn
Trang 16Hình 2.9 Cắt nhánh trong Pim-DM bước 1
Router B phản hồi lại thông điệp Prune được gửi từ C và đường đi từ router
B đến router C bị loại bỏ khỏi cây multicast Ngoài ra router I là một router lákhông có các máy nhận dữ liệu kết nối tới, vì thế nó gửi một thông điệp Prunetới router E Router E phản hồi lại bằng cách loại bỏ đường đi tới router I và bởi
vì router E cũng không có các máy nhận dữ liệu kết nối trực tiếp nó cũng sẽ gửi
dữ liệu tới router C và D Tuy nhiên vì máy nhận 1 kết nối trực tiếp tới cùnggiao diện, router C và D sẽ bỏ qua thông điệp Prune từ E Điều đó có nghĩa dữliệu từ nguồn vẫn tiếp tục được gửi tới router E và E tiếp tục gửi thông điệpPrune lên router C và D
Hình 2.10 Cắt nhánh trong PIM-DM bước 2
Hình 2.11 Cắt nhánh trong PIM-DM bước 3
G là một node lá và không có các máy nhận dữ liệu kết nối tới vì thế nó gửithông điệp Prune lên mạng tới router F Tuy nhiên thông điệp Prune được gửi tớiđịa chỉ all-PIM-router vì thế router H cũng nhận được thông điệp gửi tới F Bởi
vì H có các máy nhận yêu cầu nhận dữ liệu, H sẽ gửi một thông điệp PIM Join
Trang 17và nó sẽ hủy bỏ thông điệp Prune được gửi từ G Để đảm bảo quá trình Prunehoạt động hiệu quả các router PIM-DM khi nhận một thông điệp Prune sẽ không
xử lý ngay mà đợi 3 giây để các router khác gửi thông điệp Join Nếu saukhoảng thời gian này, router không nhận được thông điệp Join thì nó sẽ thựchiện quá trình cắt nhánh
* Cơ chế xác nhận
Hình 2.11, Xuất hiện việc trùng lặp dữ liệu được gửi bởi router C và D lênmạng để tới máy nhận 1 Để giải quyết vấn đề trên, PIM sử dụng một cơ chế xácnhận để bình chọn ra một router DR cho nguồn multicast Cơ chế xác nhận hoạtđộng theo quy tắc sau: nếu 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ớicổng mà nó nhận dữ liệu để tìm ra router được lựa chọn Trong thông điệp PIMAssert chứa giá trị metric tới nguồn, lúc đó các router trên mạng kiểm tra giá trịmetric 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âymulticast Trong trường hợp có nhiều router có cùng metric, địa chỉ IP sẽ đượckiểm tra và router nào có địa chỉ IP cao nhất sẽ được chọn
Hình 2.12 Xác nhận trong PIM-DM
Giả sử router C và D có cùng metric và router C có địa chỉ IP lớn hơn Lúcnày router C sẽ được chọn làm router gửi dữ liệu còn router D sẽ ngừng gửi dữliệu và loại bỏ giao diện của nó ra khỏi cây multicast
* Ghép nhánh
Nếu một host mới đăng ký tham gia nhóm, nhánh của phân đoạn mạng đó
sẽ được đính thêm vào cây
Giả sử có một máy nhận 3 muốn gia nhập nhóm multicast trên router I Khirouter I nhận thông điệp gia nhập nhóm multicast IGMP từ máy nhận 3, router Igửi một thông điệp Graft tới router E để yêu cầu nhận dữ liệu Router E nhậnthông điệp Graft từ router I nó trả lời bằng cách gửi lại I một thông điệp Graft-ACK Bởi vì trước đó router E đã gửi thông điệp để cắt bỏ khỏi cây multicast vìthế nó cũng gửi một thông điệp Graft tới router C Tương tự router C sẽ gửi lại Emột thông điệp Graft-ACK, và lúc này dữ liệu multicast được gửi từ router Cqua router E và I để tới máy nhận 3
Trang 18Hình 2.13 Ghép nhánh trong PIM-DM 2.5 1 PIM Sparse Mode (PIM-SM)
Giao thức định tuyến multicast chế độ dense là hữu ích khi các ứng dụngmulticast là dày đặc và khi ta cần phân phối traffic đến hầu như tất cả các mạng.Tuy nhiên, nếu các người dùng chỉ ở vài mạng con, giao thức định tuyến chế độdense sẽ vẫn phát tán lưu lượng trên toàn bộ liên mạng, lãng phí băng thông vàtài nguyên
Trong những trường hợp này, định tuyến theo kiểu rải rác (sparse), chẳnghạn PIM-SM có thể được dùng để giảm lãng phí tài nguyên mạng Sự khác nhau
cơ bản giữa chế độ dense và chế độ sparse liên quan đến trạng thái mặc định của
nó Mặc định, các giao thức chế độ dense tiếp tục truyền các traffic của nhóm trừkhi một router bên dưới chỉ ra rằng nó không muốn nhận traffic đó Các giaothức chế độ sparse không truyền lưu lượng của nhóm tới bất kỳ router nào trừkhi nó nhận được một thông điệp yêu cầu các bản sao của các gói tin được gửitới một nhóm multicast đặc biệt
PIM-SM có nhiều điểm tương tự như PIM-DM:
- PIM-SM sử dụng bảng định tuyến unicast mà không quan tâm đến giaothức định tuyến unicast đang được dùng
- PIM-SM cũng dùng các cơ chế giống như PIM-DM
+ Dùng cơ chế Hello để tìm ra láng giềng
+ Tính toán và kiểm tra RPF khi bảng định tuyến unicast routing thayđổi
+ Bầu chọn designated router trên môi trường multi-access
+ Sử dụng cơ chế prune trên môi trường multi-access
+ Sử dụng cơ chế Assert để bầu ra router forwarder trên môi trườngmulti-access
Tuy nhiên, PIM-SM dùng cơ chế explict join (join tường minh) PIM-SMdùng một giải pháp khác Cây multicast không mở rộng đến router cho đến khinào một host đã tham gia vào một nhóm Cây multicast được xây dựng bằng cácthành viên ở các node lá và mở rộng ngược về root Cây được xây dựng từ dướilên Chế độ sparse cũng hoạt động dựa trên ý tưởng cấu trúc shared-tree, trong
đó gốc của cây không nhất thiết là nguồn của multicast Thay vào đó, root làrouter PIM-SM thường được đặt ở trung tâm của mạng Router làm gốc này gọi
là Rendezvous Point (RP) Các router có thể nhận biết được RP bằng 3 cách:
- Địa chỉ RP có thể được cấu hình tĩnh trên từng router
Trang 19- Bầu chọn RP có thể dùng giao thức Bootstrap.
- Dùng cơ chế Auto-RP của Cisco: phù hợp hệ thống mạng nhỏ
Cây từ điểm RP đến các thành viên thật ra là một cây con của cây từ nguồnđến các thành viên Nếu một router ở bất kỳ đâu trong mạng có thể đăng ký với
RP, cấu trúc cây này sẽ hoàn tất Chế độ sparse còn được gọi là Shared tree Cácdòng multicast được mô tả như (*,G) bởi vì cây luôn cho phép bất cứ nguồn nàogửi đến một nhóm Ký hiệu (*,G) có ý nghĩa là bất kỳ source nào cũng có thểgửi về nhóm G
Để cấu hình PIM-SM trên một cổng, dùng câu lệnh: Router(config-if)#ippim sparse-mode
* Mô hình tham gia
Trong cơ chế tham gia tường minh, thông điệp PIM Join sẽ được gửi quatừng chặng để đến được gốc của cây multicast Khi thông điệp Join đi theo cây
để lên tới gốc, các router trên đường đi tạo một trạng thái để gửi dữ liệumulticast vì thế dữ liệu multicast yêu cầu sẽ được gửi trở lại cây Tương tự, khi
dữ liệu multicast không được yêu cầu nữa, router sẽ gửi thông điệp Prune lêngốc cây để cắt bỏ các luồng dữ liệu không cần thiết Khi thông điệp Prune đi quacác chặng trên cây các router cũng cập nhật trạng thái của nó, bỏ đi trạng tháigửi dữ liệu tương ứng với nhóm multicast Đối với PIM-SM, trạng thái gửi dữliệu trong các router được tạo ra như là kết quả của thông điệp Join Đó là sựkhác biệt quan trọng so với giao thức dense mode, là các giao thức mà trạng tháigửi dữ liệu của router được tạo bởi dữ liệu multicast đến router đó
* Tham gia cây chia sẻ
Router ở chặng cuối (router kết nối trực tiếp với máy nhận dữ liệu) muốnnhận dữ liệu từ một nhóm multicast nó sẽ tham gia vào cây chia sẻ
Giả sử máy nhận 1 muốn tham gia vào nhóm multicast G Máy tính 1 thamgia cây chia sẻ theo các bước sau:
Bước 1: Máy nhận 1 sẽ gửi thông điệp IGMP Report Lúc này, router C tạo
một trạng thái (*, G) trong bảng định tuyến multicast của nó cho nhóm G (vìmáy nhận 1 là máy đầu tiên tham gia vào nhóm multicast)
Hình 2.14 Tham gia cây chia sẻ PIM bước 1
Bước 2: Router C đặt giao diện của nó vào danh sách các cổng ra của thực
thể (*,G) (tức là thêm đường đi tới máy nhận 1 vào dánh sách cổng ra) và gửimột PIM (*, G) Join tới router RP để tham gia vào cây chia sẻ Router C sử dụngbảng định tuyến unicast để xác định giao diện cần chuyển gói tin đến router RP
Trang 20Hình 2.15 Tham gia cây chia sẻ PIM bước 2
Bước 3: Router RP nhận thông điệp (*, G) Join Router RP sẽ tạo một thực
thể trạng thái (*, G) trong bảng định tuyến multicast của nó và thêm một đường
đi tới router C vào danh sách các cổng ra (vì RP chưa có trạng thái cho nhómmulticast G) Lúc này, cây chia sẻ cho nhóm G được xây dựng từ router RP tới C
và máy nhận 1 Dữ liệu multicast cho nhóm G được gửi tới router RP và theocây chia sẻ đi xuống máy nhận 1
Hình 2.16 Tham gia cây chia sẻ PIM bước 3
* Cắt nhánh trên cây chia sẻ
PIM-SM sử dụng thông điệp Prune để cắt bỏ nhánh cây khi chúng khôngcòn nhận dữ liệu nữa
Giả sử máy nhận 2 không muốn nhận dữ liệu nữa Máy nhận 1 vẫn thamgia nhóm Quá trình máy nhận 2 rời khỏi nhóm multicast G thể hiện qua cácbước sau:
Bước 1: Máy nhận 2 gửi thông điệp IGMP Leave đến router E
Hình 2.17 Cắt nhánh trên cây chia sẻ bước 1
Bước 2: Cổng kết nối giữa máy nhận 2 và router E bị loại bỏ khỏi danh
sách cổng ra của trạng thái (*, G) (Vì router E chỉ có một máy nhận tham giavào nhóm multicast) Lúc này, router E không cần nhận dữ liệu từ nhóm