How to configure Citrix Multistream ICA

Citrix Multistream ICAJust recently I was asked to advice in a situation with saturated lines on a Citrix XenApp 6.5 configuration with hundreds of different locations. With XenApp 6.5 and XenDesktop 5.5, with Receiver 3.0 (including Online Plugin 13.0), Citrix introduced support for true network based Quality of Service (QoS) to the ICA or HDX protocol so one of the options was to do QoS on the connections to the datacenters

Multistream ICA

ICA has 4 groups of ICA Channels, by using multistream ICA (multiport ICA) we can assign a TCP port for each of those four ICA Channels. By using different TCP ports we can assign priorities to the network traffic, we can use the registry to assign those channels to a separate TCP port and thus configure QoS on those ports (and channels).

Multi Stream ICA Configuration Registry key

The registry key to configure multistream ICA can be found in the following location: “HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\icawd\MultiStreamIca”.

Invalid Displayed Gallery

As you can see Streams and VirtualChannels are the two sub-keys available.


The streams contain the ICA streams and can be a secondary stream of a primary stream. There can only be one primary stream and the format is as following:

“Stream#,Stream Type;”

  • Where the stream number starts with 0 and increments by one.
  • The Stream type is either ‘S’ for Secondary or ‘P’ for primary.
Virtual Channels

Virtual Channels contains the Virtual Channel Stream Pairs. The format for this key is “VirtualChannelName,Stream number;”

  • Where VirtualChannelName is the name of the virtual channel which is predefined and can be reviewed here: CTX131001
  • Stream number is the stream number that virtual channel uses.

This is something easily misread, one of the requirements for multistream ICA (when not using a branch repeater) is that Session Reliability must be enabled. As one of the last requirements you’ll need to configure QoS on your network on the configured port so you can do bandwidth management per functionality.

Citrix Policies

So we’ve configured the virtual channels with the proper multistream number and QoS but we still have to configure the ports that can be used. We can do that with Citrix policies (in Citrix App Console/Studio or Active Directory):


The default port number can’t be changed as it’s the default CGP port but the other ports can be changed to what suits your situation. In this example we configured the ports to be from high to low like the priority and with this configuration we have a Citrix farm configured for multistream ICA, you’ll still need to configure QoS on your network.

The following two tabs change content below.

Kees Baggerman

Kees Baggerman is a Staff Solutions Architect for End User Computing at Nutanix. Kees has driven numerous Microsoft and Citrix, and RES infrastructures functional/technical designs, migrations, implementations engagements over the years.

Leave a Reply