labview UDP組播編程簡介

簡介

       IP網絡傳輸方式共分爲單播,組播(多播),廣播三種。平時我們最常用的一對一的網絡傳輸方式就是屬於單播;而組播是一對多的傳輸方式,其中有個組播組的 概念,發送端將數據向一個組內發送,網絡中的路由器通過底層的IGMP協議自動將數據發送到所有監聽這個組的終端。至於廣播則和組播有一些相似, 區別是路由器向子網內的每一個終端都投遞一份數據包,不論這些終端是否樂於接收該數據包。

       

相對於極度消耗網絡帶寬的廣播來說(廣播只能在內網廣播),UDP組播有了很大的優化,只有終端加入到了一個廣播組,UDP組播的數據才能被他接收到。 UDP組播是採用的無連接,數據報的連接方式,所以是不可靠的。也就是數據能不能到達接受端和數據到達的順序都是不能保證的。但是由於UDP不用保證數據 的可靠性,所有數據的傳送速度是很快的。


UDP和TCP協議的主要區別是兩者在如何實現信息的可靠傳遞方面不同。TCP協議中包含了專門的傳遞保證機制,當數據接收方收到發送方傳來的信息時,會自動向發送方發出確認消息;發送方只有在接收到該確認消息之後才繼續傳送其它信息,否則將一直等待直到收到確認信息爲止。與TCP不同,UDP協議並不提供數據傳送的保證機制。如果在從發送方到接收方的傳遞過程中出現數據報的丟失,協議本身並不能做出任何檢測或提示。因此,通常人們把UDP協議稱爲不可靠的傳輸協議


在labview中有集成的UDP通訊函數,其所在位置爲 後面板--》數據通訊--》協議--》UDP。

在labview的UDP通訊組件中既支持一般的UDP通訊也支持UDP廣播及組播,其中組播函數使用打開UDP多點傳送函數,改函數是一個多態vi。



我們可以打開labview 自帶的UDP組播範例,幫助我們學習UDP組播通訊。範例中分爲發送方和接收方,下圖是發送方的程序框圖,

程序中發送方發送一個隨機數,讓接收方接收。我們使用打開UDP多點傳送的只寫模式,配置本地端口爲58431.爲寫入UDP數據函數配置

組播地址和接收方端口。

同樣在接收方我們使用打開UDP多點傳送的只讀模式,配置端口和組播地址。



由上面兩圖可以看出,UDP組播是  一組  成員在一個組播地址下相互通訊的一組協議,(類似qq羣?),在組內的成員可以交換信息,但與qq羣不同的是UDP組播必須指定是誰可以接受我發出的信息,這個指定就是依靠發送時的端口來決定,如上圖發發送方程序中指定了58432端口接受它發出的隨機數數據,所以其他人就接收不該數據,那麼誰是這個58432端口呢?在接受方的打開UDP多點傳送函數時指定了自己的接受端口,告訴大家它接受這個58432端口的數據,有人想call它就撥打這個端口號碼。ok!


但是組播地址是有範圍的,在這個範圍下的通訊纔是組播通訊,範圍之外的留作它用。 組播地址是一組D類IP地址,範圍從224.0.0.0 到 239.255.255.255。其中還有很多地址是爲特殊的目的保留的。224.0.0.0到224.0.0.255的地址最好不要用,因爲他們大多是 爲了特殊的目的保持的(比如IGMP協議)


這樣我們就可以編寫自己的組播程序了!




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