網際控制報文協(xié)議 ICMP為了更有效地轉發(fā) IP 數(shù)據(jù)報和提高交付成功的機會,,在網際層使用了網際控制報文協(xié)議 ICMP (Internet Control Message Protocol),。 ICMP 允許主機或路由器報告差錯情況和提供有關異常情況的報告。
ICMP 報文的種類有兩種,,即ICMP差錯報告報文和ICMP詢問報文,。 ICMP 報文的前 4 個字節(jié)是統(tǒng)一的格式,共有三個字段:即類型,、代碼和檢驗和,。接著的 4 個字節(jié)的內容與 ICMP 的類型有關。
ICMP差錯報告報文 ICMP差錯報告報文可分為以下幾種類型
我們先以“終點不可達”報文為例對于ICMP差錯報告報文的組成有一個比較直觀的了解,。 ICMP詢問報文ICMP詢問報文可分為以下幾種類型
ICMP的應用舉例PING PING (Packet InterNet Groper)用來測試兩個主機之間的連通性,。使用了 ICMP 回送請求與回送回答報文。 PING 是應用層直接使用網絡層 ICMP 的例子,,它沒有通過運輸層的 TCP 或UDP,。 我們打開電腦的終端,便可以Ping自己想要訪問的主機IP地址(域名),,測試一下連通性,。 比如,我們可以ping一下segmentfault.com TracerouteTraceroute用來跟蹤一個分組從源點到終點的路徑,。 它利用 IP 數(shù)據(jù)報中的 TTL 字段和 ICMP 時間超過差錯報告報文實現(xiàn)對從源點到終點的路徑的跟蹤,。 我們同樣可以在終端測試: 互連網的路由選擇協(xié)議分層次的路由選擇協(xié)議 互聯(lián)網采用分層次的路由選擇協(xié)議。原因是:
自治系統(tǒng) AS (Autonomous System) 定義:在單一的技術管理下的一組路由器,,而這些路由器使用一種 AS 內部的路由選擇協(xié)議和共同的度量以確定分組在該 AS 內的路由,,同時還使用一種 AS 之間的路由選擇協(xié)議用以確定分組在 AS之間的路由。 盡管一個 AS 使用了多種內部路由選擇協(xié)議和度量,,但重要的是一個 AS 對其他 AS 表現(xiàn)出的是一個單一的和一致的路由選擇策略,。 兩大類路由選擇協(xié)議
內部網關協(xié)議 IGP (Interior Gateway Protocol)
外部網關協(xié)議 EGP (External Gateway Protocol)
內部網關協(xié)議 RIP路由信息協(xié)議 RIP (Routing Information Protocol) 是內部網關協(xié)議 IGP 中最先得到廣泛使用的協(xié)議,。 RIP 是一種分布式的、基于距離向量的路由選擇協(xié)議,。 RIP 協(xié)議中的“距離”也稱為“跳數(shù)”(hop count),,因為每經過一個路由器,跳數(shù)就加 1,。(這里的“距離”實際上就是指“最短距離”)
RIP協(xié)議的特點
RIP報文 以目前廣泛使用的RIP version2為例,簡單了解一下RIP報文的組成:
路由表的建立與更新距離向量算法
若項目中的目的網絡不在路由表中,則把該項目加到路由表中,。 否則 若下一跳字段給出的路由器地址是同樣的,,則把收到的項目替換原路由表中的項目。 否則 若收到項目中的距離小于路由表中的距離,,則進行更新,, 否則,什么也不做,。
文字敘述看著有點累,不過理解了“不同路徑選短的,,同樣路徑選新的”的思路就會很容易,。 RIP只與相鄰路由交換信息不可避免會帶來路由更新的一類延遲,即之前提到的“好消息傳得快,,壞消息傳得慢”,。
為了克服RIP的缺點,我們便開發(fā)出了OSPF協(xié)議,。 內部網關協(xié)議 OSPF開放最短路徑優(yōu)先協(xié)議,,即OSPF(Open Shortest Path First),如上所述,,是為克服 RIP 的缺點在 1989 年開發(fā)出來的,。 OSPF協(xié)議的特點
鏈路狀態(tài)數(shù)據(jù)庫(link-state database) 由于各路由器之間頻繁地交換鏈路狀態(tài)信息,,因此所有的路由器最終都能建立一個鏈路狀態(tài)數(shù)據(jù)庫。 這個數(shù)據(jù)庫實際上就是全網的拓撲結構圖,,它在全網范圍內是一致的(這稱為鏈路狀態(tài)數(shù)據(jù)庫的同步),。 同時,為了使 OSPF 能夠用于規(guī)模很大的網絡,,OSPF 將一個自治系統(tǒng)再劃分為若干個更小的范圍,,叫做區(qū)域。 劃分區(qū)域后,,利用洪泛法交換鏈路狀態(tài)信息的范圍局限于每一個區(qū)域而不是整個的自治系統(tǒng),。 在一個區(qū)域內部的路由器只知道本區(qū)域的完整網絡拓撲,而不知道其他區(qū)域的網絡拓撲的情況,。 OSPF 使用層次結構的區(qū)域劃分,。在上層的區(qū)域叫做主干區(qū)域 (backbone area)。 主干區(qū)域的標識符規(guī)定為0.0.0.0,,用來連通其他在下層的區(qū)域,。 OSPF還有一點與RIP不同,,即OSPF 不用 UDP 而是直接用 IP 數(shù)據(jù)報傳送。 OSPF 構成的數(shù)據(jù)報很短,,這樣做可減少路由信息的通信量,。 OSPF有五種分組類型 下圖簡單說明了OSPF的五種分組類型以及它們所能完成的操作 外部網關協(xié)議 BGPBGP 是不同自治系統(tǒng)的路由器之間交換路由信息的協(xié)議。 默認為當前較新的版本BGP-4,。 互聯(lián)網的規(guī)模太大,,使得自治系統(tǒng)之間路由選擇非常困難。對于自治系統(tǒng)之間的路由選擇,,要尋找最佳路由是很不現(xiàn)實的,。 因此,邊界網關協(xié)議BGP只能是力求尋找一條能夠到達目的網絡且比較好的路由(不能兜圈子),,而并非要尋找一條最佳路由,。 BGP發(fā)言人 每一個自治系統(tǒng)的管理員要選擇至少一個路由器作為該自治系統(tǒng)的“BGP 發(fā)言人” (BGP speaker)。通過它與其他自治系統(tǒng)(中的 BGP 發(fā)言人)交換路由信息,。 BGP交換路由信息一個 BGP 發(fā)言人與其他自治系統(tǒng)中的 BGP 發(fā)言人要交換路由信息,,就要先建立 TCP 連接,然后在此連接上交換 BGP 報文以建立 BGP 會話(session),,利用 BGP 會話交換路由信息,。 使用 TCP 連接交換路由信息的兩個 BGP 發(fā)言人,彼此成為對方的鄰站(neighbor)或對等站(peer),。 BGP所交換的網絡可達性的信息就是要到達某個網絡所要經過的一系列 AS,。 當BGP發(fā)言人互相交換了網絡可達性的信息后,,各BGP發(fā)言人就根據(jù)所采用的策略從收到的路由信息中找出到達各 AS 的較好路由,。
BGP有四種分組類型
路由器的構成路由器大家肯定已經不陌生了,在概論部分便提到它是實現(xiàn)“分組交換”的重要工具,;本章前面也花了大篇幅討論路由路徑的選擇,。 簡而言之,,路由器的工作就是將某個輸入端口收到的分組,按照分組要去的目的地(即目的網絡),,把該分組從路由器的某個合適的輸出端口轉發(fā)給下一跳路由器,。 也就是我們所說的“轉發(fā)分組”。 整個的路由器結構可劃分為兩大部分:
路由選擇部分
分組轉發(fā)部分 由三部分組成:
輸入端口路輸入端口里面裝有物理層,、數(shù)據(jù)鏈路層和網絡層的處理模塊,。 數(shù)據(jù)鏈路層剝去幀首部和尾部后,將分組送到網絡層的隊列中排隊等待處理,。這會產生一定的時延,。 輸入端口中的查找和轉發(fā)功能在路由器的交換功能中是最重要的。 輸出端口輸出端口里面裝有物理層,、數(shù)據(jù)鏈路層和網絡層的處理模塊,。 在網絡層的處理模塊中設有一個緩沖區(qū)(隊列)。當交換結構傳送過來的分組的速率超過輸出鏈路的發(fā)送速率時,,來不及發(fā)送的分組就必須暫時存放在這個隊列中,。 數(shù)據(jù)鏈路層處理模塊將分組加上鏈路層的首部和尾部,交給物理層后發(fā)送到外部線路,。 交換結構交換結構負責把分組從一個輸入端口轉移到某個合適的輸出端口,。 有三種常用的交換方法
|
|