1. 程式人生 > >《網絡編程》廣播和多播

《網絡編程》廣播和多播

多個 配置過程 client 數據報 一個 term 所在 總結 網上

概述

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

  1. 單播:單臺主機與單臺主機之間的數據通信;
  2. 廣播:單臺主機向網絡中全部主機發送數據報的過程;
  3. 多播:單臺主機向選定的一組主機發送數據報的過程;

在網絡協議中 IP 地址有三種方式,即為單播地址、廣播地址 以及 多播地址。如果多個主機上的共享信道網絡是以太網,每一個以太網幀包括源主機和目的主機的以太網地址。

若目的地址僅指定單個接收接口,則稱為單播。在單播方式下,隨意兩臺主機之間的通信不會幹擾網內其它主機。若目的地址包括網上的全部主機的接收接口時,即一個主機要向網上全部主機發送幀,則稱為廣播。若一個主機把幀發送給屬於多播組的多個主機,則稱為多播。廣播和多播僅應用於 UDP。能夠將數據報文同一時候傳給多個接收者,而 TCP 是一個面向連接的字節流協議。意味著僅僅能執行於兩個主機(由 IP 地址確定)內的兩個進程(由port號確定)之間的一條連接。

首先了解下信道傳送的幀在主機的過濾過程。例如以下圖所看到的:

技術分享


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

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


廣播

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

  1. 受限的廣播:受限的廣播地址是 255.255.255.255。該地址用於主機配置過程中 IP 數據報的目的地址。此時。主機並不知道它所在的網絡掩碼,甚至它的 IP 地址都不知道。不論什麽情況下。路由器都不能轉發目的地址為受限的廣播地址的數據報,因此。受限的廣播地址的數據報僅僅能出如今本地網絡中。

  2. 定向的廣播:定向廣播是將數據包發送到向本網絡之外的特定網絡全部主機。定向廣播的目的地址是定向網絡的廣播地址。
    • 指向網絡的廣播:指向網絡的廣播地址是主機號全為 1 的地址。比如 A 類網絡廣播地址是netid.255.255.255,當中 netid 是 A 類網絡的網絡號。路由器必須轉發指向網絡的廣播。

    • 指向子網的廣播:指向子網的廣播地址為主機號全為 1 且有特定子網號的地址。作為子網直接廣播地址的 IP 地址須要了解子網掩碼。

    • 指向全部子網的廣播:指向全部子網的廣播也須要連接目的網絡的子網掩碼,以便與指向網絡的廣播區分開來。

      指向全部子網的廣播地址的子網號即主機全是 1。

多播

多播也稱為組播,組播是向指定的一組主機發送數據包。

與單播相比,提高了發送數據包的效率。與廣播相比。降低了網絡流量。與廣播不同的是。要實現組播須要在接受組播的客戶機上安裝對應的client程序。

能接收發送一個特定多播組地址數據的主機集合稱為主機組。

IP 多播提供兩類服務:

  1. 向多個目的地址傳送數據。
  2. 客戶對server的請求;

總結


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


《TCP/IP 具體解釋》

《網絡編程》廣播和多播