Я создал TCP-сервер с помощью .NET TcpListener.
У меня есть некоторые опасения по поводу того, как им можно злоупотреблять, рассылая множество фиктивных соединений, похожих на DoS-атаку.
Я создал небольшое консольное приложение, чтобы неоднократно инициировать подключение к серверу (только «подключение» без передачи других данных). «Максимально допустимый предел одновременных подключений», который является настройкой на сервере для предотвращения его перегрузки, был достигнут в одно мгновение. Это сделало мой сервер практически бесполезным, поскольку он не мог принимать новые соединения, если другие поддельные соединения не отключились. Это доказывает, что мои опасения небезосновательны.
Можем ли мы каким-либо образом предотвратить это на уровне приложения? Я думал потребовать, чтобы клиенты отправляли своего рода токен при подключении, и сервер отказывался бы от соединений, которые этого не делают, но я не думаю, что TCP работает таким образом.
Единственный способ полагаться на внешние решения? Например. VPN, брандмауэр, NAT и т. д.?