共用方式為


Cable Guy - 2002 年 2 月

IP 多點傳送概觀

 Bb877973.cableguy(zh-tw,TechNet.10).gif
作者:Cable Guy

Bb877973.community-sm(zh-tw,TechNet.10).gif本頁索引
Bb877973.arrowleft(zh-tw,TechNet.10).gif 將 IP 多點傳送對應到 MAC 層 (媒體存取控制層) 多點傳送

Bb877973.arrowleft(zh-tw,TechNet.10).gif IP 多點傳送–啟用的內部網路

Bb877973.arrowleft(zh-tw,TechNet.10).gif 其他詳細資訊

除了單點傳送和廣播支援以外,IP (版本 4) 也提供傳送和接收 IP 多點傳送流量的辦法。IP 多點傳送流量是傳送到單一目的地 IP 位址,但是由多個 IP 主機接收和處理,與其在 IP 聯網 (internetwork) 的位置無關。主機聆聽特定 IP 多點傳送位址,並接受到該 IP 位址的所有封包。

對於一對多資料傳送而言,IP 多點傳送要比 IP 單點傳送或廣播有效率多了。不像單點傳送,只傳送資料的一份副本。也不像廣播,流量僅由聆聽的電腦處理和接收。

IP 多點傳送的其他元素包括以下各項:

  • 在特定 IP 多點傳送位址上聆聽的主機組稱為主機群組。
  • 主機群組成員是動態的,主機可隨時加入和離開群組。
  • 對於主機群組的大小沒有限制。
  • 主機群組可將 IP 路由器跨越多個網路區段。此組態需要在 IP 路由器上支援多點傳送、主機登錄以路由器接收多點傳送流量的能力。主機登錄是使用網際網路群組管理通訊協定 (IGMP,Internet Group Management Protocol) 來完成的。
  • 主機無須屬於對應主機群組,即可傳送流量到 IP 多點傳送位址。

IP 多點傳送位址,也稱為群組位址,在類別 D 的 224.0.0.0 到 239.255.255.255 範圍內,根據前四個高序位位元設定為 1110 所定義。在網路前置詞或 Classless Inter-Domain Routing (CIDR) 標記法中,IP 多點傳送位址摘要為 224.0.0.0/4。在 224.0.0.0 到 224.0.0.255 (224.0.0.0/24) 範圍內的多點傳送位址保留給本機子網路使用,無論 IP 標頭存留時間 (TTL,Time to Live) 為何,這些位址都不會由 IP 路由器傳送。以下為保留的 IP 多點傳送位址範例:

  • 224.0.0.1 - 所有在此子網路的主機。
  • 224.0.0.2 - 所有在此子網路上的路由器。
  • 224.0.0.5 - Open Shortest Path First (OSPF) 2 版,到達網路上所有的 OSPF 路由器而設計。
  • 224.0.0.6 - OSPF 2 版,專為到達網路上所有指定的 OSPF 路由器而設計。
  • 224.0.0.9 - Routing Information Protocol (RIP) 2 版。
  • 224.0.1.1 - 網路時間通訊協定 (Network Time Protocol)。

Bb877973.t(zh-tw,TechNet.10).gif 將 IP 多點傳送對應到 MAC 層 (媒體存取控制層) 多點傳送 Bb877973.t(zh-tw,TechNet.10).gif

為了支援 IP 多點傳送,網際網路授權單位將多點傳送位址 01-00-5E-00-00-00 到 01-00-5E-7F-FF-FF 的範圍保留給 Ethernet 和 光纖分佈資料介面 (FDDI,Fiber Distributed Data Interface) 媒體存取控制 (MAC) 位址使用。為了要將 IP 多點傳送位址對應到 MAC 層多點傳送位址,IP 多點傳送位址的 23 個低序位位元直接對應到 MAC 層多點傳送位址中的23 個低序位位元。因為 IP 多點傳送位址的前 4 個位元是根據類別 D 慣例修復,IP 多點傳送位址中有 5 個位元沒有對應 MAC 層多點傳送位址。因此,主機有可能收到其他群組的 MAC 層多點傳送封包。然而,一旦決定目的地 IP 位址後,這些封包便會被丟棄。

例如,多點傳送位址 224.192.16.1 成為 01-00-5E-40-10-01。為了使用 23 個低序位位元,沒有使用第一個 8 位元,只用了第二個 8 位元中的最後 7 個位元。第三個和第四個 8 位元直接轉換成十六進位數字。第二個 8 位元,192 以二進位表示為 11000000。如果您丟棄高序位位元,就變成 1000000 或 64 (十進位),或 0x40 (十六進位)。對於下一個 8 位元,16 以十六進位表示為 0x10。至於最後一個 8 位元,1 以十六進位表示為 0x01。因此,對應到 224.192.16.1 的 MAC 位址為 01-00-5E-40-10-01。

Token Ring 對 MAC 層多點傳送定址使用同樣的方法。然而,許多 Token Ring 網路介面卡並不支援這種方式。因此,預設設定,功能位址 0xC0-00-00-04-00-00 用於在 Token Ring 網路上傳送的所有 IP 多點傳送流量。如需關於 Token Ring 支援 IP 多點傳送的詳細資訊,請參閱 RFC 1469。

Bb877973.t(zh-tw,TechNet.10).gif IP 多點傳送–啟用的內部網路 Bb877973.t(zh-tw,TechNet.10).gif

在啟用 IP 多點傳送的內部網路,任何主機可傳送 IP 多點傳送流量到任何群組位址,而任何主機可從任何群組位址接收 IP 多點傳送流量,均與其位置無關。為了增進此功能的效果,IP 多點傳送必須由內部網路的主機和路由器所支援。

IP 多點傳送的主機支援

對於傳送 IP 多點傳送封包的主機,必須:

  • 決定要使用的 IP 多點傳送位址。

    IP 多點傳送位址可以是應用程式提供的固定值 (hard-coded),或是透過配置唯一多點傳送位址的機制取得。

  • 將 IP 多點傳送封包放在媒體上。

傳送主機必須建立含有所需目的地 IP 多點傳送位址的 IP 封包,再將其放在媒體上。在共用存取技術如 Ethernet、FDDI 和 Token Ring 的情況下,目的地 MAC 位址是從 IP 多點傳送位址所建立,如前所述。

對於要接收 IP 多點傳送位址的主機,必須:

  • 通知 IP 接收多點傳送流量。

    為了決定要使用的 IP 多點傳送位址,應用程式必須先決定是要建立新主機群組,或使用現有的主機群組。如果要加入現有群組,應用程式可以使用固定的多點傳送位址,或來自 URL (universal resource locator) 字串的位址。

    在決定群組位址後,應用程式必須通知 IP 在指定的目的地 IP 多點傳送位址接收多點傳送流量。例如,應用程式可使用 Windows Sockets 功能通知所加入多點傳送群組的 IP。如果多個應用程式使用同一個 IP 多點傳送位址,IP 就必須傳送多點傳送封包的副本到每一個應用程式。在應用程式加入或離開主機群組時,IP 必須追蹤哪一個應用程式使用哪一個多點傳送位址。此外,對於多重主目錄的主機,IP 必須追蹤每個子網路中主機群組的應用程式成員。

  • 以網路介面卡登錄多點傳送 MAC 位址。

    如果網路技術支援硬體式多點傳送,就會告知網路介面卡拒絕特定多點傳送位址的封包。在共用存取技術如 Ethernet、FDDI 和 Token Ring 的情況下,Windows 2000 NdisRequest( ) 函數用來通知網路介面卡回應對應到 IP 多點傳送位址的多點傳送 MAC 位址。

  • 通知本機路由器。

    主機必須通知正在特定群組位址聆聽多點傳送流量的本機子網路路由器。登錄主機群組資訊的通訊協定是 Internet Group Management Protocol (IGMP)。目前使用兩種 IGMP 版本:IGMP 1 版 (IGMP v1) 和 IGMP 2 版 (IGMP v2)。Windows 2000 和 Windows XP TCP/IP 支援 IGMP v2。「IGMP 主機成員資格報告」訊息是由主機傳送,用來在特定主機群組登錄成員資格。

對 IP 多點傳送的路由器支援

