private void trySend(final long currentTimeMs) {
        Iterator<UnsentRequest> iterator = unsentRequests.iterator();
        while (iterator.hasNext()) {
            UnsentRequest unsent = iterator.next();
            unsent.timer.update(currentTimeMs);
            if (unsent.timer.isExpired()) {
                iterator.remove();
                unsent.handler.onFailure(currentTimeMs, new TimeoutException(
                    "Failed to send request after " + unsent.timer.timeoutMs() + " ms."));
                continue;
            }

            if (!doSend(unsent, currentTimeMs)) {
                // continue to retry until timeout.
                continue;
            }
            iterator.remove();
        }
    }
Tries to send the requests in the unsentRequest queue. If the request doesn't have an assigned node, it will
find the leastLoadedOne, and will be retried in the next {@code poll()}. If the request is expired, a
{@link TimeoutException} will be thrown.
clients/src/main/java/org/apache/kafka/clients/consumer/internals/NetworkClientDelegate.java