How to Quicken TCP Re-transmission?

mag at intron.ac mag at intron.ac
Mon May 22 16:12:00 UTC 2006


Joshua Blanton wrote:

> mag at intron.ac wrote:
>>     Actually, I want to configure APACHE to distribute files (several
>> mega bytes large each) to any Internet visitor.
>> 
>>     My server (host A) is served by a non-profitable Internet operator
>> in China. But most of Chinese Internet users (host B) are served by two
>> commercial Internet operators.
>>     Between the non-profitable Internet operator and each commercial
>> Internet operator there is an about 2 Gbps interconnection. But China
>> has a large population, and those interconnections are heavily loaded.
> 
> Unfortunately, if your loss is caused by congestion, there really
> isn't anything you can do (ethically) to make it run faster.  Any
> changes that you would make to your TCP stack would result in
> reducing usable bandwidth for every other user of the network.  It
> really isn't fair to make any changes at all...

     You are quite right. It would be unfair.

> 
>>     I obtained the result "packet loss 30% and return delay 60 ms"
>> just by "ping -c 100 -s 1472 xxx.xxx.xxx.xxx". If an IP packet is
>> smaller as 20+64=84 bytes (PING's default), it will has much higher
>> possibility to pass the interconnections between Internet operators.
> 
> Now, it is possible that your loss isn't really 30% - if these links
> are as overloaded as you say, I'm sure ICMP Echo packets are dropped
> with much more frequency than other packets, to help reduce
> congestion.

     Your judgement should be right.

> 
>>     It seems that FreeBSD 6.1 kernel enables SACK (RFC 2018) by default
>> (net.inet.tcp.sack.enable: 1). And I keep it untouched.
>> 
>>     Since I want configure general WWW service, probably I could not
>> request visitors to configure SCPS. It is really robust against lossy
>> data link such as communication between satellites and planets.
>> But above all, most of Internet users haven't enough computer skills.
>> 
>>     I would like to understand how FreeBSD runs the TCP re-transmission
>> timer, especially its dynamic self-tuning mechanism. I am trying to
>> read /usr/src/sys/netinet/tcp* .
>>     Should I really modify the value of "TCPTV_REXMTMAX" defined in
>> "/usr/src/sys/netinet/tcp_timer.h" ?
> 
> I think perhaps the only solution is to learn to live with the slow
> upload times, or find a provider that can guarantee better service.
> 
> --jtb

     In China, it is the only solution to set up multi mirrors served by
multi operators. But I'm so poor.
------------------------------------------------------------------------
                                                From Beijing, China






More information about the freebsd-net mailing list