public Connection connect(OutRequest outRequest) {
    SubPeer peer = choosePeer(outRequest);
    if (peer == null) {
      return null;
    }

    Connection conn = peer.getPreferredConnection();
    if (conn == null) {
      conn = peer.connectTo();
    }

    return conn;
  }