Оптимизация Citrix для работы по беспроводным сетям

Многие пользователи сегодня используют MetaFrame в локальных сетях. Благодаря высокой пропускной способности и малому времени реакции они достаточно комфортно могут работать с приложениями так, как будто запустили их на локальном устройстве. Однако, беспроводные сети и WAN отличаются медленностью и высоким временем реакции. Эти факторы особенно чувствительны в беспроводных сетях, где производительность пользователей может снизиться до непримелимого уровня.

Пропускная способность (throughput) и задержки (latency) - вот основные факторы, определяющие скорость сети. Пропускная способность - это количество данных, которое может пройти от источника к назначению за определенный промежуток времени. Задержки - это время, требуемое для осуществления единичной транзакции данных (т.е. промежуток времени между посылкой данных и приемом).

Задержки оказывают критическое влияние на комфортнось работы пользователя, поскольку каждое действие пользователя должно передаться по сети на сервер, сервер должен это обработать и вернуть ответ. В локальных сетях (LAN) задержки обычно невелики и не превышают 10мс. Однако, в проводных глобальных сетях (WAN) они составляют 100-500мс, а в беспроводных глобальных сетях (wWAN) - даже 300-3000мс. При этом задержкам подвергается весь траффик, не только ICA.

Беспроводные WAN обычно соединяют пользователей с интернетом, через который они получают доступ к серверу MetaFrame. Интернет основан на протоколе TCP, который требует подтверждения на каждый переданный пакет. Если отправитель не получает ответа в течении заданного времени, TCP считает связь перегруженной и снижает скорость посылки пакетов. TCP весьма эффективен в проводном интернете. Беспроводные сети имеют большую задержку, чем проводные, и кроме того они характеризуются "дрожанием" (jitter) (переменной задержкой). Низлежащие беспроводные сети основаны на архитектуре передачи голоса и не содержат эффективных механизмов передачи подтверждающих пакетов данных. Для улучшения передачи данных такие сети обычно ждут прихода нескольких кадров перед ответом на них одним подтверждением. Тут и возникает задержка.

Как правило, задержка возрастает при увеличении размера пакета TCP. В LAN это практически незаметно. В WAN она оказывает небольшое влияние. Но в wWAN, например, задержка 32-байтного пакета может составлять 400мс, а для 1460-байтного пакета - более 1800мс. Это негативно влияет на сеансы MetaFrame.

В этом документе Citrix старается дать рекомендации по оптимизации MetaFrame для работы по беспроводным глобальным сетям.

Цель оптимизации

Уменьшение максимального размера пакета

Максимальный размер пакета TCP, используемый Citrix, обычно составляет 1460 байт. После тестирования в беспроводной среде оказалось, что рекомендуемый размер пакета составляет 512 байт.

Уменьшение количества передаваемых малых пакетов

Задержки также возникают при поступлении пакетов малого размера, т.е. размером ниже 64 байт, которые ниже MTU. Посылка большого количества маленьких пакетов создает перегрузку сети. Для решения этой проблемы рекомендуется использовать объединение пакетов.

Использование технологии SpeedScreen3

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

Кеширование и сжатие данных

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

Рекомендации

Feature Release 2

MetaFrame XP FR2 содержит ряд улучшений, в частности:

Citrix настоятельно рекомендует использовать FR2 или более поздние выпуски при работе в wWAN, а также соответствующие версии клиентов.

Если вы используете FR1, то следуйте рекомендациям, изложенным в Приложении 2.

Включение SpeedScreen3 Latency Reduction

Для уменьшения зарежек в SpeedScreen3 используется два компонента:

  1. Локальное эхо текста
  2. Ответная реакция мыши

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

Ответная реакция мыши меняет форму курсора мыши на клиенте при щелчке в состояние “busy working”. Когда сервер присылает ответ на щелчок мыши, форма кусора меняется на обычную.

На сервере для изменения этих двух методов используется SpeedScreen3 Latency Reduction Manager. По умолчанию реакция мыши включена, а локальное эхо текста отключено. При использовании WWAN локальное эхо также должно быть включено. Подробнее см. "Руководство Администратора".

Увеличение задержки показа меню

Это относится к оптимизации интерфейса Windows. Эти рекомендации полезны также и для высокоскоростных соединений.

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

Задержка показа меню устанавливается в реестре HKCU\Control Panel\Desktop\MenuShowDelay.

Рекомендуемое значение 1500 (в миллисекундах).

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

NFuse является предпочтительным методом соединения с серверами MetaFrame через wWAN.

Citrix рекомендует создать два сервера NFuse - один для обслуживания беспроводных пользователей, а другой - для обслуживания пользователей LAN. Эти серверы имеют разные настройки.

Рекомендуемые изменения в Template.ica

Запрет отображения клиентских драйвов

Запрет отображения драйвов (drive mapping) уменьшает время регистрации, а также улучшает производительность, поскольку операционная система не тратит время на поиск драйвов клиента, что обычно происходит, например, при вводе URL в адресную строку Internet Explorer, открытии диалога Save As... или File Open.

