Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2018.01.21;
Скачать: [xml.tar.bz2];

Вниз

Протестировать из программы качество соединения 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.002 c
4-1247728148
Кошкин
2009-07-16 11:09
2018.01.21
textout


15-1469482202
Юрий
2016-07-26 00:30
2018.01.21
С днем рождения ! 26 июля 2016 вторник


2-1454867636
JohnKorsh
2016-02-07 20:53
2018.01.21
Как узнать параметры данных в буфере Windows.


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


15-1469731224
iop
2016-07-28 21:40
2018.01.21
вернуться назад (rdp)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский