private static int availablePort(int protocol) {
    while (true) {
      int port = nextCandidatePort.getAndUpdate(skipCandidatePorts(1));
      if (port > AVAILABLE_PORTS_UPPER_BOUND) {
        continue;
      }

      if (isPortAvailable(port, protocol, getAddress(protocol))) {
        return port;
      }
    }
  }
Assign this JVM's next candidate port based on the given index. If each JVM in the same test
calls this function with a small, distinct number, the algorithm:
<ul>
<li>Separates the JVMs' next candidate ports reasonably well</li>
<li>Allows adding JVMs without needing to know the total number of JVMs ahead of time</li>
</ul>

@param jvmIndex a small number different from that of any other JVM running in this test
geode-junit/src/main/java/org/apache/geode/internal/AvailablePortHelper.java