Re: TCP window size


Dan,
  You are looking at this all wrong. A TCP window size is an amount of 
buufer space utilized in the TCP algorithm that "slides" down the 
transmission stream as new information arrives and is acked. It has an 
effect on the bandwidth but it does not set the bandwidth. Your script is 
calculating the bandwidth delay product, not the "TCP window size 
variation", since the TCP window size does not change during transmission 
(unless you have auto-tuning like in the new linux kernels which you are 
bypassing when you set the TCP window size in Iperf, or Web100 
functionalities or if you are running newer Windows OSes). The bandwidth 
delay product is directly related to bandwidth not (directly) to the TCP 
window size. By what you are saying I would say that I could set my TCP 
window size to 1GB with a connection that has 10ms delay and expect to get 
1TB/s throughput. This is hardly the case. Also the TCP window size is 
only one aspect of the TCP algorithm. Another key aspect is the congestion 
window size that TCP calculates as a stream is running. This also is 
updated on a per packet basis, thus resulting in the differences you see 
with different packet sizes. I would highly suggest reading some RFCs or 
books on TCP algorithms before continuing this work you are doing with 
Iperf.

Kevin

On Thu, 18 Sep 2003, Dan S wrote:

> Dear All,
>  
> I am using Iperf V 1.7.0 on Redhat Linux 9. I have set up one TCP 
> connection with a specified received TCP window size. I captured the 
> received sequence of packet using ethereal and use some scripts to 
> calculate the approx. TCP window size variation for the duration of an 
> experiment. What the script does is to calculate the amount of data 
> transmitting during the roundtrip delay which should represent the 
> outstanding data in the link from the time the packet was sent until the 
> time of ack. arrival. However, the approx. TCP window size never reaches 
> the TCP window size value I have specified in Iperf. Even the specified 
> TCP window size value is very small (such as 5 kbytes with the packet 
> size of 648 bytes), it will never reach that value. Also when the packet 
> size is changed, the larger packet size always reach higher TCP window 
> size. I don't understand why this is the case since we specified the TCP 
> window size in the unit of Kbytes not packet.
>  
> Please let me know if you have any idea about this issue.
>  
> Thanks,
>  
> Dan  



Other Mailing lists | Author Index | Date Index | Subject Index | Thread Index