1. 程式人生 > >labview UDP組播程式設計簡介

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協議)

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