為了只轉送 IP 多點傳送封包到群組成員的子網路上,IP 多點傳送路由器必須能:

  • 接收所有的 IP 多點傳送流量。
  • 轉送 IP多點傳送流量。
  • 接收和處理 IGMP 主機成員資格報告訊息。
  • 查詢附加子網路的主機成員狀態。
  • 將群組成員資格和其他 IP 多點傳送路由器交流。

接收所有的 IP 多點傳送流量

對於共用存取技術,如 Ethernet 和 FDDI,網路介面卡的一般聆聽模式為單點傳送聆聽模式。聆聽模式是網路介面卡分析傳入框架的目的地 MAC 位址,來決定是否作進一步處理。在單點傳送聆聽模式下,唯一被視為要進一步處理的框架位於網路介面卡上目的地 MAC 位址的資料表中。通常,唯一值得注意的位址是廣播位址 (0xFF-FF-FF-FF-FF-FF) 和介面卡的單點傳送位址,也稱為 MAC 位址。

然而,對於接收所有 IP 多點傳送流量的 IP 多點傳送路由器而言,必須將網路介面卡放在稱為多點傳送混雜模式的聆聽模式中。多點傳送混雜模式會分析電子電機工程師協會 (IEEE,Institute of Electrical and Electronics Engineers)-定義的個別/群組 (I/G) 位元,來決定框架是否需要進一步處理。Ethernet 和 FDDI 的 I/G 位元是目的地 MAC 位址的第一個位元組的最後一個位元。

I/G 位元的值如下:

  • 如果設為 0,位址就是單點傳送 (或個別) 位址。
  • 如果設為 1,位址就是多點傳送 (或群組) 位址。多點傳送位元在廣播位址中也有設定。

當網路介面卡位於多點傳送混雜聆聽模式,任何含多點傳送位元設為 1 的框架不會被進一步處理。

多點傳送混雜模式和混雜模式不同。在混雜模式中,所有框架—無論其目的地 MAC 位址為何—都不會被傳送。混雜模式是由通訊協定分析程式 (也稱為網路竊聽者) 所使用,如 Microsoft® Systems Management Server 其中的 Microsoft Network Monitor 完整版。主機的網路介面卡通常不是在多點傳送混雜模式中。

轉送 IP 多點傳送流量

轉送 IP 多點傳送封包是 TCP/IP 通訊協定的功能之一,而 TCP/IP 的 Windows 2000 實作也包含此功能。當啟用多點傳送轉送功能 (使用路由及遠端存取服務),會分析非本機子網路 IP 多點傳送封包,來決定轉送封包的介面。分析方法是將來源位址和目的地群組位址和 IP 多點傳送轉送資料表中的項目比較。接收到非主機多點傳送封包時,在 IP 標頭的存留時間會遞減 1。如果 TTL 在遞減後大於 0,就會檢查多點傳送轉送資料表。如果在多點傳送轉送資料表中找到符合目的地 IP 多點傳送位址的項目時,IP 多點傳送封包會以新 TTL 在合適的介面上轉送。

多點傳送轉送處理不會辨別正在本機附加子網路上接收多點傳送流量的主機,或是在來自跨子網路上另一部路由器的本機附加子網路下游網路區段上的主機。換句話說,多點傳送路由器可能在沒有主機聆聽的子網路上轉送多點傳送封包。由於子網路上另一部路由器指出主機在其方向正在接收多點傳送流量,因而轉送多點傳送封包。

多點傳送轉送資料表不會記錄每個主機群組成員,或主機群組成員的數目,只記錄特定群組位址的至少一個主機群組成員。

接收和處理 IGMP 主機成員資格報告訊息

多點傳送路由器從所有本機附加子網路的所有主機上接收 IGMP 主機成員資格報告訊息。此資訊是利用放置項目在多點傳送轉送資料表中,來追蹤主機群組成員。由於所有多點傳送路由器正在多點傳送混雜模式中聆聽,它們接收所有傳送到任何群組位址的 IGMP 主機成員資格報告訊息。

為了改善離開延遲時間,即介於子網路上最後一部主機離開群組,到對於該群組已沒有其他多點傳送流量轉送到該子網路的時間差距,可能是子網路上最後一個群組成員的主機傳送 「GMP 離開群組」訊息。當傳送多點傳送-位址-特定的 IGMP 查詢到 IGMP 離開群組訊息中的群組後,沒有得到回覆,路由器會判定子網路上沒有群組成員。

