李 華
鹽城市醫療保險基金中心,江蘇鹽城 224001
局域網網絡類型探測已作為網絡安全研究的一項重要內容[1]。本文主要根據局域網網絡類型探測的基本技術,尤其是ARP協議探測技術,借助于winpcap來實現基本的局域網網絡類型探測系統。
數據環境配置方面:需要一臺或一臺以上的Windows工作站〔具有至少一塊Ether網卡〕,若干臺工作在TCP/IP協議下的主機,組成一個小型工作在同一網段的VLAN,或者該VLAN可以通過網關或路由跟外部網絡建立連接。
軟件環境方面:操作系統Windows 2000;底層驅動 Winpcap 3.0。
硬件環境方面:網絡環境;一臺PC機;一塊以太網網卡。
該局域網網絡類型探測系統實現的基本功能可以概括為以下幾點:
1)首先根據設置的過濾條件對經過主機的網絡數據包進行截獲,實現抓取敏感數據包的目的;2)然后把截獲的數據包暫時保存在用戶指定的文件中;3)加載在上一步中保存的數據包到軟件,根據ARP協議及TCP/IP協議中各數據包的格式對加載的數據包進行包分析;4)對獲得的報頭中源IP地址、目的1P地址、源端口、目的端口等信息顯示并保存到用戶指定的文件中,以實現將來對相關內容的分析,由此可以判定該局域網是何種類型。
該系統的程序流程圖如圖1所示。其與軟件的模塊相對應,并以直觀的方式將軟件流程表示出來,以便于編程過程中更好地實現局域網類型探測的功能。

圖1 系統程序流程圖
可以看出對具體的數據包捕獲和具體的數據包解析的過程是整個系統最關鍵是兩大步驟,是最終進行類型判定的重要依據。考慮各種條件判斷,根據條件判斷的結果進行不同的處理。
本捕獲程序可以分為兩大部分:驅動程序部分和應用程序部分[2]。驅動程序部分工作在核心態,負責網絡數據的接收和發送;應用程序部分工作在用戶態,除了與驅動程序進行正確的通訊外,還要將有關信息顯示出來,并提供存盤,過濾等操作。緩沖區由應用程序動態分配。實現過程的關鍵代碼如下所示:

捕獲后的數據幀經過解析才能得到想要的信息,如所需要的數據幀的源地址,目的地址,協議類型等信息。調用WinPcap底層驅動接收函數接收的數據包,除了包含用戶數據外,還包含時間戳、IP/TCP報頭等原始信息,所以獲取數據包以后,可以方便的對數據包進行分析。實現過程的關鍵偽碼如下所示:

根據所獲取的數據,本地主機不斷地接收數據包,進行分析處理。如果接收到的包中發送目的MAC不是本地主機的MAC,并結合各數據包中的協議信息,就可以精確地知道報文是廣播的,因此,可以判定是共享式局域網絡,否則是交換式局域網。
局域網的廣播機制和網卡的特定的混雜工作模式決定了網絡數據捕獲的可能性。本文的研究,不但可以準確分析局域網的網絡類型,還可防止網絡遭到入侵、攻擊或破壞,甚至可以用來學習網絡協議知識。
[1]王宇,張寧.網絡監聽器原理分析與實現[J].計算機應用研究,2008,20(7):142-145.
[2]胡曉元,史浩山.WinPcap包截獲系統的分析及其應用[J].計算機工程,2009,1,31(2):96-98.