系列TCP/IP協議-動態IP選路協議(008)

一、引言

前一章已經說過了IP數據包是如何分發的。為啥這一章還要說這個問題?在網絡很小、只有單個連接點、沒有多余的路由的時候,使用靜態選路是可以的。但是一旦網絡變大一點就會出現各種問題。在大網絡中的網絡選路將在該節說明。 ??動態選路協議用于路由器間的通信。該章主要介紹3種動態選路協議:RIP,OSPF,BGP。在Internet這樣的大型的網絡系統中,將這些主機劃分若干個系統(分組)中,一臺主機只屬于一個系統(組)中,如將一個公司或學校定一個為一個系統(組),這些系統(組)叫做自治系統(AS,Autonomous System).正如其名一樣。每一個AS通常由單個實體管理。一組AS組織成Internet。在同一AS中在該系統下的所有路由器選擇同一種選路協議。我們稱這種路由協議為IGP(Interior Gateway Protocol,內部網關協議);在不同的AS中的路由器的選路協議我們稱為EGP(Exterier Gateway Protocol,外部網關協議)。常用的IGP協議有RIP與OSPF,常用的EGP協議有BGP。

二、RIP協議

RIP(Routing Infromation Protocol 路由信息協議)數據包包含在UDP數據包中。RIP協議現在總共分兩個版本RIP-1與RIP2,RIP常用UDP端口號是520.

1. RIP-1協議

RIP-1數據包如下:

  • 命令:長度一個字節。1-請求,2-應答,3/4-舍棄不用,5-輪詢,6-輪詢表項;
  • 版本字段:長度一個字節。RIP-1協議為1,RIP-2協議為2;
  • 一條路由項:長度20個字節。
    • 地址系列: 2個字節,指明是何種地址。值為2表示IP地址。
    • 度量:路由器跳轉數,直連為1,最大為16

2.運行流程

  • 初始化:在啟動路由守護程序,先判斷有哪些網絡端口,并且在每一個接口上發送一個RIP請求數據包。對于點對點的網絡中,直接發給連接主機。如果是網絡,這種請求是以廣播的形式發送出去的。這種請求報文的命令字段為 1,但地址系列字段設置為 0,而度量字段設置為 16。這是一種要求另一端完整路由表的特殊請求報文。
  • 接收請求:如果這個請求是剛才提到的特殊請求,那么路由器就將完整的路由表發送給請求者。就處理請求中的每一個表項:如果有連接到指明地址的路由,則將度量設置成我們的值,否則將度量置為16(度量為16是一種稱為“無窮大”的特殊值,它意味著沒有到達目的的路由)。然后發回響應。
  • 接收到的響應:使響應生效,可能會更新路由表。可能會增加新表項,對已有的表項進行修改,或是將已有表項刪除。
  • 定期選路更新:每過30秒,所有或部分路由器會將其完整路由表發送給相鄰路由器。發送路由表可以是廣播形式的(如在以太網上),或是發送給點對點鏈路的其他終點的。
  • 觸發更新:每當一條路由的度量發生變化時,就對它進行更新。不需要發送完整路由表,而只需要發送那些發生變化的表項。

3.RIP-2協議

RIP-2協議是對RIP-1協議的擴充,該協議不改變RIP-1協議內容,只是所有的填充0區域利用上了。

  • 路由域:一個選路守護程序的標識符,它指出了這個數據報的所有者。在一個Unix實現中,它可以是選路守護程序的進程號。該域允許管理者在單個路由器上運行多個RIP實例,每個實例在一個選路域內運行。
  • 路由標記:為了支持外部網關協議而存在的。它攜帶著一個 EGP和BGP的自治系統號。
  • 32位子網掩碼:每個表項的子網掩碼應用于相應的IP地址上。

三、OSPF協議

