private DatagramPacket[] messageToPackets(
      final InetSocketAddress remoteSocketAddress, final RPCMessage rpcMessage) {

    final MultiPacketOutputStream mpos =
        new MultiPacketOutputStream(RPCMessage.MAXIMUM_MSG_SIZE + RPCMessage.METADATA_SIZE);
    final Kryo kryo = KryoUtil.getKryo();
    kryo.reset();

    final Output output = new Output(mpos);

    kryo.writeObject(output, new RPCEnvelope(rpcMessage));
    output.close();
    mpos.close();

    return mpos.createPackets(remoteSocketAddress);
  }