Citrix - 2.3 ICA
To master Citrix technologies you have to understand the ICA protocol, also known as the Citrix network protocol or, later in branded form, HDX. Plugins can be added to make ICA work with applications like 3D rendering and higher-end use cases. ICA sits at the presentation layer of the OSI model, which is why for a while Citrix called the product family Presentation Server. The protocol is extremely thin: very little overhead is needed to transfer data between server and client. In its most basic form, ICA transmits screen updates from server to client and keyboard input and mouse clicks from client to server, which are then executed server-side.
This thinness is the main reason ICA became so popular. Modern usage adds requirements: printer support, scanner support, USB support, file access. As soon as you add those, the protocol becomes heavier, so understanding its internals is essential to tune it for the best possible performance per scenario.
Key characteristics of ICA
- Operates at the OSI presentation layer.
- Optimized for high latency: works well even on 9600-baud modem links of the past, and still adapts itself on modern 3G/4G connections.
- Runs over standard SSL on standard TCP ports such as port 443 to secure traffic between client and server.
- Bandwidth optimization per virtual channel: you can allocate (for example) 10% to printing, 5% to USB and the rest to screen, keyboard and mouse.
- Prioritization of packets ensures the user experience does not collapse when printing or transferring big files.
From the OSI point of view, when the client moves the mouse or types on the keyboard, the input crosses the application layer down to presentation, then session, transport, network and physical, and is reconstructed on the other side. Knowing how each layer adds to the packet helps when troubleshooting performance. In the next video we will look at the IMA protocol.