多播理解

概述
主機可採用的通信方式有如下三種:

單播:單臺主機與單臺主機之間的數據通信;
廣播:單臺主機向網絡中所有主機發送數據報的過程;
多播:單臺主機向選定的一組主機發送數據報的過程;
        在網絡協議中 IP 地址有三種方式,即爲單播地址、廣播地址 以及 多播地址。假設多個主機上的共享信道網絡是以太網,每個以太網幀包含源主機和目的主機的以太網地址。若目的地址僅指定單個接收接口,則稱爲單播,在單播方式下,任意兩臺主機之間的通信不會干擾網內其他主機。若目的地址包含網上的所有主機的接收接口時,即一個主機要向網上所有主機發送幀,則稱爲廣播。若一個主機把幀發送給屬於多播組的多個主機,則稱爲多播。廣播和多播僅應用於 UDP,可以將數據報文同時傳給多個接收者,而 TCP 是一個面向連接的字節流協議,意味着只能運行於兩個主機(由 IP 地址確定)內的兩個進程(由端口號確定)之間的一條連接。

        首先了解下信道傳送的幀在主機的過濾過程,如下圖所示:

信道傳送的幀在主機的過濾過程:

首先,網卡查看由信道傳送給來的幀,確定是否接收該幀,對該幀進行檢驗和,若檢驗和出錯,則將其丟棄,若檢驗和正確,則將其傳送給設備驅動程序;
設備驅動程序也對來自接口卡的幀進行過濾,首先確認該幀指定的協議類型,然後進行多播過濾檢測該主機是否屬於多播地址說明的多播組,若幀的指定協議類型爲 IP 協議,則將其傳給 IP 層;
在 IP 層中根據 IP 地址中的源地址和目的地址進程過濾檢測,若正常則將其傳送給下一層,假設是 UDP 層;
每次 UDP 接收來自 IP 傳送來的數據報,再根據端口號進行數據報過濾,若當前沒有使用該端口號的進程,則將其丟棄,併產生一個 ICMP 不可達報文,若是檢驗和錯誤,則直接將其丟棄;


廣播
廣播可分爲兩大類:定向的廣播 和 受限的廣播

受限的廣播:受限的廣播地址是 255.255.255.255。該地址用於主機配置過程中 IP 數據報的目的地址,此時,主機並不知道它所在的網絡掩碼,甚至它的 IP 地址都不知道。任何情況下,路由器都不能轉發目的地址爲受限的廣播地址的數據報,因此,受限的廣播地址的數據報只能出現在本地網絡中。
定向的廣播:定向廣播是將數據包發送到向本網絡之外的特定網絡所有主機,定向廣播的目的地址是定向網絡的廣播地址;
指向網絡的廣播:指向網絡的廣播地址是主機號全爲 1 的地址,例如 A 類網絡廣播地址是netid.255.255.255,其中 netid 是 A 類網絡的網絡號。路由器必須轉發指向網絡的廣播。
指向子網的廣播:指向子網的廣播地址爲主機號全爲 1 且有特定子網號的地址。作爲子網直接廣播地址的 IP 地址需要了解子網掩碼。
指向所有子網的廣播:指向所有子網的廣播也需要連接目的網絡的子網掩碼,以便與指向網絡的廣播區分開來。指向所有子網的廣播地址的子網號即主機全是 1。
多播
        多播也稱爲組播,組播是向指定的一組主機發送數據包。與單播相比,提高了發送數據包的效率,與廣播相比,減少了網絡流量。與廣播不同的是,要實現組播需要在接受組播的客戶機上安裝相應的客戶端程序。能接收發送一個特定多播組地址數據的主機集合稱爲主機組。

IP 多播提供兩類服務:

向多個目的地址傳送數據;
客戶對服務器的請求;

總結

        單播是將數據報發給特定的單臺主機,廣播是將數據報發送給網絡中所有的主機,而多播是將數據報發送給網絡的一個主機組。廣播的缺點是網絡中的所有主機都必須處理數據報,而多播不需要,減少了網絡流量。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章