This is the NACK-Oriented Reliable Multicast (NORM) protocol web site maintained by the Naval Research Laboratory (NRL) PROTocol Engineering Advanced Networking (PROTEAN) Research Group. The purpose of this site is to provide information on NORM and provide access to the NORM reference software provided by NRL. The NORM protocol is currently under development within the Internet Engineering Task Force (IETF) Reliable Multicast Transport (RMT) working group.
The NORM protocol is designed to provide end-to-end reliable transport of bulk data objects or streams over generic IP multicast routing and forwarding services. NORM uses a selective, negative acknowledgement (NACK) mechanism for transport reliability and offers additional protocol mechanisms to conduct reliable multicast sessions with limited "a priori" coordination among senders and receivers. A congestion control scheme is specified to allow the NORM protocol fairly share available network bandwidth with other transport protocols such as Transmission Control Protocol (TCP). It is capable of operating with both reciprocal multicast routing among senders and receivers and with asymmetric connectivity (possibly a unicast return path) from the senders to receivers. The protocol offers a number of features to allow different types of applications or possibly other higher level transport protocols to utilize its service in different ways. The protocol leverages the use of FEC-based repair and other IETF reliable multicast transport (RMT) building blocks in its design.
This website will be expanded in the future to contain example NORM applications and NORM software development toolkits based on the NRL reference implementation. The NRL NORM work is heavily based on previous work with MDP which has similar capabilities.
A video example of NORM in action, helping improve an MPEG-4 video stream can be found on the NOViSS webpage. A NORM-based SOCKS5 Proxy (NORP) has also been developed to make it easier to use NORM with standard TCP/UDP-based applications.
- Current NORM Protocol Specification (RFC 5740, obsoletes 3940)
- Current NORM Protocol Building Blocks (RFC 5401, obsoletes 3941)
- NORM Developer's Guide
The NRL NORM source code and latest releases are available on GitHub.
This includes support for building a simple test application and NS-2 network simulations. In the future, example applications for various operating systems will be provided along with binary executables, software documentation, user's guides, etc.
A procedural API has been developed for the NRL NORM implementation and is accessible via the "normApi.h" header file. The NORM library built from the source code base will be updated to include the "normApi.cpp" implementation. The NORM Developer's Guide is now available above. Example applications with source code will be provided in the future to illustrate NORM API usage.
If you are interested in more information about NORM, please contact email@example.com.