基于visual_c++的網(wǎng)絡(luò)監(jiān)聽系統(tǒng)畢業(yè)論文_第1頁
已閱讀1頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  畢 業(yè) 設(shè) 計(jì)</b></p><p>  題目: 基于Visual C++的網(wǎng)絡(luò)監(jiān)聽系統(tǒng)</p><p>  基于Visual C++的網(wǎng)絡(luò)監(jiān)聽系統(tǒng)</p><p><b>  摘 要</b></p><p>  隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,網(wǎng)絡(luò)的安全問題也顯得越

2、發(fā)重要。網(wǎng)絡(luò)監(jiān)聽技術(shù)是系統(tǒng)安全領(lǐng)域內(nèi)一個(gè)非常敏感的話題,也是一項(xiàng)重要的技術(shù),具有很強(qiáng)的現(xiàn)實(shí)應(yīng)用背景。網(wǎng)絡(luò)監(jiān)聽是網(wǎng)絡(luò)監(jiān)測(cè)、負(fù)載分析等管理活動(dòng)常用的方法,同時(shí)也是黑客非法竊取信息的手段。網(wǎng)絡(luò)監(jiān)聽工具通過網(wǎng)絡(luò)傳輸介質(zhì)的共享特性實(shí)現(xiàn)抓包,獲得當(dāng)前網(wǎng)絡(luò)的使用狀況,為網(wǎng)絡(luò)管理員對(duì)網(wǎng)絡(luò)中的信息進(jìn)行實(shí)時(shí)的監(jiān)測(cè)、分析提供一個(gè)合適的工具;同時(shí)也讓黑客截獲本網(wǎng)段的一些敏感信息,威脅網(wǎng)絡(luò)安全。</p><p>  數(shù)據(jù)包捕獲技術(shù)是設(shè)計(jì)網(wǎng)

3、絡(luò)分析軟件的基礎(chǔ),而WinPcap則是Windows系統(tǒng)中實(shí)現(xiàn)的一個(gè)優(yōu)秀的包捕獲架構(gòu)。文中結(jié)合該軟件包的結(jié)構(gòu)與功能對(duì)包捕獲原理進(jìn)行了詳細(xì)的分析,并介紹了其在網(wǎng)絡(luò)安全監(jiān)控系統(tǒng)中的應(yīng)用。該系統(tǒng)的基本原理是通過調(diào)用WinPcap庫(kù)捕獲本地網(wǎng)絡(luò)上的所有數(shù)據(jù)包,然后對(duì)數(shù)據(jù)包進(jìn)行協(xié)議分析,從而可以實(shí)時(shí)地監(jiān)控網(wǎng)絡(luò)。</p><p>  關(guān)鍵詞:網(wǎng)絡(luò)監(jiān)聽,WinPcap,協(xié)議分析</p><p>  Ne

4、twork Monitoring System Based on Visual C + +</p><p><b>  ABSTRACT</b></p><p>  With the rapid development of computer network technology, network security becomes more important. Ne

5、twork monitoring technology is a very sensitive topic in the field of system security is also an important technology, has a strong practical application background. Network monitoring network monitoring, load analysis a

6、nd other management activities commonly used method, but also hackers illegal means to steal information. Network monitoring tools to capture through the shared characteristics o</p><p>  The packet capture

7、technology is the basis of the design of network analysis software, while WinPcap is an excellent packet capture architecture implemented in the Windows system. Combines the structure and function of the package and carr

8、ied out a detailed analysis of packet capture principle, and its network security monitoring system. The basic principle of the system is a package by calling the WinPcap library to capture all the data on the local netw

9、ork, then the packet protocol analysis, w</p><p>  Key words: Network monitoring,WinPcap ,Protocol analysis</p><p><b>  目 錄</b></p><p><b>  摘要I</b></p>

10、;<p>  ABSTRACTII</p><p><b>  1引言1</b></p><p>  1.1 課題背景1</p><p>  1.2 課題意義2</p><p>  1.3 研究現(xiàn)狀2</p><p>  1.3.1 軟件數(shù)據(jù)截取工具介紹3</p&g

11、t;<p>  1.3.2 硬件數(shù)據(jù)截取工具介紹3</p><p>  2 網(wǎng)絡(luò)監(jiān)聽技術(shù)綜述4</p><p>  2.1 網(wǎng)絡(luò)監(jiān)聽概念4</p><p>  2.2 網(wǎng)絡(luò)監(jiān)聽的原理4</p><p>  2.3 WinPcap的原理5</p><p>  2.3.1 winpcap簡(jiǎn)介5&l

12、t;/p><p>  2.3.2 WinPcap的體系結(jié)構(gòu)6</p><p>  2.3.3 WinPcap的功能與新特性8</p><p>  2.3.4 網(wǎng)絡(luò)數(shù)據(jù)包捕獲的原理8</p><p>  2.3.5 在windows情況下捕獲數(shù)據(jù)包的結(jié)構(gòu)9</p><p>  2.3.6 利用winpcap進(jìn)行網(wǎng)絡(luò)數(shù)

13、據(jù)包的捕獲和過濾的設(shè)計(jì)步驟10</p><p>  3相關(guān)網(wǎng)絡(luò)協(xié)議的分析11</p><p>  3.1 網(wǎng)絡(luò)體系結(jié)構(gòu)11</p><p>  3.2 網(wǎng)絡(luò)協(xié)議的分析與實(shí)現(xiàn)11</p><p>  3.2.1 IP11</p><p>  3.2.2 TCP12</p><p>  

14、3.2.3 UDP12</p><p>  3.2.4 ICMP12</p><p>  3.2.5 通訊端口13</p><p>  3.2.6 IP地址13</p><p>  3.2.7 地址分類13</p><p>  3.2.8 網(wǎng)關(guān)地址15</p><p>  3.2.9

15、 OSI模型21</p><p>  4局域網(wǎng)監(jiān)聽系統(tǒng)的設(shè)計(jì)及實(shí)現(xiàn)24</p><p>  4.1 局域網(wǎng)監(jiān)聽系統(tǒng)的設(shè)計(jì)24</p><p>  4.1.1 功能設(shè)計(jì)24</p><p>  4.1.2 模塊設(shè)計(jì)24</p><p>  4.2 局域網(wǎng)監(jiān)聽系統(tǒng)程序的實(shí)現(xiàn)27</p><p

16、>  4.2.1 建立Socket27</p><p>  4.2.2 綁定本機(jī)IP地址27</p><p>  4.2.3 設(shè)置為混雜模式27</p><p>  4.2.4 截獲數(shù)據(jù)包:27</p><p>  4.3 系統(tǒng)程序運(yùn)行28</p><p><b>  致 謝31</b

17、></p><p><b>  參考文獻(xiàn)32</b></p><p><b>  附錄33</b></p><p><b>  1引言</b></p><p>  由于互聯(lián)網(wǎng)的發(fā)展,整個(gè)世界經(jīng)濟(jì)正在迅速地融為一體,而整個(gè)國(guó)家猶如一部巨大的網(wǎng)絡(luò)機(jī)器。計(jì)算機(jī)網(wǎng)絡(luò)已經(jīng)成為國(guó)

18、家的經(jīng)濟(jì)基礎(chǔ)和命脈。伴隨著網(wǎng)絡(luò)的發(fā)展,也產(chǎn)生了各種各樣的問題,其中安全問題尤為突出。了解網(wǎng)絡(luò)面臨的各種威脅,防范和消除這些威脅,實(shí)現(xiàn)真正的網(wǎng)絡(luò)安全已成了網(wǎng)絡(luò)發(fā)展中最重要的事情。遺憾的是,當(dāng)網(wǎng)絡(luò)給人們提供便利的同時(shí),網(wǎng)絡(luò)技術(shù)的發(fā)展方向似乎都趨向于網(wǎng)絡(luò)的便利性和實(shí)用性,因而留下了太多的技術(shù)、管理和基礎(chǔ)設(shè)施的漏洞。正是由于網(wǎng)絡(luò)本身存在的這些缺陷和漏洞,網(wǎng)絡(luò)在進(jìn)行信息和數(shù)據(jù)傳送時(shí),可能會(huì)因?yàn)榫W(wǎng)絡(luò)傳輸介質(zhì)帶寬的限制而出現(xiàn)數(shù)據(jù)沖突,傳輸幀中的地址不

19、匹配或是因?yàn)榫W(wǎng)絡(luò)硬件設(shè)備的錯(cuò)誤,導(dǎo)致傳輸?shù)男畔⒊鲥e(cuò)或丟失;一些網(wǎng)絡(luò)黑客和非法用戶利用這些缺陷向網(wǎng)絡(luò)發(fā)送可疑或不安全的信息,肆意盜竊和破壞網(wǎng)絡(luò)數(shù)據(jù)。網(wǎng)絡(luò)的維護(hù)和安全的要求也變得越來越高。網(wǎng)絡(luò)監(jiān)聽技術(shù)的起源是網(wǎng)絡(luò)管理員為了診斷網(wǎng)絡(luò)故障的需要,而監(jiān)聽網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)信息。一般的做法是在一定的網(wǎng)段上安裝網(wǎng)絡(luò)監(jiān)視系統(tǒng)或網(wǎng)絡(luò)分析儀來獲取網(wǎng)絡(luò)上的數(shù)據(jù)包進(jìn)行分析,以便找出錯(cuò)誤的原因,解決網(wǎng)絡(luò)的故障。一些網(wǎng)絡(luò)管理人員也利用截取網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)監(jiān)聽網(wǎng)絡(luò)數(shù)據(jù)

