I've D-Link DSL-2500U/BRU/D, ADSL mode is "ADSL2+ AnnexM EU-56", configured as bridge and connected to linux (Gentoo) workstation. Line is good enough, I've stable speed 2.09MiB/sec (i.e. about 18-20Mbps)... but I can see this speed only while downloading torrents or when downloading something using multiple connections (like running several wget processes in parallel).

Single wget process download at only 200KiB/sec in average from anywhere (like kernel.org or other servers I've tried). When wget started it may begin downloading at up to 400-500Kib, but quickly lower speed to about 100Kib, and then slowly increase it to 150-200Kib. Of course, this issue apply to any single tcp connection, not only to wget.

I've tried same wget to kernel.org in WinXP SP3, and LiveCDs of OpenSUSE-11.3, Ubuntu-9.04 and Ubuntu-6.10 - just to exclude possibility of wrong configuration of my Gentoo workstation. In all these OS I see same issue - single wget unable to download faster than 200KiB/sec, but I can run several wget's at that speed simultaneously, so it's not limitation of ADSL line.

Initially I think this issue is because of some ISP's shaper, but later I discover WinSeven able to wget from kernel.org at 1-2MiB/sec! Also, I've tried to switch modem from bridge to router mode, and got 1-2MiB/sec in single wget in my Gentoo, so this issue probably has nothing with ISP.

The MTU is set to 1500 on eth0 and 1492 on ppp0. I notice WinSeven use MTU 1480 on pppoe interface, and tried same value on linux - that doesn't helps. Also I've tried to play with different tcp optimizations using sysctl (rmem/wmem/etc.) - also without any success.

Any ideas how to fix this without switching modem from bridge to router?

  • Now, 2 years later, looks like this issue was fixed. I'm using Gentoo and update it every few days, so it's hard to know upgrade of which package have fixed this issue (maybe kernel?). – Powerman Oct 15 '12 at 21:50

Could be an MTU issue on the PPPoE client.

The manpage of pppoe suggests usign the -m option to clamp the TCP segment size to 1412:

-m MSS

Causes pppoe to clamp the TCP maximum segment size at the specified value. Because of PPPoE overhead,
the maximum segment size for PPPoE is smaller than for normal Ethernet encapsulation. This could cause
problems for machines on a LAN behind a gateway using PPPoE. If you have a LAN behind a gateway, and the
gateway connects to the Internet using PPPoE, you are strongly recommended to use a -m 1412 option. This
avoids having to set the MTU on all the hosts on the LAN.
  • Yeah, this option already used. Here is how it executed (using runsv/daemontool as service supervisor): PPP_STD_OPTIONS="noipdefault noauth default-asyncmap nodefaultroute hide-password nodetach mtu 1480 mru 1480 noaccomp noccp nobsdcomp nodeflate nopcomp novj novjccomp user $LOGIN lcp-echo-interval 20 lcp-echo-failure 3 unit 1" 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 – Powerman Aug 2 '10 at 9:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.