Sometimes I don't GET it straight away
I recently encountered some wwweirdness I’m hoping someone smart can explain to me.
So there’s a client computer A1, and a host C serving some web pages. If you ping or traceroute C from A1, the round trip time is consistently around 200ms. if you use a web browser on A to visit one of the pages that C hosts, then most of the time individual requests are served in a similar time.
But for around 25% of requests, it takes orders of magnitude longer to serve the file: around 20s. The behavior doesn’t seem related to the URL being fetched: all are usually fast, sometimes very slow. Logs on C always show responses being turned around rapidly once requests are received - the delay is never visible within the server side.
A1 is a machine in a domestic residence using a particular Net connection from a particular ISP. The problem is reproduced for another client machine A2 when it uses the same connection. C actually serves a variety of different domains, and the problem is reproduced across all of its websites, and when using its numeric IP address.
It appears that tens of other clients use C’s websites without encountering the issue. A1 is reported to occasionally see anomalous delays when browsing other websites, but nothing quite so remarkable - could be regular network unpredictabilities.
And finally, on overriding A1’s DNS to persuade it that awebsite is actually served by host B, and telling host B to reverse proxy all requests for pages under that domain through to C, then the issue disappears.
So it seems that A’s ISP and C just don’t get along with each other, but they do get along with the rest of the world. I can postulate some kind of blacklist on one side or the other, with a deliberate policy of throttling through introducing huge delays for a random sample of HTTP requests, but that sounds like quite a stretch.
(Especially since A and C are both perfectly reputable. Probably irrelevant concrete values for my abstract identifiers: the ISP for A is VirginMedia / Blueyonder. C is a virtual host I rent from Slicehost. B is another virt rented from Bytemark by a friend.)
Anyone have a halfway plausible explanation?

