code: protected void sendLink(final OtpErlangPid from, final OtpErlangPid dest)
              throws IOException {
          if (!connected) {
              throw new IOException("Not connected");
          }
          @SuppressWarnings("resource")
          final OtpOutputStream header = new OtpOutputStream(headerLen);
  
          // preamble: 4 byte length + "passthrough" tag
          header.write4BE(0); // reserve space for length
          header.write1(passThrough);
          header.write1(version);
  
          // header
          header.write_tuple_head(3);
          header.write_long(linkTag);
          header.write_any(from);
          header.write_any(dest);
  
          // fix up length in preamble
          header.poke4BE(0, header.size() - 4);
  
          do_send(header);
      }
docs: Create a link between the local node and the specified process on the
  remote node. If the link is still active when the remote process
  terminates, an exit signal will be sent to this connection. Use
  {@link #sendUnlink unlink()} to remove the link.
  
  @param dest
  the Erlang PID of the remote process.
  
  @exception java.io.IOException
  if the connection is not active or a communication error
  occurs.