Experiences with exchange congestion

20 May 2010

This month, we’ve been experiencing latency, packet loss, and speed issues on our Internet connection. Some of the issues have been around in a small way since the beginning of the year, but have been really accentuated this month.

We’ve had 1.5 mbit broadband since our village was first ADSL–enabled in 2005 (first with iiNet, then with Internode since December 2008). While 1.5 mbit is great by 2005 standards, by 2010 standards and living in a family of 6, even watching a YouTube video without stuttering (not to mention gaming or using VoIP at the same time) is barely possible.

A couple of times this year, I noticed that while attempting to play Nexuiz online, despite there being nothing other than gaming traffic on our pipe, my ping time skyrocketed from its usual 50-60 mark up to a minimum of 300, which made the game unplayable. Using ssh to connect to a remote box, I also noticed considerably poor responsiveness when typing. In February of this year, I reported the issue to Internode, who dismissed the issue by saying our exchange had no reported congestion issues.

The issues were generally quite bearable, only being infrequent.

At the beginning of this month, Dad bumped our broadband plan from Internode Easy Broadband to “ADSL Fast”. Living in Yerrinbool, our only option is Telstra Wholesale ADSL1, and are classified as Zone 2 (Regional) which is considerably poorer value than being in a Zone 1 (Metro) area or having DSLAMs from other ISPs available, but it’s the only option we have.

Since getting a theoretically 8 mbit service, we have very rarely reached the maximum speed. During most of the day and evening, the speeds waver from anywhere between 0.5 mbit and 5 mbit. Note that this is not a line noise issue. Our signal-to-noise ratio and line attenuation values (latter is 11 dB) are consistently almost perfect, and our sync speed is always right on 8192 kbps.

Not only that, but our latency has been terrible. It would be bearable if we had to live with slow speeds only, but our ping times skyrocket, which makes responsiveness far worse (e.g. ssh), and gaming is just about impossible.

I called up Internode and provided them with several graphs much like the following:

That demonstrates the latency problems by graphing the ping times to resolv.internode.on.net with my laptop being the only machine connected to the Internet — it was even directly connected to our PPPoE modem, bypassing our router.

To ensure that the above was a “clean room” test without interference from any traffic, I even ran something like the following to make sure of that:

# iptables -I OUTPUT -p ! icmp -j DROP
# iptables -I INPUT  -p ! icmp -j DROP

So by doing all of the above, I have eliminated variables from my own network. The conclusion is simple: the latency is being caused on the other end of the line. Only Internode and Telstra have the power to fix it.

Unfortunately, as I was told by an Internode support rep, Telstra won’t fix latency issues — only packet loss issues, which is a bit of a raw deal. That said, we are getting some packet loss:

--- 192.231.203.132 ping statistics ---
14400 packets transmitted, 14141 received, 1% packet loss, time 2912556ms
rtt min/avg/max/mdev = 39.659/245.465/539.602/168.439 ms, pipe 3

So there are two problems: slow speeds, and terrible latency. I think both are a direct result of congestion, but as I’m not Telstra and Internode aren’t being completely cooperative, I can’t say for sure.

It’s been months now, and it’s getting worse, not better. Sigh.

MPEG-2 rendering artifacts in Bunnings Warehouse ads

31 January 2010

The past week I’ve been watching the Australian Open. It’s been really awesome to watch, and that’s coming from someone who is normally bored stiff of just about any form of sport.

But one thing struck me over and over again: the Bunnings ads had horrible MPEG rendering artifacts at the end of each one. At first I thought it was due to poor reception, but this weekend we completely re-wired our house’s coax connections with quad-shielded cabling to our TV antenna and bought a new masthead amplifier, which greatly increased our signal quality.

(And no, we didn’t replace it just to watch the Bunnings ads.)

But this remained:

Bunnings ad with rendering artifacts

Yuck. That is definitely not signal loss — that’s crappy encoding. I can give people a (non-reencoded) AVI file of the original if they want proof.

