1.27.2010

I follow @MajorNelson to keep up with the latest Xbox news and cool stuff (not to mention I keep a keen eye out for service issues), and noticed he posted this AWESOME link to the new Xbox Engineering Blog. I read through the newest information about Netflix and Xbox, and noticed a fancypants section about Netflix and streaming.

I am reposting this section with permission from Xbox to shed some light about how this process works, and how Xbox is working to improve the experience for you! Also, I have to throw in the comment about us "throttling" Netflix to keep competition away. This simply isn't the case, and I think the snip from the article below will help clarify what's actually going on. Enjoy!

Special thanks to the Xbox Live Team for putting this up! Remember, the full blog can be reached here!

Streaming Video

Rebuffering
One of the major challenges of streaming video is adapting to changes in available bandwidth. In the first version of Netflix, we saw a number of users experience downgrades in their video quality, accompanied by the “Your Internet connection has slowed” message, shortly after starting playback. This was often due to an ISP boosting available bandwidth for brief periods of time in order to make individual downloads faster. Since we decide which quality level of the content your Internet connection can handle by measuring bandwidth at the very beginning of a download, this boost effect causes the client to believe there is more bandwidth than actually available. Accordingly, we picked a quality level whose bitrate was too high to sustain once the boost ended and the connection reverted to its typical bandwidth characteristics. This resulted in a rebuffering event, otherwise known as a “starvation.”

We’ve done a number of things in this release to reduce the frequency of starvations:

  • We have switched to using Netflix’s new, more advanced VC-1 encodings when available. The VC-1 streams are much more efficient than their visually-comparable WMV9 counterparts. This allows us to better utilize available bandwidth by buffering more of the feature in less time.
  • We have implemented something we are calling “Seamless Stream Switching.” In the past, a starvation meant having to wait while the app rebuffered a new stream. Now, we have the ability to detect a dip in bandwidth that would cause a starvation, and react before we actually starve. Instead of forcing you to wait while the speed test and buffering is redone, we can prepare the new stream behind the scenes while playing out the old one. See the next section for details on how it all works.
  • Courtesy of Seamless Stream Switching, you can now switch up to a higher quality stream. Previously, you would always be locked in to the lower bitrate stream if your bandwidth had degraded during playback. Now, if your bandwidth improves sufficiently, your content bitrate could be upgraded as well.

(Mostly) Seamless Stream Switching
As mentioned above, we can now be proactive about switching to a new stream before a starvation occurs. Here’s some information on how the process works:

Like with the first version of Netflix, a quick speed test is done first to figure out what the Internet connection is capable of. Based on these results, a stream of an appropriate bitrate is chosen - one that should give you the highest video quality possible while still being likely to play back without interruptions (aka starvations).

Unlike the first version of Netflix, the client will continuously monitor the current streaming bandwidth and also the buffer level during playback. The buffer level is how much data has been read ahead from the network connection and buffered up in memory.

If the buffer level falls below a certain threshold–i.e., the buffer level falls into the starvation danger zone–then we start to get interested, algorithmically speaking. At this point, the client looks at several samples of bandwidth measurements to see how the Internet connection is performing, and we’ll also see if buffer levels have been declining. It might seem like a silly thing to do, but the reason we check the latter is that, directly after a seek or after playback starts, buffer levels could technically still be in the red zone; however, as long as they are still increasing, there should be no need for alarm. On the other hand, if buffer levels have been declining, and bandwidth measurements indicate that the client could be in danger of starving, then the client will initiate a switch downwards to a lower bitrate stream. More about that in a moment.

Now if, instead of falling, the buffer level actually rises above a certain threshold, then the client will look at several history samples of bandwidth measurements and see if the Internet connection really can take it to the next level. If so, then the client will initiate a switch up to a higher bitrate stream. Note: To avoid ping-ponging between higher and lower bitrate streams, a backoff period is enforced before switching up if there has been a previous switch down during the playback session. The backoff period increases substantially the more times a downward switch occurs. For example, suppose client starts out playing a piece of content at 2 quality bars, but then bandwidth drops and the client switches down to a lower bitrate stream. At this point, even if the connection improves to the point where the client could technically switch up again, the client will wait an additional period of time before allowing the switch to occur. If the client subsequently performs another switch down during that streaming session, then the backoff time before allowing an up-switch would be longer still. The basic idea is to avoid a cycle where fluctuations in connection bandwidth cause the client to continually vacillate between content quality levels.

