郭麗莉
(中國聯合網絡通信有限公司四平市分公司,吉林 四平 136000)
在碼流中一個表示一個特定的疊塊、層次、分量、分辨率和圍地的連續的數據字段稱為數據包。數據包數據以8比特字節對齊。
數據包數據首先由一個包頭引導,碼頭后面是數據包體,它包含了每一個相關編碼子塊的編碼字節在構造包頭和包體時必須遵循上述數據排放次序。
在TCP/IP互聯網上傳輸的一個分組叫IP數據包(Datagram),每個數據包包含一個頭部和位于其后的數據。在數據包頭部的源和目的地址都采用IP地址。
位于數據包傳輸路徑上的每一個路由器從數據包首部提取目的地址,由目的地址在路由器的路由表中查找發往目的地的下一跳地址,然后路由器將數據包傳遞給下一跳,直至到達目的地。
路由表有3個基本字段:目的網絡地址字段,目的網絡地址的地址掩碼字段和到達目的網絡的下一跳字段。在數據包頭部的目的地址總是數據包的最終目的地址。目的地址與其對應的掩碼“按位與”操作,得出目的地址主機所在網絡的網絡地址。然后,根據這個網絡地址,決定下一跳地址,通過一個特定的連接,將數據發給下一跳。
IP數據包首部(頭)格式包含以下內容:
(1)版本號(Vers),包含了生成該數據包的IP協議的版本信息,它用來證實發送方,接收方和它們之間的所有路由器都同意的數據包格式。
(2)首部長度(Header Length)字段,給出了以32位字長為單位的首部長度。
(3)服務(Service Type)字段,包含 5個子字段,3個比特的優先級干字段指明本數據包的優先級,允許發送方表示本數據包的重要程度。優先級的值從0(普通優先級)到7(網絡控制),D.T和R位表示本數據包所希望的運輸類型,這些位的值為1時,D代表低延時,T要求高吞吐量,R要求高可靠性。
(4)總長度(Total Length)字段,給出了以8位組為單位的IP數據包長度。
(5)壽命(Time to Live)字段,設置了該數據包在互聯網中允許存在的時間(秒)或允許經過的路由器的數目。它是一個介于1-255之間的整數。
(6)首部校驗和(Header Checksum)字段,用于保證首部數據的完整性。IP校驗和的計算是把首部看成一個16位的整數序列,對每個整數分別計算其二進制反碼,然后相加,再對結果計算一次二進制反碼而求得。為了計算校驗和,假定首部校驗和字段為0。
(7)源站地址(Source IP Address)和目的站地址(Desination IP Address)字段,包含了數據包的(原始)發送方和(最終)接收方的32位IP地址。
目前有兩種方法可以從網絡中捕獲數據包,一種是采用專用硬件,如網絡監視器等,另一種是利用普通計算機與網絡連接的通用硬件一網絡適配器,即網卡,由軟件來完成數據包的捕獲。下面我們分別加以闡述:
網絡監視器關注網絡活動,用戶若想了解網絡組件的行為和通信量,則要安裝、使用網絡監視器。
網絡管理員使用網絡監視器查看檢測局域網(LAN)的問題,例如,在兩臺或更多計算機不能通信時,網絡管理員使用網絡監視器診斷硬件和軟件問題,也可以將網絡活動的記錄復制到文件中,然后將文件發送給專AV,網絡分析員或有關組織。在開發網絡應用程序時,網絡應用程序開發員可使用網絡監視器以監視、調試網絡應用程序。
為阻止網絡上未授權的網絡監視器的安裝使用,網絡監視器能檢測到在網絡局部運行的其他網絡監視器的安裝。通過系統管理服務器的網絡監視器或系統肺視器的網絡段對象.網絡監視器可檢測到遠程使用的網絡監視器驅動器的所有程序,這些程序被用于浦獲網上數據。
當網絡監視器檢測到運行在網上的網絡監視器的其他安裝時,它會顯示下列信息:
.計算機名稱
.登錄此計算機的用戶名稱
.遠程計算機上的網絡監視器狀態(運行、捕獲、傳輸)
.遠程計算機的適配器地址
.遠程計算機上的例絡監視器版本號
在一些情況下,網絡結構會阻止網絡監視器的一個安裝來檢側另一個安裝。例如,若一安裝與用戶安裝被路由器隔開,而此路由器不能向用戶轉送組播,則用戶安裝不能檢測到另一個安裝。
網絡監視器應用網絡驅動器接口說明(NDIS)的特性,復制它所檢測的所有幀到它的捕獲緩沖區,這是個內存里可交大小的存儲區,缺省大小為IMB:若需要,可手上調整其大小。緩沖區是一個存儲映射文件,它占用磁盤空間。
由于網絡監視器僅使用NDIS的本地方式,而非隨機方式(網絡適配器以此在網上發送所有幀),故即使用戶的網絡適配器不支持隨機方式時也可使用網絡監視器.當使用NDIS驅動器捕獲幀時。網絡性能不受影響(將網絡適配器置于隨機方式會使CPU增加30%或更多負荷)。
在以太網上通訊的每張網卡上都擁有一個全球唯一的物理地址,也叫MAC地址。該地址是一個48比特的二進制數。在以太網卡中內建有一個數據包過濾器。該數據包過濾器的作用是保留以本身網卡的MAC地址為通訊目的的數據包和廣播數據包,丟棄所有其它無關的數據包,以免CPU對無關的數據報作無謂的處理。
要想捕獲到流經網卡的不屬于本主機的數據,必須繞過系統正常工作的處理機制,直接訪問網絡底層。我們可以把網卡的狀態設為“混雜”(promiscuous)模式,當網卡工作在這種“混雜”模式時,該網卡就具備了“廣播地址”,它對所接收到的每一個頓都產生一個硬件中斷以提醒操作系統處理流經該網卡上的侮一個報文包。操作系統通過直接訪問鏈路層,截獲相關數據,由應用程序而非上層協議(如IP層、TCP層)對數據過濾處理,這樣就可以捕獲到流經網卡的所有數據。
首先從TCP/IP模型的角度來看數據包在局域網內發送的過程:當數據由應用層自上而下地傳遞時,在網絡層形成IP數據報,再向下到達數據鏈路層,由數據鏈路層將IP數據報分割為數據幀,增加以太網包頭,再向下一層發送.需要說明的是,以太網的包頭中包含著本機和目標設備的MAC地址,也就是說,數據鏈路層的數據幀發送時,是依靠48bits的以太網地址而非IP地址來確認的,以太網的網卡設備驅動程序不會關心IP數據報中的目的IP地址,它所需要的僅僅是MAC地址。
實現網絡捕包的一個最重要的條件就是要能夠接收網絡上所有的數據包。計算機網絡從傳輸方式的角度分為兩類:采用點到點連接的網絡和采用廣播方式的網絡,廣域網中一般采用點到點連接方式,而幾乎所有的局域網都以廣播方式作為通信的基礎,網上的站點共享信道,一個站點發出的數據包,其他站點均能收到,也就是說,任一臺計算機都可以接收到網絡中同一個共享域的所有的數據通訊。
[1]王興寶.網絡管理與維護[M].北京:機械工業出版社.2001.
[2]劉遠生.網絡安全技術與應用實踐[M].北京:清華大學出版社.2010.
[3]劉曉輝,陳洪彬.網絡管理工具技術應用實戰詳解[M].北京:化學工業出版社.2010.