1. 程式人生 > >多播(組播)原理分析

多播(組播)原理分析

 為什麼要使用多播:
        網卡從網路上接收到目標實體地址對應的所有bit位都為1的資料報時,會收到這條訊息並將其上傳給驅動程式,網絡卡的這種工作模式稱為廣播模式,網絡卡的預設工作模式包含直接模式和廣播模式。利用這一特性,UDP(使用者資料報協議)還提供了向多個目標地址傳送廣播資料包的能力。廣播資料即資料從一個工作站上發出,只要將資料包的目標實體地址對應的所有bit位都設為1,區域網內的所有工作站網絡卡都會收到這條消息並將其上傳給驅動程式。這一特徵適用於無連線協議,因為區域網(LAN)上的所有機器都可獲得並處理廣播訊息。使用廣播訊息的不利之處是每臺機器都必須對該訊息進行處理。比如,一使用者在LAN上廣播一條訊息,每臺機器上的網絡卡都會收到這條訊息,並把它上傳到網路堆疊(驅動程式完成),然後,堆疊將這條訊息的目標埠號與該主機上執行的所有的網路應用程式中所指定的埠號依次比較,看它們是否相等,從而決定哪個網路應用程式應該接收這條訊息。通常,這個區域網上的多數機器對該訊息都不感興趣,草草地一棄了之。但是,各臺機器在驅動程式中都仍需花時間來處理這個資料包,看是否有應用程式對它感興趣。結果,高廣播通訊流使LAN上的機器陷入困境,因為每個工作站都要檢查這個資料包。
有一些特殊的實體地址,他們不能作為任何網絡卡的實際實體地址使用,但網絡卡能夠設定為不過濾
從網路上接收到的一個以這些實體地址中的一個和若干個作為目的實體地址的幀。這些實體地址稱為多播傳送地址
網絡卡的這種工作模式稱為多播傳送模式
多播”亦稱“多點傳送”(multicast),也就是一臺主機發出的包可以同時被其他多個有資格的主機接收,這臺主機和那些有資格的主機就形成了一個組,他們在組內的通訊是廣播式的多播的工作原理是將一個網路上的某些主機的網絡卡設定成多播傳送工作模式,指定其不過濾以某一個多播傳送地址作為目的實體地址的資料幀,這樣,這些主機的驅動程式中就可以同時接收以該多播傳送地址作為目的實體地址的資料幀,而其他主機的驅動程式卻接收不到,這些主機在邏輯上便形成了一個“多播”組。採用這種技術,相對廣播而言,可有效減輕網路上“多播”組之外的其他主機的負擔,因為傳送給“多播”組的資料不會被傳送到它們的驅動程式中去處理,避免資源的無謂浪費。最開始的時候,設計這一技術的目的是彌補“廣播”(Broadcasting)通訊的不足。

多播有兩種實現方式:
1.設定網絡卡為混雜模式,然後通過驅動對收到的所有資料包進行過濾,留下指定的多播地址的資料包。
  這種方式效率比較低,適合不支援多播模式的網絡卡。
2.設定網絡卡為多播模式,網絡卡本身有多播過濾器,網絡卡自己能夠判斷進入的資料包是否屬於多播資料。
  由於多播過濾是由硬體完成的,所以效率比較高。

網絡卡只接收目的地址為網絡卡自身實體地址多播地址(廣播是多播的一種)的幀。對於乙太網,多播的地址的最高位元組的最低位為1(01:00:00:00:00:00)
對於IP多播,IP多播地址會轉換成乙太網多播地址,一個乙太網多播地址可以對應多個IP多播地址

因此,裝置驅動程式或IP層必須對資料報進行過濾,因為網絡卡可能收到主機不想接收的多播資料幀。當網絡卡不提供足夠多播資料幀過濾功能時,就必須把網絡卡設定成“混雜模式”,由驅動檢查收到的資料幀是否為主機需要的。
也就是說多播的兩種實現模式,都需要由驅動程式參與過濾,只不過如果先由網絡卡過濾,可以減輕驅動程式的工作量。

 多播地址(multicast address)是一組主機的標示符,它已經加入到一個多播組中。在乙太網中,多播地址是一個48位的標示符,命名了一組應該在這個網路中應用接收到一個分組的站點。在IPv4中,它歷史上被叫做D類地址,一種型別的IP地址,它的範圍從

