TCP/IP體系結構之網絡層
本章重要內容是:
1)虛擬互聯網絡概念
2)IP地址與物理地址的關系
3)IP地址分類和無分類域間路由選擇CIDR
4)路由選擇協議的工作原理
問題:網絡層為傳輸層提供怎樣的服務(面向連接or無連接)?可靠交付應當由誰來負責?網絡or端系統?
電信網(虛電路服務:首先建立連接)。
因特網設計思路:網絡層向上提供簡單靈活的,無連接,金做大努力交付的數據報服務。不提供服務質量的承諾。如果主機之間的進程需要可靠的通信,就有網絡的主機中的運輸層負責(差錯分析,流量控制)。
問題:網絡層如何傳送IP數據報?
網絡層的協議(IP/ARP/RARP/ICMP/IGMP)
何為虛擬互聯網絡?
使用虛擬互連網絡的好處是:當互聯網上的主機進行通信時,就好像在一個網絡上通信一樣,而看不見互連的各具體的網絡異構細節。
將網絡互相連接起來需要使用一些中間設備,根據中間設備所在的層次,可以分為轉發器(物理層),網橋(數據鏈路層),路由器(IP層),網卡(網絡層以上)。
網絡互連針對路由器進行網絡互連和路由選擇。
IP地址(RFC791)/32位的標識符
IP地址的編址經歷三個階段:
1)分類的IP地址 IP 地址 ::= { <網絡號>, <主機號>}
2)子網的划分
3)構成超網
更好的滿足不同用戶的需求。
IP 地址是一種分等級的地址結構。分兩個等級的好處是:
第一,IP 地址管理機構在分配 IP 地址時只分配網絡號,而剩下的主機號則由得到該網絡號的單位自行分配。這樣就方便了 IP 地址的管理。
第二,路由器僅根據目的主機所連接的網絡號來轉發分組(而不考慮目的主機號),這樣就可以使路由表中的項目數大幅度減少,從而減小了路由表所占的存儲空間。
實際上 IP 地址是標志一個主機(或路由器)和一條鏈路的接口。
當一個主機同時連接到兩個網絡上時,該主機就必須同時具有兩個相應的 IP 地址,其網絡號 net-id 必須是不同的。這種主機稱為多歸屬主機(multihomed host)。
由於一個路由器至少應當連接到兩個網絡(這樣它才能將 IP 數據報從一個網絡轉發到另一個網絡),因此一個路由器至少應當有兩個不同的 IP 地址。
IP 地址與硬件地址
從協議棧的層次上看數據的流動
地址解析協議(ARP)與逆地址解析協議(RARP:已包含在DHCP協議之中,不在討論)
不管網絡層使用的是什么協議,在實際網絡的鏈路上傳送數據幀時,最終還是必須使用硬件地址。每一個主機都設有一個 ARP 高速緩存(ARP cache),里面有所在的本局域網上的各主機和路由器的 IP 地址到硬件地址的映射表。 當主機 A 欲向本局域網上的某個主機 B 發送 IP 數據報時,就先在其 ARP 高速緩存中查看有無主機 B 的 IP 地址。如有,就可查出其對應的硬件地址,再將此硬件地址寫入 MAC 幀,然后通過局域網將該 MAC 幀發往此硬件地址。
也有可能查不到B主機的IP地址:
ARP 高速緩存的作用
為了減少網絡上的通信量,主機 A 在發送其 ARP 請求分組時,就將自己的 IP 地址到硬件地址的映射寫入 ARP 請求分組。 當主機 B 收到 A 的 ARP 請求分組時,就將主機 A 的這一地址映射寫入主機 B 自己的 ARP 高速緩存中。這對主機 B 以后向 A 發送數據報時就更方便了。
ARP 是解決同一個局域網上的主機或路由器的 IP 地址和硬件地址的映射問題。 如果所要找的主機和源主機不在同一個局域網上,那么就要通過 ARP 找到一個位於本局域網上的某個路由器的硬件地址,然后把分組發送給這個路由器,讓這個路由器把分組轉發給下一個網絡。剩下的工作就由下一個網絡來做。從IP地址到硬件地址的解析是自動進行的,主機的用戶對這種地址解析過程是不知道的。 只要主機或路由器要和本網絡上的另一個已知 IP 地址的主機或路由器進行通信,ARP 協議就會自動地將該 IP 地址解析為鏈路層所需要的硬件地址。
使用 ARP 的四種典型情況(。。。。。。)
為什么我們不直接使用硬件地址進行通信?
由於全世界存在着各式各樣的網絡,它們使用不同的硬件地址。要使這些異構網絡能夠互相通信就必須進行非常復雜的硬件地址轉換工作,因此幾乎是不可能的事。 連接到因特網的主機都擁有統一的 IP 地址,它們之間的通信就像連接在同一個網絡上那樣簡單方便,因為調用 ARP 來尋找某個路由器或主機的硬件地址都是由計算機軟件自動進行的,對用戶來說是看不見這種調用過程的。
IP 數據報的格式