組播地址
組播地址
組播報文的目的地址使用D類IP地址,D類地址不能出現在IP報文的源IP地址欄位。單播數據傳輸過程中,一個數據包傳輸的路徑是從源地址路由到目的地址,利用“逐跳”的原理在IP網路中傳輸。然而在ip組播環中,數據包的目的地址不是一個,而是一組,形成組地址。所有的信息接收者都加入到一個組內,並且一旦加入之後,流向組地址的數據立即開始向接收者傳輸,組中的所有成員都能接收到數據包。組播組中的成員是動態的,主機可以在任何時刻加入和離開組播組。
介紹:這個實例用IP-乙太網說明組播和乙太網組播的關係,及乙太網組播的細節過程。
1)什麼是IP組播?
協議層常需要和組群打交道,進行發現、通知、查詢等工作。IP用組播IP地址在第三層組播,一個multicast IP address 可以有多個成員,組播數據包會被IP層路由器轉發到組群成員所在的路由器,然後用乙太網的組播功能把數據包送到組播成員的網卡介面。例,OSPF 用Hello來發現區域網中的OSPF鄰居,HSRP發送Hello組播包把自己的狀態通知其它的HSRP路由器。
2)乙太網怎麼組播的(multicast)?
乙太網具有廣播屬性,一個節點發送的數據包會被乙太網泛洪,導致每一個乙太網網卡介面都會收到這個數據包。介面收到數據包后,並不馬上交給節點CPU處理,而是進行MAC地址比較,如果數據包的目的MAC地址和介面的MAC地址一樣,它才接受,把數據包交給計算機,否則就把數據包丟棄。組群成員的網卡介面除了硬體MAC地址 (unicast MAC),還有組播MAC地址(multicast MAC)。介面收到組播包,會把此包的目的MAC地址(是個組播MAC)和自己的MAC地址比較,如果組播地址相同,就會接受此包。這樣,局網內這個組群的所有成員,都會收到送往該組群的組播包。
3)IP-Ethernet 的組播地址和組播MAC地址有什麼關係?
許多MAC組播地址是從IP組播地址轉換而來。例,OSPF IP組播地址是224.0.0.5, 轉換為相應的MAC組播地址如下:
(1)把IP地址(32位)用二進位表現 1110000: 00000000: 00000000: 00000101
(2)然後抽出最右邊的23叫做A: 0000000: 00000000: 00000101
(3)把IEEE定義的組播01:00:5e作為B. B有24位 (二進位是 00000001:00000000:01011110)
(4)合成相應的MAC組播地址如下:連接 B,0,A。 B有24位,在左邊; 0是一位,在中間;A有23位,在右邊。共48位。二進位是 00000001:00000000:01011110:000000000: 00000000: 00000101 十六進位是 01:00:5e:00:00:05
4)有多少個IP組播地址?
IP協議把224.0.0.0 ~ 239.255.255.255之間的IP地址都用做IP組播地址。以下列出前幾個組播地址。 224.0.0.0 base address (reserved)
224.0.0.1 The All Hosts multicast group that contains all systems on the same network segment 224.0.0.2 The All Routers multicast group that contains all routers on the same network segment 224.0.0.5 The Open Shortest Path First (OSPF)AllSPFRouters address. Used to send Hello packets to all OSPF routers on a network segment
224.0.0.6。The OSPF AllDRouters address. Used to send OSPF routing information to OSPF designated routers on a network segment
224.0.0.9 The RIP version 2 group address. Used to send routing information using the RIP protocol to all RIP v2-aware routers on a network segment
224.0.0.10 EIGRP group address. Used to send EIGRP routing information to all EIGRP routers 。
5)有沒有乙太網專用的MAC組播地址?以下列出一些乙太網專用的組播地址,
Ethernet multicast address Type Field Usage 01-00-0C-CC-CC-CC 0x0802 CDP (Cisco Discovery Protocol), VTP (VLAN Trunking )01-00-0C-CC-CC-CD 0x0802 Cisco Shared Spanning Tree Protocol Address 01-80-C2-00-00-00 0x0802 Spanning Tree Protocol (for bridges)IEEE 802.1D
組播組可以是永久的也可以是臨時的。組播組地址中,有一部分由官方分配的,稱為永久組播組。永久組播組保持不變的是它的ip地址,組中的成員構成可以發生變化。永久組播組中成員的數量都可以是任意的,甚至可以為零。那些沒有保留下來供永久組播組使用的ip組播地址,可以被臨時組播組利用。
224.0.0.0~224.0.0.255為預留的組播地址(永久組地址),地址224.0.0.0保留不做分配,其它地址供路由協議使用;
224.0.1.0~224.0.1.255是公用組播地址,可以用於Internet;
224.0.2.0~238.255.255.255為用戶可用的組播地址(臨時組地址),全網範圍內有效;
239.0.0.0~239.255.255.255為本地管理組播地址,僅在特定的本地範圍內有效。
列表如下:
224.0.0.0 基準地址(保留)
224.0.0.1 所有主機的地址(包括所有路由器地址)
224.0.0.2 所有組播路由器的地址
224.0.0.3 不分配
224.0.0.4 dvmrp路由器
224.0.0.5 所有ospf路由器
224.0.0.6 ospf DR/BDR
224.0.0.7 st路由器
224.0.0.8 st主機
224.0.0.9 rip-2路由器
224.0.0.10 Eigrp路由器
224.0.0.11 活動代理
224.0.0.12 dhcp 伺服器/中繼代理
224.0.0.13 所有pim路由器
224.0.0.14 rsvp封裝
224.0.0.15 所有cbt路由器
224.0.0.16 指定sbm
224.0.0.17 所有sbms
224.0.0.18 vrrp
224.0.0.22 IGMPv3
乙太網傳輸單播ip報文的時候,目的mac地址使用的是接收者的mac地址。但是在傳輸組播報文時,傳輸目的不再是一個具體的接收者,而是一個成員不確定的組,所以使用的是組播mac地址。組播mac地址是和組播ip地址對應的。iana(internet assigned number authority)規定,組播mac地址的高24bit為0x01005e,mac 地址的低23bit為組播ip地址的低23bit。
由於ip組播地址的后28位中只有23位被映射到mac地址,這樣就會有32個ip組播地址映射到同一mac地址上。
組播MAC地址的高24bit為0x01005e,第25bit為0,即高25bit為固定值。MAC地址的低23bit為組播IP地址的低23bit。由於 IP組播地址的前4bit 是1110,代表組播標識,而後28bit 中只有23bit 被映射到MAC 地址,這樣IP 地址中就有5bit 信息丟失,導致的結果是出現了32 個IP 組播地址映射到同一MAC 地址上。
組播應用大致可以分為三類:點對多點應用,多點對多點應用和多點對點應用。
點對多點應用是指一個發送者,多個接收者的應用形式,這是最常見的組播應用形式。
典型的應用包括:
媒體廣播:如演講、演示、會議等按日程進行的事件。其傳統媒體分發手段通常採用電視和廣播。這一類應用通常需要一個或多個恆定速率的數據流,當採用多個數據流(如語音和視頻)時,往往它們之間需要同步,並且相互之間有不同的優先順序。它們往往要求較高的帶寬、較小的延時抖動,但是對絕對延時的要求不是很高。
媒體推送:如新聞標題、天氣變化、運動比分等一些非商業關鍵性的動態變化的信息。它們要求的帶寬較低、對延時也沒有什麼要求。
信息緩存:如網站信息、執行代碼和其他基於文件的分散式複製或緩存更新。它們對帶寬的要求一般,對延時的要求也一般。
事件通知:如網路時間、組播會話日程、隨機數字、密鑰、配置更新、有效範圍的網路警報或其他有用信息。它們對帶寬的需求有所不同,但是一般都比較低,對延時的要求也一般。
狀態監視:如股票價格、感測設備、安全系統、生產信息或其他實時信息。這類帶寬要求根據採樣周期和精度有所不同,可能會有恆定速率帶寬或突髮帶寬要求,通常對帶寬和延時的要求一般。
多點對多點應用是指多個發送者和多個接收者的應用形式。通常,每個接收者可以接收多個發送者發送的數據,同時,每個發送者可以把數據發送給多個接收者。
典型應用包括:
多點會議:通常音/視頻和白板應用構成多點會議應用。在多點會議中,不同的數據流擁有不同的優先順序。傳統的多點會議採用專門的多點控制單元來協調和分配它們,採用組播可以直接由任何一個發送者向所有接收者發送,多點控制單元用來控制當前發言權。這類應用對帶寬和延時要求都比較高。
資源同步:如日程、目錄、信息等分佈資料庫的同步。它們對帶寬和延時的要求一般。
并行處理:如分散式并行處理。它對帶寬和延時的要求都比較高。
協同處理:如共享文檔的編輯。它對帶寬和延時的要求一般。
遠程學習:這實際上是媒體廣播應用加上對上行數據流(允許學生向老師提問)的支持。它對帶寬和延時的要求一般。
討論組:類似於基於文本的多點會議,還可以提供一些模擬的表達。
分散式交互模擬(DIS):它對帶寬和時延的要求較高。
多人遊戲:多人遊戲是一種帶討論組能力的簡單分散式交互模擬。它對帶寬和時延的要求都比較高。
Jam Session:這是一種音頻編碼共享應用。它對帶寬和時延的要求都比較高。
多點對點應用是指多個發送者,一個接收者的應用形式。通常是雙向請求響應應用,任何一端(多點或點)都有可能發起請求。典型應用包括:
資源查找:如服務定位,它要求的帶寬較低,對時延的要求一般。
數據收集:它是點對多點應用中狀態監視應用的反向過程。它可能由多個感測設備把數據發回給一個數據收集主機。帶寬要求根據採樣周期和精度有所不同,可能會有恆定速率帶寬或突髮帶寬要求,通常這類應用對帶寬和延時的要求一般。
網路竟拍:拍賣者拍賣產品,而多個竟拍者把標價發回給拍賣者。
信息詢問: 詢問者發送一個詢問,所有被詢問者返回應答。通常這對帶寬的要求較低,對延時不太敏感。
Juke Box:如支持準點播(Near-On-Demand)的音視頻倒放。通常接收者採用“帶外的”協議機制(如HTTP、RTSP、SMTP,也可以採用組播方式)發送倒放請求給一個調度隊列。它對帶寬的要求較高,對延時的要求一般。