I think it’s mainly a result of the fact that the ad is being rendered at 1080i with the outdated MPEG-2 codec. We desperately need an upgrade to H.264, or even better, Dirac.

Source IP weirdities with irssi and IPv6

28 January 2010

I’m having a weird problem with irssi and IPv6. The long and the short of it is that irssi is trying to connect to an IRC server on the Internet with a source IP address of ::1, which is incorrect, as ::1 is the loopback address.

My server, glenstorm, is the IPv6 router, which contains the ppp0 interface that connects it to the IPv6 Internet. I am also running irssi on the same machine. It’s a router, so /proc/sys/net/ipv6/conf/all/forwarding is 1.

So, basically, when I fire up irssi, and type “/connect irc.ipv6.freenode.net“, it hangs when connecting. And for good reason: here’s the (edited for clarity) tcpdump output:

IP6 ::1.34823 > 2001:19f0:feee::dead:beef:cafe.6667
IP6 ::1.34823 > 2001:19f0:feee::dead:beef:cafe.6667
IP6 ::1.34823 > 2001:19f0:feee::dead:beef:cafe.6667

So obviously that’s wrong. And in violation of RFC 4291, I might add (“The loopback address must not be used as the source address in IPv6 packets that are sent outside of a single node.”).

I can hack around it by typing “/connect -host 2001:44b8:7df3:b970::14 irc.ipv6.freenode.net” into irssi, which forces it to use the source IP that I specified. But that’s just a hack — I’d like to get to the bottom of what actually causes it.

Update: Finally solved this. It’s because in my irssi config, I had the following directive:

core = {
    host = "glenstorm";
};

It was being told to use “glenstorm” as the “host”, which translates to “resolve the IP address of glenstorm and use that as the source IP address” (I think I misunderstood the meaning of the directive when I put that configuration flag in).

Of course, in /etc/hosts, I had the following entry:

::1 glenstorm

So, naturally, irssi decided to use ::1 as the source IP address. So removing the “host” line from the irssi config fixed the problem. While I’m sure that because of the aforementioned RFC, that shouldn’t have resulted in the subsequent symptoms, at the end of the day, it was simply Unix allowing me to shoot myself in the foot.

Jazzed up URL bar in Google

17 November 2009

Today, I noticed while I was using Google today (which is a website some of you may of heard of), and I noticed they jazzed up where the URL is normally listed:

I don’t know whether to puke or have a seizure. I liked having the URL there. But then again, the URL is meaningless to 99% of users, because people like to put their head in the sand and create absolutely useless URLs. I’m looking at you, Dell and HP. And a whole lot more.

So yeah, probably a usability improvement. And you can click on the little segments. Personally I don’t like it, but that’s ’cause I’m a power user that looks at URLs. And if I really want to, I can always just hover over the link to get the URL anyway.

I wonder how it works. XML Sitemaps, maybe?

Update: Google has written about it. Looks like they analyse anything that looks like breadcrumbs. Too bad it’s not standardised, and they don’t actually tell you how to do it.

SWF verification sucks

19 October 2009

Users of my Python-iView application may have noticed that when attempting to watch videos, they cut out after 8MB.

This is because the ABC have turned on “SWF verification”, which translates to “our incompetent head of IT who is a fan of Hello Kitty and also eats puppies decided we would enable this, similar to how passports and airport security actually keep out terrorists and criminals, and also explains why there is no crime in the world any more”.

Which also translates to “security by obscurity”, “papers please”, “fascism”, “коммунизм”, and “Miguel de Icaza”.

Because anybody watching videos from iView in anything other than the Flash-based web interface, e.g. on an underpowered Eee PC, an Xbox, or somebody offline, clearly shouldn’t be doing so. Doesn’t take a rocket scientist to figure that one out — even a manager could work that out.

This really sucks.

(And if you’re the type of manager that actually likes to fix problems and get things done — I know, bowls me over too — then disable SWF verification. It’s, like, a checkbox fix.)