httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dean Gaudet <>
Subject Re: sequence numbers
Date Fri, 15 Aug 1997 21:45:56 GMT
As I mentioned in my post the scheme I used can easily be changed to an
entirely different sequence numbering scheme later.  Provided the later
technique also puts a time_t as the first four bytes.  *and* that you take
down your entire site for at least one second while switching schemes. 

So, when someone does this hypothetical IPv6 Apache they can happily
update the sequence number code to use an enormous 160-bit sequence
number. (Er, I goofed in my previous post, my scheme is only 96-bits.)

Look at the sequence number generating snippet.  It only hits the time
field when it has rolled over the counter.  Otherwise you're sitting there
calling time() on every hit, and not really gaining anything from it.  The
counter field is 16-bits wide, which is way more than necessary for a
single child.  There's no need for milliseconds. 

Each child has its own counter ... 16-bits are wasted just to store the
child num (or pid, pid is actually better).

One of my goals was no communication between children or servers -- so 48
bits of the scheme are used just to distinguish a child on one machine
from all other children.  The remaining 48-bits are to ensure that that
child "never" uses the same number twice. 

Here are the limits I know of with my scheme: 

32-bit time_t, has problems when unix clocks have problems with rollover

32-bit ip addr.  IPv4 is what we support right now. 

16-bit pid, has problems on boxes with > 16-bit pid_t (are there any yet?) 

16-bit counter, causes problems if a single child serves >64k requests in
    one second


P.S. I'm not a fan of IPv6.  I don't think it solves the problems people
think it solves.  In particular it does *not* solve the problem of having
global routing tables with 50k routes in them.  It exacerbates that
problem.  And there's no immediate need for ip address space.  There are
still ISPs wasting entire /24 prefixes on ISDN customers with two machines
in their house.  I'm not alone with these opinions ... and I doubt we'll
see IPv6 replacing IPv4 for another five years. 

On Fri, 15 Aug 1997, Philip A. Prindeville wrote:

> 	+1 on the concept, sure.  But.. how about allowing for a) more than
> 	64K requests, and b) IPv6 addresses.
> 	#ken    :-)}
> Yeah, my concerns as well.
> You might want to add an 8 bit tag that specifies what sort of address
> follows.  As for the time, you might want to add a millisecond counter.
> Assuming that pure AAL4 with E.164 addressing could be a connection-
> type, then you are looking at 64bit addresses (with 60 significant
> bits).  And IPv6 is worse (or "better", depending on how you look at it),
> with 128 bit addresses.
> -Philip

View raw message