20、流量,來實(shí)現(xiàn)一定</p><p>  網(wǎng)絡(luò)監(jiān)聽與包過濾技術(shù)是網(wǎng)絡(luò)入侵的核心技術(shù),也是網(wǎng)絡(luò)安全協(xié)議技術(shù)研究的核心技術(shù).監(jiān)聽技術(shù)最初是提供給系統(tǒng)管理員用的,主要是對(duì)網(wǎng)絡(luò)的狀態(tài)、信息流動(dòng)和信息內(nèi)容等進(jìn)行監(jiān)視,相應(yīng)的工具被稱為網(wǎng)絡(luò)分析儀.。在PPDR模型以及幾乎所有的IDS(入侵檢測(cè)系統(tǒng))中,最基本的要求就是能夠?qū)崿F(xiàn)網(wǎng)絡(luò)監(jiān)聽與過濾,所有的部分(安全策略、防護(hù)、檢測(cè)、響應(yīng))都建立在此基礎(chǔ)上.但是,技術(shù)是把雙刃劍,網(wǎng)絡(luò)監(jiān)聽和

21、過濾也成了黑客使用最多的技術(shù),主要用于監(jiān)視他人的網(wǎng)絡(luò)狀態(tài)、攻擊網(wǎng)絡(luò)協(xié)議、竊取敏感信息等目的.</p><p>  1.1 課題背景 </p><p>  世界上最早的竊聽器是中國(guó)在2000 年前發(fā)明的。戰(zhàn)國(guó)時(shí)代的《墨子》一 書就記載了一種 “聽甕”。這種“聽甕”是用陶制成的,大肚小口,把它埋在地下,并在甕口蒙上一層薄薄的皮革,人伏在上面就可以傾聽到城外方圓數(shù)十里的動(dòng)靜。到了唐代,又出現(xiàn)了

22、一種 “地聽”器,能清晰地聽到30 里外的馬蹄聲。自從1876年英國(guó)青年亞·貝爾發(fā)明有線電話以后,這些使用了幾千年的原始竊聽器,才漸漸退隱出了間諜舞臺(tái)。由于互聯(lián)網(wǎng)的發(fā)展,整個(gè)世界經(jīng)濟(jì)正在迅速融為一體,而整個(gè)國(guó)家猶如一部巨大的網(wǎng)絡(luò)機(jī)器,計(jì)算機(jī)網(wǎng)絡(luò)已經(jīng)成為國(guó)家的經(jīng)濟(jì)基礎(chǔ)和命脈。伴隨著網(wǎng)絡(luò)的發(fā)展,也產(chǎn)生了各種各樣的問題,其中安全問題尤為突出。了解網(wǎng)絡(luò)面臨的各種威脅,防范和消除這些威脅,實(shí)現(xiàn)真正的網(wǎng)絡(luò)安全已經(jīng)成為網(wǎng)絡(luò)發(fā)展中最重要的事情

23、。</p><p><b>  1.2 課題意義</b></p><p>  使用網(wǎng)絡(luò)相關(guān)知識(shí)、c++的網(wǎng)絡(luò)編程技術(shù)實(shí)現(xiàn)網(wǎng)絡(luò)監(jiān)聽系統(tǒng),旨在培養(yǎng)理論與實(shí)踐相結(jié)合解決信息安全問題的能力,培養(yǎng)自學(xué)能力以及調(diào)查研究問題、分析問題、解決問題的能力。網(wǎng)絡(luò)監(jiān)聽是數(shù)據(jù)庫(kù)安全審計(jì)的最佳手段,長(zhǎng)期以來,在保障業(yè)務(wù)連續(xù)性和性能的前提下,最大限度的保障數(shù)據(jù)庫(kù)安全一直是數(shù)據(jù)庫(kù)管理人員、安全管理

24、人員孜孜不倦追求的安全目標(biāo)。 </p><p>  數(shù)據(jù)庫(kù)系統(tǒng)作為三大基礎(chǔ)軟件之一并不是在計(jì)算機(jī)誕生的時(shí)候就同時(shí)產(chǎn)生的,隨著信息技術(shù)的發(fā)展,傳統(tǒng)文件系統(tǒng)已經(jīng)不能滿足人們的需要,1961年,美國(guó)通用電氣公司成功開發(fā)了世界上第一個(gè)數(shù)據(jù)庫(kù)系統(tǒng)IDS(Integrated Data Store),奠定了數(shù)據(jù)庫(kù)的基礎(chǔ)。經(jīng)過幾十年的發(fā)展和實(shí)際應(yīng)用,技術(shù)越來越成熟和完善,代表產(chǎn)品有甲骨文公司的Oracle、IBM公司的DB2、

25、微軟公司的MS-SQL Server等等。 </p><p>  如今,數(shù)據(jù)庫(kù)系統(tǒng)在企業(yè)管理等領(lǐng)域已經(jīng)具有非常廣泛的應(yīng)用,如、賬號(hào)管理、訪問控制、安全審計(jì)、防病毒、評(píng)估加固等多個(gè)方面,常見的安全產(chǎn)品如UTM、入侵檢測(cè)、漏洞掃描等產(chǎn)品為保障數(shù)據(jù)庫(kù)系統(tǒng)的正常運(yùn)行起到了重要作用。但是,通過對(duì)諸多安全事件的處理、分析,調(diào)查人員發(fā)現(xiàn)企業(yè)內(nèi)部人員造成的違規(guī)事件占了較大比例。 </p><p>  究其

26、原因,主要是因?yàn)檫@些違規(guī)行為與傳統(tǒng)的攻擊行為不同,對(duì)內(nèi)部的違規(guī)行為無法利用攻擊機(jī)理和漏洞機(jī)理進(jìn)行分析,這就導(dǎo)致了那些抵御外部入侵的產(chǎn)品無用武之地。因此,要防止內(nèi)部的違規(guī)行為,就需要在內(nèi)部建設(shè)審計(jì)系統(tǒng),通過對(duì)操作行為的分析,實(shí)現(xiàn)對(duì)違規(guī)行為的及時(shí)響應(yīng)和追溯。</p><p>  網(wǎng)絡(luò)監(jiān)聽技術(shù)是用來監(jiān)視網(wǎng)絡(luò)的狀態(tài)、數(shù)據(jù)流動(dòng)情況以及網(wǎng)上傳輸?shù)拿魑男畔⒌鹊男畔⒓夹g(shù),局域網(wǎng)大部分使用以太網(wǎng)協(xié)議,其工作方式是:將要發(fā)送的數(shù)據(jù)包

27、發(fā)往網(wǎng)中的所有主機(jī),包中包含著應(yīng)該接受數(shù)據(jù)包的主機(jī)的IP地址,只有與數(shù)據(jù)包目標(biāo)地址一致的那臺(tái)主機(jī)才能接受。但是當(dāng)主機(jī)工作在監(jiān)聽模式下,無論數(shù)據(jù)包中的目標(biāo)地址是什么,主機(jī)都能接受。研究網(wǎng)絡(luò)監(jiān)聽系統(tǒng)對(duì)于網(wǎng)絡(luò)信息監(jiān)管與信息安全有著重要意義。</p><p><b>  1.3 研究現(xiàn)狀</b></p><p>  當(dāng)今計(jì)算機(jī)網(wǎng)絡(luò)及通訊技術(shù)的廣泛應(yīng)用,促使Internet的迅

28、速發(fā)展,給我們帶來了巨大的社會(huì)和經(jīng)濟(jì)效益。在這種情況下,計(jì)算機(jī)網(wǎng)絡(luò)的設(shè)計(jì),維護(hù)的難度日益增加,因此人們迫切需要能夠分析,診斷與測(cè)試網(wǎng)絡(luò)功能的工具軟件。網(wǎng)絡(luò)監(jiān)聽工具在這種需求下孕育而生。它對(duì)網(wǎng)絡(luò)上的所有數(shù)據(jù)進(jìn)行捕獲,一方面對(duì)數(shù)據(jù)包進(jìn)行檢查分析,以便找出我們所關(guān)心的網(wǎng)絡(luò)中潛在的問題,對(duì)網(wǎng)絡(luò)故障做出精確定位,幫助管理員解決網(wǎng)絡(luò)的故障和性能問題;另一方面它又是黑客竊聽網(wǎng)絡(luò)的工具,黑客利用數(shù)據(jù)包中攜帶的數(shù)據(jù)直接或間接獲取的機(jī)密信息。所以實(shí)現(xiàn)網(wǎng)絡(luò)監(jiān)

