Part 2: Working with Citrix XenApp 6.5 – ICA Protocol And OSI Model
Before we jump into the installation of XenApp, I wanted to touch base a bit more on the ICA protocol because I feel that it is important to understand a bit about the architecture.
As mentioned in the previous post, the ICA protocol operates at the presentation layer of the OSI model, that is, the 6th layer. The OSI model is made up of 7 different layers, with each layer having a specific function. Before we go into each of those functions, I’d like to explain what the OSI model is and why it’s important to understand it.
The OSI model or Open Systems Interconnection was created for standardizing the communication between two systems. For example, how should two systems communicate with each other? the OSI model provides this standard. As stated earlier, the OSI model is broken down into sections that are responsible for a specific function. Starting with Layer 1 (physical layer) responsible for the physical connectivity of the wire, for example, voltages, signals, pins, binary transmission, and so on.
In the case of the ICA protocol, the 6th layer or the presentation layer is responsible for making sure the data can be presented to the application layer, in other words, the presentation layer prepares/formats the data making it ready to be passed up to the application layer.
Now that we have some understanding of what the OSI model is and at what layer of the OSI model the ICA protocol operates at, let’s look a little deeper into the ICA protocol architecture.
The ICA protocol is a very thin protocol that is optimized for Wide Area Networks or WANs with high latency links. It also supports Quality-Of-Service (QoS) and other bandwidth optimization features. The ICA packet is made up of the following
- Frame Head – Stream Oriented Transport data
- Reliable – Detection of errors and recovery
- Encryption – Managed data within encryption
- Compression – indicator of compression
- Command (required) – Starting point of the ICA protocol
- Command Data – Data bytes
- Frame Trailer – Asynchronous Transport Protocol Data
ICA Virtual Channels:
Within the ICA stream exist virtual channels, these virtual channels are for functions such as printing, audio, keyboard, mouse, video, drive mapping and so on between the client and the XenApp server. There is a maximum of 32 channels that are available on each ICA stream.
Each of the virtual channels above for both client and server would communicate with each other over the correct virtual channel. For example, the client Graphics channel would communicate with the Graphics channel of the server within the ICA stream.
It is important to understand the OSI model and the ICA architecture so that we can correctly implement a XenApp infrastructure. We can also use the OSI model to troubleshoot any network related issues that one might encounter.
Now that we’ve covered the ICA protocol in more detail, in part 3 of this series, we’ll cover the License Server and XenApp server installation.