I've been learning OSPF adjacency process using packet tracer. The topology is a simple point-to-point network - two routers are connected with ethernet cable(fastEthernet 0/0 on both ends).
Here are the logs of the slave router:
Send DBD to 2.2.2.2 on FastEthernet0/0 seq 0x462ff3e6 opt 0x00 flag 0x7 len 32
Rcv DBD from 2.2.2.2 on FastEthernet0/0 seq 0x634cd9f8 opt 0x00 flag 0x7 len 32 mtu 1500 state EXSTART
NBR Negotiation Done. We are the SLAVE
Send DBD to 2.2.2.2 on FastEthernet0/0 seq 0x634cd9f8 opt 0x00 flag 0x2 len 72
Rcv DBD from 2.2.2.2 on FastEthernet0/0 seq 0x634cd9f9 opt 0x00 flag 0x3 len 72 mtu 1500 state EXCHANGE
Send DBD to 2.2.2.2 on FastEthernet0/0 seq 0x634cd9f9 opt 0x00 flag 0x0 len 32
Rcv DBD from 2.2.2.2 on FastEthernet0/0 seq 0x634cd9fa opt 0x00 flag 0x1 len 32 mtu 1500 state EXCHANGE
Send DBD to 2.2.2.2 on FastEthernet0/0 seq 0x634cd9fa opt 0x00 flag 0x0 len 32
Exchange Done with 2.2.2.2 on FastEthernet0/0
Synchronized with with 2.2.2.2 on FastEthernet0/0, state FULL
%OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on FastEthernet0/0 from LOADING to FULL, Loading Done
OSPF: Send DBD to 2.2.2.2 on FastEthernet0/0 seq 0x634cd9fa opt 0x00 flag 0x0 len 32
Here are the logs of the master router:
Rcv DBD from 1.1.1.1 on FastEthernet0/0 seq 0x462ff3e6 opt 0x00 flag 0x7 len 32 mtu 1500 state INIT
Send DBD to 1.1.1.1 on FastEthernet0/0 seq 0x634cd9f8 opt 0x00 flag 0x7 len 32
First DBD and we are not SLAVE
Rcv DBD from 1.1.1.1 on FastEthernet0/0 seq 0x634cd9f8 opt 0x00 flag 0x2 len 72 mtu 1500 state EXSTART
NBR Negotiation Done. We are the MASTER
Send DBD to 1.1.1.1 on FastEthernet0/0 seq 0x634cd9f9 opt 0x00 flag 0x3 len 72
Rcv DBD from 1.1.1.1 on FastEthernet0/0 seq 0x634cd9f9 opt 0x00 flag 0x0 len 32 mtu 1500 state EXCHANGE
Send DBD to 1.1.1.1 on FastEthernet0/0 seq 0x634cd9fa opt 0x00 flag 0x1 len 32
Rcv DBD from 1.1.1.1 on FastEthernet0/0 seq 0x634cd9fa opt 0x00 flag 0x0 len 32 mtu 1500 state EXCHANGE
Exchange Done with 1.1.1.1 on FastEthernet0/0
Synchronized with with 1.1.1.1 on FastEthernet0/0, state FULL
%OSPF-5-ADJCHG: Process 1, Nbr 1.1.1.1 on FastEthernet0/0 from LOADING to FULL, Loading Done
OSPF: Rcv DBD from 1.1.1.1 on FastEthernet0/0 seq 0x634cd9fa opt 0x00 flag 0x0 len 32 mtu 1500 state FULL
Notice the last packet sent by the slave - the slave is in the 'Full' state when it decided to sent the packet, plus two last packets sent by the slave are completely identical and were sent one right after another, without the master's interference. The question is : What is the purpose of the last database description packet sent by the slave router? The RFC states that "In states Loading and Full the slave must resend its last Database Description packet in response to duplicate Database Description packets received from the master.", but (I might be wrong) the master didn't send any duplicates to the slave.