版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢 業(yè) 設(shè) 計</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> 隨著計算機網(wǎng)絡(luò)技術(shù)的迅速發(fā)展,網(wǎng)絡(luò)的安全問題也顯得越
2、發(fā)重要。網(wǎng)絡(luò)監(jiān)聽技術(shù)是系統(tǒng)安全領(lǐng)域內(nèi)一個非常敏感的話題,也是一項重要的技術(shù),具有很強的現(xiàn)實應(yīng)用背景。網(wǎng)絡(luò)監(jiān)聽是網(wǎng)絡(luò)監(jiān)測、負(fù)載分析等管理活動常用的方法,同時也是黑客非法竊取信息的手段。網(wǎng)絡(luò)監(jiān)聽工具通過網(wǎng)絡(luò)傳輸介質(zhì)的共享特性實現(xiàn)抓包,獲得當(dāng)前網(wǎng)絡(luò)的使用狀況,為網(wǎng)絡(luò)管理員對網(wǎng)絡(luò)中的信息進(jìn)行實時的監(jiān)測、分析提供一個合適的工具;同時也讓黑客截獲本網(wǎng)段的一些敏感信息,威脅網(wǎng)絡(luò)安全。</p><p> 數(shù)據(jù)包捕獲技術(shù)是設(shè)計網(wǎng)
3、絡(luò)分析軟件的基礎(chǔ),而WinPcap則是Windows系統(tǒng)中實現(xiàn)的一個優(yōu)秀的包捕獲架構(gòu)。文中結(jié)合該軟件包的結(jié)構(gòu)與功能對包捕獲原理進(jìn)行了詳細(xì)的分析,并介紹了其在網(wǎng)絡(luò)安全監(jiān)控系統(tǒng)中的應(yīng)用。該系統(tǒng)的基本原理是通過調(diào)用WinPcap庫捕獲本地網(wǎng)絡(luò)上的所有數(shù)據(jù)包,然后對數(shù)據(jù)包進(jìn)行協(xié)議分析,從而可以實時地監(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簡介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è)計步驟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é)議的分析與實現(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è)計及實現(xiàn)24</p><p> 4.1 局域網(wǎng)監(jiān)聽系統(tǒng)的設(shè)計24</p><p> 4.1.1 功能設(shè)計24</p><p> 4.1.2 模塊設(shè)計24</p><p> 4.2 局域網(wǎng)監(jiān)聽系統(tǒng)程序的實現(xiàn)27</p><p
16、> 4.2.1 建立Socket27</p><p> 4.2.2 綁定本機IP地址27</p><p> 4.2.3 設(shè)置為混雜模式27</p><p> 4.2.4 截獲數(shù)據(jù)包:27</p><p> 4.3 系統(tǒng)程序運行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ā)展,整個世界經(jīng)濟正在迅速地融為一體,而整個國家猶如一部巨大的網(wǎng)絡(luò)機器。計算機網(wǎng)絡(luò)已經(jīng)成為國
18、家的經(jīng)濟基礎(chǔ)和命脈。伴隨著網(wǎng)絡(luò)的發(fā)展,也產(chǎn)生了各種各樣的問題,其中安全問題尤為突出。了解網(wǎng)絡(luò)面臨的各種威脅,防范和消除這些威脅,實現(xiàn)真正的網(wǎng)絡(luò)安全已成了網(wǎng)絡(luò)發(fā)展中最重要的事情。遺憾的是,當(dāng)網(wǎng)絡(luò)給人們提供便利的同時,網(wǎng)絡(luò)技術(shù)的發(fā)展方向似乎都趨向于網(wǎng)絡(luò)的便利性和實用性,因而留下了太多的技術(shù)、管理和基礎(chǔ)設(shè)施的漏洞。正是由于網(wǎng)絡(luò)本身存在的這些缺陷和漏洞,網(wǎng)絡(luò)在進(jìn)行信息和數(shù)據(jù)傳送時,可能會因為網(wǎng)絡(luò)傳輸介質(zhì)帶寬的限制而出現(xiàn)數(shù)據(jù)沖突,傳輸幀中的地址不
19、匹配或是因為網(wǎng)絡(luò)硬件設(shè)備的錯誤,導(dǎo)致傳輸?shù)男畔⒊鲥e或丟失;一些網(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)行分析,以便找出錯誤的原因,解決網(wǎng)絡(luò)的故障。一些網(wǎng)絡(luò)管理人員也利用截取網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)監(jiān)聽網(wǎng)絡(luò)數(shù)據(jù)
20、流量,來實現(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)管理員用的,主要是對網(wǎng)絡(luò)的狀態(tài)、信息流動和信息內(nèi)容等進(jìn)行監(jiān)視,相應(yīng)的工具被稱為網(wǎng)絡(luò)分析儀.。在PPDR模型以及幾乎所有的IDS(入侵檢測系統(tǒng))中,最基本的要求就是能夠?qū)崿F(xiàn)網(wǎng)絡(luò)監(jiān)聽與過濾,所有的部分(安全策略、防護(hù)、檢測、響應(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> 世界上最早的竊聽器是中國在2000 年前發(fā)明的。戰(zhàn)國時代的《墨子》一 書就記載了一種 “聽甕”。這種“聽甕”是用陶制成的,大肚小口,把它埋在地下,并在甕口蒙上一層薄薄的皮革,人伏在上面就可以傾聽到城外方圓數(shù)十里的動靜。到了唐代,又出現(xiàn)了
22、一種 “地聽”器,能清晰地聽到30 里外的馬蹄聲。自從1876年英國青年亞·貝爾發(fā)明有線電話以后,這些使用了幾千年的原始竊聽器,才漸漸退隱出了間諜舞臺。由于互聯(lián)網(wǎng)的發(fā)展,整個世界經(jīng)濟正在迅速融為一體,而整個國家猶如一部巨大的網(wǎng)絡(luò)機器,計算機網(wǎng)絡(luò)已經(jīng)成為國家的經(jīng)濟基礎(chǔ)和命脈。伴隨著網(wǎng)絡(luò)的發(fā)展,也產(chǎn)生了各種各樣的問題,其中安全問題尤為突出。了解網(wǎng)絡(luò)面臨的各種威脅,防范和消除這些威脅,實現(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)知識、c++的網(wǎng)絡(luò)編程技術(shù)實現(xiàn)網(wǎng)絡(luò)監(jiān)聽系統(tǒng),旨在培養(yǎng)理論與實踐相結(jié)合解決信息安全問題的能力,培養(yǎng)自學(xué)能力以及調(diào)查研究問題、分析問題、解決問題的能力。網(wǎng)絡(luò)監(jiān)聽是數(shù)據(jù)庫安全審計的最佳手段,長期以來,在保障業(yè)務(wù)連續(xù)性和性能的前提下,最大限度的保障數(shù)據(jù)庫安全一直是數(shù)據(jù)庫管理人員、安全管理
24、人員孜孜不倦追求的安全目標(biāo)。 </p><p> 數(shù)據(jù)庫系統(tǒng)作為三大基礎(chǔ)軟件之一并不是在計算機誕生的時候就同時產(chǎn)生的,隨著信息技術(shù)的發(fā)展,傳統(tǒng)文件系統(tǒng)已經(jīng)不能滿足人們的需要,1961年,美國通用電氣公司成功開發(fā)了世界上第一個數(shù)據(jù)庫系統(tǒng)IDS(Integrated Data Store),奠定了數(shù)據(jù)庫的基礎(chǔ)。經(jīng)過幾十年的發(fā)展和實際應(yīng)用,技術(shù)越來越成熟和完善,代表產(chǎn)品有甲骨文公司的Oracle、IBM公司的DB2、
25、微軟公司的MS-SQL Server等等。 </p><p> 如今,數(shù)據(jù)庫系統(tǒng)在企業(yè)管理等領(lǐng)域已經(jīng)具有非常廣泛的應(yīng)用,如、賬號管理、訪問控制、安全審計、防病毒、評估加固等多個方面,常見的安全產(chǎn)品如UTM、入侵檢測、漏洞掃描等產(chǎn)品為保障數(shù)據(jù)庫系統(tǒng)的正常運行起到了重要作用。但是,通過對諸多安全事件的處理、分析,調(diào)查人員發(fā)現(xiàn)企業(yè)內(nèi)部人員造成的違規(guī)事件占了較大比例。 </p><p> 究其
26、原因,主要是因為這些違規(guī)行為與傳統(tǒng)的攻擊行為不同,對內(nèi)部的違規(guī)行為無法利用攻擊機理和漏洞機理進(jìn)行分析,這就導(dǎo)致了那些抵御外部入侵的產(chǎn)品無用武之地。因此,要防止內(nèi)部的違規(guī)行為,就需要在內(nèi)部建設(shè)審計系統(tǒng),通過對操作行為的分析,實現(xiàn)對違規(guī)行為的及時響應(yīng)和追溯。</p><p> 網(wǎng)絡(luò)監(jiān)聽技術(shù)是用來監(jiān)視網(wǎng)絡(luò)的狀態(tài)、數(shù)據(jù)流動情況以及網(wǎng)上傳輸?shù)拿魑男畔⒌鹊男畔⒓夹g(shù),局域網(wǎng)大部分使用以太網(wǎng)協(xié)議,其工作方式是:將要發(fā)送的數(shù)據(jù)包
27、發(fā)往網(wǎng)中的所有主機,包中包含著應(yīng)該接受數(shù)據(jù)包的主機的IP地址,只有與數(shù)據(jù)包目標(biāo)地址一致的那臺主機才能接受。但是當(dāng)主機工作在監(jiān)聽模式下,無論數(shù)據(jù)包中的目標(biāo)地址是什么,主機都能接受。研究網(wǎng)絡(luò)監(jiān)聽系統(tǒng)對于網(wǎng)絡(luò)信息監(jiān)管與信息安全有著重要意義。</p><p><b> 1.3 研究現(xiàn)狀</b></p><p> 當(dāng)今計算機網(wǎng)絡(luò)及通訊技術(shù)的廣泛應(yīng)用,促使Internet的迅
28、速發(fā)展,給我們帶來了巨大的社會和經(jīng)濟效益。在這種情況下,計算機網(wǎng)絡(luò)的設(shè)計,維護(hù)的難度日益增加,因此人們迫切需要能夠分析,診斷與測試網(wǎng)絡(luò)功能的工具軟件。網(wǎng)絡(luò)監(jiān)聽工具在這種需求下孕育而生。它對網(wǎng)絡(luò)上的所有數(shù)據(jù)進(jìn)行捕獲,一方面對數(shù)據(jù)包進(jìn)行檢查分析,以便找出我們所關(guān)心的網(wǎng)絡(luò)中潛在的問題,對網(wǎng)絡(luò)故障做出精確定位,幫助管理員解決網(wǎng)絡(luò)的故障和性能問題;另一方面它又是黑客竊聽網(wǎng)絡(luò)的工具,黑客利用數(shù)據(jù)包中攜帶的數(shù)據(jù)直接或間接獲取的機密信息。所以實現(xiàn)網(wǎng)絡(luò)監(jiān)
29、聽技術(shù)具有重要的現(xiàn)實和理論意義。網(wǎng)絡(luò)正以前所未有的速度進(jìn)入人類社會,影響和改變著人們的生活方式,思想觀念,對政治、經(jīng)濟軍事等方面都產(chǎn)生了重大的影響,更是本世紀(jì)知識經(jīng)濟增長的基礎(chǔ)和保障,因此保證網(wǎng)絡(luò)系統(tǒng)穩(wěn)定安全的運行,以促進(jìn)實現(xiàn)質(zhì)量的提高,從而保障整個Internet的健康發(fā)展,有著重要的現(xiàn)實意義。局域網(wǎng)中的網(wǎng)絡(luò)數(shù)據(jù)監(jiān)聽,是實現(xiàn)網(wǎng)絡(luò)安全的必要技術(shù),它的研究和發(fā)展有利于網(wǎng)絡(luò)管理、網(wǎng)絡(luò)故障排除以及網(wǎng)絡(luò)入侵檢測系統(tǒng)的進(jìn)一步發(fā)展。因而它未來的發(fā)展
30、將在局域網(wǎng)中發(fā)揮著舉足輕重的作用,對于維護(hù)整個網(wǎng)絡(luò)的安全和性</p><p> 從早期的計算機網(wǎng)絡(luò)出現(xiàn),1969 年美國國防部高級研究計劃局建成的ARPANET 實驗網(wǎng)開始,計算機網(wǎng)絡(luò)在各發(fā)達(dá)國家迅速蓬勃發(fā)展,到今天復(fù)雜的Intranet 和Internet 網(wǎng)絡(luò),經(jīng)歷了不同的時期。伴隨著網(wǎng)絡(luò)的出現(xiàn),對網(wǎng)絡(luò)數(shù)據(jù)截取的工具,像sniffer 也就隨之而產(chǎn)生了。到目前為止,可以進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)監(jiān)聽的工具從軟件到硬件,從
31、有線網(wǎng)到無線網(wǎng),可以說是應(yīng)有盡有。有軟件實現(xiàn)的便攜式終端,也有硬件實現(xiàn)的網(wǎng)絡(luò)分析儀。下面分別介紹。</p><p> 1.3.1 軟件數(shù)據(jù)截取工具介紹</p><p> 目前,針對各種不同版本的操作系統(tǒng)都有不同版本的數(shù)據(jù)監(jiān)聽軟件,如 MS-DOS平臺上Gobblor、Window9x 平臺的NetXray、Win2000/xp 平臺下得Sniffer Pro、Novell平臺的EthL
32、oad 以及UNIX 平臺Netman 和Sunsniff 等等。</p><p> 1.3.2 硬件數(shù)據(jù)截取工具介紹</p><p> 以上介紹的均是由單純的軟件實現(xiàn)的 sniffer,其功能相對硬件來說還是較為簡單的。下面將介紹相應(yīng)的由硬件實現(xiàn)的sniffer。硬件的sniffer 又稱為網(wǎng)絡(luò)分析儀(協(xié)議分析儀)。目前的網(wǎng)絡(luò)分析儀的技術(shù)已經(jīng)非常的成熟,產(chǎn)品也非常的多樣。各種產(chǎn)品的功
33、能會略有差異,有的只能針對一種協(xié)議,有的可以分析多種協(xié)議。一般的情況下,大型的企業(yè)網(wǎng)絡(luò)都會使用軟硬件結(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、完整定義是:利用計算機的網(wǎng)絡(luò)接口截獲目的地為其它計算機的數(shù)據(jù)報文的一種技術(shù)。網(wǎng)絡(luò)監(jiān)聽器( sniffer )原來是提供給網(wǎng)絡(luò)管理員的一類管理工具,使用這組工具可以監(jiān)視網(wǎng)絡(luò)的狀態(tài)、數(shù)據(jù)流動情況以及網(wǎng)絡(luò)上傳出的消息并利用這些消息來排除網(wǎng)絡(luò)故障。不幸的是由于網(wǎng)絡(luò)監(jiān)聽能有效的截獲網(wǎng)絡(luò)上的數(shù)據(jù),它也成為了黑客使用最多的法。黑客運行監(jiān)聽工具暗中監(jiān)視他人的網(wǎng)絡(luò)狀況、竊取明文傳出的密碼和各種數(shù)據(jù)。網(wǎng)絡(luò)監(jiān)聽不僅在共享式局域網(wǎng)中實現(xiàn),而且還可以在交換式局域
35、網(wǎng)中實現(xiàn)。</p><p> 2.2 網(wǎng)絡(luò)監(jiān)聽的原理</p><p> Ethernet(以太網(wǎng),它是由施樂公司發(fā)明的一種比較流行的局域網(wǎng)技術(shù),它包含一條所有計算機都連接到其上的一條電纜,每臺計算機需要一種叫接口板的硬件才能連接到以太網(wǎng))協(xié)議的工作方式是將要發(fā)送的數(shù)據(jù)包發(fā)往連接在一起的所有主機。在包頭中包括有應(yīng)該接收數(shù)據(jù)包的主機的正確地址,因為只有與數(shù)據(jù)包中目標(biāo)地址一致的那臺主機才能接
36、收到信息包,但是當(dāng)主機工作在監(jiān)聽模式下的話不管數(shù)據(jù)包中的目標(biāo)物理地址是什么,主機都將可以接收到。許多局域網(wǎng)內(nèi)有十幾臺甚至上百臺主機是通過一個電纜、一個集線器連接在一起的,在協(xié)議的高層或者用戶來看,當(dāng)同一網(wǎng)絡(luò)中的兩臺主機通信的時候,源主機將寫有目的的主機地址的數(shù)據(jù)包直接發(fā)向目的主機,或者當(dāng)網(wǎng)絡(luò)中的一臺主機同外界的主機通信時,源主機將寫有目的的主機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ò)接口不會識別IP地址的。在網(wǎng)絡(luò)接口由IP層來的帶有IP地址的數(shù)據(jù)包又增加了一部分以太禎的禎頭的信息。在禎頭中,有兩個域分別為只有網(wǎng)絡(luò)接口才能識別的源主機和目的主機的物理地址這是一個</p><p> Ethernet中填寫了物理地址的禎從網(wǎng)絡(luò)接口中,也就是從網(wǎng)卡中發(fā)送出去傳送到物理的線路上。如果局域網(wǎng)是由一條粗網(wǎng)或細(xì)網(wǎng)連接成的,那么數(shù)字信號在電纜上
38、傳輸信號就能夠到達(dá)線路上的每一臺主機。再當(dāng)使用集線器的時候,發(fā)送出去的信號到達(dá)集線器,由集線器再發(fā)向連接在集線器上的每一條線路。</p><p> 當(dāng)連接在同一條電纜或集線器上的主機被邏輯地分為幾個子網(wǎng)的時候,那么要是有一臺主機處于監(jiān)聽模式,它還將可以接收到發(fā)向與自己不在同一個子網(wǎng)(使用了不同的掩碼、IP地址和網(wǎng)關(guān))的主機的數(shù)據(jù)包,在同一個物理信道上傳輸?shù)乃行畔⒍伎梢员唤邮盏健?</p><
39、;p> 2.3 WinPcap的原理</p><p> 2.3.1 winpcap簡介 </p><p> WinPcap [2]是由伯克利分組捕獲庫派生而來的分組捕獲庫,它是在Windows 操作平臺上來實現(xiàn)對底層包的截取過濾。WinPcap 為用戶級的數(shù)據(jù)包提供了Windows 下的一個平臺。WinPcap 是 B
40、PF 模型和 Libpcap 函數(shù)庫在 Windows 平臺下網(wǎng)絡(luò)數(shù)據(jù)包捕獲和網(wǎng)絡(luò)狀態(tài)分析的一種體系結(jié)構(gòu),這個體系結(jié)構(gòu)是由一個核心的包過濾驅(qū)動程序,一個底層的動態(tài)連接庫 Packet.dll 和一個高層的獨立于系統(tǒng)的函數(shù)庫 Libpcap 組成。底層的包捕獲驅(qū)動程序?qū)嶋H為一個協(xié)議網(wǎng)絡(luò)驅(qū)動程序,通過對 NDIS 中函數(shù)的調(diào)用為
41、160;Win95、Win98、WinNT、和 Win2000 提供一類似于 UNIX 系統(tǒng)下 Berkeley Packet Filter 的捕獲和發(fā)送原始數(shù)據(jù)包的能力。Packet.dll 是對這個 BPF 驅(qū)動程序進(jìn)行訪問的 API 接口,同時它有一套符合 Libpcap 接口(UN
42、IX 下的捕獲函數(shù)庫)的函數(shù)庫。 </p><p> WinPcap 包括三個部分:第一個模塊NPF(Netgroup Packet Filter),是一個虛擬設(shè)備驅(qū)動程序文件。它的功能是過濾數(shù)據(jù)包,并把這些數(shù)據(jù)包原封不動地傳給用戶態(tài)模塊,這個過程中包括了一些操作系統(tǒng)特有的代碼。第二個模塊packet.dll為win32平臺提供了一個公共的接口。不同版本的Windows系
43、統(tǒng)都有自己的內(nèi)核模塊和用戶層模塊。Packet.dll用于解決這些不同。調(diào)用Packet.dll的程序可以運行在不同版本的Windows平臺上,而無需重新編譯。 第三個模塊 Wpcap.dll是不依賴于操作系統(tǒng)的。它提供了更加高層、抽象的函數(shù)。 </p><p> packet.dll和Wpcap.dll:packet.dll直接映射了內(nèi)核的調(diào)用。 Wpcap.dll提
44、供了更加友好、功能更加強大的函數(shù)調(diào)用。WinPcap的優(yōu)勢提供了一套標(biāo)準(zhǔn)的抓包接口,與libpcap兼容,可使得原來許多UNIX平臺下的網(wǎng)絡(luò)分析工具快速移植過來便于開發(fā)各種網(wǎng)絡(luò)分析工具,充分考慮了各種性能和效率的優(yōu)化,包括對于NPF內(nèi)核層次上的過濾器支持,支持內(nèi)核態(tài)的統(tǒng)計模式,提供了發(fā)送數(shù)據(jù)包的能力。</p><p> WinPcap的出現(xiàn)具有一定的必然性。由于Window操作系統(tǒng)沒有提供可以直接捕獲數(shù)據(jù)包的A
45、PI,盡管提供了一些內(nèi)核模塊,但存在著嚴(yán)重的局限性。例如:IP Filter Driver只運行在 Windows2000 下,且僅支持IP協(xié)議。由于這些局限,使得Windows平臺下的網(wǎng)絡(luò)安全和分析工具無論在數(shù)量上,還是質(zhì)量上都與Unix下有很大的差距。微軟研究院贊助了意大利一家開發(fā)機構(gòu),為Win32平臺底層網(wǎng)絡(luò)分析開發(fā)了一套有力而且易擴展的體系結(jié)構(gòu)——WinPcap,它可以將Unix支持的數(shù)據(jù)包捕獲功能加到Win32系統(tǒng)中,從而彌補
46、了Windows操作系統(tǒng)這方面的欠缺。而且WinPcap完全開放,提供源代碼,同時它提供了與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ū)動,其基本體系結(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中,它分為兩個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為空的時候,store buffer 變成 hold buffer,而之前的hold buffer變成store buffer。這樣使得用戶的程序和捕獲數(shù)據(jù)包的驅(qū)動完全分開。User-level buffer存儲從核心層進(jìn)來的數(shù)據(jù)包,它可防止用戶直接訪問內(nèi)核管理的內(nèi)存。</p><p> 從程序員的角度來看,Libpcap是主要的部件,它隱藏了應(yīng)用程序和內(nèi)核之間的交互。它為捕獲數(shù)據(jù)包的過程提
50、供了強大而抽象的接口。通過它,可以使用用戶定義的filter、管理用戶層的buffer等。但是Libpcap并不能夠發(fā)送數(shù)據(jù)包或者統(tǒng)計數(shù)據(jù)包。</p><p> (2) WinPcap的體系結(jié)構(gòu)</p><p> WinPcap保留了BSD Capturing Component最重要的模塊:一個Filter Machine、兩種Burfer以及提供給用戶的庫。但是,WinPcap與B
51、SD捕獲數(shù)據(jù)包有一些本質(zhì)的區(qū)別:filtering過程開始于用戶層定義的一個Filter,例如port=21,WinPcap把它編譯成一個偽指令,偽指令被傳到核心層,核心層通過一個虛擬機開始抓取所有的數(shù)據(jù)包,并通過偽指令來判斷是否保留數(shù)據(jù)包。虛擬機的效率成為獲得好的效率的關(guān)鍵。另外,它們在結(jié)構(gòu)上也有重要的區(qū)別:Netgroup Packet Filter采用循環(huán)buffer,這樣使得buffer空間可以得到充分利用,大大提高了效率。Wi
52、npcap(windows packet capture)是微軟提供的一個在Windows 平臺下訪問網(wǎng)絡(luò)的編程接口。微軟開發(fā)winpcap 這個項目的目的在于為win32 應(yīng)用程序提供更開放的訪問網(wǎng)絡(luò)底層的能力。它包括三個部分:參見圖2-2。</p><p> 圖 2-2 Winpcap 結(jié)構(gòu)圖</p><p> 第一個模塊 NPF(Netgroup Packet Filter),是
53、一個虛擬設(shè)備驅(qū)動程序文件。它的功能是過濾數(shù)據(jù)包,并把這些數(shù)據(jù)包原封不動地傳給用戶態(tài)模塊,這個過程中包括了一些操作系統(tǒng)特有的代碼。</p><p> 第二個模塊 packet.dll 為win32 平臺提供了一個公共的接口。不同版本的Windows系統(tǒng)都有自己的內(nèi)核模塊和用戶層模塊。Packet.dll 可以解決這些差異。調(diào)用Packet.dll的程序可以運行在不同版本的Windows 平臺上,而無需重新編譯。&
54、lt;/p><p> 第三個模塊 Wpcap.dll 是不依賴于操作系統(tǒng)的。它提供了更加高層、抽象的函數(shù)。Winpcap 的實質(zhì)是用了我們后面說的NDIS,將自己注冊為一個協(xié)議處理驅(qū)動來實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)包的截獲。</p><p> Winpcap 主要可以實現(xiàn):</p><p> (a) 捕獲原始數(shù)據(jù)報,包括在共享網(wǎng)絡(luò)上各主機發(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)計信息;</p><p> WinPcap 的優(yōu)點在于:1.獨立于主機協(xié)議來發(fā)送和接收原始數(shù)據(jù)包,并且提供了一套標(biāo)準(zhǔn)的抓包接口,與libpc
56、ap 兼容,可使得原來許多UNIX 平臺下的網(wǎng)絡(luò)分析工具可以快速移植,便于開發(fā)各種網(wǎng)絡(luò)分析工具。2.充分考慮了各種性能和效率的優(yōu)化,包括對于NPF 內(nèi)核層次上的過濾器支持。 3.支持內(nèi)核態(tài)的統(tǒng)計模式,提供了發(fā)送數(shù)據(jù)包的能力。Winpcap 的缺點在于:不能阻塞、過濾或控制其他應(yīng)用程序?qū)?shù)據(jù)報收發(fā),它僅僅只是監(jiān)聽共享網(wǎng)絡(luò)上傳送的數(shù)據(jù)。因此,它不能用于QoS 調(diào)度程序或個人防火墻。</p><p> 2.3.3 W
57、inPcap的功能與新特性</p><p> WinPcap除了其強大的捕獲數(shù)據(jù)包的功能以外,相比BSD Capturing Component還增加了發(fā)送數(shù)據(jù)包的功能:它是在Win32平臺上第一個提供標(biāo)準(zhǔn)的一套發(fā)送數(shù)據(jù)包函數(shù)的庫。需要注意的是,WinPcap不具備產(chǎn)生數(shù)據(jù)包的能力,發(fā)送的數(shù)據(jù)包需要通過手工或者其它工具來構(gòu)造。而且WinPcap還實現(xiàn)了統(tǒng)計模式的工作方式:它不需要把數(shù)據(jù)包傳送到應(yīng)用程序,避免了大
58、量的數(shù)據(jù)包拷貝操作。當(dāng)數(shù)據(jù)包還在NIC driver的存儲器中時,統(tǒng)計模式就開始起作用,然后數(shù)據(jù)包被丟棄。統(tǒng)計模式是一種非常高效的、用來監(jiān)測網(wǎng)絡(luò)的方法,即使在高速的局域網(wǎng)等有大量數(shù)據(jù)包流動的網(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)時,由于采用以太網(wǎng)廣播信道爭用的方式,使得監(jiān)聽系統(tǒng)與正常通信的網(wǎng)絡(luò)能夠并聯(lián)連接,并可以捕獲任何一個在同一沖突域上傳輸?shù)臄?shù)據(jù)包。IEEE802.3 標(biāo)準(zhǔn)的以太網(wǎng)采用的是持續(xù) CSMA 的方式,正是由于以太網(wǎng)采用這種廣播信道爭用的方式,使得各個站點可以獲得其他站點發(fā)送的數(shù)據(jù)。運用這一原理使信息捕獲系統(tǒng)能夠攔截的我們所要的信息,這是捕獲數(shù)據(jù)包的物理基礎(chǔ)。</p><p>
60、 以太網(wǎng)是一種總線型的網(wǎng)絡(luò),從邏輯上來看是由一條總線和多個連接在總線上的站點所組成各個站點采用上面提到的 CSMA/CD 協(xié)議進(jìn)行信道的爭用和共享。每個站點(這里特指計算機通過的接口卡)網(wǎng)卡來實現(xiàn)這種功能。網(wǎng)卡主要的工作是完成對于總線當(dāng)前狀態(tài)的探測,確定是否進(jìn)行數(shù)據(jù)的傳送,判斷每個物理數(shù)據(jù)幀目的地是否為本站地址,如果不匹配,則說明不是發(fā)送到本站的而將它丟棄。如果是的話,接收該數(shù)據(jù)幀,進(jìn)行物理數(shù)據(jù)幀的 CRC 校驗,然后將數(shù)據(jù)幀提交給LL
61、C 子層?! 【W(wǎng)卡具有如下的幾種工作模式:</p><p> (a) 廣播模式(Broad Cast Model):它的物理地址(MAC)地址是 0Xffffff 的幀為廣播幀,工作在廣播模式的網(wǎng)卡接收廣播幀。</p><p> (b) 多播傳送(MultiCast Model):多播傳送地址作為目的物理地址的幀可以被組內(nèi)的其它主機同時接收,而組外主機卻接收不到。但是,如果將網(wǎng)卡設(shè)置
62、為多播傳送模式,它可以接收所有的多播傳送幀,而不論它是不是組內(nèi)成員。</p><p> (c) 直接模式(Direct Model):工作在直接模式下的網(wǎng)卡只接收目地址是自己 Mac地址的幀。</p><p> (d) 混雜模式(Promiscuous Model):工作在混雜模式下的網(wǎng)卡接收所有的流過網(wǎng)卡的幀,信包捕獲程序就是在這種模式下運行的。</p><p&g
63、t; 網(wǎng)卡的缺省工作模式包含廣播模式和直接模式,即它只接收廣播幀和發(fā)給自己的幀。如果采用混雜模式,一個站點的網(wǎng)卡將接受同一網(wǎng)絡(luò)內(nèi)所有站點所發(fā)送的數(shù)據(jù)包這樣就可以到達(dá)對于網(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及其特點是:</p><p> NDIS(Network Driver Interface Specification) 是 Microsoft 和 3Com 公司聯(lián)合制定的網(wǎng)絡(luò)驅(qū)動規(guī)范,并提供了大量的操作函數(shù)。它為上層的協(xié)議驅(qū)動提供服務(wù),屏蔽了下層各種網(wǎng)卡的差別。NDIS 向上支持多種網(wǎng)絡(luò)協(xié)議,比如 TCP/IP、NWLink IPX/SPX、NETBEUI 等,向下支持不同廠家生產(chǎn)的多種網(wǎng)卡。NDIS
65、 還支持多種工作模式,支持多處理器,提供一個完備的 NDIS 庫(Library)。但庫中所提供的各個函數(shù)都是工作在核心模式下的,用戶不宜直接操作,這就需要尋找另外的接口。</p><p> 2.3.6 利用winpcap進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)包的捕獲和過濾的設(shè)計步驟</p><p> (a) 打開網(wǎng)卡,并設(shè)為混雜模式。</p><p> (b) 回調(diào)函數(shù) Networ
66、k Tap 在得到監(jiān)聽命令后,從網(wǎng)絡(luò)設(shè)備驅(qū)動程序處收集數(shù)據(jù)包把監(jiān)聽到的數(shù)據(jù)包負(fù)責(zé)傳送給過濾程序。</p><p> (c) 當(dāng) Packet filter 監(jiān)聽到有數(shù)據(jù)包到達(dá)時,NDIS 中間驅(qū)動程序首先調(diào)用分組驅(qū)動程序,該程序?qū)?shù)據(jù)傳遞給每一個參與進(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> 計算機的網(wǎng)絡(luò)結(jié)構(gòu)可以從網(wǎng)絡(luò)體系結(jié)構(gòu),網(wǎng)絡(luò)組織和網(wǎng)絡(luò)配置三個方面來描述,網(wǎng)絡(luò)組織是從網(wǎng)絡(luò)的物理結(jié)構(gòu)和網(wǎng)絡(luò)的實現(xiàn)兩方面來描述計算機網(wǎng)絡(luò);網(wǎng)絡(luò)配置是從網(wǎng)絡(luò)應(yīng)用方面來描述計算機網(wǎng)絡(luò)的布局,硬件,軟件和和通信線路來描述計算機網(wǎng)絡(luò);網(wǎng)絡(luò)體系結(jié)構(gòu)是從功能上來描述計算機網(wǎng)絡(luò)結(jié)構(gòu)。網(wǎng)絡(luò)體系(Network Architecture):是為了完成計算機間的通信合作
69、,把每臺計算機互連的功能劃分成有明確定義的層次,并規(guī)定了同層次進(jìn)程通信的協(xié)議及相鄰之間的接口及服務(wù)。 網(wǎng)絡(luò)體系結(jié)構(gòu):是指用分層研究方法定義的網(wǎng)絡(luò)各層的功能,各層協(xié)議和接口的集合。</p><p> 3.2 網(wǎng)絡(luò)協(xié)議的分析與實現(xiàn)</p><p> 網(wǎng)絡(luò)協(xié)議[3]是計算機網(wǎng)絡(luò)必不可少的,一個完整的計算機網(wǎng)絡(luò)需要有一套復(fù)雜的協(xié)議集合,組織復(fù)雜的計算機網(wǎng)絡(luò)協(xié)議的最好方式就是層次模型。而將計算機
70、網(wǎng)絡(luò)層次模型和各層協(xié)議的集合定義為計算機網(wǎng)絡(luò)體系結(jié)構(gòu)(Network Architecture)。網(wǎng)絡(luò)中計算機的硬件和軟件存在各種差異,為了保證相互通信及雙方能夠正確地接收信息,必須事先形成一種約定,即網(wǎng)絡(luò)協(xié)議. </p><p> 協(xié)議:是為實現(xiàn)網(wǎng)絡(luò)中的數(shù)據(jù)交換而建立的規(guī)則標(biāo)準(zhǔn)或約定。 網(wǎng)絡(luò)協(xié)議三要素:語法,語義,交換規(guī)則(或稱時序/定時關(guān)系)運作機制。</p><p><b&g
71、t; 3.2.1 IP</b></p><p> IP層接收由更低層(網(wǎng)絡(luò)接口層例如以太網(wǎng)設(shè)備驅(qū)動程序)發(fā)來的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的數(shù)據(jù)包傳送到更低層。IP數(shù)據(jù)包是不可靠的,因為IP并沒有做任何事情來確認(rèn)數(shù)據(jù)包是按順序發(fā)送的或者沒有被破壞。IP數(shù)據(jù)包中含有發(fā)送它的主機的地址(源地址)和接收它的主機的地址(目的地址)。 &l
72、t;/p><p> 高層的TCP和UDP服務(wù)在接收數(shù)據(jù)包時,通常假設(shè)包中的源地址是有效的。也可以這樣說,IP地址形成了許多服務(wù)的認(rèn)證基礎(chǔ),這些服務(wù)相信數(shù)據(jù)包是從一個有效的主機發(fā)送來的。IP確認(rèn)包含一個選項,叫作IP source routing,可以用來指定一條源地址和目的地址之間的直接路徑。對于一些TCP和UDP的服務(wù)來說,使用了該選項的IP包好像是從路徑上的最后一個系統(tǒng)傳遞過來的,而不是來自于它的真實地點。這個
73、選項是為了測試而存在的,說明了它可以被用來欺騙系統(tǒng)來進(jìn)行平常是被禁止的連接。那么,許多依靠IP源地址做確認(rèn)的服務(wù)將產(chǎn)生問題并且會被非法入侵。 </p><p><b> 3.2.2 TCP</b></p><p> TCP是面向連接的通信協(xié)議,通過三次握手建立連接,通訊完成時要拆除連接,由于TCP是面向連接的所以只能用于點對點的通訊。 </p>&l
74、t;p> TCP提供的是一種可靠的數(shù)據(jù)流服務(wù),采用“帶重傳的肯定確認(rèn)”技術(shù)來實現(xiàn)傳輸?shù)目煽啃浴CP還采用一種稱為“滑動窗口”的方式進(jìn)行流量控制,所謂窗口實際表示接收能力,用以限制發(fā)送方的發(fā)送速度。 </p><p> 如果IP數(shù)據(jù)包中有已經(jīng)封好的TCP數(shù)據(jù)包,那么IP將把它們向‘上’傳送到TCP層。TCP將包排序并進(jìn)行錯誤檢查,同時實現(xiàn)虛電路間的連接。TCP數(shù)據(jù)包中包括序號和確認(rèn),所以未按照順序收到的
75、包可以被排序,而損壞的包可以被重傳。 </p><p> TCP將它的信息送到更高層的應(yīng)用程序,例如Telnet的服務(wù)程序和客戶程序。應(yīng)用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設(shè)備驅(qū)動程序和物理介質(zhì),最后到接收方。 </p><p> 面向連接的服務(wù)(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。D
76、NS在某些情況下使用TCP(發(fā)送和接收域名數(shù)據(jù)庫),但使用UDP傳送有關(guān)單個主機的信息。 </p><p><b> 3.2.3 UDP</b></p><p> UDP是面向無連接的通訊協(xié)議,UDP數(shù)據(jù)包括目的端口號和源端口號信息,由于通訊不需要連接,所以可以實現(xiàn)廣播發(fā)送。 </p><p> UDP通訊時不需要接收方確認(rèn),屬于不可靠的
77、傳輸,可能會出丟包現(xiàn)象,實際應(yīng)用中要求在程序員編程驗證。 </p><p> UDP與TCP位于同一層,但它不管數(shù)據(jù)包的順序、錯誤或重發(fā)。因此,UDP不被應(yīng)用于那些使用虛電路的面向連接的服務(wù),UDP主要用于那些面向查詢---應(yīng)答的服務(wù),例如NFS。相對于FTP或Telnet,這些服務(wù)需要交換的信息量較小。使用UDP的服務(wù)包括NTP(網(wǎng)絡(luò)時間協(xié)議)和DNS(DNS也使用TCP)。 </p><
78、p> 欺騙UDP包比欺騙TCP包更容易,因為UDP沒有建立初始化連接(也可以稱為握手)(因為在兩個系統(tǒng)間沒有虛電路),也就是說,與UDP相關(guān)的服務(wù)面臨著更大的危險。 </p><p> 3.2.4 ICMP</p><p> ICMP與IP位于同一層,它被用來傳送IP的的控制信息。它主要是用來提供有關(guān)通向目的地址的路徑信息。ICMP的‘Redirect’信息通知主機通向其他系統(tǒng)
79、的更準(zhǔn)確的路徑,而‘Unreachable’信息則指出路徑有問題。另外,如果路徑不可用了,ICMP可以使TCP連接‘體面地’終止。PING是最常用的基于ICMP的服務(wù)。 </p><p> 3.2.5 通訊端口</p><p> TCP和UDP服務(wù)通常有一個客戶/服務(wù)器的關(guān)系,例如,一個Telnet服務(wù)進(jìn)程開始在系統(tǒng)上處于空閑狀態(tài),等待著連接。用戶使用Telnet客戶程序與服務(wù)進(jìn)程建立
80、一個連接??蛻舫绦蛳蚍?wù)進(jìn)程寫入信息,服務(wù)進(jìn)程讀出信息并發(fā)出響應(yīng),客戶程序讀出響應(yīng)并向用戶報告。因而,這個連接是雙工的,可以用來進(jìn)行讀寫。 </p><p> 兩個系統(tǒng)間的多重Telnet連接是如何相互確認(rèn)并協(xié)調(diào)一致呢?TCP或UDP連接唯一地使用每個信息中的如下四項進(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> 端口是一個軟件結(jié)構(gòu),被客戶程序或服務(wù)進(jìn)程用來發(fā)送和接收信息。一個端口對應(yīng)一個16比特的數(shù)。服務(wù)進(jìn)程通常使用一個固定的端口,例如,SMTP使用25、Xwindows使用6000。這
82、些端口號是‘廣為人知’的,因為在建立與特定的主機或服務(wù)的連接時,需要這些地址和目的地址進(jìn)行通訊。 </p><p> 3.2.6 IP地址</p><p> 在Internet上連接的所有計算機,從大型機到微型計算機都是以獨立的身份出現(xiàn),我們稱它為主機。為了實現(xiàn)各主機間的通信,每臺主機都必須有一個唯一的網(wǎng)絡(luò)地址。就好像每一個住宅都有唯一的門牌一樣,才不至于在傳輸資料時出現(xiàn)混亂。 <
83、;/p><p> Internet的網(wǎng)絡(luò)地址是指連入Internet網(wǎng)絡(luò)的計算機的地址編號。所以,在Internet網(wǎng)絡(luò)中,網(wǎng)絡(luò)地址唯一地標(biāo)識一臺計算機。 </p><p> 我們都已經(jīng)知道,Internet是由幾千萬臺計算機互相連接而成的。而我們要確認(rèn)網(wǎng)絡(luò)上的每一臺計算機,靠的就是能唯一標(biāo)識該計算機的網(wǎng)絡(luò)地址,這個地址就叫做IP(Internet Protocol的簡寫)地址,即用Int
84、ernet協(xié)議語言表示的地址。 </p><p> 目前,在Internet里,IP地址是一個32位的二進(jìn)制地址,為了便于記憶,將它們分為4組,每組8位,由小數(shù)點分開,用四個字節(jié)來表示,而且,用點分開的每個字節(jié)的數(shù)值范圍是0~255,如202.116.0.1,這種書寫方法叫做點數(shù)表示法。 </p><p> 3.2.7 地址分類</p><p> IP地址[5
85、]可確認(rèn)網(wǎng)絡(luò)中的任何一個網(wǎng)絡(luò)和計算機,而要識別其它網(wǎng)絡(luò)或其中的計算機,則是根據(jù)這些IP地址的分類來確定的。一般將IP地址按節(jié)點計算機所在網(wǎng)絡(luò)規(guī)模的大小分為A,B,C三類,默認(rèn)的網(wǎng)絡(luò)屏蔽是根據(jù)IP地址中的第一個字段確定的。 </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ò)上的主機的地址。分配給具有大量主機(直接個人用戶)而局域網(wǎng)絡(luò)個數(shù)較少的大型網(wǎng)絡(luò)。例如IBM公司的網(wǎng)絡(luò)。 </p><p> 127.0.0.0到127.255.255.255是保留地址,用做循環(huán)測試用的。 </p><p> 0.0.0.0到0.255.25
87、5.255也是保留地址,用做表示所有的IP地址。 </p><p> 一個A類IP地址由1字節(jié)(每個字節(jié)是8位)的網(wǎng)絡(luò)地址和3個字節(jié)主機地址組成,網(wǎng)絡(luò)地址的最高位必須是“0”,即第一段數(shù)字范圍為1~127。每個A類地址理論上可連接16777214<256*256*256-2>;臺主機(-2是因為主機中要用去一個網(wǎng)絡(luò)號和一個廣播號),Internet有126個可用的A類地址。A類地址適用于有大量主機的
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ò)上的主機地址。 </p><p> 169.254
89、.0.0到169.254.255.255是保留地址。如果你的IP地址是自動獲取IP地址,而你在網(wǎng)絡(luò)上又沒有找到可用的DHCP服務(wù)器,這時你將會從169.254.0.0到169.254.255.255中臨時獲得一個IP地址。 </p><p> 一個B類IP地址由2個字節(jié)的網(wǎng)絡(luò)地址和2個字節(jié)的主機地址組成,網(wǎng)絡(luò)地址的最高位必須是“10”,即第一段數(shù)字范圍為128~191。每個B類地址可連接65534(2^16-2
90、,因為主機號的各位不能同時為0,1)臺主機,Internet有16383(2^14-1)個B類地址(因為B類網(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),它可連接的主機數(shù)量是最少的,采用把所屬的用戶分為若干的網(wǎng)段進(jìn)行管理。C類網(wǎng)絡(luò)用前三組數(shù)字表示網(wǎng)絡(luò)的地址,最后一組數(shù)字作為網(wǎng)絡(luò)上的主機地址。 </p><p> 一個C類地址是由3個字節(jié)的網(wǎng)絡(luò)地址和1個字節(jié)的主機地址組成,網(wǎng)絡(luò)地址的最高位必須是“110”,即第一段數(shù)字范圍為192~223。每個C類地址可連接254臺主機,Internet有2
92、097152個C類地址段(32*256*256),有532676608個地址(32*256*256*254)。 </p><p> RFC 1918留出了3塊IP地址空間(1個A類地址段,16個B類地址段,256個C類地址段)作為私有的內(nèi)部使用的地址。在這個范圍內(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)換為公有地址。這個轉(zhuǎn)換過程稱為網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation,NAT),通常使用路由器來執(zhí)行NAT轉(zhuǎn)換。 </p><p> 實際上,還存在著D類地址和E類地址。但這兩類地址用途比較特殊,在這里只是簡單介紹一下: </p><p> D類地址不分網(wǎng)絡(luò)地址和主機地址,它的第1個字節(jié)的前四位固定為1110。D類地址范圍:224.0.0.1到239.
95、255.255.254。D類地址用于多點播送。D類地址稱為廣播地址,供特殊協(xié)議向選定的節(jié)點發(fā)送信息時用。 </p><p> E類地址保留給將來使用。 </p><p> 連接到Internet上的每臺計算機,不論其IP地址屬于哪類都與網(wǎng)絡(luò)中的其它計算機處于平等地位,因為只有IP地址才是區(qū)別計算機的唯一標(biāo)識。所以,以上IP地址的分類只適用于網(wǎng)絡(luò)分類。 </p><p
96、> 在Internet中,一臺計算機可以有一個或多個IP地址,就像一個人可以有多個通信地址一樣,但兩臺或多臺計算機卻不能共享一個IP地址。如果有兩臺計算機的IP地址相同,則會引起異?,F(xiàn)象,無論哪臺計算機都將無法正常工作。 </p><p> 順便提一下幾類特殊的IP地址: </p><p> (a) 廣播地址目的端為給定網(wǎng)絡(luò)上的所有主機,一般主機段為全1 </p>
97、<p> (b) 單播地址目的端為指定網(wǎng)絡(luò)上的單個主機地址 </p><p> (c) 組播地址目的端為同一組內(nèi)的所有主機地址 </p><p> (d) 環(huán)回地址127.0.0.1在環(huán)回測試和廣播測試時會使用 </p><p> 3.2.8 網(wǎng)關(guān)地址</p><p> 若要使兩個完全不同的網(wǎng)絡(luò)(異構(gòu)網(wǎng))連接在一起,一般
98、使用網(wǎng)關(guān),在Internet中兩個網(wǎng)絡(luò)也要通過一臺稱為網(wǎng)關(guān)的計算機實現(xiàn)互聯(lián)。這臺計算機能根據(jù)用戶通信目標(biāo)計算機的IP地址,決定是否將用戶發(fā)出的信息送出本地網(wǎng)絡(luò),同時,它還將外界發(fā)送給屬于本地網(wǎng)絡(luò)計算機的信息接收過來,它是一個網(wǎng)絡(luò)與另一個網(wǎng)絡(luò)相聯(lián)的通道。為了使TCP/IP協(xié)議能夠?qū)ぶ?,該通道被賦予一個IP地址,這個IP地址稱為網(wǎng)關(guān)地址。 </p><p><b> 注意事項</b></
99、p><p> 內(nèi)部地址和外部地址在局域網(wǎng)的IP地址分配中,并沒有區(qū)別,都可以使用。 </p><p> 在局域網(wǎng)的IP地址分配中,子網(wǎng)屏蔽的“1”部分只要和對應(yīng)的IP地址分類規(guī)定的前幾個二進(jìn)制數(shù)一致即可。 </p><p><b> (2) 子網(wǎng)劃分</b></p><p> 若公司不上Internet,那一定不會煩
100、惱IP地址的問題,因為可以任意使用所有的IP地址,不管是A類或是B類,這個時候不會想到要用子網(wǎng),但若是上Internet那IP地址便彌足珍貴了,目前全球一陣Internet熱,IP地址已經(jīng)愈來愈少了,而所申請的IP地址目前也趨飽和,而且只有經(jīng)申請的IP地址能在Internet使用,但對某些公司只能申請到一個C類的IP地址,但又有多個點需要使用,那這時便需要使用到子網(wǎng),這就需要考慮子網(wǎng)的劃分,下面簡介子網(wǎng)的原理及如何規(guī)劃。 </p&
101、gt;<p><b> (3)子網(wǎng)掩碼</b></p><p> 設(shè)定任何網(wǎng)絡(luò)上的任何設(shè)備不管是主機、個人電腦、路由器等皆需要設(shè)定IP地址,而跟隨著IP地址的是所謂的子網(wǎng)掩碼(NetMask,Subnet Mask),這個子網(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)時這個值便不一定是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地址,所以這兩者皆不能使用,實際只能使用203.67.10.1--203.67
106、.10.254等254個IP地址,這是以255.255.255.0作子網(wǎng)掩碼的結(jié)果,而所謂Subnet Msk尚可將整組C類地址分成數(shù)組網(wǎng)絡(luò)編碼,這要在子網(wǎng)掩碼上作手腳,若是要將整組C類地址分成2個網(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、會保留,而為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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于visual-c 的網(wǎng)絡(luò)監(jiān)聽系統(tǒng)畢業(yè)論文
- 基于visual_c++的數(shù)字圖像處理畢業(yè)論文
- 基于Visual C++網(wǎng)絡(luò)監(jiān)聽的實現(xiàn).pdf
- 網(wǎng)絡(luò)監(jiān)聽系統(tǒng)的研究與實現(xiàn).pdf
- 局域網(wǎng)絡(luò)監(jiān)聽系統(tǒng)的設(shè)計【畢業(yè)設(shè)計】
- 畢業(yè)設(shè)計(論文)-基于visual_c++的五子棋設(shè)計與實現(xiàn)
- visual_c++課程設(shè)計報告--超市管理系統(tǒng)
- 局域網(wǎng)絡(luò)監(jiān)聽系統(tǒng)設(shè)計【開題報告】
- 基于包捕獲監(jiān)聽系統(tǒng)的技術(shù)研究.pdf
- SIP通信網(wǎng)絡(luò)監(jiān)聽系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 局域網(wǎng)絡(luò)監(jiān)聽系統(tǒng)的設(shè)計【畢業(yè)設(shè)計+開題報告+文獻(xiàn)綜述】
- 基于資源負(fù)載的網(wǎng)格監(jiān)聽系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 分布式網(wǎng)絡(luò)監(jiān)聽系統(tǒng)研究與實現(xiàn).pdf
- 基于傳播模型的P2P-VoIP監(jiān)聽系統(tǒng)研究.pdf
- 分布式VoIP監(jiān)聽系統(tǒng)的設(shè)計與實現(xiàn).pdf
- 電子郵件監(jiān)聽系統(tǒng)的分析與研究.pdf
- 無線多信道數(shù)據(jù)包監(jiān)聽系統(tǒng)的FPGAP實現(xiàn).pdf
- 基于c的郵件管理系統(tǒng)-畢業(yè)論文
- 無線局域網(wǎng)監(jiān)聽系統(tǒng)的研究與實現(xiàn).pdf
- 畢業(yè)論文基于c的網(wǎng)絡(luò)購物助理系統(tǒng)的設(shè)計與實現(xiàn)
評論
0/150
提交評論