2.2.2.3 WELCOME

The WELCOME message is sent in response to a CONNECT message if the connection is accepted.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

Message Size

Version

Message Type

Reserved1

Node ID

...

Peer Time

...

Address Count

Reserved2

Address Offset

Peer ID Offset

Friendly Name Offset

IPv6 Address Array (variable)

...

Peer ID (variable)

...

Friendly Name (variable)

...

Message Size (4 bytes): The total number of bytes in the message.

Version (1 byte): The Peer-to-Peer Graphing Protocol version number. This MUST be set to 0x10 to signify version 1.0.

Message Type (1 byte): MUST be set to 0x03.

Reserved1 (2 bytes): MUST be set to zero and MUST be ignored on receipt.

Node ID (8 bytes): The node ID of the node sending the WELCOME message.

Peer Time (8 bytes): The current peer time. This field is used for peer time calculation.

Address Count (1 byte): The total number of address entries included in the message.

Reserved2 (1 byte): MUST be set to zero and MUST be ignored on receipt.

Address Offset (2 bytes): The offset, in bytes, from the beginning of the message to the first address in the address list.

Peer ID Offset (2 bytes): The offset, in bytes, from the beginning of the message to Peer ID.

Friendly Name Offset (2 bytes): The offset, in bytes, from the beginning of the message to Friendly Name.

IPv6 Address Array (variable): An array of Address Count IPv6 addresses in  REF _Ref161734214 \w \h  \* MERGEFORMAT PEER_IN6_ADDRESS (section 2.2.1.3) form. This field MUST NOT be present if the Address Count is 0x00.

Peer ID (variable): A null-terminated UTF-8 string representing the Peer ID of the sender.

Friendly Name (variable): A null-terminated UTF-8 string representing the friendly name of the sender. If Friendly Name Offset is equal to Message Size, this field MUST NOT be present.