Understanding ICA Browsing
In many cases with Citrix MetaFrame, ICA clients need to browse for ICA services. This "browsing" functionality is handled on a completely different port number and in a different fashion than the normal ICA client-to-Citrix MetaFrame server traffic.
When you specify an IP address in the Server Location window of your ICA clients, such as when you set up an application set or a custom ICA connection to a published application, what you are actually specifying is the IP address that will be used for ICA browsing. This IP address is used in the following situations:
Servers browsingWhen you are setting up an ICA client and press the down arrow to view the list of servers in the server farm, the client sends out an ICA "browser" packet to the servers you listed in the Server Location. The first server that receives the packet will respond with a list of the servers, which will be display to the client.
Published application browsingWhen you are setting up a custom ICA connection for a published application, and you press the down arrow to view the list of applications in the farm, the client sends out a "browser" packet to all the servers you listed in the Server Location. The first server that receives the packet will respond with a list of applications that are available in the farm. This will then be displayed to the client.
Farm browsingWhen you are setting up an application set and need to browse for the farms available, you click the down arrow to view the farm names. The client then sends out a "browser" packet to all the servers in the Server Location list to retrieve the list of farms and display it to the client.
Connection setup to published applicationThis is a very important, but often unrealized function of ICA browsing. Because the actual server location might change for a particular published application or the application might be load balanced across servers, the client must first "browse" for the correct server to connect to when attempting to run a published application. In other words, when a user double-clicks a published application in her Citrix ICA client, the client will send out a "browser" packet to find the master browser (MetaFrame 1.8) or data collector (MetaFrame XP) for the farm. Once found, the client will query the master browser or data collector to determine which server to connect to for the published application the user wants to run. The master browser or data collector will respond with the address of the correct server. At this point the client will make a standard ICA port 1494 connection to the server and run the application.
Connecting to a load-balanced/managed applicationLoad balancing also is handled with the use of ICA browsing. When a client attempts to run an application that has been load balanced, it first must send out an ICA browser packet to either the master browser or data collector. Depending on the load-balancing rules that have been set up for that application, the master browser or data collector makes the decision on which load-balanced server to send the client to and returns the address of that server to the client.
This functionality is very important to understand, especially if there will be a firewall between the clients and the servers. For Citrix MetaFrame 1.8 or MetaFrame XP to work correctly across a firewall, you must open both the ICA traffic port, normally 1494, and the ICA browsing port.
Changes to Ports
Over the past year, Citrix has made significant additions to the ports that can be used for ICA client to MetaFrame server communications. These changes allow for better security and significantly improved ease of use over the Internet and through firewalls.
For those who are used to the old way of always using either port 1494 or 1604, pay close attention to the material that follows. You will find that there are now many more options for connecting to your Citrix MetaFrame servers. These new options are most readily apparent by taking a look at the latest Citrix ICA clients.
Your protocol choices have changed significantly in version 6.20 and later of the ICA client when setting up a connection to an application set. Notice that the default choice is now HTTP/HTTPS, and not TCP/IP, as it was in previous versions of the ICA client. This is a big change and is important to understand for those setting up access to Citrix MetaFrame servers across the Internet.
With HTTP/HTTPS, ICA browsing is done normally on TCP port 80 or on port 443 if you have set up SSL. Citrix is moving away from using UDP port 1604 for ICA browsing. The exact reasons for this change are covered in more detail under the "ICA Browsing the Old-Fashioned WayUDP Port 1604" section that follows; however, be especially aware of this change when planning the design of your Citrix MetaFrame Internet solution.