Skip to content

Commit

Permalink
Merge pull request #353 from ElPaisano/update/glossary
Browse files Browse the repository at this point in the history
Add dcutr glossary entries
  • Loading branch information
Stebalien authored Feb 13, 2024
2 parents 42e9248 + bf97290 commit adbea39
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 8 deletions.
8 changes: 8 additions & 0 deletions content/concepts/appendix/glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,10 @@ A libp2p connection is a communication channel that allows peers to read and wri

Connections between peers are established via [transports](#transport), which can be thought of as "connection factories". For example, the TCP transport allows you to create connections that use TCP/IP as their underlying substrate.

### DCUtR

Direct Connection Upgrade through Relay (DCUtR) is a protocol for establishing direct connections between nodes via hole punching, without a [signaling server](#signaling-server). DCUtR synchronizes and opens connections to each peer's predicted external addresses.

### Dial

The process of opening a libp2p connection to another peer is known as "dialing", and accepting connections is known as ["listening"](#listen). Together, an implementation of dialing and listening forms a [transport](#transport).
Expand Down Expand Up @@ -207,6 +211,10 @@ The implementation of the libp2p handshake is called

For details, see the [protocol negotiation article]({{< relref "/concepts/fundamentals/protocols.md#protocol-negotiation" >}}).

### Signaling server

A server or service that facilitates communication between nodes in a peer-to-peer network, specifically in context of setting up, maintaining and terminating a direct communication channel between two peers which are behind NATs. The server discovers the external IP address and port of the peers, and also relays messages between the peers to assist NAT traversal.

### Stream

TODO: Distinguish between the various types of "stream". Could refer to
Expand Down
9 changes: 1 addition & 8 deletions content/concepts/nat/dcutr.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,7 @@ to scale and maintain, and may result in low-bandwidth, high-latency
connections. [Hole punching]({{< relref "/concepts/nat/hole-punching.md" >}}) is another technique
that enables NAT traversal by enabling two nodes behind NATs to communicate
directly. However, in addition to relay nodes, it requires another piece of
infrastructure called signaling servers.

> A signaling server is a server or service that facilitates communication
> between nodes in a P2P network, specifically in context of setting up,
> maintaining and terminating a direct communication channel between two peers
> which are behind NATs. It helps in discovering the external IP address and
> port of the peers and also in NAT traversal by relaying messages between the
> peers.
infrastructure called a [signaling server](../appendix/glossary.md#signaling-server).

The good news is that libp2p offers a hole punching solution which eliminates
the need for centralized signaling servers and allows the use of distributed
Expand Down

0 comments on commit adbea39

Please sign in to comment.