github.com/keltia/go-ipfs@v0.3.8-0.20150909044612-210793031c63/p2p/net/README.md (about)

     1  # Network
     2  
     3  The IPFS Network package handles all of the peer-to-peer networking. It connects to other hosts, it encrypts communications, it muxes messages between the network's client services and target hosts. It has multiple subcomponents:
     4  
     5  - `Conn` - a connection to a single Peer
     6    - `MultiConn` - a set of connections to a single Peer
     7    - `SecureConn` - an encrypted (tls-like) connection
     8  - `Swarm` - holds connections to Peers, multiplexes from/to each `MultiConn`
     9  - `Muxer` - multiplexes between `Services` and `Swarm`. Handles `Requet/Reply`.
    10    - `Service` - connects between an outside client service and Network.
    11    - `Handler` - the client service part that handles requests
    12  
    13  It looks a bit like this:
    14  
    15  <center>
    16  ![](https://docs.google.com/drawings/d/1FvU7GImRsb9GvAWDDo1le85jIrnFJNVB_OTPXC15WwM/pub?h=480)
    17  </center>