Добрый день!
Возникла необходимость тестировать время отклика протокола RDP в различных сложных условиях. Как наиболее простой способ, возникла идея разработать на стороне WTware что-то вроде внутрипротокольного пинга.
Концепция:
Программа на стороне RDP сервера посылает тестовый байт запрос в сторону клиента WTware, Wtware отвечает на этот тестовый запрос.
Рассмотрели вариант с Virtual Channel, он на стороне сервера требует регистрацию библиотеки, что неудобно с точки зрения администрирования.
И рассмотрели вариант пинга через виртуальный COM-порт. этот вариант нам показался самым простым и подходящим, на сервере будет достаточно запустить простую консольную утилиту нашей разработки.
С точки зрения конфига WTware это могло бы выглядеть так:
serial = com2(pinger)
Прошу рассмотреть возможность разработки такой функции в WTware.
Тестирование латенси RDP протокола
-
- Разработчик
- Сообщения: 11852
- Зарегистрирован: Ср окт 01, 2003 12:06 am
- Откуда: Роcсия, Тольятти
- Контактная информация:
Re: Тестирование латенси RDP протокола
Eсть Dynamic Virtual Channel. Мы в конфигураторе делаем так:
Код: Выделить всё
WTSVirtualChannelOpenEx (WTS_CURRENT_SESSION, "WTDVC", WTS_CHANNEL_OPTION_DYNAMIC | WTS_CHANNEL_OPTION_DYNAMIC_NO_COMPRESS)
Простую консольную утилиту вашей разработки надо будет запускать именно в сеансе пользователя, каналы живут только внутри RDP сессии. Это подходит?
Re: Тестирование латенси RDP протокола
Подходит!
Спасибо за наводку, не знали про динамические каналы, определенно это лучше, чем наш вариант.
Сотворено логика будет примерно такая:
1. Открываем канал через WTSVirtualChannelOpenEx
2. Пишем «пинг» запрос через WTSVirtualChannelWrite
3. Читаем ответ через WTSVirtualChannelRead
Делаем все это в цикле замеряя время и отправляя в наш мониторинг.
Остается только вопрос что нужно послать чтобы получить ответ? Такая функция уже есть или нужно разрабатывать?
Спасибо за наводку, не знали про динамические каналы, определенно это лучше, чем наш вариант.
Сотворено логика будет примерно такая:
1. Открываем канал через WTSVirtualChannelOpenEx
2. Пишем «пинг» запрос через WTSVirtualChannelWrite
3. Читаем ответ через WTSVirtualChannelRead
Делаем все это в цикле замеряя время и отправляя в наш мониторинг.
Остается только вопрос что нужно послать чтобы получить ответ? Такая функция уже есть или нужно разрабатывать?
Re: Тестирование латенси RDP протокола
а подскажите, ради чего это все?
Re: Тестирование латенси RDP протокола
Попробуем так. Но есть подозрение, что функция открытия канала имеет значительные накладные расходы ( например, по аналогии c API функцией открытия файла, которая может занимать больше времени чем запись небольшого объема данных в этот файл), что повлияет на результат измерений.
Попробуем ваш вариант, если все хорошо, то на нем и остановимся. Если увидим, что время отклика большое даже на не загруженной локальной сети, тогда отпишемся.