網(wǎng)絡(luò)數(shù)據(jù)包傳輸過(guò)程總結(jié)_第1頁(yè)
網(wǎng)絡(luò)數(shù)據(jù)包傳輸過(guò)程總結(jié)_第2頁(yè)
網(wǎng)絡(luò)數(shù)據(jù)包傳輸過(guò)程總結(jié)_第3頁(yè)
網(wǎng)絡(luò)數(shù)據(jù)包傳輸過(guò)程總結(jié)_第4頁(yè)
網(wǎng)絡(luò)數(shù)據(jù)包傳輸過(guò)程總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩9頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ù)包傳輸過(guò)程總結(jié)據(jù)包是如何在網(wǎng)絡(luò)中傳輸?shù)奈覀冸娔X上的數(shù)據(jù),是如何〃走”到遠(yuǎn)端的另一臺(tái)電腦的呢?這是個(gè)最基礎(chǔ)的問(wèn)題,可能很多人回答不上來(lái),盡管我們每天都在使用網(wǎng)絡(luò)。這里我們以一個(gè)最簡(jiǎn)單的“ping”命令,來(lái)解釋一個(gè)數(shù)據(jù)包〃旅程”。假設(shè):我的電腦A,向遠(yuǎn)在外地的朋友電腦B傳輸數(shù)據(jù),最簡(jiǎn)單的就是“ping”一下,看看這個(gè)家伙的那一端網(wǎng)絡(luò)通不通。A與B之間只有一臺(tái)路由器。(路由器可能放在學(xué)校,社區(qū)或者電信機(jī)房,無(wú)所謂,基本原理是一樣的)具體過(guò)程如下——“ping”命令所產(chǎn)生的數(shù)據(jù)包,我們歸類為ICMP協(xié)議。說(shuō)白了就是向目的地發(fā)送一個(gè)數(shù)據(jù)包,然后等待回應(yīng),如果回應(yīng)正常則目的地的網(wǎng)絡(luò)就是通的。當(dāng)我們輸入了“ping”命令之后,我們的機(jī)器(電腦A)就生成了一個(gè)包含ICMP協(xié)議域的數(shù)據(jù)包,姑且稱之為“小德”吧????“小德”已經(jīng)將ICMP協(xié)議打包到數(shù)據(jù)段里了,可是還不能發(fā)送,因?yàn)橐粋€(gè)數(shù)據(jù)要想向外面?zhèn)魉停€得經(jīng)過(guò)“有關(guān)部門”的批準(zhǔn)------IP協(xié)議。IP要將你的“寫信人地址”和“收信人地址”寫到數(shù)據(jù)段上面,即:將數(shù)據(jù)的源IP地址和目的IP地址分別打包在“小德”的頭部和尾部,這樣一來(lái),大家才知道你的數(shù)據(jù)是要送到哪里。3.準(zhǔn)備工作還沒有完。接下來(lái)還有部門要審核——ARP。ARP屬于數(shù)據(jù)鏈路層協(xié)議,主要負(fù)責(zé)把IP地址對(duì)應(yīng)到硬件地址。直接說(shuō)吧,都怪交換機(jī)太“傻”,不能根據(jù)IP地址直接找到相應(yīng)的計(jì)算機(jī),只能根據(jù)硬件地址來(lái)找。于是,交換機(jī)就經(jīng)常保留一張IP地址與硬件地址的對(duì)應(yīng)表以便其查找目的地。而ARP就是用來(lái)生成這張表的。比如:當(dāng)〃小德”被送到ARP手里之后,ARP就要在表里面查找,看看〃小德”的IP地址與交換機(jī)的哪個(gè)端口對(duì)應(yīng),然后轉(zhuǎn)發(fā)過(guò)去。如果沒找到,則發(fā)一個(gè)廣播給所有其他的交換機(jī)端口,問(wèn)這是誰(shuí)的IP地址,如果有人回答,就轉(zhuǎn)發(fā)給它。經(jīng)過(guò)一番折騰,“小德”終于要走出這個(gè)倒霉的局域網(wǎng)了。可在此之前,它們還沒忘給“小德”屁股后面蓋個(gè)“戳”,說(shuō)是什么CRC校驗(yàn)值,怕“小德”在旅行途中缺胳膊少腿,還得麻煩它們重新發(fā)送。。。。。我靠 注:很多人弄不清FCS和CRC。所謂的CRC是一種校驗(yàn)方法,用來(lái)確保數(shù)據(jù)在傳輸過(guò)程中不會(huì)丟包,損壞等等,F(xiàn)CS是數(shù)據(jù)包(準(zhǔn)確的說(shuō)是frame)里的一個(gè)區(qū)域,用來(lái)存放CRC的計(jì)算結(jié)果的。到了目的地之后,目的計(jì)算機(jī)要檢查FCS里的CRC值,如果與原來(lái)的相同,則說(shuō)明數(shù)據(jù)在途中沒有損壞。在走出去之前,那些家伙最后折磨了一次“小德”——把小德身上眾多的0和1,弄成了什么“高電壓”“低電壓”,在雙絞線上傳送了出去。暈~~出趟門就這么麻煩嗎?坐著雙絞線旅游,爽!可當(dāng)看到很多人坐著同軸電纜,還有坐光纖的時(shí)候,小德又感覺不是那么爽了。就在這時(shí),來(lái)到了旅途的中轉(zhuǎn)站——路由器。這地方可是高級(jí)場(chǎng)所,人家直接查看IP地址!剩下的一概不管,交給下面的人去做。夠牛吧?路由器的內(nèi)部也有一張表,叫做路由表,里面標(biāo)識(shí)著哪一個(gè)網(wǎng)絡(luò)的IP對(duì)應(yīng)著路由器的哪一個(gè)端口。這個(gè)表也不是天生就有的,而是靠路由器之間互相〃學(xué)習(xí)”之后生成的,當(dāng)然也可以由管理員手工設(shè)定。這個(gè)“學(xué)習(xí)”的過(guò)程是依靠路由協(xié)議來(lái)完成的,比如RIP,EIGRP,OSPF等等。7.當(dāng)路由器查看了“小德”的IP地址以后,根據(jù)路由表知道了小德要去的網(wǎng)絡(luò),接著就把小德轉(zhuǎn)到了相應(yīng)的端口了。至此,路由器的主要工作完成,下面又是打包,封裝成frame,轉(zhuǎn)換成電壓信號(hào)等一系列〃折騰”的活,就由數(shù)據(jù)鏈路層和物理層的模塊去干吧。8.小德從路由器的出口出來(lái),便來(lái)到了目的地----電腦B----所屬的網(wǎng)絡(luò)的默認(rèn)網(wǎng)關(guān)。默認(rèn)網(wǎng)關(guān)可以是路由器的一個(gè)端口,也可以是局域網(wǎng)里的各種服務(wù)器。不管怎樣,下面的過(guò)程還是一樣的:到交換機(jī)里的ARP表查詢〃小德”的IP地址,看看屬于哪個(gè)局域網(wǎng)段或端口,然后就轉(zhuǎn)發(fā)到B了。進(jìn)7B的網(wǎng)卡之后,還要層層“剝皮”,基本上和從A出來(lái)的程序是一樣的——電腦B先校驗(yàn)一下CRC值,看看數(shù)據(jù)是否完整;然后檢查一下frame的封裝,看到是IP協(xié)議之后,就把“小德”交給IP“部門”了;IP協(xié)議一看目的地址,正確,再看看應(yīng)用協(xié)議,是ICMP。于是知道了該怎么做了——產(chǎn)生一個(gè)回應(yīng)數(shù)據(jù)包,(可以命名為“回應(yīng)小德”),并準(zhǔn)備以同樣的順序向遠(yuǎn)端的A發(fā)送。。至于剛剛收到的那個(gè)數(shù)據(jù)包就丟棄了。“回應(yīng)小德”這個(gè)數(shù)據(jù)包又開始了上述同樣的循環(huán),只不過(guò)這次發(fā)送者是B而接收者是A了。以上是一個(gè)最簡(jiǎn)單的路由過(guò)程,任何復(fù)雜的網(wǎng)絡(luò)都是在次基礎(chǔ)之上實(shí)現(xiàn)的。網(wǎng)絡(luò)數(shù)據(jù)包大小用UDP協(xié)議發(fā)送時(shí),用sendto函數(shù)最大能發(fā)送數(shù)據(jù)的長(zhǎng)度為:65535-20-8二65507字節(jié),其中20字節(jié)為IP包頭長(zhǎng)度,8字節(jié)為UDP包頭長(zhǎng)度。用sendto函數(shù)發(fā)送數(shù)據(jù)時(shí),如果指的的數(shù)據(jù)長(zhǎng)度大于該值,則函數(shù)會(huì)返回錯(cuò)誤。用TCP協(xié)議發(fā)送時(shí),由于TCP是數(shù)據(jù)流協(xié)議,因此不存在包大小的限制(暫不考慮緩沖區(qū)的大?。@是指在用send函數(shù)時(shí),數(shù)據(jù)長(zhǎng)度參數(shù)不受限制。而實(shí)際上,所指定的這段數(shù)據(jù)并不一定會(huì)一次性發(fā)送出去,如果這段數(shù)據(jù)比較長(zhǎng),可能會(huì)被分段發(fā)送,如果比較短,可能會(huì)等待和下一次數(shù)據(jù)一起發(fā)送。我在測(cè)試的時(shí)候,發(fā)現(xiàn)長(zhǎng)度一般會(huì)被切成16384(16K)或49152(48K),不知道這兩個(gè)值有什么意義。二,網(wǎng)絡(luò)中IP數(shù)據(jù)報(bào)傳輸?shù)倪^(guò)程偽代碼[有助于理解】IP數(shù)據(jù)報(bào)需從主機(jī)A上傳送到主機(jī)8上,主機(jī)入首先查找路由表;if(目的主機(jī)是與自己在同一個(gè)網(wǎng)段內(nèi))(主機(jī)入查詢自己的ARP表;if(有該目的IP地址對(duì)應(yīng)的MAC地址的記錄)(將該MAC地址作為目的MAC地址,封裝數(shù)據(jù)幀,傳送給主機(jī)B;}else(發(fā)送一個(gè)ARP請(qǐng)求廣播給網(wǎng)段內(nèi)的所有主機(jī),來(lái)查詢?cè)撃康腎P地址的MAC地址;收到ARP請(qǐng)求報(bào)文的各個(gè)主機(jī)如果發(fā)現(xiàn)該IP地址是自己的IP地址,則返回一個(gè)ARP應(yīng)答報(bào)文告訴主機(jī)A自己的MAC地址;如果發(fā)現(xiàn)不是自己的IP地址,則丟棄該報(bào)文。主機(jī)A收到這個(gè)應(yīng)答報(bào)文后,就按照返回的MAC地址,將IP數(shù)據(jù)包封裝成幀,然后發(fā)送到主機(jī)B上;(補(bǔ)充:一般為了減少網(wǎng)絡(luò)中的報(bào)文量,通信雙方會(huì)維護(hù)一個(gè)各自的ARP表,把一次通信中獲得IPMAC地址對(duì)保存在緩沖的ARP表電但是ARP表有一個(gè)老化機(jī)制,刪除一段時(shí)間內(nèi)不用的IPMAC地址對(duì)。)}}elseif(發(fā)現(xiàn)了能與目的網(wǎng)絡(luò)號(hào)相匹配的表目)(則把報(bào)文發(fā)給改表目指定的下一站的路由器或直接連接的網(wǎng)絡(luò)接口;報(bào)文發(fā)送到下一站時(shí),數(shù)據(jù)幀的目的MAC地址是下一個(gè)站路由器或者網(wǎng)絡(luò)接口的MAC地址,而IP頭部的目的IP地址是主機(jī)B的IP地址;這里要指出的是:ARP請(qǐng)求報(bào)文以下一站路由器或網(wǎng)絡(luò)接口的IP地址為目的IP地址,尋找真的目的MAC地址。換句話,ARP請(qǐng)求報(bào)文只負(fù)責(zé)IP數(shù)據(jù)報(bào)傳輸過(guò)程中每一跳中的目的MAC地址查詢。}else(尋找標(biāo)為〃默認(rèn)”的表目,把報(bào)文發(fā)送給該表目指定的下一站路由器;報(bào)文發(fā)送到下一站時(shí),數(shù)據(jù)幀的目的MAC地址是下一個(gè)站路由器的MAC地址,而IP頭部的目的IP地址是主機(jī)B的IP地址。}數(shù)據(jù)幀在每?jī)蓚€(gè)網(wǎng)絡(luò)設(shè)備間傳遞時(shí),是轉(zhuǎn)換成bit流在傳輸媒體上傳輸。鏈路層提供了如停止等待協(xié)議等機(jī)制,控制了bit流在傳輸媒體上的無(wú)措傳輸。三ARP協(xié)議詳解前言:ARP協(xié)議的作用:什么是ARP?ARP(AddressResolutionProtocol)是個(gè)地址解析協(xié)議。最直白的說(shuō)法是:在IP以太網(wǎng)中,當(dāng)一個(gè)上層協(xié)議要發(fā)包時(shí),有了該節(jié)點(diǎn)的IP地址,ARP就能提供該節(jié)點(diǎn)的MAC地址。2為什么要有ARP?OSI模式把網(wǎng)絡(luò)工作分為七層,彼此不直接打交道,只通過(guò)接口(layreinterface).IP地址在第三層,MAC地址在第二層。協(xié)議在發(fā)生數(shù)據(jù)包時(shí),首先要封裝第三層(IP地址)和第二層(MAC地址)的報(bào)頭但協(xié)議只知道目的節(jié)點(diǎn)的IP地址,不知道其物理地址,又不能跨第二、三層,所以得用ARP的服務(wù)。詳細(xì)說(shuō)明:在網(wǎng)絡(luò)通訊時(shí),源主機(jī)的應(yīng)用程序知道目的主機(jī)的IP地址和端口號(hào),卻不知道目的主機(jī)的硬件地址,而數(shù)據(jù)包首先是被網(wǎng)卡接收到再去處理上層協(xié)議的,如果接收到的數(shù)據(jù)包的硬件地址與本機(jī)不符,則接丟兼因此在通訊前必須獲得目的主機(jī)的硬件地址。ARP協(xié)議就起到這個(gè)作用當(dāng)一臺(tái)主機(jī)把以太網(wǎng)數(shù)據(jù)幀發(fā)送到位于同一局域網(wǎng)上的另一臺(tái)主機(jī)時(shí),是根據(jù)48位的以太網(wǎng)地址來(lái)確定目的接口的,設(shè)備驅(qū)動(dòng)程序從不檢查IP數(shù)據(jù)報(bào)中的目的IP地址。ARP(地址解析)模塊的功能為這兩種不同的地址形式提供映射:32位的IP地址和48位的以太網(wǎng)地址(-)ARP報(bào)文各字段含義:ARP報(bào)文字段總共有28個(gè)字節(jié)硬件類型:占2個(gè)字節(jié),表明ARP實(shí)現(xiàn)在何種類型的網(wǎng)絡(luò)上。值為1:表示以太網(wǎng)。協(xié)議類型:占2個(gè)字節(jié)表示要映射的協(xié)議地址類型。IP:0800硬件地址長(zhǎng)度:占1個(gè)字節(jié),表示MAC地址長(zhǎng)度,其值為6個(gè)字節(jié)。協(xié)議地址長(zhǎng)度:占1個(gè)字節(jié),表示IP地址長(zhǎng)度,此處值4個(gè)字節(jié)操作類型:占2個(gè)字節(jié),表示ARP數(shù)據(jù)包類型。值為1表示ARP請(qǐng)求。值2表示ARP應(yīng)答。源MAC地址:占6個(gè)字節(jié),表示發(fā)送端MAC地址源IP地址:占4個(gè)字節(jié),表示發(fā)送端IP地址目的以太網(wǎng)地址:占6個(gè)字節(jié),表示目標(biāo)設(shè)備的MAC物理地址目的IP地址:占4個(gè)字節(jié),表示目標(biāo)設(shè)備的IP地址.注意:在ARP操作中,有效數(shù)據(jù)的長(zhǎng)度為28個(gè)字節(jié),不足以太網(wǎng)的最小長(zhǎng)度46字節(jié)長(zhǎng)度,需要填充字節(jié),填充字節(jié)最小長(zhǎng)度為18個(gè)字節(jié)(=)ARPW求分£或^答分3以太網(wǎng)首部總共有14字節(jié)數(shù)據(jù),arp請(qǐng)求報(bào)文總共有28字節(jié)。所以一個(gè)ARP請(qǐng)求分組或應(yīng)答分組總共有46字節(jié)數(shù)據(jù)。而以太網(wǎng)數(shù)據(jù)包的最小數(shù)據(jù)為60字節(jié)。所以,要對(duì)其進(jìn)行填充。這里有一些重復(fù)信息在以太網(wǎng)的數(shù)據(jù)幀報(bào)頭中和ARP請(qǐng)求數(shù)據(jù)幀中都有發(fā)送端的MAC物理地址。在發(fā)送ARP請(qǐng)求時(shí),以太網(wǎng)幀頭中的目的MAC物理地址為FF-FF-FF-FF-FF-FF,而在ARP幀中的目的MAC處此時(shí)為空。對(duì)一個(gè)ARP請(qǐng)求來(lái)說(shuō),除ARP中目的端MAC硬件地址外的所有其他的字段都有填充值。當(dāng)系統(tǒng)收到一份目的端為本地的ARP請(qǐng)求報(bào)文后,它就把硬件地址填進(jìn)去,然后用兩個(gè)目的端地址分別替換兩個(gè)發(fā)送端地址,并把操作字段置為2,最后發(fā)送出去。(M)ARP協(xié)議工作過(guò)程:原理:(ARP協(xié)議只使用于局域網(wǎng)中)1>在局域網(wǎng)中,網(wǎng)絡(luò)中實(shí)際傳輸?shù)氖恰◣?,幀里面是有目?biāo)主機(jī)的MAC地址的。2>在以太網(wǎng)中,一個(gè)主機(jī)要和另一個(gè)主機(jī)進(jìn)行直接通信,必須要知道目標(biāo)主機(jī)的MAC地址。但這個(gè)目標(biāo)MAC地址是如何獲得呢?它就是通過(guò)地址解析協(xié)議獲得的。所謂〃地址解析”就是主機(jī)在發(fā)送幀前將目標(biāo)IP地址轉(zhuǎn)換成目標(biāo)MAC地址的過(guò)程。3>ARP協(xié)議的基本功能就是通過(guò)目標(biāo)設(shè)備的IP地址,查詢目標(biāo)設(shè)備的MAC地址,以保證通信的順利進(jìn)行。4>點(diǎn)對(duì)點(diǎn)的連接是不需要ARP協(xié)議的工作過(guò)程:1>當(dāng)主機(jī)A向本局域網(wǎng)上的某個(gè)主機(jī)B發(fā)送IP數(shù)據(jù)報(bào)時(shí),就先在自己的ARP緩沖表中查看有無(wú)主機(jī)B的IP地址。2>如果有,就可以查出其對(duì)應(yīng)的硬件地址,再將此硬件地址寫入MAC幀,然后通過(guò)以太網(wǎng)將數(shù)據(jù)包發(fā)送到目的主機(jī)中。3>如果查不到主機(jī)B的IP地址的表項(xiàng)??赡苁侵鳈C(jī)B才入網(wǎng),也可能是主機(jī)A剛剛加電。其高速緩沖表還是空的。在這中情況下,主機(jī)入就自動(dòng)運(yùn)行ARP。ARP進(jìn)程在本局域網(wǎng)上廣播一個(gè)ARP請(qǐng)求分組。ARP請(qǐng)求分組的主要內(nèi)容是表明:我的IP地址是192.168.0.2,我的硬件地址是00-00-C0-15-AD-18.我想知道IP地址為192.168.0.4的主機(jī)的硬件地址。在本局域網(wǎng)上的所有主機(jī)上運(yùn)行的ARP進(jìn)行都收到此ARP請(qǐng)求分組。主機(jī)B在ARP請(qǐng)求分組中見到自己的IP地址,就向主機(jī)A發(fā)送ARP響應(yīng)分組,并寫入自己的硬件地址。其余的所有主機(jī)都不理睬這個(gè)ARP請(qǐng)求分組。ARP響應(yīng)分組的主要內(nèi)容是表明:〃我的IP地址是192.168.0.4,我的硬件地址是08-00-2B-00-EE-AA”,請(qǐng)注意:雖然ARP請(qǐng)求分組是廣播發(fā)送的,但ARP響應(yīng)分組是普通的單播,即從一個(gè)源地址發(fā)送到U一個(gè)目的地址。主機(jī)A收到主機(jī)B的ARP響應(yīng)分組后,就在其ARP高速緩沖表中寫入主機(jī)B的IP地址到硬件地址的映射。事例說(shuō)明:用ping說(shuō)明ARP工作的原理假設(shè)我們的計(jì)算機(jī)IP地址是192.168.1.1,要執(zhí)行這個(gè)命令:ping192.168.1.2。該命令會(huì)通過(guò)ICMP協(xié)議發(fā)送ICMP(以太網(wǎng)控制報(bào)文協(xié)議)數(shù)據(jù)包該過(guò)程需要經(jīng)過(guò)下面的步驟:1>應(yīng)用程序構(gòu)造數(shù)據(jù)包,該示例是產(chǎn)生ICMP包,被提交給內(nèi)核(網(wǎng)絡(luò)驅(qū)動(dòng)程序);2>內(nèi)核檢查是否能夠轉(zhuǎn)化該IP地址為MAC地址,也就是在本地的ARP緩存中查看IP-MAC對(duì)應(yīng)表;3>如果存在該IP-MAC對(duì)應(yīng)關(guān)系,那么跳到步驟<7;如果不存在該IP-MAC對(duì)應(yīng)關(guān)系,那么接續(xù)下面的步驟;4>內(nèi)核進(jìn)行ARP廣播,目的MAC地址是FF-FF-FF-FF-FF-FF,ARP命令類型為REQUEST(1),其中包含有自己的MAC地址;5>當(dāng)192.168.1.2主機(jī)接收到該ARP請(qǐng)求后,就發(fā)送一個(gè)ARP的REPLY(2)命令,其中包含自己的MAC地址;6>本地獲得192.168.1.2主機(jī)的IP-MAC地址對(duì)應(yīng)關(guān)系,并保存到ARP緩存中;7>內(nèi)核將把IP轉(zhuǎn)化為MAC地址,然后封裝在以太網(wǎng)頭結(jié)構(gòu)中,再把數(shù)據(jù)發(fā)送出去;特殊情況:ARP是解決同一個(gè)局域網(wǎng)上的主機(jī)或路由器的IP地址和硬件地址的映射問(wèn)題。如果所要找的目標(biāo)設(shè)備和源主機(jī)不在同一個(gè)局域網(wǎng)上。1>此時(shí)主機(jī)A就無(wú)法解析出主機(jī)B的硬件地址(實(shí)際上主機(jī)A也不需要知道遠(yuǎn)程主機(jī)B的硬件地址);2>此時(shí)主機(jī)A需要的是將路由器R1的IP地址解析出來(lái),然后將該IP數(shù)據(jù)報(bào)發(fā)送給路由器R1.3>R1從路由表中找出下一跳路由器R2,同時(shí)使用ARP解析出R2的硬件地址。于是IP數(shù)據(jù)報(bào)按照路由器R2的硬件地址轉(zhuǎn)發(fā)到路由器R2。4>路由器R2在轉(zhuǎn)發(fā)這個(gè)IP數(shù)據(jù)報(bào)時(shí)用類似方法解析出目的主機(jī)B的硬件地址,使IP數(shù)據(jù)報(bào)最終交付給主機(jī)B.說(shuō)明:如果你的數(shù)據(jù)包是發(fā)送到不同網(wǎng)段的目的地,那么就一定存在一條網(wǎng)關(guān)的IP-MAC地址對(duì)應(yīng)的記錄。知道了ARP協(xié)議的作用,就能夠很清楚地知道,數(shù)據(jù)包的向夕卜傳輸很依靠ARP協(xié)議,當(dāng)然,也就是依賴ARP緩存。要知道,ARP協(xié)議的所有操作都是內(nèi)核自動(dòng)完成的,同其他的應(yīng)用程序沒有任何關(guān)系。同時(shí)需要注意的是,ARP協(xié)議只使用于本網(wǎng)絡(luò)。)ARP緩沖表和TTLARP緩沖表1>ARP協(xié)議的本質(zhì)是完成網(wǎng)絡(luò)地址到物理地址的映射。從概念上將就是找到一個(gè)映射方法f,使得“物理地址=f(網(wǎng)絡(luò)地址)“。物理地址有兩種基本類型:以太網(wǎng)類型和令牌環(huán)網(wǎng)類型。網(wǎng)絡(luò)地址特指IP地址,對(duì)映射方法的要求就是高效。具體到以太網(wǎng),它使用的是動(dòng)態(tài)綁定轉(zhuǎn)換的方法。一般是設(shè)置ARP高速緩存,通過(guò)學(xué)習(xí),老化,更新,溢出算法處理ARP映射表來(lái)解決這些問(wèn)題。學(xué)習(xí)指ARP收到任何指向本結(jié)點(diǎn)IP地址的ARP/IP包,從中提取出地址對(duì),當(dāng)ARP緩沖表中無(wú)對(duì)應(yīng)項(xiàng)時(shí),由ARP接收部分添加;老化指為每項(xiàng)設(shè)置壽命域,以便代謝掉陳舊的地址映射項(xiàng);更新指ARP提取到新的地址對(duì)時(shí),用其更新緩存里已有的對(duì)應(yīng)項(xiàng);溢出算法指當(dāng)緩存慢時(shí),采取何種方法替代舊有的地址對(duì)。2>ARP緩存表由狀態(tài),壽命,IP地址,MAC地址4個(gè)字段組成。狀態(tài)字段指示地址對(duì)是否有效;壽命字段用于老化操作,初始存入最大值,以后由OS時(shí)間函數(shù)調(diào)用,每秒減1,直至為0清除;IP地址和MAC地址字段保存網(wǎng)絡(luò)地址和物理地址的映射。圍繞ARP緩存表,完成了4種操作:學(xué)習(xí),老化,更新,表滿處理。3>當(dāng)ARP被詢問(wèn)一個(gè)已只IP地址節(jié)點(diǎn)的MAC地址時(shí),先在ARPcache查看l若存在,就直接返回MAC地址,l若不存在,才發(fā)送ARPrequest向局域網(wǎng)查詢。4>當(dāng)主機(jī)入向B發(fā)送數(shù)據(jù)報(bào)時(shí),很可能以后不久主機(jī)B還要向A發(fā)送數(shù)據(jù)報(bào),因而主機(jī)B可能要向A發(fā)送ARP請(qǐng)求分組。所以,為了減少網(wǎng)絡(luò)上的通信量,主機(jī)A在發(fā)送其ARP請(qǐng)求分組時(shí),就將自己的甲地址到硬件地址的寫入主機(jī)B自己的ARP高速緩沖表中。這對(duì)主機(jī)B以后向A發(fā)送數(shù)據(jù)報(bào)時(shí)就更方便了。Tiger說(shuō)明:任何事物都有兩面性,如果掌握的好它就是天使,如果掌握的不好它就是Satan,ARP中的緩沖表為計(jì)算機(jī)之間的通信效率和減少網(wǎng)絡(luò)通信量之間作出了巨大的貢獻(xiàn),但是它同時(shí)為我們上網(wǎng)時(shí)留下了安全隱患;例如交換機(jī)嗅探(在下面會(huì)有介紹)ARP中的TTL(即上面所說(shuō)的壽命域)ARP將保存在高速緩沖表中的每一個(gè)映射地址表項(xiàng)都設(shè)置了TTL(生存時(shí)間),只要TTL小于0的項(xiàng)目就從高速緩沖表中刪除掉。(ARP的超時(shí)值一般為20分鐘,對(duì)不完整的表項(xiàng)設(shè)置為20分鐘,而對(duì)不完整的表項(xiàng)設(shè)置為2分鐘《不完整的表項(xiàng):即在以太網(wǎng)上對(duì)一個(gè)不存在的主機(jī)發(fā)出ARP請(qǐng)求》,當(dāng)這些表項(xiàng)再次使用時(shí),這些實(shí)現(xiàn)一般都把超時(shí)值重新設(shè)為20分鐘。)好處:主機(jī)A和B通信。A的ARP高速緩沖表里保存有B的物理地址。但B的網(wǎng)卡突然壞了,B立即就更換了一塊,因此B的硬件地址就改變了。A還要和B繼續(xù)通信。A在其ARP緩沖表中查找到B原先的硬件地址,并使用該硬件地址向B發(fā)送數(shù)據(jù)幀。但B原先的硬件地址已經(jīng)失效了。因此A無(wú)法找到主機(jī)B。但是過(guò)了一段時(shí)間,A的ARP高速緩沖表中已經(jīng)刪除了B原先的硬件地址(因?yàn)樗纳鏁r(shí)間到了),于是A重新光播發(fā)送ARP請(qǐng)求分組,又找到了B。(五) ARPg:使用arp-a命令就可以查看本地的ARP緩存內(nèi)容,所以,執(zhí)行一個(gè)本地的PING命令后,ARP緩存就會(huì)存在一個(gè)目的甲的記錄了。使用arp-d來(lái)刪除ARP高速緩存中的某一項(xiàng)內(nèi)容使用arp-s來(lái)增加高速緩沖表中的內(nèi)容,這個(gè)命令需要主機(jī)名和以太網(wǎng)地址。新增加的內(nèi)容是永久性的,除非在命令行的末尾加上關(guān)鍵字temp。arp-s157.55.85.21200-aa-aa-562-c6-09增加一個(gè)靜態(tài)的ARP表項(xiàng)。arppub-s:使系統(tǒng)起著主機(jī)ARP代理功能。系統(tǒng)將回答與主機(jī)名對(duì)應(yīng)的IP地址的ARP請(qǐng)求。(六) ARP其他方面1.交換網(wǎng)絡(luò)的嗅探1>1.ARP協(xié)議并不只在發(fā)送了ARP請(qǐng)求才接收ARP應(yīng)答當(dāng)計(jì)算機(jī)接收到ARP應(yīng)答數(shù)據(jù)包的時(shí)候,就會(huì)對(duì)本地的ARP緩存進(jìn)行更新,將應(yīng)答中的IP和MAC地址存儲(chǔ)在ARP緩存中。因此,在上面的假設(shè)網(wǎng)絡(luò)中,B向A發(fā)送一個(gè)自己偽造的ARP應(yīng)答,而這個(gè)應(yīng)答中的數(shù)據(jù)為發(fā)送方IP地址是192.168.10.3(C的IP地址),MAC地址是DD-DD-DD-DD-DD-DD(C的MAC地址本來(lái)應(yīng)該是CC-CC-CC-CC-CC-CC,這里被偽造了)。當(dāng)A接收到B偽造的ARP應(yīng)答,就會(huì)更新本地的ARP緩存,將本地的IP-MAC對(duì)應(yīng)表更換為接收到的數(shù)據(jù)格式,由于這一切都是A的系統(tǒng)內(nèi)核自動(dòng)完成的,A可不知道被偽造了。ARP欺騙的主要用途就是進(jìn)行在交換網(wǎng)絡(luò)中的嗅探。2.IP地址沖突1>如果網(wǎng)絡(luò)中存在相同IP地址的主機(jī)時(shí)候,就會(huì)報(bào)告出IP地址沖突的警告。2>如何產(chǎn)生?比如某主機(jī)B規(guī)定IP地址為192.168.0.1,如果它處于開機(jī)狀態(tài),那么其他機(jī)器A更該IP地址為192.168.0.1就會(huì)造成IP地址沖突。其原理是:主機(jī)A在連接網(wǎng)路(或更改IP地址)的時(shí)候就會(huì)向網(wǎng)絡(luò)發(fā)送ARP包廣播自己的IP地址,也就是freearp免費(fèi)ARP).如果網(wǎng)絡(luò)中存在相同IP地址的主機(jī)B,那么B就會(huì)通過(guò)ARP來(lái)reply該地址,當(dāng)A接收到這個(gè)reply后,A就會(huì)跳出IP地址沖突的警告,當(dāng)然B也會(huì)有警告。因此用ARP欺騙可以來(lái)偽造這個(gè)ARPreply,從而使目標(biāo)一直遭受IP地址沖突警告的困擾。阻止目標(biāo)的數(shù)據(jù)包通過(guò)網(wǎng)關(guān)1>比如在一個(gè)局域網(wǎng)內(nèi)通過(guò)網(wǎng)管上網(wǎng),那么連接外部的計(jì)算機(jī)上的ARP緩存中就存在網(wǎng)管IP-MAC對(duì)應(yīng)記錄2>如果,該記錄被更改,那么該計(jì)算機(jī)向夕卜發(fā)送的數(shù)據(jù)包總是發(fā)送到了錯(cuò)誤的網(wǎng)關(guān)硬件地址上,這樣,該計(jì)算機(jī)就不能上網(wǎng)了。3>這里也主要是通過(guò)ARP欺騙進(jìn)行的。有兩種方法達(dá)到這樣的目的:向目標(biāo)發(fā)送偽造的ARP應(yīng)答數(shù)據(jù)包,其中發(fā)送方的IP地址為網(wǎng)管的地址,而MAC地址則為一個(gè)偽造的地址。當(dāng)目標(biāo)接收到ARP包,那么就更新自身的ARP緩存。如果該欺騙一直持續(xù)下去,那么目標(biāo)的網(wǎng)管緩存一直是一個(gè)被偽造的錯(cuò)誤記錄。不過(guò),如果使用arp-司就知道問(wèn)題所在了。第二種方法是欺騙網(wǎng)管。向網(wǎng)管發(fā)送偽造的ARP應(yīng)答數(shù)據(jù)包,其中發(fā)送方的IP地址為目標(biāo)的IP地址,而MAC地址則為一個(gè)偽造的地址。這樣,網(wǎng)管上的目標(biāo)ARP記錄就是一個(gè)錯(cuò)誤的,網(wǎng)管發(fā)送給目標(biāo)的數(shù)據(jù)報(bào)都是使用了錯(cuò)誤的MAC地址。這種情況下,目標(biāo)能夠發(fā)送數(shù)據(jù)到網(wǎng)管,卻不能接收到網(wǎng)管的任何數(shù)據(jù)同時(shí),目標(biāo)自己查看arp-a卻看不出任何問(wèn)題來(lái)。通過(guò)檢測(cè)混雜模式節(jié)點(diǎn)1>在混雜模式中,網(wǎng)卡進(jìn)行包過(guò)濾不同于普通模式。本來(lái)在普通模式下,只有本地地址的數(shù)據(jù)包或者廣播(多播等)才會(huì)被網(wǎng)卡提交給系統(tǒng)核心,否則的話,這些數(shù)據(jù)包就直接被網(wǎng)卡拋棄?,F(xiàn)在,混合模式讓所有經(jīng)過(guò)的數(shù)據(jù)包都

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論