Как я понимаю, исходящие пакеты любого транспортного протокола могут быть приоритетными, но для TCP, UDP и SCTP только TCP и SCTP имеют управление перегрузкой, позволяющее также приоритезировать их входящие пакеты.
UDP не контролирует перегрузку, поэтому нет способа сообщить исходной машине о входящих UDP-пакетах, чтобы они замедлили их отправку.
Поэтому мой вопрос: возможно ли обрезать UDP-соединения непосредственно перед тем, как они начнут влиять на качество высокоприоритетных соединений? Если да, то как лучше всего это настроить на OpenWrt?
В идеале, перегрузка нисходящей линии связи должна управляться с использованием контроля перегрузки, когда это возможно, а для UDP-соединений и соединений, игнорирующих управление перегрузкой, возврат к отклонению входящих пакетов для проблемных соединений в течение настраиваемого времени (я бы предположил несколько секунд).
Редактировать:
Контроль перегрузки SCTP и TCP, на который я ссылаюсь, называется явным уведомлением о перегрузке (ECN). С тех пор я понял, что вполне возможно, что приложение игнорирует или неправильно реализует поддержку ECN, поэтому я хотел бы распространить этот вопрос на все, что не отвечает на ECN, включая UDP. Поэтому, если мой маршрутизатор сообщает удаленному хосту «замедлиться» (через ECN), и этот хост продолжает пересылать слишком много данных моему провайдеру, я хочу отклонить всю входящую связь с этого хоста, которая, если это не DOS атака должна привести к ошибке ICMP «отказано в соединении» и разорвать соединение. Если этого недостаточно, то дополнительное отклонение исходящих пакетов на хост должно по крайней мере вызвать ошибку тайм-аута.