BGP的核心就是交换路由,所以关键的部分还是在路由的更新与撤销上面,这之间包含了繁杂的属性,community等等可以称之为业务逻辑的处理过程,不做详述。 bgp_read函数是路由更新的事件处理函数,在收到BGP_MSG_UPDATE消息的时候开始调用bgp_update_receive函数 ...
创建完bgp peer之后,就要bgp start了,不然费那么大劲创建出来不做事情就销毁了,就很尴尬了。 那么对等体一旦start起来,就会进入各自的状态,在不同的状态下处理各自的事件消息。 下面列举一些状态和事件的集合: 全局变量FSM定义了状态机每个状态下的动作执行之后的下一个状态: 限于篇幅就不掉书袋了。 下面的bgp event函数是通用的事件处理流程,通过FSM数组的定义在这里就能看到 ...
2017-01-25 11:22 0 1510 推荐指数:
BGP的核心就是交换路由,所以关键的部分还是在路由的更新与撤销上面,这之间包含了繁杂的属性,community等等可以称之为业务逻辑的处理过程,不做详述。 bgp_read函数是路由更新的事件处理函数,在收到BGP_MSG_UPDATE消息的时候开始调用bgp_update_receive函数 ...
基本概念: 1.BGP 是路径矢量协议,是自治系统间的路由协议 2.BGP采用TCP 179号端口,BGP路由器之间基于TCP建立BGP会话 3.运行BGP的路由器称为BGP Spearker,他们之间建立对等体关系后(邻居关系)才可以交换路由,进行路由学习 4.BGP具有大量丰富的路径 ...
一,idle(空闲)初始状态。 二,connect 此时建立TCP三次握手。 a,bgp启动重传定时器,并等待TCP建立连接。 b,如果tcp建立成功,此时开始发送open报文协商参数,并进入opensent状态。 c,如果tcp建立失败,此时进入active状态 ...
quagga支持BGP-4,BGP-4+协议,支持多协议(mpls,isis,ospf等等)以及单播,组播路由的导入和分发。 具体的协议,这里就不附录了,网络上有很多资料,或者RFC。 协议源码的学习基于前几章的quagga源码分析,所以刚接触的朋友最好浏览一下quagga的通用框架 ...
一、SYN报文处理: 公共部分:tcp_v4_rcv->tcp_v4_do_rcv->tcp_v4_cookie_check(无处理动作)->tcp_rcv_state_proce ...
TCP协议连接建立时3次握手的过程。 简述TCP协议连接建立时3次握手的过程。 根据TCP头部,说明下列3个包在连接建立过程中的次序. 0020 00 50 83 aa 46 49 3e dd 33 ...
对于并发请求很高的生产环境,单个Redis满足不了性能要求,通常都会配置Redis集群来提高服务性能。3.0之后的Redis支持了集群模式。 Redis官方提供的集群功能是无中心的,命令请求可以 ...
前言:TCP是传输层协议,实现了一种可靠的通信。它从不同角度提供了多种可靠性保障措施来为网络传输提供确定性。连接性就是其中之一,不像UDP的无连接状态,TCP在数据传输之前会进行连接,只有双方都协调完成后,才会进行数据传输;同样的,在结束时,又会断开连接,通告传输的完成;在数据传输过程中,又会 ...