Ospf 5种报文类型
OSPF 共有 五种类型的协议报文。
Hello 报文 : 周期性发送 ,用来发现和维护OSPF邻居关系
DD (DataBase Description Packet)报文 : 描述了本地LSDB的摘要信息 , 用于两台路由器进行数据库同步 。
LSR (Link State Request Packet)报文 :向对方请求所需的 LSA , 只有在双方成功开始交换DD报文后才会向对方发出 LSR 报文
LSU (Link State Update Packet) 报文 : 向对方发送其所需要的LSA 或者泛洪自己更新的LSA
LSACK (Link State Acknowledgment Packet)报文 :用于对收到的LSA 进行确认 。
Ospf 7种状态
1、down:刚开机时,随即发送第一个hello报文的状态。
2、init:发送了第一个hello报文后,等待收到对方发来hello报文的状态。
attempt:跟init状态类似,但它只用于NBMA接口网络类型之中
3、2-way:双向连接,收到了邻居发来的hello报文(其中携带一些信息说明本设备为邻居的route id等),在这个状态里完成DR和BDR的选举。
PS:
DR(Designated Router),指定路由器
BDR(Backup Designated Router),备份指定路由器
4、exstart:双方开始交换‘空’的DD报文,通过DD报文中序号等摘要信息协商并选举出主从设备。
为什么要选举主从设备?
选举主从设备用于确定由哪台路由器开始发送DBD包。
由于ospf主要是建立在IP数据包的基础上,所以没有tcp报文的可靠传输保证,所以需要建立主从关系保证DBD数据库描述信息可靠交互。虽然主从选举表面只是一种关系选举,实际上是一种可靠更新机制,保证数据传输有序、可靠。
其中主从关系选举与优先级无关,只与Router-ID 有关
router id较大的设备(比如选举出的主设备),不一定是DR
5、exchange:双方交换携带了LSA摘要DD报文,用于同步LSDB(可以说双方各自存储着自己的LSA报文数据库即LSDB)。
6、loading:用于加载exchange交换之后各自缺少的LSA报文。(此过程会发送LSR、LSU、LSAck报文)
7、full:同步LSDB完成。(此过程拓扑链路发生变化会发送HELLO、DD报文、LSR、LSU、LSAck报文,以进行动态刷新LSDB)
BGP 5种报文
BGP6种状态机
BGP有限状态机共有六种状态,分别是Idle、Connect、Active、OpenSent、OpenConfirm和Established。
Idle:准备发送TCP三次握手
Connect:做TCP三次握手(如果TCP建立成功了会进入opensent状态,反之则进入Active状态)
Active:会一直尝试建立TCP连接,这里有一个连接重传计时器,如果超时了则会返回Connect状态。成功也会进入opensent。
Opensent:协商参数要一致,(例如AS要指对,router-id不冲突,版本要一致之类的)协商完成之后进入openconfirm状态
Openconfirm:进入Openconfirm后会像对端发送keepalive报文,也从对端收到一个correct keepalive报文 则进入established
Established:
如果这其中后五种报文出现错误会发送notification报文,会重新回到Idle状态 。