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.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Multicast??

    Theo như mình biết: Broadcast dùng điạ chỉ MAC là FFFFFFFFFFFF để broadcast gói tin lên toàn mạng.
    Vậy Multicast nó dùng cơ chế gì để gửi một gói tin đến một nhóm máy.
    - Nó chỉ gửi gói tin đó đến một nhóm máy cho trước? nếu vậy nó phải biết địa chỉ của các máy đó và encapultion vào mỗi frame?
    - Hay nó broadcast gói tin đó ra toàn mạng, và các máy nào có nhu cầu thì sẽ xử lý gói tin đó...nếu vậy thì nó làm sao biết được ai sẽ nhận các gói tin của nó và khi đó MAC address sẽ như thế nào?
    Và minhf cũng muốn hỏi:
    -Các gói tin CDP là các được gửi đi broadcast hay multicast???
    Mong các bạn chỉ giáo!

  • #2
    Bạn hẳn biết là IP address có 5 class, trong đó 3 class đầu A,B,C dùng cho general use purpose, class thứ 4 (D) là dùng cho Multicast, có dải từ 224.0.0.0-239.255.255.255, khi muốn gửi 1 gói tin với mục đích multicast, nó sẽ gửi đến 1 địa chỉ xác định trong dải này.
    Vậy địa chỉ ấy là địa chỉ nào ?
    Địa chỉ đó là địa chỉ Multicast Group.
    Mỗi host muốn nhận multicast cần phải thực hiện động tác đăng ký với group, và như vậy mỗi khi flood data, router sẽ xem 1 interface có host nào đăng ký với group không, nếu có, thì sẽ flood data qua đó, không thì miễn.
    Đơn giản, bạn có thể hình dung mình đang dùng Email, và multicast là đạng bạn gửi mail đến user trong mailling list của bạn :D

    Đó là địa chỉ IP, vậy xuống đến lớp 2 nó làm thế nào để mà biết đâu là multicast ?
    Bạn yên tâm là đã có cơ chế "dịch" multicast IP qua MAC.
    Trong số 48 bit của MAC, nó dùng 24 bit prefix là 01-00-5e là đại diện có các địa chỉ thuộc tính multicast, 24 bit còn lại, thì bit cao nhất được set to 0, 23 bit cuối cùng được lấy từ 23bit cuối của MAC dich lại từ địa chỉ IP của multicast.

    Ví dụ nha: bạn có địa chỉ multicast là 225.128.1.1
    thì địa chỉ MAC sẽ có:
    24 bit đầu tiên: 01-00-5e <-> (00000001.00000000.01011110)
    (24 bít sau của địa chỉ trên .128.1.1 là .10000000.00000001.00000001)
    nhưng bít cao nhất trong số 24 bít còn lại phải được set thành : 0
    cho nên ghép 25 bít của chúng ta hiện có là :00000001.00000000.01011110.0
    vì vậy khi ghép nốt 23 bít còn lại vào với nhau ta được : 00000001.00000000.01011110.00000000.00000001.00000 001
    tương đương với : 01-00-5e-00-01-01

    (Lưu ý 1 chút là địa chỉ này tương đương với IP : 225.0.1.1 và cái đó người ta gọi là overlap trong multicast. :D )

    Bây giờ nói cơ chế làm sao để host join hay leave group nhé:
    Multicast có khái niệm IGMP (Internet Group Management Protocol) có nhiệm vụ quản lý việc "chào mời", hay "xin xỏ" multicast.
    Nói về "chào mời".
    Host muốn gửi multicast đầu tiên query đến 1 địa chỉ : 224.0.0.1 (all hosts), đây là địa chỉ dành riêng mà router hiểu nó cần foward đến tát cả các host. Query nói rằng có ai muốn join vào group của nó không ? Nếu host nào đó quan tâm, nó report lại với thông tin đồng nghĩa với việc đăng ký vào group đó, và từ giờ có thể nhận các multicast packets.
    Về "Xin xỏ": bình thường thì server send query quãng đâu đó 60s, tuy nhiên hếu có ai đó muốn vào group trong khoảng thời gian giữa hai lần send query, host muốn join vào một multicast xác định, nó cần gửi một request đến địa chỉ group mà nó muốn join, sau khi nhận đuợc request, host send multicast chấp nhận và cho host join vào list, từ đó nó có thể nhận được multicast packets.
    Trong trường hợp muốn ra đi, host dừng việc reply query. Server sẽ gửi query confirm 3 lần mà không host nào trên domain còn muốn nhận multicast nữa? nó dừng việc multicast qua interface đó, nếu không thì nó tiếp tục việc multicast.

    Uhm..trưa rồi, bác nào viết tiếp CGMP giùm nhé :D

    Comment


    • #3
      Re: Multicast??

      Có 3 kiểu thực hiện multicast trong mô hình OSI
      1) thực hiện ở lớp 2 (gọi là datalink layer multicast, như frame relay, ATM,...)
      2) thực hiện ở lớp 3 (gọi là IP Multicast)
      3) thực hiện ở lớp 7 (gọi là Application Layer Multicast, viết tắt là ALM)
      Mỗi kiểu có những ưu điểm và hạn chế khác nhau. Những bài viết trên của các bạn chủ yếu đề cập đến IP Multicast, và một phần multicast ở lớp 2. Thực tế khi nói multicast, người ta ngầm hiểu đó là IP Multicast.

      Thành viên của một multicast group được tạo thành, quản lý bằng IGMP. Mỗi multicast group xây dựng một multicast tree nối đến tất cả các thành viên. Đã gọi là "tree" thì sẽ không có vòng lặp (loop) trong đó (xem thêm: RPF, Reverse Path Forwarding). Khi multicast tree đã hình thành, thông tin từ người gửi đến người nhận sẽ truyền trên tree này.

      Multicast tree phải thỏa mãn một số yêu cầu nhất định, như điều kiện khoảng cách từ sender đến một receiver bất kỳ là ngắn nhất, hay điều kiện tổng khoảng cách đến tất cả các user là bé nhất, hay điều kiện về thời gian hội tụ,... Tùy vào mỗi yêu cầu, người ta sẽ chọn một hay vài multicast routing protocol thích hợp để xây dựng multicast tree. Có nhiều multicast routing protocol, nhưng thực tế người ta chỉ dùng DVMRP (cho dense-mode) và PIM-SM (cho sparse-mode).

      IP Multicast là một kĩ thuật hay, hiệu quả, được đề xuất từ hơn 10 năm trước nhưng vẫn chưa được áp dụng rộng rãi, và có thể... không bao giờ được áp dụng.

      Muốn dùng thử multicast? Còn tùy công ty, trường ĐH, hay ISP của bạn có điều kiện kết nối với MBone hay không. Nếu có, bạn có thể dùng thử multicast bằng phần mềm IP/TV của Cisco, hay bộ toolkit của MASH project để xem những chương trình thể thao, ca nhạc hay một hội nghị nào đó, hay đơn giản là dùng mtrace để xem cấu trúc một multicast tree nào đó.

      Sau đây là đính chính về bài viết của vnsystem:
      Bạn đang nói về IGMP version 1 (đã cũ). IGMPv2 quy định host phải gửi một explicit leave message khi muốn rời khỏi group. IGMPv2 còn có nhiều tính năng hiệu quả khác. Người ta đang phát triển IGMPv3.

      Comment


      • #4
        Originally posted by vnsystem
        Bạn hẳn biết là IP address có 5 class, trong đó 3 class đầu A,B,C dùng cho general use purpose, class thứ 4 (D) là dùng cho Multicast, có dải từ 224.0.0.0-239.255.255.255
        ..............
        Bạn yên tâm là đã có cơ chế "dịch" multicast IP qua MAC.
        Trong số 48 bit của MAC, nó dùng 24 bit prefix là 01-00-5e là đại diện có các địa chỉ thuộc tính multicast, 24 bit còn lại, thì bit cao nhất được set to 0, 23 bit cuối cùng được lấy từ 23bit cuối của MAC dich lại từ địa chỉ IP của multicast.

        Ví dụ nha: bạn có địa chỉ multicast là 225.128.1.1
        thì địa chỉ MAC sẽ có:
        24 bit đầu tiên: 01-00-5e <-> (00000001.00000000.01011110)
        (24 bít sau của địa chỉ trên .128.1.1 là .10000000.00000001.00000001)
        nhưng bít cao nhất trong số 24 bít còn lại phải được set thành : 0
        cho nên ghép 25 bít của chúng ta hiện có là :00000001.00000000.01011110.0
        vì vậy khi ghép nốt 23 bít còn lại vào với nhau ta được : 00000001.00000000.01011110.00000000.00000001.00000 001
        tương đương với : 01-00-5e-00-01-01
        .................
        Mình không phải ccxx (hay cczz :D) nên câu hỏi lỡ mà nó có ngớ ngẩn thì cũng đừng la mình nha
        Theo mình biết thì MAC được bind dính trên network interface và là unchange number vậy làm sao nó có thể... change 25 bit đầu tiên như bạn nói ở trên được? giải thích dùm mình nha
        thanks
        mulan

        Comment


        • #5
          To Mulan:
          Đây là destination MAC mà.

          To LetItBe:
          CDP dùng multicast, MAC là 01:00:0C:0C:0C:0C.

          Comment


          • #6
            cám ơn bạn minhtit đã giải thích cho mình :)
            cám ơn bạn longha, vnstudent, bài viết hay quá
            tiếc là mình không thể tặng point cho các bạn như một vài forum khác (mà cũng có point đâu mà tặng, newbie mà :mrgreen: )
            mulan mới chập chững tìm hiểu về multicast thôi, các bạn ai có sách về ip multicast hay có thể send cho mulan được không ? chờ tin các bạn lắm lắm
            thân
            mulan

            Comment


            • #7
              - Mặc định chuyển mạch lớp 2 sẽ chuyển tất các lưu lượng multicast tới mọi port có liên quan. Cách giải quyết này làm giảm tính hiệu quả của chuyển mạch, với mục đích là giới hạn lưu lượng tới các port cần nhận dữ liệu.
              - Có 3 cách để giải quyết hiệu quả IP multicast ở môi trường chuyển mach lớp 2 là Giao thức quản lý nhóm Cisco (Cisco Group Management Protocol – CGMP), Kiểm tra IGMP (IGMP Snooping), và giao thức quản lý nhóm router-port (Router-Port Group Management Protocol – RGMP).

              Ở bài này trình bày sơ lược lý thuyết CGMP:

              Đây là giao thức phát triển bởi Cisco cho phép các bộ chuyển mạch switch lấy thông tin IGMP trên router dùng để chuyển thông tin lớp 2. Lưu lượng IP multicast chỉ phân phối đến các port liên quan đến người nhận trong một nhóm. Tất cả các port khác sẽ không nhận lưu lượng trừ khi các port này được nối với router multicast. Các port của router multicast phải nhận tất cả gói dữ liệu IP multicast.
              Hoạt dộng cơ bản của CGMP mô tả ở hình dưới. Khi một host tham gia vào nhóm multicast (phần A trong hình), nó tự gởi đi bản tin báo cáo IGMP tới địa chỉ nhóm đích (224.1.2.3 trong ví dụ). báo cáo đi qua switch đến router bằng cách xử lý IGMP thông thường. Router nhận báo cáo IGMP và xừ lý chúng theo quy trình thông thường, nhưng cũng tạo bản tin tham gia CGMP và gởi tới switch (phần B trong hình).

              Vi du CGMP

              Switch nhận bản tin CGMP này và thêm port vào trong bảng bộ nhớ địa chỉ (CAM – content-addressable memory) cho nhóm multicast. Tất cà lưu lượng con gởi trực tiếp đến nhóm multicast sẻ được chuyển qua port đến host đó. Switch lớp 2 được thiết kế sao cho nhiều địa chỉ MAC đích có thể ở cùng một port vật lý, cho phép switch kết nối vào hệ thống và nhiều địa chỉ multicast khác được chuyển ra một port. Với giao thức CGMP, switch chỉ phải “lắng nghe” các bản tin CGMP từ router. Phần còn lại của lưu lượng multicast được chuyển đi sử dụng bảng CAM với các mục mới tạo bởi CGMP.



              :)

              Comment


              • #8
                bai` nay` viet chuan qua day,toan` van de toi khong hieu,thank cac bac nhieu nhe
                sống trên đời cần có một tấm lòng.....để làm j em biết không?.....để gió cuốn đi.......

                Welcome to my blog.....www.360.yahoo.com/longphi11

                Comment

                Working...
                X