Работа с плохой пропускной способностью и задержкой

Опубликовано: 25 Апреля, 2023


Введение


Задержка — это задержка, необходимая пакету для перемещения от сервера к клиенту и наоборот. Простая команда ping сообщит вам о задержке этого пинга до места назначения. (называется запись «время=»)


Среда LAN обычно имеет низкую задержку, так как ей приходится перемещаться на небольшое расстояние.


При переходе через глобальные соединения или при использовании Интернета (который использует множество маршрутизаторов для перехода от a к b ) задержка может увеличиться. Самая большая задержка наблюдается при пересечении континентов или использовании спутников. В сочетании с плохой пропускной способностью это фатально.


Итак, что нам нужно для бесперебойной работы?


Сеанс пользователя требует примерно 20 кбит для сеанса Citrix и 30 кбит для сеанса сервера терминалов. Задержка должна быть менее 150 для бесперебойной работы.


Имейте в виду, что если пользователь не использует приложения, ничто, кроме, вероятно, пакетов поддержки активности (к этому мы вернемся позже), не будет потреблять небольшую полосу пропускания, но в основном ничего не выйдет за пределы полосы пропускания.


Так что все дело в активных сеансах, которые занимают полосу пропускания. Сеанс может занять больше времени, если пропускная способность доступна, но все равно будет работать, когда доступная пропускная способность станет меньше.


Изменение таймера подтверждения пакетов


Связь TCP/IP между сервером и клиентом требует обратного подтверждения пакета от клиента к серверу. Если сервер не возвращает подтверждение в течение 3 секунд, сеанс прерывается. Сейчас 3 секунды — это много, но вы можете иметь различные воздействия на сеть, не давая этому подтверждению дойти до сервера.


Чтобы сообщить серверу о повторной отправке запроса подтверждения, вам необходимо создать ключ реестра с именем:



[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters]
«TcpMaxDataRetransmissions» = двойное слово: 0000000a


Этот ключ создаст до 10 новых попыток повторной отправки запроса подтверждения.


Этот параметр полезен как в Microsoft Terminal Server, так и в сеансах Citrix, особенно в средах с более высокой задержкой, например при использовании Интернета.


Keepalives


Keepalives — это параметры, которые тесно связаны с указанным выше параметром TcpMaxDataRetransmissions.


Теперь, когда мы сказали серверу, что в случае потери соединения требуется больше времени для повторной попытки подключения, нам нужно сообщить фактически работающим сеансам, что им не следует беспокоиться о том, что это занимает больше времени, чем ожидалось.


Для RDP таким утешением будет следующий ключ на сервере:



[KEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters]
"KeepAliveTime"=dword:0000ea60
«Интервал поддержания активности» = dword: 000003e8


Поддержка активности Citrix должна быть установлена через консоль управления Citrix, начиная с Citrix XP FR3 и выше. Для более низких версий необходимо, чтобы пакеты поддержки активности были активированы с помощью следующего раздела реестра:



[HKEY_LOCAL_MACHINESystemCurrentControlSetControlCitrix]
«IcaEnableKeepAlive»=dword:00000001
«IcaKeepAliveInterval»=dword:0000003c


Несмотря на настройку этих пакетов поддержки активности, может случиться так, что сеансы все еще обрываются при обычном использовании. Обычно это связано с аппаратным обеспечением, таким как брандмауэры, маршрутизаторы или управляемые коммутаторы с установленным «временем простоя». Они не всегда корректно подхватывают текущий трафик и отключают сеанс, пока пользователи используют приложение. Установите для этих параметров времени простоя максимальное значение или отключите их, если это возможно.


Использование QoS


QoS расшифровывается как Quality Of Service и представляет собой способ делегирования минимальной и максимальной доступности полосы пропускания конкретному протоколу. В наши дни большинство сред WAN содержат множество типов трафика, и RDP от Microsoft или ICA от Citrix — лишь один из многих. Как объяснялось ранее, оба протокола не требуют большой пропускной способности, но эта небольшая часть необходима для того, чтобы сеансы были полностью функциональными и стабильными.


Если ваш маршрутизатор оснащен функцией QoS, настоятельно рекомендуется использовать ее в полной мере. Надежнее всего установить минимум, который может принимать трафик RDP или ICA. Таким образом, пропускная способность сеансов никогда не будет перегружена на стороне сервера и может в полной мере использовать преимущества, если доступна большая пропускная способность.


Сиско


В марте 2004 года Cisco расширила свою технологию NBAR (Распознавание сетевых приложений) до протокола ICA, предоставив (бесплатный) ICA PDLM (модуль языка пакетных данных) под названием «citrix_ica». Этот модуль работает, начиная с версии IOS 12.3(7)T, выпущенной в марте 2004 г. Этот новый модуль может полностью работать вместе с существующей технологией маркировки приоритетных пакетов ICA, которая уже присутствует в маршрутизаторе.


