Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2018.01.21;
Скачать: CL | DM;

Вниз

Протестировать из программы качество соединения RDP   Найти похожие ветки 

 
ВладОшин ©   (2016-07-18 13:24) [0]

По RDP юзер цепляется к компьютеру. Периодически могут возникать проблемы с соединением. В таких случаях требуется сделать что-то.

Нашел WTSQuerySessionInformation
https://msdn.microsoft.com/en-us/library/aa383838(v=vs.85).aspx

из WTS_INFO_CLASS выцепаю Компьютер или IP c которого сидит юзер, физически.
Далее пинг от программы(моей, на удаленке) к  Компьютер или IP c которого сидит юзер, физически..
И вот тут засада - некоторые пингуются, а некоторые - нет
При этом ClientAddr и ClientName определяется правильно - логирую, смотрю - совпадает
Пробую пинг через cmd - тоже самое, не пингуется. (превышен интервал ожидания)

Тут еще подумал - в принципе, юзер может вообще отключить ответ на пинг.

Вопрос
Как можно (еще) проверить что качество соединения RDP стало "плохим"?


 
ВладОшин ©   (2016-07-18 13:27) [1]

пока думаю считать дельту
 DWORD                  IncomingBytes;
 DWORD                  OutgoingBytes;
из
WTSINFOEX_LEVEL1 structure
которую можно той же WTSQuerySessionInformation получить

но что-то не нравится такой способ )


 
Cobalt ©   (2016-07-18 14:32) [2]

А с целью?
Неужто юзер не сможет лучше понять качество подключения?


 
iop ©   (2016-07-18 14:45) [3]

это тот случай когда оценка плохости канала ухудшает состояние этого канала.


 
ВладОшин ©   (2016-07-18 14:46) [4]

Цель - контроль

Есть операции, при которых юзеру запрещено оставлять текущую операцию. например, диалог с клиентом в чате. У юзера-девочки может зазвонить телефон, он на минуту оставляет клиента, занимаясь бой-френдом. Клиент пишет-пишет, а ответа нет. Клиент жалуется.
Юзер сообщает, что было подвисание коннекта. Сейчас этот момент никак не контролируется.

Или если юзер совсем отвалился, требуется клиента перекинуть на первого свободного оператора


 
Rouse_ ©   (2016-07-18 15:22) [5]


> Cobalt ©   (18.07.16 14:32) [2]
> А с целью?
> Неужто юзер не сможет лучше понять качество подключения?
>

Володь - ты иногда такие ответы даешь, хоть стой - хоть падай.
Ты 24 кадра в секунду на глаз от 25 отличить сможешь?


 
Kerk ©   (2016-07-18 15:49) [6]

Надзиратель надежнее был бы :)


 
ВладОшин ©   (2016-07-18 16:47) [7]

ну..люди работают разные и по-разному, в т.ч. из дома, в т.ч. на пару часов в день подключаются поработать разные студенты.


 
Eraser ©   (2016-07-18 17:20) [8]


> ВладОшин ©   (18.07.16 13:24) 


> пинг

пинг, в качестве единственной меры контроля использовать ни в коем случае нельзя. начиная с 7, по умолчанию, стандартный сетевой экран полностью блокирует все сходящие ICMP. другими словами, чистая система пинговаться не будет вообще.
нужно, как минимум, пробовать установить TCP соединение, на какой-либо точно открытый порт.


 
Kilkennycat ©   (2016-07-18 20:18) [9]


> например, диалог с клиентом в чате.

а если в этом примере просто посылать неотображаемые короткие тексты"пинг" с ответом "понг"? В момент, когда другие сообщения не посылаются. Пересылка двух сообщений, связанных по событию прием-передача, гарантирует, что чат работает. И используется тот же механизм, что удобно


 
DayGaykin ©   (2016-07-18 23:30) [10]


> Rouse_ ©   (18.07.16 15:22) [5]
>
> > Cobalt ©   (18.07.16 14:32) [2]
> > А с целью?
> > Неужто юзер не сможет лучше понять качество подключения?
>
> >
>
> Володь - ты иногда такие ответы даешь, хоть стой - хоть
> падай.
> Ты 24 кадра в секунду на глаз от 25 отличить сможешь?

Я помню работая в одной конторе мне тестер написал, что интерфейс начал медленнее работать на 0,1 секунду. При масштабе 1-3 секунды.
Пришлось написать программу, которая отмеряла интервал 1 или 1,1 секунды, а тестер должен был определить :))


 
ВладОшин ©   (2016-07-18 23:52) [11]


