public void sendMessage(Message message, IP remoteAddress, int remotePort) throws IOException {
    message.setId(JGN.getUniqueLong());

    if (message instanceof CertifiedMessage) {
      getMessageCertifier().enqueue((CertifiedMessage) message, remoteAddress, remotePort);
    }
    if (message instanceof OrderedMessage) {
      if (((OrderedMessage) message).getOrderId() == -1) {
        ((OrderedMessage) message)
            .setOrderId(OrderedMessage.createUniqueId(((OrderedMessage) message).getOrderGroup()));
      }
    }
    resendMessage(message, remoteAddress, remotePort);
  }