We mainly use UDP for tracker announces, and only use TCP when we have
to, and can confirm that the server spends far more time on the TCP
setup/teardown than on computing the tracker response.
- LP
On Jul 29, 2008, at 12:21 PM, Mikael Abrahamsson wrote:
On Tue, 29 Jul 2008, Steven M. Bellovin wrote:
In this situation, UDP uses one query packet and one reply. TCP
uses 3
to set up the connection, a query, a reply, and three to tear down
the
connection. *Plus* the name server will have to keep state for
every client, plus TIMEWAIT state, etc. (Exercise left to TCP geek
readers: how few packets can you do this in? For example -- send the
query with the SYN+ACK, send client FIN with the query, send server
FIN
with the answer? Bonus points for not leaving the server's side in
TIMEWAIT. Exercise for implementers: how sane can your stack be if
you're going to support that?)
The bittorrent tracker guys seem to run into problems at around 30kk
tracker requests per second (TCP), and they say it's mostly setup/
teardown (sy usage in vmstat), the tracker hash lookup doesn't take
that much.
They're trying to move to UDP, currently their workload is approx 5%
UDP.
I guess TCP DNS workload would be similar in characteristics.
--
Mikael Abrahamsson email: [EMAIL PROTECTED]