[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to find initiating host address?



"blast"ing SYNs is actually the best way to reach 80% efficiency.
(round robin is 50% efficient for two hosts, 33% for three, and
worse for more.)

the cost to a server of the getting a SYN, sending a SYN ACK, and
then getting an RST because the initiator got an earlier SYN ACK
from some other responder is actually quite low.  this wasn't true
until the 2600 boyz taught us all about syn-flooding, but at this
point in time, the state you have to hold when you won't be the
winner in a SYN-blast is not considered in any way expensive.

getting above 80% requires something a hell of a lot stronger than
ICMP.  that last 20% is all about best window size under full pipe
conditions, not about RTT.  the state you have to keep, and share,
to make that work is just too heavy.  (been there, did that, didn't
even get a t-shirt.)

int multiconnect(int s, const struct sockaddr *salist, int numsa);

this assumes the existence of sa_len, and that there is no options
mask -- neither of which is practical if this is going to take off.
but a BSD kernel implementation of the above is only a few hours of
work, and like i said, it solves 80% of the multiple-server problem.

i guess, looked at that way, this isn't a dns issue.  but since the
message i'm replying to came from namedroppers, i'll reply that way.