29、聽技術(shù)具有重要的現(xiàn)實(shí)和理論意義。網(wǎng)絡(luò)正以前所未有的速度進(jìn)入人類社會(huì),影響和改變著人們的生活方式,思想觀念,對(duì)政治、經(jīng)濟(jì)軍事等方面都產(chǎn)生了重大的影響,更是本世紀(jì)知識(shí)經(jīng)濟(jì)增長(zhǎng)的基礎(chǔ)和保障,因此保證網(wǎng)絡(luò)系統(tǒng)穩(wěn)定安全的運(yùn)行,以促進(jìn)實(shí)現(xiàn)質(zhì)量的提高,從而保障整個(gè)Internet的健康發(fā)展,有著重要的現(xiàn)實(shí)意義。局域網(wǎng)中的網(wǎng)絡(luò)數(shù)據(jù)監(jiān)聽,是實(shí)現(xiàn)網(wǎng)絡(luò)安全的必要技術(shù),它的研究和發(fā)展有利于網(wǎng)絡(luò)管理、網(wǎng)絡(luò)故障排除以及網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)的進(jìn)一步發(fā)展。因而它未來的發(fā)展

30、將在局域網(wǎng)中發(fā)揮著舉足輕重的作用,對(duì)于維護(hù)整個(gè)網(wǎng)絡(luò)的安全和性</p><p>  從早期的計(jì)算機(jī)網(wǎng)絡(luò)出現(xiàn),1969 年美國(guó)國(guó)防部高級(jí)研究計(jì)劃局建成的ARPANET 實(shí)驗(yàn)網(wǎng)開始,計(jì)算機(jī)網(wǎng)絡(luò)在各發(fā)達(dá)國(guó)家迅速蓬勃發(fā)展,到今天復(fù)雜的Intranet 和Internet 網(wǎng)絡(luò),經(jīng)歷了不同的時(shí)期。伴隨著網(wǎng)絡(luò)的出現(xiàn),對(duì)網(wǎng)絡(luò)數(shù)據(jù)截取的工具,像sniffer 也就隨之而產(chǎn)生了。到目前為止,可以進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)監(jiān)聽的工具從軟件到硬件,從

31、有線網(wǎng)到無線網(wǎng),可以說是應(yīng)有盡有。有軟件實(shí)現(xiàn)的便攜式終端,也有硬件實(shí)現(xiàn)的網(wǎng)絡(luò)分析儀。下面分別介紹。</p><p>  1.3.1 軟件數(shù)據(jù)截取工具介紹</p><p>  目前,針對(duì)各種不同版本的操作系統(tǒng)都有不同版本的數(shù)據(jù)監(jiān)聽軟件,如 MS-DOS平臺(tái)上Gobblor、Window9x 平臺(tái)的NetXray、Win2000/xp 平臺(tái)下得Sniffer Pro、Novell平臺(tái)的EthL

32、oad 以及UNIX 平臺(tái)Netman 和Sunsniff 等等。</p><p>  1.3.2 硬件數(shù)據(jù)截取工具介紹</p><p>  以上介紹的均是由單純的軟件實(shí)現(xiàn)的 sniffer,其功能相對(duì)硬件來說還是較為簡(jiǎn)單的。下面將介紹相應(yīng)的由硬件實(shí)現(xiàn)的sniffer。硬件的sniffer 又稱為網(wǎng)絡(luò)分析儀(協(xié)議分析儀)。目前的網(wǎng)絡(luò)分析儀的技術(shù)已經(jīng)非常的成熟,產(chǎn)品也非常的多樣。各種產(chǎn)品的功

33、能會(huì)略有差異,有的只能針對(duì)一種協(xié)議,有的可以分析多種協(xié)議。一般的情況下,大型的企業(yè)網(wǎng)絡(luò)都會(huì)使用軟硬件結(jié)合的網(wǎng)絡(luò)分析儀。如:1)安捷倫網(wǎng)絡(luò)分析儀系統(tǒng),2)Fluke Optiview 綜合網(wǎng)絡(luò)協(xié)議分析儀等。</p><p>  2 網(wǎng)絡(luò)監(jiān)聽技術(shù)綜述</p><p>  2.1 網(wǎng)絡(luò)監(jiān)聽概念 </p><p>  網(wǎng)絡(luò)監(jiān)聽[1]技術(shù)是一種與網(wǎng)絡(luò)安全性密切相關(guān)的技術(shù),它的

34、完整定義是:利用計(jì)算機(jī)的網(wǎng)絡(luò)接口截獲目的地為其它計(jì)算機(jī)的數(shù)據(jù)報(bào)文的一種技術(shù)。網(wǎng)絡(luò)監(jiān)聽器( sniffer )原來是提供給網(wǎng)絡(luò)管理員的一類管理工具,使用這組工具可以監(jiān)視網(wǎng)絡(luò)的狀態(tài)、數(shù)據(jù)流動(dòng)情況以及網(wǎng)絡(luò)上傳出的消息并利用這些消息來排除網(wǎng)絡(luò)故障。不幸的是由于網(wǎng)絡(luò)監(jiān)聽能有效的截獲網(wǎng)絡(luò)上的數(shù)據(jù),它也成為了黑客使用最多的法。黑客運(yùn)行監(jiān)聽工具暗中監(jiān)視他人的網(wǎng)絡(luò)狀況、竊取明文傳出的密碼和各種數(shù)據(jù)。網(wǎng)絡(luò)監(jiān)聽不僅在共享式局域網(wǎng)中實(shí)現(xiàn),而且還可以在交換式局域

35、網(wǎng)中實(shí)現(xiàn)。</p><p>  2.2 網(wǎng)絡(luò)監(jiān)聽的原理</p><p>  Ethernet(以太網(wǎng),它是由施樂公司發(fā)明的一種比較流行的局域網(wǎng)技術(shù),它包含一條所有計(jì)算機(jī)都連接到其上的一條電纜,每臺(tái)計(jì)算機(jī)需要一種叫接口板的硬件才能連接到以太網(wǎng))協(xié)議的工作方式是將要發(fā)送的數(shù)據(jù)包發(fā)往連接在一起的所有主機(jī)。在包頭中包括有應(yīng)該接收數(shù)據(jù)包的主機(jī)的正確地址,因?yàn)橹挥信c數(shù)據(jù)包中目標(biāo)地址一致的那臺(tái)主機(jī)才能接

36、收到信息包,但是當(dāng)主機(jī)工作在監(jiān)聽模式下的話不管數(shù)據(jù)包中的目標(biāo)物理地址是什么,主機(jī)都將可以接收到。許多局域網(wǎng)內(nèi)有十幾臺(tái)甚至上百臺(tái)主機(jī)是通過一個(gè)電纜、一個(gè)集線器連接在一起的,在協(xié)議的高層或者用戶來看,當(dāng)同一網(wǎng)絡(luò)中的兩臺(tái)主機(jī)通信的時(shí)候,源主機(jī)將寫有目的的主機(jī)地址的數(shù)據(jù)包直接發(fā)向目的主機(jī),或者當(dāng)網(wǎng)絡(luò)中的一臺(tái)主機(jī)同外界的主機(jī)通信時(shí),源主機(jī)將寫有目的的主機(jī)IP地址的數(shù)據(jù)包發(fā)向網(wǎng)關(guān)。但這種數(shù)據(jù)包并不能在協(xié)議棧的高層直接發(fā)送出去,要發(fā)送的數(shù)據(jù)包必須從T

37、CP/IP協(xié)議的IP層交給網(wǎng)絡(luò)接口,也就是所說的數(shù)據(jù)鏈路層。網(wǎng)絡(luò)接口不會(huì)識(shí)別IP地址的。在網(wǎng)絡(luò)接口由IP層來的帶有IP地址的數(shù)據(jù)包又增加了一部分以太禎的禎頭的信息。在禎頭中,有兩個(gè)域分別為只有網(wǎng)絡(luò)接口才能識(shí)別的源主機(jī)和目的主機(jī)的物理地址這是一個(gè)</p><p>  Ethernet中填寫了物理地址的禎從網(wǎng)絡(luò)接口中,也就是從網(wǎng)卡中發(fā)送出去傳送到物理的線路上。如果局域網(wǎng)是由一條粗網(wǎng)或細(xì)網(wǎng)連接成的,那么數(shù)字信號(hào)在電纜上

38、傳輸信號(hào)就能夠到達(dá)線路上的每一臺(tái)主機(jī)。再當(dāng)使用集線器的時(shí)候,發(fā)送出去的信號(hào)到達(dá)集線器,由集線器再發(fā)向連接在集線器上的每一條線路。</p><p>  當(dāng)連接在同一條電纜或集線器上的主機(jī)被邏輯地分為幾個(gè)子網(wǎng)的時(shí)候,那么要是有一臺(tái)主機(jī)處于監(jiān)聽模式,它還將可以接收到發(fā)向與自己不在同一個(gè)子網(wǎng)(使用了不同的掩碼、IP地址和網(wǎng)關(guān))的主機(jī)的數(shù)據(jù)包,在同一個(gè)物理信道上傳輸?shù)乃行畔⒍伎梢员唤邮盏健?</p><

