1. 程式人生 > >【計算機網路 第五版】閱讀筆記之四:網路層

【計算機網路 第五版】閱讀筆記之四:網路層

第四章 網路層

1.網路層的兩種服務:虛電路服務(可靠性由網路保證)和資料報服務(可靠性由使用者主機保證)

2.網際協議

(1)地址解析協議ARP和逆地址解析協議(RARP):位於IP協議之下,IP使用這兩個協議解析到實體地址

(2)網際控制報文協議(ICMP)和網際組管理協議(IGMP):位於IP協議之上,使用IP協議

Tips:這裡補充一下各個層的一些相關協議:應用層協議:HTTP,FTP,SMTP;運輸層協議TCP,UDP

3.各個層的中間裝置:

(1)物理層使用的中間裝置叫轉發器(repeater)

(2)資料鏈路層使用的中間裝置叫網橋或者橋接器(bridge)

(3)網路層使用的中間裝置叫路由器(router)

(4)網路層以上使用的中間裝置叫閘道器(gateway)

4.IP協議:IP地址=網路號net_id+主機號host_id,用點分十進位制(每八位轉換成十進位制)表示。

4.1 IP分類

(1)A類:1位元組網路號+3位元組主機號,網路號最高為為0,地址範圍:1.0.0.0~126.255.255.255,最大主機數為2^24-2=16777214個。

(2)B類:2位元組網路號+2位元組主機號,網路號前兩位為10,地址範圍:128.1.0.0~191.255.255.255,最大主機數為2^16-2=65534個

(3)C類:3位元組網路號+1位元組主機號,網路號前三位為110,地址範圍:192.0.1.0~223.255.255.255,最大主機數為2^8-2=254個

(4)D類:多播地址,1110開始

(5)E類:保留地址,1111開始

一般不使用的特殊地址:(網路號為0代表本網路,主機號全0代表本主機,全1代表所有主機)

網路號 主機號 源地址使用 目的地址使用 代表的意思
0 0 可以 不可 在網路上的本主機
0 host_id 可以 不可 在本網路上的某個主機host_id
全1 全1 不可 可以 只在本網路上進行廣播
net_id 全1 不可 可以 對net_id上的所有主機進行廣播
127 非全0或全1的任何數 可以 可以 用作本地軟體環回測試之用

4.2 IP的特點

(1) 分級結構的好處:分配時只需分配網路號,主機號由使用者單位自己分配;路由表根據主機號轉發分組,減小了路由表所佔空間以及查詢路由表的時間

(2) 連線的網路不同IP也不同,同時連多個網路的主機稱為多屬性主機。一個路由器至少要連線兩個不同的網路(內網和外網),因此一個路由器至少應當有兩個不同的IP地址

(3) 用轉發器或網橋連線起來的若干個區域網仍為一個網路,因為他們的網路號相同

(4) 所有分配到網路號的網路都是平等

4.3 IP地址和實體地址

(1)IP地址時放在IP資料報的首部,MAC地址放在MAC幀的首部;

(2)在網路層和網路層以上使用IP地址,在資料鏈路層及以下使用MAC硬體地址;

(3)MAC幀裡面看不到IP地址,被封裝起來了。

4.4 ARP和RARP協議

(1) ARP工作流程:A以廣播方式傳送ARP請求(需要得到B的硬體地址),B收到請求之後以單播方式給A傳送ARP響應,此時B把A的IP地址和MAC地址存在高速ARP快取內以便下一次傳送,A收到B的響應之後,也在自己的ARP快取中寫入B的IP地址和MAC地址對映。

(2) 高速ARP快取:對映地址都有一定的生存週期,超過就直接丟棄。

(3) ARP是解決同一區域網上的主機和路由器的IP地址和路由器地址的對映問題。如果所找的主機不在區域網內,那麼就需要通過ARP找到位於區域網內的一個路由器的硬體地址,然後把分組資料傳給路由器,路由器再把分組傳給下一個網路。

4.5 IP資料報的格式

IP資料報的組成:首部(20位元組)+資料部分

這裡寫圖片描述

(1) 版本號:IP協議的版本

(2) 首部長度:常用首部長度為20個位元組

(3) 區分服務:一般不使用這個欄位

(4) 資料報總長度:首部和資料之和,佔16位,表示最大長度為65535位元組,由於MTU限制,一般不超過1500位元組。另外資料報的總長度不是指未分片前的資料報總長度,而是指分片後的每一片的首部+資料的長度

(5) 標識:標識欄位由計數器產生,每產生一個數據報就加1,資料報分片後標識段也被複制到各個分片中,以便重灌成原來的資料報。

(6) 標誌:三位,最低位記為MF,MF=1代表還有分片,反之則沒有;中間一位記為DF,DF=1代表不允許分片,反之則允許分片

