code: def _send_ack(self, transaction):
          
  
          ack = Message()
          ack.type = defines.Types['ACK']
          # TODO handle mutex on transaction
          if not transaction.request.acknowledged and transaction.request.type == defines.Types["CON"]:
              ack = self._messageLayer.send_empty(transaction, transaction.request, ack)
              self.send_datagram(ack)
docs: Sends an ACK message for the request.
  
          :param transaction: the transaction that owns the request