摘 要:虛擬儀器LabVIEW是一種圖形化的編程環(huán)境,目前已被廣泛應用于工業(yè)界、學術界及各類研究實驗室。本文通過LabVIEW完成了對OSPF路由協(xié)議的仿真與實現(xiàn),該協(xié)議是TCP/IP協(xié)議族中的IP層協(xié)議,是目前應用最廣泛的路由協(xié)議。結果證明LabVIEW能夠很好地支持通信協(xié)議的仿真,且操作簡單,開發(fā)功能高效,調試能力強大。
關鍵詞:LabVIEW;OSPF;虛擬儀器;通信協(xié)議
中圖分類號:TP393.02
TCP/IP(Transmission Control Protocol/Internet Protocol),即傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議,是由美國國防部高級研究計劃署(DARPA)開發(fā)的一個通信協(xié)議族,是Internet最基本的協(xié)議。之所以說TCP/IP是一個協(xié)議族,是因為TCP/IP包括了TCP、IP、UDP、ICMP、RIP、TELNETFTP、SMTP、ARP、TFTP等許多協(xié)議。OSPF(Open Shortest Path First,開放式最短路徑生成樹協(xié)議)是TCP/IP協(xié)議族中的IP層協(xié)議,是目前應用最廣泛的路由協(xié)議,通過SPF(Shortest Path First,最短路徑生成樹算法)來計算到各節(jié)點的最短路徑。
虛擬儀器技術是計算機技術與測控技術相結合、相滲透的產物,虛擬儀器開發(fā)平臺的引入,幫助設計者能夠快速設計、調試和開發(fā)實際系統(tǒng)的測試版,使得工業(yè)環(huán)境下的測量、測試、計量、控制過程更靈活、更緊湊、更經濟、更高效且功能更強。LabVIEW是一款劃時代的重要的圖形編程系統(tǒng),常被應用于數(shù)據(jù)采集與控制、數(shù)據(jù)分析、數(shù)據(jù)表達等方面。本文將通過LabVIEW工具實現(xiàn)對通信協(xié)議OSPF的仿真。
1 虛擬設備LabVIEW簡介
虛擬設備(Virtual Instrument,簡稱VI)是上世紀90年代初期出現(xiàn)的一種新型儀器,是計算機技術與儀器技術深層結合而產生的。它將許多以前由硬件完成的信號處理工作交由計算機軟件進行處理,這種硬件功能軟件化的思想,為測試儀器領域帶來了深刻的變革[1]。虛擬設備的發(fā)展經歷了四個時代:第一代是模擬式儀器,第二代是分立元件式儀器,第三代是數(shù)字式儀器,第四代是智能儀器之后的新一代儀器。虛擬設備有三個主要特點:第一,不強調物理上的實現(xiàn)形式;第二,在系統(tǒng)內實現(xiàn)軟硬件資源共享;第三,圖形化的軟件界面。其優(yōu)勢表現(xiàn)為性能高、擴展性強、開發(fā)時間少、無縫集成。
LabVIEW(Laboratory Virtual Instrument Engineering Workbench)全稱是實驗室虛擬儀器工程平臺,是美國國家儀器公司(NI)的創(chuàng)新軟件產品。自NI公司1986年正式推出LabVIEW1.0至今,經歷了多次改版與完善,目前包括控制與仿真、高級數(shù)字信號處理、統(tǒng)計過程控制、模糊控制、PDA和PID等眾多附加軟件包,可運行于Windows、Linux、Macintosh和Unix等多種平臺,已成為目前應用最廣、發(fā)展最快、功能最強的圖形化軟件開發(fā)繼承環(huán)境之一。
2 OSPF路由協(xié)議的仿真與實現(xiàn)
OSPF路由協(xié)議是一種鏈路狀態(tài)的協(xié)議,主要適用于同一個路由域。這個路由域內的所有OSPF路由器都維護一個相同的數(shù)據(jù)庫,其中存放的是該路由域中相應鏈路的狀態(tài)信息,而OSPF路由器就是根據(jù)該數(shù)據(jù)庫計算其路由表的[2]。OSPF路由協(xié)議的基礎是SPF算法(即Dijkstra算法),它將每一個路由器作為根,用于計算路由器到每一個目的路由器的距離,進而會得到路由域的拓撲結構圖,即SPF算法中的最短路徑樹。最短路徑樹的樹干長度即OSPF路由器到每一個目的地路由器的距離,即OSPF協(xié)議中的Cost。
OSPF遵循鏈路狀態(tài)路由協(xié)議的統(tǒng)一算法。該算法可簡單概括為路由器在兩種狀態(tài)下的動作:第一,當路由器初始化或網(wǎng)絡結構發(fā)生變化時,路由器會產生鏈路狀態(tài)廣播數(shù)據(jù)包,其中包含路由器上所有的相連鏈路,即所有端口的狀態(tài)信息。所有路由器通過刷新方法交換鏈路狀態(tài)數(shù)據(jù)。第二,當網(wǎng)絡重新穩(wěn)定下來,即OSPF路由協(xié)議收斂下來時,所有的路由器會根據(jù)其各自的鏈路狀態(tài)信息數(shù)據(jù)庫計算出各自的路由表。其中包含路由器到每一個可到達目的地的Cost以及到達該目的地所要轉發(fā)的下一跳路由[3]。
接下來,我們將通過虛擬儀器LabVIEW實現(xiàn)OSPF路由協(xié)議的仿真,該仿真系統(tǒng)的數(shù)據(jù)輸入部分共分為三大模塊:信息傳遞模塊(如圖1所示),路由器連接表二維數(shù)組生成模塊(如圖2所示),手動輸入起點、終點及已知路由模塊。手動輸入模塊只需在LabVIEW前面板中輸入?yún)?shù)即可,在本設計中,我們選擇四個路由器組成仿真系統(tǒng),共設置5個參數(shù):路由器id、路由器ip地址、路由器發(fā)送信息端口號、路由器互聯(lián)路徑權值及發(fā)送信息判定位。路由器id用于指定路由器的名稱,方便顯示;路由器ip地址用于顯示路由器的ip,確定路由器在網(wǎng)絡中的唯一位置;路由器發(fā)送端口號用于識別路由器接收與其它路由器的連接狀態(tài)的標示;路由器互聯(lián)路徑權值用于進行SPF算法的計算處理;發(fā)送信息判定位用于識別信息確實已接收。
至此,OSPF路由協(xié)議在LabVIEW虛擬儀器平臺的仿真已完成,要通過此系統(tǒng)計算路由器的生成,需將SPF算法引入該系統(tǒng),最短中繼計算模塊流程圖如圖3所示。通過對四個路由器鏈接方式的計算,最終得到的路由器連接表如圖4所示,起點路由器為路由器一,終點路由器為路由器二,需經過一次跳轉才能到達。
3 結束語
目前,通信領域大多采用文本式編程平臺(如VC++,VB等)進行開發(fā)和測試,本文基于圖形化編程平臺LabVIEW對OSPF路由協(xié)議進行仿真,是對通信領域開發(fā)測試方法的全新嘗試與探索。結果證明LabVIEW能夠很好地支持通信協(xié)議的仿真,且操作更為簡單明了。當然,本設計也有很多需要完善的地方:第一,目前程序所設計的輸入數(shù)據(jù)比較多,并且路由器的每個參數(shù)都需要手動輸入,操作較為繁雜,因此OSPF路由協(xié)議的仿真只選擇了四個路由的連接情況,如果在數(shù)據(jù)輸入上能夠有所改進,就可以加入更多路由器參與算法。第二,目前的設計在連接表的生成形式上是固定的,不可更改,如果要改善此種情況要重新設置連接表的存儲方式。第三,由于本文篇幅所限,我們只選擇了少量代表圖,作者可根據(jù)步驟自行完成仿真操作。
參考文獻:
[1]吳成東,孫秋野,盛科.LabVIEW虛擬儀器程序設計及應用[M].北京:人民郵電出版社,2008.
[2]Stevens W R.TCP/IP詳解卷1:協(xié)議[M].北京:機械工業(yè)出版社,2000.
[3]Stevens W R.TCP-IP詳解:TCP事務協(xié)議,HTTP,NNTP和UNIX域協(xié)議[M].北京:人民郵電出版社出版,2010.
作者單位:山東絲綢紡織職業(yè)學院,山東淄博 255300;濟南鐵路局青島電務段,山東淄博 255000