Параметр Значение Смысл
COMAllowed Off Виртуальный канал отображения COM-портов
CPMAllowed Off Виртуальный канал отображения принтеров клиента
VSLAllowed Off Виртуальный канал спулера печати
CDMAllowed Off Использование виртуального канала отображение клиентских драйвов
ClientAudio Off Виртуальный канал аудио

Запрет обновления клиента

Это также уменьшает время регистрации. Для этого установите параметр Update в Off.

Ограничение максимального размера пакета

Как говорилось выше, максимальный размер пакета, используемый ICA в сетях TCP/IP, составляет 1460 байт. Уменьшение этого размера снижает задержки.

Параметр Значение Смысл
OutBufCountHost 118 Макс. количество пересылаемых данных от сервера клиенту, которое соединение пытается поддерживать в активном состоянии. Увеличение значения выше указанного не рекомендуется
OutBufCountClient 118 То же самое, но от клиента к серверу
OutBufLength 512 Размер пакета для wWAN. Citrix нашла это значение оптимальным

Включение SpeedScreen3 Latency Reduction

Установите следующие значения:

Параметр Значение Смысл
ZLMouseMode 1 Реакция мыши
ZLKeyboardMode 1 Эхо текста

Включение максимального сжатия данных

Параметр Значение Смысл
Compress On  
MaximumCompression On  

Включение буферизации клавиатуры и мыши

Это уменьшит количество пересылаемых малых пакетов.

Параметр Значение Смысл
MouseTimer 200 Значение можно варьировать, но слишком большая величина ухудшит интерактивный ответ
KeyboardTimer On Значение можно варьировать, но слишком большая величина ухудшит интерактивный ответ

Включение постоянного кеша

Включение постоянного кеша уменьшит время регистрации и увеличит производительность графики в сеансах ICA. Постоянный кеш поддерживается не на всех платформах. Например, он не поддерживается в Windows CE.
Для включения постоянного кеша установите параметр
PersistentCacheEnabled=On.

Установите размер кеша Thinwire 8192Кб

Это позволит более эффективно использовать ширину канала. Размер кеша Thinwire контролируется параметром WindowsCache. Максимальный размер его составляет 8192Кб. Пользователи MetaFrame FR1 и выше с клиентами версии 6.20 и выше не должны менять это значение.
Установите параметр
WindowsCache=8192

Замечания к клиентам ICA

Win32 Citrix ICA Client

Добавьте следующие значения в раздел [Wfclient] файла appsrv.ini. В клиентах Windows NT и XP этот файл находится в каталоге C:\Documents and Settings\[username]\Application
Data\ICAClient).
Серым цветом отмечен существующий текст в файле.

[WFClient]
Version=2

COMAllowed=Off
CPMAllowed=Off
VSLAllowed=Off
CDMAllowed=Off
ClientAudio=Off
UpdatesAllowed=Off

OutBufCountHost=118
OutBufCountClient=118
OutBufLength=512

PersistentCacheEnabled=On
MouseTimer=200
KeyboardTimer=50

Помимо этого, добавьте в раздел Connection” следующие параметры (например, [Microsoft Outlook]):

[Microsoft Outlook]

ZLKeyboardMode=1
ZLMouseMode=1

MaximumCompression=On
Compress=On

Кеширование изображений Nfuse

Пометьте следующие каталоги как кешируемые:

Использование заголовка HTTP “Cache-Control”

IIS 5.0 и более поздние версии могут использовать заголовок HTTP “Cache-Control”. Этот заголовок состоит из двух параметров: время пре-проверки и время пост-проверки (pre-check и post-check).

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

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

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

• Post-check = 1200
• Pre-check = 360000

Эти значения соответствуют 20 минутам и 4.2 дням соответственно. Это означает следующее:

Для установки этих значений щелкните кнопку "Add" на закладке "HTTP Headers".

Настройка Apache

Аналогичное поведение можно настроить в веб-сервере Apache версии 1.20 и выше с помощью модуля mod_expire. Необходимые директивы можно вписать как в httpd.conf, так и в .htaccess. В последнем случае необходима директива AllowOverride indexes.

Пример:

<Directory /directory/path/required>
   # if using .htaccess scope, set AllowOverride
   # AllowOverride Indexes
   # Everything else you want to add to this section
   ExpiresActive on
   ExpiresDefault "access plus 2 months"
   ExpiresByType image/gif "access plus 1 year"
   ExpiresByType text/html "modification plus 5 days"
</Directory>

Apache также поддерживает мета-тег Cache-Control. Подробнее см. http://httpd.apache.org/docs/mod/mod_headers.html.


Приложение 1

Пример template.ica для NFuse Classic

