




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、- I - 密級(jí): 學(xué)學(xué) 士士 學(xué)學(xué) 位位 論論 文文 THESIS OF BACHELOR 題 目 網(wǎng)絡(luò)流量測(cè)量軟件的設(shè)計(jì)與實(shí)現(xiàn)網(wǎng)絡(luò)流量測(cè)量軟件的設(shè)計(jì)與實(shí)現(xiàn) 學(xué) 院: 專(zhuān) 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù)計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí): 學(xué) 號(hào): 學(xué)生姓名: 指導(dǎo)教師: 起訖日期: - - 網(wǎng)絡(luò)流量測(cè)量軟件的設(shè)計(jì)與實(shí)現(xiàn) 摘摘 要:要:為了方便網(wǎng)絡(luò)編程,90 年代初,由 Microsoft 聯(lián)合了其他 幾家公司共同制定了一套 WINDOWS 下的網(wǎng)絡(luò)編程接口,即 Windows Sockets 規(guī)范,它不是一種網(wǎng)絡(luò)協(xié)議,而是一套開(kāi)放的、支持多種協(xié) 議的 Windows 下的網(wǎng)絡(luò)編程接口。本篇論文主要是介紹了在
2、 TCP/IP 基礎(chǔ)上利用 winsock2 對(duì)網(wǎng)卡進(jìn)行編程,以達(dá)到網(wǎng)絡(luò)流量監(jiān)測(cè)的目的。 論文首先介紹了 TCP/IP 協(xié)議,旨在介紹 IP,TCP,UDP 等比較重要 的協(xié)議。主要是介紹 IP 頭,TCP 頭,UDP 頭的特點(diǎn),以便從 IP 頭中 可以獲取源地址,目的地址,協(xié)議類(lèi)型等信息。在隨后的章節(jié)中提 出了 Socket 的概念,Socket 實(shí)際上提供了一個(gè)通信端口使所有擁 有 Socket 的端口的計(jì)算機(jī)之間能夠相互通信,在本論文中主要說(shuō)明 了 socket 的建立,監(jiān)聽(tīng)和撤銷(xiāo)的過(guò)程。具體到程序?qū)崿F(xiàn)中,對(duì)網(wǎng)卡 混雜模式的設(shè)置是通過(guò)原始套接字(raw socket)來(lái)實(shí)現(xiàn)的。為了 讓原
3、始套接字能接受所有的數(shù)據(jù),還需要通過(guò)將 SOCK_RAW 設(shè)置成 SIO_RCVALL。對(duì)數(shù)據(jù)包的獲取通過(guò) recv()函數(shù)來(lái)完成。最后要完成 的工作就是對(duì)所捕獲的 IP 數(shù)據(jù)包進(jìn)行分析以提取出我們所需要的信 息。在論文的最后是旨在說(shuō)明進(jìn)一步工作的展開(kāi)。 關(guān)鍵字: TCP/IP,Winsock,原始套接字,NetBios - Abstract: For convenience of network programming, in the early 1990s, a new set of network programming interface using under WINDOWS was
4、 established by some companies united by Microsoft. It is known as Windows Socket Norm. It isnt a kind of network protocol, but an open network programming interface support multiple protocols under WINDOWS. The main purpose of the thesis is to introduce how to use Winsock2 program on network adapte
5、r under the protocol of TCP/IP. This is for the purpose of measure the network discharge. At the beginning of the thesis, we introduce all important protocols of TCP/IP, like IP, TCP, and UDP. We introduce IP header, TCP header and UDP header for the most important because we need acquire the inform
6、ation of source address, destination address, and protocol type from the IP header. In the following section, we give the concept of Socket. Sockets actually provide a communication port to allow all the computers that have Socket port to communicate with each other. In the thesis, we talk on the pr
7、ocess of the Sockets building listening and canceling. In the program, we use RAW Socket to set adapter on the mixed mode. To let the Socket receive all data, we also need to set the on SIO_RCVALL. Then we use the function recv () to get data pack. At last we need analyze the data pack to get the -
8、information we need. KEYKEY WORDSWORDS:TCP/IP, Winsock,RAW SOCKET, NetBIOS 目目錄錄 摘要.1 Abstract.2 前言.4 第一章緒論5 1.1TCP/IP 協(xié)議及其協(xié)議分析方法.5 1.1.1分層.5 1.1.2IP 地址.6 1.1.3端口.6 1.1.4TCP/IP 協(xié)議在 Windows 中的實(shí)現(xiàn).7 1.2Winsock 編程.7 1.3網(wǎng)絡(luò)流量測(cè)量的程序?qū)崿F(xiàn)原理.8 第二章TCP/IP 協(xié)議集9 2.1TCP/IP 協(xié)議簡(jiǎn)介.9 2.2IP 協(xié)議.9 2.3TCP 協(xié)議.10 2.3.1TCP 服務(wù)模型.
9、10 2.3.2TCP 數(shù)據(jù)段頭.11 2.3.3TCP 協(xié)議的建立.12 2.4UDP 協(xié)議.13 第三章WINSOCK 編程概述14 3.1套接字的概念.14 3.2套接字的種類(lèi).14 3.3套接字的建立.14 第四章網(wǎng)絡(luò)流量測(cè)量的程序?qū)崿F(xiàn).16 4.1網(wǎng)卡初始化.16 4.1.1NetBios 概述16 4.1.2利用 NetBios 來(lái)初始化網(wǎng)卡.16 4.2原始套接字的設(shè)置.16 4.3IP 包的協(xié)議分析17 - 4.4結(jié)果與測(cè)試.19 結(jié) 論.21 結(jié)束語(yǔ).22 參考文獻(xiàn)23 前前 言言 隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)日新月異的發(fā)展,Internet 的逐漸普及,網(wǎng)絡(luò)對(duì)于人們已經(jīng)不再 是一個(gè)陌
10、生的概念。可以說(shuō),網(wǎng)絡(luò)已經(jīng)在很多人的生活中占據(jù)了重要的地位。于是,各種 各樣的軟件隨之誕生,使人們能夠更加方便,快捷的訪(fǎng)問(wèn)網(wǎng)絡(luò),了解網(wǎng)絡(luò)以充分的利用網(wǎng) 絡(luò)。 本論文就是向大家介紹網(wǎng)絡(luò)中比較常用的技術(shù)網(wǎng)絡(luò)流量的監(jiān)測(cè)。在介紹具體的程 序?qū)崿F(xiàn)之前,論文首先介紹了 TCP/IP 協(xié)議,可以說(shuō),任何網(wǎng)絡(luò)技術(shù)都與 TCP/IP 協(xié)議有著 密切的關(guān)聯(lián),TCP/IP 協(xié)議給不同型號(hào)的計(jì)算機(jī),不同的操作系統(tǒng)之間提供了相互通信的平 臺(tái)。TCP/IP 起源于 60 年代末美國(guó)政府資助的一個(gè)分組交換網(wǎng)絡(luò)研究項(xiàng)目,到現(xiàn)在 90 年代 已發(fā)展成為計(jì)算機(jī)之間最常應(yīng)用的組網(wǎng)形式。它是一個(gè)真正的開(kāi)放系統(tǒng),因?yàn)閰f(xié)議組件的 定義及
11、其多種實(shí)現(xiàn)可以不用花錢(qián)或花很少的錢(qián)就可以公開(kāi)地得到。 在進(jìn)行網(wǎng)絡(luò)流量的測(cè)量之前,我們首先要對(duì)本地機(jī)的信息有一個(gè)了解。這些信息的獲 取是通過(guò) Netbios 來(lái)完成的。Netbios 利用其網(wǎng)絡(luò)控制快 NCB 來(lái)完成我們需要它去完成的 對(duì)網(wǎng)卡的初始化工作。通過(guò) ncb_command 來(lái)發(fā)出命令完成對(duì)網(wǎng)卡的操作。通過(guò)發(fā)送 NCBENUM 命令獲取網(wǎng)卡的數(shù)目和每個(gè)網(wǎng)卡的內(nèi)部編號(hào);對(duì)選定的網(wǎng)卡發(fā)送一個(gè) NCBRESET 命 令,以便進(jìn)行初始化;接著,可以發(fā)送 NCBASTAT 命令以獲取網(wǎng)卡的信息。這樣,我們可以 讀出網(wǎng)卡的 MAC 地址以便進(jìn)行進(jìn)一步的工作。 要實(shí)現(xiàn)網(wǎng)絡(luò)流量的測(cè)量,Winsock
12、給我們提供了一個(gè)接口,我們通過(guò)這個(gè)接口可以實(shí) 現(xiàn)對(duì) IP 層以上的層的數(shù)據(jù)包的監(jiān)測(cè)。我們通過(guò)建立原始套接字,利用 Winsock 提供給我們 的一些特定的函數(shù)就可以完成對(duì)網(wǎng)絡(luò)數(shù)據(jù)包的捕獲。首先需要建立一個(gè) socket,將它設(shè)置 成為是對(duì) ip 頭的操作,然后利用 gethostname,phost 獲取本機(jī)名,本機(jī) ip 地址。將本機(jī) 地址與 IP 地址綁定之后,將網(wǎng)卡設(shè)置為混雜模式,以便對(duì)所有經(jīng)過(guò)它的數(shù)據(jù)包進(jìn)行接收。 在這些準(zhǔn)備工作已經(jīng)做好之后,余下的就是利用 recv()來(lái)捕獲網(wǎng)絡(luò)中的數(shù)據(jù)包。 到現(xiàn)在為止,我們所作的工作都是分析工作的鋪墊。我們最后所要看到的就是網(wǎng)絡(luò)數(shù) 據(jù)包的分析結(jié)果。在
13、數(shù)據(jù)包的分析過(guò)程中,用戶(hù)一般想得到的主要信息不外乎是包的協(xié)議 類(lèi)型,源/目的地址,發(fā)送/接收端口以及包的大小,定義指針,分別指向數(shù)據(jù)包的相對(duì)應(yīng) - 的位置就可以得到這些信息。將得到的信息羅列并顯示出來(lái)之后,我們就完成了對(duì)網(wǎng)絡(luò)中 數(shù)據(jù)包的流量監(jiān)測(cè)過(guò)程。 在論文的最后對(duì)整篇論文進(jìn)行了總結(jié),說(shuō)明了一些不足之處,并對(duì)所有對(duì)這篇論文知 道并建議的老師等表示感謝。 第一章第一章緒論緒論 1.11.1TCP/IPTCP/IP 協(xié)議及其協(xié)議分析方法協(xié)議及其協(xié)議分析方法 TCP/IP 起源于 60 年代末美國(guó)政府資助的一個(gè)分組交換網(wǎng)絡(luò)的研究項(xiàng)目,到現(xiàn)在 90 年 代已發(fā)展成為計(jì)算機(jī)之間最常用的組網(wǎng)形式。它是一個(gè)
14、真正的開(kāi)放系統(tǒng),因?yàn)閰f(xié)議組件的 定義及其多種實(shí)現(xiàn)可以不用花錢(qián)或花很少的錢(qián)就可以公開(kāi)地得到。它成為被稱(chēng)作“全球互 聯(lián)網(wǎng)”或“因特網(wǎng)”(Internet)的基礎(chǔ)。 .1分層分層 協(xié)議分層的概念的提出是為了減少協(xié)議設(shè)計(jì)的復(fù)雜性,每一層都建立到它的下層之上, 每一層的目的就是為了向上一層提供特定的服務(wù)。一臺(tái)機(jī)器的第 n 層向另一臺(tái)機(jī)器的第 n 層會(huì)話(huà),通話(huà)的規(guī)則稱(chēng)為協(xié)議。分層和協(xié)議構(gòu)成了網(wǎng)絡(luò)體系結(jié)構(gòu)。 在提到了分層的概念時(shí)就不能不提一下 OSI 參考模型。該模型基于國(guó)際化標(biāo)準(zhǔn)組織, 共分為七層: 物理層:涉及到通信在信道上傳輸?shù)脑急忍亓鳌?數(shù)據(jù)鏈路層:加強(qiáng)物理層傳輸原始比特流的功能,
15、使之對(duì)網(wǎng)絡(luò)層顯現(xiàn)為一條無(wú)錯(cuò) 線(xiàn)路 網(wǎng)絡(luò)層:關(guān)系到子網(wǎng)的運(yùn)行控制,其中一個(gè)關(guān)鍵的問(wèn)題就是路由選擇。 傳輸層:為用戶(hù)提供端到端的數(shù)據(jù)傳送服務(wù)。 會(huì)話(huà)層:允許不同機(jī)器上的用戶(hù)建立會(huì)話(huà)關(guān)系,為用戶(hù)提供會(huì)話(huà)控制服務(wù)。 表示層:為用戶(hù)提供數(shù)據(jù)轉(zhuǎn)換和表示服務(wù)。 應(yīng)用層:為用戶(hù)提供訪(fǎng)問(wèn) OSI 的接口,其中包括大量的常見(jiàn)的協(xié)議。 TCP/IP 通常被認(rèn)為是一個(gè)四層協(xié)議系統(tǒng),每一層負(fù)責(zé)不同的功能。 數(shù)據(jù)鏈路層,通常包括操作系統(tǒng)中的設(shè)備驅(qū)動(dòng)程序和計(jì)算機(jī)中對(duì)應(yīng)的網(wǎng)絡(luò)接口卡。 - 它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細(xì)節(jié)。 網(wǎng)絡(luò)層,處理分組在網(wǎng)絡(luò)中的活動(dòng),例如分組的路由選擇。在 TCP/IP 協(xié)議組件中
16、, 網(wǎng)絡(luò)層協(xié)議包括 IP 協(xié)議(網(wǎng)際協(xié)議) ,ICMP 協(xié)議(Internet 互連網(wǎng)控制報(bào)文協(xié)議) , 以及 IGMP 協(xié)議(Internet 組管理協(xié)議) 。 運(yùn)輸層,主要為兩臺(tái)主機(jī)上的應(yīng)用程序提供端到端的通信。在 TCP/IP 協(xié)議組件中, 有兩個(gè)互不相同的傳輸協(xié)議:TCP(傳輸控制協(xié)議)和 UDP(用戶(hù)數(shù)據(jù)報(bào)協(xié)議) 。 TCP 為兩臺(tái)主機(jī)提供高可靠性的數(shù)據(jù)通信。而另一方面,UDP 則為應(yīng)用層提供一種 非常簡(jiǎn)單的服務(wù)。它只是把稱(chēng)作數(shù)據(jù)報(bào)的分組從一臺(tái)主機(jī)發(fā)送到另一臺(tái)主機(jī),但并不 保證該數(shù)據(jù)報(bào)能到達(dá)另一端。 應(yīng)用層,負(fù)責(zé)處理特定的應(yīng)用程序細(xì)節(jié)。幾乎各種不同的 TCP/IP 實(shí)現(xiàn)都會(huì)提供下 面
17、這些通用的應(yīng)用程序: Telnet 遠(yuǎn)程登錄,F(xiàn)TP 文件傳輸協(xié)議,SMTP 用于電子郵 件的簡(jiǎn)單郵件傳輸協(xié)議,SNMP 簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議。 圖 1-1 OSI 模型與 TCP/IP 模型的比較 如圖所示,OSI 模型有七層,而 TCP/IP 模型只有 4 層。OSI 模型在網(wǎng)絡(luò)層支持無(wú)連接 和面向連接的通信,而 TCP/IP 模型在網(wǎng)絡(luò)層僅有無(wú)連接的通信方式,但是在傳輸層卻支持 兩種模式,更好的面向了用戶(hù)。 .2IPIP 地址地址 互連網(wǎng)上的每個(gè)接口必須有一個(gè)唯一的 Internet 地址(也稱(chēng)作 IP 地址) 。IP 地址長(zhǎng) 32 bit。這些 32 位的地址通常寫(xiě)成四個(gè)十
18、進(jìn)制的數(shù),其中每個(gè)整數(shù)對(duì)應(yīng)一個(gè)字節(jié)。這種表示方 法稱(chēng)作“點(diǎn)分十進(jìn)制表示法” 。需要再次指出的是,多接口主機(jī)具有多個(gè) IP 地址,其中每 個(gè)接口都對(duì)應(yīng)一個(gè) IP 地址。 - 由于互連網(wǎng)上的每個(gè)接口必須有一個(gè)唯一的 IP 地址,因此必須要有一個(gè)管理機(jī)構(gòu)為接 入互連網(wǎng)的網(wǎng)絡(luò)分配 IP 地址。這個(gè)管理機(jī)構(gòu)就是互連網(wǎng)絡(luò)信息中心(Internet Network Information Centre)稱(chēng)作 InterNIC。InterNIC 只分配網(wǎng)絡(luò)號(hào)。主機(jī)號(hào)的分配由系統(tǒng)管理員來(lái) 負(fù)責(zé)。 .3端口端口 網(wǎng)絡(luò)中可以被命名和尋址的通信端口,是操作系統(tǒng)可分配的一種資源。按照 OSI 七層 協(xié)議
19、的描述,傳輸層與網(wǎng)絡(luò)層在功能上的最大區(qū)別是傳輸層提供進(jìn)程通信能力。從這個(gè)意 義上講,網(wǎng)絡(luò)通信的最終地址就不僅僅是主機(jī)地址了,還包括可以描述進(jìn)程的某種標(biāo)識(shí)符。 為此,TCP/IP 協(xié)議提出了協(xié)議端口(protocol port,簡(jiǎn)稱(chēng)端口)的概念,用于標(biāo)識(shí)通信的進(jìn) 程。端口是一種抽象的軟件結(jié)構(gòu),應(yīng)用程序(即進(jìn)程)通過(guò)系統(tǒng)調(diào)用與某端口建立連接后, 傳輸層傳給該端口的數(shù)據(jù)都被相應(yīng)進(jìn)程所接收,相應(yīng)進(jìn)程發(fā)給傳輸層的數(shù)據(jù)都通過(guò)該端口 輸出。在 TCP/IP 協(xié)議的實(shí)現(xiàn)中,端口操作類(lèi)似于一般的 I/O 操作,進(jìn)程獲取一個(gè)端口,相 當(dāng)于獲取本地唯一的 I/O 文件,可以用一般的讀寫(xiě)原語(yǔ)訪(fǎng)問(wèn)之。 類(lèi)似于文件描述符
20、,每個(gè)端口都擁有一個(gè)叫端口號(hào)(port number)的整數(shù)型標(biāo)識(shí)符, 用于區(qū)別不同端口。端口號(hào)的分配是一個(gè)重要問(wèn)題。端口號(hào)的分配有兩種基本分配方式: 第一種叫全局分配,這是一種集中控制方式,由一個(gè)公認(rèn)的中央機(jī)構(gòu)根據(jù)用戶(hù)需要進(jìn)行統(tǒng) 一分配,并將結(jié)果公布于眾。第二種是本地分配,又稱(chēng)動(dòng)態(tài)連接,即進(jìn)程需要訪(fǎng)問(wèn)傳輸層 服務(wù)時(shí),向本地操作系統(tǒng)提出申請(qǐng),操作系統(tǒng)返回一個(gè)本地唯一的端口號(hào),進(jìn)程再通過(guò)合 適的系統(tǒng)調(diào)用將自己與該端口號(hào)綁定起來(lái)。 .4TCP/IPTCP/IP 協(xié)議在協(xié)議在 WindowsWindows 中的實(shí)現(xiàn)中的實(shí)現(xiàn) 對(duì) TCP/IP 協(xié)議有了一個(gè)結(jié)構(gòu)性的了解之后,就要考慮 T
21、CP/IP 協(xié)議在 Windows 中是如 何應(yīng)用的。TCP/IP 和 OSI 有一層映射關(guān)系,所以可以將 TCP/IP 通過(guò) OSI 映射到 Windows 操作系統(tǒng)中去。OSI 在 Windows 中的實(shí)現(xiàn):物理層就是網(wǎng)卡,數(shù)據(jù)鏈路層就是網(wǎng)卡驅(qū)動(dòng)程 序,網(wǎng)絡(luò)層就是 NDIS(網(wǎng)絡(luò)驅(qū)動(dòng)程序接口規(guī)范) ,傳輸層是 TDI(傳輸驅(qū)動(dòng)程序接口),會(huì) 話(huà)層是 SPI(服務(wù)提供者接口),表示層是 API(應(yīng)用編程接口),應(yīng)用層通常就是 EXE 文 件。 1.21.2WinsockWinsock 編程編程 Winsock 就是 Windows Socket 的簡(jiǎn)稱(chēng),最簡(jiǎn)單的說(shuō),Winsock 就是 Wi
22、ndows 應(yīng)用程序 與 TCP/IP 之間的通信界面。如圖: - 圖 1-2 Winsock 在 TCP/IP 和 OSI 中的表示 在 Windows 中,利用 Winsock 通信需經(jīng)過(guò)幾個(gè)步驟:初始化 Winsock,創(chuàng)建套接字,建 立會(huì)話(huà),傳送數(shù)據(jù),中止會(huì)話(huà),中止 Winsock。Winsock 既可以提供機(jī)器間的通訊,又可提 供 Windows 進(jìn)程間的通信。 1.31.3網(wǎng)絡(luò)流量測(cè)量的程序?qū)崿F(xiàn)原理網(wǎng)絡(luò)流量測(cè)量的程序?qū)崿F(xiàn)原理 網(wǎng)絡(luò)流量監(jiān)測(cè)器也是通過(guò)對(duì)網(wǎng)卡的編程來(lái)實(shí)現(xiàn)網(wǎng)絡(luò)通訊的,對(duì)網(wǎng)卡的編程也是使用通 常的套接字(socket)方式來(lái)進(jìn)行。但是,通常的套接字程序只能響應(yīng)與自己硬件地址
23、相 匹配的或是以廣播形式發(fā)出的數(shù)據(jù)幀,對(duì)于其他形式的數(shù)據(jù)幀比如已到達(dá)網(wǎng)絡(luò)接口但卻不 是發(fā)給此地址的數(shù)據(jù)幀,網(wǎng)絡(luò)接口在驗(yàn)證投遞地址并非自身地址之后將不引起響應(yīng),也就 是說(shuō)應(yīng)用程序無(wú)法收取到達(dá)的數(shù)據(jù)包。而網(wǎng)絡(luò)監(jiān)測(cè)器的目的恰恰在于從網(wǎng)卡接收所有經(jīng)過(guò) 它的數(shù)據(jù)包,這些數(shù)據(jù)包即可以是發(fā)給它的也可以是發(fā)往別處的。顯然,要達(dá)到此目的就 必須將其設(shè)置為混雜模式。 這種對(duì)網(wǎng)卡混雜模式的設(shè)置是通過(guò)原始套接字(raw socket)來(lái)實(shí)現(xiàn)的,這也有別于 通常經(jīng)常使用的數(shù)據(jù)流套接字和數(shù)據(jù)報(bào)套接字。在創(chuàng)建了原始套接字后,需要通過(guò) Setsockopt()函數(shù)來(lái)設(shè)置 IP 頭操作選項(xiàng),然后再通過(guò) bind()函數(shù)將原始套
24、接字綁定到本 地網(wǎng)卡。為了讓原始套接字能接受所有的數(shù)據(jù),還需要通過(guò) ioctlsocket()來(lái)進(jìn)行設(shè)置, 而且還可以指定是否親自處理 IP 頭。至此,實(shí)際就可以開(kāi)始對(duì)網(wǎng)絡(luò)數(shù)據(jù)包進(jìn)行監(jiān)測(cè)了,對(duì) 數(shù)據(jù)包的獲取仍通過(guò) recv()函數(shù)來(lái)完成。 - 第二章第二章TCP/IPTCP/IP 協(xié)議集協(xié)議集 2.12.1TCP/IPTCP/IP 協(xié)議簡(jiǎn)介協(xié)議簡(jiǎn)介 很多不同的廠家生產(chǎn)各種型號(hào)的計(jì)算機(jī),它們運(yùn)行完全不同的操作系統(tǒng),但 TCP/IP 協(xié) 議組件允許它們互相進(jìn)行通信。TCP/IP 模型是一種層級(jí)式(Layering)的結(jié)構(gòu),每一層都 呼叫它的下一層所提供的服務(wù)來(lái)完成自己的需求。TCP/IP 模型可以
25、分為以下四層:應(yīng)用層、 傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層。本章主要對(duì) TCP/IP 協(xié)議組件進(jìn)行概述。 2.22.2IPIP 協(xié)議協(xié)議 IP 是 TCP/IP 協(xié)議族中最為核心的協(xié)議。所有的 TCP,UDP,ICMP,及 IGMP 數(shù)據(jù)都以 IP 數(shù)據(jù)報(bào)格式傳輸。與大多數(shù)網(wǎng)絡(luò)層協(xié)議不同,IP 協(xié)議一開(kāi)始就是為了網(wǎng)絡(luò)互連的目的而 設(shè)計(jì)的,它的工作是提供一種從源端到目的端傳輸數(shù)據(jù)報(bào)的最佳嘗試方法,不管這些機(jī)器 是否在同一網(wǎng)絡(luò)中。我們可以通過(guò)分析 IP 數(shù)據(jù)報(bào)的頭部來(lái)更好的了解 IP 協(xié)議: . 7、生命期(time to life):是同一個(gè)用來(lái)限制分組生命周期的計(jì)數(shù)器,最長(zhǎng)生命周 期 255s,它必須
26、在每個(gè)節(jié)點(diǎn)都遞減,而且當(dāng)一個(gè)路由器中排隊(duì)時(shí)間過(guò)長(zhǎng)可以十倍數(shù)遞減。 8、協(xié)議(protocol):說(shuō)明將它送給哪個(gè)傳輸進(jìn)程的,協(xié)議的編號(hào)在整個(gè)因特網(wǎng)上是 全球通用的,它定義于 RFC 1700 中。 9、頭部. - . 圖 2.4 UDP 頭 源端口和目的端口的作用與 TCP 中完全相同。UDP 長(zhǎng)度字段指明包括 8 字節(jié)的頭和數(shù) 據(jù)在內(nèi)的數(shù)據(jù)段長(zhǎng)度。UDP 校驗(yàn)和字段包括偽 UDP 頭,UDP 頭,UDP 數(shù)據(jù),如果有必要再補(bǔ) 充為偶數(shù)個(gè)字節(jié)。該字段是可選的,而且在不用于運(yùn)算時(shí)記為 0。 使用 UDP 協(xié)議時(shí),為了傳輸數(shù)據(jù),首先要設(shè)置客戶(hù)計(jì)算機(jī)的 LocalPort 屬性。然后服 務(wù)器計(jì)算機(jī)只
27、需將 RemoteHost 設(shè)置為客戶(hù)計(jì)算機(jī)的 IP 地址,并將 RemotePort 屬性設(shè)置為 與客戶(hù)計(jì)算機(jī) LocalPort 屬性相同的端口,最后調(diào)用 SendData 方法來(lái)發(fā)送信息,而客戶(hù)計(jì) 算機(jī)則使用 DataArrival 事件內(nèi)的 GetData 方法來(lái)獲取服務(wù)器計(jì)算機(jī)發(fā)送來(lái)的信息。 第三章第三章WinsockWinsock 編程概述編程概述 Winsock 就是 Windows Socket 的簡(jiǎn)稱(chēng)。最簡(jiǎn)單地說(shuō),Winsock 就是 Windows 應(yīng)用程序 與 TCP/IP 之間的通信界面。當(dāng)然,Winsock 還支持其他一些網(wǎng)絡(luò)協(xié)議棧,例如,Novell 的 IPX/S
28、PX 協(xié)議?!,F(xiàn)在最新版本是 Winsock2.0 版。 3.13.1套接字的概念套接字的概念 Socket 是網(wǎng)絡(luò)上運(yùn)行的兩個(gè)程序間雙向通信連接的一端。Socket 這個(gè)詞的一般意義是 自然的或人工的插口,如家用電器的電源插口等??蛻?hù)程序可以向 Socket 寫(xiě)請(qǐng)求,服務(wù)器將 處理此請(qǐng)求,然后通過(guò) Socket 把結(jié)果返回給客戶(hù)。Socket 是一種底層連接??蛻?hù)機(jī)和服務(wù)器 通過(guò)寫(xiě)入到 Socket 的字節(jié)流進(jìn)行通信。它們必須有共同的協(xié)議,也就是說(shuō),通過(guò) Socket 相互 傳送信息時(shí)所用的語(yǔ)言必須是協(xié)定好的。 3.23.2套接字的種類(lèi)套接字的種類(lèi) 流式套接字(SOCK_STREAM):提供
29、了一個(gè)面向連接、可靠的數(shù)據(jù)傳輸服務(wù),數(shù)據(jù)無(wú)差 - 錯(cuò)、無(wú)重復(fù)地發(fā)送,且按發(fā)送順序接收。內(nèi)設(shè)流量控制,避免數(shù)據(jù)流超限;數(shù)據(jù)被看作是 字節(jié)流,無(wú)長(zhǎng)度限制。文件傳送協(xié)議(FTP)即使用流式套接字。 數(shù)據(jù)報(bào)式套接字(SOCK_DGRAM):提供了一個(gè)無(wú)連接服務(wù)。數(shù)據(jù)包以獨(dú)立包形式被發(fā) 送,不提供無(wú)錯(cuò)保證,數(shù)據(jù)可能丟失或重復(fù),并且接收順序混亂。網(wǎng)絡(luò)文件系統(tǒng)(NFS)使 用數(shù)據(jù)報(bào)式套接字。 原始套接字(SOCK_RAW): 該接口允許對(duì)較低層協(xié)議,如 IP、ICMP 直接訪(fǎng)問(wèn)。常用 于檢驗(yàn)新的協(xié)議實(shí)現(xiàn)或訪(fǎng)問(wèn)現(xiàn)有服務(wù)中配置的新設(shè)備。 3.33.3套接字的建立套接字的建立 一個(gè)人要能夠收到別人打給他的電話(huà),首
30、先他要裝上一門(mén)電話(huà)。同樣,必須先建立 socket 以偵聽(tīng)線(xiàn)路。這個(gè)過(guò)程包含幾個(gè)步驟。首先,要建立一個(gè)新的 socket,就像先裝上 電話(huà)一樣。socket() 命令就完成這個(gè)工作。 因?yàn)?sockets 有幾種類(lèi)型,因此要注明我們要建立什么類(lèi)型的。我們要做一個(gè)選擇是 socket 的地址格式。如同電話(huà)有音頻和脈沖兩種形式一樣,socket 有兩個(gè)最重要的選項(xiàng)是 AF_UNIX 和 AF_INET。我們這里將著重于 AF_INET 方式。AF_INET 使用 3 這樣被點(diǎn)號(hào)隔開(kāi)的四個(gè)十進(jìn)制數(shù)字的地址格式。除了機(jī)器地址以外,還可以利用端口號(hào)允 許每臺(tái)機(jī)器上的多個(gè) . . 第
31、四章第四章網(wǎng)絡(luò)流量測(cè)量的程序?qū)崿F(xiàn)網(wǎng)絡(luò)流量測(cè)量的程序?qū)崿F(xiàn) 4.14.1 網(wǎng)卡初始化網(wǎng)卡初始化 本論文在介紹對(duì)網(wǎng)卡初始化的過(guò)程中,主要介紹以下幾項(xiàng)工作:獲得網(wǎng)卡的 MAC 地址, - 得到本機(jī)網(wǎng)卡的數(shù)目,Reset 網(wǎng)卡,通過(guò) IP 地址得到機(jī)器名。在論文中把這幾項(xiàng)工作一起 放到網(wǎng)卡初始化部分介紹,其中一個(gè)主要原因就是這些主要都是利用 NetBios 來(lái)完成的。 下面我們來(lái)詳細(xì)介紹。 .1 NetBiosNetBios 概述概述 NetBios 是 PC 網(wǎng)絡(luò)中用得最為廣泛的網(wǎng)絡(luò)協(xié)議之一,大多數(shù)的局域網(wǎng)(LAN)產(chǎn)品都 支持 NetBios。因此,將 NetBios 作為網(wǎng)絡(luò)協(xié)議的
32、優(yōu)點(diǎn)是:基于 NetBios 網(wǎng)絡(luò)應(yīng)用程序并 不需修改便能在其它各種網(wǎng)絡(luò)環(huán)境下運(yùn)行,用戶(hù)將享受到極大的靈活性,既使改用了其它 網(wǎng)絡(luò)也能繼續(xù)使用原先的應(yīng)用程序,避免了重復(fù)投入。 .2 利用利用 NetBiosNetBios 來(lái)初始化網(wǎng)卡來(lái)初始化網(wǎng)卡 NetBios API 只包括了一個(gè)函數(shù),就叫做 NetBios。這個(gè)函數(shù)使用網(wǎng)絡(luò)控制塊 NCB(network control block)結(jié)構(gòu)作為參數(shù),這個(gè)結(jié)構(gòu)告訴函數(shù)要做什么。這個(gè)結(jié)構(gòu)中包 括多個(gè)成員,如 ncb_command,ncb_num,ncb_length 等。 我們著重介紹一下 nc . 為了更加客觀準(zhǔn)確的顯示出測(cè)量
33、的數(shù)據(jù)包,我們首先直接將所截獲的 TCP 包和 UDP 包 的不經(jīng)過(guò)加工直接顯示出來(lái): 首先截獲 UDP 包,以下是在本機(jī)上運(yùn)行一個(gè)利用 UDP 傳輸?shù)某绦驎r(shí),運(yùn)行數(shù)據(jù)包捕獲 程序所顯示的數(shù)據(jù)包: 圖 5-1 截獲的 UDP 包 圖中所標(biāo)記的 11 轉(zhuǎn)化為 10 進(jìn)制數(shù)后為 17(UDP 協(xié)議號(hào)),在兩個(gè)字節(jié)后的部分 ca 75 01 65 表示源地址,e0 02 f3 47 表示目的地址。05 98 表示該數(shù)據(jù)包長(zhǎng)度為 1432(注 - 意長(zhǎng)度從版本位IHL 開(kāi)始計(jì)算,從圖中顯示為第一行 45)。 下圖是在本機(jī)上運(yùn)行 FTP 軟件所截獲的 TCP 包: 圖 5-2 運(yùn)行 FTP 程序所截獲的
34、 TCP 數(shù)據(jù)包 與 UDP 相同,圖中第二行所顯示的 ca c8 ee e0 表示的源地址,隨后 ca c8 ee 50 所 表示的是數(shù)據(jù)包的目的地址。不同的是在源地址前兩個(gè)字節(jié)處的 06 表示該數(shù)據(jù)包是利用 TCP 協(xié)議進(jìn)行傳輸?shù)摹?5 dc 表示該 TCP 數(shù)據(jù)包的大小為 1500,起始位為版本IHL,在圖 中顯示為第一行的 45。 將以上所得到的數(shù)據(jù)包信息解析出來(lái),用文字形式顯示出來(lái)就可以讓使用者能夠清楚 明白的了解所在局域網(wǎng)絡(luò)的基本狀態(tài)了。如圖所示: 圖 5-3 當(dāng)前網(wǎng)絡(luò)基本狀態(tài)示意圖 - 結(jié)結(jié)論論 通過(guò)網(wǎng)絡(luò)流量監(jiān)測(cè)統(tǒng)計(jì)的程序我們基本上可以了解到網(wǎng)絡(luò)數(shù)據(jù) 包中所包含的一般信息,該程序提取出數(shù)據(jù)包中比較有代表性的信 息:協(xié)議,源/目的地址,源/目的端口以及數(shù)據(jù)包長(zhǎng)度。通過(guò)這些 信息,我
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國(guó)高效燃油燃燒添加劑市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)鐳射熱轉(zhuǎn)印膜市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)計(jì)測(cè)儀表市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)粗紋棉麻油畫(huà)布市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)牽引軸承座市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)流量檢測(cè)儀器市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)橡塑印章市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)無(wú)氧紫銅棒市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)扁腳電源線(xiàn)市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025至2030年中國(guó)崩解劑市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2024年馬鞍山含山縣招聘高中教師筆試真題
- 高中數(shù)學(xué)第九、十章統(tǒng)計(jì)與概率章節(jié)測(cè)試卷-2024-2025學(xué)年高一下學(xué)期數(shù)學(xué)人教A版(2019)必修第二冊(cè)
- 【真題】五年級(jí)下學(xué)期數(shù)學(xué)期末試卷(含解析)四川省成都市高新技術(shù)產(chǎn)業(yè)開(kāi)發(fā)區(qū)2023-2024學(xué)年
- 種植質(zhì)量安全管理制度
- 2025至2030中國(guó)大型發(fā)電機(jī)行業(yè)發(fā)展趨勢(shì)分析與未來(lái)投資戰(zhàn)略咨詢(xún)研究報(bào)告
- 中國(guó)歌劇舞劇院管理制度
- 2025年?duì)t外精煉工職業(yè)技能理論知識(shí)考試題庫(kù)(含答案)
- 外墻真石漆修補(bǔ)方案(3篇)
- 道路養(yǎng)管協(xié)議書(shū)
- 2025年河北省專(zhuān)技人員公需課《人工智能時(shí)代的機(jī)遇與挑戰(zhàn)-預(yù)訓(xùn)練大模型與生成式AI》答案
- 靜脈治療個(gè)案匯報(bào)
評(píng)論
0/150
提交評(píng)論