速讀原著-TCP/IP(廣播和多播)

第12章 廣播和多播

12.1 引言

在第1章中我們提到有三種 I P地址:單播地址、廣播地址和多播地址。本章將更詳細地介紹廣播和多播。

廣播和多播僅應用於 U D P,它們對需將報文同時傳往多個接收者的應用來說十分重要。T C P是一個面向連接的協議,它意味着分別運行於兩主機(由 I P地址確定)內的兩進程(由端口號確定)間存在一條連接。

考慮包含多個主機的共享信道網絡如以太網。每個以太網幀包含源主機和目的主機的以太網地址(4 8 b i t)。通常每個以太網幀僅發往單個目的主機,目的地址指明單個接收接口,因而稱爲單播( u n i c a s t )。在這種方式下,任意兩個主機的通信不會干擾網內其他主機(可能引起爭奪共享信道的情況除外)。

然而,有時一個主機要向網上的所有其他主機發送幀,這就是廣播。通過 A R P和R A R P可以看到這一過程。多播(multicast) 處於單播和廣播之間:幀僅傳送給屬於多播組的多個主機。

爲了弄清廣播和多播,需要了解主機對由信道傳送過來幀的過濾過程。圖1 2 - 1說明了這一過程。首先,網卡查看由信道傳送過來的幀,確定是否接收該幀,若接收後就將它傳往設備驅動程序。通常網卡僅接收那些目的地址爲網卡物理地址或廣播地址的幀。另外,多數接口均被設置爲混合模式,這種模式能接收每個幀的一個複製。作爲一個例子, t c p d u m p使用這種模式。

目前,大多數的網卡經過配置都能接收目的地址爲多播地址或某些子網多播地址的幀。對於以太網,當地址中最高字節的最低位設置爲 1時表示該地址是一個多播地址,用十六進制可表示爲 0 1 : 0 0 : 0 0 : 0 0 : 0 0 : 0 0(以太網廣播地址ff : ff : ff : ff : ff : ff可看作是以太網多播地址的特例)。

如果網卡收到一個幀,這個幀將被傳送給設備驅動程序(如果幀檢驗和錯,網卡將丟棄該幀)。設備驅動程序將進行另外的幀過濾。首先,幀類型中必須指定要使用的協議( I P、A R P等等)。其次,進行多播過濾來檢測該主機是否屬於多播地址說明的多播組。

設備驅動程序隨後將數據幀傳送給下一層,比如,當幀類型指定爲 I P數據報時,就傳往I P層。I P根據I P地址中的源地址和目的地址進行更多的過濾檢測。如果正常,就將數據報傳送給下一層(如T C P或U D P)。
在這裏插入圖片描述
每次U D P收到由I P傳送來的數據報,就根據目的端口號,有時還有源端口號進行數據報過濾。如果當前沒有進程使用該目的端口號,就丟棄該數據報併產生一個 I C M P不可達報文(T C P根據它的端口號作相似的過濾)。如果U D P數據報存在檢驗和錯,將被丟棄。

使用廣播的問題在於它增加了對廣播數據不感興趣主機的處理負荷。拿一個使用 U D P廣播應用作爲例子。如果網內有 5 0個主機,但僅有 2 0個參與該應用,每次這 2 0個主機中的一個發送U D P廣播數據時,其餘 3 0個主機不得不處理這些廣播數據報。一直到 U D P層,收到的U D P廣播數據報纔會被丟棄。這 3 0個主機丟棄U D P廣播數據報是因爲這些主機沒有使用這個目的端口。

多播的出現減少了對應用不感興趣主機的處理負荷。使用多播,主機可加入一個或多個多播組。這樣,網卡將獲悉該主機屬於哪個多播組,然後僅接收主機所在多播組的那些多播幀。

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