UDP單播 多播 廣播

2022-04-06 09:54:55 字數 2591 閱讀 6210

廣播udp與單播udp的區別就是ip位址不同,廣播使用廣播位址255.255.255.255,將訊息傳送到在同一廣播網路上的每個主機。值得強調的是:本地廣播資訊是不會被路由器**。當然這是十分容易理解的,因為如果路由器**了廣播資訊,那麼勢必會引起網路癱瘓。這也是為什麼ip協議的設計者故意沒有定義網際網路範圍的廣播機制。

廣播位址通常用於在網路遊戲中處於同一本地網路的玩家之間交流狀態資訊等。

其實廣播顧名思義,就是想區域網內所有的人說話,但是廣播還是要指明接收者的埠號的,因為不可能接受者的所有埠都來收聽廣播。

多播,也稱為「組播」,將網路中同一業務型別主機進行了邏輯上的分組,進行資料收發的時候其資料僅僅在同一分組中進行,其他的主機沒有加入此分組不能收發對應的資料。

在廣域網上廣播的時候,其中的交換機和路由器只向需要獲取資料的主機複製並**資料。主機可以向路由器請求加入或退出某個組,網路中的路由器和交換機有選擇地複製並傳輸資料,將資料僅僅傳輸給組內的主機。多播的這種功能,可以一次將資料傳送到多個主機,又能保證不影響其他不需要(未加入組)的主機的其他通 信。

相對於傳統的一對一的單播,多播具有如下的優點:

1、具有同種業務的主機加入同一資料流,共享同一通道,節省了頻寬和伺服器的優點,具有廣播的優點而又沒有廣播所需要的頻寬。

2、伺服器的總頻寬不受客戶端頻寬的限制。由於組播協議由接收者的需求來確定是否進行資料流的**,所以伺服器端的頻寬是常量,與客戶端的數量無關。

3、與單播一樣,多播是允許在廣域網即internet上進行傳輸的,而廣播僅僅在同一區域網上才能進行。

組播的缺點:

1、多播與單播相比沒有糾錯機制,當發生錯誤的時候難以彌補,但是可以在應用層來實現此種功能。

2、多播的網路支援存在缺陷,需要路由器及網路協議棧的支援。

多播的位址是特定的,d類位址用於多播。d類ip位址就是多播ip位址,即224.0.0.0至239.255.255.255之間的ip位址,並被劃分為區域性連線多播位址、預留多播位址和管理許可權多播位址3類:

多播的程式設計使用setsockopt()函式和getsockopt()函式來實現,組播的選項是ip層的,其選項值和含義參見11.5所示。

表11.5 多播相關的選項

getsockopt()/setsockopt()的選項

含 義ip_multicast_ttl

設定多播組資料的ttl值

ip_add_membership

在指定介面上加入組播組

ip_drop_membership

退出組播組

ip_multicast_if

獲取預設介面或設定介面

ip_multicast_loop

禁止組播資料回送

要進行多播的程式設計,需要遵從一定的程式設計框架。多播程式框架主要包含套接字初始化、設定多播超時時間、加入多播組、傳送資料、接收資料以及從多播組中離開幾個方面。其步驟如下:

(1)建立乙個socket。

(2)然後設定多播的引數,例如超時時間ttl、本地回環許可loop等。

(3)加入多播組。

(4)傳送和接收資料。

(5)從多播組離開。

廣播和單播的處理過程是不同的,單播的資料只是收發資料的特定主機進行處理,而廣播的資料整個區域網都進行處理。

例如在乙個乙太網上有3個主機,主機的配置如表11.4所示。

表11.4 某區域網中主機的配置情況

主 機a

b

c

ip位址

192.168.1.150

192.168.1.151

192.168.1.158

mac位址

00:00:00:00:00:01

00:00:00:00:00:02

00:00:00:00:00:03

單播流程:主機a向主機b傳送udp資料報,傳送的目的ip為192.168.1.151,埠為 80,目的mac位址為00:00:00:00:00:02。此資料經過udp層、ip層,到達資料鏈路層,資料在整個乙太網上傳播,在此層中其他主機會 判斷目的mac位址。主機c的mac位址為00:00:00:00:00:03,與目的mac位址00:00:00:00:00:02不匹配,資料鏈路層 不會進行處理,直接丟棄此資料。

主機b的mac位址為00:00:00:00:00:02,與目的mac位址00:00:00:00:00:02一致,此資料會經過ip層、udp層,到達接收資料的應用程式。

廣播的流程:主機a向整個網路傳送廣播資料,傳送的目的ip為192.168.1.255,埠為 80,目的mac位址為ff:ff:ff:ff:ff:ff。此資料經過udp層、ip層,到達資料鏈路層,資料在整個乙太網上傳播,在此層中其他主機會 判斷目的mac位址。由於目的mac位址為ff:ff:ff:ff:ff:ff,主機c和主機b會忽略mac位址的比較(當然,如果協議棧不支援廣播,則 仍然比較mac位址),處理接收到的資料。

主機b和主機c的處理過程一致,此資料會經過ip層、udp層,到達接收資料的應用程式。

UDP單播 廣播 多播

單播 就是我們常見的包含s端和c端的一對一方式,要c端向s端發生前要先明確指明s端的ip及port 程式設計說明 略 廣播 又叫分有限廣播和和直接廣播。有限廣播 使用的位址是255.255.255.255,即向該ip的任何乙個埠發生資料,資料將發生給該區域網內的所有主機的同一埠,因為廣播位址 255...

UDP 單播 廣播和多播

閱讀目錄 content 三 udp廣播與單播 使用udp協議進行資訊的傳輸之前不需要建議連線。換句話說就是客戶端向伺服器傳送資訊,客戶端只需要給出伺服器的ip位址和埠號,然後將資訊封裝到乙個待傳送的報文中並且傳送出去。至於伺服器端是否存在,或者能否收到該報文,客戶端根本不用管。單播用於兩個主機之間...

UDP 單播 廣播和多播

閱讀目錄 content 三 udp廣播與單播 使用udp協議進行資訊的傳輸之前不需要建議連線。換句話說就是客戶端向伺服器傳送資訊,客戶端只需要給出伺服器的ip位址和埠號,然後將資訊封裝到乙個待傳送的報文中並且傳送出去。至於伺服器端是否存在,或者能否收到該報文,客戶端根本不用管。單播用於兩個主機之間...