39、;p>  2.3 WinPcap的原理</p><p>  2.3.1 winpcap簡(jiǎn)介 </p><p>  WinPcap [2]是由伯克利分組捕獲庫(kù)派生而來的分組捕獲庫(kù),它是在Windows 操作平臺(tái)上來實(shí)現(xiàn)對(duì)底層包的截取過濾。WinPcap 為用戶級(jí)的數(shù)據(jù)包提供了Windows 下的一個(gè)平臺(tái)。WinPcap 是 B

40、PF 模型和 Libpcap 函數(shù)庫(kù)在 Windows 平臺(tái)下網(wǎng)絡(luò)數(shù)據(jù)包捕獲和網(wǎng)絡(luò)狀態(tài)分析的一種體系結(jié)構(gòu),這個(gè)體系結(jié)構(gòu)是由一個(gè)核心的包過濾驅(qū)動(dòng)程序,一個(gè)底層的動(dòng)態(tài)連接庫(kù) Packet.dll 和一個(gè)高層的獨(dú)立于系統(tǒng)的函數(shù)庫(kù) Libpcap 組成。底層的包捕獲驅(qū)動(dòng)程序?qū)嶋H為一個(gè)協(xié)議網(wǎng)絡(luò)驅(qū)動(dòng)程序,通過對(duì) NDIS 中函數(shù)的調(diào)用為&#

41、160;Win95、Win98、WinNT、和 Win2000 提供一類似于 UNIX 系統(tǒng)下 Berkeley Packet Filter 的捕獲和發(fā)送原始數(shù)據(jù)包的能力。Packet.dll 是對(duì)這個(gè) BPF 驅(qū)動(dòng)程序進(jìn)行訪問的 API 接口,同時(shí)它有一套符合 Libpcap 接口(UN

42、IX 下的捕獲函數(shù)庫(kù))的函數(shù)庫(kù)。 </p><p>  WinPcap 包括三個(gè)部分:第一個(gè)模塊NPF(Netgroup Packet Filter),是一個(gè)虛擬設(shè)備驅(qū)動(dòng)程序文件。它的功能是過濾數(shù)據(jù)包,并把這些數(shù)據(jù)包原封不動(dòng)地傳給用戶態(tài)模塊,這個(gè)過程中包括了一些操作系統(tǒng)特有的代碼。第二個(gè)模塊packet.dll為win32平臺(tái)提供了一個(gè)公共的接口。不同版本的Windows系

43、統(tǒng)都有自己的內(nèi)核模塊和用戶層模塊。Packet.dll用于解決這些不同。調(diào)用Packet.dll的程序可以運(yùn)行在不同版本的Windows平臺(tái)上,而無需重新編譯。 第三個(gè)模塊 Wpcap.dll是不依賴于操作系統(tǒng)的。它提供了更加高層、抽象的函數(shù)。  </p><p>  packet.dll和Wpcap.dll:packet.dll直接映射了內(nèi)核的調(diào)用。 Wpcap.dll提

44、供了更加友好、功能更加強(qiáng)大的函數(shù)調(diào)用。WinPcap的優(yōu)勢(shì)提供了一套標(biāo)準(zhǔn)的抓包接口,與libpcap兼容,可使得原來許多UNIX平臺(tái)下的網(wǎng)絡(luò)分析工具快速移植過來便于開發(fā)各種網(wǎng)絡(luò)分析工具,充分考慮了各種性能和效率的優(yōu)化,包括對(duì)于NPF內(nèi)核層次上的過濾器支持,支持內(nèi)核態(tài)的統(tǒng)計(jì)模式,提供了發(fā)送數(shù)據(jù)包的能力。</p><p>  WinPcap的出現(xiàn)具有一定的必然性。由于Window操作系統(tǒng)沒有提供可以直接捕獲數(shù)據(jù)包的A

45、PI,盡管提供了一些內(nèi)核模塊,但存在著嚴(yán)重的局限性。例如:IP Filter Driver只運(yùn)行在 Windows2000 下,且僅支持IP協(xié)議。由于這些局限,使得Windows平臺(tái)下的網(wǎng)絡(luò)安全和分析工具無論在數(shù)量上,還是質(zhì)量上都與Unix下有很大的差距。微軟研究院贊助了意大利一家開發(fā)機(jī)構(gòu),為Win32平臺(tái)底層網(wǎng)絡(luò)分析開發(fā)了一套有力而且易擴(kuò)展的體系結(jié)構(gòu)——WinPcap,它可以將Unix支持的數(shù)據(jù)包捕獲功能加到Win32系統(tǒng)中,從而彌補(bǔ)

46、了Windows操作系統(tǒng)這方面的欠缺。而且WinPcap完全開放,提供源代碼,同時(shí)它提供了與Libpcap相兼容的函數(shù)接口。</p><p>  2.3.2 WinPcap的體系結(jié)構(gòu)</p><p>  (1) BSD Capturing Component的體系結(jié)構(gòu)</p><p>  BSD Capturing Component是Unix下最常用的捕獲數(shù)據(jù)包的

47、驅(qū)動(dòng),其基本體系結(jié)構(gòu)見圖2-1。</p><p>  圖2-1 BSD Capturing Component 的體系結(jié)構(gòu)</p><p>  如圖2-1所示,BSD Capturing Component由以下幾部分組成:NetWork Tap,它負(fù)責(zé)從網(wǎng)絡(luò)直接捕獲所有的數(shù)據(jù)包;Berkeley Packet Filter,它用來分析捕獲進(jìn)來的數(shù)據(jù)包;兩種Buffer:一種工作在核心層,

48、一種工作在用戶層。經(jīng)過Berkeley Packet Filter的數(shù)據(jù)包被拷貝到Kernel Buffer中,它分為兩個(gè)buffer:store buffer和hold buffer。store buffer用于保存從網(wǎng)絡(luò)適配器捕獲的數(shù)據(jù)包,hold bufier則用于將數(shù)據(jù)包拷貝到用戶的buffer中。二者之間擁有swap特性:由于store buffer比hold buffer更易被填滿,所以當(dāng)store buffer已滿,而h

49、old buffer為空的時(shí)候,store buffer 變成 hold buffer,而之前的hold buffer變成store buffer。這樣使得用戶的程序和捕獲數(shù)據(jù)包的驅(qū)動(dòng)完全分開。User-level buffer存儲(chǔ)從核心層進(jìn)來的數(shù)據(jù)包,它可防止用戶直接訪問內(nèi)核管理的內(nèi)存。</p><p>  從程序員的角度來看,Libpcap是主要的部件,它隱藏了應(yīng)用程序和內(nèi)核之間的交互。它為捕獲數(shù)據(jù)包的過程提

50、供了強(qiáng)大而抽象的接口。通過它,可以使用用戶定義的filter、管理用戶層的buffer等。但是Libpcap并不能夠發(fā)送數(shù)據(jù)包或者統(tǒng)計(jì)數(shù)據(jù)包。</p><p>  (2) WinPcap的體系結(jié)構(gòu)</p><p>  WinPcap保留了BSD Capturing Component最重要的模塊:一個(gè)Filter Machine、兩種Burfer以及提供給用戶的庫(kù)。但是,WinPcap與B

51、SD捕獲數(shù)據(jù)包有一些本質(zhì)的區(qū)別:filtering過程開始于用戶層定義的一個(gè)Filter,例如port=21,WinPcap把它編譯成一個(gè)偽指令,偽指令被傳到核心層,核心層通過一個(gè)虛擬機(jī)開始抓取所有的數(shù)據(jù)包,并通過偽指令來判斷是否保留數(shù)據(jù)包。虛擬機(jī)的效率成為獲得好的效率的關(guān)鍵。另外,它們?cè)诮Y(jié)構(gòu)上也有重要的區(qū)別:Netgroup Packet Filter采用循環(huán)buffer,這樣使得buffer空間可以得到充分利用,大大提高了效率。Wi

52、npcap(windows packet capture)是微軟提供的一個(gè)在Windows 平臺(tái)下訪問網(wǎng)絡(luò)的編程接口。微軟開發(fā)winpcap 這個(gè)項(xiàng)目的目的在于為win32 應(yīng)用程序提供更開放的訪問網(wǎng)絡(luò)底層的能力。它包括三個(gè)部分:參見圖2-2。</p><p>  圖 2-2 Winpcap 結(jié)構(gòu)圖</p><p>  第一個(gè)模塊 NPF(Netgroup Packet Filter),是

53、一個(gè)虛擬設(shè)備驅(qū)動(dòng)程序文件。它的功能是過濾數(shù)據(jù)包,并把這些數(shù)據(jù)包原封不動(dòng)地傳給用戶態(tài)模塊,這個(gè)過程中包括了一些操作系統(tǒng)特有的代碼。</p><p>  第二個(gè)模塊 packet.dll 為win32 平臺(tái)提供了一個(gè)公共的接口。不同版本的Windows系統(tǒng)都有自己的內(nèi)核模塊和用戶層模塊。Packet.dll 可以解決這些差異。調(diào)用Packet.dll的程序可以運(yùn)行在不同版本的Windows 平臺(tái)上,而無需重新編譯。&