查詢附加子網路的主機成員資格狀態

在特定的子網路上,可能混雜有 IGMP v1 主機和 IGMP v2 主機。當 IGMP v1 主機停止接收特定群組位址的 IP 多點傳送流量 (主機離開群組) 時,它不會傳送 IGMP 離開群組訊息來通知本機路由器。結果,主機可以離開群組;如果這是子網路上最後一個成員,本機路由器會繼續傳送該群組的多點傳送流量到子網路上。

為了彌補 IGMP v1 主機所缺少的報告功能,以及 IGMP 主機成員資格報告和離開群組訊息的可能短缺,多點傳送路由器定期傳送 IGMP 主機成員資格查詢訊息到本機子網路,以取得主機成員資格資訊。仍然是多點傳送群組成員的主機使用 IGMP 主機成員資格報告訊息回應查詢。為了防止在特定子網路上的多個主機傳送從同一個群組的 IGMP 主機成員資格報告訊息,使用隨機回覆計時器來延遲 IGMP 主機成員資格報告訊息的傳輸。如果訊息是在回覆計時器逾時前由子網路上其他主機所傳送,就不會傳送訊息。

對於 Windows 2000 Server 路由及遠端存取服務,新增 IGMP 路由通訊協定元件,並在介面上啟用 IGMP 路由器模式,就能提供接收和處理 IGMP 主機成員資格報告訊息,以及查詢附加子網路的主機成員資格狀態的功能。

群組成員與其他 IP 多點傳送路由器通訊

要建立含有一部以上路由器的多點傳送式 IP 聯網,多點傳送路由器必須使群組成員資訊彼此交流,這樣群組成員不論其在 IP 聯網上的位置為何,都可以收到 IP 多點傳送流量。

多點傳送路由器使用如 Distance Vector Multicast Routing Protocol (DVMRP)、Multicast Open Shortest Path First (MOSPF) 或 Protocol Independent Multicast (PIM) 的多點傳送路由通訊協定交換主機成員資格資訊。群組成員資格可使用明確方式 (交換群組位址和子網路資訊),或是以隱含方式 (通知上游路由器是否有群組成員存在於多點傳送流量來源的下游) 交流。

多點傳送路由通訊協定的目標包含以下幾項:

  • 從來源轉送流量以避免重複。
  • 最小化或排除多點傳送流量,以傳送到不需要流量的子網路。
  • 最小化路由器的 CPU 和記憶體負荷,以增加調整彈性。
  • 最小化路由通訊協定的資源使用。
  • 最小化加入延遲時間,即子網路上第一個主機成員開始接收群組流量所花費的時間。

多點傳送路由比單點傳送路由複雜多了。使用單點傳送路由時,單點傳送流量是轉送到整體的唯一目的地。單點傳送路由會摘要整體的唯一目的地的範圍。網路中單點傳送路由比較具有一致性,並且只有在 IP 聯網拓樸變更時才需要更新。

使用多點傳送路由時,多點傳送流量是轉送到不明確的群組目的地。群組位址代表個別群組,一般而言,無法在多點傳送轉送資料表中摘要。群組成員的位置並不一致,每當主機群組成員加入或離開主機群組時,多點傳送路由器的多點傳送轉送資料表可能需要更新。

如同單點傳送路由通訊協定更新單點傳送 IP 路由資料表,多點傳送路由通訊協定也會更新 IP 多點傳送轉送資料表。雖然 Windows 2000 Server 路由及遠端存取服務提供了可以執行協力廠商的通訊協定的平台,但它並不包含任何多點傳送路由通訊協定。Windows 2000 Server 所提供可以更新多點傳送轉送資料表中項目的唯一元件是 IGMP 路由通訊協定元件。

Bb877973.t(zh-tw,TechNet.10).gif 其他詳細資訊 Bb877973.t(zh-tw,TechNet.10).gif

有關 Windows 2000 中 IP 多點傳送支援的詳細資訊,請參考下列資源:

如果對於本欄有任何問題或意見,請與我們聯繫