> пинг, в качестве единственной меры контроля использовать
> ни в коем случае нельзя

закинул на несколько машин, на 4х из 5 не пингуется
А почитав, похоже, вообще нельзя. Ни в качестве какой.


> Kilkennycat ©   (18.07.16 20:18) [9]

Костя, ты, кажись, не понял )
Есть машины А[i], рабочие, хорошие, двойное резервное по эл.энергии, тройное по провайдеру, кондей, админ дежурный - все стоят в Нерезиновске.
И есть  Б[i] - разные люди по всей РФ, цепляются к А[i] и работают, якобы там.
Какие Б[i] - не понятно, любые могут быть. Ставить на них что-то, ну, в общем случае, нельзя.
А[i] работают с БД, с клиентом, часто на ПО клиента или в браузере. (Может, видел где-то - заходишь на сайт, там всплывает окошко консультанта, можно поговорить. Вот в т.ч. и такая деятельность шарагой поддерживается - операторы проходят обучение и консультируют посетителя)
т.е. проблем на компах А[i] при работе нет в 99.99%% случаях.
Проблема с коннектом с Б[i] из Урюпинска до А[i] в Москве.


 
Германн ©   (2016-07-19 01:24) [12]


> ВладОшин ©   (18.07.16 13:24)
>
> По RDP юзер цепляется к компьютеру. Периодически могут возникать
> проблемы с соединением. В таких случаях требуется сделать
> что-то.
>

Кому требуется?
Б[i] в Урюпинске или А[i] в Москве?
Или лично тебе?


 
Германн ©   (2016-07-19 01:46) [13]

Ну в смысле, что если я живу в Урюпинске и у меня хреновый "интернет", то должен ли я (имею ли я право) требовать с Москвы что-нибудь?


 
ВладОшин ©   (2016-07-19 08:09) [14]

скатываемся в бла-бла-бла
ну ладно )


> Кому требуется?

Требуется начальству, делать мне.


> должен ли я (имею ли я право) требовать с Москвы что-нибудь?

Имеешь. Но руководство решит, профинансировать ли тебе что-то другое, или распрощаться с тобой, в случае невозможности повысить тебе "интернет"/железо.
В разумных пределах, разумеется )
(как человек из такого же Урюпинска(хоть и не оператор), постоянно что-то выбиваю - то память, то доп.винты, то еще что. Интернет сам купил максимальный в нашем городе - 45 mbt - уже и больше есть, но хватает вполне и такого)


 
Kilkennycat ©   (2016-07-19 10:09) [15]


> ВладОшин ©   (18.07.16 23:52) [11]

ну, тогда я опять не понял...
ставить на b[i] ничего и не надо. надо допилить этот самый чат, чтобы он имитировал общение, которое никто не видит, в паузах между реальным общением. Тогда на A[i] будет видно, что клиент задал вопрос в 11.00. оператор ответил в 13.00. за прошедших два часа допиленная фича переслала из компа b[i] в комп a[i] и обратно 288 сообщений (которые по сути являлись аналогом нормального общения) каждые 5 секунд, и отмазка оператора о плохом коннекте не катит.


 
sniknik ©   (2016-07-19 10:57) [16]

> чтобы он имитировал общение, которое никто не видит
судя по имени пойдет WTSIsChildSessionsEnabled


 
ВладОшин ©   (2016-07-19 11:53) [17]


> Kilkennycat ©   (19.07.16 10:09) [15]

теперь я не понял

>> на A[i] будет видно, что клиент задал вопрос в 11.00. оператор ответил в 13.00
это все видно, логируется.
возникает вопрос, что делаешь ты 2 часа?
Ответ - у меня RDP проглючил,  не мог мышку подвинуть толком на 10 пикселов в течении часа.
Проверка?
>> фича переслала из компа b[i] в комп a[i]
т.е. поставить на компы b[i] дополнительное "ПО". Или кто тогда будет слать?
Я с самого начала предлагал считать дельту

> DWORD                  IncomingBytes;
>  DWORD                  OutgoingBytes;
> из
> WTSINFOEX_LEVEL1 structure

но тут что плохо - не понятно, эти байты они всегда гоняются или как.
если юзер ничего не делает, зачем их особо много гонять
а если их мало - это юзер ничего не делает, или это связь плохая