54、lt;/p><p>  第三個(gè)模塊 Wpcap.dll 是不依賴于操作系統(tǒng)的。它提供了更加高層、抽象的函數(shù)。Winpcap 的實(shí)質(zhì)是用了我們后面說的NDIS,將自己注冊(cè)為一個(gè)協(xié)議處理驅(qū)動(dòng)來實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包的截獲。</p><p>  Winpcap 主要可以實(shí)現(xiàn):</p><p>  (a) 捕獲原始數(shù)據(jù)報(bào),包括在共享網(wǎng)絡(luò)上各主機(jī)發(fā)送/接收的以及相互之間交換的數(shù)據(jù)包;&l

55、t;/p><p>  (b) 在數(shù)據(jù)包發(fā)往應(yīng)用程序之前,按照自定義的規(guī)則將某些特殊的數(shù)據(jù)包過濾掉;</p><p>  (c) 在網(wǎng)絡(luò)上發(fā)送原始的數(shù)據(jù)包;</p><p>  (d) 收集網(wǎng)絡(luò)通信過程中的統(tǒng)計(jì)信息;</p><p>  WinPcap 的優(yōu)點(diǎn)在于:1.獨(dú)立于主機(jī)協(xié)議來發(fā)送和接收原始數(shù)據(jù)包,并且提供了一套標(biāo)準(zhǔn)的抓包接口,與libpc

56、ap 兼容,可使得原來許多UNIX 平臺(tái)下的網(wǎng)絡(luò)分析工具可以快速移植,便于開發(fā)各種網(wǎng)絡(luò)分析工具。2.充分考慮了各種性能和效率的優(yōu)化,包括對(duì)于NPF 內(nèi)核層次上的過濾器支持。 3.支持內(nèi)核態(tài)的統(tǒng)計(jì)模式,提供了發(fā)送數(shù)據(jù)包的能力。Winpcap 的缺點(diǎn)在于:不能阻塞、過濾或控制其他應(yīng)用程序?qū)?shù)據(jù)報(bào)收發(fā),它僅僅只是監(jiān)聽共享網(wǎng)絡(luò)上傳送的數(shù)據(jù)。因此,它不能用于QoS 調(diào)度程序或個(gè)人防火墻。</p><p>  2.3.3 W

57、inPcap的功能與新特性</p><p>  WinPcap除了其強(qiáng)大的捕獲數(shù)據(jù)包的功能以外,相比BSD Capturing Component還增加了發(fā)送數(shù)據(jù)包的功能:它是在Win32平臺(tái)上第一個(gè)提供標(biāo)準(zhǔn)的一套發(fā)送數(shù)據(jù)包函數(shù)的庫(kù)。需要注意的是,WinPcap不具備產(chǎn)生數(shù)據(jù)包的能力,發(fā)送的數(shù)據(jù)包需要通過手工或者其它工具來構(gòu)造。而且WinPcap還實(shí)現(xiàn)了統(tǒng)計(jì)模式的工作方式:它不需要把數(shù)據(jù)包傳送到應(yīng)用程序,避免了大

58、量的數(shù)據(jù)包拷貝操作。當(dāng)數(shù)據(jù)包還在NIC driver的存儲(chǔ)器中時(shí),統(tǒng)計(jì)模式就開始起作用,然后數(shù)據(jù)包被丟棄。統(tǒng)計(jì)模式是一種非常高效的、用來監(jiān)測(cè)網(wǎng)絡(luò)的方法,即使在高速的局域網(wǎng)等有大量數(shù)據(jù)包流動(dòng)的網(wǎng)絡(luò)環(huán)境中,它依然可工作得很好。</p><p>  2.3.4 網(wǎng)絡(luò)數(shù)據(jù)包捕獲的原理</p><p>  以太網(wǎng)(Ethernet)具有共享介質(zhì)的特征,信息是以明文的形式在網(wǎng)絡(luò)上傳輸,當(dāng)網(wǎng)絡(luò)適配器設(shè)置

59、為監(jiān)聽模式(混雜模式,Promiscuous)時(shí),由于采用以太網(wǎng)廣播信道爭(zhēng)用的方式,使得監(jiān)聽系統(tǒng)與正常通信的網(wǎng)絡(luò)能夠并聯(lián)連接,并可以捕獲任何一個(gè)在同一沖突域上傳輸?shù)臄?shù)據(jù)包。IEEE802.3 標(biāo)準(zhǔn)的以太網(wǎng)采用的是持續(xù) CSMA 的方式,正是由于以太網(wǎng)采用這種廣播信道爭(zhēng)用的方式,使得各個(gè)站點(diǎn)可以獲得其他站點(diǎn)發(fā)送的數(shù)據(jù)。運(yùn)用這一原理使信息捕獲系統(tǒng)能夠攔截的我們所要的信息,這是捕獲數(shù)據(jù)包的物理基礎(chǔ)。</p><p> 

60、 以太網(wǎng)是一種總線型的網(wǎng)絡(luò),從邏輯上來看是由一條總線和多個(gè)連接在總線上的站點(diǎn)所組成各個(gè)站點(diǎn)采用上面提到的 CSMA/CD 協(xié)議進(jìn)行信道的爭(zhēng)用和共享。每個(gè)站點(diǎn)(這里特指計(jì)算機(jī)通過的接口卡)網(wǎng)卡來實(shí)現(xiàn)這種功能。網(wǎng)卡主要的工作是完成對(duì)于總線當(dāng)前狀態(tài)的探測(cè),確定是否進(jìn)行數(shù)據(jù)的傳送,判斷每個(gè)物理數(shù)據(jù)幀目的地是否為本站地址,如果不匹配,則說明不是發(fā)送到本站的而將它丟棄。如果是的話,接收該數(shù)據(jù)幀,進(jìn)行物理數(shù)據(jù)幀的 CRC 校驗(yàn),然后將數(shù)據(jù)幀提交給LL

61、C 子層。  網(wǎng)卡具有如下的幾種工作模式:</p><p>  (a) 廣播模式(Broad Cast Model):它的物理地址(MAC)地址是 0Xffffff 的幀為廣播幀,工作在廣播模式的網(wǎng)卡接收廣播幀。</p><p>  (b) 多播傳送(MultiCast Model):多播傳送地址作為目的物理地址的幀可以被組內(nèi)的其它主機(jī)同時(shí)接收,而組外主機(jī)卻接收不到。但是,如果將網(wǎng)卡設(shè)置

62、為多播傳送模式,它可以接收所有的多播傳送幀,而不論它是不是組內(nèi)成員。</p><p>  (c) 直接模式(Direct Model):工作在直接模式下的網(wǎng)卡只接收目地址是自己 Mac地址的幀。</p><p>  (d) 混雜模式(Promiscuous Model):工作在混雜模式下的網(wǎng)卡接收所有的流過網(wǎng)卡的幀,信包捕獲程序就是在這種模式下運(yùn)行的。</p><p&g

63、t;  網(wǎng)卡的缺省工作模式包含廣播模式和直接模式,即它只接收廣播幀和發(fā)給自己的幀。如果采用混雜模式,一個(gè)站點(diǎn)的網(wǎng)卡將接受同一網(wǎng)絡(luò)內(nèi)所有站點(diǎn)所發(fā)送的數(shù)據(jù)包這樣就可以到達(dá)對(duì)于網(wǎng)絡(luò)信息監(jiān)視捕獲的目的。</p><p>  2.3.5 在windows情況下捕獲數(shù)據(jù)包的結(jié)構(gòu)</p><p>  圖2-3捕獲數(shù)據(jù)包的結(jié)構(gòu)圖</p><p>  Wndows下捕獲數(shù)據(jù)包,其中N

64、DIS及其特點(diǎn)是:</p><p>  NDIS(Network Driver Interface Specification) 是 Microsoft 和 3Com 公司聯(lián)合制定的網(wǎng)絡(luò)驅(qū)動(dòng)規(guī)范,并提供了大量的操作函數(shù)。它為上層的協(xié)議驅(qū)動(dòng)提供服務(wù),屏蔽了下層各種網(wǎng)卡的差別。NDIS 向上支持多種網(wǎng)絡(luò)協(xié)議,比如 TCP/IP、NWLink IPX/SPX、NETBEUI 等,向下支持不同廠家生產(chǎn)的多種網(wǎng)卡。NDIS

65、 還支持多種工作模式,支持多處理器,提供一個(gè)完備的 NDIS 庫(kù)(Library)。但庫(kù)中所提供的各個(gè)函數(shù)都是工作在核心模式下的,用戶不宜直接操作,這就需要尋找另外的接口。</p><p>  2.3.6 利用winpcap進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)包的捕獲和過濾的設(shè)計(jì)步驟</p><p>  (a) 打開網(wǎng)卡,并設(shè)為混雜模式。</p><p>  (b) 回調(diào)函數(shù) Networ

