code: def send_request(self, request):
          
          logger.debug("send_request - " + str(request))
          assert isinstance(request, Request)
          try:
              host, port = request.destination
          except AttributeError:
              return
  
          request.timestamp = time.time()
          transaction = Transaction(request=request, timestamp=request.timestamp)
          if transaction.request.type is None:
              transaction.request.type = defines.Types["CON"]
  
          if transaction.request.mid is None:
              transaction.request.mid = self.fetch_mid()
  
          key_mid = str_append_hash(host, port, request.mid)
          self._transactions[key_mid] = transaction
  
          key_token = str_append_hash(host, port, request.token)
          self._transactions_token[key_token] = transaction
  
          return self._transactions[key_mid]
docs: Create the transaction and fill it with the outgoing request.
  
          :type request: Request
          :param request: the request to send
          :rtype : Transaction
          :return: the created transaction