In a nutshell, Metricom is forcing a service with their Ricochet products. This is evil, but
also means the loss of a perfectly usable feature: peer-to-peer. It's funny, because while
the world should be advancing, things like this are hindering our movement. I picked up a Ricochet
modem today while sitting on the couch admiring the design. Sadly, it is crippled by a
nameserver service. Isn't that pathetic? Read on:
"Ricochet" is a wireless modem system run by Metricom. Their main purpose is to serve as an always-on wireless data solution. While using a cellphone can cost you by the minute, Metricom charges a flat monthly rate so you can stay online as long as you want at 28.8kbps. The catch? Metricom coverage is not as abundant as cellphone coverage. Only a few select cities have coverage to date. This is probably due to the range that the modems can transmit. Cellular phones can transmit for miles, and usually require just a base tower. Ricochet modems communicate with repeaters that are strategically placed on lightpoles at about quarter-mile intervals.
A not-often-used feature of the modems is their ability to operate peer-to-peer. Sure, you can dial-in to Metricom's PPP Internet Service Provider, but you can also call your friend's modem. When subscribed, the peer-to-peer communication could be carried over the pole-top repeaters. With no subscription, the modems could communicate in close proximity.
This proved to be interesting, as the Ricochet modems could be used like wireless data walkie-talkies without a provider. Just stay in range and you're good. The modems use the AT command set, so dialing another modem was as simple as dialing the other modem's "modem number" (printed on the bottom of each modem) using ATDT. In fact, the receiving modem would even send a "RING" string to the host. Sure enough, "ATA" answers the call and establishes the connection. Obviously the engineers down at Ricochet are thoughtful about being standards compliant. In fact, Ricochet modems are the only devices of this kind to exist. Other wireless modems use CDPD, or other provider-necessary protocols. The Ricochet modems are truly unique in the regard that they can be used stand-alone.
Despite being useful outside of the service area, the Ricochet modems were extremely hard to obtain. Metricom wanted a year contract signup upon purchase, which made the cost extremely high for someone who just wants the modem to play around with. A better way to get them was through hand-me-down, like an ebay auction (usually around $150 for a used model).
One of the most popular non-standard uses of Ricochet modems is "STRIP", which stands for Starmode Radio IP. Developed at Stanford University and used in their Mosquitonet project, STRIP takes advantage of an interesting connectionless packet mode in the Ricochet modems. This allows the modems to communicate in an ethernet style network as opposed to making a stream connection to another modem. STRIP has been a part of the Linux kernel since the 1.x days, and is fully functional. It is truly a neat idea. Similar to wireless LAN, but with a slower speed and longer range (miles instead of feet).
Recently, Metricom unvieled their new 128kbps service. Now users could have wireless data at ISDN-speed with a flat rate of $70/month. Would these new modems have all the cool features of the original 28.8 models? Yes and no.
One day I was at the local Fry's, and I made a double-take when I saw the stack of Ricochet modems. There they were, the new GS models supporting 128kbps. The price? $99. I was shocked. 99 bucks?! I spent almost $300 on my two used 28.8 Ricochet's from ebay. I asked the guy there if I had to sign up for a year or something silly in order to purchase. He said no, and that I sign up when I get home by calling the customer service number on the box. Wow! What a deal! I had always wondered if there would be a day when Metricom would sell the modems raw. Had Metricom finally realized that the modems were worth something even without service?
Well.... no, actually.
I go home, and a friend and I boot up our computers to do a test in the same room. We plug into our first serial ports. We both open terminal programs, set our terminal settings and proceed.
So far so good. We then tried to dial:
A few moments later, "CONNECT 115200". Then suddenly a blast of PPP data. If you've seen PPP data, you know what it looks like. This was obviously not the other modem I was connecting to. We then tried playing around with some of the 'S' registers in the modem. One had a PPP option flag. We turned it off:
Then we proceeded to dial again:
So it didn't like that. We tried it several times, getting an error always. What could possibly be wrong? Well a funny thing soon happened. We continued testing, and somehow, somewhere, we got the modem into a strange state. I will explain: Normally, when you press a key during a dial, what do you get? You get:
The keypress cancels the dial. Well, somehow (and I really have no idea how, I am unable to reproduce it) we wound up in a state where a keypress wouldn't cancel the call. Instead, it took two keypresses to cancel the call. How is this significant? Well, upon pressing the first key, a "RING" would appear on the receiving modem. If we didn't press a key, then it would give us the "ERROR" message 100% of the time.
Immediately after, I checked the status of the modem using:
It had a message at the end of the status saying "Nameserver registered: Last lookup failed" or something along those lines. Nameserver?? I had never heard of this, so I did some research on the 'net. Apparently the Metricom network uses a sort-of nameserver to route connections efficiently through the poletop repeaters. So I was logged into a nameserver, and my last lookup failed. I concluded that the first keypress canceled the host lookup. So this nameserver is normally resolving my other modem to someplace else. In fact, it forwards me to Metircom's central PPP service! Come to find out, *EVERY* number takes me to the PPP service.
Figuring it was a fault of the nameserver, I issued a reset:
I checked the status of the modem frequently after reset, waiting for it to say "Nameserver registered." Sure enough, the modem beeped and that's what the status message said. It took around 30 seconds to happen. I tried a dial and got the blasted PPP service again. I disabled PPP and got an ERROR message as usual. I then reset the modem again and dialed immediately after booting.
Bingo! No nameserver, no cheesy forwarding.
I tried numorous tests, and I found that dialing consitently works as long as nameserver registration hasn't happened yet. I also noted that the receiving modem could be registered and it would not affect the call. Not surprisingly, the connection held once dialed. Even if the modems eventually registered to the nameserver it would not disturb the current call. However, no calls could be made after that unless I deregistered first by using the soft reset (ATZ9).
Next, I tried STRIP. It worked for a few seconds, then died. Apparently since Starmode is connectionless, the packets all start routing wrong the instance nameserver acquisition happens. This makes STRIP worthless on these modems. I dug out my old 28.8 Ricochet modems and tested STRIP with those. Sure enough, it worked great. Obviously there is nothing wrong with STRIP. There is no mystery here, the nameserver is giving wrong destinations to the modems.
Unfortunately there is no way to disable the nameserver connection on startup (well except hacking the firmware).
Well, it almost works. I don't actually live in a Metricom coverage zone, but I am close enough
to the nearest one that I end up registering to its nameserver. Had I lived just a few blocks
farther away, I would have no difficulty connecting my modems. So, in effect, Metricom's
network is sabatoging my home-rolled peer-to-peer network. They obviously don't want
people using peer-to-peer anymore. According to Alex Belits (see his Ricochet page here), Metricom removed all references
to peer-to-peer and Starmode from the manual, as well as disabled peer-to-peer poletop routing
(so even if you have service, you can only use peer-to-peer in close proximity). Even then, if
the modem was made after December 23, 2000, then the modem is enlisted in the nameserver so
even proximity doesn't work if you are in the coverage zone! Is this right
of them though? Should they be allowed to do that?
So I decided to call Metricom. Here is a retelling of the phone conversation.
Them: "We don't want you using Peer-to-peer mode. If you can get it to work, then good for you. Otherwise, we cannot help you."
Me: "Unacceptable. I am running a peer-to-peer network, and your nameserver system is interfering with my network. Please remove my modem# references from your nameserver."
Them: "I'm sorry, but the modems do not support peer-to-peer anymore. The 128kbps models were designed with that disabled."
Me: "Wrong. My modems work fine in peer-to-peer, only before nameserver acquisition. And I have seen certain 128k GS models work peer-to-peer. The only reason mine don't work is because of the nameserver. I did not buy different modems, they operate exactly the same. It is your nameserver causing the trouble."
Them: "Look, how much did you get those modems for? $99?"
Them: "That's a promotion. The modems are worth much more than that. How can we expect to make a profit if no one buys service. It's just like a cellular phone."
Me: "Perhaps, but then why do you allow me to buy the modem without service? You can't do that with a cellular phone, at least not with a discount. You have to buy the service and phone at the same time. With Ricochet, I can just buy the modem. There is definitely a flaw in your plan."
Them: "It doesn't change the fact that you are taking advantage of us, and that we depend on the service signup. The modems would normally retail for $599."
Me: "But I can't buy them for that price, no store sells them like that. There is no way I can get a "non-discounted" Ricochet modem like I can get a cellular phone. You are forcing a service and a product together. That should not be allowed."
Them: "Well, you technically don't have to buy service, as you said. If you want to keep the modems stand-alone, you can. But they will not work."
Me: "But they work! The only reason they don't is because I happen to live really close to Metricom territory. It is your external network that is causing my modems to not operate. Please take me out of your nameserver."
Them: "I'm sorry sir, but we can't offer support for the modems."
But.. But.. But! Blah!
The conversation proceeded to go nowhere, we discussed Stanford's Mosquitonet, and Linux STRIP. He said that while it sounds cool, "we can't support it" and that if "our network ever interferes with them, then tough luck."
Also, he said the company's future plan is to remove all code related to P2P from the modem's firmware. Gee, so much for the good engineers at Ricochet thinking ahead. Upper management raises their ugly hand. So now all older Ricochet modems are somewhat novelties. My 28.8 models work fine in all ways, and heck, even these 128kbps models work in a no-coverage zone. But that will soon change. It's a shame, because Ricochet really has some cool technology here. I think it's time buy a bunch of $99 GS models and then move to South Dakota and start a Linux STRIP network. OK who's with me?? ;-)
This can't be right.. Is this right? Tell me there is something I/We can do. Maybe I'm just a wimp on the phone.
Useful Ricochet links: