Информация базы данных состояния каналов накапливается и распространяется по простым и эффективным правилам. OSPF-маршрутизатор выполняет обнаружение своих соседей при помощи пакетов Hello. Он отправляет пакеты Hello и ожидает получения пакетов Hello от соседствующих маршрутизаторов. Пакет Hello идентифицирует локальный маршрутизатор и перечисляет соседние маршрутизаторы, от которых были получены пакеты. Получив пакет Hello с информацией о себе в качестве соседствующего, маршрутизатор понимает, что обнаружил соседа. И это вполне логично - ведь он может получать пакеты от этого соседа, а сосед считает его своим соседом - и, значит, может получать ответные пакеты. Обнаруженные соседи добавляются в соответствующий локальный список системы.
Затем OSPF-маршрутизатор передает сведения обо всех своих соседях, а именно выполняет веерную рассылку (flooding) по сети пакетов LSA (Link-State Advertisement). Пакет LSA содержит адрес каждого соседа и стоимость сообщения с этим соседом для локальной системы. Веерная рассылка означает, что маршрутизатор передает пакет LSA с каждого интерфейса и что каждый маршрутизатор, получивший пакет, передает его с каждого интерфейса - за исключением того, через который пакет был изначально получен. Чтобы предотвратить распространение дубликатов пакетов LSA, маршрутизаторы хранят экземпляры полученных пакетов и удаляют дубликаты.
Обратимся к рис. 7.2 за очередным примером. Когда протокол OSPF запускается на horseshoe, то посылает пакет Hello в подсеть 1 и еще один - в подсеть 12. ога и crab получают приветствие и отвечают пакетами Hello, в которых horseshoe указан соседствующим маршрутизатором, horseshoe, получив эти пакеты Hello, добавляет ога и crab в список своих соседей. Затем horseshoe создает пакет LSA, в котором каждому из соседей (ога и crab) поставлена в соответствие стоимость. Например, horseshoe может присвоить ога стоимость 5, a crab - стоимость 10. horseshoe рассылает пакеты LSA в подсетях 1 и 12.