какой узел отправит открытое сообщение первым?
Обычно динамик, открывающий гнездо, отправляет первое сообщение ОТКРЫТО. Но на самом деле это не имеет значения (см. Таймер DelayOpen ), потому что BGP также предоставляет способ задержать сообщение OPEN, чтобы противоположный узел мог отправить первым:
Вариант 1: DelayOpen
Описание: необязательный атрибут сеанса DelayOpen позволяет
реализации должны быть настроены на задержку отправки
ОТКРЫТОЕ сообщение за определенный период времени
(DelayOpenTime). Задержка позволяет удаленный BGP
Время для отправки первого ОТКРЫТОГО сообщения.
Значение: ИСТИНА или ЛОЖЬ
Если оба динамика открывают дубликаты сеансов TCP и одновременно отправляют сообщения OPEN на каждый сокет, идентификатор BGP используется для определения того, какой сокет должен быть закрыт. См. RFC 4271, раздел 6.8 :
6.8. BGP Connection Collision Detection
If a pair of BGP speakers try to establish a BGP connection with each other
simultaneously, then two parallel connections well be formed. If the source IP address
used by one of these connections is the same as the destination IP address used by the
other, and the destination IP address used by the first connection is the same as the
source IP address used by the other, connection collision has occurred. In the event
of connection collision, one of the connections MUST be closed.
Based on the value of the BGP Identifier, a convention is established for detecting
which BGP connection is to be preserved when a collision occurs. The convention is to
compare the BGP Identifiers of the peers involved in the collision and to retain only
the connection initiated by the BGP speaker with the higher-valued BGP Identifier.
Есть ли хорошая диаграмма BGP Peer fsm?
В Википедии есть этот упрощенный BGP FSM .