The Digital Agency for International Development

Simulating low bandwidth: Publishers for Development

By Chris Wilson on 08 June 2010

We think that academic publishing is an area that's both critically important to development, and simultaneously becoming more and more inaccessible to the people who need it most.

The average size of web pages has been growing much faster than the average speed of connections in developing countries, and journal websites are no exception, as you can see in Alan's blog post:

Average page size has grown much faster than available bandwidth

As Alan points out, the average journal's home page in his sample would take over 90 seconds to load on average, for researchers at universities in developing countries. Usability research has shown that people expect a computer to respond within 30 seconds. Making them wait longer interrupts their concentration, causes dissatisfaction and annoyance, and they often abandon the process. The biggest factor in user satisfaction is speed of response.

While this research probably did not include users who are accustomed to slow and unreliable computers, I think it's safe to say that most people would find it annoying and difficult to use the Internet on a dial-up modem. And even a modem would have been preferable to some of the Internet connections that I've experienced (and paid for) in some countries in the last few years.

Academics have little ability to persuade their universities to upgrade their internet connections, at a cost of several peoples' salaries (several thousand dollars a month). The only people who can change this are the publishers of the journals, by optimising their journals' websites for users with slower connections.

But how to persuade the publishers that this is important? We built a low bandwidth simulator ourselves, and took it to Oxford, to INASP and the ACU's Publishers for Development conference.

What We Did

We set up spare machine as a bandwidth management box, and used it as a network filter for the participants. They could come and plug their laptops into the box, and browse the Internet and their own websites at a simulated slow speed.

Table with server, router and laptops with exercise cards stuck on top

We configured the box for transparent bridging. This allowed us to insert and remove it from the network easily, just by switching over a network cable, to demonstrate the difference between fast and slow loading of pages.

We gave the participants at the meeting tasks to perform on various publishers' websites, for example finding and downloading an academic paper by topic or researcher.

Participants watching and using the throttled laptops

I think they found the activities enlightening, because we had some very good comments from some of the participants:

  • "We're so pleased that Alan was able to work his magic at the recent PfD session - his delivery is innovative, dynamic and fact-packed so it really sparks enthusiasm from the audience... [which] is demonstrably channelled into action once people return to their places of work."
    Publishers for Development Team
  • "It was really useful to try the low bandwidth! [Our site] is already considered fast but it made us think even more around this issue, what else can we do etc."
    Anonymous Participant
  • "Alan Jackson's information about bandwidth was kind of shocking even if I knew it before, but to really experience it was very valuable. We are going to redesign DOAJ's home page and this must be the starting point."
    Sonja Brage, DOAJ
  • "Site speed is a major consideration for us, and I really enjoyed Alan/Aptivate's session, experiencing the exasperation of trying (and failing) to connect via low-bandwidth... I have a feeling that there is 'excess baggage' on a number of the pages..."
    James Kitchen, OECD

How We Did It

We used FreeBSD as the operating system for the software bridge, because its dummynet traffic shaper is relatively easy to use, and very good at simulating slow connections.

We wanted to use a laptop instead of a desktop machine, so that we could carry it to the conference easily, but we had hardware compatibility issues with FreeBSD on all the laptops we had available to us (mostly IBM Thinkpads). We ended up using a compact Fujitsu desktop box.

We installed FreeBSD 8 on it, and configured it to transparently bridge between two interfaces. Our internet access at the conference would be wireless, but we had issues with bridging wired and wireless interfaces together. So instead we used a Linksys WRT-54GL router with the Tomato firmware, which enables wireless client mode, to connect to the network:

WRT-54GL connected to FreeBSD throttler connected to network switch connected to client laptops

And this is what it looked like in the room. Notice the essential coffee and cupcake, without which the system mysteriously failed to work:

FreeBSD server, wireless router and a laptop

We configured the FreeBSD box to bring up the bridge automatically at boot time, and to load a set of ipfw firewall rules to enable dummynet, the traffic shaper. On this box, the ethernet interfaces are called em0 and rl0, so we added the following lines to /etc/rc.conf:

ifconfig_bridge0="addm em0 addm rl0 up dhcp"

firewall_enable="YES" firewall_type="/etc/ipfw.rules" dummynet_enable="YES"

Then we created /etc/ipfw.rules with the following contents:

