吳曉娟,韓秀玲
(東華大學 信息科學與技術學院,上海 201620)
虛擬實驗,即綜合運用計算機網絡、虛擬仿真等技術創建一個虛擬實驗環境,使實驗不受時空和資源限制,用戶只要通過瀏覽器鼠標操作, 就可身臨其境地完成整個實驗過程[1-2]。
虛擬組網中,模擬實驗過程及配置命令的真實性十分必要。尤其是IP地址配置的有效性識別。而在實際的虛擬組網配置過程中,學生可能因為輸入錯誤的IP或者輸入的IP與子網掩碼不匹配,導致整個實驗的配置失敗,學生往往無法發現這些細節問題。為了讓學生能夠在配置命令環節就及時地發現這些問題,這里基于.NET平臺,應用控件技術及C#編程語言,利用正則表達式[3],設計了一種在配置命令中IP地址的有效識別檢驗方法。運用該方法,學生能夠及時地發現IP是否配置出錯,避免了重復工作和事后檢查,提高了實驗效率。
虛擬組網實驗平臺的整體架構如圖1所示。其中包括設備模擬以及真實配置界面模擬。學生在完成組網的拓撲設計后需對網絡設備進行相應的配置。為了使學生獲得更真實的體驗,虛擬配置界面與真實配置界面需要保持一致[4]。
圖1所示的現有平臺配置中,IP地址是根據教學實驗的具體實例[5]設定的。實驗中IP地址長度統一固定為12,如:192.168.10.2。因此只需要按輸入字符串的長度來計算IP長度并做出相應的后臺邏輯操作。
而實際組網實驗中,學生配置的IP地址長度不固定,若沿用按IP長度分類討論的方法,則需要將不同長度的IP枚舉,設計相應的后臺響應操作,代碼實現繁瑣。事實上,IP地址是32位二進制表示的,輸入IP只要符合因特網委員會定義的IP類型[6]就是有效IP。

圖1 虛擬組網實驗系統結構圖
實際使用的IP地址主要是A、B、C類,因此該篇實現針對這三類IP的識別檢驗,達到IP地址自由配置的目的。
需進行配置的網絡設備有計算機終端、交換機和路由器[7],其配置實現基本一致。以路由器為例,進入命令配置狀態后,從鍵盤輸入配置到命令行。系統會對輸入的字符串命令進行分析處理,根據配置命令的不同,調用不同的處理函數來修改設備信息。其中IP地址配置的正確性直接關系到組網實驗的成功。
為解決任意 IP地址配置的識別問題,有以下步驟:
1)讀取命令配置文本框中的字符串,截取 IP和子網掩碼[8]。
2)通過IP測試類實現對該IP和子網掩碼的合法性判斷[9],同時顯示子網和IP類型。具體流程如圖2所示。

圖2 IP識別驗證流程
對路由器配置命令的模擬是通過配置命令文本框 RouterText的KeyPress事件來實現的。其中 IP識別檢驗的步驟為:
(1)從文本框中讀取輸入的配置命令[10]。
由 GetLineFromCharIndex().ToString()來實現該功能。獲取RouterText,在該文本框的KeyPress事件中,定義字符串a,用于讀取輸入路由器的配置命令。

(2)識別配置命令是否為IP地址配置命令。編寫路由器命令判別類RouterDealer,對路由器配置命令進行判別處理。具體實現為分別按“>”,“#”和“ ”拆分字符串并將拆分后的字符串保存到array[]數組中,遍歷該數組,若數組中的第一個元素和第二個元素為IP配置命令的標志元素,則截取該命令后面的字符串,分別保存為IP地址和IP掩碼。

在配置命令文本框的KeyPress事件中對路由器命令判別類RouterDealer進行實例化,調用Router SplitTest函數即可得到IP地址和掩碼。

(3)驗證IP配置的有效性[11]。
對IP驗證類IpDealer進行實例化,判斷IP和子網掩碼的有效性并給出相應網段和IP地址類型。


利用正則表達式對得到的IP和子網掩碼進行合法性判斷。判斷子網掩碼與 IP是否匹配并給出 IP地址的類別。通過IpMatch()方法來實現:


圖3為在路由器R2的配置命令文本框Router Text中進行IP地址配置,系統通過讀取配置命令,自動識別IP地址是否配置成功,同時生成相應的網段地址。

圖3 功能驗證
在該實例中,IP地址配置正確,則在左側的操作界面顯示路由器端口相對應的IP地址、子網掩碼和網段信息;IP地址配置錯誤,則會立即彈出錯誤提示窗口,方便學生及時檢查。
在原有虛擬組網實驗系統的基礎上,針對系統中的不足,對命令配置,尤其是IP地址的配置設計進行了改進。該方法以類的形式封裝,具有可移植性和可維護性,使得實驗系統能更有效地識別和檢驗IP,從而確保學生在實驗過程中能夠及時地發現IP是否配置出錯,避免了重復工作和事后檢查,提高了實驗效率。
[1]王國權.虛擬試驗技術[M].北京:電子工業出版社,2004:2-4.
[2]陳曉娟,李文勇.現代通信系統軟件實驗室的設計與實現[J].通信技術,2008,41(08):215.
[3]王小科,趙會東.ASP.NET程序開發范例寶典 (C#)[M].北京:人民郵電出版社,2012.
[4]王平,魏大新,李育龍.Cisco網絡技術教程[M]. 北京:電子工業出版社,2012.
[5]郭放,陳光.現代通信網絡應用實踐[M].北京:中國水利水電出版社,2009:176-177.
[6]謝希仁.計算機網絡[M].第5版,北京:電子工業出版社,2008.
[7]孫智勇.計算機組網虛擬實驗系統的研究與實現[D].重慶:重慶大學,2006.
[8]謝水珍.子網劃分方法研究[J].信息安全與通信保密,2011(09):60.
[9]吳功宜,吳英.計算機網絡課程設計[M].北京:機械工業出版社,2012.1:63-67.
[10]李蓓蓓,韓秀玲.基于.NET的動態生成網絡拓撲算法研究和實現[J].計算機與現代化, 2011(06):60-62.
[11]李海濤,龍怡翔,孟凡欣.一種機動通信網絡IP地址分配方法[J].信息安全與通信保密,2012(07):96.
[12]趙曉靜.用C#實現套接字通信[J].通信技術,2008,41(12):168-169.