IP尋址基礎(chǔ)
某臺(tái)主機(jī)發(fā)送IP數(shù)據(jù)包給予其處于同一本地IP子網(wǎng)的另一臺(tái)主機(jī)時(shí),,它只要直接把IP數(shù)據(jù)包發(fā)到本地網(wǎng)絡(luò)上,然后對(duì)方能收到,。
當(dāng)處于不同IP子網(wǎng)間的主機(jī)需要通信時(shí),,主機(jī)會(huì)把IP數(shù)據(jù)包發(fā)送給一個(gè)稱為“缺省網(wǎng)關(guān)(Default Gateway)”的路由器上,然后由
這臺(tái)路由器把IP數(shù)據(jù)包送到目的地,。“缺省網(wǎng)關(guān)”是TCP/IP的一個(gè)配置參數(shù),,它是處于本地網(wǎng)絡(luò)上的某個(gè)路由器接口的IP地址
或某臺(tái)計(jì)算機(jī)中的某一塊網(wǎng)卡的IP地址,。
對(duì)于缺省網(wǎng)關(guān),在實(shí)際應(yīng)用中多使用兩種解決方案:一種是通過 路由器,,直接與某一網(wǎng)絡(luò)(或網(wǎng)段)相連的路由器端口IP地址便
是該網(wǎng)絡(luò)(或網(wǎng)段)的缺省網(wǎng)關(guān),;另一種是通過一些代理服務(wù)器軟件,如CCProxy,、WinRoute,、WinGate、Windows 2000/XP/2003的
ICS(Internet連接共享)等,,一般需要在安裝代理服務(wù)器軟件的計(jì)算機(jī)上同時(shí)安裝工兩塊網(wǎng)卡,,其中一塊網(wǎng)卡與外網(wǎng)(如Internet)相
連,另一塊網(wǎng)卡與局域網(wǎng)相連,,則與局域網(wǎng)相連的這塊網(wǎng)卡的IP便是該局域網(wǎng)計(jì)算機(jī)的缺省網(wǎng)關(guān),。
路由器轉(zhuǎn)發(fā)IP數(shù)據(jù)包時(shí),它只是根據(jù)IP數(shù)據(jù)包目標(biāo)IP地址的網(wǎng)絡(luò)部分選擇合適的接口發(fā)送出數(shù)據(jù)包,,路由器還要判斷接口所連
接的是否是目標(biāo)子網(wǎng),,如果是,路由器就直接把數(shù)據(jù)通過接口發(fā)送到網(wǎng)絡(luò)上,,譬如主機(jī)A發(fā)送主機(jī)B的數(shù)據(jù)包到達(dá)路由器時(shí),路
由器發(fā)現(xiàn)它的E1接口直接連接著目標(biāo)網(wǎng)路,,于是它將數(shù)據(jù)通過E1端口直接轉(zhuǎn)發(fā)給主機(jī)B),;否則,路由器會(huì)選擇下一跳路由器來
傳輸數(shù)據(jù),,這樣一跳一跳地傳輸,,IP數(shù)據(jù)包最終將被送到目的主機(jī)。
路由器給人的感覺是一種復(fù)雜的網(wǎng)絡(luò)設(shè)備,,實(shí)際上從宏觀的角度來看,,路由器主要實(shí)現(xiàn)兩種基本功能:
交換和轉(zhuǎn)發(fā)功能:將數(shù)據(jù)從路由器的進(jìn)入接口穿過路由器在送到外出接口。
路由功能:即尋址功能,,學(xué)習(xí)和維護(hù)路由選擇表,,決定正確的轉(zhuǎn)發(fā)路徑。
尋址由路由路由選擇算法來實(shí)現(xiàn),,為了判定最佳路徑,,路由選擇算法維護(hù)著一個(gè)包含路由信息的路由選擇表,路由選擇表可以
將目標(biāo)網(wǎng)路和下一跳(Next Hop)的關(guān)系告訴路由器,。當(dāng)路由器向目的地轉(zhuǎn)發(fā)數(shù)據(jù)包時(shí),,它就是通過這張路由選擇表來確定所要使
用的輸出接口,為了能夠路由數(shù)據(jù)包,,路由器需要知道以下信息:目標(biāo)地址和下一跳地址,。
在上圖中,,假設(shè)主機(jī)A需要和主機(jī)B通信,具體傳輸?shù)倪^程如下,。
1)主機(jī)A先將數(shù)據(jù)發(fā)送給它的默認(rèn)網(wǎng)關(guān)(路由器A,,RtA)。
主機(jī)A發(fā)送的數(shù)據(jù)幀的格式:
在主機(jī)A發(fā)送的數(shù)據(jù)幀中,,以路由器A的E1端口的MAC地址為目標(biāo)MAC地址,,而且目標(biāo)IP地址依然為主機(jī)B的IP地址。 2)路由器收到的主機(jī)A的數(shù)據(jù)后,,查詢自己的路由表,,它發(fā)現(xiàn)E0端口可以到達(dá)主機(jī)B所在的網(wǎng)絡(luò)(192.168.3.1)。
路由器A的路由信息表:
3)路由器A重寫數(shù)據(jù)包的幀頭信息,,將目標(biāo)MAC地址改為路由器B(RtB)的E1的端口的MAC地址,,同時(shí)修改源MAC地址,然后將
數(shù)據(jù)包從自己的E1口發(fā)送出去,。
路由器A發(fā)送的數(shù)據(jù)幀的格式:
4)數(shù)據(jù)被送到路由器B后,,路由器B按照相同的方法把它送給路由器C。
路由器B的路由信息表:
5)路由器C發(fā)現(xiàn)192.168.3.0網(wǎng)絡(luò)直接連接在它的E0口上,,于是它將數(shù)據(jù)包發(fā)往E0,,在E0上采用ARP來查詢192.168.3.1的MAC地址, 最后將數(shù)據(jù)包發(fā)往目的主機(jī),。
代理ARP
如果網(wǎng)絡(luò)上所有的系統(tǒng)都配置成目的地址均在本地網(wǎng)段,,那么路由器將扮演遠(yuǎn)程代理的角色。
1)主機(jī)A(IP地址為192.16.1.2/24)試圖與主機(jī)B(IP地址為192.168.2.2/24)進(jìn)行通信,,但是它不知道主機(jī)B的MAC地址,,由于主機(jī)A
(IP為192.16.1.2/24)被配置為目的地址在本地網(wǎng)段,所以主機(jī)A直接發(fā)出ARP請(qǐng)求(實(shí)際上運(yùn)行代理ARP的路由器就充當(dāng)默認(rèn)網(wǎng)
關(guān)的角色),。
2)路由器回答來自主機(jī)A的ARP請(qǐng)求,,它使用自己的MAC地址回答主機(jī)A。于是主機(jī)A將數(shù)據(jù)包發(fā)送給路由器,,路由器再將數(shù)據(jù)
包發(fā)送給路由器,,路由器再將數(shù)據(jù)包轉(zhuǎn)發(fā)到正確的目的主機(jī)B。
代理ARP可以簡化主機(jī)的管理,,不過卻增加了網(wǎng)絡(luò)的通信量,,并且在路由器上需要較大的ARP緩存,因?yàn)樵诿總€(gè)不在本網(wǎng)的IP
地址的IP被創(chuàng)建一個(gè)映射表項(xiàng),。在使用代理ARP的主機(jī)看來,,世界就像一個(gè)沒有路由器的大型物理網(wǎng)絡(luò)。
|
|