aboutsummaryrefslogtreecommitdiff
path: root/docs/nng_pair.adoc
diff options
context:
space:
mode:
Diffstat (limited to 'docs/nng_pair.adoc')
-rw-r--r--docs/nng_pair.adoc132
1 files changed, 0 insertions, 132 deletions
diff --git a/docs/nng_pair.adoc b/docs/nng_pair.adoc
deleted file mode 100644
index b826f5fc..00000000
--- a/docs/nng_pair.adoc
+++ /dev/null
@@ -1,132 +0,0 @@
-= nng_pair(7)
-//
-// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech>
-// Copyright 2018 Capitar IT Group BV <info@capitar.com>
-//
-// This document is supplied under the terms of the MIT License, a
-// copy of which should be located in the distribution where this
-// file was obtained (LICENSE.txt). A copy of the license may also be
-// found online at https://opensource.org/licenses/MIT.
-//
-
-== NAME
-
-nng_pair - pair protocol
-
-== SYNOPSIS
-
-.Version 0
-[source,c]
-----------
-#include <nng/protocol/pair0/pair.h>
-
-int nng_pair0_open(nng_socket *s);
-----------
-
-.Version 1
-[source,c]
-----------
-#include <nng/protocol/pair1/pair.h>
-
-int nng_pair1_open(nng_socket *s);
-----------
-
-== DESCRIPTION
-
-The _nng_pair_ protocol implements a peer-to-peer pattern, where
-relationships between peers are one-to-one.
-
-Version 1 of this protocol supports an optional _polyamorous_ mode where a
-peer can maintain multiple partnerships. Using this mode requires
-some additional sophistication in the application.
-
-=== Socket Operations
-
-The `nng_pair_open()` call creates a _pair_ socket. Normally, this
-pattern will block when attempting to send a message, if no peer is
-able to receive the message.
-
-NOTE: Even though this mode may appear to be "reliable", because back-pressure
-prevents discarding messages most of the time, there are topologies involving
-_devices_ (see <<nng_device#,nng_device(3)>>) or raw mode sockets where
-messages may be discarded. Applications that require reliable delivery
-semantics should consider using <<nng_req#,nng_req(7)>> sockets, or
-implement their own acknowledgement layer on top of pair sockets.
-
-In order to avoid head-of-line blocking conditions, _polyamorous_ mode pair
-sockets (version 1 only) discard messages if they are unable to deliver them
-to a peer.
-
-=== Protocol Versions
-
-Version 0 is the legacy version of this protocol. It lacks any header
-information, and is suitable when building simple one-to-one topologies.
-
-TIP: Use version 0 if you need to communicate with other implementations,
-including the legacy https://github.com/nanomsg/nanomsg[nanomsg] library or
-https://github.com/go-mangos/mangos[mangos].
-
-Version 1 of the protocol offers improved protection against loops when
-used with <<nng_device#,nng_device(3)>>. It also offers _polyamorous_
-mode for forming multiple partnerships on a single socket.
-
-NOTE: Version 1 of this protocol is considered experimental at this time.
-
-=== Polyamorous Mode
-
-Normally pair sockets are for one-to-one communication, and a given peer
-will reject new connections if it already has an active connection to another
-peer.
-
-In _polyamorous_ mode, which is only available with version 1, a socket can
-support many one-to-one connections. In this mode, the application must
-choose the remote peer to receive an ougoing message by setting the value
-of the pipe ID on the outgoing message using
-the <<nng_msg_set_pipe#,nng_msg_set_pipe(3)>> function.
-
-Most often the value of the outgoing pipe ID will be obtained from an incoming
-message using the <<nng_msg_get_pipe#,nng_msg_get_pipe(3)>> function,
-such as when replying to an incoming message.
-
-In order to prevent head-of-line blocking, if the peer on the given pipe
-is not able to receive (or the pipe is no longer available, such as if the
-peer has disconnected), then the message will be discarded with no notification
-to the sender.
-
-=== Protocol Options
-
-The following protocol-specific options are available.
-
-`NNG_OPT_PAIR1_POLY`::
-
- (Version 1 only). This option enables the use of _polyamorous_ mode.
- The value is read-write, and takes an integer boolean value. The default
- false value (0) indicates that legacy monogamous mode should be used.
-
-`NNG_OPT_MAXTTL`::
-
- (Version 1 only). Maximum time-to-live. This option is an integer value
- between 0 and 255,
- inclusive, and is the maximum number of "hops" that a message may
- pass through until it is discarded. The default value is 8. A value
- of 0 may be used to disable the loop protection, allowing an infinite
- number of hops.
-+
-TIP: Each node along a forwarding path may have it's own value for the
-maximum time-to-live, and performs its own checks before forwarding a message.
-Therefore it is helpful if all nodes in the topology use the same value for
-this option.
-
-=== Protocol Headers
-
-Version 0 of the pair protocol has no protocol-specific headers.
-
-Version 1 of the pair protocol uses a single 32-bit unsigned value. The
-low-order (big-endian) byte of this value contains a "hop" count, and is
-used in conjuction with the `NNG_OPT_MAXTTL` option to guard against
-device forwarding loops. This value is initialized to 1, and incremented
-each time the message is received by a new node.
-
-== SEE ALSO
-
-<<nng#,nng(7)>>