这是我的第一篇博客文章,希望大家多多支持,多提宝贵意见
 
 
RouterA--------------------------------------------------------------------------RouterB
           192.168.0.1/24                                                                      192.168.0.2/24
 
 
RouterA的Router ID是:192.168.0.1/24,以下用A表示RouterA
RouterB的Router ID是:192.168.0.2/24,以下用B表示RouterB
 
1. down state
邻居关系的建立从down state开始
第一个hello包发出前的状态就是down状态
 
2. init state
A或B发送第一个hello包,目标地址是224.0.0.5
就进入了初始状态(init state)
这里以A先发hello包为假设,它的Router ID包含在hello包中
 
3.two-way state
当B接受到A发送的hello包时,它给A发送一个hello包
里面包含有B的Router ID和A的Router ID,当A接收到
时,它看到自己的Router ID在hello包中,two-way state就形成了
 
4.exstart state
A发送DBD(Database Description),包里面有A的Router ID
当B收到这个包时,它发给A一个DBD,里面包含有B的Router ID
因为B的Router ID高于A,所以由B先发链路状态数据库摘要(summary of LSDB)
这里相当于一个协商
 
5.exchange state
协商后,B发送链路状态数据库摘要(summary of LSDB)
A发送自己的链路状态数据库摘要(summary of LSDB)给B
 
6.loading state
当A收到时,它会发送Ack给B,表示它成功收到
同样,B也发送Ack给A
此时就是loading state
 
7.full state
A和B在对比自己的数据库和对方的数据库后会知道自己缺少
哪些link state,就会发送LSR(link state request)
对方就会发送LSU(link state update)
这样双方的链路状态数据库(LSDB)就会同步
full state就形成了
 
 
不难发现,上面邻居建立的过程用了OSPF全部的5种包
1.Hello
2.DBD(Database Description)
3.LSR(Link State Request)
4.LSU(Link State Update)
5.Ack(Acknowledgment)
 
还有一点需要注意,在LAN环境下,DR(Designated Router)和DROthers(就是DR和
非DR以外的router)形成的是two-way state,不是full state,连DBD都不用发,这就是节约带宽的原因所在