; Wireless wWAN ICA file template for the Citrix ICA Client
   ; Copyright 2000-2002 Citrix Systems, Inc. All rights reserved.
   <[NFuse_IFSESSIONFIELD sessionfield="NFUSE_LANGUAGECODE" value="ja"]>
   [Encoding]
   InputEncoding=SJIS
   <[/NFuse_IFSESSIONFIELD]>
   <[NFuse_IFSESSIONFIELD sessionfield="NFUSE_LANGUAGECODE" value="de"]>
   [Encoding]
   InputEncoding=ISO8859_1
   <[/NFuse_IFSESSIONFIELD]>
   <[NFuse_IFSESSIONFIELD sessionfield="NFUSE_LANGUAGECODE" value="en"]>
   [Encoding]
   InputEncoding=ISO8859_1
   <[/NFuse_IFSESSIONFIELD]>
   <[NFuse_IFSESSIONFIELD sessionfield="NFUSE_LANGUAGECODE" value="fr"]>
   [Encoding]
   InputEncoding=ISO8859_1
   <[/NFuse_IFSESSIONFIELD]>
   <[NFuse_IFSESSIONFIELD sessionfield="NFUSE_LANGUAGECODE" value="es"]>
   [Encoding]
   InputEncoding=ISO8859_1
   <[/NFuse_IFSESSIONFIELD]>
   <[NFuse_setSessionField NFuse_ContentType=application/x-ica]>
   [WFClient]
   Version=2
   ClientName=[NFuse_ClientName]
   ;-----------------------------------------------------------
   ;The following are recommended settings for wWAN connections
   ;-----------------------------------------------------------
   COMAllowed=Off
   CPMAllowed=Off
   VSLAllowed=Off
   CDMAllowed=Off
   ClientAudio=Off
   UpdatesAllowed=Off
   OutBufCountHost=118
   OutBufCountClient=118
   OutBufLength=512
   PersistentCacheEnabled=On
   MouseTimer=200
   KeyboardTimer=50
   ;-----------------------------------------------------------
   <[NFuse_IfSessionField sessionfield="NFuse_CSG_Enable" value="On"]>
   TransportReconnectEnabled=Off
   <[/NFuse_IfSessionField]>
   RemoveICAFile=yes
   [NFuse_SOCKSSettings]
   [ApplicationServers]
   [NFuse_AppName]=
   [[NFuse_AppName]]
   Address=[NFuse_AppServerAddress]
   InitialProgram=#[NFuse_AppName]
   LongCommandLine="[NFuse_AppCommandLine]"
   DesiredColor=[NFuse_WindowColors]
   TransportDriver=TCP/IP
   WinStationDriver=ICA 3.0
   ;-----------------------------------------------------------
   ;The following are recommended settings for wWAN connections
   ;-----------------------------------------------------------
   ZLKeyboardMode=1
   ZLMouseMode=1
   MaximumCompression=On
   Compress=On
   ;-----------------------------------------------------------
   [NFuse_ClientLogon]
   [NFuse_SOCKSSettings]
   AutologonAllowed=ON
   [NFuse_Ticket]
   [NFuse_IcaWindow]
   [NFuse_IcaEncryption]
   SessionsharingKey=[NFuse_SessionSharingKey]
   [EncRC5-0]
   DriverNameWin16=pdc0w.dll
   DriverNameWin32=pdc0n.dll
   [EncRC5-40]
   DriverNameWin16=pdc40w.dll
   DriverNameWin32=pdc40n.dll
   [EncRC5-56]
   DriverNameWin16=pdc56w.dll
   DriverNameWin32=pdc56n.dll
   [EncRC5-128]
   DriverNameWin16=pdc128w.dll
   DriverNameWin32=pdc128n.dll
   [Compress]
   DriverNameWin16=pdcompw.dll
   DriverNameWin32=pdcompn.dll
  

 


Приложение 2

Изменения в настройке сервера FR1

Обратите внимание, что ни одно из следующих изменений не требуется для MetaFrame XP FR2 или выше; эти модификации только для FR1.

Создайте новый ICA Listener:

  1. Запустите regedit и откройте ветвь реестра HKLM\System\CurrentControlSet\Terminal Server\WinStations
  2. Выберите ключ ICA-tcp
  3. Экспортируйте этот ключ в файл реестра
  4. Переименуйте ICA-tcp в ICA-tcp-wWAN.
  5. Импортируйте ранее сохраненный файл в ключ WinStations. Это воссоздаст ключ ICA-tcp
  6. Установите значение PortNumber в ключе ICA-tcp-wWAN.

Для запуска нового слушателя:

  1. Запустите Citrix Connection Configuration
  2. Запретите слушатель ICA-tcp-wWAN
  3. Разрешите слушатель ICA-tcp-wWAN

Включение таймера задержек

Итнерактивный таймер используется на сервере для обеспечения интерактивности сеанса. Таймер периодически сбрасывает буферы ожидания. При увеличении времени задержки таймера буферы будут содержать больше данных при сбросе. Это уменьшает количество маленьких пакетов.

Буферизация виртуальных каналов контролируется ключом
HKLM\System\CurrentControlSet\Control\TerminalServer\WDs\icawd

Значение типа REG_MULTI_SZ. Каждая строка представляет собой имя виртуального канала, которое следует буферизовать. Для редактирования этого значения используйте regedt32.exe. Имя канала SpeedScreen Latency Reduction равно “CTXZLC ". Завершающий пробел необходим.
После внесения изменений перезапустите слушатель.


Возврат