Performing the Switch: The Seam
Once a stream switch is kicked off, several things happen. First, the client stops reading any data from the network for the old stream; it plays out whatever buffer has been accumulated for the old stream from here on out. Simultaneously, the newly-freed network resources immediately start grabbing data for the new stream. Once all the data from the old stream has been played, the client will hot-swap to the new stream.

Perhaps this is a good time to confess that it’s not completely accurate to call this process “Seamless Stream Switching.” As it turns out, there is a seam, but it’s very slight and consists of the screen below.

The graphic at the upper right shows you the quality level for the new stream you’ll be watching. You’ll see this screen very briefly (typically, for a second or less) during the switch over from old to new. During this time, the video pipeline is being reinitialized for the new stream. We’ve done as much of the work as we could ahead of time, but there are some things, like initializing the Direct3D device in accordance with the new video resolution, that need to happen right then. This process is fairly snappy but it’s not instantaneous, which is why this small delay exists.

Sometimes the client is unable to adequately buffer up the new stream before the buffer for the old stream runs out. This may happen, for example, if there was a sudden extreme drop in bandwidth or if the Internet connection is not capable of sustaining uninterrupted playback of the lowest bitrate stream. In these cases, you will unfortunately still have to wait to rebuffer while viewing the “Your Internet connection has slowed” starvation screen.

Streaming and Party Mode
The most important thing about the streaming experience in Party Mode is that the video stays in sync among people watching the content. We felt strongly that it would not be a great experience if your buddy laughed at a joke two seconds before you actually saw the funny part of the movie. Because we were optimizing for keeping everybody at the same place in the content, streaming in Party Mode behaves a little differently than streaming in solo mode:

  • There is no Mostly Seamless Stream Switching in Party Mode. The seam during the switch, slight as it is, could be enough to throw synchronization off beyond the 500 millisecond threshold that we deemed our maximum allowed drift between participants.
  • The headroom that we require for Party Mode playback is higher than for solo mode. For context, headroom is the amount of space required between your measured bandwidth and the selected content bitrate. In other words, for a Party Mode headroom value of say, 30% (hypothetically speaking), your measured bandwidth would need to be at least 1429 Kbps for us to select a 1000 Kbps content stream. This is Bandwidth * (1.0 – Headroom). Now, the reason why we require more headroom in Party Mode is because a starvation in Party Mode affects not only your user experience, but also that of everybody else in your party. When one person starves, everybody else in the party has to wait for that person to rebuffer to keep everyone in sync. We want to make sure that this is very unlikely to occur.

Inside Tips and Tricks for Tweaking Your Netflix Streaming Experience
Since you now know some details of how our streaming system works, there are a couple of things you can do to potentially make the system work better for you.

First off, if you absolutely hate Mostly Seamless Stream Switching, you can prevent us from using it by watching all your content in Party Mode. This works whether you watch by yourself or with others. All you have to do is start a Netflix party. If you choose to do this and don’t want to see your Avatar, then use the On-Screen display and use Display Mode to switch.

Secondly, if you have a spiky or otherwise unstable Internet connection, the Pause button is your best friend. Remember how I mentioned that the client will only consider switching down if 1) the buffer falls below a certain threshold, and 2) the buffer level had been decreasing over the last few seconds? Well, when playback is paused, we will continue to read data from the network, but the buffer can’t decrease since playback has been halted. Therefore, hitting the pause button right after playback starts and leaving the content paused for a short while (30 seconds, a minute or two, see what works best for you) is a cheap and easy way to force the buffer level to increase and potentially avoid a downward switch to a lower bitrate stream.

12.30.2009

