Я работаю над веб-приложением, где пользователям разрешено загружать видеофайлы. Видеофайлы увеличиваются достаточно быстро, чтобы избежать тайм-аутов на сервере, я решил разделить файл на множество небольших пакетов по 3 МБ каждый, загрузить их, а затем собрать файл на сервере. Это делается через AJAX и PHP, и это прекрасно работает. Я конвертирую файл в двоичный файл, загружаю его по частям на сервер, после того, как я это сделаю, я говорю серверу собрать его заново, и сервер возвращает мне путь к завершенному файлу, как только он будет сделан. Я попробовал это с файлами PNG и с видео, и я протестировал пакеты разных размеров. Я также включил этот аккуратный маленький дисплей, который показывает текущую скорость загрузки в зависимости от того, сколько времени занимает каждый пакет и сколько времени это нужно сделать.
Теперь вот где это становится сумасшедшим: иногда моя загрузка будет очень медленной (я обычно получаю 0,5 МБ / с - в те моменты, когда я получаю 0,01 МБ / с), даже когда по моему соединению не происходит никаких других загрузок или загрузок. Мне придется повторить несколько раз, прежде чем все снова будет хорошо. В других случаях он просто отлично загружает первые несколько пакетов, а затем внезапно выполняет остальные пакеты со скоростью 3 пакета в секунду. Похоже, что моя скорость загрузки выше его, но на мой сервер ничего не приходит - фактически видео-файл просто перестанет воспроизводиться с тем же процентом, что и пакеты были отброшены.
Кажется, это проблема моего локального соединения, потому что у меня не было проблем на других компьютерах (хотя я всегда могу сделать только несколько попыток).
У меня вышел провайдер, они обновили проводку и дали мне новый роутер, но это не решило проблему. Это происходит на 2 разных компьютерах, оба с проводным подключением.
Мой веб-хостинг сказал, что это мой провайдер из-за ответа на запрос "Время ожидания истекло", когда я запустил traceroute. До того, как маршрутизатор был заменен, трассировка маршрута в Google привела к 7 из 9 неудачных запросов, теперь это только 2 или 3 ошибки. На мой сервер было 2 пропущенных запроса до и после замены модема.
Отправка запросов ping с максимально разрешенным размером 65500 байт всегда приводит к тайм-ауту как в Google, так и на мой сервер. Регулярные запросы на пинг работают нормально.
Скоростной тест показывает именно те результаты, которые я должен получить.
Каковы мои следующие шаги, чтобы решить эту проблему? Что может вызвать эти проблемы? Зачем ему отбрасывать закачки и все равно давать мне правильный ответ сервера? Почему мой провайдер считает, что у меня все хорошо, когда у меня такие тяжелые времена? Проблема довольно прерывистая, поэтому я не могу им ничего показать.
РЕДАКТИРОВАТЬ:
Как и предполагалось, я запустил pathping, а затем также решил опубликовать все остальные результаты здесь. Надежда, что я оставил без цензуры, не оставляет меня уязвимым:D
Все эти тесты проводились между 4 и 5 утра по восточному поясному времени - поэтому не должно быть слишком много другого трафика.