47 lines
2.0 KiB
Markdown
47 lines
2.0 KiB
Markdown
|
|
NORM PRELIMINARY CODE RELEASE
|
|
|
|
These directories contain source code for a very preliminary
|
|
implementation of the Nack Oriented Reliable Multicast (NORM)
|
|
protocol. Currently, a very dumb "norm" command-line application
|
|
(which currently takes no command-line arguments) is
|
|
created. This application creates a NormSession and acts
|
|
both as a sender and receiver to the multicast group. It
|
|
creates a "NORM_STREAM" object and writes repeated,
|
|
continuous strings of "aaaaaaa ..." to the stream. As the
|
|
stream is received, the client (receiver) portion of the
|
|
"norm" app writes a notices of a successful Read()
|
|
operation from the stream.
|
|
|
|
This currently uses a fixed transmission rate of 64 kbps
|
|
and a Reed-Solomon FEC encoding block with 20 user data
|
|
segments and calculates 8 parity segments per coding
|
|
block. Four parity segments are sent at the end of each
|
|
coding block as "auto parity". The current NORM code is
|
|
currently automatically discarding segment 9 of the
|
|
received data stream to test the FEC encoding/decoding and
|
|
stream buffer routines.
|
|
|
|
The code does not currently generate any NACK messages,
|
|
but the routines to perform checks for losses is in place
|
|
and the routines for building NACK messages are in place,
|
|
so the addition of the timer installation routines to
|
|
schedule NACK back-off and subsequent transmission will be
|
|
added very soon. Then, routines will be added for the
|
|
server (sender) side to process received NACKs and
|
|
subsequently provide repair messages. Then, client-side
|
|
routines for NACK suppression will be added. After that,
|
|
the final details of GRTT collection, unicast feedback
|
|
suppression will be added and finally one or more
|
|
congestion control schemes will be included.
|
|
|
|
The purpose of this release is to illustrate routines to
|
|
build and parse the messages currently defined in the NORM
|
|
Internet Draft.
|
|
|
|
The current code only has Makefiles for Unix platforms, but the
|
|
code could be assembled as Win32 project under VC++.
|
|
|
|
The NORM code depends upon the current "Protolib" release.
|
|
See <http://pf.itd.nrl.navy.mil> for that code.
|