IP組播技術(shù)在分散控制系統(tǒng)(DCS)中的應用
3.2 IP組播Winsock編程方法
在實際應用中,IP組播編程實現(xiàn)的方法隨DPU嵌入式支撐系統(tǒng)和HMI運行系統(tǒng)平臺的不同有所不同的;編程人員通常借助于操作系統(tǒng)中所提供的網(wǎng)絡數(shù)據(jù)通信 編程接口實現(xiàn)網(wǎng)上的IP組播通信的功能。下面以在Microsoft Windows環(huán)境下的網(wǎng)絡編程接口(Windows Socket,簡稱Winsock)介紹具體的IP組播編程實現(xiàn)的方法。

圖2 Winsock實現(xiàn)IP組播過程流程圖
3.2.1 IP組播數(shù)據(jù)發(fā)送流程(DPU)
調(diào)用WSAStartup ( )函數(shù),Winsock 服務的初始化。
調(diào)用socket ( )函數(shù),創(chuàng)建數(shù)據(jù)報套接口,它是組播組的初始化套接字,并且以后數(shù)據(jù)的發(fā)送在該套接字上進行。
調(diào)用setsockopt( )函數(shù),設(shè)置發(fā)送的數(shù)據(jù)報本地接口(IP_MULTICAST_IF)及設(shè)置多播地址(例:239.100.1.1)和端口號(例:20120)。
使用sendto()函數(shù),發(fā)送數(shù)據(jù),目標地址為第二步所設(shè)置的多播地址。
關(guān)閉套接字,釋放Winsock資源。
3.2.2 IP組播數(shù)據(jù)接收流程(HMI)
調(diào)用WSAStartup ( )函數(shù),Winsock 服務的初始化。調(diào)用socket ( )函數(shù),創(chuàng)建數(shù)據(jù)報套接口,它是組播組的初始化套接字,并且以后數(shù)據(jù)的接收在該套接字上進行。
調(diào)用bind ( )函數(shù),綁定本地地址(如:INADDR_ANY)和端口號(同發(fā)送端)。
調(diào)用setsockopt( )函數(shù),設(shè)置IP_ADD_MEMBERSHIP選項,加入多播組。
調(diào)用recvfrom()函數(shù),接收數(shù)據(jù)。
關(guān)閉套接字,釋放Winsock資源。
4 IP組播存在的問題
IP組播數(shù)據(jù)包典型使用用戶數(shù)據(jù)報協(xié)議(UDP),而UDP是一種“盡力而為”(Best-effort)協(xié)議。因此,IP組播應用必定會遇到數(shù)據(jù)包丟失和亂序問題。
安全組播就是只有注冊的發(fā)送者才可以向組發(fā)送數(shù)據(jù);只有注冊的接收者才可以接收組播數(shù)據(jù)。然而IP組播很難保證這一點。
Internet是一個異構(gòu)網(wǎng)絡,所以在設(shè)計IP組播網(wǎng)絡時,必須充分考慮到網(wǎng)絡的異構(gòu)性。
5結(jié)束語
IP組播技術(shù)能夠有效地解決單點發(fā)送到多點、多點發(fā)送到多點的問題,實現(xiàn)了 IP 網(wǎng)絡中點到多點的高效數(shù)據(jù)傳送,能夠有效地節(jié)約網(wǎng)絡帶寬、降低網(wǎng)絡負載。在實際應用過程中,只要正視組播存在的問題,充分考慮到網(wǎng)絡的異構(gòu)性,通過設(shè)計合 理網(wǎng)絡架構(gòu)和數(shù)據(jù)交換協(xié)議,一樣可以構(gòu)造出安全可靠的系統(tǒng)。科遠股份NT6000分散控制系統(tǒng)成功研制充分證明這一點;NT6000分散控制系統(tǒng)在應用推 廣過程中,IP組播通信技術(shù)在NT6000分散控制系統(tǒng)的應用也充分得到客戶的肯定。
參考文獻:
[1] TCP/IP網(wǎng)絡互聯(lián)技術(shù)(1)原理,協(xié)議和體系結(jié)構(gòu)(第3版)清華大學出版社,2001.
[2] IP組播與安全(第1版) 國防工業(yè)出版社,2006
[3]中國大型火電廠DCS應用現(xiàn)狀 CONTROL ENGINEERING China,2009
[4] IP組播通信及其在VxWorks操作系統(tǒng)下的實現(xiàn)計算機與數(shù)字工程,2003
tcp/ip相關(guān)文章:tcp/ip是什么
評論