About two months ago, I started having some problems with my broadband internet service. Things would really just slow down to a fucking crawl; web pages would take upwards of 30+ seconds to load and when they did there were broken images, ftp would timeout, sending or receiving mail would take forever. And don't even fucking think of trying to open Netflix of Hulu, if it opened at all, the video quality would be that worthy of the first generation flip phones. And usually right around the time I was ready to blow my fucking stack -- frantically rebooting computers and the cable modem while swearing at the top of my fucking lungs -- the problem would disappear just as quickly as it started. The first few times this happened, I didn't pay it much attention and just assumed there was a Comcast technician somewhere in my area doing work on the lines. But as the problem crept into a solid week of daily connectivity problems -- and remember I work out of my home so this is my fucking livelihood we're talking about -- I finally gave up and called Comcast to report the problem.
Now I'd like to tell you the Comcast support rep knew exactly what I was talking about, was sympathetic to my problem, and didn't treat me like a fucking 5 year old, but I think we both know I'd be lying. In their defense, they deal with hundreds of people per day, and 99% of those calls are resolved by ye old turn-it-off-and-back-on solution. I of course was the 1% and being a Business Class customer, wanted immediate gratification. As the problem was intermittent, by the time I actually got through to a support rep the problem had either gone away, or if it were still happening then, went away by the time they dispatched a technician within their 4 hour window. I can recall two specific such occasions where the line tech shows up, looks at me, I look at him, and there's no problem to solve. For lack of anything better to do, the first of those guys ended up replacing the cable segment that ran from the utility pole across the street to the utility pole in my front yard, and the second guy replaced the segment that ran from the utility pole in my front yard to the junction box on the side of my house. Neither one had the slightest impact on my problem. It was extremely frustrating.
So, being the dubious little motherfucker that I am, decided to do my own investigating of the issue. I tried various devices from computers with different operating systems, to tablets, to mobile phones, and my XBox-360, I even changed out my cable modem to an old unit I keep on hand for such emergencies. I even changed turned off the sprinklers in my yard, thinking perhaps there was a break in a wire somewhere and water was the problem. Everything came up snake eyes. So I whipped up a little batch file to do some network monitoring for me and let it run on a laptop that sits next to my main workstation. What it does is send out 20 pings to a known good server out on the internet, and count how many of them don't get returned; if I send 20 pings and 20 return, that's 0% packet loss. If however I sent 20 pings and only 15 return, that's 25% packet loss, only 10 return is 50% packet loss, etc. The results from this batch file, which ran continually, 24 hours for a full week, were displayed on both the laptop screen and recorded to a text file. Behold, the fruit of my loins...
for /f "tokens=5 delims=. " %%a in ('time ^< NUL') do set PINGTIME=%%a
for /f "tokens=2" %%a in ('date /t') do set PINGDATE=%%a
for /f "tokens=4,10 delims=, " %%a in ('ping -n 20 %REACHABLEHOST% ^| find "loss"') do (set PINGSSENT=%%a) & (set PINGSLOST=%%b)
for /f %%a in ('set /a ^(%PINGSLOST% * 100^) / %PINGSSENT%') do set PINGLOSSRATE=%%a
set REPORTSTRING=%PINGDATE% %PINGTIME% %PINGLOSSRATE%%% loss *
if %PINGLOSSRATE% LEQ 0 goto showreport
for /f %%a in ('set /a %PINGLOSSRATE% -5') do set PINGLOSSRATE=%%a
echo %REPORTSTRING% >> %PINGREPORTFILE%
echo. >> %PINGREPORTFILE%
if %PINGLOSSRATE% LEQ %PACKETLOSSTHRESOLD% (set PINGDELAY=40000) else (set PINGDELAY=10000)
ping %UNREACHABLEHOST% -n 1 -w %PINGDELAY% > NUL
Now here's a sample of the live feed that's shown on the laptop screen. Now pings are send UDP which means they're unreliable, like dropping a letter in a mailbox; you're pretty sure its going to get there, but ultimately there's no guarantee. because of this, you're going to occasionally see some minor packet loss, 5%-15% really isn't a big deal. Once you creep into the 20%+ packet loss arena, that's when you're likely to see some degradation -- or if it's bad enough, interruption -- of internet service. Here's an example of just here is an example of the data I was seeing during just such an occurance that lasted for about 30 minutes. During events such as this, every internet device I had slowed to a fucking crawl.
After letting this script run a a few days, I immediately noticed a pattern that was so fucking obvious, I was embarrassed I had not seen it before. Well, I probably would have, were I not raging around my fucking house cursing to the gods how much I hated everyone who workd at Comcast. These "signal storms" happened twice per day, almost like clockwork. The first was in the morning, starting around 8:30am and lasted about an hour and a half, to two hours. The second happened around 5:30pm and lasted anywhere from thirty minutes to an hour. Now some days they started a few minutes early, or a few minutes later, or lasted a few minutes longer, but always within that window. Outside of these two predictable events, my signal quality was damn near perfect. Now when I called Comcast to open (yet another) trouble ticket, I was able to present them with this information establshing a definite pattern, and this was enough to get my trouble ticket escalated (yay!) to Tier 2 support.
And this is where I will tip my hat to the Tier 2 guys, or at least to the guy who handled my ticket. I had a difficult time reaching him at first and left him several unreturned voicemails. I kind of laughed at this fact, as I remember sitting at my desk dodging quite a few customers call myself. Like they say, what comes around goes around, I guess. It took a day and a half to get a hold of him but one I did things fell into place very quickly. He was able to see the same signal storms I was, and what we theorized was there is a customer in my local area who was probably plugging their cable directly into the back of their TV, and that TV happened to be shorting out and broadcasting noise on the line. Whoever this person was, they probably watched some television in the morning before work, and again when they got home. Because this was a non-Comcast device, there was no MAC address for them to trace the packets to and identify a specific customer. Little tidnit here: my first suggestion was to start unplugging streets one at a time, until the noise stopped, and then you'd at least identify what street/cable segment the offending customer was on. Turns out they can't do that anymore, since Comcast is now offering telephone service and there are federal regulations regarding 911 service.
Anyway, what ended up happening was -- and no small thanks to my batch file, thankyouyourewelcome -- early the following morning Comcast had four technicians stationed at strategic locations around my neighborhood. Once the morning signal storm started (right on fucking time) one of the technicians closest to source of the signal storm was able to identify and isolate the offending customer with the shitty equipment. It took about 20 phonecalls to Comcast, 7 different trouble ticket numbers and 18 days, but we finally nailed down the problem. In Comcast's defense, my service has been fine since this outage, and in the 8+ years before it.
So there you have it folks, learn from my knowledge Feel free to use my batch file if you suspect you're having any kind of signal issues with your internet service. Just copy and paste that shit into Notepad, save it as COMCAST.BAT or whatever fucking name you want -- but remember it must have a .BAT extension -- run it and and go to fucking town.
There are only four parameters you may/may not want to change. PINGREPORTFILE is simply the output text file. I do all of my shit off of an external USB drive labeled K: so that's the drive and directory I chose to put the log file. You can change it to C:\WHATEVERFUCKINGDIRECTORYYOUWANT\comcastlogfilebitches.txt or whatever. UNREACHABLEHOST must an ip address that is valid yet unreachable; this is used to create a delay, which I'll explain in a second. Unless you set up your home network and specifically created a hostname with the ip address of 192.0.2.2 you don't need to change this. REACHABLEHOST is the ip address of a server somewhere out there on the internet that you are absolutely positively sure is online and available -- 220.127.116.11 is the DNS server for Google so as long as Google is up, this is a good address to use. PACKETLOSSTHRESOLD is the percentage of packet loss that indicates a signal problem. If you experience 0-15% packet loss, the script assumes all is well and only does a ping text once a minute. If signal loss is 20% or greater, it assumes something is wrong and attempts a ping test every 30 seconds.
And if by any wild chance you're into reloading...