淺談WinPCap和計算機網絡協議
對于一些協議分析,我們可以借助一些軟件的力量。這里我們就將要為大家講解一下WinPCap以及計算機網絡協議等相關的內容。那么就讓我們先來看看具體的WinPCap的工作原理:
系統的開發和應用WinPcap支持Win32平臺上信息包的捕獲和網絡分析,它的主要思想來源于Unix系統中最著名的包截獲架構,目前已在許多領域得到了應用,如網絡監控、電子監考等㈡103.WinPcap的基本結構由3個模塊所組成.
(1)內核級的網絡組包過濾器(Netgroup PacketFilter,NPF).運行于操作系統內核中的驅動程序,直接與網卡驅動程序進行交互.它的主要功能是過濾數據包,在包上附加時間戳、數據包長度等信息.它直接從數據鏈路層取得數據包,不加修改地傳給運行在用戶層的應用程序,也允許用戶發送原始數據包.
(2)低級動態鏈接庫(Packet.d11).用于在Win32平臺上為數據包驅動程序提供一個公共接口,把應用程序和數據包監聽設備驅動程序隔離開來,使得程序可以不加修改地在不同Windows系統上運行.
(3)高級系統無關庫(Wpcap.d11).工作在用戶級,和應用程序編譯在一起,并使用Packet.dll提供的模塊,向應用程序提供完善的監聽接口.Wpcap.dll模塊與Unix系統下的BSD截獲架構提供的Libpeap庫完全兼容,提供了一組功能強大而且跨平臺的函數,利用這些函數,可以不去關心適配器和操作系統類型.
系統的開發和應用
WinPCap向上層的應用程序提供了網絡監聽的接口,通過這些接口,應用程序可以捕獲網絡通信中發送或接收的數據包.因此,網絡協議實驗系統可以利用WinPCap捕獲在實際的網絡通信中產生的數據包,并以一定的方式展示出來.實驗系統的主要目的是要方便對計算機網絡協議的理解,因此針對計算機網絡的原理和協議,系統在以下2方面著重進行表現.
(1)協議分層.目前實際應用的計算機網絡都是基于TCPIP體系結構,整個網絡協議分為4個層次,從下到上依次為接口層、網際層、傳輸層和應用層,每層又有若干協議.因此在捕獲數據包后按協議進行拆分,把不同的協議數據歸于相應的協議分層結構中,并把協議分層以層級的方式表示,從而把網絡體系結構原理通過形象和具體的方式表示出來.
(2)協議格式.實驗系統的主要任務是將數據包中每層協議的數據提取出來,準確界定每個協議的起始和結束,把每個協議的數據標示出來,系統可以根據通信數據,自動分析各協議中每個字段的含義,必須根據具體的通信數據,利用所學的相應網絡協議知識進行分析.
為了了解協議分層結構的具體實現,本系統在開發時,采用整個數據包的數據完整連續顯示,各協議的數據用突出顏色著重顯示,通過觀察不同協議的數據,可以了解計算機通信中,如何通過多層協議組裝成完整的通信數據包.
系統對通信數據的處理過程如圖2所示.首先利用WinPCap的pcap—findalldevs函數獲取計算機的網卡,并把可用的網卡(有的計算機可能有多個網卡)列表顯示出來供用戶選擇.系統提供操作界面讓用戶選擇網卡并設置通信數據包的過濾條件,系統根據用戶的設置用WinPCap的pcap—open—live函數打開相應網卡接口,利用pcap—setfilter函數設置過濾條件,然后用pcap—dispatch或pcap—next—ex函數捕獲通信數據包,并把數據包列表顯示供用戶選擇.若用戶選擇某一數據包,系統對該數據包進行拆分,按協議分層的層次,以及各層協議的格式,界定并顯示不同協議的數據.
系統提供實驗報告的一些輔助功能,如生成實驗報告的模板,根據選擇的計算機網絡協議的數據,填人各字段的含義,生成并打印實驗報告.實驗系統的主界面如圖3所示.界面主要包括:
①網卡(網絡適配器)列表,在上部顯示;②捕獲的數據包列表,在界面的中間部分顯示,列表中顯示了數據包的部分關鍵信息;③各協議及其數據,在最下部顯示,這又包括2部分,左邊部分顯示協議名稱,按協議分層的要求進行顯示,右部是以十六進制表示的數據包數據,當在左邊部分選擇協議名稱時,右部相應協議的首部數據以紅色突出顯示.
該系統所占資源很少,因此可以在配置不高的計算機上正常運行,唯一的要求是計算機能夠連入計算機網絡,即使不連入Intemet,在局域網環境中也能方便地開展實驗.實驗時不需要專門的服務器'也不需要對計算機之間通信作特別設置,安裝并運行該系統,只需要正常使用計算機進行適當的網絡操作,例如用瀏覽器瀏覽學校主頁,從而產生一定的網絡通信數據包,系統自動捕獲這些數據包并進行分析.系統的操作過程很簡單,容易掌握,非常適于非計算機專業的使用,該系統已經在我校工業工程專業的"計算機網絡技術"課程的實驗中使用,效果良好.
結語
針對高校計算機網絡課程的實驗,開發了網絡協議分析實驗系統,以解決網絡設備昂貴、更新換代快,教學單位無法拿出足夠資金配置專門網絡實驗室,造成學生實驗不足甚至無法實驗,從而嚴重影響到教學質量的問題.利用該系統可以使學生了解計算機網絡協議分層及其實現,并開展以太網幀格式分析、IP(目前主要是IPv4)數據包格式分析、IP控制管理協議一ICMP報文格式分析、TCP和UDP數據包分析、Hrll'P協議分析等實驗教學內容.在計算機網絡課程的教學和實驗過程中使用網絡協議實驗軟件系統,可以彌補網絡原理教學過程抽象、枯燥的缺點,可以形象化地展示真實網絡工作的過程,使學生更深入地理解計算機網絡和互聯網.