BGP的核心就是交換路由,所以關鍵的部分還是在路由的更新與撤銷上面,這之間包含了繁雜的屬性,community等等可以稱之為業務邏輯的處理過程,不做詳述。 bgp_read函數是路由更新的事件處理函數,在收到BGP_MSG_UPDATE消息的時候開始調用bgp_update_receive函數 ...
quagga支持BGP ,BGP 協議,支持多協議 mpls,isis,ospf等等 以及單播,組播路由的導入和分發。 具體的協議,這里就不附錄了,網絡上有很多資料,或者RFC。 協議源碼的學習基於前幾章的quagga源碼分析,所以剛接觸的朋友最好瀏覽一下quagga的通用框架以及通用路由處理流程。 好了,閑話少說,直奔主題才是最要緊的。 一 BGP初始化 初始化在bgp main.c的main函 ...
2017-01-23 14:57 0 1888 推薦指數:
BGP的核心就是交換路由,所以關鍵的部分還是在路由的更新與撤銷上面,這之間包含了繁雜的屬性,community等等可以稱之為業務邏輯的處理過程,不做詳述。 bgp_read函數是路由更新的事件處理函數,在收到BGP_MSG_UPDATE消息的時候開始調用bgp_update_receive函數 ...
創建完bgp peer之后,就要bgp start了,不然費那么大勁創建出來不做事情就銷毀了,就很尷尬了。 那么對等體一旦start起來,就會進入各自的狀態,在不同的狀態下處理各自的事件消息。 下面列舉一些狀態和事件的集合: 全局變量FSM定義了狀態機每個狀態下的動作執行之后 ...
一、代碼例子 此節開始涉及到一個bean具體生成和保存的過程,僅僅涉及到最簡單的bean,代碼依舊是最簡單的 二、源碼解析 1、通過調用getBean(String name)來進入bean的獲取 2、經歷一些列重載后,進入doGetBean,先轉化 ...
前言 根據前文我們知道,NioEventLoopGroup和NioEventLoop是netty對Reactor線程模型的實現,而本文要說的ServerBootstrap是對上面二者的整合與 ...
前言 NioEventLoopGroup是netty對Reactor線程組這個抽象概念的具體實現,其內部維護了一個EventExecutor數組,而NioEventLoop就是EventEx ...
本文所使用的Golang為1.14,dlv為1.4.0。 源代碼 開始調試 可以看到最開始是從_rt0_amd64_linux執行,然后直接跳轉到_rt0_amd64。執行si進入_rt ...
TCP TCP通過校驗和、序列號、確認應答、重發控制、連接管理和窗口控制實現可靠傳輸。 TCP通過確認應答ACK來實現有保障的數據傳輸,但是由於各種原因,目標主機可能無法收到ACK信號,導致源主機不停重發數據。為此,引入序列號與確認信號相結合,實現有效的重發控制。 作為面向連接的協議,TCP ...
BGP學習總結 BGP是目前使用的唯一的自治系統間的路由協議,它是一種矢量路由協議,基於TCP的179號端口,它采用單播增量更新的方式更新路由,與其他的路由協議不同的是,BGP只要TCP可達,就可以建立對等體關系,BGP需要手工顯式的指定對等體關系。 一、常見術語 1、 BGP的發言者 ...