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