Whoa what?

So, I was reading Consumerist.com today and noticed a post about an unfortunate experience between a customer and his modem/us. The insanity that happened here is going to probably end up popping up more and more often as we transition away from legacy devices and focus on the cool new stuff (D3!). Here is the link to the page with the information about the WHY

A few things that are helpful to know about the upgrade process:

  • DOCSIS 1.0 and 1.1 modems are the only devices needing to be upgraded
  • If you have a DOCSIS 2.0 modem, you're fine (unless you want super speeds)
  • If you have a DOCSIS 3.0 modem, you're fine
  • This does NOT apply to every region. If you have an EOL modem, you should receive notice via snail mail and/or email. We are doing this area by area, and I do not have a schedule of who's going to do this when. Don't freak out, just be prepared for the future! Plenty of notice for the bulk of you reading this.

A VERY HANDY PDF from CableLabs
This lists all cable modems (and EMTA's, but we're not talking about them) that CableLabs has certified.
On the left side, it will state D1.0 D1.1 D2.0 D3.0. If it does NOT say D2.0 or D3.0 on the left, then your modem is not up to spec! Please note, this list does NOT mean these are OK on our network, but rather certified by the CableLabs folks. You can check to see if a modem is cool with us here.

If you're a customer leasing your modem from us, you can request a new modem using live chat, calling up, or visiting your friendly local comcast office (make sure they do equipment, though!).

If you OWN your modem and it is on the EOL list, you will need to lease a new device from us or purchase a new one. Suggestions I've been giving people are SB6120 (Motorola), DPC3000 (Scientific Atlanta), and U10C035 (Ubee/Ambit). These are ALL Docsis 3.0 modems. I figure, if you're going to drop the cash on a new modem, might as well make it one you won't have to upgrade for a long time. Remember to check the compatible equipment list before buying a modem! (I have not been paid to recommend anything. These are what we use.)

After all of this is said and done, you will need to call us to activate your equipment. If you bought a new modem, you will also need to give us the cable mac/HFC mac address and/or customer serial number from the device.


12.09.2009

Another day, another blog post, another cool thing to share with you guys!

We've soft launched (haven't made a big deal, basically) our new Comcast Secure Backup & Share service for our customers.

This is cool for those of you who need to put something 2gb and under "somewhere". Portable apps, maybe some pictures you wanted to share, documents, whatever! Here's some of the specifics from what I've been told so far:

Comcast Secure Backup and Share is an easy, secure, and reliable way to back up and share all of your important files. Now, you can access your files from anywhere with an Internet connection for easy sharing. You can download the Comcast Secure Backup and Share application and have convenient access to the Comcast Vault. Components of solution include:

    1. Comcast Secure Backup & Share PC application – downloaded to the PC during product registration. Used to backup files and restore files. Application can be downloaded on multiple PCs so that files from each computer can be backed up.

    2. Comcast Vault – Secure Online storage of backed up files. You can access their Comcast Vault through any Internet Connection for downloading or sharing.

Comcast Secure Backup & Share features include:

  • Automatic backup can be scheduled
  • Bandwidth throttling and block level incremental backups
  • A secure online backup and storage utility
  • An easy upload and retrieval mechanism
  • Remote access to your files from any internet connection
  • Ability to share content from the vault to family and friends
Product Requirements
  • Comcast High-Speed Internet subscription – Primary account must complete registration
  • 133 MHz processor
  • 64 MB RAM
  • Windows 2000, XP, Vista SP1 or SP2, or Windows 7
  • Either Internet Explorer 7 or later, Firefox 3.0 or later
  • (No word on when there will be Mac support, sad to say!!!)

Accessibility
  • You must be a Primary High-Speed internet subscriber to purchase the service.
  • After purchase is made, any secondary can download the product. A secondary UID’s backed up content will contribute to overall storage purchased by primary, though the files will be stored in your own private vault.
  • Each UID can download CSB&S desktop application to multiple PCs
  • Due to copyright concerns, music files can be backed up, but not shared.

11.17.2009