Другой важной опцией, доступной в маршрутизаторах Cisco серий 2600, 3600 и 7200, является «взвешенная справедливая организация очереди». После активации он обеспечивает более справедливое обращение с небольшими пакетами (такими как RDP и ICA) по сравнению с более крупными пакетами. Это особенно важно для соединений с небольшой пропускной способностью, таких как линии 64 или 128 кбит/с.


ЧЕЛОВЕК


MTU расшифровывается как Maximum Transmission Unit и представляет собой пакет или кадр самого большого размера, указанный в октетах (восьмибитных байтах), который может быть отправлен в пакетной или основанной на кадрах сети. Ethernet имеет стандартный MTU 1500. DSL имеет 1492, а для использования в Интернете стандарт составляет 576 (то же самое для коммутируемого доступа).


В большинстве последних систем Windows операционная система может определять, какое соединение должно использовать 1500 или 576, и выбирать соответствующий MTU для соединения. Если по какой-то причине у вас есть клиентская машина, которой не нравится трафик RDP или Citrix, потому что у их провайдера другое значение, настроенное в его оборудовании, или пользователь создал свою собственную сеть, используя маршрут NAT, которому не нравится значение MTU, вы можете изменить его на стороне клиента через:



HKLMsystemcurrentcontrolsetservices cpipparametersinterfaces"ID для адаптера"


Добавьте значение MTU двойного слова со значением 1492 десятичного числа.


Чтобы найти оптимальный MTU для этого клиента, выполните «ping xxxx -f -l 1500», где xxxx — это адрес задействованного сервера Citrix. (Если ICMP отключен на маршрутизаторе или брандмауэре, используйте разрешимый адрес маршрутизатора или брандмауэра, где находится Citrix или сервер терминалов).


Продолжайте уменьшать значение 1500, пока не получите число, при котором сообщение больше не будет появляться:



«Пакет должен быть фрагментирован, но установлен DF».


Если вам не нравится вручную изменять значение MTU в реестре, вы можете воспользоваться следующим бесплатным инструментом: http://www.networkingfiles.com/Download/CableNut.htm


Цитрикс зеркальная копия


Citrix SLR означает сокращение задержки SpeedScreen. Это технология, которая дает вам 2 функции в вашем сеансе. Первый — это «локальное тестовое эхо», которое позволяет пользователю видеть на экране символ, который он вводит в своем сеансе, без нажатия этой клавиши на фактический сервер в это время. Фактическое нажатие клавиши отправляется на сервер позже, обычно из-за задержки, когда пользователь уже вводит новое нажатие клавиши. Персонаж проецируется на сеанс на стороне клиента. Это приводит к тому, что пользователь испытывает высокую производительность при вводе данных по линиям с высокой задержкой.


Другая функция называется «Отзыв о щелчке мыши». Пользователь нажимает кнопку в сеансе, ожидая появления всплывающего окна или действия. Когда действие не начинается, пользователь думает, что что-то пошло не так, и снова нажимает кнопку. После того, как сервер завершил обработку запроса из-за задержки, результатом, вероятно, будет двойное нажатие кнопки (со всеми сюрпризами, которые сопровождают это действие).


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


Обе эти технологии — отличный способ обойти проблему задержки и дать пользователю ощущение быстрой сессии.


Использование SLR необходимо активировать как на сервере, так и на клиенте. На сервере его необходимо активировать для каждого приложения через диспетчер SLR. На клиенте его необходимо активировать на вкладке параметров PN-клиента или в файле template.ica при использовании PN-агента или веб-клиента, добавив следующие 2 строки (0=выключено, 1=включено и 2= авто):



ZLKeyboardMode=1
ZLMouseMode=1


Пороги задержки для SLR:



Если задержка превышает 250 миллисекунд, установите для параметра SLR значение «Вкл.».
Если задержка составляет от 150 до 250 миллисекунд, установите для параметра SLR значение «Авто».
Если задержка составляет от 50 до 80 миллисекунд, установите для параметра SLR значение «Выкл.».


Полную статью Citrix о SLR можно найти здесь.


Виртуальные каналы


Виртуальные каналы — это то, как вся функциональность распределяется по протоколу.


Например, очистка экрана, передача данных, буфер обмена, печать и т. д. — все они имеют собственный виртуальный канал в протоколе RDP или ICA. Большая часть этих функций на самом деле является параметрами, которые можно включить или отключить в настройках конфигурации подключения как для RDP, так и для ICA. Отключение всех ненужных функций приведет к снижению нагрузки и более плавному взаимодействию с пользователем.


Основное различие между RDP и ICA в отношении печати по виртуальному каналу заключается в том, что в Citrix ICA максимальная используемая пропускная способность для печати может быть установлена в консоли управления Citrix до версии MPS 3.0 и с помощью политики в CPS 4.0. Microsoft RDP не имеет этой функции и использует всю доступную пропускную способность для печати задания, в результате чего необходимая пропускная способность превышает 30 КБ за сеанс.


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


Вывод


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