# with bridge mode, two nics. em0 is wan
add pipe 1 all from any to any out recv em0
add pipe 2 all from any to any out xmit em0
add allow all from any to any
pipe 1 config delay 700ms bw 40Kbit/s mask dst-ip 0x000000ff
pipe 2 config delay 700ms bw 40Kbit/s mask src-ip 0x000000ff

This configuration creates two dummynet pipes. Pipe 1 is for traffic received on the external interface (downloads), and pipe 2 is for traffic being sent out of the external interface (uploads). We have to follow this by a rule which allows all other traffic, otherwise local traffic (on the box itself) is denied by default when the firewall is enabled, which breaks local DNS and inbound SSH and makes the box pretty unusable on the console.

Then we configure both pipes to allocate 40 Kbps (kilobits per second) for each individual IP address in the private subnet (allocated by the DHCP server on the Tomato router) and a 700 ms delay in each direction, which gives a 1400 ms round trip time. This is somewhat higher than the expected 600 ms round trip for a connection by geostationary satellite.

The end result is that each user connects a laptop to the switch behind the box, gets an IP address from the DHCP server on the router, is NATted by the router onto the public network, and is able to browse the Internet with a connection of 40 kbps upload and download. If you remove the FreeBSD box, by connecting the switch directly to the router, you can access the public network at full speed.

One issue was that the public network used a captive portal, which we had to log into. We didn't want each client on our network to have to log in separately, so we enabled NAT on the router, and in wireless client mode, all the NATted clients get the MAC address of the router, so the public network thinks that they're all the same PC and doesn't ask them to log in again.

Why We Did it

We think that members of universities and research institutions need to be able to join and participate in the global research community as equals, in order to play their part in assisting development in their home countries.

Programmes such as PERii, HINARI and AGORA negotiate free or discounted online access to these journals for universities in developing countries. But the users still need to get online and access the content.

Online publishing for Western markets is usually designed for users with fast Internet connections, which Western universities have. But in other regions, universities often can't afford fast connections, and this makes it very difficult for them to access these journals online.

Publishers for Development is bringing international publishers together who are interested in finding out how they might contribute to discourse and action around developing country access, encourage publication from developing country researchers and understand the diversity within research cultures/communities and the challenges these present.

June 17, 2010, 7:26 a.m. - Martin Belcher

Great post and neatly summarises the impact this session had on publishers and providers of content. It would be great to see this session run in environments where other big information providers that target people in developing countries / on slow bandwidth were present. For example; development agencies, NGOs, foundations, WB, universities, etc. Many people don't know about these issues (surprising but true) and even those that do, don't often really appreciate what they mean in practice (or maybe they just ignore it as its too difficult to deal with?). Question: where would be a good venue to run something similar that targets all these key groups in one sitting?

June 17, 2010, 1:29 p.m. - Tweets that mention Simulating low bandwidth: P...

[...] This post was mentioned on Twitter by Blog Tips, Aptivate and Mark Skipper, Tariq Khokhar. Tariq Khokhar said: Nice post by @aptivateuk -working with academic publishers to demonstrate impact of low bandwidths on journal use: [...]

June 25, 2010, 1 p.m. - Anne Powell

I have also found Alan's top 10 tips for designing pages for low bandwidth helpful. They are at

Dec. 6, 2010, 10:41 a.m. - Slow website speed and consequences for search ...

[...] 100kb of java script to load. But 100 kb should be the limit for a real lightweight fast website. Aptivate has a good blog about it,  with a graph showing that the average page size of websites is growing much higher than the [...]

May 27, 2011, 10:47 a.m. - The Global Research Effort | Publishers for Dev...

[...] [...]

June 15, 2011, 9:33 a.m. - PfD Discussion Topics | Publishers for Development

[...] the developing world. The issue of Internet connection speed permeates almost all the work they do. UncategorizedPermalink Productive Partnerships [...]

Aug. 5, 2011, 11:01 a.m. - Traffic shaping with PF, ALTQ and HFSC « ...

[...] can be used to create arbitrary delays and packet loss, which is very useful for simulating poor connections, but not for sharing bandwidth and prioritising packets between different traffic classes on a real [...]

April 16, 2012, 11:39 a.m. - Simulating low bandwidth | Publishers for Devel...

[...] was originally posted on the Aptivate blog and is contributed by Alan [...]