




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、網(wǎng)絡數(shù)據(jù)包的協(xié)議分析程序的設計開發(fā) 摘要本文設計與實現(xiàn)了一個基于 Linux下Libpcap庫函數(shù)的網(wǎng)絡數(shù)據(jù)包協(xié)議分析 程序。程序的主要功能包括網(wǎng)絡數(shù)據(jù)包捕獲和常用網(wǎng)絡協(xié)議分析。程序由輸入 / 輸出模塊、規(guī)則匹配模塊、數(shù)據(jù)捕獲模塊、協(xié)議分析模塊組成。其中數(shù)據(jù)捕獲模 塊和協(xié)議分析模塊是本程序最關鍵、最主要的模塊。本文的主要內(nèi)容如下:首先介紹了網(wǎng)絡數(shù)據(jù)包協(xié)議分析程序的背景和概念。其次進行了程序的總體設計:確定了程序的功能,給出了程序的結構圖和層次圖, 描述了程序的工作流程,對實現(xiàn)程序的關鍵技術做出了分析。接著,介紹完數(shù)據(jù) 包捕獲的相關背景和Libpcap函數(shù)庫后,闡述了如何利用Libpcap函數(shù)庫
2、實現(xiàn)網(wǎng)絡 數(shù)據(jù)包捕獲模塊。然后對協(xié)議分析流程進行了詳細的講解,分析了常用網(wǎng)絡協(xié)議。 最后進行了程序的測試與運行:測試了程序能否按照預期的效果正確執(zhí)行,印證了預期結果。關鍵詞:Libpcap; Linux ;數(shù)據(jù)包捕獲;應用層;協(xié)議識別The Design and Development of Network Packet ProtocolAnalyzing ProgramAbstractThe thesis is an attempt to introduce an implementation of network protocol analyzing program which is ba
3、sed on Libpcap, a famous network packet capture library on Linux. It has a rich feature set which includes capturing network packets and analyzing popular network protocols on Internet. The program is made up of an input/output module, a rules matching module, a packet capturing module and a protoco
4、l analyzing module. And the last two modules are key modules.The research work was described as followed. firstly, we introduce the background and concepts about network protocol analyzing programs; and we make an integrated design on the program, define functions of it, figure out its structure and
5、 hierarchical graphs, describe the workflow of it, and analyze the key techniques used in it; Secondly, after elaborating on the background of packet capture and the Libpcap library, we state a approach to implement a packet capture module with Libpcap; Thirdly, we explain the workflow about protoco
6、l analysis, and analyze common network protocols; Finally, we test our program to see whether it works as expected, fortunately, it does.Key words: Libpcap; Linux; Network packet capturing; Application layer;Protocol identification論文總頁數(shù):23頁 TOC o 1-5 h z 弓I言1 HYPERLINK l bookmark8 o Current Document
7、 課題背景1 HYPERLINK l bookmark10 o Current Document 網(wǎng)絡數(shù)據(jù)包協(xié)議分析程序簡介 2 HYPERLINK l bookmark12 o Current Document 國內(nèi)外研究現(xiàn)狀2 HYPERLINK l bookmark14 o Current Document 網(wǎng)絡數(shù)據(jù)包協(xié)議分析程序的總體設計 3 HYPERLINK l bookmark16 o Current Document 網(wǎng)絡數(shù)據(jù)包協(xié)議分析程序的功能分析 3 HYPERLINK l bookmark18 o Current Document 系統(tǒng)的組成結構和工作流程 3系統(tǒng)的結構框
8、圖 3系統(tǒng)的結構和功能4程序的工作流程5 HYPERLINK l bookmark20 o Current Document 系統(tǒng)實現(xiàn)的關鍵技術分析 6 HYPERLINK l bookmark26 o Current Document 網(wǎng)絡數(shù)據(jù)包捕獲模塊的實現(xiàn) 7 HYPERLINK l bookmark22 o Current Document 網(wǎng)絡數(shù)據(jù)包捕獲簡介 7 HYPERLINK l bookmark24 o Current Document 基于L舊PCAP的網(wǎng)絡數(shù)據(jù)包捕獲的實現(xiàn) 8Libpcap 安裝8Libpcap中基本的數(shù)據(jù)結構和函數(shù) 8數(shù)據(jù)捕獲模塊的實現(xiàn) 11 HYPER
9、LINK l bookmark28 o Current Document 協(xié)議分析模塊的實現(xiàn)11 HYPERLINK l bookmark30 o Current Document 網(wǎng)絡協(xié)議分析的總體流程 12 HYPERLINK l bookmark32 o Current Document 對TCP/IP模型中各層協(xié)議的分析 14以太網(wǎng)首部的分析與提取 14IP首部的分析與提取 15TCP/UD咱部的分析與提取 16應用層協(xié)議的識別與分析 18程序運行與測試20測試環(huán)境20硬件環(huán)境20程序運行環(huán)境20 HYPERLINK l bookmark37 o Current Document 測試
10、步驟20 HYPERLINK l bookmark39 o Current Document 測試結果評價20結 論 錯誤!未定義書簽。參考文獻錯誤!未定義書簽。致 明 錯誤!未定義書簽。聲 明錯誤!未定義書簽。1引言1.1課題背景隨著計算機網(wǎng)絡的不斷發(fā)展,全球信息化已成為當今社會發(fā)展的趨勢。但由 于計算機網(wǎng)絡自身所特具有的特點, 比如聯(lián)結形式多樣性和網(wǎng)絡的開放性、 互連 性等特征,所以導致網(wǎng)絡易受黑客還有一些病毒的攻擊。 所以網(wǎng)上信息的安全和 保密是一個至關重要的問題。對于軍用的自動化指揮網(wǎng)絡和銀行等傳輸敏感數(shù)據(jù) 的計算機網(wǎng)絡系統(tǒng)而言,其網(wǎng)上信息的安全和保密尤為重要。因此, 網(wǎng)絡必須有 足夠
11、強的安全措施,否則該網(wǎng)絡將是個無用、 甚至會危及國家安全的網(wǎng)絡。在計 算機網(wǎng)絡的世界里,存在著很多潛在的威脅,因此網(wǎng)絡的安全措施應能全方位地 應對各種不同的威脅,這樣才可以真正的做到網(wǎng)絡服務于社會, 體現(xiàn)網(wǎng)絡的先進 性。計算機網(wǎng)絡所面臨的威脅大體可分為兩種: 一是對網(wǎng)絡中信息的威脅;二是 對網(wǎng)絡中設備的威脅。影響計算機網(wǎng)絡的因素很多,有些因素可能是有意的,也可能是無意的;可能是人為的,也可能是非人為的;可能是外來黑客對網(wǎng)絡系統(tǒng) 資源的非法使有,歸結起來,針對網(wǎng)絡安全的威脅主要有三種:(1)人為的無意失誤:如操作員安全配置不當造成的安全漏洞,用戶安全意 識不強,用戶口令選擇不慎,用戶將自己的帳號
12、隨意轉借他人或與別人共享等都 會對網(wǎng)絡安全帶來威脅。(2)人為的惡意攻擊:這是計算機網(wǎng)絡所面臨的最大威脅,敵手的攻擊和計 算機犯罪就屬于這一類。此類攻擊又可以分為以下兩種:一種是主動攻擊,它以各種方式有選擇地破壞信息的有效性和完整性;另一類是被動攻擊,它是在不影 響網(wǎng)絡正常工作的情況下,進行截獲、竊取、破譯以獲得重要機密信息。這兩種 攻擊均可對計算機網(wǎng)絡造成極大的危害,并導致機密數(shù)據(jù)的泄漏。(3)網(wǎng)絡軟件的漏洞和“后門”:網(wǎng)絡軟件不可能是百分之百的無缺陷和無 漏洞的,然而,這些漏洞和缺陷恰恰是黑客進行攻擊的首選目標,曾經(jīng)出現(xiàn)過黑客攻入網(wǎng)絡內(nèi)部的事件,這些事件的大部分就是因為安全措施不完善所招致
13、的苦 果。另外,軟件的“后門”都是軟件公司的設計編程人員為了自便而設置的,一般不為外人所知,但一旦“后門”洞開,其造成的后果將不堪設想。為了及早發(fā)現(xiàn)并制止網(wǎng)絡上的各種攻擊, 我們需要通過對網(wǎng)絡上的數(shù)據(jù)進行 分析來發(fā)現(xiàn)并找出問題,提前預防。這也是本論文的一個重要目的。網(wǎng)絡安全管 理員運用網(wǎng)絡封包截獲技術,抓取網(wǎng)絡中有用的數(shù)據(jù)包,然后通過對數(shù)據(jù)包內(nèi)容 進行分析,確定哪些是有害的或者含有攻擊企圖的包,以此來達到對網(wǎng)絡攻擊的預防。同時許多防火墻也是基于包過濾技術的。 本文將介紹網(wǎng)絡數(shù)據(jù)包協(xié)議分析 程序的工作原理以及它的實現(xiàn)。第1頁共23頁網(wǎng)絡數(shù)據(jù)包協(xié)議分析程序簡介網(wǎng)絡數(shù)據(jù)包協(xié)議分析程序是一種用于收集網(wǎng)
14、絡中有用數(shù)據(jù)的程序, 這些數(shù)據(jù) 可以是用戶的帳號和密碼,也可以是一些商用機密數(shù)據(jù)等。它是利用計算機的網(wǎng) 絡接口截獲目的地為其他計算機的數(shù)據(jù)報文的一種工具。網(wǎng)絡數(shù)據(jù)包協(xié)議分析程序的正當用處主要是分析網(wǎng)絡的流量,以便找出所關心的網(wǎng)絡中潛在的問題。例如,假設網(wǎng)絡的某一段運行得不是很好,報文的發(fā)送比較慢,而我們又不知道問題出在什么地方,此時就可以用網(wǎng)絡數(shù)據(jù)包協(xié)議分析 程序來作出精確的問題判斷。在合理的網(wǎng)絡中,網(wǎng)絡數(shù)據(jù)包協(xié)議分析程序的存在 對系統(tǒng)管理員是至關重要的,系統(tǒng)管理員通過網(wǎng)絡數(shù)據(jù)包協(xié)議分析程序可以診斷 出大量的不可見模糊問題,這些問題涉及兩臺乃至多臺計算機之間的異常通訊, 有些甚至牽涉到各種的協(xié)
15、議,借助于網(wǎng)絡數(shù)據(jù)包協(xié)議分析程序系統(tǒng)管理員可以方 便的確定出多少的通訊量屬于哪個網(wǎng)絡協(xié)議、占主要通訊協(xié)議的主機是哪一臺、 大多數(shù)通訊目的地是哪臺主機、 報文發(fā)送占用多少時間、或著相互主機的報文傳 送間隔時間等等,這些信息為管理員判斷網(wǎng)絡問題、管理網(wǎng)絡區(qū)域提供了非常寶 貴的信息。國內(nèi)外研究現(xiàn)狀現(xiàn)在國內(nèi)外已經(jīng)有很多成熟并且功能強大的網(wǎng)絡數(shù)據(jù)包協(xié)議分析軟件。比較著名的網(wǎng)絡數(shù)據(jù)包協(xié)議分析軟件有: 開源軟件:Wireshark TcpDump商用軟件: EtherPeek下面對這幾種軟件進行簡要的介紹:Wireshark : Wireshark是一個開放源碼的網(wǎng)絡分析系統(tǒng),也是是目前最好 的開放源碼的網(wǎng)
16、絡協(xié)議分析器,支持 Linux和Windows平臺。Wireshark起初由 Gerald Combs開發(fā),隨后由一個松散的 Wireshark團隊組織進行維護開發(fā)。它 目前所提供的強大的協(xié)議分析功能完全可以媲美商業(yè)的網(wǎng)絡分析系統(tǒng),自從1998年發(fā)布最早的0.2版本至今,大量的志愿者為 Wireshark添加新的協(xié)議解析器, 如今Wireshark已經(jīng)支持五百多種協(xié)議解析。很難想象如此多的人開發(fā)的代碼可 以很好的融入系統(tǒng)中;并且在系統(tǒng)中加入一個新的協(xié)議解析器很簡單,一個不了 解系統(tǒng)的結構的新手也可以根據(jù)留出的接口進行自己的協(xié)議開發(fā)。這都歸功于 Wireshark良好的設計結構。事實上由于網(wǎng)絡上
17、各種協(xié)議種類繁多,各種新的協(xié) 議層出不窮。一個好的協(xié)議分析器必需有很好的可擴展性和結構。這樣才能適應網(wǎng)絡發(fā)展的需要不斷加入新的協(xié)議解析器。TcpDump顧名思義,TcpDump可以將網(wǎng)絡中傳送的數(shù)據(jù)包的“頭”完全截 獲下來提供分析。它支持針對網(wǎng)絡層、協(xié)議、主機、網(wǎng)絡或端口的過濾,并提供 and、or、not等邏輯語句來幫助你去掉無用的信息。用盡量簡單的話來定義 TcpDump就是:dump the traffic on a network ,根據(jù)使用者的定義對網(wǎng)絡上第2頁共23頁的數(shù)據(jù)包進行截獲的包分析工具。TcpDumP;其強大的功能,靈活的截取策略, 成為每個高級的系統(tǒng)管理員分析網(wǎng)絡,排查
18、問題等所必備的工具之一。EtherPeek :這個工具軟件開始只是一個網(wǎng)絡分析器型的數(shù)據(jù)包監(jiān)測軟件, 經(jīng)過這些年的發(fā)展已經(jīng)成為一個真正的網(wǎng)絡管理工具并具有網(wǎng)站監(jiān)視和分析等 新的功能,被美國聯(lián)邦調查局用來追蹤逃犯、販賣毒品的人、電腦黑客和一些被懷疑為外國間諜的人。是一個直觀,功能強大的以太網(wǎng)網(wǎng)絡和協(xié)議分析器。支持 Macintosh和 Windows平臺。EtherPeek把查找和修復多平臺上的復雜網(wǎng)絡任務 變得簡單化。EtherPeek采用工業(yè)標準,非常容易使用,提供解碼、過濾和診斷 網(wǎng)絡的功能。以友好圖形界面出名,EtherPeek提供非常詳細且多樣化的網(wǎng)絡使 用信息,網(wǎng)絡結點的會話和數(shù)據(jù)包
19、內(nèi)容。在有問題的局域網(wǎng)絡中使用EtherPeek執(zhí)行一個自定的診斷測試,監(jiān)控網(wǎng)絡的通信和事件,跟蹤非法的網(wǎng)絡活動,測試和調試網(wǎng)絡軟硬件。2網(wǎng)絡數(shù)據(jù)包協(xié)議分析程序的總體設計網(wǎng)絡數(shù)據(jù)包協(xié)議分析程序的功能分析對于網(wǎng)絡數(shù)據(jù)包協(xié)議分析程序進行功能分析的第一步是要確立程序所要實 現(xiàn)的目標,也就是程序最終要解決的問題。本程序所要實現(xiàn)的目標就是在共享式 以太網(wǎng)中捕獲根據(jù)過濾規(guī)則設置的流經(jīng)本地網(wǎng)卡的數(shù)據(jù)包,并且對數(shù)據(jù)包中的信息進行分析。網(wǎng)絡數(shù)據(jù)包協(xié)議分析程序必須完成對常用協(xié)議的識別和分析: 要求至少實現(xiàn) TCP/IP協(xié)議簇幾個基本協(xié)議的分析(ARP RARP TCP UDP ,以及應用層的常 用協(xié)議分析。為了減
20、少設計的復雜度,程序采用字符界面。對網(wǎng)絡數(shù)據(jù)包的捕獲、 規(guī)則過濾和對數(shù)據(jù)包的分析是本程序的主要功能。系統(tǒng)的組成結構和工作流程系統(tǒng)的結構框圖基于以上分析,本文設計了網(wǎng)絡數(shù)據(jù)包協(xié)議分析程序,圖 2-1是程序的結構 框圖。第3頁共23頁數(shù)據(jù)包處理育數(shù)據(jù)包捕獲. _Fedora Core Linux 4圖2-1網(wǎng)絡數(shù)據(jù)包協(xié)議分析程序結構框圖下面對該程序的整體結構進行一下描述:該程序的運行環(huán)境是Fedora Core 4linux 。 Fedora Core是linux的一個發(fā)行版,他的前身是 Redhat linux 。本程序 通過調用安裝在linux上的Libpcap函數(shù)庫抓取經(jīng)過本地網(wǎng)卡的數(shù)據(jù)包,
21、從而完成 數(shù)據(jù)包的捕獲。然后將捕獲后的數(shù)據(jù)包交給上層的數(shù)據(jù)處理模塊,進行協(xié)議分析。最后將分析后的數(shù)據(jù)顯示在用戶界面上。系統(tǒng)的結構和功能網(wǎng)絡數(shù)據(jù)包的協(xié)議分析程序是一個基于 Libpcap開發(fā)庫,應用與共享以太網(wǎng) 的網(wǎng)絡分析程序如圖2-2所示,系統(tǒng)主要包括4大模塊:圖2-2網(wǎng)絡數(shù)據(jù)包的協(xié)議分析程序的層次圖1、數(shù)據(jù)輸入模塊。該模塊主要功能是接收用戶輸入用于捕獲數(shù)據(jù)包的信息。 其中包括選擇用于捕獲的網(wǎng)絡接口和需要過濾的內(nèi)容。2、數(shù)據(jù)捕獲模塊。該模塊的主要功能是捕獲流經(jīng)本地網(wǎng)卡的所有數(shù)據(jù)。其第4頁共23頁 原理是通過把網(wǎng)卡設置為混雜模式,使得網(wǎng)卡對所有流經(jīng)它的數(shù)據(jù)包都交給上層 程序處理。3、規(guī)則匹配模塊
22、,該模塊的主要功能是根據(jù)用戶的需求對需要捕獲的數(shù)據(jù) 包進行過濾設置。因為不是所有經(jīng)過本地網(wǎng)卡的數(shù)據(jù)報都對我們分析網(wǎng)絡有用, 而且如果將所有經(jīng)過網(wǎng)卡的數(shù)據(jù)捕獲會增加系統(tǒng)的開銷。因此我們設置了一個規(guī)則匹配模塊,當所捕獲的信息與我們設置的規(guī)則相符時我們就把它交給數(shù)據(jù)處理 模塊,否則就丟棄。4、數(shù)據(jù)處理模塊。該模塊的主要功能是對捕獲的數(shù)據(jù)進行分析顯示處理。主要是調用協(xié)議分析模塊和顯示模塊。1協(xié)議分析模塊。該模塊的主要功能是對捕獲的數(shù)據(jù)包進行協(xié)議分析。 把數(shù)據(jù)包捕獲下來后,我們需要對其分析才能知道網(wǎng)絡中存在的安全問題。該模 塊主要是對TCP/IP各層的協(xié)議進行分析。2顯示模塊。該模塊的主要功能是將分析的
23、結果顯示給用戶。對數(shù)據(jù) 包進行協(xié)議分析后要把結果顯示給用戶本程序才結束。因為數(shù)據(jù)包中包含的信息 太多,如果全部顯示給用戶有所不便,所以我們挑選其中比較重要的信息輸出給 用戶。2.2.3程序的工作流程圖2-3為本程序的流程圖,下面其進行簡要的敘述:1、程序開始時首先查找計算機上所有可用的網(wǎng)卡,并讓用戶選擇用于捕獲 數(shù)據(jù)包的網(wǎng)卡。2、用戶輸入用于捕獲數(shù)據(jù)包的網(wǎng)卡和過濾規(guī)則。 只過濾用戶所關心的信息。3、程序判斷該網(wǎng)卡所在的網(wǎng)絡是否為以太網(wǎng),不是則中止,是則繼續(xù)。因 為本程序只能在共享以太網(wǎng)中進行數(shù)據(jù)捕獲。4、編譯用戶設置的過濾規(guī)則。5、開始進行捕獲,并分析數(shù)據(jù),將數(shù)據(jù)顯示給用戶。當用戶停止時就結束
24、 程序,否則繼續(xù)捕獲。第5頁共23頁開始圖2-3網(wǎng)絡數(shù)據(jù)包的協(xié)議分析程序的流程圖2.3系統(tǒng)實現(xiàn)的關鍵技術分析前面給出了網(wǎng)絡數(shù)據(jù)包協(xié)議分析程序的總體結構、功能模塊和工作流程。要實現(xiàn)程序預定的功能,就必須解決實現(xiàn)程序的關鍵技術。網(wǎng)絡數(shù)據(jù)包協(xié)議分析程 序要實現(xiàn)的關鍵技術包括:數(shù)據(jù)包捕獲技術、對TCP/IP各層基本協(xié)議進行分析的 技術、協(xié)議識別技術。1、數(shù)據(jù)包捕獲技術:本程序要對網(wǎng)絡中的數(shù)據(jù)進行分析,首先就要將網(wǎng)絡 中的數(shù)據(jù)包捕獲下來。因此實現(xiàn)數(shù)據(jù)包捕獲是本程序設計的基礎也是首先要解決 的技術問題。要實現(xiàn)共享以太網(wǎng)中的數(shù)據(jù)捕獲,各個平臺有不同的技術。在Linux 有一個專門為程序員編寫數(shù)據(jù)包捕獲程序而
25、開發(fā)的庫:Libpcap o Libpcap是用戶態(tài)的數(shù)據(jù)包截獲API,具有獨立性和可移植性,支持 BPF濾機制等。通過調用 Libpcap庫函數(shù)可以輕易的實現(xiàn)共享以太網(wǎng)中數(shù)據(jù)包的截獲,而且實時性相當?shù)?強,因為Libpcap是處于用戶態(tài)所以減少了系統(tǒng)的開銷。Libpcap是一個基于BPF第6頁共23頁 的開放源碼的捕包函數(shù)庫。現(xiàn)有的大部分 Linux捕包系統(tǒng)都是基于這套函數(shù)庫或 者是在它基礎上做一些針對性的改進。2、對TCP/IP各層基本協(xié)議分析的技術:要對 TCP/IP各層的基本協(xié)議進行分 析,主要是要對所要分析的協(xié)議有充分的了解,特別是對各種協(xié)議的報頭格式要有深入的了解。對各種協(xié)議進行分
26、析時主要是將報頭中的重要信息顯示給用戶, 還有可能對數(shù)據(jù)包的正文信息解碼。3、協(xié)議識別技術:由于 OSI的7層協(xié)議模型,協(xié)議數(shù)據(jù)是從上到下封裝后 發(fā)送的。對于協(xié)議的識別需要從下至上進行。例如,首先對網(wǎng)絡層的協(xié)議識別后 進行脫去網(wǎng)絡層協(xié)議頭。將里面的數(shù)據(jù)交給傳輸層分析,這樣一直進行下去直到 應用層。應用層以下的各種協(xié)議一般都可以通過下一層的協(xié)議中的關鍵信息來識 別。但是應用層的協(xié)議種類相當多, 無法從下層協(xié)議中識別。對于應用層協(xié)議識 別的方法目前有幾種技術:基于特征用的應用層協(xié)議識別、VenusFast Protocol Recognition、以及端口識別。在本程序中我們采用的是端口識別技術。
27、端口識 別的原理是常用協(xié)議使用固定端口來進行通信。端口識別的優(yōu)點是:簡單、 容易 實現(xiàn)。缺點是:一些不常用協(xié)議不能被識別,常用協(xié)議修改端口后也無法識別。 3網(wǎng)絡數(shù)據(jù)包捕獲模塊的實現(xiàn)網(wǎng)絡數(shù)據(jù)包捕獲簡介網(wǎng)絡數(shù)據(jù)包截獲一股指通過截獲整個網(wǎng)絡的所有信息流量,根據(jù)信息源主 機,目標主機,服務協(xié)議端口等信息簡單過濾掉不關心的數(shù)據(jù),再將用戶感興趣的數(shù)據(jù)發(fā)送給更高層的應用程序進行分析。一方面要,網(wǎng)絡截取模塊要能保證截 取到所有網(wǎng)絡上的數(shù)據(jù)包,尤其是檢測到被分片的數(shù)據(jù)包(這可能蘊涵著攻擊)。 另方面,數(shù)據(jù)截取模塊截取數(shù)據(jù)包的效率也是很重要的。它直接影響整個入侵檢測系統(tǒng)的運行速度。從廣義的角度上看,一個包捕獲機制
28、包含三個主要部分: 最底層是針對特定 操作系統(tǒng)的包捕獲機制,最高層是針對用戶程序的接口,第三部分是包過濾機制。 不同的操作系統(tǒng)實現(xiàn)的底層包捕獲機制可能是不一樣的,但從形式上看大同小 異。數(shù)據(jù)包常規(guī)的傳輸路徑依次為網(wǎng)卡、設備驅動層、數(shù)據(jù)鏈路層、IP層、傳輸層、最后到達應用程序。而數(shù)據(jù)包捕獲機制是在數(shù)據(jù)鏈路層增加一個旁路處理, 對發(fā)送和接收到的數(shù)據(jù)包做過濾/緩沖等相關處理,最后直接傳遞到應用程序。 值得注意的是,包捕獲機制并不影響操作系統(tǒng)對數(shù)據(jù)包的網(wǎng)絡棧處理。對用戶程序而言,包捕獲機制提供了一個統(tǒng)一的接口, 使用戶程序只需要簡單的調用若干 函數(shù)就能獲得所期望的數(shù)據(jù)包。這樣一來,針對特定操作系統(tǒng)的捕
29、獲機制對用戶 透明,使用戶程序有比較好的可移植性。 包過濾機制是對所捕獲到的數(shù)據(jù)包根據(jù) 用戶的要求進行篩選,最終只把滿足過濾條件的數(shù)據(jù)包傳遞給用戶程序。第7頁共23頁基于Libpcap的網(wǎng)絡數(shù)據(jù)包捕獲的實現(xiàn)Libpcap 安裝Libpcap提供了系統(tǒng)獨立的用戶級別網(wǎng)絡數(shù)據(jù)包捕獲接口,并充分考慮到應 用程序的可移植性。Libpcap可以在絕大多數(shù)類unix平臺下工作。在windows平臺 下,一個與Libpcap很類似的函數(shù)包 winpcap提供捕獲功能,其官方網(wǎng)站是 HYPERLINK http:/winpcap.polito.it/ http:/winpcap.polito.it/ Libp
30、cap軟件包可從 HYPERLINK / / 下載,解壓后依此執(zhí)行下列三條命令即可安裝。./configuremakemake install但如果希望Libpcap能在linux上正常工作,則必須使內(nèi)核支持“ packet”協(xié) 議,也即在編譯內(nèi)核時打開配置選項CONFIG_PACKET頂缺省為打開)。Libpcap中基本的數(shù)據(jù)結構和函數(shù)主要函數(shù):int pcap_findalldevs(pcap_if_t *alldevsp, char *errbuf)功能:枚舉系統(tǒng)所有網(wǎng)絡設備的信息參數(shù):alldevsp :是一個pcap_if_t 結構體的指針,如 果函數(shù) pcap_findalldev
31、s函數(shù)執(zhí)行成功,將獲得一個可用網(wǎng)卡的列表,而里面存儲的就是第一個元素的指針。Errbuf :存儲錯誤信息的字符串。返回值:int ,如果 返回0則執(zhí)行成功,錯誤返回-1。pcap_t *pcap_open_live(char *device, int snaplen, int promisc, int to_ms, char *ebuf)功能:設置一個抓包描述符參數(shù):其第一個參數(shù)是我們在上一節(jié)中指定的設備,snaplen是整形的,它定義了將被pcap捕獲的最大字節(jié)數(shù)。當promisc設為true時將置指定接口為混 雜模式(然而,當它置為false時接口仍處于混雜模式的特殊情況也是有可能 的)。
32、to_ms是讀取時的超時值,單位是毫秒(如果為0則一直嗅探直到錯誤發(fā)生, 為-1則不確定)。最后,ebuf是一個我們可以存入任何錯誤信息的字符串(就像上面的errbuf )。int pcap_compile(pcap_t *p, struct bpf_program *fp, char *str, int optimize, bpf_u_int32 netmask)功能:編譯過濾規(guī)則參數(shù):第一個參數(shù)是會話句柄(pcap_t *handle在前一節(jié)的示例中)。接下第8頁共23頁來的是我們存儲被編譯的過濾器版本的地址的引用。再接下來的則是表達式本 身,存儲在規(guī)定的字符串格式里。再下邊是一個定義表達
33、式是否被優(yōu)化的整形量(0為false , 1為true ,標準規(guī)定)。最后,我們必須指定應用此過濾器的網(wǎng)絡 掩碼。函數(shù)返回-1為失敗,其他的任何值都表明是成功的。int pcap_setfilter(pcap_t *p, struct bpf_program *fp)功能:設置過濾規(guī)則。參數(shù):這非常直觀,第一個參數(shù)是會話句柄,第二個參數(shù)是被編譯表達式版 本的引用(可推測出它與pcap_compile()的第二個參數(shù)相同)。int pcap_loop(pcap_t *p, int cnt, pcap_handler callback, u_char *user)功能:循環(huán)抓包直到用戶中止。參數(shù):
34、第一個參數(shù)是會話句柄,接下來是一個整型,它告訴 pcap_loop()在 返回前應捕獲多少個數(shù)據(jù)包(若為負值則表示應該一直工作直至錯誤發(fā)生)。第三個參數(shù)是回調函數(shù)的名稱(正像其標識符所指,無括號) 。最后一個參數(shù)在有 些應用里有用,但更多時候則置為NULL數(shù)據(jù)結構:struct pcap_ifstruct pcap_if *next;char *name;char *description;struct pcap_addr *addresses;u_int flags;pcap_if *next;如果非空,指向鏈的下一個元素。如果為空是鏈的最后一個元素。char *name;指向一個字符用,該
35、字符串是傳給pcap_open_live()函數(shù)的設備名;char *description;如果非空,指向一個對設備的人性化的描述字符串。pcap_addr *addresses;指向網(wǎng)卡地址鏈中的第一個元素。u_int flags;PCAP_IFJ卡的標志?,F(xiàn)在唯一可用的標識是PCAP_IF_LOOKBACK被用來標識網(wǎng)卡是不是lookback網(wǎng)卡。struct pcap_pkthdr struct timeval ts;/*time stamp*/第9頁共23頁bpf_u_int32 caplen; /*length of portion present*/bpf_u_int32 len
36、; /*length this packet(off wire)*/;timeval ts; 數(shù)據(jù)報時間戳;bpf_u_int32 caplen;當前分片的長度;dpf_u_int32 len;這個數(shù)據(jù)報的長度;細節(jié)描述:在dump文件中的每個數(shù)據(jù)報都有這樣一個報頭。它用來處理不 同數(shù)據(jù)報網(wǎng)卡的不同報頭問題。struct pcap_stat u_int ps_recv; /* number of packets received */u_int ps_drop; /* number of packets dropped */u_int ps_ifdrop; /* drops by interf
37、ace XXX not yet supported */;u_int ps_recv;接受數(shù)據(jù)報的數(shù)目;u_int ps_drop;被驅動程序丟棄的數(shù)據(jù)報的數(shù)目;u_int ps_ifdrop;被網(wǎng)卡丟棄的數(shù)據(jù)報的數(shù)目;struct pcap_addrpcap_addr * next;sockaddr * addr;sockaddr * netmask;sockaddr *broadaddr;sockaddr *dstaddr;pcap_addr * next;如果非空,指向鏈表中一個元素的指針;空表示鏈表中 的最后一個元素。sockaddr * addr;指向包含一個地址的 sockaddr
38、的結構的指針。sockaddr * netmask;如果非空,指向包含相對于 addr指向的地址的一個網(wǎng)絡掩碼的結構。sockaddr * broadaddr;如果非空,指向包含相對于 addr指向的地址的一個廣播地址,如果網(wǎng)絡不支持廣播可能為空。sockaddr * dstaddr;如果非空,指向一個相對于 addr指向的源地址的目的地址,如果網(wǎng)絡不支持點對點通訊,則為空。第10頁共23頁數(shù)據(jù)捕獲模塊的實現(xiàn)第一步調用pcap_findalldevs查找出所有可用的網(wǎng)卡,顯示出來,并接收用 戶選擇網(wǎng)卡。第二步用戶輸入用于捕獲數(shù)據(jù)包的網(wǎng)卡后,調用pcap_open_live生成一個抓 包描述符。
39、第三步通過調用pcap_datalink檢查該網(wǎng)卡所在網(wǎng)絡是不是以太網(wǎng),如果不 是則中止程序。第四步接收用戶輸入的過濾條件,調用pcap_compile和pcap_sefilter 生成 過濾規(guī)則。第五步調用pcap_l00P進行循環(huán)捕獲數(shù)據(jù)包,直到用戶中止。具體流程入下圖所示:圖3-1數(shù)據(jù)捕獲模塊流程圖4協(xié)議分析模塊的實現(xiàn)雖然到此為止已經(jīng)可以順利完成數(shù)據(jù)包的監(jiān)聽工作,但這并不意味著己經(jīng)大 功告成了,因為從前面的數(shù)據(jù)包監(jiān)聽的原理中可以知道,數(shù)據(jù)包捕獲程序工作在網(wǎng)絡底層,將網(wǎng)卡設置為混雜模式以后,從網(wǎng)絡底層捕獲到的數(shù)據(jù)包會直接往上 發(fā)給應用程序進行處理,而不再像普通的數(shù)據(jù)包那樣經(jīng)過操作系統(tǒng)的層層
40、過濾。第11頁共23頁這樣一來,應用程序收到的數(shù)據(jù)包是最原始的數(shù)據(jù)包,也就是說監(jiān)聽主機接收到的數(shù)據(jù)包中,除了數(shù)據(jù)包本身的內(nèi)容之外, 還帶有從對方主機中的傳輸層、 網(wǎng)絡 層以及數(shù)據(jù)鏈路層的數(shù)據(jù)包頭信息, 所以要想獲得數(shù)據(jù)包里的應用數(shù)據(jù), 是需要 我們自己來按照每一層的協(xié)議剝離數(shù)據(jù)包頭中的每一層首部內(nèi)容的,這就是協(xié)議分析需要完成的工作。網(wǎng)絡協(xié)議分析的總體流程網(wǎng)絡功能的分層帶來了網(wǎng)絡協(xié)議的層次結構, 網(wǎng)絡數(shù)據(jù)在傳送時,同樣也是 被分解成一個個的數(shù)據(jù)報逐層傳送的,在兩臺主機的實際通信過程中,從邏輯上 講,是兩臺主機的對等層直接通信。而實際上,數(shù)據(jù)包并不是從某一計算機網(wǎng)絡 系統(tǒng)的第NS直接傳導另一計算機
41、網(wǎng)絡系統(tǒng)的第NS的,而是從這臺計算機的某一 層直接傳送Nf 1層,直至到達物理層最后分解為比特流流經(jīng)物理介質到達另一臺 計算機,然后在從另一臺計算機中的底層逐層向上傳送的。當數(shù)據(jù)包被傳輸?shù)侥骋粚拥臅r候,該層都會對數(shù)據(jù)包進行加工,在發(fā)送方通 常是加上一個與該層協(xié)議有關的控制或標志信息,即數(shù)據(jù)包的包頭或包尾;而在 接受方則是需要逐層拆下本層標志, 即去掉數(shù)據(jù)包的包頭或包尾,根據(jù)控制信息 進行相應的處理,將分解后的數(shù)據(jù)報逐層上傳, 直至應用程序獲得最終數(shù)據(jù)。比 如發(fā)送方在數(shù)據(jù)鏈路層通常會在包頭加上目的 MA物址、源MA眺址、其他一些具 體網(wǎng)絡信息及幀定界符,在包尾加上循環(huán)冗余碼,并使用字節(jié)填充或位填
42、充,由接收方數(shù)據(jù)鏈路層去掉包頭與包尾進行相關解釋工作。數(shù)據(jù)包的加工工作如圖 4-1所示:圖4-1 數(shù)據(jù)封裝小意TC收給IP的數(shù)據(jù)單元稱作TCP艮文段或簡稱為TC股(TCP Segment); IP傳給 網(wǎng)絡接口層的數(shù)據(jù)單元稱作IP數(shù)據(jù)報(IP datagram);通過以太網(wǎng)傳輸?shù)谋忍亓?稱作幀,分組既可以是一個IP數(shù)據(jù)報也可以是IP數(shù)據(jù)報的一個片(fragment)。協(xié)第12頁共23頁議分析就是數(shù)據(jù)封裝的逆過程。協(xié)議分析的流程圖如圖4-2所示:圖4-2網(wǎng)絡協(xié)議分析流程圖從圖可以看到,對于監(jiān)聽程序捕獲到的數(shù)據(jù)報,需要按以下步驟分層次進行 協(xié)議分析:(1)首先是讀取數(shù)據(jù)鏈路層的報頭,從報頭中可以得
43、到:計算機的源MA物址 和目的MA物址、數(shù)據(jù)包的長度以及上層協(xié)議的類型。(2)然后需要去掉數(shù)據(jù)鏈層的報頭,此時可以獲得IP數(shù)據(jù)報、arp、rarp數(shù)據(jù) 包,在這一層中可以對IP數(shù)據(jù)報做一定的統(tǒng)計和分析等等;對 arp、rarp數(shù)據(jù)包 可以獲得發(fā)送端IP和目的IP等重要信息。(3)對于IP數(shù)據(jù)報去除網(wǎng)絡層的報頭以后,可以獲得傳輸層數(shù)據(jù)報,對 TCP/UD數(shù)據(jù)包的報頭進行分析在這一層中還可以獲得數(shù)據(jù)報的端口號信息,根 據(jù)端口號進一步判斷數(shù)據(jù)報屬于何種應用層協(xié)議。(4)對數(shù)傳輸層數(shù)據(jù)報去除掉傳輸層報頭以后,就獲得了應用層數(shù)據(jù)報,在應用層進行協(xié)議分析的工作就是按照應用層的工作原理、 協(xié)議規(guī)范,還原獲得
44、應 用層的內(nèi)容,如SMTF/POP3議分析可以還原出正在傳輸?shù)泥]件信息,F(xiàn)TP議分 析可以還原出傳輸中的文件名以及用戶名口令密碼等信息, HTT初議分析可以還 原出目標主機瀏覽網(wǎng)頁的原貌等等。第13頁共23頁(5)對所有的數(shù)據(jù)報頭分析處理后,取出其中的主要信息然后顯示給用戶。對TCP/IP模型中各層協(xié)議的分析前面的內(nèi)容已經(jīng)提到過,我們在對數(shù)據(jù)包根據(jù)應用層協(xié)議進行分析的時候都需要首先剝離數(shù)據(jù)包中的包頭并且需要根據(jù)包頭信息判斷是何種應用層協(xié)議。下面就按照數(shù)據(jù)鏈路層、網(wǎng)絡層到傳輸層再到應用層的順序詳細的講解每層包頭的 結構以及如何對每層的數(shù)據(jù)報進行協(xié)議分析。以太網(wǎng)首部的分析與提取因為每一個使用Lib
45、pcap捕獲的數(shù)據(jù)包,都會有一個指向原始報文頭的指針。 假設這個指針為p。把這個指針強制轉換為以太幀格式:(struct ether_header *) p。我們就得到了以太幀的報文頭,就可以對該層協(xié)議進行分析和處理。由于在定義IEEE 802.3以前,以太網(wǎng)就存在,因為有多個以太網(wǎng)標準,所以 TCP/IP可以支持多種不同的鏈路層協(xié)議,如以太網(wǎng)、令牌環(huán)網(wǎng)、FDDI(光纖分布式數(shù)據(jù)接口)等。以太網(wǎng)是當今TCP/IP采用的主要的局域網(wǎng)技術,它采用一種稱 作CSMA/CD媒體接入方法,其意思是帶沖突檢測的載波偵聽多路接入(CarrierSense Multiple Access with Colli
46、sion Detection),發(fā)送端在傳輸之前要偵聽信道。在以太網(wǎng)內(nèi)的IP和AR瞅據(jù)報或者使用以太網(wǎng)II的或者使用IEEE: 802.3 子網(wǎng)訪問協(xié)議(SNAP冰封裝數(shù)據(jù)。這里我們只討論最為常用的以太網(wǎng)II數(shù)據(jù)報格 式,這是在RFC89沖定義的,如圖4-3所示,這是以太網(wǎng)II的封裝格式:字節(jié) 6624615004目的地址源地址類型數(shù)據(jù)FCS圖4-3以太網(wǎng)II的封裝格式其中每個字段的含義如下:(1)幀初始同步(Preamble) : 8字節(jié)長,提供接收端的同步和分隔幀的功能。 需要注意的是,幀初始同步字段在網(wǎng)絡監(jiān)視器中是不可見的。(2)目的地址(Destination Address) : 6
47、字節(jié)長,指明目的地址。目的地址 可以是單播、多播或者以太網(wǎng)的廣播地址。其中,單播地址也稱為MA物址。(3)源地址(Source Address) : 6字節(jié)長,指明發(fā)送節(jié)點的單播地址。(4)以太網(wǎng)類型(Ether Type): 2字節(jié)長,指明在以太網(wǎng)幀中上層協(xié)議的類型。這個字段被用來將以太網(wǎng)的有效載荷傳給正確的上層協(xié)議實體。如果在該字段中未注明有上層協(xié)議實體接收有效載荷幀。該幀將被丟棄。比如,對于 IP數(shù)據(jù)報, 這個字段的值為0 x0800; Xt于ARP肖息,該字段白值被設置為0 x0806。(5)有效載荷(Payload):以太網(wǎng)II的幀的有效載荷由上層協(xié)議的協(xié)議數(shù)據(jù)單 元組成,是數(shù)據(jù)包本
48、身的具體內(nèi)容。以太網(wǎng)II能發(fā)送最大1500字節(jié)的有效載荷。第14頁共23頁 因為以太網(wǎng)具有沖突檢測機制,以太網(wǎng)II的最小幀有效載荷為46字節(jié)。如果上層 的協(xié)議數(shù)據(jù)單元小于46字節(jié),則必須填充到46字節(jié)。(6)幀校驗序列(Frame Check Sequence, FCS) : 4字節(jié)長,提供位級別的完 整性校驗,也被稱為循環(huán)冗余校驗(CRC)。本子段對于網(wǎng)絡監(jiān)視器來說同樣是不 可見的。IP首部的分析與提取因為以太幀報頭的長度都是一樣的。所以在提取IP包頭的時候可以將指針P加上以太幀包頭的長度后,把格式強制轉化為IP包頭格式即:(struct ip *) (p + sizeof (struct
49、ether_header) 。就得到了指向IP報頭的指針,我們就可以 進行相應的分析了。IP網(wǎng)絡上的主機是通過IP數(shù)據(jù)報來交換數(shù)據(jù)的,IP數(shù)據(jù)報包括數(shù)據(jù)單元和首 部字段,其中,數(shù)據(jù)單元包含要交換的所有信息, 首部字段描述這個信息和數(shù)據(jù) 報本身。只要設備需要通過IP網(wǎng)絡向其他網(wǎng)絡發(fā)送數(shù)據(jù),它就會創(chuàng)建一個數(shù)據(jù)報 來發(fā)送數(shù)據(jù)。實際上,IP數(shù)據(jù)報是作為IP包來發(fā)送的,IP包將IP數(shù)據(jù)報通過交換設備一跳 一跳地中繼到目的系統(tǒng)。雖然很多時候一個IP數(shù)據(jù)報就是一個IP包,但它們在概 念上是不同的實體。如圖4-4是IP數(shù)據(jù)報在RFC79中定義的封裝格式: 比特04816202431版本報頭長服務類型數(shù)據(jù)包總長
50、標識符標志片偏移生存時間協(xié)議號報頭校驗和源IP地址目的IP地址選項填充碼數(shù)據(jù)圖4-4 IP數(shù)據(jù)報格式其中每個字段的含義如下:(1)版本(version):長度為4位,顯示IP報頭的版本。目前在所有互聯(lián)網(wǎng)絡 和Internet中使用的標準IP版本號是4 (即IPv4)。(2)報頭長(header length):長度為4位,表示IP頭的長度。典型的IP頭不 包括任何選項,長度為20字節(jié)。(3)服務類型(type of service) :長度為8位,表示按照優(yōu)先權、安全性以 及吞吐量等數(shù)據(jù)包的服務類型。第15頁共23頁(4)數(shù)據(jù)包總長(total length):長度為2位,表示IP數(shù)據(jù)報總的字
51、節(jié)數(shù),包 括IP頭和有效載荷。(5)標識(identfier):長度為2位,作為分割以及組裝數(shù)據(jù)包時的識別標志 來使用,被分割的數(shù)據(jù)包被分配有同一數(shù)值標識。(6)標志(flags):長度為3位,包含兩個用于分片的標志。其中一個標志是 用于表示IP有效載荷是否符合分片的標準,而另一個是表示對于已分片的IP數(shù)據(jù) 報是否還有更多的分片。(7)片偏移(fragment offset):長度為13位,表示分片相對于原始IP數(shù)據(jù)報 有效載荷的偏移量。(8)生存時間(time to live):長度為1字節(jié),表示IP數(shù)據(jù)包的壽命,目的 是廢棄掉在網(wǎng)絡中循環(huán)著的IP數(shù)據(jù)包,一般地,每通過一次路由器,生存時間就
52、 被減去1,當生存時間為0時,數(shù)據(jù)包將被拋棄。(9)協(xié)議(protocol):長度為1字節(jié),表示包含在有效載荷中的上層協(xié)議。IP 協(xié)議字段的一般值有:1表示ICMP 2表示IGMP 6表示TCP 17表示UD喈等。(10)報頭校驗和(header checksum):長度為2字節(jié),是用于確認IP數(shù)據(jù)包是 否己毀壞的字段。(11)源目的IP地址(source/destinationaddress):長度為4字節(jié),包含源/目的主機的IP地址。(12)選項和填充:此字段跟在IP頭之后,但必須是以4個字節(jié)為增量單位, 以使IP頭的大小能用報頭長度字段表示。TCP/UDP1部的分析與提取TCP/UD限文
53、頭部白獲取跟IP報文頭部的獲取類似,將P旨針的位置向后移IP 報文長度個位置即可(struct tcphdr *) (p + sizeof (struct ether_header) + 4 * iph-ip_hl) 0然后就可以對TCP/UD數(shù)據(jù)包進行分析了。TCP傳輸控制協(xié)議)為面向事務的應用提供了可靠的面向連接的傳輸協(xié)議。TCPE為目前Intemet上幾乎所有的應用協(xié)議所利用,這是因為大部分應用程序都 需要可靠的、可糾錯的傳輸協(xié)議以保證不丟失或破壞數(shù)據(jù)。盡管IP已經(jīng)做了大部分的搜集工作,并且根據(jù)需要在Internet上發(fā)送數(shù)據(jù)報和數(shù)據(jù)包,但是IP是不可 靠的協(xié)議,并不能保證數(shù)據(jù)報或者數(shù)據(jù)
54、包能夠原封不動的到達其目的地,TC昨為IP的上層協(xié)議,為IP提供了可靠性服務,確保了 IP數(shù)據(jù)報中的數(shù)據(jù)的正確性。 如圖4-5所示,是TC股的封裝結構。第16頁共23頁比特08162431源端口目的端口順序號確認號數(shù)據(jù)偏移保留標志窗口校驗和緊急指示符選項(長度可變)填充數(shù)據(jù)圖4-5 TCP數(shù)據(jù)報格式其中,每一段的含義如下:(1)源端口(source port):指示發(fā)送TC股的源應用層協(xié)、議,是一個2字節(jié)的 字段。IP頭中的源地址和TC映中的源端口聯(lián)合起來提供一個源套接字。TC端口為TCF接數(shù)據(jù)的傳送定義了一種位置,表明段被發(fā)送至的應用層進程的一個目 的端口。在一般情況下,應用層協(xié)議的服務器端
55、在己知的端口上偵聽。表 4-1顯 示了常用的應用層協(xié)議對應的端口號。(2)目的端口(destination port):指示目的應用層協(xié)議,是一個2字節(jié)字段。 IP頭中的目的IP地址和TCPfe中的端口聯(lián)合起來提供一個目的套接字。(3)序列號(sequence number):指示段的第一個8位組的輸出字節(jié)流的序列 號,是一個4字節(jié)字段。用于保證數(shù)據(jù)的到達順序與可靠性。利用隨機值確定初 始值,以字節(jié)為單位表示所發(fā)送數(shù)據(jù)的位置。(4)確認號(acknowledgment number): 一個4位的字段,指示接收方希望收 到的輸入字節(jié)流中下一個8位組的序列號。是用于保證可靠性的確認號碼。(5)數(shù)
56、據(jù)偏移(data offset):表示TC嗷據(jù)的起始位置,以4字節(jié)的整數(shù)倍表 示,數(shù)據(jù)偏移字段也是TC映的大小。在不包才S選項的情況下,TCP艮頭是20個字 節(jié),offset的值為5。(6)保留(reserved): 一個6字節(jié)字段,為了未來的使用而保留。標志(flags):一個6字節(jié)字段,指示6個TC刖志。這6個標志是:URG緊 急)、ACK確訓)、PSH(1)、RST(M句)、SYN何步)、FIN(結束)。(8)窗口 (window): 一個2字節(jié)的字段,表明該段的發(fā)送方的接收緩沖區(qū)中可 供使用的空間有多少字節(jié)數(shù)。窗口大小的廣告是一種實現(xiàn)接收流流控制的方式。(9)校驗和(checksum)
57、: 一個2字節(jié)的字段,為TC股提供位級別的完整性校 驗。(10)緊急指針(urgent pointer): 一個2字節(jié)字段,它表明段中緊急數(shù)據(jù)的 位置。第17頁共23頁(11)選項(option):為提高利用TCP勺通信性能所準備的選項。用戶數(shù)據(jù)報協(xié)議(UDP)是定義用來在互連網(wǎng)絡環(huán)境中提供包交換的計算機通 信的協(xié)議。此協(xié)議默認認為網(wǎng)路協(xié)議(IP)是其下層協(xié)議。此協(xié)議提供了向另一用 戶程序發(fā)送信息的最簡便的協(xié)議機制。此協(xié)議是面向操作的,未提供提交和復制保護。以下是UD初議的報文頭格式:比特01631源端口目的端口長度校驗和圖4-6 TCP數(shù)據(jù)包格式(1)源端口 一16位。源端口是可選字段。當使
58、用時,它表示發(fā)送程序的端口, 同時它還被認為是沒有其它信息的情況下需要被尋址的答復端口。如果不使用, 設置值為00(2)目的端口一16位。目標端口在特殊因特網(wǎng)目標地址的情況下具有意義。(3)長度一16位。該用戶數(shù)據(jù)報的八位長度,包括協(xié)議頭和數(shù)據(jù)。長度最小 值為8。(4)校驗和一16位。IP協(xié)議頭、UDPW議頭和數(shù)據(jù)位,最后用0填補的信息 假協(xié)議頭總和。如果必要的話,可以由兩個八位復合而成。應用層協(xié)議的識別與分析對于應用層協(xié)議本程序采用的是端口識別技術。 端口是應用程序在網(wǎng)絡通信 上使用的數(shù)據(jù)輸入輸出口。端口分為兩種。一種為公認端口,另一種為短暫端口。 公認端口被分配給網(wǎng)絡上的服務程序。當某一網(wǎng)絡客戶端利用其他計算機上的服 務程序時,在根據(jù)IP地址指定服務計算機的同時,也指定了被分配的服務程序的 公認端口號。由此,可以利用與端口號對應的特定的網(wǎng)絡服務。公認端口號有很 多,工人端口號被定義在unix類操作系統(tǒng)下的/etc/services 文件中下表列出了 其中的一部分。表4-1常用協(xié)議和對應的端口號上層協(xié)議端口號/協(xié)議上層協(xié)議的意義Echo7/dup回應請求ftp-data20/tcp,20/udp在ftp上數(shù)據(jù)傳送路徑ftp21/tcp,21/udp在ftp上控制數(shù)據(jù)通信路徑telnet23/tcp,23/udp用于遠程終端
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全國旅游合同示范文本
- 2025農(nóng)業(yè)合作合同范本
- 2025年酸堿平衡調節(jié)藥項目建議書
- 2025全面租賃合同示范文本
- 2025年家用美容、保健電器具項目建議書
- 2025年龍門式加工中心或龍門式臥式銑床項目合作計劃書
- 2025年視窗防護屏項目合作計劃書
- 2025年法律職業(yè)資格考試復習要點試題及答案
- 2025年環(huán)境污染防治專用設備合作協(xié)議書
- 廣安畫線施工方案
- 次氯酸鈉溶液安全技術說明書MSDS
- 評標自動計算表(二次平均法)
- 學校食堂管理員崗位職責
- 江蘇省淮安市2023年中考化學真題試題
- SMT員工,工藝培訓資料
- JB-T 14226-2022 機械密封摩擦材料組合的極限pcv值試驗方法
- GB/T 21923-2008固體生物質燃料檢驗通則
- GA 1205-2014滅火毯
- 第9課 兩宋的政治和軍事 說課課件(共19張PPT)- 人教統(tǒng)編版高中歷史必修中外歷史綱要上冊
- 安徽生源化工有限公司100000噸年萘磺酸甲醛縮合物、3000噸年鑄造用固化劑、2000噸年二芐胺、200噸年氯丙酰谷氨酰胺項目環(huán)境影響評價報告全本
- 湖北省高等學校教學成果獎推薦書、申請簡表
評論
0/150
提交評論