Чому передача файлів може поволі йти на Windows, але швидко на Linux?


2

Я розумію, що це може бути неможливим питанням, але тут йде:

У мене є вбудована плата, яку я написав для завантаження програмного забезпечення; Ця плата може бути надіслана новим зображенням прошивки (зображення тут не зображення, а оновлення програмного забезпечення, яке буде працювати на платі) через веб-браузер. Веб-браузер запускається на звичайному комп'ютері і обслуговується вбудованою платою. Отже, ви відкриваєте веб-переглядач на комп'ютері, вводьте IP-адресу вбудованої плати, а вбудована плата служить для вибору сторінки для вибору нового зображення прошивки для цієї вбудованої плати.

Тепер я розробляю це на Linux; Я маю на увазі програмне забезпечення для вбудованої плати і тому браузер, який я використовував, був на моїх машинах Linux. Коли я намагаюся повторити це на Windows, це собака повільна!

Дивлячись на нього за допомогою Wireshark, машина Windows надсилає пакет, що містить нові дані про прошивки, вбудована плата посилає ACK 400μs (чотири сотні мікросекунд) пізніше. Машина Windows негайно відправляє наступний пакет, і ACK знову повертається через кілька сотень мікросекунд.

Однак наступний пакет після цього пакета з чотирма пакетами надсилається через п'ять секунд, і послідовність швидких пакетів повторюється.

Це триває, з чотирма пакетами спалахів, а потім п'ятисекундних зазорів. Якщо у вас є файл 586K, це робить його болісно повільним.

Якщо ви надішлете файл за допомогою машини Linux, на відправлення всього зображення потрібно декілька секунд.

Я спробував його на двох машинах Windows і двох машинах Linux з однаковими результатами. Я не використовував Windows "належним чином" років, і я взагалі не знаю свого шляху. Я задаюся питанням, чи може це бути проблемою брандмауера (але тоді чому б це дозволило проникнути, хоч і повільно?).

Може хто-небудь кинути будь-який світло на це або зробити які-небудь пропозиції на те, чому це буде, будь ласка? Я хотів би сказати моєму клієнтові просто використовувати Linux, але я не думаю, що це буде добре! ; ~

Редагувати:

Я додав файли pcap у випадку допомоги. Зверніть увагу, я зупинив Windows однією частиною шляху, оскільки це так повільно. Linux завершує передачу файлу. Windows Slow завантаження pcap

Linux швидко завантажує pcap


Це може допомогти, якщо ви повідомили нам, які веб-переглядачі ви використовуєте (принаймні у Windows) і яку версію (-и) Windows використовуєте.
G-Man

Вибачте! Це Firefox на 39 і Windows і 38 на Linux.
DiBosco

Тільки щоб викласти очевидне: якщо ви не знайдете реальної відповіді на це, вони завжди можуть отримати щось на зразок Raspberry Pi тільки для того, щоб робити завантаження з ним. Апаратні засоби використовувалися з різними пропрієтарними інтерфейсами. Ви все ще можете робити все, що потрібно користувачеві, щоб зробити / налаштувати завантаження на звичайній клієнтській ОС, і просто передати її Pi для завантаження.
Joe

Відповіді:


0

Гаразд, підібрали його. Я був розміром TCP Win в моєму програмному забезпеченні. Я збільшив його, і він відмінно працює на обох платформах зараз. На всякий випадок хтось інший зустрічає такі речі ...

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.