224.0.0.0239.255.255.255。D類地址用於組播。

    Broadcast Address(廣播地址)是專門用於同時向網路中所有工作站進行傳送的一個地址。在使用TCP/IP 協議的網路中,主機標識段host ID 為全1 的IP 地址為廣播地址廣播的分組傳送給host ID段所涉及的所有計算機。例如,對於10.1.1.0 (255.255.255.0 )網段,其廣播地址為10.1.1.255 (255 即為2 進位制的11111111 ),當發出一個目的地址為10.1.1.255 的分組(封包)時,它將被分發給該網段上的所有計算機。

相關推薦

()原理分析

 為什麼要使用多播:        網卡從網路上接收到目標實體地址對應的所有bit位都為1的資料報時,會收到這條訊息並將其上傳給驅動程式,網絡卡的這種工作模式稱為廣播模式,網絡卡的預設工作模式包含直接模式和廣播模式。利用這一特性,UDP(使用者資料報協議)還提供了向多個目標

與廣播原理分析及區別

 1.0 廣播 廣播的用途 假定伺服器主機在本地區域網上,但不知道它的單播IP地址時對它進行定位,即進行資源發現。 當有多個客戶和單個伺服器通訊時,減少區域網上的資料流量。 使用廣播的因特網應用的例子: ARP協議通過鏈路層廣播定位具有指定IP地址

android multicast ()問題

有誰遇到過同樣問題的可以探討下,或者已經解決問題的,能夠指導下我    獲取組播鎖 private  InetAddress   group;    WifiManager  wm=(WifiMan

ZStack單廣播具體操作與原理資料整理

// Register the endpoint description with the AF afRegister( &GenericApp_epDesc ); 3.在需要傳送資料的地方,執行如下程式碼: if ( AF_DataRequest( &GenericApp_DstAddr,

五、Android區域網()

多播 組播使用UDP對一定範圍內的地址傳送相同的一組Packet,即一次可以向多個接受者發出資訊,其與單播的主要區別是地址的形式。IP協議分配了一定範圍的地址空間給多播(多播只能使用這個範圍內的IP),IPv4中組播地址範圍為224.0.0.0到239.

執行緒:原理分析整理

作業系統的設計,可以歸結為三點: (1)以多程序形式,允許多個任務同時執行; (2)以多執行緒形式,允許單個任務分成不同的部分執行; (3)提供協調機制,一方面防止程序之間和執行緒之間產生衝突,另一方面允許程序之間和執行緒之間共享資源。 多核、多處理器(多CPU)、多執

C++ 型的實現原理分析

一、什麼是多型 在面向物件開發中,多型是一個很重要的特性。 什麼是多型呢?就是程式執行時,父類指標可以根據具體指向的子類物件,來執行不同的函式,表現為多型。 二、C++ 多型的實現原理 1. 實現原理 當類中存在虛擬函式時,編譯器會在類中自動生成一個虛擬函式表 虛擬函式表是一個儲存類成員函式指

linux udp 單 廣播實現

前面介紹的TCP/IP知識都是基於單播,即一對一的方式,本節介紹一對多的廣播方式。廣播是由一個主機發向一個網路上所有主機的操作方式。例如在一個區域網內進行廣播,同一子網內的所有主機都可以收到此廣播發送的資料。 11.2.1 廣播的IP地址 要使用廣播,需要了解IPv4特定的廣播

Java併發/執行緒-CAS原理分析

[toc] # 什麼是CAS CAS 即 compare and swap,比較並交換。 CAS是一種原子操作,同時 CAS 使用樂觀鎖機制。 J.U.C中的很多功能都是建立在 CAS 之上,各種原子類,其底層都用 CAS來實現原子操作。用來解決併發時的安全問題。 # 併發安全問題 ## 舉一個典

linux udp接收問題及原理分析

現象: 在某個網路環境下,同一個udp組播源(igmpv2),同樣的收流程式碼,在windows上能收到,linux上收不到。排除網路拓撲結構、程式語言、硬體驅動等問題,我們就此問題來分析原理及解決方案。 環境: 交換機出,組播地址224.X.X.X,機器多網絡卡,eth

、廣播、

交換機 電子 orm 數據流 優點 網上 size qos 電視機 組播=多播 單播、組播、廣播是網絡中結點的3種通訊方式。 1、單播 1)定義: 主機之間一對一的通訊模式。網絡中的交換機和路由器對數據只轉發,不復制。網絡中的路由器和交換機根據目標地址選擇傳輸路徑。

