劉 潔,何 倩
LIU Jie,HE Qian
(唐山學(xué)院,唐山 063020)
網(wǎng)絡(luò)層是OSI參考模型中的第三層,介于傳輸層和數(shù)據(jù)鏈路層之間,它在數(shù)據(jù)鏈路層提供的兩個相鄰端點(diǎn)之間的數(shù)據(jù)幀的傳送功能上,進(jìn)一步管理網(wǎng)絡(luò)中的數(shù)據(jù)通信,將數(shù)據(jù)設(shè)法從源端經(jīng)過若直干個中間節(jié)點(diǎn)傳送到目的端,從而向傳輸層提供最基本的端到端的數(shù)據(jù)傳送服務(wù)。簡單的說就是網(wǎng)絡(luò)層提供兩臺主機(jī)之間的連接和路徑選擇。網(wǎng)絡(luò)層包括以下協(xié)議:IP(Internet協(xié)議),ICMP(Internet控制信息協(xié)議),ARP(地址解析協(xié)議),RARP(逆向地址解析協(xié)議),BOOTP(自舉協(xié)議),DHCP(動態(tài)主機(jī)配置協(xié)議),路由協(xié)議和路由選擇協(xié)議。本文主要介紹ARP協(xié)議,路由協(xié)議和路由選擇協(xié)議的應(yīng)用和原理。
在網(wǎng)絡(luò)中是以“幀”作為實際傳輸?shù)模瑪?shù)據(jù)傳輸是有目標(biāo)性的,所以“幀”里面包含著目標(biāo)主機(jī)的MAC地址,在以太網(wǎng)中,兩太主機(jī)之間如果要進(jìn)行直接通信,是要先確定彼此的MAC地址的,這個MAC地址就是通過ARP協(xié)議獲得的,在通信前主機(jī)將目標(biāo)的IP轉(zhuǎn)換成目標(biāo)主機(jī)的MAC地址,這個過程就叫做“地址解析”。每個IP地址都對應(yīng)一個目標(biāo)設(shè)備的MAC地址,而MAC地址是唯一的,ARP協(xié)議就是通過IP地址來確認(rèn)目標(biāo)的MAC地址,這樣可以保證通信的暢通進(jìn)行。如圖1所示。
圖1 通過IP地址來確認(rèn)目標(biāo)的MAC地址
根據(jù)上圖我們來說明一下ARP的解析過程是什么樣的,如圖1源主機(jī)IP地址為:197.15.22.33,目標(biāo)主機(jī)IP地址為:197.15.22.126。程序產(chǎn)生數(shù)據(jù)包,然后把數(shù)據(jù)包提供給網(wǎng)絡(luò)驅(qū)動程序。假設(shè)源主機(jī)不能在MAC表中確定目標(biāo)IP地址所對應(yīng)的MAC地址。那么源主機(jī)就會啟動一個ARP請求過程。源主機(jī)生成一個ARP分組,并把該分組向子網(wǎng)內(nèi)部所有設(shè)備發(fā)送,為了確保子網(wǎng)內(nèi)所有的主機(jī)都能看見,源主機(jī)會使用一個廣播形式為FFFF-FF-FF-FF-FF-的MAC地址。由于ARP請求分組廣播模式發(fā)送,所以子網(wǎng)內(nèi)的所有設(shè)備都能看到和接受這些分組信息,然后把信息交給網(wǎng)絡(luò)層進(jìn)行處理。經(jīng)過處理后,如果一臺主機(jī)的IP地址于ARP請求中的目標(biāo)IP地址相吻合的話,該主機(jī)就會想源主機(jī)發(fā)送自己的MAC地址來響應(yīng)。這個過程叫做ARP的應(yīng)答。
源主機(jī)在收到回應(yīng)后,因為自己的ARP表里沒有目標(biāo)主機(jī)的MAC地址,所以源主機(jī)會從目標(biāo)主機(jī)的硬件地址字段中提取出MAC地址,然后更新。這樣就可以給數(shù)據(jù)正確的指定目標(biāo)MAC地址和IP地址拉。
上面講述了在一個子網(wǎng)中ARP是怎么解析的過程,那么在不同的網(wǎng)絡(luò)上,主機(jī)之間的通信,ARP是怎么做的呢。
在不同網(wǎng)絡(luò)中進(jìn)行通信有三種形式:第一種缺省網(wǎng)關(guān),第二中是設(shè)備會監(jiān)聽路由器的通告。第三種是代理ARP。
代理ARP是ARP協(xié)議的一個變種,一臺中間設(shè)備代表端節(jié)點(diǎn)想發(fā)送請求的主機(jī)發(fā)送ARP響應(yīng),運(yùn)行代理ARP的路由器會捕捉到這些ARP分組,他們使用它們自己的MAC地址響應(yīng)那些不在本地子網(wǎng)地址范圍內(nèi)的請求。
如果數(shù)據(jù)包的目的IP地址不在本子網(wǎng)內(nèi),路由器就用直接連接到主機(jī)所在網(wǎng)絡(luò)的接口MAC地址進(jìn)行應(yīng)答,這就是代理ARP的工作原理。
ARP只是在本地網(wǎng)絡(luò)上使用,當(dāng)一臺路由器不知道下一跳路由器的MAC地址時,源路由器就會發(fā)布一個ARP請求。與源路由器處于同一個網(wǎng)段的路由器就會接受該ARP的請求,而且這臺路由器會給發(fā)布該ARP請求的源路由器給出一個應(yīng)答,該應(yīng)答包括了應(yīng)答路由器的MAC地址。
路由器收到數(shù)據(jù)時,會剝?nèi)ピ诜庋b中使用的數(shù)據(jù)鏈路層信息,然后將數(shù)據(jù)傳送到網(wǎng)絡(luò)層,在這一層路由器會檢查目標(biāo)設(shè)備的IP地址,它會把目標(biāo)設(shè)備的IP地址和路由選擇表中所包含的信息進(jìn)行比較,如果路由器定位到了映射的目標(biāo)設(shè)備IP地址和MAC地址,并且知道了連接到該網(wǎng)絡(luò)的端口,那么它就會用新的MAC地址信息對數(shù)據(jù)進(jìn)行封裝,然后轉(zhuǎn)發(fā)到正確的目標(biāo)設(shè)備上。如果該路由器不能將最終目標(biāo)設(shè)備的IP地址映射為MAC地址,它要么發(fā)送一個ARP請求,要么去定位另外一臺路由器的MAC地址,然后將該數(shù)據(jù)轉(zhuǎn)發(fā)到那臺路由器上。如果不存在一臺缺省路由器,而且沒有ARP應(yīng)答,那么該分組就會被丟棄。
在實際的應(yīng)用和學(xué)習(xí)中,經(jīng)常把路由協(xié)議和路由選擇協(xié)議混淆,下面就先說說什么是路由協(xié)議和路由選擇協(xié)議,他們的區(qū)別是什么。
1)路由協(xié)議:路由協(xié)議在網(wǎng)絡(luò)層地址中提供足夠的信息,使得一個分組能夠基于該尋址方案從一臺主機(jī)轉(zhuǎn)發(fā)到另一臺主機(jī)。它規(guī)定了分組內(nèi)部字段的格式以及使用,使得分組能實現(xiàn)端到端的傳遞,網(wǎng)際協(xié)議(IP)就是路由協(xié)議。
2)路由選擇協(xié)議:路由選擇協(xié)議通過提供共享路由選擇信息的機(jī)制來支持路由協(xié)議的運(yùn)行。路由選擇信息在路由器之間傳達(dá),路由選擇協(xié)議使得路由器能與其他的路由器進(jìn)行通信并更新和維護(hù)自己的路由表。路由信息協(xié)議,內(nèi)部網(wǎng)觀路由協(xié)議,增強(qiáng)內(nèi)部網(wǎng)關(guān)路由協(xié)議以及開放式最短路徑優(yōu)先,都是路由選擇協(xié)議。
簡單的說路由協(xié)議就是確定要達(dá)到的路徑,路由選擇協(xié)議就是來選擇路徑的。
7.1 EIGRP
首先我們先了解下EIGRP的前身IGRP(內(nèi)部網(wǎng)關(guān)路由協(xié)議),它是一種是Cisco公司20世紀(jì)80年代開發(fā)的,是一種動態(tài)的、長跨度(最大可支持255跳)的路由協(xié)議,使用度量(向量)來確定到達(dá)一個網(wǎng)絡(luò)的最佳路由,由延時、帶寬、可靠性和負(fù)載等來計算最優(yōu)路由,它在同個自治系統(tǒng)內(nèi)具有高跨度,適合復(fù)雜的網(wǎng)絡(luò)。
隨即現(xiàn)代化信息產(chǎn)業(yè)的發(fā)展和壯大,網(wǎng)絡(luò)規(guī)模也不斷擴(kuò)大,這樣IGRP就開始變的不能在適應(yīng)這么大的網(wǎng)絡(luò)規(guī)模,為了適應(yīng)時代發(fā)展Cisco公司又開發(fā)了增強(qiáng)的IGRP,即EIGRP。EIGRP具有如下特點(diǎn):
1)快速收斂。EIGRP使用了一個更新的算法叫散播更新算法,它的原理是這樣的,這里引用了兩個概念,最小開銷和次最小開銷,當(dāng)最小開銷的路徑不能適應(yīng)網(wǎng)絡(luò)或者不能使用的時候,就會馬上切換到次最小開銷的路徑上,也就是說快速收斂。這個過程是通過在路由表中備份路由而實現(xiàn)的。
2)觸發(fā)式。在原來的RIP和IGRP協(xié)議中,為了保證路由表的隨時更新和網(wǎng)絡(luò)通暢,他們會間隔一定的時間就進(jìn)行一次路由信息的交換,這樣大大浪費(fèi)的帶寬,做了無用功。EIGRP只是當(dāng)網(wǎng)絡(luò)中路由狀態(tài)發(fā)生了變化或者度量發(fā)生改變的時候才會于鄰接EIGRP路由器發(fā)送路由更新。所以EIGRP要比IP和IGRP節(jié)省了很多帶寬。
3)增量更新。EIGRP使用了增量更新,也就是說當(dāng)路由進(jìn)行更新時,它只給需要知道它變更的路由器發(fā)送狀態(tài)改變信息,所以節(jié)省了更多的路由器CPU。
7.2 OSPF
OSPF(開放式最短路徑優(yōu)先)協(xié)議是一種為IP網(wǎng)絡(luò)開發(fā)的內(nèi)部網(wǎng)關(guān)路由選擇協(xié)議,由IETF開發(fā)并推薦使用。OSPF協(xié)議由三個子協(xié)議組成:Hello協(xié)議、交換協(xié)議和擴(kuò)散協(xié)議。
OSPF協(xié)議具有以下優(yōu)點(diǎn):OSPF將整個網(wǎng)絡(luò)表現(xiàn)在自己的連通狀態(tài)數(shù)據(jù)庫中,這樣做不能很麻煩的重復(fù)計算最小開銷和次最小開銷,大大的減低了收斂的時間。OSPF在大型異構(gòu)網(wǎng)絡(luò)中的表現(xiàn)也為非凡的,它的出現(xiàn)讓異構(gòu)網(wǎng)絡(luò)可以通過一種協(xié)議,從而進(jìn)行數(shù)據(jù)交換。而且使用OSPF在這樣的大型異構(gòu)網(wǎng)絡(luò)中不會出現(xiàn)錯誤的路由信息。當(dāng)我們有多條路徑去往相同的目的主機(jī)的時候OSPT也是可以支持和提供服務(wù)的。OSPT區(qū)別不同的外部路由是通過路由標(biāo)簽來進(jìn)行的。OSPT提供的網(wǎng)絡(luò)路由是安全的,表現(xiàn)在它使用路由驗證,只有雙方路由起都通過了驗證之后才能進(jìn)行數(shù)據(jù)交換。它這種驗證方式也很靈活,可以根據(jù)不同的區(qū)域來定義不同的驗證方式。OSPF是一個非族類路由協(xié)議,路由信息不受跳數(shù)的限制,減少了因分級路由帶來的子網(wǎng)分離問題。
7.3 RIP
在同一個區(qū)域內(nèi)的路由器之間傳送路由時,最常用的是路由選擇協(xié)議(RIP)。這個內(nèi)部網(wǎng)關(guān)協(xié)議可以計算到達(dá)目標(biāo)主機(jī)的距離,使用RIP的路由器會定期的更新路由選擇表,通常是每30秒一次,因此產(chǎn)生的網(wǎng)絡(luò)流量會消耗很多帶寬。如果在網(wǎng)絡(luò)比較簡單的情況下,RIP使用的帶寬比鏈路狀態(tài)的協(xié)議少的多,所以RIP還有有一定的價值的。
RIP使用距離向量的概念來選擇發(fā)送數(shù)據(jù)的路徑,當(dāng)數(shù)據(jù)通過一臺路由器,從而通過一個網(wǎng)絡(luò)號的時候,就認(rèn)為已經(jīng)通過了一跳。一條擁有4跳的路徑表明該數(shù)據(jù)為到達(dá)網(wǎng)絡(luò)上的最終目標(biāo)主機(jī),必須要經(jīng)過4臺路由器才能到達(dá)。
如果有若干個路徑可以達(dá)到目標(biāo)主機(jī),使用RIP的路由器會選擇從源主機(jī)到目標(biāo)主機(jī)跳數(shù)最少的路徑。但是由于RIP只考慮使用跳數(shù)在少的來選擇最佳路徑,所以不能保證被選擇的路徑是最快的。其他的路由協(xié)議會使用包括跳數(shù)在內(nèi)的很多計算值來確定最佳路徑的。但是RIP仍然很流行,并應(yīng)用廣泛。因為RIP是最早研究出來的路由協(xié)議之一,這就意味著對它的理解比較深刻,而且它比鏈路狀態(tài)路由選擇協(xié)議要更簡單。
使用RIP協(xié)議有一個很嚴(yán)重的問題,就是目的地由于距離太遠(yuǎn)而沒有辦法到達(dá),因為RIP要求一條路徑最多有15跳,如果目的地超過了15個網(wǎng)絡(luò)路由器的挑,那么就認(rèn)為不可到達(dá)。
本問通過介紹網(wǎng)絡(luò)層中的ARP協(xié)議,路由協(xié)議,路由選擇協(xié)議,以及對比了幾種常見的路由協(xié)議。來說明了在網(wǎng)絡(luò)學(xué)習(xí)中,對于協(xié)議的掌握是很重要的,更重要的是一些基礎(chǔ)和概念。在眾多的協(xié)議中不能混淆。
[1]雷震甲.網(wǎng)絡(luò)工程師教程[M].北京:清華大學(xué)出版社,2006.
[2]陳應(yīng)明.計算機(jī)網(wǎng)絡(luò)與應(yīng)用[M].冶金工業(yè)出版社,2005.
[3]謝希仁.計算機(jī)網(wǎng)絡(luò)(第二版)[M].北京:電子工業(yè)出版社,2001.
[4]林全新,周圍.計算機(jī)網(wǎng)絡(luò)工程[M].人民郵電出版社,2003.
[5]張恒杰,曹雋.計算機(jī)網(wǎng)絡(luò)工程[M].大連理工大學(xué)出版社,2006.