Pantek Library
Hosting Provided By
CybrHost
High Speed Hosting

Re: [e2e] query reg improving TCP performane

From: query <query.cdac(at)gmail.com>
Date: Fri Jul 06 2007 - 02:32:54 EDT


Thanks a lot Andrew . It helped me to understand and I feel that my Tunings are O.K.

> I was doing some Bandwidth measurement test on a 100 mbs link with a RTT
> > of about 70ms.
> > Based on that, I calculated the BDP as follows.
> >
> > BDP = Bandwidth * RTT
> > = 921600 bytes
> > I did the following adjustments. I increased the above calculated BDP
> by
> > nearly
> > half of the value . The TCP settings now look like this.
> >
> > /proc/sys/net/core/rmem_max 175636
> > /proc/sys/net/core/wmem_max 175636
> > /proc/sys/net/ipv4/tcp_rmem 4096 87380
> > 175636
> > /proc/sys/net/ipv4/tcp_wmem 4096 87380
> > 175636
> >
> > After these settings , I find the link utilisation to be nearly 95
> mbs.
> >
> > According to many papers that I read , I found that the BDP should
> be
> > equal
> > to the product of Bandwidth * RTT .

>

> The papers probably said that *router* buffers need to equal the
> bandwidth*RTT. You are adjusting the sender/receiver buffers. These
> need to be significantly larger, as you have found.
                      The papers or rather articles are talking of sender
and receiver

   buffers . Here is one such link where I find it.    http://www.psc.edu/networking/projects/tcptune/ .

In order to allow retransmissions, the sender buffer needs to be able
> to store all "packets in flight", which include both those in the in
> the router buffers and those "on the wire" (that is, in the nominal
> RTT of the link).

>

> In order to be able to provide in-order delivery, the receiver buffer
> needs to be able to hold even more packets. If a packet is lost, it
> will receive an entire RTT (plus router buffer) worth of data before
> the first retransmission of that packet will arrive. If the first
> retransmission is also lost, then it will need to store yet another
> RTT worth of data.
>

> The general rule-of-thumb for Reno is that the send buffer should be
> at least twice the bandwidth*RTT. For BIC is is probably reduced to
> about 120% of the BDP (because it reduces its window by a smaller
> factor when there is a loss). The receive buffer should still be at
> least equal to the BDP plus the router buffer.

   What I understand from your reply, is that It is not necessary that TCP Window should be

   equal to BDP in all cases . Had the router buffer size is equal to BDP , then I think I

   should equal link utilisation equal to the capacity of the link .    Since , In Internet it will not be possible to know the router buffer size , so the best thing one

   can do , is to make the TCP window size twice to BDP as you have suggested.

Do you need help?X

  I am finding another problem. The UDP transmission rate on that link is decreased. I changed
  to the default settings , but it is showing the exact readings after tuning. It seems it is reading some fixed value from something and based on that it is transferring data .

The readings are like this..........

iperf -u -c 192.168.60.62 -t 300 -l 1460 -i 2



Client connecting to 192.168.60.62, UDP port 5001 Sending 1460 byte datagrams
UDP buffer size: 108 KByte (default)
[  3] local 10.128.0.2 port 32785 connected with 192.168.60.62 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3] -0.0- 2.0 sec   257 KBytes  1.05 Mbits/sec
[  3]  2.0- 4.0 sec   257 KBytes  1.05 Mbits/sec
[  3]  4.0- 6.0 sec   255 KBytes  1.05 Mbits/sec
[  3]  6.0- 8.0 sec   257 KBytes  1.05 Mbits/sec
[  3]  8.0-10.0 sec   255 KBytes  1.05 Mbits/sec
[  3] 10.0-12.0 sec   257 KBytes  1.05 Mbits/sec
[  3] 12.0-14.0 sec   255 KBytes  1.05 Mbits/sec
[  3] 14.0-16.0 sec   257 KBytes  1.05 Mbits/sec
[  3] 16.0-18.0 sec   257 KBytes  1.05 Mbits/sec

   The result is for the following tuning.    net.core.rmem_default = 110592
   net.core.wmem_default = 110592

 After that I changed the tuning to

            net.core.rmem_default = 196608
            net.core.wmem_default = 196608

   The readings for the tuning is like this... iperf -u -c 192.168.60.62 -t 300 -l 1460 -i 2



Client connecting to 192.168.60.62, UDP port 5001 Sending 1460 byte datagrams
UDP buffer size: 192 KByte (default)
[  3] local 10.128.0.2 port 32785 connected with 192.168.60.62 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3] -0.0- 2.0 sec   257 KBytes  1.05 Mbits/sec
[  3]  2.0- 4.0 sec   257 KBytes  1.05 Mbits/sec
[  3]  4.0- 6.0 sec   255 KBytes  1.05 Mbits/sec
[  3]  6.0- 8.0 sec   257 KBytes  1.05 Mbits/sec
[  3]  8.0-10.0 sec   255 KBytes  1.05 Mbits/sec
[  3] 10.0-12.0 sec   257 KBytes  1.05 Mbits/sec
[  3] 12.0-14.0 sec   255 KBytes  1.05 Mbits/sec

 Kindly please help me to rectify the problem. It is the same link on which I
 performed the TCp test.

  regards
  zaman

Do you need more help?X

>
>

I hope this help,
> Lachlan

>

> --
> Lachlan Andrew Dept of Computer Science, Caltech
> 1200 E California Blvd, Mail Code 256-80, Pasadena CA 91125, USA
> Phone: +1 (626) 395-8820 Fax: +1 (626) 568-3603
> Received on Fri Jul 6 19:03:38 2007

This archive was generated by hypermail 2.1.8 : Mon Jul 09 2007 - 08:35:36 EDT


Contact Us  Legal Notices  Order Services Online 
Pantek Home  Privacy Policy  IT news  Site Map  Pantek Library