есть NAT ndis-based, хочется прикрутить shaper в минимальной комплектации – к примеру, ограничить входящий трафик для tcp. возникает вопрос, как реализовать ограничение.
приходят в голову следующие мысли:
1) делим время на интервалы, и отбрасываем все пакеты при превышении заданного значения в байтах за интервал, а tcp будет перепосылать потерянные пакеты. недостаток, бросающийся в глаза – увеличение трафика. хотя вполне может быть, что грамотная реализация протокола на конечных точках снизит скорость передачи.
2) попробовать поиграться с параметром window tcp-заголовка, те уменьшить значение для исходящих пакетов. есть опасение, что приведет к крайней неэффективности (читай – лишнему трафику) или вообще полному ступору соединения
3) не отсекать “лишние” пакеты, а складывать в буфер (FIFO). имхо будет эффективен при трафике, немного превышающем ограничение (когда задержки пакетов в буфере будут меньше таймаута tcp перед повторной посылкой данных из-за неполучения подтверждения клиентом)
перед тем как тестировать различные варианты, хотелось бы выслушать мнение гуру.