A
A
Alex Efros2011-09-05 10:41:27
linux
Alex Efros, 2011-09-05 10:41:27

Strange ~2Mbps rate limit per TCP connection on a 24Mbps ADSL2+ link?

I have a D-Link DSL-2500U/BRU/D modem running in "ADSL2+ AnnexM EU-56" mode connected as a bridge (not a router) to my Gentoo Linux workstation. The line is good, the real connection speed is about 18-20Mbps (i.e. I consistently see the real download speed of 2.09MiB/sec). Unfortunately, this speed is observed only when downloading by several streams (torrent or several wgets running in parallel, for example).
And when downloading to one stream (i.e. one wget), the average speed is only 200KiB / sec, regardless of where to download from (eg from kernel.org). When wget is started, the speed can jump to 400-500KiB, but quickly drops to 100KiB, and then slowly rises to 150-200KiB. Of course, this applies to any single TCP connection, not just wget.
I've tried wgetting from kernel.org on WinXP SP3 as well as booting from the LiveCD for OpenSUSE-11.3, Ubuntu-9.04 and Ubuntu-6.10 - just to rule out potential bugs in my Gentoo setup. It's the same everywhere - one wget is limited in speed, but I can run several wgets in parallel, and each will have ~ 200KiB / sec, and in total they can easily occupy the entire channel (if they run 10 pieces).
Initially, I sinned against the provider's shapers (Kharkov, UkrTelecom, although they denied everything), but later I found that in Win7 one wget from kernel.org downloads at a speed of 1-2MiB / sec! Next, I tried switching the modem from bridge to router, and got the same 1-2MiB/sec on a single wget in my Gentoo. So it doesn't sound like the ISP's fault.
Curiously, I have two channels at home, the second to another provider (Velton), only the maximum channel speed is 8Mbps, not 24Mbps (and the mode is “ADSL2+”, not “ADSL2+ AnnexM EU-56”). All other settings are completely identical (the modem is also in bridge mode, etc.). So, a single wget through this channel downloads at maximum speed without any problems. Modems in places (more precisely, providers) changed, nothing has changed, so it's not the modem.
This problem has been observed for several years (therefore, the versions of LiveCD mentioned above are somewhat outdated - I did tests with LiveCD about a year ago), recently I just ran into this again and remembered the problem.
I tried to play with MTU, but it did not help. eth0 leads to the first modem, pppoe bridge rises as ppp0 (this is where the strange speed limit is observed); eth1 and ppp1, respectively, the second modem / provider. On eth0 and eth1 the MTU is 1500. On ppp0 and ppp1 a year ago, the MTU was 1492. Then I noticed that under Win7 the MTU on the pppoe interface was 1480, and tried to set it to ppp0 - it didn't help. Then I experimented more, and, as I see, now, after all the experiments, I have MTU 1392 on ppp0 (that is, as much as 100 less!), But this does not help either.
I also tried to twist various sysctl settings (rmem / wmem / etc.), also to no avail.
pppd for ppp0 starts with this script:
LOGIN="[email protected]" IFACE
=eth0
PPP_STD_OPTIONS="noipdefault noauth default-asyncmap nodefaultroute \
hide-password nodetach mtu 1392 noaccomp noccp nobsdcomp \
nodeflate nopcomp novj novjccomp user $LOGIN lcp-echo-interval 20 \
lcp-echo-failure 3 unit 0"
PPPOE="/usr/sbin /pppoe -p /var/run/adsl-ukrtel.pid.pppoe \
-I $IFACE -T 80 -U -m 1412"
/sbin/ifconfig $IFACE up mtu 1500
exec chpst -P /usr/sbin/pppd pty "$PPPOE" $PPP_STD_OPTIONS
Only "lock" in /etc/ppp/options, nothing else should affect pppd/pppoe settings.
What can cause such a strange speed limit, and how can I get around it without switching the modem from the bridge to the router?

Answer the question

In order to leave comments, you need to log in

1 answer(s)
P
papersaltserver, 2011-09-05
@papersaltserver

Maybe read here ?

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question