66、k Tap 在得到監(jiān)聽命令后,從網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序處收集數(shù)據(jù)包把監(jiān)聽到的數(shù)據(jù)包負(fù)責(zé)傳送給過濾程序。</p><p>  (c) 當(dāng) Packet filter 監(jiān)聽到有數(shù)據(jù)包到達(dá)時(shí),NDIS 中間驅(qū)動(dòng)程序首先調(diào)用分組驅(qū)動(dòng)程序,該程序?qū)?shù)據(jù)傳遞給每一個(gè)參與進(jìn)程的分組過濾程序。</p><p>  (d) 然后由 Packet filter 過濾程序決定哪些數(shù)據(jù)包應(yīng)該丟棄,哪些數(shù)據(jù)包應(yīng)該接收,是

67、否需要將接收到的數(shù)據(jù)拷貝到相應(yīng)的應(yīng)用程序。</p><p>  (e) 通過分組過濾器后,將數(shù)據(jù)未過濾掉的數(shù)據(jù)包提交給核心緩沖區(qū)。然后等待系統(tǒng)緩沖區(qū)滿后,再將數(shù)據(jù)包拷貝到用戶緩沖區(qū)。監(jiān)聽程序可以直接從用戶緩沖區(qū)中讀取捕獲的數(shù)據(jù)包。</p><p><b>  (f) 關(guān)閉網(wǎng)卡。</b></p><p>  3相關(guān)網(wǎng)絡(luò)協(xié)議的分析</p>

68、;<p>  3.1 網(wǎng)絡(luò)體系結(jié)構(gòu)</p><p>  計(jì)算機(jī)的網(wǎng)絡(luò)結(jié)構(gòu)可以從網(wǎng)絡(luò)體系結(jié)構(gòu),網(wǎng)絡(luò)組織和網(wǎng)絡(luò)配置三個(gè)方面來描述,網(wǎng)絡(luò)組織是從網(wǎng)絡(luò)的物理結(jié)構(gòu)和網(wǎng)絡(luò)的實(shí)現(xiàn)兩方面來描述計(jì)算機(jī)網(wǎng)絡(luò);網(wǎng)絡(luò)配置是從網(wǎng)絡(luò)應(yīng)用方面來描述計(jì)算機(jī)網(wǎng)絡(luò)的布局,硬件,軟件和和通信線路來描述計(jì)算機(jī)網(wǎng)絡(luò);網(wǎng)絡(luò)體系結(jié)構(gòu)是從功能上來描述計(jì)算機(jī)網(wǎng)絡(luò)結(jié)構(gòu)。網(wǎng)絡(luò)體系(Network Architecture):是為了完成計(jì)算機(jī)間的通信合作

69、,把每臺(tái)計(jì)算機(jī)互連的功能劃分成有明確定義的層次,并規(guī)定了同層次進(jìn)程通信的協(xié)議及相鄰之間的接口及服務(wù)。 網(wǎng)絡(luò)體系結(jié)構(gòu):是指用分層研究方法定義的網(wǎng)絡(luò)各層的功能,各層協(xié)議和接口的集合。</p><p>  3.2 網(wǎng)絡(luò)協(xié)議的分析與實(shí)現(xiàn)</p><p>  網(wǎng)絡(luò)協(xié)議[3]是計(jì)算機(jī)網(wǎng)絡(luò)必不可少的,一個(gè)完整的計(jì)算機(jī)網(wǎng)絡(luò)需要有一套復(fù)雜的協(xié)議集合,組織復(fù)雜的計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議的最好方式就是層次模型。而將計(jì)算機(jī)

70、網(wǎng)絡(luò)層次模型和各層協(xié)議的集合定義為計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)(Network Architecture)。網(wǎng)絡(luò)中計(jì)算機(jī)的硬件和軟件存在各種差異,為了保證相互通信及雙方能夠正確地接收信息,必須事先形成一種約定,即網(wǎng)絡(luò)協(xié)議. </p><p>  協(xié)議:是為實(shí)現(xiàn)網(wǎng)絡(luò)中的數(shù)據(jù)交換而建立的規(guī)則標(biāo)準(zhǔn)或約定。 網(wǎng)絡(luò)協(xié)議三要素:語法,語義,交換規(guī)則(或稱時(shí)序/定時(shí)關(guān)系)運(yùn)作機(jī)制。</p><p><b&g

71、t;  3.2.1 IP</b></p><p>  IP層接收由更低層(網(wǎng)絡(luò)接口層例如以太網(wǎng)設(shè)備驅(qū)動(dòng)程序)發(fā)來的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的數(shù)據(jù)包傳送到更低層。IP數(shù)據(jù)包是不可靠的,因?yàn)镮P并沒有做任何事情來確認(rèn)數(shù)據(jù)包是按順序發(fā)送的或者沒有被破壞。IP數(shù)據(jù)包中含有發(fā)送它的主機(jī)的地址(源地址)和接收它的主機(jī)的地址(目的地址)。 &l

72、t;/p><p>  高層的TCP和UDP服務(wù)在接收數(shù)據(jù)包時(shí),通常假設(shè)包中的源地址是有效的。也可以這樣說,IP地址形成了許多服務(wù)的認(rèn)證基礎(chǔ),這些服務(wù)相信數(shù)據(jù)包是從一個(gè)有效的主機(jī)發(fā)送來的。IP確認(rèn)包含一個(gè)選項(xiàng),叫作IP source routing,可以用來指定一條源地址和目的地址之間的直接路徑。對(duì)于一些TCP和UDP的服務(wù)來說,使用了該選項(xiàng)的IP包好像是從路徑上的最后一個(gè)系統(tǒng)傳遞過來的,而不是來自于它的真實(shí)地點(diǎn)。這個(gè)

73、選項(xiàng)是為了測(cè)試而存在的,說明了它可以被用來欺騙系統(tǒng)來進(jìn)行平常是被禁止的連接。那么,許多依靠IP源地址做確認(rèn)的服務(wù)將產(chǎn)生問題并且會(huì)被非法入侵。 </p><p><b>  3.2.2 TCP</b></p><p>  TCP是面向連接的通信協(xié)議,通過三次握手建立連接,通訊完成時(shí)要拆除連接,由于TCP是面向連接的所以只能用于點(diǎn)對(duì)點(diǎn)的通訊。 </p>&l

74、t;p>  TCP提供的是一種可靠的數(shù)據(jù)流服務(wù),采用“帶重傳的肯定確認(rèn)”技術(shù)來實(shí)現(xiàn)傳輸?shù)目煽啃浴CP還采用一種稱為“滑動(dòng)窗口”的方式進(jìn)行流量控制,所謂窗口實(shí)際表示接收能力,用以限制發(fā)送方的發(fā)送速度。 </p><p>  如果IP數(shù)據(jù)包中有已經(jīng)封好的TCP數(shù)據(jù)包,那么IP將把它們向‘上’傳送到TCP層。TCP將包排序并進(jìn)行錯(cuò)誤檢查,同時(shí)實(shí)現(xiàn)虛電路間的連接。TCP數(shù)據(jù)包中包括序號(hào)和確認(rèn),所以未按照順序收到的

75、包可以被排序,而損壞的包可以被重傳。 </p><p>  TCP將它的信息送到更高層的應(yīng)用程序,例如Telnet的服務(wù)程序和客戶程序。應(yīng)用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設(shè)備驅(qū)動(dòng)程序和物理介質(zhì),最后到接收方。 </p><p>  面向連接的服務(wù)(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。D

76、NS在某些情況下使用TCP(發(fā)送和接收域名數(shù)據(jù)庫(kù)),但使用UDP傳送有關(guān)單個(gè)主機(jī)的信息。 </p><p><b>  3.2.3 UDP</b></p><p>  UDP是面向無連接的通訊協(xié)議,UDP數(shù)據(jù)包括目的端口號(hào)和源端口號(hào)信息,由于通訊不需要連接,所以可以實(shí)現(xiàn)廣播發(fā)送。 </p><p>  UDP通訊時(shí)不需要接收方確認(rèn),屬于不可靠的

77、傳輸,可能會(huì)出丟包現(xiàn)象,實(shí)際應(yīng)用中要求在程序員編程驗(yàn)證。 </p><p>  UDP與TCP位于同一層,但它不管數(shù)據(jù)包的順序、錯(cuò)誤或重發(fā)。因此,UDP不被應(yīng)用于那些使用虛電路的面向連接的服務(wù),UDP主要用于那些面向查詢---應(yīng)答的服務(wù),例如NFS。相對(duì)于FTP或Telnet,這些服務(wù)需要交換的信息量較小。使用UDP的服務(wù)包括NTP(網(wǎng)絡(luò)時(shí)間協(xié)議)和DNS(DNS也使用TCP)。 </p><

78、p>  欺騙UDP包比欺騙TCP包更容易,因?yàn)閁DP沒有建立初始化連接(也可以稱為握手)(因?yàn)樵趦蓚€(gè)系統(tǒng)間沒有虛電路),也就是說,與UDP相關(guān)的服務(wù)面臨著更大的危險(xiǎn)。 </p><p>  3.2.4 ICMP</p><p>  ICMP與IP位于同一層,它被用來傳送IP的的控制信息。它主要是用來提供有關(guān)通向目的地址的路徑信息。ICMP的‘Redirect’信息通知主機(jī)通向其他系統(tǒng)

