學習筆記之計算機網路(王道考研) 第四章 網路層
阿新 • • 發佈:2018-12-15
- 網路層的功能:
- 異構網路互聯
- 路由與轉發。路由表的兩大功能:路由選擇和分組轉發
- 擁塞控制
- 判斷網路是否進入擁塞狀態的方法是觀察網路的吞吐量與網路的負載的關係:如果隨著網路負載的增加,網路的吞吐量明顯小於正常的吞吐量,那麼網路就可能進入了“輕度擁塞狀態”;如果網路的吞吐量隨著網路負載的增大反而下降,網路就可能進入擁塞狀態;如果網路的負載繼續增大,而網路的吞吐量下降到0,網路就可能進入了死鎖狀態
- 擁塞控制的方法:
- 開環控制。在設計網路時事先將有關發生擁塞的因素考慮周到,力求網路在工作時不產生擁塞。它是一種靜態的預防方法,在做決定時不考慮當前網路的狀態
- 閉環控制。採用監測網路系統,基於反饋環路,它是一種動態的方法
- 靜態路由演算法(非自適應路由演算法):由網路管理員手工配置的路由資訊。當網路的拓撲結構或鏈路的狀態發生變化時,網路管理員需要手工去修改路由表中相關的靜態路由資訊。
- 動態路由演算法(自適應路由演算法):指路由器上的路由表項是通過相互連線的路由器之間彼此交換資訊,然後按照一定的演算法優化出來的,而這些路由資訊是在一定時間間隙裡不斷更新,以適應不斷變化的網路,以隨時獲得最優的尋路效果
- 常用動態路由演算法可分為兩類:距離-向量路由演算法(典例為RIP演算法)和鏈路狀態路由演算法(典例為OSPF演算法)
- 距離向量路由演算法:所有的節點都定期
- 距離向量演算法中,所有節點都監聽其他相鄰節點傳送來的路由選擇更新資訊,並在下列情況下更新它們的路由選擇表:
- 被通告一條新的路由,該路由在本節點的路由表中不存在,此時本地系統加入這條新的路由
- 傳送來的路由資訊中有一條到達某個目的地的路由,該路由比當前使用的路由有較短的距離(較小的代價)。此種情況下,就用新路由替換路由表中達到目的地的那個現有路由
- RIP演算法採用“跳數”作為距離的度量。跳數指從源IP到目的IP所經過的路由個數,經過一個路由器跳數加1
- 鏈路狀態路由演算法:要求每個參與該演算法的節點都有完全的網路拓撲資訊。首先,主動測試所有鄰接節點的狀態;然後,定期地將鏈路狀態傳播給所有其他的節點。使用Dijsktra最短路徑演算法計算路由
- 鏈路狀態路由演算法三點特徵:
- 向本自治系統中所有路由器傳送訊息,使用的方式為洪泛法,即路由器通過所有埠向所有相鄰的路由器傳送資訊,而每一個相鄰路由器又將此資訊發往其所有相鄰路由器(但不再發給剛剛發來訊息的那個路由器)
- 傳送的資訊是與該路由器相鄰的所有路由器的鏈路狀態,所謂“鏈路狀態”,就是指本路由器都和哪些路由器相鄰以及該鏈路的“度量”。對於OSPF演算法,鏈路狀態的“度量”主要用來表示費用、距離、時延、頻寬等
- 只有當鏈路狀態發生變化時,路由器才向所有路由器傳送此訊息
- 距離-向量路由演算法與鏈路狀態路由演算法的比較:在距離-向量路由演算法中,每個節點僅與它的直接鄰居交談,它為它的鄰居提供了從自己到網路中所有其他節點的最低費用估計。在鏈路狀態路由演算法中,每個節點通過洪泛法的方式與其他所有節點交談,但它僅告訴它們與它直接相連的鏈路的費用
- 距離-向量路由演算法可能遇到路由環路等問題。
- 因特網將整個網際網路劃分為許多較小的自治系統,一個自治系統裡面包含很多區域網,每個自治系統有權自主地決定本系統內應採用何種路由選擇協議
- 一個自治系統內部所使用的路由選擇協議稱為內部閘道器協議(IGP),也稱為域內路由選擇,具體的協議有RIP和OSPF
- 自治系統之間所使用的路由選擇協議稱為外部閘道器協議(EGP),也稱為域間路由選擇,具體的協議有BGP
- 當使用層次路由時,OSPF將一個自治系統再劃分為若干個區域,每個路由器都知道在本區域內如何把分組路由到目的地的細節,但不用知道其他區域的內部結構
- IP資料報格式:
- IP首部部分重要欄位含義如下:
- 首部長度。佔4位,以4位元組為單位,最大值為60位元組(15(1111) x 4),最常用的首部長度為20(首部欄位值為5)
- 總長度。佔16位,指首部和資料之和的長度,單位為位元組,因此資料報的最大長度為2^16 - 1 = 65535位元組。乙太網幀的最大傳送單元MTU為1500位元組,因此當一個IP資料報封裝成幀時,資料報的總長度(首部 + 資料部分)一定不能超過下面鏈路層的MTU;若超過,則需分片
- 標識。佔16位,它是一個計數器,每產生一個數據報就加11,並賦值給標識欄位。但它並不是序號(因為IP是無連線服務,無序號機制)。當一個數據報長度超過資料鏈路層的MTU時,必須分片,此時每個資料報片都複製一次標識號以便能正確重灌成原來的資料報
- 標誌。佔3位。標誌欄位的最低位為MF(More Fragment),MF = 1表示後面還有分片,MF = 0表示最後一個分片;標誌位中間的一位為DF(Don't Fragment),只有當DF=0時才允許分片
- 片偏移。佔13位,以8位元組為偏移單位。意為較長的分組在分片後,某片在原分組中的相對位置
- 首部檢驗和。佔16位,只檢驗分組的首部,而不檢驗資料部分
- 生存時間TTL。佔8位,即資料報在網路中可通過的路由器數的最大值,表示分組在網路中的壽命,以確保分組不會永遠在網路中迴圈。路由器在轉發分組之前,先把TTL減1。若TTL被減為0,則該分組必須丟棄
- 協議。指出此分組攜帶的資料是使用何種協議,即分組的資料部分應交給哪個傳輸層協議。其中6表示TCP,17表示UDP
- 一個鏈路層資料報所能承載的最大資料量稱為最大傳送單元(MTU)。不同的鏈路層協議,有不同的MTU
- 在不同的網路中傳送時,MAC幀中的源地址和目的地址要發生變化。但是網橋在轉發幀時,不改變幀的源地址
- 分類的IP地址:
- 主機號全為0,表示本網路本身
- 主機號全為1,表示本網路的廣播地址
- 網路號為127為環回測試地址。127.0.0.0網路保留作為環路自檢地址,此地址表示任意主機本身,目的地址為環回地址的IP資料報永遠不會出現在任何網路上
- 32位全為0,即0.0.0.0,表示本網路上的本主機
- 32位全為1,即255.255.255.255,表示整個TCP/IP網路的廣播地址,又稱受限廣播地址。實際使用時,由於路由器對廣播域的隔離,255.255.255.255等效為本網路的廣播地址
- 128.0和192.0.0這兩個網路號不可指派
- 私有IP地址只用於LAN,不用於WAN連線;私有IP地址被LAN重複使用
- A類私有地址:1個A類網段,即10.0.0.0 ~ 10.255.255.255
- B類私有地址:16個B類網段,即172.16.0.0 ~ 172.31.255.255
- C類私有地址:256個網段,192.168.0.0 ~ 192.168.255.255
- NAT轉換表中存放著{本地IP地址:埠}到{全球IP地址:埠}的對映
- 普通路由器在轉發IP資料報時,不改變其源IP地址和目的地址。而NAT路由器在轉發IP資料報時,一定要更換其IP地址(轉換源IP地址或目的IP地址)。
- 普通路由器僅工作在網路層,而NAT路由器轉發資料報時需要檢視和轉換傳輸層的埠號
- 子網劃分:從主機號借用若干個位元作為子網號,原網路號不變。三級IP地址 = {<網路號>,<子網號>,<主機號>}
- 無論是IPV4還是CIDR(無分類域間路由選擇),都不能指派主機號為全0或全1的IP地址給主機
- IP地址的子網掩碼其實就是告訴你這個IP地址的前多少位是網路號+子網號
- CIDR:IP = {<網路字首>,<主機號>},消除了傳統A,B,C類網路劃分
- CIDR斜線記法:IP地址/網路字首所佔位元數
- CIDR地址塊仍可以再劃分子網
- 將網路字首都相同的連續的IP地址組成“CIDR”地址塊。一個CIDR地址塊可以表示很多地址,這種地址的聚合稱為路由聚合,或稱為構成超網
- 最長字首匹配(最佳匹配):在查詢路由表時,應當從匹配結果中選擇具有最長網路字首的路由,因為網路字首越長,其地址塊就越小,因而路由就越具體
- 通常用二叉線索儲存CIDR路由表
- IP資料報再被路由器轉發時其資料鏈路層封裝所使用的MAC地址是不斷改變的
- ARP協議:地址解析協議。完成IP地址到MAC地址的對映
- 每個主機都設有一個ARP快取記憶體,存放本區域網上各主機和路由器的IP地址到MAC地址的對映表,稱ARP表
- ARP工作在網路層,工作原理......
- ARP請求分組是廣播發送,但是ARP響應分組是單播傳送
- DHCP協議:動態主機配置協議。DHCP協議是應用層協議,它是基於UDP的。
- DHCP協議工作原理:它使用客戶/伺服器方式。需要IP地址的主機在啟動時向DHCP伺服器廣播傳送發現報文,這時該主機稱為DHCP客戶。本網路上的所有主機都能收到此廣播報文,但只有DHCP伺服器才回答此廣播報文。DHCP伺服器先在其資料庫中查詢該計算機的配置資訊,若找到,則返回找到的資訊。若找不到,則從伺服器的IP地址池中取一個地址分配給該計算機。DHCP伺服器的回答報文叫提供報文
- DHCP具體工作過程:DHCP發現---》DHCP提供----》DHCP請求----》DHCP確認
- DHCP協議的客戶端和服務端需要通過廣播方式來進行互動,原因是DHCP協議執行期間,客戶端和服務端都沒有標明自己身份的IP地址,因此不可能通過單播形式進行互動。在傳輸層採用UDP同理分析
- ICMP:網際控制報文協議。ICMP報文作為IP層資料報的資料,加上資料報的首部,組成IP資料報傳送出去。
- ICMP協議是IP層協議。ICMP報文種類有兩種,即ICMP差錯報告報文和ICMP詢問報文
- ICMP差錯報告報文用於目標主機或到目標主機路徑上的路由器向源主機報告差錯和異常情況。共有以下五種型別:
- 終點不可達。當路由器或主機不能交付資料報時(全部收到但是無法上交,可能埠有錯)傳送該型別報文
- 源點抑制。當路由器或主機由於網路擁塞而丟棄資料報時,就向源點發送源點抑制報文,使源點知道應當把資料報的傳送速率放慢
- 時間超過。當路由器收到生存時間TTL為零的資料報時,除丟棄該資料報外,還要向源點發送時間超過報文。當終點在預先規定的時間內不能收到一個數據報的全部資料報片時,就把已收到的資料報片都丟棄,並向源點發送時間超過報文
- 引數問題。當路由器或目的主機收到的資料報的首部中有的欄位的值不正確時(根據FCS判斷),就丟棄該資料報,並向源點發送引數問題報文
- 改變路由(重定向)。路由器把改變路由報文傳送給源主機,讓主機知道下次應將資料報傳送給另外的路由器(更好的路由)
- 不應傳送ICMP差錯報告報文的幾種情況:
- 對ICMP差錯報告報文不再發送ICMP差錯報告報文
- 對第一個分片的資料報片的所有後續資料報片都不傳送ICMP差錯報告報文
- 對具有組播地址的資料報都不傳送ICMP差錯報告報文
- 對具有特殊地址(如127.0.0.0或0.0.0.0)的資料報不傳送ICMP差錯報告報文
- ICMP詢問報文四種類型:
- 回送請求和回答報文。
- 時間戳請求和回答報文。
- 掩碼地址請求和回答報文。
- 路由器詢問和通告報文。
- PING:工作在應用層,直接使用網路層的ICMP協議,而沒有使用傳輸層的TCP或UDP協議。使用了ICMP回送請求和回答報文
- traceroute/tracert:工作在網路層,使用了ICMP時間超過報文
- 解決IP地址耗盡的問題的措施:
- 採用無類別編址CIDR
- 採用網路地址轉換NAT方法
- 採用更大地址空間的新版本的IP協議IPV6(從根本解決)
- IPV6地址佔16位元組,128位;IPV6只有在包的源節點才能分片,是端到端的,傳輸中的路由器不能分片;IPV6的首部長度是8B的整數倍;身份驗證和保密功能是IPV6的關鍵特徵
- IPV6資料報的目的地址可以是以下三種基本型別地址之一:
- 單播。
- 多播。
- 任播。IPV6增加的一種型別,任播的目的站是一組計算機,但資料報在交付時只交付其中的一個,通常距離最近的一個
- IPV6地址表示形式:每4位用一個十六進位制數表示 ,並且用冒號分隔每個16位;當16位域的開頭有一些0時可以採用一種縮寫表示法,但在域中必須至少有一個數字
- IPV6地址使用三個等級:第一級(頂級)指明全球都知道的公共拓撲。第二級(場點級)指明單個場點。第三極指明單個的網路介面
- IPV4向IPV6過渡可以採用雙協議棧和隧道技術兩種策略。
- 雙協議棧:在完全過渡到IPV6之前,使一部分主機或路由器裝有兩個協議棧,一個IPV4一個IPV6,通過雙協議棧進行轉換
- 隧道技術:將整個IPV6資料報封裝到IPV4資料報的資料部分,使得IPV6資料報可以再IPV4網路的隧道中傳輸
- RIP協議規定:
- 從一路由器到直接連線的網路距離(跳數)為1。而每經過一個路由器,則距離(跳數)加1
- RIP允許一條路徑最多隻能包含15個路由器,因此距離等於16時,它表示網路不可達
- RIP預設在任意兩個使用RIP協議的路由器之間每30秒廣播一次RIP路由更新資訊
- 當網路出現故障時,會出現慢收斂現象(即需要較長時間才能將此資訊傳送到所有路由器),俗稱“壞訊息傳得慢”
- RIP協議是應用層協議,它使用UDP傳送資料(埠520)。
- OSPF是網路層協議,它不使用UDP或TCP而是直接IP資料報傳送(其IP資料報首部的協議欄位為89)
- OSPF協議:如果到同一個目的網路有多條相同代價的路徑,那麼可以將通訊量分配給這幾條路徑,這叫做多路徑間的負載平衡
- OSPF五種分組型別:
- 問候分組。用來發現和維持鄰站的可達性
- 資料庫描述分組。向鄰站給出自己的鏈路狀態資料庫中的所有鏈路狀態專案的摘要資訊
- 鏈路狀態請求分組。向對方請求傳送某些鏈路狀態專案的詳細資訊
- 鏈路狀態更新分組。用洪泛法對全網更新鏈路狀態
- 鏈路狀態確認分組。對鏈路更新分許的確認
- BGP:邊界閘道器協議。力求尋找一條能夠達到目的網路且比較好的路由(不能兜圈子)。BGP採用的是路徑向量路由選擇協議。BGP協議是應用層協議,基於TCP
- BGP所交換的網路可達性資訊就是要達到某個網路(用網路字首表示)所要經過的一系列AS。
- BGP協議交換路由資訊的節點數量級是自治系統的數量級。BGP支援CIDR,BGP的路由表應當包括目的網路字首、下一跳路由器以及到達該目的網路所要經過的各個自治系統序列
- BGP-4共使用4種報文:
- 開啟報文。用來與相鄰的另一個BGP發言人建立關係
- 更新報文。用來發送某一路由的資訊,以及列出要撤銷的多條路由
- 保活報文。用來確認開啟報文和週期性地證實鄰站關係
- 通知報文。用來發送檢測到的差錯
- 組播機制:讓源計算機一次傳送的單個分組可以抵達用一個組地址標識的若干臺目標主機,並被它們正確接收。類似QQ群
- 組播一定是僅應用於UDP(因為TCP只能是一對一)。
- 一個主機可以同時屬於多個組(一個QQ可以加入多個QQ群)
- IPV4中的D類地址即為組播地址
- 主機使用IGMP協議(因特網組管理協議)加入組播組。主機組播時僅傳送一份資料,只有資料在傳送路徑出現分叉時才將分組複製後繼續轉發。能夠執行組播協議的路由器稱為組播路由器
- 組播地址只能用作目的地址,而不能用於源地址;並非所有的D類地址都可作為組播地址
- IANA的乙太網組播地址(MAC地址)範圍是01-00-5E-00-00-00到01-00-5E-FF-FF-FF。即在48位MAC地址中,只有後23位可用作組播。和組播組IP地址的後23位對應
- IGMP協議是讓連線在本地區域網上的組播路由器知道本區域網上是否有主機參加或退出了某個組播組
- 組播路由選擇就是要找出以源主機為根節點的組播轉發樹,其中每個分組在每一條鏈路上只傳送一次
- 實現組播,主要有三種路由演算法:
- 基於鏈路狀態的路由選擇
- 基於距離-向量的路由選擇
- 可以建立在任何路由器協議之上,因此稱作協議無關的組播(PIM)
- 移動IP:支援移動性的因特網體系結構與協議被共同稱為移動IP
- 基於IPV4的移動IP定義三種功能實體:移動節點、歸屬代理(也叫本地代理)和外埠代理(也叫外部代理)。歸屬代理和外埠代理統稱為移動代理
- 移動IP為移動主機設定了兩個IP地址,即主地址和輔地址(轉交地址)。可以類比於郵局送信模型,本地代理和外部代理分別為兩個地方的郵局,而移動節點為你的家的位置(假設你在這兩個地方都有家)
- 如果一個儲存轉發裝置實現了某個層次的功能,那麼它就可以互聯兩個在該層次上使用不同協議的網段(網路)。雖然中繼器實現了物理層,但不能互聯兩個物理層不同的網段,這是因為中繼器不是儲存轉發裝置,它屬於直通式裝置