標籤:
第四章 網路層
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) 報文類型:差錯報告報文和詢問報文
其中,差錯報告報文:
詢問報文:
(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) 協議特點:
(4) 距離向量演算法(目的網路+距離+下一跳路由器)
地址為X的相鄰路由發來RIP報文,修改報文所有項(距離d+1,下一跳全改為X),對每一項目進行如下處理:
若源路由中沒有目的網路N,則把該項目添加到路由表中
若存在目的網路N,查看下一跳路由器,若為X,直接替換路由表
若存在目的網路N,下一跳路由器不為X,則比較距離,若小則更新,反之則丟棄
8.3 內部閘道通訊協定OSPF
(1) 使用分布式的鏈路狀態協議,先開啟最短的路徑(Open Shortest Path First),使用Dijkstra的最短路徑演算法SPF
(2) 三個要點(和RIP不同)
(3) 特點:
建立了一個鏈路狀態資料庫,全網的拓撲結構圖
能較快的更新資料庫,更新過程收斂很快
為了使OSPF用於大規模的網路,它將一個自治系統劃分為多個地區,這樣利用洪泛法交換鏈結路狀態資訊的範圍就局限於每一個地區,減少了網路上的通訊量
OSPF不用UDP而是直接用IP資料報發送
OSPF對於不同類型的業務可計算出不同的路由
多重路徑間的Server Load Balancer:在代價相同的多條路徑上分配通訊量
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) 在網際網路中的所有目的路由器,對目的地址時專用地址的資料報一律不進行轉寄。如:
(2)利用隧道技術加密內部資料實現虛擬專用VPN網
【電腦網路 第五版】閱讀筆記之四:網路層