Working from home over the past few months has really reminded me about how much we take the internet for granted. Some readers may have wondered why I decided to work on the Techway Endeavour II computer – well, I actually had a project in mind from before this COVID-19 epidemic.
The internet has become a vital part of our everyday lives, but the way we experience it now through broadband high-speed connections is not the way it was in my childhood. Back in the late 90’s to early 2000’s, I was dialling up from my Pentium 133MHz non-MMX machine equipped with 48MB of RAM running Windows 98SE (and later, Windows 2000 Professional). This experience was in itself, reflective of the fact that “always on” internet was not considered a necessity or normality – back then, “ttyt” short for “talk to you tomorrow” was a thing.
I decided to try and recapture the dialup experience in 2020 by “being my own ISP” and dialling up to my own dial-up server at home, using the salvaged vintage computer, capturing it for all to see in this 23 minute video that runs in real-time (save for a few cuts). The narration on this video was unscripted, so it jumps a bit from place to place and is a bit rushed, but it was done in one take. I hope you enjoy!
How Things Have Changed
Since the late 1990’s and early 2000’s, the internet has changed dramatically. The slow evolution is one that is easy to miss – originally, the internet was mostly filled with text and occasional small images. Layouts were very simplistic, using the most basic of HTML tags without so much as styles or custom fonts. Music was MIDI at best, at least, until the advent of Macromedia (later Adobe) Flash. Pages would be a hundred or so kilobytes to load, or such were the guidelines, as modem users would usually top out at 5kB/s on a good link, with an MTU of 576 being very common. Loading pages was a game of patience, as images were often “interlaced” so as to load up in a fuzzy manner, gradually clearing up over several passes.
Real-time interactivity was very limited – text chat was the order of the day with ICQ, mIRC, MSN Messenger, AIM to name a few. At that time, the idea of HTTPS connections using SSL was only just starting to take hold for applications such as online banking. As a result, most of these chat messages were sent and received in the clear.
In terms of browsers, Netscape was king only to be later dethroned by Internet Explorer. Downloads would take a long time – an MP3 song could easily take 16 minutes to download. Many things could be downloaded directly through the browser, but download managers were much more advisable, since lines could disconnect at any time (especially with call waiting signals or the unintentional picking up of the phone) and losing your progress really sucked. They also offered the possibility of pausing and resuming downloads. Real-time multimedia streaming was still in its infancy – RealNetworks RealPlayer used to be the dominant player in this market, offering rather blotchy, low frame-rate video with harsh-sounding audio that adapted to the speed of your connection. Windows Media was a distant second.
It was the era of the dot-com boom, thus there was a lot of stuff going on. Email spam was quite a popular thing, along with stupid “chain e-mails” that say “forward this to x people to get good luck” or something ridiculous like that. Worst of all was the influx of pop-up advertising into a world which was originally pure and untainted with such commercial interests. Pop-ups (and coincidentally, pop-unders) were very much a distracting way of advertising which has in more recent years fallen by the wayside, thanks to the popularity of pop-up blockers which eventually became integrated into the browser itself.
It’s also worth remembering just how “dirty” the internet was as well – Internet Explorer (especially when unpatched and without restrictive security settings) was often vulnerable to exploitation. But if you didn’t use IE, then there’s a good chance that the site you were visiting might not operate properly as they held a monopoly market share on the browser market and pushed for their own standards.
There was a time when free AOL trials would plop into your mailbox every so often, but you’d install it only to find the local POPs (e.g. Sydney) to be busied out so the software would try calling one further away (e.g. Canberra) at the cost of an STD call … followed by a mad dash to turn off the modem and abort the call. There were also “free” dial-up internet providers that offered the chance to use the internet for free, provided you were willing to sit through a barrage of banner ads. Such services included GoConnect and GlobalFreeway – although often their services would be so oversubscribed that the speed of downloads were about half that of a decent ISP. For those who weren’t on monthly dial-up plans, there were also pre-paid dial-up internet cards one could buy (sometimes on discount) – we certainly used our fair share of Optus ones.
Dial-up sessions were very much a luxury – the phone line was the main form of immediate communications in an era when mobile telephone calls were exorbitantly expensive. Dialling up meant tying up that phone line, usually for hours. Clicking on the connect button, one would wait as the connection was established on demand, listening carefully to the negotiation. A nice connection would be one featuring the distinctive V.90 DIL signal, which meant a higher speed connection was taking place. Hearing a second set of ranging signals afterward would indicate a failure to negotiate V.90, thus a V.34 connection would be made instead, meaning a slower internet connection (~60% of the speed) and a frustrating experience. Of course, not all users had V.90 which was the end result of a war of standards between K56flex and X2, thus slower connections were still normal for many users who merely needed emails. Most “unlimited” ISPs had session time limits which would forcibly disconnect users that hit five or six hours of continuous connection time to give a chance to users which may have encountered busy signals during peak periods, but often the longer a connection went, the slower the connection would become as line interruptions and impairments often pushed the speeds down as the modems retrained. This would usually be accompanied by 20-30 seconds of no data throughput and a slight nervousness that the connection could be permanently lost.
On a good day, a connection would push about 20MiB/hour or about 45.5kbit/s of actual throughput. The remainder of the (frequently) 52,000/50,666/49,333/48,000/46,667 bps connection would be tied up by overheads including packet headers, checksums, retransmissions and lost time in retrains. Those who didn’t have unlimited connections (such as ourselves in the early days) would have limited hours to spend, thus we would connect and immediately begin loading content and starting downloads to make the most of our limited time. We would be especially happy if we cracked the 100,000,000 byte mark by five hours as this meant we squeezed every drop out of the connection. Having to pay for our 25c local calls meant that we were on a “one call a day at most” mantra … barring any emergencies. If our call dropped out, we’d just give up for the day and come back tomorrow. To maximise our chances of avoiding such an issue, we’d be sure to disable the call waiting tones.
Things did change towards the end of the dial-up era – unlimited internet plans became cheaper, while plans with unlimited local calls and internet became a “thing”. It became affordable to dial up several times a day, seeking the fastest connection. It also became possible to enable call waiting tones so that incoming calls could “pre-empt” our internet connection and come through. Instead, the premium upsell was “supercharged” dial-up which promised broadband-like experiences by recompressing large images via their “transparent” proxy. We never fell for that trick … but it was a sign that the internet was changing as broadband ADSL became commonplace. This reminds me that oddly enough, ISDN rarely ever saw deployment here residentially, although some serious dial-up users did have multiple lines and configured a Multi-Link with compatible ISPs to get better speeds prior to ADSL. Mobile internet, at this stage, was not really a thing either – while GPRS did exist, data was charged by the kilobyte and was sure to send you broke. Phones were only good enough for a crippled version of the internet known as “WAP“.
In so much as 20 years, the internet is now a completely different place.
The capabilities of HTML5, along with HTTP Live Streaming (HLS), WebRTC, has largely meant that client-based streaming (e.g. Windows Media) have mostly been abandoned and technologies such as Flash are quickly being sunset. Even video conferencing could take place in the confines of a browser – in essence, making the browser perhaps the most important piece of software running on the OS. The “standards” world means that browser compatibility issues of the past are much less common (but not entirely eliminated). Nowadays, it seems Google Chrome is on top, while Internet Explorer and its related “cousin” Edge are quite unpopular. Unfortunately, it seems Chrome is now in a position to dominate the creation of standards through its sheer “weight”. Even HTTP did not escape unscathed, with the new HTTP/2 in broad use and HTTP/3 upcoming.
Perhaps what is most surprising of all is that the internet was never designed for real-time applications, but more than ever, we’ve adapted and come to rely on it to perform such tasks. The acceleration of IP-converged technologies now sees Voice and Video over IP and on-demand video streaming over an internet that is very much suffering congestion during peak hours. Management strategies, often involving “deprioritising” less sensitive traffic are necessary to maintain quality of service – the internet is, in essence, a patch upon a patch upon a patch. The IPv4 address space which we know and love has become exhausted – the new IPv6 address space is still slowly moving towards mainstream adoption. In the interim, the “end-to-end” model of the internet has been broken by the proliferation of carrier-grade NAT and NAT devices in the home. But asymmetry in the internet is hardly new – many users are more consumers than creators and this is reflected also in connection speeds for most technologies prioritising downloads over uploads (although some of this is due to technical limitations).
Security has also become very important and with increased computational power comes the opportunity to encrypt everything. Better understandings of weaknesses in prior algorithms has led to new ciphers and versions of TLS to mitigate these issues, along with the “push” by browsers and Google towards HTTPS sites everywhere, it has turned the internet into a much more secure place. Even simple protocols like DNS are being migrated to secure versions in the form of DNS over HTTPS, while very security conscious people may be using a VPN instead (although this deserves its own article in itself). E-mail and instant messaging transactions for the most part are secured as well. Of course, surveillance has also become much more widespread and focused with advertising and social media companies capitalising on such information.
But most of all, the internet is now “always here”. It’s always on. It’s like a utility we don’t think about – it’s perhaps now even more important than the telephone. It’s the vehicle by which many virtual goods (e.g. newspaper, game, video subscriptions) are delivered, as well as a marketplace for physical goods, but also a means by which productivity is achieved (e.g. emails, video conferencing working from home, content creators uploading new videos). During this COVID-19 pandemic, it’s clear how important the internet is – imagine trying to do the same thing on dial-up! When we team this up with wireless networking technology, no longer are we bound to a desktop or laptop and a phone cable.
It has even become the vehicle for people to create their own news and share what they care about, for better or for worse. The speed and quota of the connection directly impacts the experiences you can have, as many things have moved away from a “download” model to a subscribe and stream model. As a result, those with less are more likely to miss out on certain experiences online. This is especially true as we very much don’t like waiting.
I suppose one could always visit sites on the Internet Archive to get a feel for the early internet, although as browsers have changed and the crawling is not always perfect, some things that used to work may not work anymore. There, you will find a simpler experience, perhaps not as aesthetically pleasing but still functional nonetheless.
The Parts that Made it Happen
To make this video, the first thing I needed was some period accurate hardware. Luckily for me, the basis was the Techway Endeavour II which I had salvaged and then recently “pimped up”. This involved some hardware changes to build up the system’s capabilities, while also not going too modern and perhaps “spoiling” the experience. Of course, the LCD screen is not period accurate, being a wide-screen, but it was the smallest working one I had.
Video capture was performed with a VGA to HDMI converter and the Avermedia Live Gamer Portable, tethered to a laptop, providing capture and display. Of note is that the VGA to HDMI converter is not a scaler, thus many of the booting screens could not be captured via the LGP because it would not sync to the signal. However, once booted, 1024×[email protected] is supported and captured just fine. This is why the beginning and end segments relied on video shot on my Nikon D3400 secured on a tripod, with system sounds recorded with a Zoom H2n and synchronised in post-production. Editing was done in Adobe Premiere with my relatively amateur editing skills.
Being your own ISP requires a server of sorts to answer calls and provide the gatewaying functionality necessary to allow internet access. To do this, I decided to call upon Windows 2000 Professional, an OS that I very much loved as a reliable, sturdy OS with good hardware support for older equipment without all of the bloat and frills of Windows XP. Best of all, there’s no nasty WGA DRM to worry about either – activation can be quite a hassle nowadays. This was installed inside of a VMWare VM container running on my latest workstation, a Ryzen 7 1700 running Windows 10. As I only run this for a demo, the security risks are negligible.
I chose Windows 2000 Professional as this gave me good support for various sorts of modems which wouldn’t work on more modern versions of Windows, and it didn’t have any quirks to speak of. I’ve always found it just “works”. I opted, owing to the excess of CPU power and convenience, to just use the cheapy USB soft modem I purchased from Hong Kong to terminate my incoming calls. To get started is just a matter of installing the drivers and then adding a new connection that “accepts” incoming calls.
It’s perhaps a good idea to add some credentials that can access this dial-in connection – I just created a separate account.
Finally, if you allow the callers to access your LAN and you have the virtual LAN adapter bridged to your actual home LAN, then anyone who dials in can basically access anything on your LAN – including the internet via your gateway. For better performance, I decided to specify fixed ranges of IP addresses outside of the DHCP pool on my gateway to prevent interference with other machines on the home LAN.
To provide the telephone interface, I used my trusty old Linksys PAP2T VoIP ATA. To get the most reliable experience, I configured it to do back-to-back calling by first assigning it a static IP and enabling IP dialling on both lines. I filled in a bogus local registration server, but also allowed for the unit to dial without registration at all. I configured the dial plans for each line so that once picked up, the line will sit for a few seconds and auto-dial the IP of the opposing line by IP (e.g. [email protected]: 5060 would have [email protected]: 5061 autodialled in its dial plan). This way, anything dialled into the line would not have an effect and it will just ring the other port.
This, of course, is not the optimum configuration. With the call audio routed via the Linksys PAP2T ATA, even on a back-to-back call, there is degradation of the signal due to analog-to-digital and digital-to-analog conversions and the occasional “stutter” due to timing variations and jitter buffer adjustments. The call is successful enough to provide hours of connectivity at a time, but usually at speeds between 28.8kbit/s to 31.2kbit/s symmetrical.
This arrangement is necessary for a number of reasons – the biggest is that the dial-up server itself expects to see a “ring” signal from the modem to signal the OS to pick up the call. Some modems also require some “loop current” to carry the call audio and can’t transmit/receive on a “dry” line. Prior to owning ATAs, I had my own method to achieve this – a 9v battery powering the loop would allow the necessary loop current, while attaching a 24-36V AC transformer across tip and ring would often provide enough “buzz” to trip the ring detector in a modem despite the frequency and voltage both being below nominal. This still leaves the issue of dialtone detection, which could be overcome by adding “X3” into the additional initialisation parameters, but feels a bit inauthentic. The plus side of this hack arrangement would be the ability to connect at 33.6kbit/s symmetric as the line is dead silent with no A/D or D/A conversions taking place.
I have always wanted to make a 56k dial-up server at home some time. To that end, I do have a Cisco 3840 integrated services router equipped with dual-mode E1 cards, a PVDM digital voice codec card, FXS/FXO cards and a digital modem card that has 30 MICA modems on it. Having built a hacky cross-over E1 cable, I managed to get the E1 cards to form a trunk from the unit to the unit and configured it far enough to get the FXS ports up and dialling from port to port.
Unfortunately, I never managed to get the incoming calls from the E1 trunk to route to the MICA modems even though they do show as operational and suspect this to be an issue with Cisco IOS and the VWIC E1 cards. Perhaps the MICA can only answer calls from a dedicated NM interface, but since I don’t have one kicking about, I can’t test it. The bigger problem is that I had sunk quite a lot of time and money into it, but time is running short and there are always plenty of other things competing for my time, so it’s been shelved for now.
Aside from this, direct connections from the browsers to secure HTTPS websites was impossible due to the difference in cipher suite and SSL/TLS protocol support, so I decided to use an Asus Tinkerboard running Nginx web server to serve a miniproxy page that allows us to visit HTTPS sites and serve them back as HTTP. By setting a DNS binding on my gateway, I am able to access it via the name “pr.oxy”.
It was a nostalgia trip being able to relive the internet experience of the late 90s in 2020. Noisy, slow, ugly … but functional, just the way it was back then. It’s clear to see just how far the internet has progressed in this time – the slow and steady changes are easy to miss and now we take our internet connections for granted. Sites have become much more complex, while standards technology has evolved to offer more from inside the web browser.
Just remember, even a 1.5Mbit/s ADSL1 speed connection is equivalent to about 30 “50kbit/s” good V.90 dial-up connections! What we have now is leaps and bounds above what we had 20 years ago in terms of speed, computational power and storage, which enables the rich media experiences that we experience everyday. It also enables a much more secure experience through the widespread use of encryption.