Решение, какие TCP-соединения принять () в пользовательском пространстве в Linux - PullRequest
0 голосов
/ 04 мая 2019

Я хочу разрешить моему приложению решать, принимать ли входящее соединение через прослушивающий сокет , используя сокет API . Я хочу реализовать эту функциональность решения в моей программе, поэтому внешние решения, такие как nfqueue, для меня бесполезны (и при этом весь стек TCP не перемещается в пространство пользователя).

Другими словами, я не хочу отвечать на SYN пакеты из нежелательных источников с помощью SYNACK.

Это похоже на этот вопрос , но обсуждение там 7 лет, и решение не предусмотрено. Этот 4-летний пост также рассматривает ту же проблему, опять же без решения. Очевидно, SO_CONDITIONAL_ACCEPT в Windows решает эту проблему, но мне нужно решение для Linux.

Мне было интересно, позволяют ли это новые функции в стеке Linux TCP, такие как TCP_SAVE_SYN, или такие утилиты, как eBPF.

...