When Squid sends an ICP/HTCP query to one or more neighbors, it waits some amount of time for the replies to arrive. Because the messages are unreliable UDP datagrams, the queries and/or replies may never arrive. Squid automatically figures out how long to wait for ICP/HTCP replies. For a particular query, the timeout is twice the mean of how long it took for recent replies to arrive. In other words, Squid averages the query RTT values from previous requests, doubles it, and waits that amount of time. This algorithm works best when all your neighbors have about the same RTT, and when network conditions are consistent.
You can override this algorithm with the icp_query_timeout directive. Instead of dynamically calculating the timeout, Squid waits a fixed amount of time for every ICP/HTCP query.
icp_port, htcp_port, maximum_icp_query_timeout, mcast_icp_query_timeout, dead_peer_timeout