




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
網(wǎng)絡(luò)數(shù)據(jù)報(bào)的捕獲與分析9.1基本原理
9.2常見(jiàn)的IP數(shù)據(jù)報(bào)
9.3Wireshark的使用9.4數(shù)據(jù)采集與分析
9.1基本原理
9.1.1TCP/IP體系結(jié)構(gòu)
開(kāi)放系統(tǒng)互連(OSI)模型將網(wǎng)絡(luò)劃分為七層,在各層上實(shí)現(xiàn)不同的功能,這七層分別為應(yīng)用層、表示層、會(huì)話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層及物理層。而TCP/IP體系也同樣遵循這七層標(biāo)準(zhǔn),只不過(guò)在某些OSI功能上進(jìn)行了壓縮。與OSI參考模型不同,TCP/IP模型更側(cè)重于互聯(lián)設(shè)備間的數(shù)據(jù)傳送,而不是嚴(yán)格的功能層次劃分,它通過(guò)解釋功能層次分布的重要性來(lái)做到這一點(diǎn),但仍為設(shè)計(jì)者具體實(shí)現(xiàn)協(xié)議留下很大的余地。因此,OSI參考模型在解釋互聯(lián)網(wǎng)絡(luò)通信機(jī)制上比較適合,而TCP/IP卻是互聯(lián)網(wǎng)絡(luò)協(xié)議的市場(chǎng)標(biāo)準(zhǔn)。
TCP/IP參考模型比OSI模型更靈活,參照?qǐng)D9.1(a)。圖9.1OSI參考模型和TCP/IP參考模型比較(a)?TCP/IP參考模型與OSI參考模型;(b)?TCP/IP協(xié)議族
1.進(jìn)程/應(yīng)用層
應(yīng)用層協(xié)議提供遠(yuǎn)程訪問(wèn)和資源共享,常見(jiàn)的應(yīng)用包括Telnet、FTP、SMTP、HTTP等,很多其他應(yīng)用程序也駐留運(yùn)行在此層,并且依賴于底層的功能。相似的,在IP網(wǎng)絡(luò)上要求通信的任何應(yīng)用也在模型的這一層中描述。
2.運(yùn)輸層
運(yùn)輸層又稱主機(jī)到主機(jī)層,大致對(duì)應(yīng)于OSI參考模型的會(huì)話層和傳輸層。為了在網(wǎng)絡(luò)傳輸中對(duì)應(yīng)用數(shù)據(jù)進(jìn)行分段,該層必須執(zhí)行數(shù)學(xué)檢查來(lái)保證所接收數(shù)據(jù)的完整性,以便為多個(gè)應(yīng)用同時(shí)傳輸數(shù)據(jù)多路復(fù)用數(shù)據(jù)流(傳輸和接收)。這意味著主機(jī)到主機(jī)層能識(shí)別特殊應(yīng)用,對(duì)亂序收到的數(shù)據(jù)進(jìn)行重新排序。
當(dāng)前的主機(jī)到主機(jī)層包括兩個(gè)協(xié)議實(shí)體:傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報(bào)協(xié)議(UDP)。還有一個(gè)協(xié)議正在定義中,是針對(duì)不斷增長(zhǎng)的面向事務(wù)的需要,該協(xié)議稱為事務(wù)/傳輸控制協(xié)議(T/TCP,Transaction/TransmissionControlProtocol)。
3.網(wǎng)際層
網(wǎng)際層又稱網(wǎng)絡(luò)層,該層由兩個(gè)主機(jī)之間通信所必須的協(xié)議和過(guò)程組成。這意味著數(shù)據(jù)報(bào)文必須是可路由的,網(wǎng)際層(IP)負(fù)責(zé)數(shù)據(jù)報(bào)文路由。
網(wǎng)際層也必須支持其他的路由管理功能,必須提供第二層地址到第三層地址的解析功能及反向解析功能。這些功能由對(duì)應(yīng)的IP協(xié)議提供。網(wǎng)際層的路由和路由管理功能由外部對(duì)等協(xié)議提供,這些協(xié)議被稱為路由協(xié)議。路由協(xié)議包括內(nèi)部網(wǎng)關(guān)協(xié)議(IGP,InterorGatewayProtocol)、外部網(wǎng)關(guān)協(xié)議(EGP,EnteriorGatewayProtocol)。因?yàn)樗鼈凂v留在網(wǎng)絡(luò)層中,但卻不是IP協(xié)議組件與生俱來(lái)的部分,所以標(biāo)識(shí)為對(duì)等。實(shí)際上,許多路由協(xié)議能夠在多路由協(xié)議地址結(jié)構(gòu)中發(fā)現(xiàn)、計(jì)算路由。用于其他地址結(jié)構(gòu)的路由協(xié)議例子包括IPX和AppleTalk。
4.網(wǎng)絡(luò)訪問(wèn)層
網(wǎng)絡(luò)訪問(wèn)層又稱鏈路層,該層提供用于物理連接、傳輸?shù)乃泄δ?。OSI模型把這一層功能分為兩層:物理層和數(shù)據(jù)鏈路層。TCP/IP參考模型把兩層合在一起。IP協(xié)議假設(shè)所有底層功能由局域網(wǎng)或串口連接提供。9.1.2TCP/IP組件
雖然上節(jié)所述的協(xié)議一般標(biāo)識(shí)為“TCP/IP”,但實(shí)質(zhì)上在IP協(xié)議組件內(nèi)還有好幾個(gè)不同的協(xié)議。主要協(xié)議之間的關(guān)系如圖9.1(b)所示。
TCP和UDP是兩種最為著名的運(yùn)輸層協(xié)議,二者都使用IP作為網(wǎng)絡(luò)層協(xié)議。
雖然TCP使用不可靠的IP服務(wù),但可以提供一種可靠的運(yùn)輸層服務(wù)。UDP可為應(yīng)用程序發(fā)送和接收數(shù)據(jù)報(bào)。數(shù)據(jù)報(bào)是指從發(fā)送方傳輸?shù)浇邮辗降男畔卧?。與TCP不同的是,UDP不可靠,它不能保證數(shù)據(jù)報(bào)能安全無(wú)誤地到達(dá)最終目的地。IP是網(wǎng)絡(luò)層上的主要協(xié)議,同時(shí)被TCP和UDP使用。TCP和UDP的每組數(shù)據(jù)都通過(guò)端系統(tǒng)和每個(gè)中間路由器中的IP層在互聯(lián)網(wǎng)中傳輸。
ICMP是IP協(xié)議的附屬協(xié)議。IP層用它來(lái)與其他主機(jī)或路由器交換錯(cuò)誤報(bào)文和其他重要信息。ICMP主要被IP使用,但應(yīng)用程序也有可能使用。
IGMP是Internet組管理協(xié)議,用來(lái)把一個(gè)UDP數(shù)據(jù)報(bào)多播到多個(gè)主機(jī)。
ARP(地址解析協(xié)議)和RARP(逆地址解析協(xié)議)是某些網(wǎng)絡(luò)接口(如以太網(wǎng)和令牌環(huán)網(wǎng))使用的特殊協(xié)議,用來(lái)轉(zhuǎn)換IP層地址和網(wǎng)絡(luò)接口層地址。駐留于進(jìn)程/應(yīng)用層中的應(yīng)用(如Telnet、FTP和許多其他應(yīng)用)被認(rèn)為是IP協(xié)議組件與生俱來(lái)的組成部分,但這些屬于應(yīng)用范疇而不是協(xié)議范疇。
從圖9.1(b)中可以看出,網(wǎng)絡(luò)訪問(wèn)層是TCP/IP的基礎(chǔ),而TCP/IP本身并不十分關(guān)心底層,因?yàn)樘幵跀?shù)據(jù)鏈路層的硬件接口(即網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序)把協(xié)議與實(shí)際硬件、物理介質(zhì)隔離開(kāi)。應(yīng)用程序用TCP傳送數(shù)據(jù)時(shí),數(shù)據(jù)被送入?yún)f(xié)議棧中,然后逐個(gè)通過(guò)每一層直到被當(dāng)作一串比特流送入網(wǎng)絡(luò)。其中每一層對(duì)收到的數(shù)據(jù)都要增加一些首部信息(有時(shí)還要增加尾部信息),該過(guò)程如圖9.2所示。TCP傳給IP的數(shù)據(jù)單元稱作TCP報(bào)文段或簡(jiǎn)稱為TCP段(TCPSegment)。IP傳給網(wǎng)絡(luò)接口層的數(shù)據(jù)單元稱作IP數(shù)據(jù)報(bào)(IPDatagram)。通過(guò)以太網(wǎng)傳輸?shù)谋忍亓鞣Q作幀(Frame)。圖9.2數(shù)據(jù)進(jìn)入?yún)f(xié)議棧時(shí)的封裝過(guò)程9.1.3IEEE802.3網(wǎng)絡(luò)
1.媒體訪問(wèn)方法
媒體訪問(wèn)方法取決于以太網(wǎng)操作是半雙工還是全雙工模式。
在半雙工操作下,兩個(gè)或多個(gè)節(jié)點(diǎn)競(jìng)爭(zhēng)使用物理媒體,一次僅允許一個(gè)節(jié)點(diǎn)發(fā)送數(shù)據(jù)。在傳輸前,每個(gè)節(jié)點(diǎn)首先監(jiān)聽(tīng)傳輸媒體以便確定媒體閑或忙(載波偵聽(tīng))。如果媒體忙,節(jié)點(diǎn)就繼續(xù)監(jiān)聽(tīng);如果媒體空閑,則立即發(fā)送數(shù)據(jù);如果多個(gè)節(jié)點(diǎn)在同一時(shí)間發(fā)送數(shù)據(jù),便會(huì)產(chǎn)生沖突。因此,每個(gè)節(jié)點(diǎn)要監(jiān)視自己的傳輸,才能檢測(cè)到可能的沖突。檢測(cè)到?jīng)_突后,節(jié)點(diǎn)發(fā)送一個(gè)簡(jiǎn)短的沖突加強(qiáng)信號(hào),確保所有節(jié)點(diǎn)都意識(shí)到?jīng)_突的發(fā)生。為了避免所有節(jié)點(diǎn)同時(shí)重傳它們的幀,所有沖突檢測(cè)節(jié)點(diǎn)要運(yùn)行一個(gè)截?cái)喽M(jìn)制指數(shù)后退(TruncatedBinaryExponentialBackoff)算法,計(jì)算各自的重傳延遲,稱為后退延遲(BackoffDelay)。
在全雙工操作下,兩個(gè)節(jié)點(diǎn)共享物理媒體。如果媒體具備同時(shí)雙向傳輸而不受干擾的能力,就不可能出現(xiàn)競(jìng)爭(zhēng),因此不需要CSMA/CD算法。
2.傳輸媒體
IEEE802.3標(biāo)準(zhǔn)定義了幾種傳輸媒體和電纜拓?fù)浣Y(jié)構(gòu)。在IEEE802.3中,媒體規(guī)范由三個(gè)字段類型標(biāo)識(shí)(最后一部分標(biāo)識(shí)方式可以改變),媒體規(guī)范如下所示:
<數(shù)據(jù)速率Mb/s><媒體類型><最大段長(zhǎng)×100米>
表9.1顯示了802.3網(wǎng)絡(luò)定義的媒體類型和無(wú)中繼器的最大配置。表9.1IEEE802.3傳輸媒體
3.最大有效載荷
最大幀長(zhǎng)為1518個(gè)字節(jié),不包括前導(dǎo)碼(7字節(jié))和幀始界符(1字節(jié))。最大有效載荷長(zhǎng)度取決于地址大小。采用2字節(jié)地址時(shí)發(fā)送的數(shù)據(jù)可達(dá)1508個(gè)字節(jié);采用6字節(jié)地址時(shí)發(fā)送的數(shù)據(jù)最高達(dá)1500字節(jié)。對(duì)于100Mb/s或更低速率的傳輸媒體,最小幀長(zhǎng)為64個(gè)字節(jié)。
以速率大于100Mb/s的半雙工方式運(yùn)行的媒體,需要的最小幀長(zhǎng)為512個(gè)字節(jié)。較小的幀用非數(shù)據(jù)位填充,這些非數(shù)據(jù)位作為擴(kuò)展字段附加在原始幀上。對(duì)于原始標(biāo)準(zhǔn)作這種修改是必需的,因?yàn)橹挥羞@樣,才能適應(yīng)千兆位網(wǎng)絡(luò)所需的物理距離(距離定義了信號(hào)傳播時(shí)間)和維持發(fā)送器在發(fā)送最小幀的同時(shí)檢測(cè)出沖突的能力。同樣,對(duì)于操作速率高于100Mb/s的全雙工模式,常見(jiàn)的實(shí)現(xiàn)方式是發(fā)送突發(fā)的數(shù)據(jù)幀的同時(shí)不放棄控制,最大突發(fā)長(zhǎng)度為8192個(gè)字節(jié)。在發(fā)送包括任何擴(kuò)展的第一個(gè)幀后,后續(xù)幀的發(fā)送不再需要擴(kuò)展字段。發(fā)送者用非數(shù)據(jù)位填充幀間的空隙,以便指示接收者這是突發(fā)模式。9.1.4數(shù)據(jù)監(jiān)聽(tīng)原理
以太網(wǎng)提供物理上的連接,而TCP/IP工作在上層。在以太網(wǎng)中,所有的通信都是廣播式的,也就是說(shuō),同一個(gè)網(wǎng)段的所有網(wǎng)絡(luò)接口都可以訪問(wèn)在物理媒體上傳輸?shù)乃袛?shù)據(jù),而每一個(gè)網(wǎng)絡(luò)接口都有一個(gè)惟一的硬件地址,這個(gè)硬件地址也就是網(wǎng)卡的MAC地址,大多數(shù)系統(tǒng)使用48bits的地址,表示網(wǎng)絡(luò)中的每一個(gè)設(shè)備。MAC地址通常用12位十六進(jìn)制的數(shù)字表示,前6位十六進(jìn)制數(shù)字由IEEE統(tǒng)一分發(fā),以確定廠商的惟一性,后6位數(shù)字由廠商負(fù)責(zé)管理。一般來(lái)說(shuō)每一塊網(wǎng)卡上的MAC地址都是不同的,每個(gè)網(wǎng)卡廠家得到一段地址,然后將這段地址分配給生產(chǎn)的網(wǎng)卡。在硬件地址和IP地址間使用ARP和RARP協(xié)議進(jìn)行相互轉(zhuǎn)換。在一個(gè)實(shí)際的系統(tǒng)中,數(shù)據(jù)的收發(fā)是由網(wǎng)卡來(lái)完成的。網(wǎng)卡接收到傳輸來(lái)的數(shù)據(jù),檢查數(shù)據(jù)幀目的MAC地址,根據(jù)計(jì)算機(jī)上的網(wǎng)卡驅(qū)動(dòng)程序設(shè)置的接收模式判斷接收與否。如接收,則產(chǎn)生中斷信號(hào)通知CPU;如不接收,則將數(shù)據(jù)幀丟棄。CPU得到中斷信號(hào)產(chǎn)生中斷,操作系統(tǒng)接收數(shù)據(jù)。通常網(wǎng)卡有如下接收模式:
(1)廣播方式:能夠接收網(wǎng)絡(luò)中的廣播信息。
(2)組播方式:能夠接收組播數(shù)據(jù)。
(3)直接方式:只有目的網(wǎng)卡才能接收該數(shù)據(jù)。
(4)混雜(Promiscuous)模式:能夠接收通過(guò)它的一切數(shù)據(jù),而不管該數(shù)據(jù)是否是傳給它的。嗅探(Sniffer)是指將本地NIC工作狀態(tài)設(shè)成混雜模式,捕捉與其連接的物理媒體上傳輸?shù)乃袛?shù)據(jù)的軟件或硬件。Sniffer工作在網(wǎng)絡(luò)環(huán)境中的底層。它將攔截的數(shù)據(jù)通過(guò)相應(yīng)的軟件處理,可以實(shí)時(shí)分析數(shù)據(jù)的內(nèi)容,進(jìn)而分析所處的網(wǎng)絡(luò)狀態(tài)和整體布局。
Sniffer一般用于分析網(wǎng)絡(luò)的數(shù)據(jù),以便找出網(wǎng)絡(luò)中所關(guān)心的潛在問(wèn)題。例如,網(wǎng)絡(luò)的某一段運(yùn)行不暢,報(bào)文的發(fā)送比較慢,而故障點(diǎn)未知,此時(shí)就可以通過(guò)Sniffer的協(xié)助判斷出問(wèn)題所在。Sniffer在功能和設(shè)計(jì)方面有很多不同。有些只能分析一種協(xié)議,而另一些可能能夠分析幾百種協(xié)議。Sniffer可以是軟件、硬件,甚至是軟/硬件的結(jié)合。常見(jiàn)的Sniffer軟件有NetXRay、SnifferPro、Sniffit、Snort、TCPdump等。
只有將Sniffer放置于被檢測(cè)的機(jī)器或網(wǎng)絡(luò)附近,才能有效地收集所需要的信息;另外一個(gè)比較好的方法就是將Sniffer放在網(wǎng)關(guān)上。這樣,系統(tǒng)管理員可以使用Sniffer來(lái)分析網(wǎng)絡(luò)信息交通狀況,并且找出網(wǎng)絡(luò)上發(fā)生問(wèn)題的位置。安全管理員則可以同時(shí)使用多種Sniffer,將它們放置在網(wǎng)絡(luò)的不同位置,從而形成一個(gè)入侵警報(bào)系統(tǒng)。工作于混雜模式的網(wǎng)絡(luò)適配器可以接受任何一個(gè)在同一網(wǎng)段上傳輸?shù)臄?shù)據(jù)包,因此也就存在著各種Sniffer程序用來(lái)捕獲網(wǎng)絡(luò)上傳遞的密碼、E-mail信息、文檔等一些沒(méi)有加密的信息。表9.2列出了常見(jiàn)傳輸介質(zhì)被監(jiān)聽(tīng)的可能性。表9.2常見(jiàn)傳輸介質(zhì)安全性表9.1.5網(wǎng)絡(luò)拓?fù)渑c數(shù)據(jù)監(jiān)聽(tīng)
1.網(wǎng)絡(luò)拓?fù)漕愋?/p>
每一種網(wǎng)絡(luò)都要有布線、網(wǎng)絡(luò)設(shè)備、文件服務(wù)器、工作站、軟件和培訓(xùn),這些要素以多種不同的方式進(jìn)行綜合便可以創(chuàng)建與具體單位的需要和資源相適應(yīng)的網(wǎng)絡(luò)。有些網(wǎng)絡(luò)的啟動(dòng)成本很低,但是維護(hù)和升級(jí)的代價(jià)很高;而另一些網(wǎng)絡(luò)雖然建立時(shí)耗資較大,但是易維護(hù)、易升級(jí)。
拓?fù)浣Y(jié)構(gòu)是指網(wǎng)絡(luò)的物理布局以及其邏輯特征。物理布局就像是描述辦公室、建筑物或校園中如何布線的示意圖,通常稱為電纜線路。網(wǎng)絡(luò)的邏輯是指信號(hào)沿電纜從一點(diǎn)向另一點(diǎn)進(jìn)行傳輸?shù)姆椒?。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)主要有三種:總線拓?fù)?、環(huán)型拓?fù)浜托切屯負(fù)洹?/p>
1)總線拓?fù)?/p>
總線拓?fù)浣Y(jié)構(gòu)(BusTopology)由從一臺(tái)PC機(jī)或文件服務(wù)器連向另一臺(tái)的電纜組成,與鏈上的鏈接非常相像。與鏈一樣,采用總線拓?fù)浣Y(jié)構(gòu)的網(wǎng)絡(luò)有一個(gè)起始點(diǎn)和一個(gè)終止點(diǎn),也就是與總線電纜段每個(gè)端點(diǎn)相連的終結(jié)器。傳送包時(shí),段中所有的節(jié)點(diǎn)都要對(duì)包進(jìn)行檢測(cè),而且包必須在給定時(shí)間內(nèi)到達(dá)目標(biāo)??偩€網(wǎng)絡(luò)必須符合IEEE的長(zhǎng)度規(guī)范,以確保包在期望的時(shí)間內(nèi)到達(dá)。如圖9.3所示。圖9.3總線拓?fù)浣Y(jié)構(gòu)由于終結(jié)器標(biāo)志著段的物理終點(diǎn),在總線網(wǎng)絡(luò)中至關(guān)重要。終結(jié)器是一個(gè)電阻。如果沒(méi)有終結(jié)器,信號(hào)將從原路徑反射回去。信號(hào)的反射會(huì)影響網(wǎng)絡(luò)時(shí)間的調(diào)配,與網(wǎng)絡(luò)上傳輸?shù)男碌男盘?hào)發(fā)生沖突。因此當(dāng)沒(méi)有終結(jié)器或終結(jié)器出錯(cuò)時(shí),段上的通信不能進(jìn)行。
傳統(tǒng)的總線設(shè)計(jì)適用于小型網(wǎng)絡(luò)。由于總線結(jié)構(gòu)需要的布線遠(yuǎn)遠(yuǎn)少于其他拓?fù)浣Y(jié)構(gòu),所以建設(shè)成本可以降到最低;同時(shí),添加其他工作站、在房間或辦公室中短距離擴(kuò)展總線也非常便利。其缺點(diǎn)是管理的成本非常高,例如,如果一個(gè)節(jié)點(diǎn)或電纜段發(fā)生故障,那么隔離故障段是很困難的,也就是說(shuō),一個(gè)有缺陷的節(jié)點(diǎn)、網(wǎng)絡(luò)段或連接器會(huì)使整個(gè)網(wǎng)絡(luò)癱瘓。另外,信息流使總線異常擁擠,需要添加網(wǎng)橋和其他設(shè)備來(lái)控制信息流量。2)環(huán)型拓?fù)?/p>
環(huán)型拓?fù)浣Y(jié)構(gòu)(RingTopology)中,數(shù)據(jù)的路徑是連續(xù)的,沒(méi)有邏輯的起點(diǎn)與終點(diǎn),因此也就沒(méi)有終結(jié)器。工作站和文件服務(wù)器在環(huán)的周圍各點(diǎn)上相連(見(jiàn)圖9.4)。當(dāng)數(shù)據(jù)傳輸?shù)江h(huán)時(shí),將沿著環(huán)從一個(gè)節(jié)點(diǎn)流向另一個(gè)節(jié)點(diǎn),找到其目標(biāo),然后繼續(xù)傳輸直到又回到原節(jié)點(diǎn)。圖9.4環(huán)型拓?fù)浣Y(jié)構(gòu)圖在環(huán)型拓?fù)浣Y(jié)構(gòu)的開(kāi)發(fā)早期,只允許數(shù)據(jù)沿一個(gè)方向傳輸,并在傳輸節(jié)點(diǎn)結(jié)束。新型高速環(huán)型技術(shù)采用兩個(gè)環(huán),使冗余數(shù)據(jù)可以沿相反的方向傳輸,因此,如果一個(gè)方向上的環(huán)中斷了,那么數(shù)據(jù)還可以以相反的方向在另一個(gè)環(huán)上傳輸,最終到達(dá)其目標(biāo)。
因?yàn)橛脕?lái)創(chuàng)建環(huán)型拓?fù)浣Y(jié)構(gòu)的設(shè)備能輕易地定位出故障的節(jié)點(diǎn)或電纜問(wèn)題,所以環(huán)型拓?fù)浣Y(jié)構(gòu)管理起來(lái)比總線拓?fù)浣Y(jié)構(gòu)要容易。這種結(jié)構(gòu)非常適合于LAN中長(zhǎng)距離傳輸信號(hào)的情況,在處理大容量的信息流時(shí)要優(yōu)于總線拓?fù)浣Y(jié)構(gòu)。
然而,環(huán)型拓?fù)浣Y(jié)構(gòu)在實(shí)施時(shí)比總線拓?fù)浣Y(jié)構(gòu)要昂貴。一般情況下,它在開(kāi)始時(shí)需要的電纜和網(wǎng)絡(luò)設(shè)備比較多;而且,環(huán)型拓?fù)浣Y(jié)構(gòu)的應(yīng)用不像總線拓?fù)浣Y(jié)構(gòu)那樣廣泛,因此供用戶選擇的設(shè)備選項(xiàng)較少,擴(kuò)展高速通信的選項(xiàng)也不多。3)星型拓?fù)?/p>
星型拓?fù)浣Y(jié)構(gòu)(StarTopology)是最古老的一種通信設(shè)計(jì)方法,是現(xiàn)代網(wǎng)絡(luò)的主流選擇。星型拓?fù)浣Y(jié)構(gòu)的物理布局由與中央集線器相連的多個(gè)節(jié)點(diǎn)組成(見(jiàn)圖9.5)。集線器是一種將各個(gè)單獨(dú)的電纜段或單獨(dú)的LAN連接為一個(gè)網(wǎng)絡(luò)的中央設(shè)備,有些集線器也被稱為集中器或存取裝置。單一的通信電纜段從集線器處向外輻射與終端連接。圖9.5星型拓?fù)浣Y(jié)構(gòu)星型拓?fù)浣Y(jié)構(gòu)的建設(shè)成本目前比總線網(wǎng)絡(luò)和環(huán)型網(wǎng)絡(luò)的要低,主要因?yàn)槠渚W(wǎng)絡(luò)設(shè)備和電纜的成本較低。與環(huán)型拓?fù)漕愃疲切屯負(fù)浣Y(jié)構(gòu)比傳統(tǒng)的總線網(wǎng)絡(luò)易于管理,可以輕易地把網(wǎng)絡(luò)設(shè)備從網(wǎng)絡(luò)中隔離出來(lái),而不影響對(duì)其他節(jié)點(diǎn)的服務(wù)。星型拓?fù)浣Y(jié)構(gòu)可以非常容易地通過(guò)連接其他節(jié)點(diǎn)或網(wǎng)絡(luò)來(lái)進(jìn)行擴(kuò)展,同時(shí)提供了將網(wǎng)絡(luò)擴(kuò)展為高速網(wǎng)絡(luò)互連的最佳選項(xiàng)。星型拓?fù)浣Y(jié)構(gòu)是最流行的拓?fù)浣Y(jié)構(gòu),因此適用于這種網(wǎng)絡(luò)類型的設(shè)備范圍也更廣一些。
這種結(jié)構(gòu)的缺點(diǎn)在于,集線器是單獨(dú)的失效點(diǎn)。如果集線器失效了,所有連接在其上的節(jié)點(diǎn)都不能進(jìn)行通信(除非集線器中內(nèi)建有冗余提供備份措施)。另一個(gè)缺點(diǎn)是,星型拓?fù)浣Y(jié)構(gòu)需要的電纜比總線拓?fù)浣Y(jié)構(gòu)多,但星型拓?fù)浣Y(jié)構(gòu)的布線和連接器比總線結(jié)構(gòu)的便宜。
2.各連接類型的監(jiān)聽(tīng)
監(jiān)聽(tīng)的目的是獲取所需的數(shù)據(jù)報(bào),因此監(jiān)聽(tīng)目標(biāo)的選擇是十分重要的。對(duì)于不同的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),監(jiān)聽(tīng)點(diǎn)(安裝嗅探器的節(jié)點(diǎn))的選取決定了所能監(jiān)聽(tīng)到的信息量。
1)總線拓?fù)?/p>
總線拓?fù)浣Y(jié)構(gòu)網(wǎng)絡(luò)的信息總是在主干電纜上以廣播的方式傳播,因此在主干電纜上任意一點(diǎn)接收到的信息都是相同的,如圖9.6(a)所示,圖中ABCDE各點(diǎn)都是等效的。所以對(duì)于總線拓?fù)涞木W(wǎng)絡(luò),只要將監(jiān)聽(tīng)節(jié)點(diǎn)插入所要監(jiān)聽(tīng)的網(wǎng)絡(luò),即可獲得在網(wǎng)絡(luò)上傳輸?shù)乃袛?shù)據(jù)報(bào)。2)環(huán)型拓?fù)?/p>
環(huán)型拓?fù)浣Y(jié)構(gòu)網(wǎng)絡(luò)與總線拓?fù)浣Y(jié)構(gòu)傳輸信息方式相似,信息在環(huán)型的主干電纜上以廣播的方式傳播,因此如圖9.6(b)所示,圖中ABCD各點(diǎn)等效。所以對(duì)于環(huán)型拓?fù)涞木W(wǎng)絡(luò),只要將監(jiān)聽(tīng)節(jié)點(diǎn)插入所要監(jiān)聽(tīng)的網(wǎng)絡(luò),即可獲得在網(wǎng)絡(luò)上傳輸?shù)乃袛?shù)據(jù)報(bào)。
3)星型拓?fù)?/p>
監(jiān)聽(tīng)點(diǎn)在星型拓?fù)浣Y(jié)構(gòu)網(wǎng)絡(luò)中的位置根據(jù)中心節(jié)點(diǎn)的類型不同而不同。星型拓?fù)渚W(wǎng)絡(luò)的中心節(jié)點(diǎn)分為Hub和Switch兩種類型(兩者聯(lián)系和區(qū)別參見(jiàn)“Hub原理與交換機(jī)設(shè)置互聯(lián)”的共享式與交換式網(wǎng)絡(luò)相關(guān)章節(jié))。以Hub為中心的星型拓?fù)渚W(wǎng)絡(luò)稱為共享型網(wǎng)絡(luò),以Switch為中心的星型拓?fù)渚W(wǎng)絡(luò)稱為交換型網(wǎng)絡(luò)。在共享式星型網(wǎng)絡(luò)中,Hub將各節(jié)點(diǎn)的數(shù)據(jù)報(bào)向所有的端口廣播,因此只要將監(jiān)聽(tīng)點(diǎn)接入Hub的任一空閑端口或嵌入Hub至任一節(jié)點(diǎn)間的通信鏈路即可獲取所有數(shù)據(jù)報(bào)(如圖9.6(c)所示);在交換式星型網(wǎng)絡(luò)中,Switch僅僅將數(shù)據(jù)報(bào)向?qū)?yīng)的端口轉(zhuǎn)發(fā),要獲取某一節(jié)點(diǎn)的數(shù)據(jù)報(bào),只能將監(jiān)聽(tīng)點(diǎn)嵌入至該點(diǎn)的數(shù)據(jù)鏈路或?qū)粨Q機(jī)進(jìn)行端口鏡像,因此不可能同時(shí)獲取在網(wǎng)絡(luò)上傳輸?shù)乃械臄?shù)據(jù)報(bào)文。如圖9.6(d)所示,在交換型星型拓?fù)渚W(wǎng)絡(luò)中,要獲取所有目標(biāo)或源為A節(jié)點(diǎn)的數(shù)據(jù)報(bào)文,只能在交換機(jī)處設(shè)置鏡像端口,引出監(jiān)聽(tīng)點(diǎn)A′(參見(jiàn)“Hub原理與交換機(jī)設(shè)置互聯(lián)”的ConfigurePortMirroring相關(guān)章節(jié));或者將監(jiān)聽(tīng)點(diǎn)置于A″處。
綜上所述,在不考慮通信鏈路保密性的前提下,交換式的星型拓?fù)浣Y(jié)構(gòu)是幾種結(jié)構(gòu)中數(shù)據(jù)保密性最好的,因此在實(shí)際中得到了廣泛的應(yīng)用。圖9.6不同拓?fù)渚W(wǎng)絡(luò)監(jiān)聽(tīng)點(diǎn)示意圖
9.2常見(jiàn)的IP數(shù)據(jù)報(bào)
9.2.1IPv4頭結(jié)構(gòu)
IP數(shù)據(jù)報(bào)頭最小長(zhǎng)度是5個(gè)字(20字節(jié),1個(gè)字=4字節(jié)),如果有其他選項(xiàng)的話,報(bào)頭可能會(huì)更長(zhǎng)。IPv4數(shù)據(jù)報(bào)中的數(shù)據(jù)(包括報(bào)頭中的數(shù)據(jù))以32位(4字節(jié))的方式來(lái)組織。IPv4數(shù)據(jù)報(bào)頭中包含至少12個(gè)不同字段,且在沒(méi)有選項(xiàng)時(shí)長(zhǎng)度為20字節(jié),但在包含選項(xiàng)時(shí)可達(dá)60字節(jié)。數(shù)據(jù)報(bào)結(jié)構(gòu)如圖9.7所示。圖9.7IPv4頭結(jié)構(gòu)
(1)版本號(hào)(VERS):對(duì)于IPv4來(lái)說(shuō),版本號(hào)為4。
(2)報(bào)頭長(zhǎng)度(HLENS):范圍是5~15個(gè)字。
(3)服務(wù)類型(ServiceType):表示數(shù)據(jù)報(bào)的服務(wù)類型TOS,即處理的優(yōu)先級(jí),包括延時(shí)、吞吐量、可靠性或代價(jià),在IPv4中的應(yīng)用并不廣泛。
(4)報(bào)文總長(zhǎng)度(TotalLength):以字節(jié)為單位。限定了IP數(shù)據(jù)報(bào)的最大長(zhǎng)度為65?535字節(jié),網(wǎng)絡(luò)主機(jī)可以使用數(shù)據(jù)報(bào)長(zhǎng)度來(lái)確定一個(gè)數(shù)據(jù)報(bào)的結(jié)束和下一個(gè)數(shù)據(jù)報(bào)的開(kāi)始;當(dāng)傳送長(zhǎng)度超過(guò)65535字節(jié)的IP數(shù)據(jù)報(bào)時(shí),大多數(shù)的鏈路層都會(huì)分片。主機(jī)一般要求接收的數(shù)據(jù)報(bào)不超過(guò)576字節(jié)。由于TCP把用戶數(shù)據(jù)分成若干片,因此,一般來(lái)說(shuō)這個(gè)限制不會(huì)影響TCP。(5)標(biāo)識(shí)符(ID):該16位標(biāo)識(shí)符由產(chǎn)生它的主機(jī)惟一指定給數(shù)據(jù)報(bào),分段后的數(shù)據(jù)報(bào)共享同一個(gè)數(shù)據(jù)報(bào)ID,有助于接收主機(jī)對(duì)分段的數(shù)據(jù)報(bào)重裝。
(6)標(biāo)志位(FLG):包括三個(gè)1位標(biāo)志,用于標(biāo)識(shí)報(bào)文是否允許被分段和是否使用了這些域。第一位保留并設(shè)為0;第二位標(biāo)識(shí)報(bào)文能否被分段;0表示報(bào)文可以被分段,1表示報(bào)文不能被分段;第三位只有在第二位為0時(shí)才有意義,這一位標(biāo)識(shí)此報(bào)文是否是這一系列分段的最后一個(gè),或者接收應(yīng)用程序時(shí)是否還希望有更多的段,0指示報(bào)文是最后一個(gè)。
(7)分段偏移(FragmentOffset):接收主機(jī)時(shí),同時(shí)使用標(biāo)志位和分段偏移,以重組被分段的數(shù)據(jù)報(bào)。這個(gè)值以64位為單位遞增。(8)生存時(shí)間(TTL):代表數(shù)據(jù)報(bào)在被丟棄前能夠穿越的最大主機(jī)跳數(shù),TTL的初始值由源主機(jī)設(shè)置(通常為32或64),每經(jīng)過(guò)一個(gè)處理節(jié)點(diǎn)減1。當(dāng)該字段的值為0時(shí),報(bào)文就被認(rèn)為是不可轉(zhuǎn)發(fā)的,之后產(chǎn)生一個(gè)ICMP報(bào)文并發(fā)回源主機(jī),不可轉(zhuǎn)發(fā)的報(bào)文被丟棄。
(9)協(xié)議(Protocol):指明數(shù)據(jù)報(bào)中攜帶的凈荷類型,主要標(biāo)識(shí)所使用的協(xié)議,一般是指TCP協(xié)議、UDP協(xié)議、ICMP報(bào)文和IGMP報(bào)文。
(10)頭校驗(yàn)和(HeaderChecksum):目的是保證報(bào)文頭的正確性,目的主機(jī)、網(wǎng)絡(luò)中的每個(gè)網(wǎng)關(guān)要重新計(jì)算報(bào)文頭的校驗(yàn)和,如果計(jì)算出的校驗(yàn)和與報(bào)文所含的校驗(yàn)和不同,就必須丟棄該報(bào)文。
(11)源IP地址(SourceIPAddress):指明數(shù)據(jù)報(bào)的發(fā)送方地址。
(12)目的IP地址(DestinationIPAddress):指明數(shù)據(jù)報(bào)的接收方地址。
(13)?IP選項(xiàng)(IPOptions):在IPv4中,IP選項(xiàng)主要用于網(wǎng)絡(luò)測(cè)試和調(diào)試。
(14)填充區(qū)(Padding):為了保證IP頭長(zhǎng)度是32位的整數(shù)倍,要填充額外的0。由圖9.1可以得知,IPv4的網(wǎng)際層是無(wú)連接的,網(wǎng)絡(luò)中的轉(zhuǎn)發(fā)設(shè)備可以自由決定通過(guò)網(wǎng)絡(luò)的報(bào)文的理想轉(zhuǎn)發(fā)路徑;不提供任何上層協(xié)議(如TCP)的應(yīng)答、流控、順序化功能;不能用于傳輸IP報(bào)文中數(shù)據(jù)到正確目的地的應(yīng)用程序。這些功能是由TCP/UDP等上層協(xié)議完成的。9.2.2TCP
1.?TCP的服務(wù)
在一個(gè)TCP連接中,僅有兩方進(jìn)行相互通信。TCP通過(guò)如下方式來(lái)提供可靠性連接:
(1)用戶數(shù)據(jù)被分割成TCP認(rèn)為最適合發(fā)送的數(shù)據(jù)塊。由TCP傳遞給IP的信息單位稱為報(bào)文段或段(Segment)(見(jiàn)圖9.2)。
(2)當(dāng)TCP發(fā)出一個(gè)段后,啟動(dòng)一個(gè)定時(shí)器,等待目的端收到這個(gè)報(bào)文段的確認(rèn)。如果不能及時(shí)收到一個(gè)確認(rèn)信息,將重發(fā)這個(gè)報(bào)文段。
(3)當(dāng)TCP收到來(lái)自TCP連接另一端的數(shù)據(jù)時(shí),將發(fā)送一個(gè)確認(rèn)信息。這個(gè)確認(rèn)信息不是立即發(fā)送的,通常推遲幾分之一秒。
(4)?TCP將保持首部和數(shù)據(jù)的檢驗(yàn)和。這是一個(gè)端到端的檢驗(yàn)和,目的是檢測(cè)數(shù)據(jù)在傳輸過(guò)程中的任何變化。如果收到段的檢驗(yàn)和有差錯(cuò),TCP將丟棄這個(gè)報(bào)文段并對(duì)收到此報(bào)文段的事件進(jìn)行確認(rèn)(希望發(fā)送端超時(shí)重發(fā))。
(5)由于TCP報(bào)文段作為IP數(shù)據(jù)報(bào)來(lái)傳輸,而IP數(shù)據(jù)報(bào)的到達(dá)可能會(huì)失序,因此TCP將對(duì)收到的數(shù)據(jù)進(jìn)行重新排序后,以正確的順序交給應(yīng)用層。
(6)由于IP數(shù)據(jù)可能會(huì)發(fā)生重復(fù),TCP的接收端必須丟棄重復(fù)的數(shù)據(jù)。
(7)?TCP還提供流量控制。TCP連接的雙方都有固定大小的緩沖空間。接收端只允許發(fā)送端發(fā)送接收端緩沖區(qū)所能容納的數(shù)據(jù),防止發(fā)送信息較快的主機(jī)導(dǎo)致較慢主機(jī)的緩沖區(qū)溢出。
兩個(gè)應(yīng)用程序通過(guò)TCP連接交換字節(jié)流。TCP不在字節(jié)流中插入記錄標(biāo)識(shí)符。我們將這稱為字節(jié)流服務(wù)(ByteStreamService)。一端將字節(jié)流放到TCP連接上,同樣的字節(jié)流將出現(xiàn)在TCP連接的另一端。另外,TCP對(duì)字節(jié)流的內(nèi)容不作任何解釋,TCP不知道傳輸?shù)臄?shù)據(jù)字節(jié)流是二進(jìn)制數(shù)據(jù),還是ASCII字符、EBCDIC字符或者其他類型數(shù)據(jù)。對(duì)字節(jié)流的解釋是由TCP連接雙方的應(yīng)用層完成的。
2.?TCP報(bào)文頭
TCP數(shù)據(jù)被封裝在一個(gè)IP數(shù)據(jù)報(bào)中,如圖9.8所示。圖9.8TCP數(shù)據(jù)在IP數(shù)據(jù)報(bào)中的封裝圖9.9給出了TCP首部的數(shù)據(jù)格式。如果不計(jì)任選字段,通常是20個(gè)字節(jié)。圖9.9TCP包首部(1)源端口(SourcePort):16位的源端口字段包含了初始化通信的端口號(hào)。源端口和源IP地址的作用是標(biāo)識(shí)報(bào)文的返回地址。
(2)目的端口(DestinationPort):16位的目的端口字段定義了傳輸?shù)哪康牡囟丝谔?hào),指明接收?qǐng)?bào)文的計(jì)算機(jī)上的應(yīng)用程序地址接口。
每個(gè)TCP段都包含源端和目的端的端口號(hào),用于尋找發(fā)送端和接收端應(yīng)用進(jìn)程。這兩個(gè)參數(shù)加上IP首部中的源端IP地址和目的端IP地址惟一確定一個(gè)TCP連接。一個(gè)IP地址和一個(gè)端口號(hào)也稱為一個(gè)插口(Socket)。插口對(duì)(SocketPair)(包含客戶IP地址、客戶端口號(hào)、服務(wù)器IP地址和服務(wù)器端口號(hào)的四元組)可惟一確定互聯(lián)網(wǎng)絡(luò)中每個(gè)TCP連接的雙方。(3)序號(hào)字段(InitialSequanceNumber):該序號(hào)是32bit的無(wú)符號(hào)數(shù),到達(dá)232-1后又從0開(kāi)始,表示在這個(gè)報(bào)文段中的第一個(gè)數(shù)據(jù)字節(jié)的編號(hào)。如果將字節(jié)流看作在兩個(gè)應(yīng)用程序間的單向流動(dòng),則TCP用序號(hào)字段對(duì)每個(gè)字節(jié)進(jìn)行計(jì)數(shù)。在動(dòng)態(tài)路由網(wǎng)絡(luò)中,報(bào)文很可能使用不同的路由,因此,報(bào)文可能亂序。利用序號(hào)字段可以糾正傳輸導(dǎo)致的亂序,從而重組分段的報(bào)文。
(4)確認(rèn)序號(hào)(AcknowledgmentNumber):TCP使用32位的應(yīng)答(ACK)域標(biāo)識(shí)下一個(gè)希望收到的報(bào)文的第一個(gè)字節(jié)的編號(hào),收到ACK報(bào)文的源計(jì)算機(jī)會(huì)知道哪些特定的段已被收到。每個(gè)ACK的號(hào)是應(yīng)答報(bào)文的序列號(hào),這個(gè)域只在ACK標(biāo)志被設(shè)置時(shí)才有效。
(5)首部長(zhǎng)度(DataOffset):長(zhǎng)為4位,該字段以Word(32bit)為單位計(jì)量TCP頭長(zhǎng)度。
(6)保留字段(ReservedBits):是6位恒為0的域,為將來(lái)定義新的用途保留。
(7)?URG:緊急指針有效。
(8)?ACK:確認(rèn)序號(hào)有效。
(9)?PSH:接收方應(yīng)該盡快將這個(gè)報(bào)文段交給應(yīng)用層。
(10)?RST:重置連接。
(11)?SYN:同步序號(hào)用來(lái)發(fā)起一個(gè)連接。
(12)?FIN:發(fā)送端完成發(fā)送任務(wù)。(13)窗口大?。涸撟侄伪砻鹘邮斩寺暶骺梢越邮盏腡CP數(shù)據(jù)段的大小。窗口大小為字節(jié)數(shù),起始于確認(rèn)序號(hào)字段指明的值,這個(gè)值是接收端期望接收的字節(jié)數(shù)。窗口大小是一個(gè)16位字段,因而窗口大小最大為65535字節(jié)。
(14)校驗(yàn)和(Checksum):16位的數(shù)據(jù)校驗(yàn)段是一個(gè)強(qiáng)制性的字段,由發(fā)送端計(jì)算存儲(chǔ),由接收端進(jìn)行驗(yàn)證。校驗(yàn)和對(duì)整個(gè)TCP報(bào)文段進(jìn)行校驗(yàn),包括TCP首部和TCP數(shù)據(jù)。如果收到的內(nèi)容沒(méi)有被改變過(guò),雙方的計(jì)算結(jié)果應(yīng)該完全一樣,從而保證了數(shù)據(jù)的有效性。(15)緊急指針(UrgentPoint):只有當(dāng)URG標(biāo)志置1時(shí)緊急指針才有效。緊急指針是一個(gè)正的偏移量,和序號(hào)字段中的值相加表示緊急數(shù)據(jù)最后一個(gè)字節(jié)的序號(hào)。TCP的緊急方式是發(fā)送端向另一端發(fā)送緊急數(shù)據(jù)的一種方式。
(16)選項(xiàng)(Option):常見(jiàn)的可選字段是最長(zhǎng)報(bào)文大小(MSS,MaximumSegmentSize)。每個(gè)連接方通常都在通信的第一個(gè)報(bào)文段(為建立連接而設(shè)置SYN標(biāo)志的那個(gè)段)中指明這個(gè)選項(xiàng),指明本端所能接收的最大報(bào)文段長(zhǎng)度。
(17)數(shù)據(jù)段(Data):TCP報(bào)文段中的數(shù)據(jù)部分是可選的。在連接建立和連接中止時(shí),雙方交換的報(bào)文段僅有TCP首部。如果一方?jīng)]有數(shù)據(jù)要發(fā)送,仍然要發(fā)送一個(gè)沒(méi)有任何數(shù)據(jù)的首部來(lái)確認(rèn)收到的數(shù)據(jù)。在處理超時(shí)的許多情況中,也會(huì)發(fā)送不帶任何數(shù)據(jù)的報(bào)文段。
3.建立TCP連接
為了建立一條TCP連接,雙方進(jìn)行如下通信(如圖9.10所示):
(1)請(qǐng)求端(通常稱為客戶)發(fā)送一個(gè)SYN段,指明客戶打算連接的服務(wù)器的端口,以及初始序號(hào)(SEQ)。這個(gè)SYN段為報(bào)文段1。
(2)服務(wù)器發(fā)回包含服務(wù)器的初始序號(hào)的SYN報(bào)文段(報(bào)文段2)作為應(yīng)答。同時(shí),將確認(rèn)序號(hào)設(shè)置為客戶的ISN加1,用以對(duì)客戶的SYN報(bào)文段進(jìn)行確認(rèn)。一個(gè)SYN占用一個(gè)序號(hào)。
(3)客戶必須將確認(rèn)序號(hào)設(shè)置為服務(wù)器的ISN加1,用以對(duì)服務(wù)器的SYN報(bào)文段進(jìn)行確認(rèn)(報(bào)文段3)。
上述三個(gè)過(guò)程的完成表明建立了連接,該過(guò)程也稱為三次握手(Three-wayHandshake)。圖9.10建立連接的三次握手機(jī)制
4.中止TCP連接
建立一個(gè)連接需要三次握手,而中止一個(gè)連接要經(jīng)過(guò)四次握手,它是由TCP的半關(guān)閉(half-close)特性造成的。由于TCP是全雙工連接,每個(gè)方向的連接必須單獨(dú)關(guān)閉,因此當(dāng)一方完成數(shù)據(jù)發(fā)送任務(wù)后必須發(fā)送一個(gè)FIN標(biāo)志來(lái)中止這個(gè)方向的連接。當(dāng)一端收到一個(gè)FIN后,必須通知應(yīng)用層另一端已經(jīng)中止了該方向的數(shù)據(jù)傳送。發(fā)送FIN通常是應(yīng)用層關(guān)閉連接的結(jié)果。
TCP連接收到一個(gè)FIN標(biāo)志只意味著對(duì)方已不再發(fā)送數(shù)據(jù),但己方仍能發(fā)送數(shù)據(jù),這是半關(guān)閉型應(yīng)用。正常關(guān)閉過(guò)程如圖9.11所示。圖9.11中止連接的四次握手機(jī)制9.2.3UDP
UDP是一個(gè)簡(jiǎn)單的面向數(shù)據(jù)報(bào)的運(yùn)輸層協(xié)議。進(jìn)程的每個(gè)輸出操作都正好產(chǎn)生一個(gè)UDP數(shù)據(jù)報(bào),并組裝成一份待發(fā)送的IP數(shù)據(jù)報(bào)。UDP協(xié)議與TCP等面向流字符的協(xié)議不同,應(yīng)用程序產(chǎn)生的全體數(shù)據(jù)與真正發(fā)送的單個(gè)IP數(shù)據(jù)報(bào)可能沒(méi)有什么聯(lián)系。UDP數(shù)據(jù)報(bào)封裝成IP數(shù)據(jù)報(bào)的格式如圖9.12所示。圖9.12UDP數(shù)據(jù)在IP數(shù)據(jù)報(bào)中的封裝UDP不提供可靠性,它把應(yīng)用程序的數(shù)據(jù)發(fā)送出去,但是并不保證它們能到達(dá)目的地。UDP是小型的、資源占用率很低的一種傳輸層協(xié)議,實(shí)際操作比TCP快。因此,它適合于不斷出現(xiàn)的、和時(shí)間相關(guān)的應(yīng)用(如IP上傳輸語(yǔ)音和實(shí)時(shí)的可視會(huì)議),以及其他的網(wǎng)絡(luò)功能(如在路由器之間傳輸路由表更新,或傳輸網(wǎng)絡(luò)管理/監(jiān)控?cái)?shù)據(jù))。這些功能,雖然對(duì)網(wǎng)絡(luò)的可操作性很關(guān)鍵,但是,如果使用可靠的TCP傳輸機(jī)制會(huì)占用過(guò)多的網(wǎng)絡(luò)資源。不提供可靠性的協(xié)議并不意味著是無(wú)用協(xié)議,它只意味著設(shè)計(jì)用于支持不同的應(yīng)用類型。
UDP報(bào)文頭的各字段如圖9.13所示。圖9.13UDP包首部(1)源端口(SourcePort):源端口是發(fā)送端上的連接端口。源端口和源IP地址可作為報(bào)文的返回地址。TCP端口號(hào)與UDP端口號(hào)是相互獨(dú)立的。
(2)目的端口(DestinationPort):目的端口是接收端上的連接端口。目的端口用于把到達(dá)接收端的報(bào)文準(zhǔn)確無(wú)誤地轉(zhuǎn)發(fā)。
(3)信息長(zhǎng)度(TotalLength):該字段為16位,存儲(chǔ)UDP首部和UDP數(shù)據(jù)的字節(jié)長(zhǎng)度,最小值為8字節(jié)。
(4)校驗(yàn)和(Checksum):是一個(gè)基于報(bào)文的內(nèi)容計(jì)算得到的16位的錯(cuò)誤檢查域。接收端執(zhí)行和發(fā)送端相同的數(shù)學(xué)計(jì)算,若兩個(gè)計(jì)算值不同則表明報(bào)文在傳輸過(guò)程中出現(xiàn)了錯(cuò)誤。9.2.4ARP
數(shù)據(jù)鏈路(如以太網(wǎng)或令牌環(huán)網(wǎng))都有自己的尋址機(jī)制(通常為48bit地址),這是基于數(shù)據(jù)鏈路的任何網(wǎng)絡(luò)層都必須遵從的。一個(gè)物理網(wǎng)絡(luò)(如以太網(wǎng))可以同時(shí)被不同的網(wǎng)絡(luò)層使用。例如,一組使用TCP/IP協(xié)議的主機(jī)和另一組使用某種PC網(wǎng)絡(luò)軟件的主機(jī)可以共享相同的電纜。
當(dāng)一臺(tái)主機(jī)把以太網(wǎng)數(shù)據(jù)幀發(fā)送到位于同一局域網(wǎng)上的另一臺(tái)主機(jī)時(shí),是根據(jù)48?bit的以太網(wǎng)地址來(lái)確定目的接口的,設(shè)備驅(qū)動(dòng)程序從不檢查IP數(shù)據(jù)報(bào)中的目的IP地址。地址解析為這兩種不同的地址形式提供映射,即提供32?bit的IP地址和數(shù)據(jù)鏈路層使用的任何類型的地址之間的轉(zhuǎn)換。
ARP為IP地址到對(duì)應(yīng)的硬件地址之間提供動(dòng)態(tài)映射,即將邏輯的Internet地址翻譯成對(duì)應(yīng)的物理硬件地址。動(dòng)態(tài)表明這個(gè)過(guò)程是自動(dòng)完成的,應(yīng)用程序用戶或系統(tǒng)管理員不必關(guān)心。
1.?ARP工作過(guò)程
假設(shè)在一個(gè)以太網(wǎng)中,客戶端要將一個(gè)IP報(bào)文發(fā)送到服務(wù)器端,那么客戶端必須把32bit的IP地址轉(zhuǎn)換成48bit的以太網(wǎng)地址。
(1)?ARP以廣播的方式發(fā)送ARPRequest數(shù)據(jù)幀給以太網(wǎng)上的每個(gè)主機(jī),如圖9.14中的虛線所示。ARP請(qǐng)求數(shù)據(jù)幀中包含目的主機(jī)的IP地址,意思是“如果你是這個(gè)IP地址的擁有者,請(qǐng)回答你的硬件地址”。圖9.14ARP操作過(guò)程(2)目的主機(jī)的ARP層收到這份廣播報(bào)文后,識(shí)別出這是發(fā)送端在尋問(wèn)它的IP地址,于是發(fā)送一個(gè)ARP應(yīng)答。這個(gè)ARP應(yīng)答包含IP地址及對(duì)應(yīng)的硬件地址。
(3)收到ARP應(yīng)答后,主機(jī)間通過(guò)使用ARP協(xié)議獲得的硬件地址進(jìn)行通信。
ARP要求網(wǎng)絡(luò)接口有一個(gè)硬件地址。在硬件上進(jìn)行的數(shù)據(jù)幀交換必須有正確的接口地址。TCP/IP的地址是32bit的IP地址,且知道主機(jī)的IP地址并不能讓內(nèi)核(如以太網(wǎng)驅(qū)動(dòng)程序)發(fā)送數(shù)據(jù)幀給主機(jī),內(nèi)核必須知道目的端的硬件地址才能發(fā)送數(shù)據(jù)。ARP的作用是指在32bit的IP地址和采用不同網(wǎng)絡(luò)技術(shù)的硬件地址之間提供動(dòng)態(tài)映射。點(diǎn)對(duì)點(diǎn)鏈路不使用ARP。當(dāng)設(shè)置這些鏈路時(shí)(一般在引導(dǎo)過(guò)程進(jìn)行),必須告知鏈路每一端的IP地址,并不涉及以太網(wǎng)地址這樣的硬件地址。
2.?ARP分組格式
在以太網(wǎng)上解析IP地址時(shí),ARP請(qǐng)求和應(yīng)答分組的格式如圖9.15所示(ARP亦可用于解析其他類型網(wǎng)絡(luò)的IP地址以外的地址,緊跟著幀類型字段的前四個(gè)字段決定了最后四個(gè)字段的類型和長(zhǎng)度)。
(1)目的地址(DestinationAddress):該字段為6字節(jié),存儲(chǔ)以太網(wǎng)的目的地址。
(2)源地址(SourceAddress):該字段為6字節(jié),存儲(chǔ)以太網(wǎng)的源地址。(3)以太網(wǎng)數(shù)據(jù)幀類型(EtherType):該字段為2字節(jié),存儲(chǔ)以太網(wǎng)數(shù)據(jù)幀類型,表示后面數(shù)據(jù)的類型。對(duì)于ARP請(qǐng)求/應(yīng)答來(lái)說(shuō),該字段的值為0x0806。
上述三個(gè)字段組成了以太網(wǎng)幀首部(見(jiàn)圖9.2),以太網(wǎng)報(bào)頭中DestinationAddress為全1的特殊地址是廣播地址,電纜上的所有以太網(wǎng)接口都必須接收廣播的數(shù)據(jù)幀。因此ARP協(xié)議在詢問(wèn)硬件地址時(shí)將目的地址設(shè)置為0xFFFFFFFFFFFF,表明該數(shù)據(jù)幀是向全體硬件接口發(fā)出的。圖9.15以太網(wǎng)傳輸?shù)腁RP請(qǐng)求和應(yīng)答分組格式(4)硬件接口類型(HardwareType):該字段為2字節(jié),用以識(shí)別硬件接口類型,0x0001表示以太網(wǎng)接口,其他接口對(duì)應(yīng)的值如表9.3所示。表9.3硬件接口類型一覽表(5)協(xié)議類型(ProtocolType):該字段為2字節(jié),標(biāo)識(shí)發(fā)送設(shè)備所使用的協(xié)議,在TCP/IP中,這些協(xié)議通常是EtherType,以0x0800表示。
(6)硬件地址長(zhǎng)度(LengthofHarewareAddress):該字段為1字節(jié)。
(7)協(xié)議地址長(zhǎng)度(LengthofProtocolAddress):該字段為1字節(jié)。
上述兩個(gè)字段以字節(jié)為單位,對(duì)于以太網(wǎng)上IP地址的ARP請(qǐng)求或應(yīng)答來(lái)說(shuō),它們的值分別為6和4,表明硬件地址即MAC地址為6字節(jié),協(xié)議地址即IP地址為4字節(jié)。
(8)操作類型(Opcode):該字段為2字節(jié),區(qū)分協(xié)議的四種操作,即ARP請(qǐng)求(值為1)、ARP應(yīng)答(值為2)、RARP請(qǐng)求(值為3)和RARP應(yīng)答(值為4)。ARP請(qǐng)求和ARP應(yīng)答的幀類型字段值是相同的,因此必須用操作類型字段將其區(qū)分。
(9)存儲(chǔ)發(fā)送端硬件地址(Sender’sHardwareAddress):該字段為6字節(jié)。
(10)存儲(chǔ)發(fā)送端協(xié)議地址(Sender’sProtocolAddress):該字段為4字節(jié)。
(11)存儲(chǔ)目的端硬件地址(TargetHardwareAddress):該字段為6字節(jié)。
(12)存儲(chǔ)目的端協(xié)議地址(TargetProtocolAddress):該字段為4字節(jié)。對(duì)于一個(gè)ARP請(qǐng)求來(lái)說(shuō),除目標(biāo)端的硬件地址外的所有其他的字段都有填充值。當(dāng)系統(tǒng)收到一份目標(biāo)端為本機(jī)的ARP請(qǐng)求報(bào)文后,首先把硬件地址填進(jìn)去,然后用兩個(gè)目標(biāo)端地址分別替換兩個(gè)發(fā)送端地址,并把操作類型置為2,最后把它發(fā)送回去。9.2.5ICMP
ICMP是IP層的一個(gè)組成部分,通常由IP層或更高層協(xié)議(TCP或UDP)調(diào)用,主要功能是傳遞差錯(cuò)報(bào)文以及其他需要注意的信息。部分ICMP報(bào)文把差錯(cuò)信息返回至用戶進(jìn)程。
ICMP報(bào)文是在IP數(shù)據(jù)報(bào)內(nèi)部被傳輸?shù)模鐖D9.16所示。圖9.16ICMP數(shù)據(jù)在IP數(shù)據(jù)報(bào)中的封裝類型字段可以有15個(gè)不同的值,以描述特定類型的ICMP報(bào)文。某些ICMP報(bào)文還使用代碼字段的值來(lái)進(jìn)一步描述不同的條件。
校驗(yàn)和字段覆蓋了整個(gè)ICMP報(bào)文。對(duì)于ICMP報(bào)文來(lái)說(shuō),校驗(yàn)和是必需的。
1.?ICMP報(bào)文類型
ICMP的報(bào)文類型由報(bào)文中的類型字段和代碼字段來(lái)共同決定,如表9.4所示。表中的最后兩列表明ICMP報(bào)文是查詢報(bào)文還是差錯(cuò)報(bào)文。對(duì)ICMP差錯(cuò)報(bào)文有時(shí)需要作特殊處理,因此需要對(duì)它們進(jìn)行區(qū)分。例如,在對(duì)ICMP差錯(cuò)報(bào)文進(jìn)行響應(yīng)時(shí),不能生成另一個(gè)ICMP差錯(cuò)報(bào)文(如果沒(méi)有這個(gè)限制規(guī)則,可能會(huì)遇到一個(gè)差錯(cuò)產(chǎn)生另一個(gè)差錯(cuò)的情況,而差錯(cuò)繼續(xù)產(chǎn)生差錯(cuò),這樣會(huì)產(chǎn)生無(wú)限循環(huán))。ICMP差錯(cuò)報(bào)文包含IP的首部和產(chǎn)生ICMP差錯(cuò)報(bào)文的IP數(shù)據(jù)報(bào)的前8個(gè)字節(jié),這樣,接收ICMP差錯(cuò)報(bào)文的模塊就會(huì)把它與某個(gè)特定的協(xié)議(根據(jù)IP數(shù)據(jù)報(bào)首部中的協(xié)議字段來(lái)判斷)和用戶進(jìn)程(根據(jù)包含在IP數(shù)據(jù)報(bào)前8個(gè)字節(jié)中的TCP或UDP報(bào)文首部中的TCP或UDP端口號(hào)來(lái)判斷)聯(lián)系起來(lái)。為了防止由于ICMP差錯(cuò)報(bào)文響應(yīng)所引發(fā)的廣播風(fēng)暴,協(xié)議規(guī)定當(dāng)接收端收到下列的報(bào)文時(shí)不會(huì)產(chǎn)生ICMP差錯(cuò)報(bào)文:
(1)?ICMP差錯(cuò)報(bào)文(但I(xiàn)CMP查詢報(bào)文可能會(huì)產(chǎn)生ICMP差錯(cuò)報(bào)文)。
(2)目的地址是廣播地址或多播地址的IP數(shù)據(jù)報(bào)。
(3)作為鏈路層廣播的數(shù)據(jù)報(bào)。
(4)不是IP數(shù)據(jù)報(bào)第一個(gè)分片的數(shù)據(jù)報(bào)。
(5)源地址不是單個(gè)主機(jī)的數(shù)據(jù)報(bào)。這就是說(shuō),源地址不能為零地址、環(huán)回地址、廣播地址或多播地址。表9.4ICMP報(bào)文類型
2.?Ping程序與ICMP回顯報(bào)文
Ping程序的功能是對(duì)兩個(gè)TCP/IP系統(tǒng)的連通性進(jìn)行測(cè)試。該程序發(fā)送一份ICMP回顯請(qǐng)求查詢報(bào)文給主機(jī),并等待返回ICMP回顯應(yīng)答,利用ICMP回顯請(qǐng)求和回顯應(yīng)答報(bào)文,而不經(jīng)過(guò)傳輸層(TCP/UDP)。
一般來(lái)說(shuō),如果不能Ping通某臺(tái)主機(jī),那么就不能連接到該主機(jī)。反過(guò)來(lái),如果不能連接到某臺(tái)主機(jī),就可以用Ping來(lái)確定問(wèn)題出在哪里。Ping還能測(cè)出本機(jī)到這臺(tái)主機(jī)的往返時(shí)間,以確定該主機(jī)離我們有“多遠(yuǎn)”。但是隨著網(wǎng)絡(luò)安全意識(shí)的增強(qiáng),出現(xiàn)了提供訪問(wèn)控制的網(wǎng)絡(luò)設(shè)備,一臺(tái)主機(jī)的可達(dá)性不只取決于IP層是否可達(dá),還取決于使用何種協(xié)議以及端口號(hào)。Ping程序的運(yùn)行結(jié)果可能顯示某臺(tái)主機(jī)不可達(dá),但我們?nèi)匀豢梢允褂迷撝鳈C(jī)的服務(wù)。雖然如此,Ping程序仍然是檢查網(wǎng)絡(luò)故障的較好工具之一。
通常稱發(fā)送回顯請(qǐng)求的Ping程序?yàn)榭蛻簦Q被Ping的主機(jī)為服務(wù)器。大多數(shù)的TCP/IP實(shí)現(xiàn)都在內(nèi)核中直接支持Ping服務(wù)器。ICMP回顯請(qǐng)求和回顯應(yīng)答報(bào)文如圖9.17所示。圖9.17ICMP回顯請(qǐng)求和回顯應(yīng)答報(bào)文格式對(duì)于其他類型的ICMP查詢報(bào)文,服務(wù)器必須響應(yīng)標(biāo)識(shí)符和序列號(hào)字段。另外,客戶發(fā)送的選項(xiàng)數(shù)據(jù)必須回顯。序列號(hào)從0開(kāi)始,每發(fā)送一次新的回顯請(qǐng)求就加1。Ping程序打印出返回的每個(gè)分組的序列號(hào),從而查看是否有分組丟失、失序或重復(fù)。對(duì)于IP服務(wù)來(lái)說(shuō),這三種情況都有可能發(fā)生。9.2.6SNMP
SNMP通常用來(lái)管理網(wǎng)絡(luò)設(shè)備并獲取設(shè)備信息,通常用在TCP/IP網(wǎng)絡(luò)中,尤其是大規(guī)模網(wǎng)絡(luò)中。SNMP可用來(lái)將自身的狀態(tài)發(fā)送給特殊的SNMP服務(wù)器軟件,顯示錯(cuò)誤隱患及其他可能出現(xiàn)的問(wèn)題。網(wǎng)絡(luò)管理員使用SNMP可以在一個(gè)地方獲取所有支持SNMP的網(wǎng)絡(luò)節(jié)點(diǎn)的信息,并且可進(jìn)行遠(yuǎn)程配置。
簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議最初是為處理網(wǎng)絡(luò)上的路由器而設(shè)計(jì)的。SNMP是TCP/IP協(xié)議族中的一員,但它并不依賴于IP。目前大部分SNMP都使用IP協(xié)議,但SNMP仍是獨(dú)立的協(xié)議(例如,它也可以用于Novell公司SPX/IPX中的IPX協(xié)議之上)。
SNMP并不是單個(gè)協(xié)議,它由用于網(wǎng)絡(luò)管理的三個(gè)協(xié)議組成。組成SNMP協(xié)議的三個(gè)部分及功能如下所示:
(1)一個(gè)管理信息庫(kù)MIB(ManagementInformationBase)。
管理信息庫(kù)包含所有代理進(jìn)程的可被查詢和修改的參數(shù)。RFC1213[McCloghrieandRose1991]定義了第二版的MIB,叫做MIB-Ⅱ。
(2)關(guān)于MIB的一套公用的結(jié)構(gòu)和表示符號(hào),叫做管理信息結(jié)構(gòu)(SMI,StructureofManagementInformation)。這個(gè)在RFC1155[RoseandMcCloghrie1990]中定義。例如:SMI定義計(jì)數(shù)器是一個(gè)非負(fù)整數(shù),它的計(jì)數(shù)范圍是0~4294967295,當(dāng)達(dá)到最大值時(shí),又從0開(kāi)始計(jì)數(shù)。(3)管理進(jìn)程和代理進(jìn)程之間的通信協(xié)議,叫做簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議(SNMP,SimpleNetworkManagementProtocol)。在RFC1157[Caseetal.1990]中定義。SNMP包括數(shù)據(jù)報(bào)交換的格式等內(nèi)容。盡管可以在傳輸層采用各種各樣的協(xié)議,但是在SNMP中,用得最多的協(xié)議還是UDP。
上面提到的RFC所定義的SNMP叫做SNMPv1,或者就叫做SNMP。截至今日,又有一些新的關(guān)于SNMP的RFC發(fā)表,在這些RFC中定義的SNMP分別叫做SNMPv2和SNMPv3。本節(jié)只介紹SNMPv1的主要內(nèi)容。
1.協(xié)議
關(guān)于管理進(jìn)程和代理進(jìn)程之間的交互信息,SNMP定義了五種報(bào)文:
(1)?get-request操作:從代理進(jìn)程處提取一個(gè)或多個(gè)參數(shù)值。
(2)?get-next-request操作:從代理進(jìn)程處提取一個(gè)或多個(gè)參數(shù)的下一個(gè)參數(shù)值。
(3)?set-request操作:設(shè)置代理進(jìn)程的一個(gè)或多個(gè)參數(shù)值。
(4)?get-response操作:返回一個(gè)或多個(gè)參數(shù)值。這個(gè)操作是由代理進(jìn)程發(fā)出的。它是?(3)?中操作的響應(yīng)操作。
(5)?trap操作:代理進(jìn)程主動(dòng)發(fā)出的報(bào)文,通知管理進(jìn)程有某些事情發(fā)生。前面的三個(gè)操作是由管理進(jìn)程向代理進(jìn)程發(fā)出的。后面兩個(gè)是代理進(jìn)程發(fā)給管理進(jìn)程的(為簡(jiǎn)化起見(jiàn),前面三個(gè)操作今后叫做get、get-next和set操作)。圖9.18描述了這五種操作。圖9.18SNMP的五種操作這些操作中的前四種操作是簡(jiǎn)單的請(qǐng)求應(yīng)答方式(也就是管理進(jìn)程發(fā)出請(qǐng)求,代理進(jìn)程應(yīng)答響應(yīng)),而且在SNMP中往往使用UDP協(xié)議,可能發(fā)生管理進(jìn)程和代理進(jìn)程之間數(shù)據(jù)報(bào)丟失的情況,因此一定要有超時(shí)和重傳機(jī)制。
管理進(jìn)程發(fā)出的前面三種操作采用UDP的161端口。代理進(jìn)程發(fā)出的Trap操作采用UDP的162端口。由于收發(fā)采用了不同的端口號(hào),所以一個(gè)系統(tǒng)可以同時(shí)是管理進(jìn)程和代理進(jìn)程。
圖9.19是封裝成UDP數(shù)據(jù)報(bào)的五種操作的SNMP報(bào)文格式。圖9.19SNMP報(bào)文格式在圖中對(duì)IP和UDP的首部長(zhǎng)度進(jìn)行了標(biāo)注。各個(gè)字段的內(nèi)容和作用為:
(1)版本字段是0。該字段的值是通過(guò)SNMP版本號(hào)減去1得到的,顯然0代表SNMPv1。
(2)?PDU(ProtocolDataUnit),協(xié)議數(shù)據(jù)單元,也就是分組。表9.5顯示了各種PDU的值和相對(duì)應(yīng)的類型名稱。表9.5SNMP報(bào)文中的PDU類型(3)共同體字段是一個(gè)字符串,是管理進(jìn)程和代理進(jìn)程之間的口令,是明文格式。默認(rèn)的值是public。
(4)請(qǐng)求標(biāo)識(shí)。對(duì)于get、get-next和set操作,請(qǐng)求標(biāo)識(shí)由管理進(jìn)程設(shè)置,然后由代理進(jìn)程在get-response中返回。這個(gè)字段的作用可將服務(wù)器進(jìn)程(即代理進(jìn)程)發(fā)出的響應(yīng)和客戶進(jìn)程發(fā)出的查詢進(jìn)行匹配,此外還允許管理進(jìn)程對(duì)一個(gè)或多個(gè)代理進(jìn)程發(fā)出多個(gè)請(qǐng)求,并且將返回的眾多應(yīng)答進(jìn)行分類。
(5)差錯(cuò)狀態(tài)字段是一個(gè)整數(shù),是由代理進(jìn)程標(biāo)注的,指明是否有差錯(cuò)發(fā)生。表9.6是差錯(cuò)狀態(tài)、名稱和描述之間的對(duì)應(yīng)關(guān)系。表9.6SNMP差錯(cuò)狀態(tài)的值(6)差錯(cuò)索引字段是一個(gè)整數(shù)偏移量,指明當(dāng)有差錯(cuò)發(fā)生時(shí),差錯(cuò)發(fā)生在哪個(gè)參數(shù)上。它是由代理進(jìn)程標(biāo)注的,并且只有在發(fā)生noSuchName、readOnly和badValue差錯(cuò)時(shí)才進(jìn)行標(biāo)注。
在get、get-next和set的請(qǐng)求數(shù)據(jù)報(bào)中,包含了變量名稱和變量值。對(duì)于get和get-next操作,變量值部分被忽略,也就是不需要填寫(xiě)。對(duì)于trap操作符(PDU類型是4),SNMP報(bào)文格式會(huì)有所變化。
2.管理信息結(jié)構(gòu)
SNMP中,數(shù)據(jù)類型并不多。下面討論這些數(shù)據(jù)類型,但不必關(guān)心這些數(shù)據(jù)類型在實(shí)際中是如何編碼的。
(1)?INTEGER:一個(gè)變量雖然定義為整型,但也有多種形式。有些整型變量沒(méi)有范圍限制,有些整型變量定義為特定的數(shù)值(例如,IP的轉(zhuǎn)發(fā)標(biāo)志只有允許轉(zhuǎn)發(fā)時(shí)的1和不允許轉(zhuǎn)發(fā)時(shí)的2兩種),有些整型變量定義為一個(gè)特定的范圍(例如,UDP和TCP的端口號(hào)范圍是0~65535)。
(2)?OCTERSTRING:0或多個(gè)8bit字節(jié),每個(gè)字節(jié)值在0~255之間。對(duì)于這種數(shù)據(jù)類型和下一種數(shù)據(jù)類型的BER(BasicEncodingRules)編碼,字符串的字節(jié)個(gè)數(shù)要超過(guò)字符串本身的長(zhǎng)度。這些字符串是不以NULL結(jié)尾的字符串。
(3)?DisplayString:0或多個(gè)8bit字節(jié),但是每個(gè)字節(jié)必須是ASCII碼。在MIB-Ⅱ中,該類型的變量不能超過(guò)255個(gè)字符(0個(gè)字符是可以的)。
(4)?OBJECTIDENTIFIER:對(duì)象標(biāo)識(shí)符。
(5)?NULL:代表相關(guān)的變量沒(méi)有值。例如,在get或get-next操作中,變量的值就是NULL,這些值有待到代理進(jìn)程中獲取。
(6)?IpAddress:4字節(jié)長(zhǎng)度的OCTERSTRING,是以網(wǎng)絡(luò)順序表示的IP地址。每個(gè)字節(jié)代表IP地址的一個(gè)字段。
(7)?PhysAddress:OCTERSTRING類型,代表物理地址(例如6個(gè)字節(jié)的以太網(wǎng)物理地址)。
(8)?Counter:非負(fù)的整數(shù),可從0遞增到232-1(4294976295),達(dá)到最大值后歸0。
(9)?Gauge:非負(fù)的整數(shù),取值范圍是0~4294976295(或增或減)。達(dá)到最大值后鎖定,直到復(fù)位。
(10)?TimeTicks:時(shí)間計(jì)數(shù)器,以0.01秒為單位遞增,不同的變量可以有不同的遞增幅度,所以在定義這種類型的變量的時(shí)候,必須指明遞增幅度。
(11)?SEQUENCE:這一數(shù)據(jù)類型與C程序設(shè)計(jì)語(yǔ)言中的結(jié)構(gòu)體類似。一個(gè)SEQUENCE包括0個(gè)或多個(gè)元素,每個(gè)元素又是另一個(gè)ASN.1數(shù)據(jù)類型。在這個(gè)變量中包含兩個(gè)元素:
①IpAddress類型中的udpLocalAddress,表示IP地址。
②INTEGER類型中的udpLocalPort,0~65535,表示端口號(hào)。
(12)?SEQUENDEOF:這是一個(gè)向量的定義,其中所有元素具有相同的類型。如果每一個(gè)元素都具有簡(jiǎn)單的數(shù)據(jù)類型,例如整數(shù)類型,就可得到一個(gè)簡(jiǎn)單的向量(一個(gè)一維向量)。但是,SNMP在使用這個(gè)數(shù)據(jù)類型時(shí),其向量中的每一個(gè)元素都是一個(gè)SEQUENCE(結(jié)構(gòu)),因而可以將它看成為一個(gè)二維數(shù)組或表。例如,名為udpTable的UDP監(jiān)聽(tīng)表(listener)就是這種類型的變量。它是一個(gè)二元的SEQUENCE變量。每個(gè)二元組就是一個(gè)udpEntry,如圖9.20所示。在SNMP中,對(duì)于這種類型的表格并沒(méi)有標(biāo)注它的列數(shù)。圖9.20表格形式的udpTable變量
3.對(duì)象標(biāo)識(shí)符
對(duì)象標(biāo)識(shí)是一種數(shù)據(jù)類型,它指明一種“授權(quán)”命名的對(duì)象?!笆跈?quán)”的意思就是這些標(biāo)識(shí)不是隨便分配的,而是由一些權(quán)威機(jī)構(gòu)進(jìn)行管理和分配的。
對(duì)象標(biāo)識(shí)是一個(gè)整數(shù)序列,以點(diǎn)“.”分隔。這些整數(shù)構(gòu)成一個(gè)樹(shù)型結(jié)構(gòu),類似于DNS或Unix的文件系統(tǒng)。對(duì)象標(biāo)識(shí)從樹(shù)的頂部開(kāi)始,頂部沒(méi)有標(biāo)識(shí),以root表示(這和Unix中文件系統(tǒng)的樹(shù)遍歷方向非常類似)。
圖9.21顯示了在SNMP中用到的這種樹(shù)型結(jié)構(gòu)。所有的MIB變量都從.2.1這個(gè)標(biāo)識(shí)開(kāi)始。圖9.21管理信息庫(kù)中的對(duì)象標(biāo)識(shí)樹(shù)上的每個(gè)節(jié)點(diǎn)同時(shí)還有一個(gè)文字名,例如標(biāo)識(shí).2.1就和ernet.mgmt.mib對(duì)應(yīng)。實(shí)際上,管理進(jìn)程和代理進(jìn)程進(jìn)行數(shù)據(jù)報(bào)交互時(shí),MIB變量名是以對(duì)象標(biāo)識(shí)來(lái)標(biāo)識(shí)的,當(dāng)然都是從.2.1開(kāi)始的。
在圖9.21中,除了給出了mib對(duì)象標(biāo)識(shí)外,還給出了ernet.private.enterprises(.4.1)這個(gè)標(biāo)識(shí),這是為廠家自定義而預(yù)留的。
9.3Wireshark的使用
9.3.1數(shù)據(jù)報(bào)捕捉
Wireshark支持以下四種方式啟動(dòng)數(shù)據(jù)包捕捉。
(1)可以使用工具欄“”圖標(biāo),打開(kāi)“CaptureInterfaces”對(duì)話框,瀏覽可用本地網(wǎng)絡(luò)接口(見(jiàn)圖9.22),選擇所需進(jìn)行捕捉的接口啟動(dòng)捕捉。圖9.22瀏覽可用本地網(wǎng)絡(luò)接口圖9.23CaptureOptions對(duì)話框
CaptureOptions對(duì)話框分為Capture、CaptureFile(s)、StopCapture…、DisplayOptions、NameResolution和按鈕六個(gè)區(qū)域。
①?Capture區(qū)域中,Interface指定進(jìn)行捕捉的借口,每次只能選擇一個(gè)接口。IPaddress表示選擇接口的IP地址。Link-layerheadertype表示數(shù)據(jù)鏈路層頭類型,默認(rèn)使用以太網(wǎng)(Ethernet)類型。Buffersize表明捕獲數(shù)據(jù)包時(shí)使用的內(nèi)存緩存大小。Capturepacketsinpromiscuousmode指定Wireshark捕捉包時(shí),接口為混雜模式(如果該項(xiàng)未指定,則只捕獲發(fā)送給本機(jī)的數(shù)據(jù)包)。Limiteachpacketto指定捕捉過(guò)程中,每個(gè)包的最大字節(jié)數(shù)。CaptureFilter指定只捕捉特定的數(shù)據(jù)包。
②CaptureFile(s)區(qū)域中,F(xiàn)ile指定捕捉數(shù)據(jù)存儲(chǔ)的文件名,空白表明數(shù)據(jù)存儲(chǔ)在臨時(shí)文件夾。Usemultiplefiles表明指定條件達(dá)到臨界值時(shí),將自動(dòng)生成一個(gè)新文件。Nextfileeverynmegabyte(s)/minutes(s)指定捕捉文件容量或持續(xù)時(shí)間達(dá)到指定值,將切換到新文件。Ringbufferwithnfiles指定生成n個(gè)文件的環(huán)形緩沖池。Stopcaputureafternfile(s)指生成指定數(shù)目文件后停止捕捉。
③StopCapture…區(qū)域中,...afternpacket(s)表明在捕捉到指定數(shù)目數(shù)據(jù)包后停止捕捉。...afternbyte(s)/kilobyte(s)/megabyte(s)/gigabyte(s)表明在捕捉到指定容量的數(shù)據(jù)后停止捕捉。...afternminute(s)表明在達(dá)到指定時(shí)間后停止捕捉。
④DisplayOptions區(qū)域中,Updatelistofpacketsinrealtime指定實(shí)時(shí)更新捕捉數(shù)據(jù),未選定該選項(xiàng)則在捕捉結(jié)束之前不顯示數(shù)據(jù)。Automaticscrollinginlivecapture指定有數(shù)據(jù)進(jìn)入時(shí)實(shí)時(shí)滾屏,否則最新數(shù)據(jù)包放置在行末。Hidecaptureinfodialog指定在捕捉時(shí)隱藏捕捉信息對(duì)話框。
⑤NameResolution區(qū)域中,EnableMACnameresolution設(shè)置是否解析MAC地址的前24位生產(chǎn)廠家。Enablenetworknameresolution設(shè)置是否解析網(wǎng)絡(luò)地址為域名。
⑥按鈕區(qū)域中,start按鈕進(jìn)行捕捉,Cancel退出捕捉。9.3.4數(shù)據(jù)報(bào)分析
在捕捉過(guò)程中、捕捉完成后或者打開(kāi)先前保存的包文件時(shí),單擊列表面板中的包,可以再看到關(guān)于這個(gè)包的詳情(見(jiàn)圖9.24)。圖9.24包詳情面板該窗口主要分為列表面板(PacketListPanes)、詳情面板(PacketDetailPanes)、字節(jié)面板(PacketBytePanes)三個(gè)部分。列表面板中每行顯示捕捉到的一個(gè)包,選擇其中任何一個(gè)包,則其具體情況會(huì)顯示在詳情面板和字節(jié)面板中。
(1)列表面板:顯示捕捉包的各項(xiàng)主要的信息。No.顯示包在此次捕捉中的編號(hào),即使使用過(guò)濾后編號(hào)也不會(huì)改變。Time顯示包的捕捉時(shí)間戳。Source顯示包的源地址。Destination顯示包的目標(biāo)地址。Protocol顯示包的協(xié)議類型。Info顯示包內(nèi)容的附加信息。(2)詳情面板:以樹(shù)狀方式顯示包列表面板選中包的協(xié)議及協(xié)議字段。
(3)字節(jié)面板:以16進(jìn)制轉(zhuǎn)儲(chǔ)方式顯示當(dāng)前選擇包的數(shù)據(jù)。左側(cè)顯示包數(shù)據(jù)偏移量,中間欄以16進(jìn)制表示包內(nèi)容,右側(cè)顯示為對(duì)應(yīng)的ASCII字符。根據(jù)包數(shù)據(jù)的不同,有時(shí)候包字節(jié)面板可能會(huì)由多個(gè)頁(yè)面組成。
9.4數(shù)據(jù)采集與分析
9.4.1TCP連接
TCP是一個(gè)面向連接的協(xié)議。一方向另一方發(fā)送數(shù)據(jù)之前,都必須先在雙方之間建立一條連接。本小節(jié)將以一個(gè)實(shí)例詳細(xì)介紹TCP連接是如何建立的以及通信結(jié)束后是如何終止的。
首先,打開(kāi)Wireshark并開(kāi)啟數(shù)據(jù)報(bào)捕捉功能,然后打開(kāi)命令行方式并鍵入如下命令:表9.7TCP連接建立和中止數(shù)據(jù)報(bào)
1.以太網(wǎng)數(shù)據(jù)幀
IP數(shù)據(jù)報(bào)的結(jié)構(gòu)是相同的,區(qū)別只是其中的內(nèi)容,因此SnifferPro捕捉到的七個(gè)數(shù)據(jù)報(bào)中的任意一個(gè)都有足夠的代表性來(lái)說(shuō)明IP數(shù)據(jù)報(bào)。數(shù)據(jù)報(bào)1的十六進(jìn)制碼如表9.8所示。表9.8數(shù)據(jù)報(bào)詳細(xì)內(nèi)容表9.9IP數(shù)據(jù)報(bào)和TCP數(shù)據(jù)報(bào)報(bào)頭
2.建立和中止連接
為了建立一條TCP連接,雙方進(jìn)行如下通信(如圖9.25所示):
(1)請(qǐng)求端(通常稱為客戶)發(fā)送一個(gè)SYN報(bào)文段指明客戶打算連接的服務(wù)器的端口,以及初始序號(hào)(SEQ,圖中為3267238601)。這個(gè)SYN報(bào)文段為報(bào)文段1。
(2)服務(wù)器發(fā)回包含服務(wù)器的初始序號(hào)的SYN報(bào)文段(報(bào)文段2)作為應(yīng)答,同時(shí),將確認(rèn)序號(hào)設(shè)置為客戶的ISN加1,確認(rèn)客戶的SYN報(bào)文段。SYN將占用一個(gè)序號(hào)。
(3)客戶必須將確認(rèn)序號(hào)設(shè)置為服務(wù)器的ISN加1,確認(rèn)服務(wù)器的SYN報(bào)文段(報(bào)文段3)。這三個(gè)報(bào)文段完成連接的建立。發(fā)送第一個(gè)SYN的一端將執(zhí)行主動(dòng)打開(kāi)(Activeopen)。接收這個(gè)SYN并發(fā)回下一個(gè)SYN的另一端執(zhí)行被動(dòng)打開(kāi)(Passiveopen)。
當(dāng)一端為建立連接而發(fā)送它的SYN時(shí),為連接選擇一個(gè)初始序號(hào)。ISN隨時(shí)間而變化,因此每個(gè)連接都將具有不同的ISN。RFC793[Postel1981c]指出ISN可看作是一個(gè)32位的計(jì)數(shù)器,每4ms加1。選擇序號(hào)的目的在于防止在網(wǎng)絡(luò)中被延遲的分組在以后又被傳送,從而導(dǎo)致某個(gè)連接的一方對(duì)它作出錯(cuò)誤的解釋。
圖9.25中的報(bào)文段4發(fā)起中止連接,它在鍵入QUIT命令后由Telnet客戶端關(guān)閉連接時(shí)發(fā)出。服務(wù)器收到QUIT命令后向TCP客戶端發(fā)送一個(gè)FIN,用來(lái)關(guān)閉從服務(wù)器到客戶的數(shù)據(jù)傳送。當(dāng)客戶機(jī)收到這個(gè)FIN,發(fā)回一個(gè)ACK時(shí),確認(rèn)序號(hào)為收到序號(hào)加1(報(bào)文段5)。與SYN相似,F(xiàn)IN將占用一個(gè)序號(hào)。同時(shí)客戶機(jī)向服務(wù)器傳送一個(gè)文件結(jié)束符,接著這個(gè)客戶機(jī)就關(guān)閉它的連接,導(dǎo)致TCP端發(fā)送一個(gè)FIN(報(bào)文段6),服務(wù)器發(fā)回一個(gè)確認(rèn),并將確認(rèn)序號(hào)設(shè)置為收到序號(hào)加1(報(bào)文段7)。在圖9.25中,發(fā)送FIN將導(dǎo)致應(yīng)用程序關(guān)閉它們的連接,這些FIN的ACK是由TCP軟件自動(dòng)產(chǎn)生的。圖9.25建立中止TCP連接
3.建立連接超時(shí)
有很多情況導(dǎo)致無(wú)法建立連接,其中一種情況是服務(wù)器主機(jī)沒(méi)有處于正常狀態(tài)。為了模擬這種情況,我們斷開(kāi)服務(wù)器主機(jī)的電纜線,然后向它發(fā)出Telnet命令。表9.10顯示了TCP連接建立超時(shí)的情況。表9.10TCP連接建立超時(shí)9.4.2Ping
在局域網(wǎng)上運(yùn)行Ping程序輸出結(jié)果的一般格式如下:當(dāng)返回ICMP回顯應(yīng)答時(shí),要打印出序列號(hào)和TTL,并計(jì)算往返時(shí)間。從上面的輸出中可以看出,回顯應(yīng)答以發(fā)送的次序返回。Ping程序通過(guò)在ICMP報(bào)文數(shù)據(jù)中存放發(fā)送請(qǐng)求的時(shí)間值來(lái)計(jì)算往返時(shí)間。當(dāng)應(yīng)答返回時(shí),用當(dāng)前時(shí)間減去存放在ICMP報(bào)文中的時(shí)間值,即是往返時(shí)間。由于在Windows系列操作系統(tǒng)中自帶的Ping程序計(jì)時(shí)器精度較低,往返時(shí)間小于10ms時(shí)都顯示為0ms。
回顯請(qǐng)求大約每隔1秒鐘發(fā)送一次,從發(fā)送回顯請(qǐng)求到收到回顯應(yīng)答,時(shí)間間隔基本相似。通常,第一個(gè)往返時(shí)間值要比其他的大,這是由于目的端的硬件地址不在ARP高速緩存中,在發(fā)送第一個(gè)回顯請(qǐng)求之前要發(fā)送一個(gè)ARP請(qǐng)求并接收ARP應(yīng)答。用SnifferPro對(duì)數(shù)據(jù)進(jìn)行捕捉,可得到如表9.11所示的數(shù)據(jù)。表9.11Ping程序數(shù)據(jù)報(bào)
1.?ARP數(shù)據(jù)
Wireshark采集到的數(shù)據(jù)分為兩個(gè)部分。第一個(gè)部分為前兩個(gè)數(shù)據(jù)報(bào),是Ping程序查詢IP地址為01的設(shè)備的硬件地址的ARP請(qǐng)求和回應(yīng),其具體內(nèi)容如表9.12所示。
在表9.12中兩個(gè)數(shù)據(jù)報(bào)的0x00~0x0d字節(jié)屬于以太網(wǎng)數(shù)據(jù)幀頭。由于兩個(gè)數(shù)據(jù)報(bào)均為ARP協(xié)議的數(shù)據(jù)報(bào),因此0x0c~0x0d的數(shù)據(jù)均為0806;第一個(gè)數(shù)據(jù)報(bào)為了查詢地址,因此DestinationAddress項(xiàng)為FF-FF-FF-FF-FF-FF,表明數(shù)據(jù)報(bào)以廣播方式發(fā)送;第二個(gè)數(shù)據(jù)報(bào)為目的地址的回復(fù),因此該項(xiàng)DestinationAddress的內(nèi)容為第一個(gè)數(shù)據(jù)報(bào)的SourceAddress。表9.12ARP數(shù)據(jù)報(bào)詳細(xì)內(nèi)容表中0x0e?~?0x3b字節(jié)為ARP數(shù)據(jù)報(bào),對(duì)應(yīng)的內(nèi)容見(jiàn)表9.13。表9.13ARP數(shù)據(jù)報(bào)
2.?ICMP數(shù)據(jù)
Wireshark采集到的數(shù)據(jù)的第二部分為ICMP報(bào)文,由Echo和Echoreply報(bào)文組成。前者為主機(jī)向01設(shè)備發(fā)送的回顯請(qǐng)求,后者為01設(shè)備的回應(yīng)報(bào)文,其具體內(nèi)容如表9.14所示。表9.14ICMP數(shù)據(jù)報(bào)詳細(xì)內(nèi)容在表9.14數(shù)據(jù)報(bào)的0x00~0x0d字節(jié)屬于以太網(wǎng)數(shù)據(jù)幀頭,由于ICMP數(shù)據(jù)報(bào)附加在IP數(shù)據(jù)報(bào)內(nèi),因此0x0c和0x0d字段分別為0x08和0x00。表中0x0e~0x21字節(jié)為IP數(shù)據(jù)報(bào)報(bào)頭,0x22~0x49字節(jié)為ICMP數(shù)據(jù),對(duì)應(yīng)的內(nèi)容見(jiàn)表9.15。表9.15ICMP數(shù)據(jù)報(bào)9.4.3Tracert
在局域網(wǎng)上運(yùn)行Tracert程序,輸出結(jié)果的一般格式如下:用Wireshark對(duì)數(shù)據(jù)進(jìn)行捕捉,可得到如表9.16所示的數(shù)據(jù)。表9.16Tracert程序數(shù)據(jù)報(bào)
(1)?Tracert輸出“TracingroutetoWORKSTATION-C[]”時(shí),數(shù)據(jù)報(bào)為1、2,作用是使用NetBIOS名字服務(wù)查詢,獲取設(shè)備的名稱。
(2)報(bào)文3~8為本機(jī)向設(shè)備發(fā)出三個(gè)TTL為1的報(bào)文,由路由器01返回TTL定時(shí)器超時(shí)的報(bào)文,此時(shí)本機(jī)測(cè)定該段鏈路的響應(yīng)時(shí)間,Tracert輸出“116ms<10ms<10ms”。
(3)報(bào)文9~14為本機(jī)向設(shè)備01使用NetBIOS名字服務(wù)查詢,請(qǐng)求獲得設(shè)備的名稱,但01不支持NetBIOS查詢,返回錯(cuò)誤信息,此時(shí)Tracert輸出“01”。
(4)報(bào)文15~20為本機(jī)向設(shè)備發(fā)出三個(gè)TTL為2的報(bào)文,經(jīng)路由器01后,由路由器返回TTL定時(shí)器超時(shí)的報(bào)文,此時(shí)本機(jī)測(cè)定該段鏈路的響應(yīng)時(shí)間,Tracert輸出“2<10ms<10ms15ms”。
(5)報(bào)文21~23為本機(jī)向設(shè)備使用NetBIOS名字服務(wù)查詢,請(qǐng)求獲得設(shè)備的名稱,但不支持NetBIOS查詢且不響應(yīng)非本地的UDP數(shù)據(jù)報(bào),因此無(wú)返回信息,此時(shí)tracert輸出“”。
(6)報(bào)文24~29為本機(jī)向設(shè)備發(fā)出三個(gè)TTL為3的報(bào)文,經(jīng)路由器01和后,由主機(jī)返回ICMPReply報(bào)文,此時(shí)本機(jī)測(cè)定該段鏈路的響應(yīng)時(shí)間,Tracert輸出“3<10ms<10ms16ms”。
(7)報(bào)文30為本機(jī)向設(shè)備使用NetBIOS名字服務(wù)查詢,請(qǐng)求獲得設(shè)備的名稱,報(bào)文31為返回NetBIOS名字,此時(shí)Tracert輸出“WORKSTATION-C[]”。9.4.4UDP數(shù)據(jù)
UDP是一種小型的傳輸層協(xié)議,操作執(zhí)行快,適用于承載傳輸小批量的數(shù)據(jù)和一些與時(shí)間相關(guān)的數(shù)據(jù)(如WINS協(xié)議、SMB協(xié)議等)。例如,以Wireshark采集如下命令行數(shù)據(jù),該命令向子網(wǎng)內(nèi)所有的計(jì)算機(jī)發(fā)送一個(gè)“Hello!”的消息:
C:\>NETSend
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 山東菏澤巨野縣2024-2025學(xué)年小升初數(shù)學(xué)模擬試卷含解析
- 山西臨汾霍州三中重點(diǎn)中學(xué)2024-2025學(xué)年初三高中生物試題競(jìng)賽模擬(二)生物試題含解析
- 電子真空器件在量子通信領(lǐng)域的應(yīng)用考核試卷
- 玩具設(shè)計(jì)的人機(jī)交互與用戶體驗(yàn)優(yōu)化考核試卷
- 電機(jī)在工業(yè)鍋爐的燃燒效率考核試卷
- 電光源的種類及其特點(diǎn)考核試卷
- 制刷行業(yè)法律法規(guī)與標(biāo)準(zhǔn)制定考核試卷
- 護(hù)腕在羽毛球運(yùn)動(dòng)中的抗拉伸性能考核試卷
- 困境婦女兒童與家庭服務(wù)項(xiàng)目設(shè)計(jì)與管理
- 專題10 中國(guó)重點(diǎn)、熱點(diǎn)區(qū)域(講練)-2025年中考《地理》二輪復(fù)習(xí)(全國(guó)版)
- 海參收購(gòu)協(xié)議書(shū)范本
- 定額〔2025〕20號(hào) 定額管理總站關(guān)于發(fā)布2024年電力建設(shè)工程裝置性材料綜合信息價(jià)的通知
- 2025年江蘇蘇州市相城區(qū)六大區(qū)屬國(guó)有公司招聘筆試參考題庫(kù)附帶答案詳解
- 2025年03月紹興市諸暨市綜合行政執(zhí)法局執(zhí)法輔助人員27人筆試歷年典型考題(歷年真題考點(diǎn))解題思路附帶答案詳解
- 部編人教版五年級(jí)語(yǔ)文下冊(cè)教學(xué)策略計(jì)劃
- 消除“艾梅乙”醫(yī)療歧視-從我做起
- 教科版科學(xué)六年級(jí)下冊(cè)第二單元《生物的多樣性》測(cè)試卷
- 關(guān)于財(cái)務(wù)制度執(zhí)行情況及中央八項(xiàng)規(guī)定精神回頭看的自查報(bào)告
- 斯倫貝謝定向鉆井和旋轉(zhuǎn)導(dǎo)向
- 大學(xué)語(yǔ)文(高職版) 教學(xué)課件 ppt 作者 徐中玉 44 論讀書(shū) 第四十四課 論讀書(shū)
- 食品安全管理制度(企業(yè))食品安全管理制度
評(píng)論
0/150
提交評(píng)論