Re: about squid

From: Henrik Nordstrom <hno@dont-contact.us>
Date: Thu, 27 Feb 2003 20:05:21 +0100

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
Received on Thu Feb 27 2003 - 12:04:08 MST

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:19:18 MST