Реальное отображение времени upload файла (javascript)

Куча примеров в интернете про прогресс-бар upload файла, но реальной картины пользователю такой скрипт не даст, итак, примерный скрипт из интернета:
есть форма с <input type='file'>
```
// по событию submit передаем файл из инпута в нашу функцию
function upload(file) {
const xhr = new XMLHttpRequest();
// по событию progress логаем байты
xhr.upload.onprogress = function(event) {
console.log('Отправлено на сервер' + event.loaded + ' байт из ' + event.total );
}
// настройка
xhr.open('POST', 'upload.php');
// пристраиваем отправляемый файл
const formData = new FormData();
formData.append('userfile', file);
// отправка
xhr.send(formData);
}
```
Протестировав это становится понятно, что этот скрипт отобразит только отправку браузером, а отправляет все 5 мб фото он практически мгновенно и одномоментно.
То есть реальной картины пользователю, сколько ждать пока сервер получит данные и ответит, этот скрипт не даст.
А остальное реальное время отправки файла (по проводам наверное) до ответа сервера как прикинуть? Сколько ждать пользователю пока сервер ответит? Как делается прогресс-бар, который отобразит реальное приблизительное время ожидания? Подскажите куда рыть). Спасибо.