OSPF(Open Shortest Path First 開放式最短路徑優先)是除RIP外的另一個IGP協議。它克服了RIP的所有限制。 ??與采用距離向量的 R I P協議不同的是, O S P F是一個鏈路狀態協議。距離向量的意思是,R I P發送的報文包含一個距離向量(跳數)。每個路由器都根據它所接收到鄰站的這些距離向量來更新自己的路由表。 ??在一個鏈路狀態協議中,路由器并不與其鄰站交換距離信息。它采用的是每個路由器主動地測試與其鄰站相連鏈路的狀態,將這些信息發送給它的其他鄰站,而鄰站將這些信息在自治系統中傳播出去。每個路由器接收這些鏈路狀態信息,并建立起完整的路由表。 參考鏈接:kalng.blog.51cto.com/3145815/829…

四、BGP協議

BGP(Border Gateway Protocol 邊界網關協議)是一種不同自治系統的路由器之間進行通信的EGP協議。 ??BGP與RIP和OSPF的不同之處在于BGP使用TCP作為其傳輸層協議。兩個運行BGP的系統之間建立一條TCP連接,然后交換整個BGP路由表。從這個時候開始,在路由表發生變化時,再發送更新信號。 ??BGP是一個距離向量協議,但是與(通告到目的地址跳數的)RIP不同的是,BGP列舉了到每個目的地址的路由(自治系統到達目的地址的序列號)。這樣就排除了一些距離向量協議的問題。采用16 bit 數字表示自治系統標識。 ??BGP通過定期發送keepalive數據包給其鄰站來檢測 TCP連接對端的鏈路或主機失敗。兩個報文之間的時間間隔建議值為30秒。

都看到這里了,要不要掃二維碼關注一下微信公眾號林灣村龍貓

轉載于:https://juejin.im/post/5cc65d8e6fb9a0321e16ac56

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/275235.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275235.shtml
英文地址,請注明出處:http://en.pswp.cn/news/275235.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

shields 徽標_我們如何準確地記住著名徽標的特征和顏色?

shields 徽標The logos of global corporations like Apple, Starbucks, Adidas, and IKEA are designed to create instant brand associations in the minds of billions who see them every day. But how accurately can we remember the features and colors of these famo…

面了三次字節,他的一些感悟

大家好,我是若川。最近組織了源碼共讀活動,感興趣的可以加我微信 ruochuan12 參與,已進行了三個多月,大家一起交流學習,共同進步。今天分享一篇小K投稿的字節面試記錄,這是他第三次面字節了,之前…

JavaScript數組內置排序函數

javascript內置的sort函數是多種排序算法的集合 JavaScript實現多維數組、對象數組排序,其實用的就是原生的sort()方法,用于對數組的元素進行排序。 sort() 方法用于對數組的元素進行排序。語法如下: ArrayObject.sort(order); 測試A&#xf…

解決Wireshark安裝Npcap組件失敗

2019獨角獸企業重金招聘Python工程師標準>>> 解決Wireshark安裝Npcap組件失敗 從Wireshark 3.0開始,Npcap取代Winpcap組件,成為Wireshark默認的網卡核心驅動。由于該組件屬于驅動程序,所以安裝時候容易被殺毒/防火墻軟件攔截&…

adobe清理工具_Adobe終于通過其新的漸變工具實現了這一點-UX評論

adobe清理工具的Photoshop (Photoshop) UX:用戶體驗: At first glance, the UX looks okay; it’s pretty clear. The user gets to know how to use this tool right away. The color palette is located above, and the gradient down below. The diamond betwee…

GMF學習系列(二) 一些知識點(續2)

8.插件的國際化,可以參考nwpu.cdcsp.sbpel.diagram.part中messages.java的做法。 9.Text自動提示功能 import org.eclipse.jface.bindings.keys.KeyStroke; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.fieldassist.AutoCompleteField; im…

新手向:前端程序員必學基本技能——調試JS代碼

1前言大家好,我是若川。最近組織了源碼共讀活動,感興趣的可以加我微信 ruochuan12 參與,已進行三個月了,大家一起交流學習,共同進步。想學源碼,極力推薦之前我寫的《學習源碼整體架構系列》 包含jQuery、un…

iOS開發ApplePay的介紹與實現

1、Apple Pay的介紹 Apple Pay官方1.1 Apple Pay概念 Apple Pay,簡單來說, 就是一種移動支付方式。通過Touch ID/ Passcode,用戶可使用存儲在iPhone 6, 6p等之后的新設備上的信用卡和借記卡支付證書來授權支付; 它是蘋果公司在2014蘋果秋季新…

