Я думал о совместном использовании клиента для сервера, который мог бы быть выполнен посредством выполнения на стороне клиента практически без помощи со стороны сервера, и придумал это -
Извините, если это звучит глупо, но я иду -
- На сервере есть таблица, в которой хранятся поля имен серверов, IP-адресов серверов и соответствующих MAC-адресов IP-адресов (да, это очень ориентированный на Windows подход)
- Каждый раз, когда клиент входит в систему на главном сервере, он отправляет запрос на сервер, который возвращает IP-адрес всех записей сервера и их соответствующих MAC-идентификаторов, которые он имеет в своей таблице (я предполагаю, что один сервер имеет несколько восстановленные копии)
- Затем клиент реализует трассировку для каждого из этих ip-адресов и сохраняет их в массиве в порядке увеличения количества переходов.
- Итерация по этому массиву и реализация arp для преобразования IP-адресов в MAC-идентификаторы. Затем сравните эти MAC-идентификаторы с теми, которые были получены с главного сервера на шаге 1. Если есть совпадение, то выбор сервера для подключения основан на количестве переходов + совпадение MAC-идентификаторов + метрика, которая обозначает нагрузку (число подключения к этому серверу в данный момент времени).
Мнения о том, как звучит эта идея, приветствуются.