On Thursday 27 February 2003 14.50, atit_ldce wrote: > i want explanation about following: > > icpUdpSendQueue functionality
When the kernel reports that ICP socket is ready to send more ICP packets the function sends queued ICP messages out on the socket in FIFO order. > what is purpose of delay varible in icpHandleIcpV2 What delay variable? Mine does not have any such variable. > what is difference beteween ICPv3 and ICPv2 ICPv3 does not support the message identity field. And some of the opcodes differs. Also, only ICPv2 is documented in an RFC. Squid uses ICPv2, but accepts queries using ICPv2 or ICPv3. > explain field of struct statCounter.icp Each of these counters have a name which explains pretty well what they are counting. > what storeUnlockObject and storeLockObject do? Locks and unlocks objects (StoreEntry) in the store. A locked object is guaranteed to remain until unlocked, making sure that any pointers to it's StoreEntry is valid. > _request_flags->unsigned int loopdetect:1 This flag is set true when Squid detects that the same Squid has already processed the request once. See clientInterpretRequestHeaders for how this is detected (uses the Via header). When this is detected Squid takes certain actions to try to break the request loop. > what peerCheckNetdbDirect do? Checks if according to the netdb statistics the request should be sent directly. > explain how peerIcpParentMiss works This is called when an ICP_MISS message is received from a parent cache server. - updates the netdb database with roundtriptime statistics from the parent if enabled, and at the same time (also netdb dependent) remembers which of the parents who have respondes claims to be closest to the origin, to be used later in peerSelectFoo(). - keeps track of which parent responded first by saving this information into the ps_state, to be used later in peerSelectFoo(). > struct pind_data (what is w_rtt and p_rtt for?) I think you mean ping_data.. This structure is keeps some basic statistics about the ICP pinging, originally kept within the ps_state as ps_state->ping while the ICP pinging process is collecting ICP responses, but copied into the request->hier.ping for access logging purposes. (controls the TIMEDOUT_... cache.log tags) w_rtt keeps track of the smallest ICP roundtrip time between this Squid and it's peers for this request. p_rtt keeps track of the smallest reported roundtriptime between the peers and the origin servers. Requires the peers to be compiled with netdb support (icmp pinging). > if i am connecting to some ftp site using thrid party tool such as > ftp utility come with o/s. does squid come in picture? not at all. > if no how to pass request through squid so that we can have squid > advantage available? You can't. Squid is a HTTP proxy and does not understand FTP requests. In theory you could write a FTP proxy within Squid, but this requires quite a bit of coding, and most likely also requires large parts of Squid to be restructured to fit the quite different semantics of FTP. Better to run the FTP proxy separately. There is many to select from. Regards Henrik
