Laurence wrote:
T/TCP is an extension for standard TCP to improve performance. I've established "T/TCP
for Linux" at http://sourceforge.net/projects/ttcplinux. Besides, our website at
http://ttcplinux.sourceforge.net is ready. You can click the "Overview" tab on the left
side to see a succinct description about T/TCP. But let me talk about it here first.
In one scenario, say, "Transaction", will you see most performance improvement. The
so-called "transaction" means the client connects to the server by TCP to send one packet of
request and expects one packet of response. Then, the client closes the connection. But within seconds, the
client has to send another packet of request to the same server and expects another packet of response. In
one word, the connection between one client and one server is short in time but quite frequent. Using
standard TCP, the brief connection requires at least 8 packets of exchange. Using T/TCP, it can be reduced to
3. The whole time is reduced by nearly half. Besides, in standard TCP, after actively closing the connection,
the client is in "TIME_WAIT" state usually for 240 seconds. During this period, the socket
(client.port, client.ip, server.port, server.ip) can't be used. Therefore, to start another connection
immediately, the client must change its port. But, there are limited ports (say
,!
65535) available, which means you can start at most 65535 connections in 240
seconds. It's a serious limitation. In T/TCP, by introducing special mechanism,
the TIME_WAIT period is reduced to 12 seconds. You can easily calculate the
gain.
You can make your socket re-usable, which fixes the 240 seconds issue. The
short, bursty transaction savings sounds useful...but it also sounds like
most programs that need it could be optimized to keep up a continious
connection!
When the client or the server needs to send multiple packets of data
(request or response), T/TCP causes the side to send multiple packets
continously, instead of sending each one and waiting for the acknowledgement
before going on, as in standard TCP. Performance gain is also obvious.
TCP's sliding window already allows this, since like 1980 or so :)
I'll try to find time to read some more details from your page soon...
Thanks,
Ben
On http://souceforge.net/projects/ttcplinux, there are patch for 2.0.32
and 2.2.14 finished by two other people in 1997 and 1999 respectively. You may
need quite a lot of tests.
I'm writing the patch for 2.4.2, which can be easily transplanted to
2.4.x in the future. I haven't finished the basic version and therefore haven't
uploaded the codes into CVS. But if anyone is interested, I can send them by
email.
--Laudney
--
Ben Greear <greearb@xxxxxxxxxxxxxxx> <Ben_Greear AT excite.com>
President of Candela Technologies Inc http://www.candelatech.com
ScryMUD: http://scry.wanfear.com http://scry.wanfear.com/~greear
|