Я тестирую наши клиент-серверные приложения с помощью NetLimiter, программного обеспечения для управления трафиком. Я обнаружил, что, когда клиент получает файлы с сервера, и я использую NetLimiter, чтобы установить скорость загрузки на значение, такое как 50K / S, постоянно нажимая кнопки (для увеличения скорости с 0K / s до 50K / s, каждый щелчок увеличивает скорость на 1), то передача остановится и никогда не возобновится, кажется, что некоторые управляющие пакеты с сервера потеряны.
Будет ли программа управления трафиком перехватывать пакеты и удерживать их без отправки нашему клиенту по неизвестной причине? Будет ли программа управления трафиком отбрасывать пакеты TCP, которые должны быть отправлены нашему клиенту?
[Подробнее] Программное обеспечение для управления трафиком прерывает передачу, потому что наш сервер будет отправлять некоторые контрольные пакеты клиенту для управления передачей, например остановить передачу или начать передачу. И во время тестов мы обнаружили, что контрольный пакет «Начать передачу» прибыл на карту сетевого интерфейса, но пакет не был получен нашим клиентом (есть сокет TCP).
Спасибо
Короче говоря, программа управления трафиком Yes действительно может отбрасывать пакеты при формировании трафика. Это нормально для протоколов TCP, поскольку TCP позаботится о повторной отправке потерянных пакетов.
В Вики по формированию трафика описывает некоторые методы, используемые для формирования трафика. Доступно множество алгоритмов, таких как КРАСНЫЙ, падение хвоста и другие.
Будет ли программа управления трафиком перехватывать пакеты и удерживать их без отправки нашему клиенту по неизвестной причине?
Он будет удерживать (ставить в очередь) их некоторое время перед отправкой, чтобы обеспечить соблюдение специально настроенной скорости.
Будет ли программа управления трафиком отбрасывать пакеты TCP, которые должны быть отправлены нашему клиенту?
Да, например вы можете выполнять маршрутизацию между двумя сетями, где одна сеть имеет скорость 50 КБ / с, а другая сторона может иметь скорость 100 КБ / с. Если 100 КБ / с данных отправлялись непрерывно на хост в сети 50 КБ / с, тогда пакеты должны храниться в маршрутизаторе, чтобы соответствовать скорости 50 КБ / с. Поскольку память ограничена, а размеры очереди часто фиксированы, наступает момент, когда вам, возможно, придется начать отбрасывать пакеты. Отбрасывание пакетов - неплохая вещь. TCP предназначен для восстановления. Если бы вы поставили все в очередь, это могло быть плохо, так как это могло бы значительно увеличить задержку. Так что отбрасывание пакетов имеет смысл.
[Подробнее] Программное обеспечение для управления трафиком прерывает передачу, потому что наш сервер будет отправлять некоторые контрольные пакеты клиенту для управления передачей, например остановить передачу или начать передачу. И во время тестов мы обнаружили, что контрольный пакет «Начать передачу» прибыл на карту сетевого интерфейса, но пакет не был получен нашим клиентом (есть сокет TCP).
Ненавижу это говорить, но похоже, что ваше клиент-серверное приложение сломалось. Отброшенные пакеты через Интернет - это нормальное ожидаемое поведение.
Что теряется, так это ваши управляющие команды. Похоже, их поглотила программная ошибка!