(),廣播以及任

pac 視頻 rsvp 使用 blank 缺點 ron ssa 處理 目錄 [+] 單播(unicast): 是指封包在計算機網絡的傳輸中,目的地址為單一目標的一種傳輸方式。它是現今網絡應用最為廣泛,通常所使用的網絡協議或服務大多采用單播傳輸,例如一切基於TCP的協議

淺談Android中的()

-1 ip協議 strong 多個 接受 端口 ui線程 nbsp 數據 組播使用UDP對一定範圍內的地址發送相同的一組Packet,即一次可以向多個接受者發出信息,其與單播的主要區別是地址的形式。IP協議分配了一定範圍的地址空間給多播(多播只能使用這個範圍內

網路基本概念之TCP, UDP, 單(Unicast), )(Multicast)

這篇文章相當低階,但相當重要! 我們周圍一切幾乎都依賴於把事情抽象成低等級,並在某一點把它具體化,在一些設計概念中,介面層十分清晰並且目標很集中,應用程式不用考慮作業系統如何工作,作業系統也不用考慮硬體如何工作,OSI模型的第4層不需要考慮第三層如何工作。所以我們只需要集中精力在某一

原生js實現輪原理分析

一、輪播圖需求 輪播圖需要實現左右翻頁的無縫連線 需要點選左右切換 需要實現跳轉 顯示當前位置的小圓點 二、輪播圖的原理 1.圖片移動實現原理: 利用浮動將所有所有照片依次排成一行,給這一長串圖片新增一個父級的遮罩,每次只顯示一張圖,其餘的都隱

)和廣播的區別

本文來自百度文庫的一篇文件,放在部落格供自己和各位朋友學習和了解 單播”(Unicast)、“多播”(Multicast)和“廣播”(Broadcast)這三個術語都是用來描述網路節點之間通訊方式的術語。那麼這些術語究竟是什麼意思?區別何在?    1.單播:網路節點之間的通

原理

一,組播原理與配置 當網路中部署點到多點通訊應用時,若採用單播方式,網路中傳輸的資訊量與需要該資訊的用 戶量成正比。多份內容相同的資訊傳送給不同使用者,對資訊源及網路頻寬都將造成巨大壓力。若採 用廣播方式,無需接收資訊的主機也將收到該資訊,這樣不僅資訊保安得不到保障且會造成同一網 段中資訊氾

VPP流程分析路由模組

注:下列流程對應VPP版本號 v18.04 一、組播路由配置處理流程圖:1.1. API處理流程1.2.轉發表生成二、組播路由轉發路徑VPP dpdk模式收包第一個處理節點為dpdk-input,接下來

) 廣播區分

單播 多播(組播) 廣播 Mac地址區分: 1.6個位元組全F廣播地址:FFFF-FFFF-FFFF 2.首個位元組低4位為奇數表示為組播地址:71XX-XXXX-XXXX,一般可通過mac_addr[0]&x01 來區分 3.除上述1、2以外的,為單播MAC地址

WinSock2 IP)示例

#include <winsock2.h>#include <ws2tcpip.h> #include <stdio.h>#include <stdlib.h> #pragma comment( lib, "ws2_32.lib" ) #define MCAST