winsock 多播(組播)

2021-09-30 07:30:27 字數 831 閱讀 5720

組播,就是有一組主機,乙個主機傳送資料,組內其他的主機都會收到。首先,根據上圖講述組播的原理:

我們把路由器192.168.0.1埠也看做一台主機,這樣就有四台主機連線到交換機上。根據乙太網的原理,交換機不知道ip位址的存在,只知道mac位址。交換機會根據資料中的目的mac位址把資料報**到某個埠上,保證只有這個mac位址的主機會收到資料報。因此,mac位址控制了交換機**資料。

winsock中,設定組播的函式是:setsockopt(sock,ipproto_ip,ip_add_membership,(char*)&mcast,sizeof(mcast));這個函式的解釋是把sock套接字新增到乙個組中,這個組的ip位址由mcast表示,以後通過sock套接字傳送組播資料,sendto的位址也是mcast.新增到組中,這是什麼意思呢,實際上,這個函式做了兩件事,一件事是告訴系統網路驅動程式,當sock傳送組播資料的時候,加入到鏈路層幀中的mac位址不是網絡卡的mac位址,而是乙個組播mac位址。當交換機收到資料以後,根據組播mac位址,把資料組播出去。另外一件事就是傳送乙個igmp報文,通知路由器,sock已經加入到乙個組中,今後碰到這個組的資料,請根據ttl**到其他網路中,這裡是指**到其他的網路,因此,假如192.168.0.2傳送的組播資料,路由器就不會在傳送到192.168.0.1埠。因此,下這樣乙個結論:即使192.168.1.7與交換機其他寬口連線的主機不在同一網段,只要192.168.1.7也加入到192.168.0.2相同的組中,就能夠收到組播的資料。下面通過程式證明這個觀點,程式分為兩個,乙個專門傳送資料,乙個專門接收資料,分別執行在.0.2和.1.7上。

傳送端程式(所有呼叫都沒有判斷失敗)

接收端程式(所有呼叫都沒有判斷失敗)

多播和組播

1.多播 多播 也可以稱為 組播 這樣的多播應用tcp 2.廣播 廣播 在網路中的應用較多,如客戶機通過dhcp自動獲得ip位址的過程就是通過廣播來實現的。但是同單播和多播相比,廣播幾乎占用了子網內網路的所有頻寬。拿開會打乙個比方吧,在會場上只能有乙個人發言,想象一下如果所有的人同時都用麥克風發言,...

多播 組播 原理分析

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

單播 廣播 組播 多播

組播 多播 1 定義 主機之間一對一的通訊模式。網路中的交換機和路由器對資料只 不複製。網路中的路由器和交換機根據目標位址選擇傳輸路徑。如果10個客戶機需要相同的資料,則伺服器需要逐一傳送,重複10次相同的工作。2 優點 伺服器針對每個客戶不同的請求傳送不同的資料,容易實現個性化服務 伺服器及時響應...