mes建設指南_給予和接受建設性批評的設計師指南

mes建設指南Constructive criticism, or more plainly, feedback, plays a crucial role in a designer’s job. Design is an iterative process, so we are often either asking for feedback on our own work or dishing it out to a fellow designer.建設性的批評&#xff…

面試官:請實現一個通用函數把 callback 轉成 promise

1. 前言大家好,我是若川。最近組織了源碼共讀活動,感興趣的可以加我微信 ruochuan12 參與,或者在公眾號:若川視野,回復"源碼"參與,每周大家一起學習200行左右的源碼,共同進步。已進行…

java中filter的用法

filter過濾器主要使用于前臺向后臺傳遞數據是的過濾操作。程度很簡單就不說明了,直接給幾個已經寫好的代碼: 一、使瀏覽器不緩存頁面的過濾器 Java代碼 import javax.servlet.*;import javax.servlet.http.HttpServletResponse;import java.io.IOExcept…

我很喜歡玩游戲,那么我就適合做游戲程序員嗎?

作者:黃小斜文章來源:【程序員江湖】游戲在今天的普及度已經不是端游時代可以比肩的了。如今人手一臺手機、平板就可以吃雞、打農藥,不僅是男生,也有很多女生加入了游戲圈。相信現在在看文章的你也玩游戲,雖然愛玩的程…

open-falcon_NASA在Falcon 9上帶回了蠕蟲-其背后的故事是什么?

open-falconYes, that’s right. The classic NASA “worm” logo is back! An image of the revived NASA worm logo was released on Twitter by NASA Administrator Jim Bridenstine as well as press release on the NASA.gov website. NASA explained that original NASA …

聽說你對 ES6 class 類還不是很了解

大家好,我是若川。最近組織了源碼共讀活動,感興趣的可以加我微信 ruochuan12 參與。前言在ES5中是原型函數,到了ES6中出現了"類"的概念。等同于是ES5的語法糖,大大提升了編寫代碼的速度,本文只講一些常用的&…

《CSS揭秘》讀書筆記

摘要 《CSS揭秘》主要是介紹了使用CSS的技巧,通過47個案例來靈活的使用CSS進行實現,同時在實現過程中注重CSS代碼的靈活性與健壯性。通過閱讀這本書有利于我們編寫高質量的CSS代碼以及打破使用CSS時的固定思維,能夠更加靈活的使用CSS。 《CSS…

一篇文章帶你搞懂前端面試技巧及進階路線

大家好,我是若川。最近有很多朋友給我后臺留言:自己投了不少簡歷,但是收到的面試邀請卻特別少;好不容易收到了大廠的面試邀請,但由于對面試流程不清楚,準備的特別不充分,結果也掛了;…

小屏幕 ui設計_UI設計基礎:屏幕

小屏幕 ui設計重點 (Top highlight)第4部分 (Part 4) Welcome to the fourth part of the UI Design basics. This time we’ll cover the screens you’ll likely design for. This is also a part of the free chapters from Designing User Interfaces.歡迎使用UI設計基礎知…

RabbitMQ指南之四:路由(Routing)和直連交換機(Direct Exchange)

在上一章中,我們構建了一個簡單的日志系統,我們可以把消息廣播給很多的消費者。在本章中我們將增加一個特性:我們可以訂閱這些信息中的一些信息。例如,我們希望只將error級別的錯誤存儲到硬盤中,同時可以將所有級別&am…

不用任何插件實現 WordPress 的彩色標簽云

側邊欄的標簽云(Tag Cloud)一直是 WordPress 2.3 以后的內置功能,一般直接調用函數wp_tag_cloud 或者在 Widgets 里開啟即可,但是默認的全部是一個顏色,只是大小不一樣,很是不順眼,雖然可以用 S…

隨時隨地能寫代碼, vscode.dev 出手了

大家好,我是若川。最近組織了源碼共讀活動,感興趣的可以加我微信 ruochuan12 參與。今天偶然看到了 VSCode 官方發布了一條激動人心的 Twitter,vscode.dev[1] 域名上線了!image-20211021211915942新的域名 vscode.dev[2] 它是一個…