public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* TCP control block interdependence
@ 2006-03-03 10:33 Oumer Teyeb
  2006-03-03 13:43 ` Andi Kleen
  0 siblings, 1 reply; 3+ messages in thread
From: Oumer Teyeb @ 2006-03-03 10:33 UTC (permalink / raw)
  To: linux-kernel; +Cc: Oumer Teyeb

Hi,

I am not sure if it is the right place to post this but people at
comp.protocols.tcp-ip, comp.os.linux.networking suggested it.
Could you please cc the reply to oumer@kom.auc.dk?

as a part of my studies I have to investigate some link layer protocol 
impacts on TCP performance...so I have some emulator working on linux, 
and I was investigating the impact of delay spikes....

I results I am getting are a little bit wierd and I think it is mainly 
due to TCP control block interdependence implementation in linux....

EXPERIMENT ILLUSTRATING THE PROBLEM
=======================================

I downloaded a 100K file using FTP over a 384kbps connection...and I 
introduce a delay of 10 sec, 2 seconds after the download starts..

case 1)
I did four downloads immediatley after each other

case 2)
I did four downloads but this time, I wait ten mintues before the next 
download

results)
Case 1) I have a lot of retransmissions in the first one (because of the 
10sec gap)..but the rest dont seem to suffer from retransmission at all, 
even during the 10sec gap...the rtt values confirm it ..i,e. in the 
first case, the rtt curve shows the RTT values are mostly below 1 
sec..while in the next three downloads, the RTTs are sometimes more than 
10sec....showing that the RTO value used for the three cases is 
something different than the first one
curves can be found at :tsg=time sequence graph
http://kom.auc.dk/~oumer/case1_1_tsg.ps
http://kom.auc.dk/~oumer/case1_1_rtt.ps
http://kom.auc.dk/~oumer/case1_2_tsg.ps
http://kom.auc.dk/~oumer/case1_2_rtt.ps
http://kom.auc.dk/~oumer/case1_3_tsg.ps
http://kom.auc.dk/~oumer/case1_3_rtt.ps
http://kom.auc.dk/~oumer/case1_4_tsg.ps
http://kom.auc.dk/~oumer/case1_4_rtt.ps

Case 2) There is almost no different between the four downloads
http://kom.auc.dk/~oumer/case2_1_tsg.ps
http://kom.auc.dk/~oumer/case2_1_rtt.ps
http://kom.auc.dk/~oumer/case2_2_tsg.ps
http://kom.auc.dk/~oumer/case2_2_rtt.ps
http://kom.auc.dk/~oumer/case2_3_tsg.ps
http://kom.auc.dk/~oumer/case2_3_rtt.ps
http://kom.auc.dk/~oumer/case2_4_tsg.ps
http://kom.auc.dk/~oumer/case2_4_rtt.ps

 From these I conclude that there is some TCP congestion control and 
retransmission parameter caching, that is also time dependant....
and I want to disable it completley...

So in short do you know how to disable this control block interdepence? 
I am doing experiments related to some link layer issues, and any 
dependancy between two consecutive connections to the same host is 
seriously biasing my results..and to get statistical measures, I have to 
do the runs hundrends of times, under different conditions, so I cant 
afford to wait several minutes between consecutive runs (to make sure 
control block interdependence is not at work)...so maybe there is a way 
to trick linux tcp not to apply interdependence?

In the Linux congestion control paper by Pasi Sarlhoti, "Congestion 
Control in Linux TCP" it is mentioned that "the Linux destination cache 
provides functionality similar to the RFC 2140 that proposes Control 
Block Interdependence between the TCP connections." but there was no 
additional details...

in 
http://www.cs.helsinki.fi/research/iwtcp/kernel-patch/README-2.4.18-frto-20020419.txt
I found some text where there is a patch that will make it possible to 
control the interdependence setting..but I am using some servers at our 
university, and I dont think the admins will be willing to install 
patches that are not stable....
how stable is this patch? and have anyone been using it?
Is there another simple way like setting some default values in some 
headers and recompiling the kernel, maybe the admins will be willing to 
do that for me in some servers (I am not that familiar the linux kernel, 
and I have to admit I had never recompiled/"messed" with it...)

by the way I am using debian linux distribution and "uname -a" gives me
Linux 2.4.25-std #1 SMP Mon Mar 22 10:25:51 CET 2004 i686 unknown

Thanks in advance,
Oumer Teyeb

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: TCP control block interdependence
  2006-03-03 10:33 TCP control block interdependence Oumer Teyeb
@ 2006-03-03 13:43 ` Andi Kleen
  2006-03-03 14:30   ` Oumer Teyeb
  0 siblings, 1 reply; 3+ messages in thread
From: Andi Kleen @ 2006-03-03 13:43 UTC (permalink / raw)
  To: Oumer Teyeb; +Cc: linux-kernel

Oumer Teyeb <oumer@kom.aau.dk> writes:
 
>  From these I conclude that there is some TCP congestion control and
> retransmission parameter caching, that is also time dependant....
> and I want to disable it completley...

There is yes.
 
> So in short do you know how to disable this control block
> interdepence? 

echo 1 > /proc/sys/net/ipv4/tcp_no_metrics_save

> by the way I am using debian linux distribution and "uname -a" gives me
> Linux 2.4.25-std #1 SMP Mon Mar 22 10:25:51 CET 2004 i686 unknown

I don't know if that sysctl was already in 2.4 and it's unclear
if it makes sense to do any tests on such an old codebase anyways.
Better use a 2.6 kernel.

-Andi

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: TCP control block interdependence
  2006-03-03 13:43 ` Andi Kleen
@ 2006-03-03 14:30   ` Oumer Teyeb
  0 siblings, 0 replies; 3+ messages in thread
From: Oumer Teyeb @ 2006-03-03 14:30 UTC (permalink / raw)
  To: Andi Kleen; +Cc: linux-kernel

Thanks a lot Andi!
I checked ant the tcp_no_metrics_save is not available...
and it seems I am in luck, as the admins promised to provide me soon 
with a 2.6.12 server to play with...

Have a nice weekend,
Oumer

I checked, and on my laptop 2.4.28 kernel it is, but on 2.4.25 machines I

Andi Kleen wrote:

>Oumer Teyeb <oumer@kom.aau.dk> writes:
> 
>  
>
>> From these I conclude that there is some TCP congestion control and
>>retransmission parameter caching, that is also time dependant....
>>and I want to disable it completley...
>>    
>>
>
>There is yes.
> 
>  
>
>>So in short do you know how to disable this control block
>>interdepence? 
>>    
>>
>
>echo 1 > /proc/sys/net/ipv4/tcp_no_metrics_save
>
>  
>
>>by the way I am using debian linux distribution and "uname -a" gives me
>>Linux 2.4.25-std #1 SMP Mon Mar 22 10:25:51 CET 2004 i686 unknown
>>    
>>
>
>I don't know if that sysctl was already in 2.4 and it's unclear
>if it makes sense to do any tests on such an old codebase anyways.
>Better use a 2.6 kernel.
>
>-Andi
>  
>


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-03-03 14:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-03-03 10:33 TCP control block interdependence Oumer Teyeb
2006-03-03 13:43 ` Andi Kleen
2006-03-03 14:30   ` Oumer Teyeb

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox