R1与R2之间部署ospf卡在2way状态网络类型采用广播方式。如下图:
hello报文格式如下:
当R2部署ospf卡在2way状态后R2周期发送hello报文,此时R1收到R2的hello报文验证通过后。R1在自己发送的hello报文的邻居字段写入R2的router-id 2.2.2.2当R2收到R1的hello报文,并在报文的邻居字段发现自己的router-id即R1发现了自己并认证通过,此时R2将R1添加到邻居表将状态设置为2-Way。
2-way建立后進入ExStart状态R1与R2进行DD报文的交互,在DD报文交互时R1与R2互相发送不携带任何LSA信息的报文,并将各自的I比特位设置位1MS设置为1进行Master/Slave协商,即自认为洎己是masterDD报文中 I位为1时,为选举M/S为0时为M/S选举完成。M位(more)为1即是还有更多DD报文MS位为1即是Master,0为slave
R1向R2发送DD报文,
R2向R1发送DD报文sequence加1。双方有多个LSA时需要交互多个DD报文,Master路由器将DD序列号逐次加1Slave路由器使用Master的序列号发送自己的DD报文。
R1与R2各只有1个LSA即R1向R2发送LSA,序号为918R2向R1发送LSA,序号为919此后在无多余的LSA,即M位为0R2向R1发送LSA后,此LSA为最后一个即M设置为0。R1收到R2的LSA后确认此为R2最后一个DD报文,于是向R2发送一个空的DD报文R1与R2收到对方最后一个DD报文后,即彻底知道对方的LSDB中的LSA(头部)
当通过DD报文获悉到对端LSA后,状态变为Loading路由器向邻居发送LSR请求LSA完整数据,对方通过LSU进行回应LSU包括LSA的完整信息。在收到LSU报文后路由器发送Lsack对其中的LSA进行确认。DD报文是LSA头部信息LSR是LSA頭部信息,LSU是完成的LSA信息LSR是LSA头部信息。
A为R2向R1请求、更新B为R1向R2请求、更新。Lsack为互相确认
此外,我们还能发现在网络类型为广播形式的時候需要选举DR和BDR,所有的ospf卡在2way状态路由器将LSA信息发送给224.0.0.5即ospf卡在2way状态路由器如果需要向DR和BDR发送OSFP报文,使用组播224.0.0.6为目的地址R1为DR,R2为BDR
对於R1与R2本身只有1类LSA即Router lsa,对于DR会产生2类LSA即network lsa2类LSA描述DR接入网络中与之形成邻接关系的路由器,只在接口所属区域内洪泛R1向224.0.0.5洪泛2类LSA信息。
R2收到R1发送2类LSA后进行组播LS Ack确认。1类LSA通过单播进行请求确认2类LSA通过组播进行请求确认。
当R1与R2没有其他LSA需要从邻居获取后便将邻居状态切换为Full。