Wednesday, March 30, 2005

Cringley at it again

Robert X is still concerned with VoIP and I'm still unconcerned. First, tunnelling data is NOT hard. It's trivially easy. In fact, an entire programming model has been built up around tunnelling data. Web Services is nothing more than programatic API's that can easily traverse firewalls... ok, it's quite a bit more than that, but it's that also. I simply do not see any way in which this problem can exist without it being a problem for every other (much higher) bandwidth user.

I'm also really surprised that Cringely is dissatisfied with 9.5Mbits/s of bandwidth. Personally, as someone who has used bittorrent to download content, I don't see it as much different than scheduling a show on my TiVo. If I schedule a show for two days from now on the TiVo, it's going to take 48 hours before the show is fully downloaded. If I start a bittorrent download, it will probably be finished much sooner. If I'm expecting to watch the program immediately, then of course, it's going to feel glacial if it takes 12 hours. So some level of expectation management needs to be met. In other words, distribution of content via bittorrent needs to be thought of exactly the same way as scheduling a recording a few days from now. If the mechanisms for dealing with this look the same, I suspect that will help manage the expectation of users.

Tuesday, March 22, 2005

The Good Old Days of VoIP

Cringely is worried that VoIP's days may be numbered. He expands on some of the criticisms in the 2nd half of this article.

I'm not convinced, although I'm fairly certain that he has a poor quality ISP. I'm unconvinced because VoIP's network requirements are not that demanding. If 3rd party VoIP is broken, then just about everything else should be broken, too. VoIP requires hardly any bandwidth at all. Vonage (at it's highest quality setting) requires a 90Kbits/s (11KBytes/s) connection. This is roughly twice the speed of the fastest telephone modems. Every single broadband internet provider advertises with much more bandwidth than that. The consequence of this is that if VoIP stops working well over broadband, then just about everything will stop working well over broadband. At which point, broadband providers are really high priced compared to cheap analog internet service.

Of course, the counter argument is that VoIP needs good latency, not high bandwidth. So it's not just how many packets you can receive at any one time, it's how long it took for specific packets to get to you. If this is not clear, the classic example that compares bandwidth to latency is a station wagon full of back up tapes versus a regular modem. The station wagon, filled with tapes, can transport terabytes of data. If it takes 1 hour to ship 10 TBytes using the station wagon, that's 277 MBytes/s of bandwidth. But the latency is 1 hour. If you're talking on the phone to someone on network that has one hour latency, it's going to take an hour after you say "Hello" before the other party hears you. At that point it doesn't matter how much bandwidth you have. What matters is the latency. In comparison to the station wagon, you might look at a regular computer modem, which only has 7KBytes/s (56Kbits/s) of bandwidth, but the latency is probably only about 30-40 milliseconds. The argument is that VoIP requires more bandwidth than a normal modem can provide, but a latency signature of about the same as a normal modem.

And this is where Cringley's argument starts to gain traction (only to eventually lose it). His argument is that the ISPs can easily manipulate the network to ensure that there's little or no latency for their VoIP offering and not give any latency guarantees to 3rd party VoIP (e.g. Vonage, Skype, Packet8, etc). By not giving latency guarantees to 3rd party VoIP, all of those packets get classified behind the ISP's VoIP. So it's possible that hundreds of ISP VoIP packets will get passed before a single 3rd party packet gets passed, dramatically increasing the latency of the 3rd party packet.

This argument loses traction because it assumes that the ISP packets will push out the 3rd party packets, which is true only if those packets exist AND if there isn't sufficient additional bandwidth to service those packets. Think of it this way. We're in line to get on the bus. Some customers have priority passes and get to go to the front of the line at any bus stop (these are the low latency customers). But I don't have this pass, so I have to hope that there's a seat available after they get on. If there is a seat available (e.g. there's enough bandwidth) then they get on the bus and I get on the bus and we both have the same latency to get to our destination. The only time this is a problem is if someone in front of me takes the last seat on the bus. At which point there isn't enough bandwidth to take me, and my latency is worse because I have to wait for the next bus.

This is the way it works with VoIP. In order for ISP VoIP to push out 3rd party VoIP, the available bandwidth has to be so low that we both can't use it at the same time. It also assumes that there are going to be lots and lots of high priority packets which will force 3rd party VoIP to the back of the line. This last part is dubious when you compare the price of cableco provided VoIP to 3rd party VoIP.

My local cableco VoIP offering is $39.99/mo. Compared to Vonage's equivalent offering of $24.99/mo, that makes Vonage nearly 40% cheaper! I don't see how the cableco is going to get enough customers to enable their VoIP offering to push out the 3rd parties. And even if they do get enough traffic to push me to the back of the line, they're going to have to lower their current bandwidth so that I'm not the only thing pushed to the back of the line - everything is. In which case they'll probably lose more broadband customers than they gain in VoIP customers.

I don't see this as a market that the cableco can force its way into by playing networking tricks... but I could be wrong. If I am let me know how.

Wednesday, March 16, 2005

I can't believe I'm going to blog on Social Security

But, apparently I am. I'm no expert in the field, by any stretch of the imagination. And, please gentle reader (all 1 of you), correct me if I start pretending to know more than what is actually true. But I haven't yet read anyone comment on this part of the deal, so I will. (UPDATE 3/28/05: Someone HAS commented on this, and expands much further than I did.)

Social Security is a problem today because, today, the surplus of collections is dwindling. This is because more people are retiring than entering the workforce. When a person retires, they stop paying into social security and start collecting from it. So in one step they decrease the amount of money put into social security and increase the amount that must be paid out. In order for the surplus to not be effected by this, someone must enter the work force and start paying the payroll taxes that were lost when the person retired, and someone must die to stop collecting the social security check that now goes to the newly retired person. If just one of those things doesn't happen, the surplus dwindles.

This aggravates congress and the president because, despite the fact that social security is supposed to be a trust fund, the surplus is not held in trust. Instead, the congress and the president spend it on the general budget in exchange for (essentially) a bunch of IOUs. So, when the social security surplus dwindles, funds available for spending in the general budget dwindle. Maybe this is why the senate voted unanimously to reform the program. There are three ways to resolve this problem:
  1. Decrease spending on existing programs
  2. Increase taxes
  3. Spend on loan - e.g. increase the deficit
Not a single one of these options is palatable to someone trying to gain re-election. But, of course, with the right type of reform, we could take on some additional one time debt and get rid of long term perpetual debt.

In 2018, the surplus will have dwindled down to nothing, and the social security administration will have to start calling in those IOUs. At that point, not only will the congress and the president no longer have extra cash to spend, they'll have to pay back the cash that they spent. In other words, the general budget will be responsible for funding social security (see the above 3 ways that this can be accomplished). In 2042, the congress and the president will have paid back all of the IOUs, and the amount received in payroll taxes will be less than the social security payments, and the social security fund will be broke.

But there are clearly problems long before we ever get there. Justifying, I believe, the call to reform social security. I think it's clear that we need to get out of the "pay as you go" system. Its viability fluctuates with the size of the population, and it's too easy for congress and the president to appropriate any surpluses and spend them. I'd much rather see us use private accounts, even if this is done through forced savings. At the very least, this will prevent the congress and president from spending the surplus. They can't spend it because it's not their money.