79、的更準(zhǔn)確的路徑,而‘Unreachable’信息則指出路徑有問題。另外,如果路徑不可用了,ICMP可以使TCP連接‘體面地’終止。PING是最常用的基于ICMP的服務(wù)。 </p><p>  3.2.5 通訊端口</p><p>  TCP和UDP服務(wù)通常有一個(gè)客戶/服務(wù)器的關(guān)系,例如,一個(gè)Telnet服務(wù)進(jìn)程開始在系統(tǒng)上處于空閑狀態(tài),等待著連接。用戶使用Telnet客戶程序與服務(wù)進(jìn)程建立

80、一個(gè)連接。客戶程序向服務(wù)進(jìn)程寫入信息,服務(wù)進(jìn)程讀出信息并發(fā)出響應(yīng),客戶程序讀出響應(yīng)并向用戶報(bào)告。因而,這個(gè)連接是雙工的,可以用來進(jìn)行讀寫。 </p><p>  兩個(gè)系統(tǒng)間的多重Telnet連接是如何相互確認(rèn)并協(xié)調(diào)一致呢?TCP或UDP連接唯一地使用每個(gè)信息中的如下四項(xiàng)進(jìn)行確認(rèn): </p><p>  (a) 源IP地址 發(fā)送包的IP地址。 </p><p>  (

81、b) 目的IP地址 接收包的IP地址。 </p><p>  (c) 源端口 源系統(tǒng)上的連接的端口。 </p><p>  (d) 目的端口 目的系統(tǒng)上的連接的端口。 </p><p>  端口是一個(gè)軟件結(jié)構(gòu),被客戶程序或服務(wù)進(jìn)程用來發(fā)送和接收信息。一個(gè)端口對(duì)應(yīng)一個(gè)16比特的數(shù)。服務(wù)進(jìn)程通常使用一個(gè)固定的端口,例如,SMTP使用25、Xwindows使用6000。這

82、些端口號(hào)是‘廣為人知’的,因?yàn)樵诮⑴c特定的主機(jī)或服務(wù)的連接時(shí),需要這些地址和目的地址進(jìn)行通訊。 </p><p>  3.2.6 IP地址</p><p>  在Internet上連接的所有計(jì)算機(jī),從大型機(jī)到微型計(jì)算機(jī)都是以獨(dú)立的身份出現(xiàn),我們稱它為主機(jī)。為了實(shí)現(xiàn)各主機(jī)間的通信,每臺(tái)主機(jī)都必須有一個(gè)唯一的網(wǎng)絡(luò)地址。就好像每一個(gè)住宅都有唯一的門牌一樣,才不至于在傳輸資料時(shí)出現(xiàn)混亂。 <

83、;/p><p>  Internet的網(wǎng)絡(luò)地址是指連入Internet網(wǎng)絡(luò)的計(jì)算機(jī)的地址編號(hào)。所以,在Internet網(wǎng)絡(luò)中,網(wǎng)絡(luò)地址唯一地標(biāo)識(shí)一臺(tái)計(jì)算機(jī)。 </p><p>  我們都已經(jīng)知道,Internet是由幾千萬臺(tái)計(jì)算機(jī)互相連接而成的。而我們要確認(rèn)網(wǎng)絡(luò)上的每一臺(tái)計(jì)算機(jī),靠的就是能唯一標(biāo)識(shí)該計(jì)算機(jī)的網(wǎng)絡(luò)地址,這個(gè)地址就叫做IP(Internet Protocol的簡(jiǎn)寫)地址,即用Int

84、ernet協(xié)議語言表示的地址。 </p><p>  目前,在Internet里,IP地址是一個(gè)32位的二進(jìn)制地址,為了便于記憶,將它們分為4組,每組8位,由小數(shù)點(diǎn)分開,用四個(gè)字節(jié)來表示,而且,用點(diǎn)分開的每個(gè)字節(jié)的數(shù)值范圍是0~255,如202.116.0.1,這種書寫方法叫做點(diǎn)數(shù)表示法。 </p><p>  3.2.7 地址分類</p><p>  IP地址[5

85、]可確認(rèn)網(wǎng)絡(luò)中的任何一個(gè)網(wǎng)絡(luò)和計(jì)算機(jī),而要識(shí)別其它網(wǎng)絡(luò)或其中的計(jì)算機(jī),則是根據(jù)這些IP地址的分類來確定的。一般將IP地址按節(jié)點(diǎn)計(jì)算機(jī)所在網(wǎng)絡(luò)規(guī)模的大小分為A,B,C三類,默認(rèn)的網(wǎng)絡(luò)屏蔽是根據(jù)IP地址中的第一個(gè)字段確定的。 </p><p><b>  A類地址 </b></p><p>  A類地址的表示范圍為:1.0.0.1~126.255.255.255,默認(rèn)網(wǎng)絡(luò)

86、屏蔽為:255.0.0.0;A類地址分配給規(guī)模特別大的網(wǎng)絡(luò)使用。A類網(wǎng)絡(luò)用第一組數(shù)字表示網(wǎng)絡(luò)本身的地址,后面三組數(shù)字作為連接于網(wǎng)絡(luò)上的主機(jī)的地址。分配給具有大量主機(jī)(直接個(gè)人用戶)而局域網(wǎng)絡(luò)個(gè)數(shù)較少的大型網(wǎng)絡(luò)。例如IBM公司的網(wǎng)絡(luò)。 </p><p>  127.0.0.0到127.255.255.255是保留地址,用做循環(huán)測(cè)試用的。 </p><p>  0.0.0.0到0.255.25

87、5.255也是保留地址,用做表示所有的IP地址。 </p><p>  一個(gè)A類IP地址由1字節(jié)(每個(gè)字節(jié)是8位)的網(wǎng)絡(luò)地址和3個(gè)字節(jié)主機(jī)地址組成,網(wǎng)絡(luò)地址的最高位必須是“0”,即第一段數(shù)字范圍為1~127。每個(gè)A類地址理論上可連接16777214<256*256*256-2>;臺(tái)主機(jī)(-2是因?yàn)橹鳈C(jī)中要用去一個(gè)網(wǎng)絡(luò)號(hào)和一個(gè)廣播號(hào)),Internet有126個(gè)可用的A類地址。A類地址適用于有大量主機(jī)的

88、大型網(wǎng)絡(luò)。 </p><p><b>  (b) B類地址 </b></p><p>  B類地址的表示范圍為:128.0.0.1~191.255.255.255,默認(rèn)網(wǎng)絡(luò)屏蔽為:255.255.0.0;B類地址分配給一般的中型網(wǎng)絡(luò)。B類網(wǎng)絡(luò)用第一、二組數(shù)字表示網(wǎng)絡(luò)的地址,后面兩組數(shù)字代表網(wǎng)絡(luò)上的主機(jī)地址。 </p><p>  169.254

89、.0.0到169.254.255.255是保留地址。如果你的IP地址是自動(dòng)獲取IP地址,而你在網(wǎng)絡(luò)上又沒有找到可用的DHCP服務(wù)器,這時(shí)你將會(huì)從169.254.0.0到169.254.255.255中臨時(shí)獲得一個(gè)IP地址。 </p><p>  一個(gè)B類IP地址由2個(gè)字節(jié)的網(wǎng)絡(luò)地址和2個(gè)字節(jié)的主機(jī)地址組成,網(wǎng)絡(luò)地址的最高位必須是“10”,即第一段數(shù)字范圍為128~191。每個(gè)B類地址可連接65534(2^16-2

90、,因?yàn)橹鳈C(jī)號(hào)的各位不能同時(shí)為0,1)臺(tái)主機(jī),Internet有16383(2^14-1)個(gè)B類地址(因?yàn)锽類網(wǎng)絡(luò)地址128.0.0.0是不指派的,而可以指派的最小地址為128.1.0.0[COME06])。 </p><p><b>  (c) C類地址 </b></p><p>  C類地址的表示范圍為:192.0.0.1~223.255.255.255,默認(rèn)網(wǎng)絡(luò)屏

91、蔽為:255.255.255.0;C類地址分配給小型網(wǎng)絡(luò),如一般的局域網(wǎng),它可連接的主機(jī)數(shù)量是最少的,采用把所屬的用戶分為若干的網(wǎng)段進(jìn)行管理。C類網(wǎng)絡(luò)用前三組數(shù)字表示網(wǎng)絡(luò)的地址,最后一組數(shù)字作為網(wǎng)絡(luò)上的主機(jī)地址。 </p><p>  一個(gè)C類地址是由3個(gè)字節(jié)的網(wǎng)絡(luò)地址和1個(gè)字節(jié)的主機(jī)地址組成,網(wǎng)絡(luò)地址的最高位必須是“110”,即第一段數(shù)字范圍為192~223。每個(gè)C類地址可連接254臺(tái)主機(jī),Internet有2