(7) 片偏移:分片後的該片在原分組中的相對位置。單位為8個位元組,分片的長度都是8自己的倍數;

(9) 生存時間(TTL):資料報在網路中的壽命。防止無法交付的資料報無限制地在網路中兜圈子。每經過一個路由器,TTL就減去資料報在該路由器中消耗的時間,TTL為0就丟棄該報。

(10) 協議:指攜帶的資料時何種協議。常用協議欄位:1-ICMP,2-IGMP,6-TCP,8-EGP,17-UDP,41-IPv6等等

(11) 首部檢驗和:反碼算術運算,即傳送端首部檢驗和為全0,所有首部和相加取反得到接收端檢驗和,接收端判斷首部和的反碼是否為0,為0則保留,不為0則拋棄。(下圖很好的說明了過程)

這裡寫圖片描述

(12)源地址和目的地址:每個佔32位,IP地址。

4.5 轉發分組:對一條路由資訊(目的網路地址,下一跳轉地址)

(1) 從資料報中提取目的主機的IP地址D,得出目的網路地址N

(2) 如果N是與此路由器直接相連的某個網路地址,則直接交付,否則為間接交付,執行(3)

(3) 若路由表中有目的地址D的特定主機路由,則把資料報傳送給路由表的下一跳路由器;否則,執行(4)

(4) 若路由表中有到達網路N的路由,則把資料報傳送給路由表中所指明的下一跳路由器,否則,執行(5)

(5) 若路由表中有一個預設路由,則把資料報傳送給路由表中所指明的預設路由,否則,執行(6)

(6) 報告轉發分組出錯。

5.劃分子網

5.1 IP地址={<網路號>,<子網號>,<主機號>},借用主機號的若干位作為子網號subnet_id,從兩級IP結構變成了三級IP結構。

Tips:劃分子網純屬一個單位內部的事,對外仍表現為一個網路。

5.2 子網掩碼:從IP地址得到子網的網路地址

這裡寫圖片描述

5.3 使用子網的分組轉發(IP地址 AND 子網掩碼 = 網路地址)

(1) 從資料報中提取目的主機的IP地址D

(2) 先判斷能不能直接交付。對路由器直接相連的網路逐個進行檢查:用各網路的子網掩碼和D逐位相與,看結果是否和相應的網路地址匹配,若匹配則直接交付;否則為間接交付,執行(3)

(3) 若路由表中有目的地址D的特定主機路由,則把資料報傳送給路由表的下一跳路由器;否則,執行(4)

(4) 對路由表中的每一行(目的地址,子網掩碼,下一跳地址),用其中的子網掩碼和D逐位相與,得到網路地址N,若與該行的目的網路地址匹配,則傳給下一跳地址,否則,執行(5)

(5) 若路由表中有一個預設路由,則把資料報傳送給路由表中所指明的預設路由,否則,執行(6)

(6) 報告轉發分組出錯。

6.無分類編址CIDR

(1) IP結構:IP地址 = {<網路字首>,<主機號>},採用斜線記法,128.13.35.7/20,表示前20位為網路字首

(2) 網路字首相同的連續IP地址組成一個CIDR地址塊

(3) 地址掩碼:也可繼續稱為子網掩碼。

(4) 查詢路由表的時候,可能會得到不止一個匹配結果。應當從匹配結果中選擇最長字首匹配的路由

例如:目的地址206.0.71.130和206.0.68.0/22以及206.0.71.126/25都可以匹配

這時就需要選擇**最長字首匹配**206.0.71.126/25作為下一跳地址。

(5) 對所有可能的字首進行迴圈查詢效率不高,可以採用二叉線索來快速查詢最長字首匹配

7.網際控制報文協議ICMP(不是高層協議,它屬於IP層的協議)

(1) 作用:為了更有效的轉發IP資料報和提高交付成功的機會

(2) 當遇到IP資料無法訪問目標、IP路由器無法按當前的傳輸速率轉發資料包等情況時,會自動傳送ICMP訊息

(3) 報文型別:差錯報告報文和詢問報文

其中,差錯報告報文:

  • 終點不可達:不能交付資料報時向源點發送

  • 源點抑制:當路由器或主機由於擁塞而丟棄資料,傳送該報文通知源點將資料報傳送速率放慢

  • 時間超過:TTL將為0,丟棄資料的同時傳送該報文

  • 引數問題:首部欄位不正確,丟棄資料,傳送該報文

  • 改變路由:讓主機知道下次應將資料報傳送給另外的更好的路由器

詢問報文:

  • 回送請求和應答:主機向目的主機發送回送請求報文,目的主機向源主機發送應答報文,用來測試目的主機站是否可達以及瞭解其狀態

  • 時間戳請求和應答:用於時鐘同步和測量時間。

