Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

CƠ CHẾ MULTICAST (Phần 1)

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • CƠ CHẾ MULTICAST (Phần 1)

    I. TỔNG QUAN VỀ MULTICAST

    1. Giới thiệu

    Cuối những năm 80, Steve Deering làm việc trên một dự án trong đó có nhu cầu gửi một thông điệp từ một máy tính đến một nhóm các máy tính thông qua các giao thức lớp 3. Sau khi nghiên cứu vài giao thức định tuyến, Deering kết luận rằng chức năng của các giao thức định tuyến có thể mở rộng để hỗ trợ cơ chế Multicast lớp 3. Định nghĩa cơ bản nhất của IP Multicast là:

    Cơ chế gửi một thông điệp từ một nguồn duy nhất đến một nhóm chọn lựa các địa chỉ đích thông qua một hạ tầng mạng lớp 3 trong một dòng dữ liệu. Nếu bạn muốn gửi một thông điệp từ một nguồn về một đích, bạn có thể dùng cơ chế Unicast. Nếu bạn muốn gửi một thông điệp từ một nguồn đến tất cả các đích trong một phân đoạn mạng, bạn phải dùng Broadcast.

    Steve Deering viết RFC đầu tiên cho cơ chế Multicast vào năm 1986. Nhưng chỉ vài năm sau, các nhu cầu to lớn cho cơ chế Multicast đã bùng nổ, xuất phát từ nhu cầu giao tiếp một-nhiều và nhiều-nhiều. Các ứng dụng chẳng hạn như âm thanh, hình ảnh, các chương trình TV quảng bá… Multicast cũng đã được nghiên cứu như một thành phần của Internet, được biết đến như dự án Multicast mạng chính, Mbone. Tuy nhiên muốn triển khai Multicast trên toàn mạng Internet thì phải chờ các nghiên cứu về BGP đa giao thức và Giao thức Multicast BGP.

    2. Ba kiểu truyền lưu lượng IP trên router và switch
    • Unicast: Các gói tin được gửi từ một địa chỉ nguồn đến một địa chỉ đích. Một router hoặc một thiết bị lớp 3 sẽ chuyển các gói tin bằng cách tìm địa chỉ đích trong bảng định tuyến. Nếu một thiết bị là L2, nó chỉ cần dựa vào địa chỉ MAC.

    Hình 19.1: Cơ chế truyền Unicast

    Phương thức Unicast yêu cầu rằng các ứng dụng hình ảnh gửi một bản sao chép của từng gói tin đến mọi địa chỉ Unicast của các thành viên của nhóm. Để hỗ trợ hình ảnh đẹp, mỗi dòng tính hiệu hình ảnh yêu cầu 1.5 Mbps cho mỗi máy nhận. Nếu chỉ có một vài máy nhận, phương thức này làm việc được nhưng yêu cầu băng thông là n*1.5Mbps trong đó n là số máy nhận.

    Khi số máy tham gia vào tăng lên hàng trăm hoặc hàng ngàn, tải trên máy chủ để tạo ra các phiên bản của dữ liệu cũng tăng lên. Đối với 100 người dùng, phần băng thông yêu cầu để gửi Unicast là 150Mbps. Đối với 1000 người dùng, phần băng thông yêu cầu là 1.5Gbps.



    Hình 19.2: Cơ chế Unicast khi có nhiều máy nhận

    Phương thức dùng Unicast không có khả năng mở rộng. Nếu chuyển sang dùng Broadcast, ta chỉ cần truyền dữ liệu một lần, tuy nhiên lúc này sẽ gặp vài vấn đề nghiêm trọng.
    • Đầu tiên, nếu bên máy nhận nằm trong vùng Broadcast khác máy gửi, router cần phải truyền dữ liệu Broadcast. Tuy nhiên, truyền gói tin dạng Broadcast có thể là giải pháp kém nhất vì sẽ tốn rất nhiều băng thông và tăng tải trên tất cả các thiết bị mạng nếu chỉ có một nhóm nhỏ các máy trong mạng thực sự cần nhận gói tin.

    Hình 19.3: Cơ chế Broadcast
    • Broadcast: Các gói tin được gừi từ một máy nguồn đến một địa chỉ đích Broadcast. Địa chỉ đích có thể là địa chỉ tất cả các máy trạm (255.255.255.255) hoặc là một phần của địa chỉ mạng con. Một router hoặc một switch lớp 3 sẽ không cho phép chuyển các dữ liệu Broadcast này. Một thiết bị L2 sẽ cho phép phát tán lưu lượng Broadcast ra tất cả các cổng của nó.
    • Multicast: Các gói được gửi từ một địa chỉ nguồn đến một nhóm các máy tính. Địa chỉ đích tượng trưng cho các máy trạm muốn nhận lưu lượng này. Mặc định, một router hoặc một switch lớp 3 sẽ không chuyển các gói tin này trừ khi phải cấu hình định tuyến Multicast. Một thiết bị switch lớp 2 không thể nhận biết được vị trí của địa chỉ Multicast đích. Tất cả các gói sẽ được phát tán ra tất cả các cổng ở chế độ mặc định.

    Có hai thái cực được mô tả ở đây. Cơ chế dùng Unicast thì dữ liệu sẽ đi từ máy trạm đến máy trạm; Broadcast thì lưu lượng sẽ đi đến tất cả các máy trạm trên phân đoạn mạng đó. Cơ chế Multicast sẽ nằm giữa hai thái cực này, trong đó máy nguồn chỉ gửi những gói tin từ một máy trạm đến các người dùng muốn nhận loại lưu lượng đó đó. Nhóm này gọi là nhóm Multicast. Các máy nhận lưu lượng Multicast có thể nằm ở bất cứ nơi nào chứ không chỉ trên phân đoạn mạng cục bộ.

    Các lưu lượng dạng Multicast thường là một chiều (unidirectional). Do có nhiều máy trạm nhận cùng một dữ liệu, nên thông thường các gói tin không được phép gửi ngược về máy nguồn trên cơ chế Multicast. Một máy trạm đích sẽ trả lưu lượng ngược về nguồn theo cơ chế Unicast. Cơ chế Multicast cũng sẽ được truyền theo kiểu không kết nối (connectionless). Multicast dùng UDP chứ không dùng TCP.

    Các máy trạm muốn nhận dữ liệu từ một nguồn Multicast có thể tham gia hoặc rời khỏi một nhóm Multicast ở bất kỳ thời điểm nào. Hơn nữa, một máy trạm sẽ quyến định có trở thành thành viên của một hay nhiều nhóm Multicast hay không. Nguyên tắc cần quan tâm là sẽ hoạch định làm thế nào để phân phối các lưu lượng Multicast đến các thành viên của nhóm mà không ảnh hưởng đến các thành viên ngoài nhóm.

    Có ba yêu cầu cơ bản để có thể triển khai Multicast trên một mạng:
    • Phải có một tập hợp các địa chỉ dành cho các nhóm Multicast.
    • Phải có một cơ chế trong đó các máy trạm có thể tham gia và rời khỏi nhóm
    • Phải có một giao thức định tuyến cho phép các router phân phối các lưu lượng Multicast tới các thành viên của nhóm mà không làm quá tải tài nguyên mạng.
    3. Cơ chế Multicast hỗ trợ khả năng mở rộng và khả năng quản lý

    Sáu yêu cầu cơ bản để hỗ trợ các ứng dụng Multicast trên một hạ tầng mạng là:
    • Một dãy địa chỉ dành riêng cho địa chỉ lớp 3 mà chỉ được dùng bởi các ứng dụng Multicast. Người quản trị cần phải cài đặt một ứng dụng Multicast trên một máy chủ Multicast dùng địa chỉ lớp 3.
    • Một địa chỉ Multicast chỉ được dùng như là địa chỉ đích và không được là địa chỉ nguồn. Không giống như gói tin Unicast, một địa chỉ đích IP trong một gói Multicast không chỉ ra địa chỉ của máy nhận mà chỉ đơn giản có ý nghĩa là gói tin đang mang dữ liệu Multicast.
    • Các ứng dụng Multicast phải được cài đặt trên tất cả các máy trạm trong mạng cần phải nhận lưu lượng Multicast cho ứng dụng. Ứng dụng phải được cài đặt dùng cùng địa chỉ Multicast lớp 3 với địa chỉ của máy chủ. Động tác này còn được gọi là tham gia vào cùng một nhóm.
    • Tất cả các máy trạm kết nối vào cùng một mạng LAN phải dùng cùng một phương thức chuẩn để tính toán địa chỉ L2 từ địa chỉ Multicast L3 và gán nó vào cạc mạng. Ví dụ, nếu nhiều router cùng kết nối vào một mạng và tất cả đều chạy OSPF, tất cả các cổng Ethernet của tất cả các router sẽ có khả năng lắng nghe đến địa chỉ Multicast là 0x0100.5e00.0005 ngoài địa chỉ MAC của chính cổng đó. Địa chỉ Multicast L2 0x0100.5e00.0005 được tính toán từ địa chỉ 224.0.0.5. Đây là địa chỉ dành riêng cho OSPF.
    • Phải có một cơ chế trong đó một máy trạm có thể báo cho router kết nối trực tiếp rằng máy trạm muốn nhận lưu lượng cho ứng dụng Multicast. Giao thức IGMP cung cấp cơ chế giao tiếp giữa máy trạm và router trong cùng mạng con. CGMP hay giám sát IGMP (IGMP snooping) giúp các switch học thông tin máy trạm nào đã nhận lưu lượng cho các ứng dụng Multicast và các máy trạm này gắn vào cổng nào của switch.
    • Phải có một giao thức định tuyến Multicast trong đó cho phép các router truyền các dữ liệu Multicast từ máy chủ đến các máy trạm mà không làm tốn tài nguyên mạng. Một vài giao thức định tuyến Multicast là DVMRP (Distance Vector Multicast Routing Protocol), MOSPF (Multicast Open Shortest Path First), và PIM-DM (Protocol Independent Multicast Dense Mode) và PIM-SM (Protocol Independent Multicast Sparse Mode).

    Hình 19.4: Hệ thống hoạt động dựa trên Multicast

    Giả sử rằng một ứng dụng hình ảnh được cài đặt trên một máy chủ dùng địa chỉ Multicast là 225.5.5.5. Các máy trạm từ 1 đến 49, nằm trên các kết nối WAN thì không quan tâm đến lưu lượng này. Các máy trạm từ 50 đến 100 thì quan tâm đến việc nhận lưu lượng cho ứng dụng này và chạy ứng dụng trên PC.

    Khi các máy trạm chạy ứng dụng Multicast, các máy trạm sẽ tham gia vào nhóm, có nghĩa là các máy trạm bây giờ muốn nhận các gói Multicast được gửi về địa chỉ 225.5.5. Các máy trạm từ 50 đến 100 tham gia vào nhóm 225.5.5.5 và báo cho R2 thông qua IGMP rằng các máy trạm này muốn nhận lưu lượng. Các ứng dụng Multicast tính toán địa chỉ lớp 2 0x0100.5e05.0505 từ địa chỉ lớp 3 225.5.5.5 và các card mạng của các máy từ 50 đến 100 sẽ lắng nghe địa chỉ này bên cạnh các lưu lượng đến địa chỉ MAC BIA.

    Một giao thức định tuyến Multicast được cấu hình giữa R1 và R2 sao cho các router có thể truyền các lưu lượng Multicast. R2 có một kết nối đến mạng Frame Relay và hai cổng Ethernet kết nối đến hai switch, Sw2 và Sw3. R2 biết rằng nó có các máy trạm trên cả hai kết nối muốn nhận lưu lượng của nhóm 225.5.5.5. Cả hai switch cũng sẽ ghi nhận các cổng của các máy trạm muốn nhận Multicast thông qua hai giao thức CGMP và IGMP snooping. Một gói Multicast truyền tín hiệu hình ảnh từ máy chủ trên kết nối Ethernet đến R1 và R1 sẽ truyền một gói tin Multicast trên kết nối WAN đến R2. Khi R2 nhận gói Multicast, R2 sẽ nhân bản gói Multicast và truyền trên từng kết nối Ethernet.

    Vì đây là gói tin Multicast, R2 sẽ tính địa chỉ lớp 2 0x0100.5e05.0505 và dùng nó như địa chỉ MAC đích, sau đó R2 sẽ truyền khung tin này đến cả hai switch. Khi các switch nhận được các khung tin này, switch sẽ truyền khung tin ra các cổng phù hợp. Khi các máy trạm nhận được các gói này, card mạng sẽ so sánh địa chỉ MAC đích với địa chỉ Multicast mà máy đang lắng nghe. Nếu là đúng, card mạng sẽ thông báo cho các lớp cao hơn xử lý gói tin.



    Hình 19.5: Quá trình nhận lưu lượng trong mạng chạy Multicast

    Giả sử các máy trạm từ 1 đến 40 cũng muốn nhận lưu lượng cho nhóm 225.5.5.5. R2 đã sẵn sàng truyền lưu lượng đến cả 2 switch. Tuy nhiên, mặc dù đã có thêm 49 máy mới nhận lưu lượng Multicast, tải trên các thiết bị mạng và nhu cầu băng thông trên kết nối WAN không đổi. Tải trên SW2 thì có thể tăng bởi vì nó phải thực hiện việc nhân bản 49 lần và truyền nó trên 49 cổng.

    Multicast cũng có vài điểm bất lợi:
    • Multicast thì dùng UDP nên không tin cậy, thiếu cơ chế cửa sổ điều khiển lỗi và cơ chế giảm luồng nên có thể gây ra nghẽn.
    • Một vài cơ chế Multicast có thể gây ra gói tin bị trùng lắp.
    Last edited by Tín Phan; 26-05-2020, 03:26 PM.
    Phan Trung Tín
    Email: phantrungtin@vnpro.org
    .
    Trung Tâm Tin Học VnPro
    149/1D Ung Văn Khiêm, P.25, Q.Bình Thạnh, Tp.HCM
    Tel: (028) 35124257 (028) 36222234
    Fax: (028) 35124314

    Home Page: http://www.vnpro.vn
    Forum: http://www.vnpro.org
    Twitter: https://twitter.com/VnVnpro
    LinkedIn: https://www.linkedin.com/in/VnPro
    - Chuyên đào tạo quản trị mạng và hạ tầng Internet
    - Phát hành sách chuyên môn
    - Tư vấn và tuyển dụng nhân sự IT
    - Tư vấn thiết kế và hỗ trợ kỹ thuật hệ thống mạng

    Videos: http://www.dancisco.com
    Blog: http://www.vnpro.org/blog
    Facebook: http://facebook.com/VnPro
    Zalo: https://zalo.me/1005309060549762169
    ​​​​​​
Working...
X