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