92、097152個(gè)C類地址段(32*256*256),有532676608個(gè)地址(32*256*256*254)。 </p><p>  RFC 1918留出了3塊IP地址空間(1個(gè)A類地址段,16個(gè)B類地址段,256個(gè)C類地址段)作為私有的內(nèi)部使用的地址。在這個(gè)范圍內(nèi)的IP地址不能被路由到Internet骨干網(wǎng)上;Internet路由器將丟棄該私有地址。 </p><p>  IP地址類別 

93、RFC 1918內(nèi)部地址范圍 </p><p>  A類 10.0.0.0到10.255.255.255 </p><p>  B類 172.16.0.0到172.31.255.255 </p><p>  C類 192.168.0.0到192.168.255.255 </p><p>  使用私有地址將網(wǎng)絡(luò)連至Internet,需要將私有地

94、址轉(zhuǎn)換為公有地址。這個(gè)轉(zhuǎn)換過程稱為網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation,NAT),通常使用路由器來執(zhí)行NAT轉(zhuǎn)換。 </p><p>  實(shí)際上,還存在著D類地址和E類地址。但這兩類地址用途比較特殊,在這里只是簡(jiǎn)單介紹一下: </p><p>  D類地址不分網(wǎng)絡(luò)地址和主機(jī)地址,它的第1個(gè)字節(jié)的前四位固定為1110。D類地址范圍:224.0.0.1到239.

95、255.255.254。D類地址用于多點(diǎn)播送。D類地址稱為廣播地址,供特殊協(xié)議向選定的節(jié)點(diǎn)發(fā)送信息時(shí)用。 </p><p>  E類地址保留給將來使用。 </p><p>  連接到Internet上的每臺(tái)計(jì)算機(jī),不論其IP地址屬于哪類都與網(wǎng)絡(luò)中的其它計(jì)算機(jī)處于平等地位,因?yàn)橹挥蠭P地址才是區(qū)別計(jì)算機(jī)的唯一標(biāo)識(shí)。所以,以上IP地址的分類只適用于網(wǎng)絡(luò)分類。 </p><p

96、>  在Internet中,一臺(tái)計(jì)算機(jī)可以有一個(gè)或多個(gè)IP地址,就像一個(gè)人可以有多個(gè)通信地址一樣,但兩臺(tái)或多臺(tái)計(jì)算機(jī)卻不能共享一個(gè)IP地址。如果有兩臺(tái)計(jì)算機(jī)的IP地址相同,則會(huì)引起異?,F(xiàn)象,無論哪臺(tái)計(jì)算機(jī)都將無法正常工作。 </p><p>  順便提一下幾類特殊的IP地址: </p><p>  (a) 廣播地址目的端為給定網(wǎng)絡(luò)上的所有主機(jī),一般主機(jī)段為全1 </p>

97、<p>  (b) 單播地址目的端為指定網(wǎng)絡(luò)上的單個(gè)主機(jī)地址 </p><p>  (c) 組播地址目的端為同一組內(nèi)的所有主機(jī)地址 </p><p>  (d) 環(huán)回地址127.0.0.1在環(huán)回測(cè)試和廣播測(cè)試時(shí)會(huì)使用 </p><p>  3.2.8 網(wǎng)關(guān)地址</p><p>  若要使兩個(gè)完全不同的網(wǎng)絡(luò)(異構(gòu)網(wǎng))連接在一起,一般

98、使用網(wǎng)關(guān),在Internet中兩個(gè)網(wǎng)絡(luò)也要通過一臺(tái)稱為網(wǎng)關(guān)的計(jì)算機(jī)實(shí)現(xiàn)互聯(lián)。這臺(tái)計(jì)算機(jī)能根據(jù)用戶通信目標(biāo)計(jì)算機(jī)的IP地址,決定是否將用戶發(fā)出的信息送出本地網(wǎng)絡(luò),同時(shí),它還將外界發(fā)送給屬于本地網(wǎng)絡(luò)計(jì)算機(jī)的信息接收過來,它是一個(gè)網(wǎng)絡(luò)與另一個(gè)網(wǎng)絡(luò)相聯(lián)的通道。為了使TCP/IP協(xié)議能夠?qū)ぶ罚撏ǖ辣毁x予一個(gè)IP地址,這個(gè)IP地址稱為網(wǎng)關(guān)地址。 </p><p><b>  注意事項(xiàng)</b></

99、p><p>  內(nèi)部地址和外部地址在局域網(wǎng)的IP地址分配中,并沒有區(qū)別,都可以使用。 </p><p>  在局域網(wǎng)的IP地址分配中,子網(wǎng)屏蔽的“1”部分只要和對(duì)應(yīng)的IP地址分類規(guī)定的前幾個(gè)二進(jìn)制數(shù)一致即可。 </p><p><b>  (2) 子網(wǎng)劃分</b></p><p>  若公司不上Internet,那一定不會(huì)煩

100、惱IP地址的問題,因?yàn)榭梢匀我馐褂盟械腎P地址,不管是A類或是B類,這個(gè)時(shí)候不會(huì)想到要用子網(wǎng),但若是上Internet那IP地址便彌足珍貴了,目前全球一陣Internet熱,IP地址已經(jīng)愈來愈少了,而所申請(qǐng)的IP地址目前也趨飽和,而且只有經(jīng)申請(qǐng)的IP地址能在Internet使用,但對(duì)某些公司只能申請(qǐng)到一個(gè)C類的IP地址,但又有多個(gè)點(diǎn)需要使用,那這時(shí)便需要使用到子網(wǎng),這就需要考慮子網(wǎng)的劃分,下面簡(jiǎn)介子網(wǎng)的原理及如何規(guī)劃。 </p&

101、gt;<p><b>  (3)子網(wǎng)掩碼</b></p><p>  設(shè)定任何網(wǎng)絡(luò)上的任何設(shè)備不管是主機(jī)、個(gè)人電腦、路由器等皆需要設(shè)定IP地址,而跟隨著IP地址的是所謂的子網(wǎng)掩碼(NetMask,Subnet Mask),這個(gè)子網(wǎng)掩碼主要的目的是由IP地址中也能獲得網(wǎng)絡(luò)編碼,也就是說IP地址和子網(wǎng)掩碼合作而得到網(wǎng)絡(luò)編碼,如下所示: </p><p>&l

102、t;b>  IP地址 </b></p><p>  192.10.10.6 11000000.00001010.00001010.00000110 </p><p><b>  子網(wǎng)掩碼 </b></p><p>  255.255.255.0 11111111.11111111.11111111.00000000 </

103、p><p><b>  AND </b></p><p>  Network Number </p><p>  192.10.10.0 11000000.00001010.00001010.00000000 </p><p>  子網(wǎng)掩碼有所謂的默認(rèn)值,如下所示 </p><p>  類 IP地址范

104、圍 子網(wǎng)掩碼 </p><p>  A 1.0.0.0-126.255.255.255 255.0.0.0 </p><p>  B 128.0.0.0-191.255.255.255 255.255.0.0 </p><p>  C 192.0.0.0-223.255.255.255 255.255.255.0 </p><p>  在預(yù)設(shè)

105、的子網(wǎng)掩碼(Net Mask)都只有255的值,在談到子網(wǎng)掩碼(Subnet Mask)時(shí)這個(gè)值便不一定是255了。在完整一組C類地址中如203.67.10.0-203.67.10.255 子網(wǎng)掩碼255.255.255.0,203.67.10.0稱之網(wǎng)絡(luò)編碼(Network Number,將IP 地址和子網(wǎng)掩碼作和),而203.67.10.255是廣播的IP地址,所以這兩者皆不能使用,實(shí)際只能使用203.67.10.1--203.67

106、.10.254等254個(gè)IP地址,這是以255.255.255.0作子網(wǎng)掩碼的結(jié)果,而所謂Subnet Msk尚可將整組C類地址分成數(shù)組網(wǎng)絡(luò)編碼,這要在子網(wǎng)掩碼上作手腳,若是要將整組C類地址分成2個(gè)網(wǎng)絡(luò)編碼那子網(wǎng)掩碼設(shè)定為255.255.255.128,若是要將整組C類分成8組網(wǎng)絡(luò)編碼則子網(wǎng)掩碼要為255.255.255.224,這是怎么來的,由以上知道網(wǎng)絡(luò)編碼是由IP地址和子網(wǎng)掩碼作AND而來的,而且將子網(wǎng)掩碼以二進(jìn)制表示法知道是1的

107、會(huì)保留,而為0的去掉 </p><p>  192.10.10.193--11000000.00001010.00001010.11000001 </p><p>  255.255.255.0--11111111.11111111.11111111.00000000 </p><p>  192.10.10.0--11000000.00001010.0000101

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論