(4) 應用:分組網間探測ping,用來測試兩個主機之間的連通性,採用ICMP回送請求和應答報文,PING是應用層直接使用網路層ICMP的一個例子,沒有通過網路層TCP和UDP

8.路由選擇協議

8.1 路由選擇協議分類

(1) 內部網管協議IGP:在一個自治系統(AS)內部使用的路由選擇協議,如RIP和OSPE協議

(2) 外部閘道器協議EGP:在一個自治系統的邊界,用來將路由選擇資訊傳遞給下一個自治系統的協議。如BGP-4

8.2 內部閘道器協議RIP:不斷更新路由表,使得從每一個路由到每一個目的路由都時最短的。

(1) 一種分散式的基於距離向量的路由選擇協議。

(2) 協議裡的“距離”也稱謂“跳數”,每經過一個路由加+1

(3) 協議特點:

  • 僅和相鄰路由器交換資訊

  • 交換的資訊是當前本路由器所知道的全部資訊(資訊包括我到本AS中各個網路的最短距離,以及到每個網路經過的下一跳路由器)。

  • 按固定的時間間隔交換路由資訊。

(4) 距離向量演算法(目的網路+距離+下一跳路由器)

地址為X的相鄰路由發來RIP報文,修改報文所有項(距離d+1,下一跳全改為X),對每一專案進行如下處理:

  • 若源路由中沒有目的網路N,則把該專案新增到路由表中

  • 若存在目的網路N,檢視下一跳路由器,若為X,直接替換路由表

  • 若存在目的網路N,下一跳路由器不為X,則比較距離,若小則更新,反之則丟棄

8.3 內部閘道器協議OSPF

(1) 使用分散式的鏈路狀態協議,開放最短路徑優先(Open Shortest Path First),使用Dijkstra的最短路徑演算法SPF

(2) 三個要點(和RIP不同)

  • 採用洪泛法,路由器通過所有輸出埠向所有相鄰的路由傳送資訊

  • 傳送的資訊時與本路由器相鄰的所有路由器的鏈路狀態

  • 只有當鏈路狀態發生變化時,路由器才會再次採用洪泛法傳送資訊 (與RIP不同)

(3) 特點:

  • 建立了一個鏈路狀態資料庫,全網的拓撲結構圖

  • 能較快的更新資料庫,更新過程收斂很快

  • 為了使OSPF用於大規模的網路,它將一個自治系統劃分為多個區域,這樣利用洪泛法交換鏈路狀態資訊的範圍就侷限於每一個區域,減少了網路上的通訊量

  • OSPF不用UDP而是直接用IP資料報傳送

  • OSPF對於不同型別的業務可計算出不同的路由

  • 多路徑間的負載平衡:在代價相同的多條路徑上分配通訊量

  • OSPF支援可變長度的子網劃分和無分類的編址CIDR

(4) OSPF分組IP資料報

這裡寫圖片描述

OSPF五種分組型別:問候(hello)分組,資料庫描述(Database Description)分組,鏈路狀態請求分組(Link state Request),鏈路狀態更新(Link state Update)分組,鏈路狀態確認(Link State Acknowledgment)分組。

8.4 外部閘道器協議BGP:力求尋找一條能到達目的網路且比較好的路由,而並非尋找一個最佳路由

(1) 採用路徑向量路由選擇協議

(2) 每一個AS都需要一個BGP發言人,這些發言人之間交換路由資訊,構建AS連通圖,它是樹形結構,不存在迴路

這裡寫圖片描述

構建的AS連通圖如下:

這裡寫圖片描述

8.5 路由器的構成:分成路由選擇部分和分組轉發部分

(1) 分組路由選擇:根據前面的路由選擇協議構造路由表,並經常定期的更新和維護路由表來選擇分組路由

(2) 分組轉發部分:分為交換結構,一組輸入埠和一組輸出埠

  • 交換結構:根據轉發表,對分組進行處理,將某個輸入埠進入的分組從一個合適的輸出埠轉發出去。三種交換方式:通過儲存器,通過匯流排,通過互連網路

  • 輸入埠:從線路接受分組->物理層處理->資料鏈路層處理->網路層處理分組排隊->交換結構

  • 輸出埠:交換結構->網路層處理分組排隊->資料鏈路層處理->物理層處理->向線路傳送分組

9.IP多播:採用D類IP

(1) 多播地址只能作為目的地址,不能作為源地址

(2) 網際組管理協議IGMP

10.虛擬專用網和網路地址轉換NAT

(1) 在因特網中的所有目的路由器,對目的地址時專用地址的資料報一律不進行轉發。如:

  • 10.0.0.0到10.255.255.255

  • 172.16.0.0到172.31.255.255

  • 192.168.0.0到192.168.255.255

(2)利用隧道技術加密內部資料實現虛擬專用VPN網