Николай вот что-то нарыл
пойду про WTS еще почитаю
вернусь-доложу )


 
Игорь Шевченко ©   (2016-07-19 14:32) [18]

Влад, зачем ты такой Кулибин ?

Купи программу Стахановец и не парься


 
Cobalt ©   (2016-07-19 16:19) [19]

> Rouse_ ©   (18.07.16 15:22) [5]
> > Cobalt ©   (18.07.16 14:32) [2]
> > А с целью?
> > Неужто юзер не сможет лучше понять качество подключения?
> Володь - ты иногда такие ответы даешь, хоть стой - хоть падай.
> Ты 24 кадра в секунду на глаз от 25 отличить сможешь?


Саш, ну видно же сразу, что вопрос ТСа - классический случай X-Y-Z.
Надо же как-то пнуть дальше раскрывать тему :-)


 
NoUser ©   (2016-07-19 18:29) [20]

> Как можно (еще) проверить что качество соединения RDP стало  "плохим"?

Как вариант:

Сделай TCP-пинговалку на еще какой-нибудь порт на сервере,
придумай легенду (безопасность/учет/бонусы) по которой клиент запустит ее вместе с rdp.


 
Rouse_ ©   (2016-07-19 18:30) [21]

Ну... С этой позиции - согласен :)


 
Rouse_ ©   (2016-07-19 18:32) [22]

Не удобно с планшета писать, ответ, конечто на этот пост был :)
Cobalt ©   (19.07.16 16:19) [19]


 
ВладОшин ©   (2016-07-19 18:59) [23]


Игорь Шевченко
> Купи программу Стахановец и не парься

судя по демке, неплохая программа )
но не..
Она не сможет как надо прореагировать в основной программе компании. Например, перевести софтверный звонок(голосового клиента), перекинуть клавиатурного клиента. Это тоже необходимо.
Да и суть всех этих программ - внедрить "стукача" )
На комп юзеру это не надо делать, а на RDP смысла нет. И так есть лог что в каком окне нажал, по какому контролу кликнул. Ситуация та же - да, видно, что 15 мин, к примеру, не было активности. Но это никак не скажет про качество коннекта RDP при этом.


> Cobalt ©   (19.07.16 16:19) [19]

да пинай, конечно )
X-Y-Z, так  X-Y-Z, только не пойму все равно куда идти )

-----------

в общем, вот такое дело
WTSINFO structure
имеет
 DWORD                  IncomingFrames;
 DWORD                  OutgoingFrames;
и WTS_CONNECTSTATE_CLASS State;
остальное не интересно

считаю фреймы и статус:

ничего не делаю, смотрю на memo1
18:38:01 [State=WTSActive  In=1662 Out=4072]
18:38:02 [State=WTSActive  In=1662 Out=4073]
18:38:03 [State=WTSActive  In=1662 Out=4074]
растет исходящий, на месте входящий

свернул окно RDP
18:38:17 [State=WTSActive  In=1687 Out=4098]
18:38:18 [State=WTSActive  In=1687 Out=4098]
18:38:19 [State=WTSActive  In=1687 Out=4098]
все стоит

перекрываю RDP другим окном
18:38:31 [State=WTSActive  In=1717 Out=4118]
18:38:32 [State=WTSActive  In=1717 Out=4119]
18:38:33 [State=WTSActive  In=1717 Out=4120]
тоже самое, что ничего не делать

открыл перекрытое RDP, что-то делаю
18:38:45 [State=WTSActive  In=1747 Out=4144]
18:38:46 [State=WTSActive  In=1755 Out=4150]
18:38:47 [State=WTSActive  In=1762 Out=4152]
все растет

закрыл окно RDP крестиком
18:38:52 [State=WTSDisconnected  In=0 Out=0]
18:38:53 [State=WTSDisconnected  In=0 Out=0]
18:38:54 [State=WTSDisconnected  In=0 Out=0]

подсоединился, что-то делаю
18:39:11 [State=WTSActive  In=80 Out=91]
18:39:12 [State=WTSActive  In=83 Out=92]
18:39:13 [State=WTSActive  In=84 Out=93]

как бы испортить коннект теперь в процессе замера? )


 
ВладОшин ©   (2016-07-19 19:13) [24]

вырубил роутер из розетки
19:06:59 [State=WTSDisconnected  In=0 Out=0]
19:07:00 [State=WTSDisconnected  In=0 Out=0]
то же самое, что закрыть окно

а вот как бы изобразить, что связь через какой-нибудь модем на 14400 , с ошибками постоянными..


 
Eraser ©   (2016-07-19 23:07) [25]


> ВладОшин ©   (19.07.16 18:59) [23]

можно внутри самого RDP сеанса проверять GetLastInputInfo.
в любом случае, нужно контролировать сам RDP сеанс, а не соединение. Не особо сложная задача, в принципе, если требуется просто функционал.


 
sniknik ©   (2016-07-20 09:52) [26]

> можно внутри самого RDP сеанса проверять GetLastInputInfo.
насколько понял не пойдет... т.к. против самого факта простоя никто не возражает. конфликт из-за причин простоя - работодатель говорит "вы ни хрена не делали", работник "так не мог, окно RDP висело, даже мышка не двигалась"... "пришлось зарубиться в дьяблу вне окна" (это уже мысленно).
ну типа так.


 
ВладОшин ©   (2016-07-20 10:35) [27]


> sniknik ©   (20.07.16 09:52) [26]

да

Единственное что понятно:
Случай WTSDisconnected, понятно все, и надо клиента перекинуть.

Если нет ввода (входящих фреймов(или байтов)), то юзер ничего не делает или свернул окно или повисло.
А факт "повисло" опять не определен.

Случай нет ввода (юзер ничего не делает) - ну, такое может быть, если он перекрыл окно справочником и ищет что ответить клиенту. В т.ч. на своей реальной машине(на сайте через браузер, например, ищет в ЧаВо)

факт плохого коннекта, плохого коннекта. Как определить частоту обновления окна RDP, или аналогичное в терминах rdp

>> NoUser ©   (19.07.16 18:29) [20]
видел. Не ответил, т.к. это аналогичное "внедрить стукача" на реалку. Не, не пойдет. Во всяком, пока не выжму все "по-честному" из API


 
ВладОшин ©   (2016-07-20 10:36) [28]

Запустить торрентов что ли на 5 фильмов.. забить весь канал и посмотреть всякие замеры..


 
iop ©   (2016-07-20 10:55) [29]

бессмысленно все это.
и заниматься этим не надо.


 
NoUser ©   (2016-07-20 21:39) [30]

> ВладОшин ©   (20.07.16 10:35) [27]

Можно сварганить rdp-proxy и там задавать SIO_KEEPALIVE_VALS
а на десктопе крутить простенькую анимацию (менять картинку),
если свернуто, отсылки данных не будет, а если "подвиснет" - получишь разрыв.

> [28]
подключись через GPRS ))


 
ВладОшин ©   (2016-07-24 21:11) [31]

в общем, нашлась причина наверное 95% процентов..
Если юзер сидит не из под Windows, а из под Линукс через некий free-rdp клиент, цепляется на win, то например, происходит так, что связь порвалась, а free-rdp не показывает это.
т.е. юзер написал, ждет ответа, связь порвалась, картинка у него не меняется(!), а клиент в это время ответил, и тоже ждет..
Вот такая ерунда, сам видел, юзер заснял монитор - у него все хорошо, а в логе четко написано WTSDisconnected.
Проходит время, пока юзер понимает, что связи нет и делает ре-коннект, а клиент уже зол, 10 сообщений кинул и грозит в спортлото пожаловаться..


 
iop ©   (2016-07-25 18:43) [32]

[29]


 
ВладОшин ©   (2016-07-26 10:01) [33]


> iop ©   (25.07.16 18:43) [32]

как анекдот про анекдоты по номерам? )
читаю все, и где-то согласен с [29]
но надо понимать, что происходило. Хотя бы так, не совсем достоверно



Страницы: 1 вся ветка

Текущий архив: 2018.01.21;
Скачать: CL | DM;

Наверх




Память: 0.57 MB
Время: 0.003 c
15-1469568601
Юрий
2016-07-27 00:30
2018.01.21
С днем рождения ! 27 июля 2016 среда


15-1469741912
Германн
2016-07-29 00:38
2018.01.21
Оранжевый цвет


2-1455036814
sTDally
2016-02-09 19:53
2018.01.21
TImage


15-1468837479
ВладОшин
2016-07-18 13:24
2018.01.21
Протестировать из программы качество соединения RDP


4-1247728148
Кошкин
2009-07-16 11:09
2018.01.21
textout