Multicast protocol syntax
{
WWCP Multicast Protocol - syntax specification
Version 1.00 - unreleased
Last modified: 13-05-1996
Written by G. Hiddink (c) 1996
05-11-94 Added the ERROR message. It is sent in case a Multicast PDU is invalid.
23-11-94 added the <Liveness> PDU's PING and PONG; started to add sequence numbers
02-12-94 rearranged <Source> <Dest> <seq> to <Source> <Seq> <Dest>, it would not be a LL(1) language
otherwise (contextfree). Moved PING, PONG and QUIT to the Network Interface Layer, where
they belong.
15-12-94 Added NIL_ConnInd and NIL_ConnReq (they were added in NIL at 11-12-94).
20-01-95 In order to identify different sequence numbers for different groups, a group ID has been
added to most messages.
01-04-96 added <FW_Sum> and <BW_sum> for the Sum algorithm according to earlier ideas.
07-04-96 added <Unreachable> and <Reachable> according to earlier ideas.
13-05-96 added a hop counter to <Broadcast> and <FW_Sum> to better solve routing
problems after server crashes, link breaks etc.
}
<Message> ::= <Datagram> | <Broadcast> | <Bounced> | <FW_sum> | <Unreachable> | <Reachable>
| <BW_sum>
<Datagram> ::= <Source> <Group> <Seq> <Dest> <Data>
<Broadcast> ::= '*'<BroadcastID> <Hop> <Data>
<Bounce> ::= '-'<Source> <Group> <Seq> <Dest> <Data>
<FW_sum> ::= '>'<BroadcastID> <Hop> <Msg> /* humans read from left to right, so '>' */
<BW_sum> ::= '<'<BroadcastID> <Msg> <Data> /* is forward and '<' is backward */
<Unreachable> ::= '!'<ServerID>
<Reachable> ::= '+'<ServerID>
<Source> ::= <ServerID>
<Dest> ::= <ServerID>+
<Data> ::= <CHAR>/<num><CHAR>+ /* Data cannot start with a <num> */
<BroadcastID> ::= <Source>'.'<LocalID>
<LocalID> :: <int16>
<ServerID> :: <int32>
<Hop> ::= <int8>
<Group> ::= <int32>
<Seq> ::= <int16>
<int32> ::= <num>+ /* 32 bits */
<int16> ::= <num>+ /* 16 bits */
<int8> ::= <num>+ /* 8 bits */
<num> ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
CHAR ::= { any character but 0x00, 0x0d and 0x0a }
{ s+ is one or more s, s* is zero or more s. So s+ = ss* }
(c) 1996 by G. Hiddink
If you have any comments, please mail to
grit@cal050031.student.utwente.nl