IP地址就是給英特網(wǎng)上的每一個(gè)主機(jī)(或路由器)的每一個(gè)接口分配一個(gè)全世界唯一的32位的標(biāo)識符。
IP地址的編址方法的三個(gè)歷史階段:
1.分類的IP地址
2.子網(wǎng)的劃分
3.構(gòu)成超網(wǎng)
IP地址的特點(diǎn)
(1)每一個(gè)IP地址都由網(wǎng)絡(luò)號和主機(jī)號兩部分組成。從這個(gè)意義上來說,IP地址是一種分等級的地址結(jié)構(gòu)。分兩個(gè)等級的好處是:
第一:
IP地址管理機(jī)構(gòu)在分配IP地址時(shí),只分配網(wǎng)絡(luò)號(第一級),而剩下的主機(jī)號(第二級)則由得到該網(wǎng)絡(luò)的單位自行分配。這樣就方便了IP地址的管理。
第二:
路由器僅根據(jù)目的主機(jī)所連接的網(wǎng)絡(luò)號來轉(zhuǎn)發(fā)分組(而不考慮目的主機(jī)號),這樣就可以使路由表中的項(xiàng)目數(shù)大幅度減小,從而減小了路由表所占的存儲(chǔ)空間以及查找路由表的時(shí)間。
(2)實(shí)際上IP地址時(shí)標(biāo)志一個(gè)主機(jī)(或路由器)和一條鏈路的接口。當(dāng)一個(gè)主機(jī)同時(shí)連接到兩個(gè)網(wǎng)絡(luò)上時(shí),該主機(jī)就必須同時(shí)具有兩個(gè)響應(yīng)的IP地址,其網(wǎng)絡(luò)號必須是不同的。這種主機(jī)稱為多歸屬主機(jī)。由于一個(gè)路由器至少連接到兩個(gè)網(wǎng)絡(luò),因此一個(gè)路由器至少應(yīng)當(dāng)有兩個(gè)不同的IP地址。
(3)按照英特網(wǎng)的觀點(diǎn),一個(gè)網(wǎng)絡(luò)是指具有相同網(wǎng)絡(luò)號net-id的主機(jī)集合,因此,用轉(zhuǎn)發(fā)器或網(wǎng)橋連接起來的若干局域網(wǎng)仍為一個(gè)網(wǎng)絡(luò),因?yàn)檫@些局域網(wǎng)都具有相同的網(wǎng)絡(luò)號。具有不同網(wǎng)絡(luò)號的局域網(wǎng)必須使用路由器互連。
(4)在IP地址中,所有分配到網(wǎng)絡(luò)號的網(wǎng)絡(luò)(不管是范圍很小的局域網(wǎng),還是可能覆蓋很大地理范圍的廣域網(wǎng))都是平等的。
(1)在同一局域網(wǎng)上的主機(jī)或路由器的IP地租中的網(wǎng)絡(luò)號必須是一樣的。
(2)用網(wǎng)橋(它只在鏈路層工作)互連的網(wǎng)段依然是一個(gè)局域網(wǎng),只能有一個(gè)網(wǎng)絡(luò)號
(3)路由器總是具有兩個(gè)或兩個(gè)以上的IP地址,即路由器的每一個(gè)接口都有一個(gè)不同網(wǎng)絡(luò)號的IP地址。
IP地址和硬件地址的區(qū)別
從層次的角度看,物理地址是數(shù)據(jù)鏈路層和物理層使用的地址,而IP地址是網(wǎng)絡(luò)層和以上各層使用的地址,是一種邏輯地址(之所以稱IP地址是邏輯地址是因?yàn)镮P地址是使用軟件實(shí)現(xiàn)的)
在發(fā)送數(shù)據(jù)時(shí),數(shù)據(jù)從高層下到低層,然后才到通信鏈路上傳輸。使用IP地址的IP數(shù)據(jù)報(bào)交給數(shù)據(jù)鏈路層,就被封裝為MAC幀。MAC幀在傳送時(shí)使用的源地址和目的地址都是硬件地址,這兩個(gè)硬件地址都寫在MAC幀首部。
下面這張圖可以幫我理解:
IP地址放在IP數(shù)據(jù)報(bào)的首部,而硬件地址則放在MAC幀首部。在網(wǎng)絡(luò)層和網(wǎng)絡(luò)層以上使用的是IP地址。而數(shù)據(jù)鏈路層及以下使用的是硬件地址。如上圖所示:當(dāng)IP數(shù)據(jù)報(bào)放入數(shù)據(jù)鏈路層的MAC幀以后,整個(gè)IP數(shù)據(jù)報(bào)就成為MAC幀的數(shù)據(jù),因而在數(shù)據(jù)鏈路層看不見數(shù)據(jù)報(bào)的IP地址。
(1)在IP層抽象的互聯(lián)網(wǎng)上只能看見IP數(shù)據(jù)報(bào)。雖然IP數(shù)據(jù)報(bào)要經(jīng)過多個(gè)路由器,但在它的首部中的源地址和目的地址始不變。
(2)雖然在IP數(shù)據(jù)報(bào) 首部有源站IP地址,但是路由器只根據(jù)目的站的IP地址的網(wǎng)絡(luò)號進(jìn)行路由器選擇
(3)在局域網(wǎng)的鏈路層,只能看見MAC幀。IP數(shù)據(jù)報(bào)被封裝在MAC幀中。MAC幀在不同網(wǎng)絡(luò)上傳送時(shí),其MAC幀首部中的源地址和目的地址都要發(fā)生變化。
(4)盡管互連在一起的網(wǎng)絡(luò)的硬件地址,體系各不相同,但I(xiàn)P層抽象的互聯(lián)網(wǎng)卻屏蔽了下層這些很復(fù)雜的細(xì)節(jié)。只要我們在網(wǎng)絡(luò)層上討論問題,就能夠使用這些統(tǒng)一的,抽象的IP地址研究主機(jī)和主機(jī)或路由之間的通信。
地址解析協(xié)議
網(wǎng)絡(luò)層使用的是IP地址,但實(shí)際網(wǎng)絡(luò)在鏈路上傳送數(shù)據(jù)幀時(shí),最終還是必須使用該網(wǎng)絡(luò)的硬件地址。但是IP地址和下面的網(wǎng)絡(luò)硬件地址之間由于格式不同而不存在簡單的映射關(guān)系。此外,在一個(gè)網(wǎng)絡(luò)上可能經(jīng)常會(huì)有新的主機(jī)加進(jìn)來,或撤走一些主機(jī)。更換網(wǎng)絡(luò)適配器也會(huì)使主機(jī)的硬件地址改變。地址解析協(xié)議ARP解決這個(gè)問題的方法是在在主機(jī)ARP告訴緩存區(qū)中存放一個(gè)從IP地址到硬件地址的映射表,并且這個(gè)映射表還經(jīng)常動(dòng)態(tài)更新。
每一個(gè)主機(jī)都設(shè)有一個(gè)ARP 告訴緩存表,里面有本局域網(wǎng)上各主機(jī)和路由器的IP地址到硬件地址的映射表。這些都是該主機(jī)目前知道的一些地址。舉例說明,主機(jī)怎樣知道IP地址對應(yīng)的硬件地址:
當(dāng)主機(jī)A要向本局域網(wǎng)上的某個(gè)主機(jī)B發(fā)送IP數(shù)據(jù)報(bào)時(shí),就先在其ARP告訴緩存中查看有無主機(jī)B的IP地址,如果有,就在ARP查出對應(yīng)的硬件地址,再把這個(gè)硬件地址寫入MAC幀,然后通過局域網(wǎng)把該MAC幀發(fā)往此硬件地址。
注意:ARP是解決同一局域網(wǎng)上的主機(jī)或路由器IP地址和硬件的映射問題。如果所要找的主機(jī)和源主機(jī)不在同一局域網(wǎng)上,那么源主機(jī)就無法解析出目的主機(jī)的硬件地址。這時(shí),源主機(jī)將與其通信的路由器的IP地址對應(yīng)的硬件地址解析出來,以便能夠?qū)P數(shù)據(jù)報(bào)傳送到路由器上,最終那一跳路由器用地址解析協(xié)議找到目的主機(jī)的硬件地址,最終將IP數(shù)據(jù)報(bào)交給目的主機(jī)。
從IP地址到硬件地址的解析時(shí)自動(dòng)進(jìn)行的,主機(jī)的用戶對這種地址解析過程是不清楚的,只要主機(jī)或路由親和本網(wǎng)絡(luò)上行另一個(gè)已知IP地址的主機(jī)或路由器進(jìn)行通信,ARP協(xié)議就會(huì)自動(dòng)將這個(gè)IP地址解析為鏈路層所需要的硬件地址。
歸納使用地址解析協(xié)議ARP的四種情況:
1.發(fā)送方是主機(jī),要把IP數(shù)據(jù)報(bào)發(fā)送到本網(wǎng)絡(luò)上的另一個(gè)主機(jī)。這時(shí)用ARP找到目的主機(jī)的硬件地址。
2.發(fā)送方式主機(jī),要把IP數(shù)據(jù)報(bào)發(fā)送到另一個(gè)網(wǎng)絡(luò)上的一個(gè)主機(jī)。這時(shí)用ARP找到本網(wǎng)絡(luò)上的一個(gè)路由器的硬件地址。剩下的工作就交給路由器完成。
3.發(fā)送發(fā)是路由器,要把IP數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到本網(wǎng)絡(luò)上的一個(gè)主機(jī)。這時(shí)用ARP找到目的主機(jī)的硬件地址。
4.發(fā)送方是路由器,要把IP數(shù)據(jù)報(bào)轉(zhuǎn)發(fā)到另一個(gè)網(wǎng)絡(luò)上的主機(jī)。這時(shí)用ARP找到本網(wǎng)絡(luò)上的另一個(gè)路由器的硬件地址。剩下的工作交給這個(gè)路由器完成。
問題:既然在網(wǎng)絡(luò)鏈路上傳送的幀最終是按照硬件地址找到目的主機(jī)的,那么為什么我們不直接使用硬件地址通信,而是使用抽象的IP地址調(diào)用ARP來尋找相應(yīng)的IP地址?
答:由于全世界存在各式各樣的網(wǎng)絡(luò),它使用不同的硬件地址。要使這些異構(gòu)網(wǎng)絡(luò)能夠互相通信就必須進(jìn)行復(fù)雜的硬件轉(zhuǎn)換工作,因此由用戶或用戶主機(jī)來完成這項(xiàng)工作幾乎是不可能的。但是統(tǒng)一的IP地址就解決了這個(gè)問題。連接在英特網(wǎng)上的主機(jī)只需要擁有統(tǒng)一的IP地址。它們之間的通信就像連接在同一個(gè)網(wǎng)絡(luò)上那樣簡單方便,因?yàn)檎{(diào)用ARP的復(fù)雜過程都是喲普能計(jì)算機(jī)軟件自動(dòng)完成的,并不需要用戶參與。
IP層轉(zhuǎn)發(fā)分組的流程:
分組轉(zhuǎn)發(fā)算法如下:
(1)從數(shù)據(jù)報(bào)的首部提取目的主機(jī)的IP地址D,得出目的網(wǎng)絡(luò)地址為N。
(2)若N就是與此路由器直接相連的某個(gè)網(wǎng)絡(luò)地址,則直接進(jìn)行交付,不需要再經(jīng)過其他的路由器,直接把數(shù)據(jù)報(bào)交付給主機(jī)(這里包括把目的主機(jī)地址D轉(zhuǎn)換為具體的硬件地址,把數(shù)據(jù)幀封裝為MAC幀,再發(fā)送此幀。)否則就進(jìn)行間接交付,進(jìn)行(3)操作。
(3)若路由表中有目的地址為D的特定主機(jī)路由,則把數(shù)據(jù)報(bào)傳送給所指明的下一跳路由器,否則執(zhí)行(4)。
(4)若路由表中有到達(dá)網(wǎng)絡(luò)N的路由,則把數(shù)據(jù)傳送給路由表中所指明的下一跳路由器,否則執(zhí)行(5)
(5)若路由表中有一個(gè)默認(rèn)路由,則把數(shù)據(jù)報(bào)傳送給路由表 中所指明的默認(rèn)路由器,否則執(zhí)行(6)
(6)報(bào)告轉(zhuǎn)發(fā)分組出錯(cuò)
電子發(fā)燒友App









評論