【計算機網路 第五版】閱讀筆記之四:網路層
第四章 網路層
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網