(I was originally going to post this back in September. Oops!)

Since the new school year has begun, let's learn some fun stuff about your internet connection and how to fix it! Prepare to amaze and awe your neighbors, family, and friends who will suddenly deem you as their tech support person :)

OK, class! Let’s begin…

Today, we’ll start off our fun learning series with the simple stuff. When I see problems, the very first thing I'll ask is: Have you reset your modem? If the answer is yes, then I'll ask: Do you have a router? This isn't because I'm trying to blame any particular piece of equipment. You'd be amazed at how many times a router will get "out of sync" with a modem, and vice versa. To fix this…

1. pull the power from both the modem and the router
2. Next, plug the power into the modem ONLY.
3. Wait for the lights on the front to calm down. On Motorola modems, you need four SOLID green lights. (Scientific Atlanta/Webstar needs a SOLID cable light. RCA modems need the Cable Link and Internet light SOLID. If you have a modem not listed here, chances are you bought it or it’s an end of life modem and should be replaced)
4. Once this is done, go ahead and plug the power back into your router and wait for it to finish up it's startup sequence.

Easy enough, right? If you’re still unable to connect, try moving on to the slightly more complicated steps below.

For a direct connection to the modem:

* PC’s: Go to “Network Connections” in your Control Panel. Right mouse click on “Local Area Connection” and click Status. Click the Support tab in this window, and check the IP address.
* Macs: Finder>Applications>System Utilities>Network Utility This will display your current IP address.
* Does the IP start with 169.254? If so, your computer is not getting a connection from the modem and you should probably give us a call. If you see 192.168, you’re connected to a router, have your IP set static, or something else is going on with the modem. Again, something you might want to call us up about.

For connections using a router:

* Make sure your router is obtaining an IP address by going to its home page at http://192.168.1.1 (login required in most cases). You should be able to check on the router's status page and see if you are getting an IP. If you see a 169.254.xxx.xxx address, your router is not connecting to the modem. This could mean that it was not powered on in the right order OR the modem is not assigning IP's.
* Make sure your computer is receiving an IP address from the router by following the steps above. A 192.168.x.x of 10.x.x.x address should show. If not, your router has a problem!
* Make sure you’re connected to your own wireless network. I get more of this than most people think. Be sure to put your wireless network as top priority over others in your network preferences.

For the super geeks out there:

Speaking of modem's not handing out IP's... I see this little problem all the time. The geeks out there seem to notice this the most, and take extraordinary measures to correct the problem. I'll see folks spoofing their MAC Addresses to get the modem to talk to the equipment on the other end. Guess what? You don't need to do that :) ANY TIME you connect something in to your modem, you will need to reset the modem. Otherwise, it will still consider the original device connected, and hence refuse to work with the new device. Easy fix, right? Make sure you’re not overlooking the basics above, since it’s easy to forget the most obvious things sometimes. I once troubleshot a modem for well over an hour, and then discovered it was in standby. The lights on the modem will tell you a lot about what’s going on.

I hope this gives you a little insight into the basics of troubleshooting. Next week, we’ll move on to checking out your internet signal from the comfort of your own home :)

Got a topic I should cover? Let me know in the comments! Got a question about any of the stuff above? Ask away! Let’s keep comments about the lessons on-topic, so we can all chirp in about each thing :)

7.09.2009

Here's a bit of news to start the day:

Starting today, Comcast will begin trialing a service in several markets called “Domain Helper,” which will impact approximately 3 million Comcast net subscribers. This service will be automatically turned on for customers who live in the following markets

* Portland
* Denver
* Houston
* Seattle
* North Arizona
* Utah
* New Mexico


Domain Helper causes a Comcast-customized error page to display, instead of a standard 404 error page, when a user misspells a website URL or types in any non-existent URL, for example http://www.comtcas.com. Most other major ISPs are providing this same service including Verizon, TWC, Cox, Charter and Earthlink.
Got a question about it? Thoughts? Let me know in the comments!

UPDATE: To Opt-Out of this service, go to https://dns-opt-out.comcast.net

;;