Почему сниффер ускоряет загрузку файлов на Google.Drive?
Разрабатываю клиент для Google.Drive. Использую гугловское api для .NET.
Скорость загрузки крайне невысокая - 600 кбайт/с при канале в 6 мбайт/с.
Обнаружил, что когда запускаю сниффер Fiddler2, скорость возрастает десятикратно, упираясь в лимит интернет-канала.
Сами авторы сниффера дают объяснение - они используют пул keep-alive http подключений, уменьшая накладные расходы по созданию новых подключений.
Почему гугловсое api так коряво себя ведет? Поиск на эту тему ничего не дает. Возможно, проблема редкая или вообще на моей стороне, хотя на 2 PC результат одинаковый.
Файлы мелкие или крупные? Сколько запросов генерит закачка N файлов? Можете попробовать взять wireshark и сравнить досконально, чем отличаются передаваемые данные при подключении напрямую или через фидлер (конечно если есть время и желание)
Станислав Макаров: Файлы от 30 МБ до 2 ГБ. На каждый чанк (от 2 МБ до 20 МБ) генерится отдельный HTTPS запрос. Если посмотреть через Wireshark, то на каждый чанк генерится сотни или даже тысячи TLSv1 пакетов длиной 4187 байт и затем сервер отвечает TCP ACK.
Когда работает Fiddler, то при передаче чанка происходит мгновенная отправка всех сотен или тысяч TLSV1 пакетов, и только затем приходит пачка ответов. За счет этого и возрастает скорость.