Разобраться с протоколом tcp/ip администрирования кластера 1С через утилиту ras подтолкнула данная статья: //infostart.ru/1c/articles/1503913
В статье khorevaa довольно высокий уровень абстракции, мне же хотелось опуститься до уровня сетевого взаимодействия. Итог моего любопытства - данная статья.
Полный список материалов данной статьи (описание протокола, исходные коды и собранное приложение) на https://github.com/sdf1979/agent_ras
Анализ протокола проводился для платформы 8.3.17.1496 (версия протокола администрирования 10)
Что реализовано:
- Соединение по tcp/ip с ras.
- Получение массива кластеров 1С.
- Аутентификация под администратором кластера 1С.
- Получение массива краткой информации информации об информационных базах 1С.
- Получение массива информации о рабочих серверах 1С.
- Получение массива информации о сессиях.
- Получение массива информации об администраторах кластера 1С.
- Получение массива информации о менеджерах кластера 1С.
- Получение массива информации о рабочих процессах кластера 1С.
- Получение массива информации о блокировках кластера 1С.
- Получение массива информации о соединениях кластера 1С.
Пример использования выполнен на С++ как есть, без обработки исключительных ситуаций. Рекомендуется использовать для изучения протокола в тестовых средах.
Размер данных сообщения кодируется в varint по base 128, более подробно можно ознакомиться тут.
Размер строки в данных пакета так же кодируется в varint, но по base 64.
varint по base 128 - значащих битов в байте 7.
varint по base 64 - значащих битов в байте 6.
Для чего это знание - затрудняюсь ответить, возможно, где-нибудь когда-нибудь взлетит...