code: public ServiceDirectoryFuture submitAsyncRequest(ProtocolHeader h, Protocol request, WatcherRegistration wr){
          ServiceDirectoryFuture future = new ServiceDirectoryFuture();
          queuePacket(h, request, null, null, future, wr);
          return future;
      }
docs: Submit a Request in asynchronizing, it return a Future for the
  Request Response.
  
  @param h
  the ProtocolHeader.
  @param request
  the Protocol.
  @param wr
  the WatcherRegistration of the Service.
  @return
  the Future.