The NACK-Oriented Proxy (NORP) is open source software created by the Naval Research Laboratory (NRL) PROTocol Engineering Advanced Networking (PROTEAN) Research Group. NORP includes software for an RFC 1928 SOCKS5-compatible proxy server daemon that is able to use the RFC 5740 NACK-Oriented Reliable Multicast (NORM) transport protocol (specifically the NRL NORM implementation) for efficient and robust data transfer between NORP proxy instances. NORP automatically supports conventional SOCKS TCP proxy operation when a remote NORP peer is unavailable.
NORM includes a flexible API allowing developers to implement it in their applications. For the end user, however, adding protocols like NORM (even unicast mode) into existing applications is costly, time-consuming, and sometimes impossible. NORP is designed to avoid this by proxying existing TCP-based (and potentially UDP-based) applications without modifying them. NORP uses the SOCKS5 protocol to intercept TCP connections and mediate them to remote destinations using the NORM protocol.
The SOCKS5 capability is available on a large set of end host systems and requires no modification to the actual end system software applications (software such as Dante can be used to direct the application's traffic to a specified server/port). The NORP software daemon allows for multiple deployment models including, in its simplest form, a small software installation on the client and server platforms for which NORM transport enhancement is desired. An example of a traditional SOCKS-enhanced deployment across a network to support NORM-enabled end system connection proxying is shown below.
The NORP daemon proxies system application sockets initiated through a standard SOCKS client path. The NORP daemon also proxies and redirects NORP SOCKS sessions initiated from remote machines. As shown via the green connection, if an end system is detected as not supporting the capability, then TCP and UDP connections proceed as normal. Once deployed and configured, this is a fairly turnkey solution and supports interoperability with end systems that are not NORP-enabled. Other NORP deployment options are also possible, including a ``bump-in-the-wire'' gateway or performance-enhancing proxy middleware approaches. No special configuration is required for the baseline NORP software-only deployment model and full backwards compatibility with existing TCP applications and services is maintained. This opens up a set of transition opportunities lowering program risk on engineering development, planning, procurement, and coordination in future systems.
The NORP source code is available from: https://downloads.pf.itd.nrl.navy.mil/norp/
If you have any questions, or are interested in more information about NORP, please contact firstname.lastname@example.org.
You can also use the NORM User's and Developer's mailing list for NORP-related queries. This mailing list is monitored by the NORM and NORP developer(s) as well as other users.