Embedded Ethernet and Internet Complete
Axelson's writing style is a little difficult to describe. At times you feel you could be reading a "For Dummies" (TM, Patent Pending, Please Don't Sue Me) book since her writing style is so easy to digest, but simultaneously, she's covering quite a bit of depth and breadth which you expect from a more advanced volume. This seems paradoxical yet the point stands: you will retain what you read from Axelson.
ContentsThe networking basics sections describes the network protocol stack (Ethernet, TCP, UDP, and IP frames), collision mediation, and how to use a sniffer (Ethereal in her case). It's of moderate detail suitable for an introduction. Much more detail is provided in later sections. Axelson also uses this section to describe, in good detail, the Ethernet media access control scheme that arbitrates which device talks when and how to handle packet collisions.
These network hardware sections are an in-depth description of cabling (Cat-5, fiber, wireless, etc.) which includes bit rate, max lengths, encoding types, etc. She also includes a small section on building your own Cat-5 for you really cheap Joes. There is a cursory review of hubs, switches, and routers and the network architecture limitations imposed by each for each type of network cabling.
Axelson goes on to describe some common embedded systems including TINI (Java-based) and Rabbit (C-based), which are the two systems she uses and provides examples for. Thankfully, keeping with her Circuit Cellar hobbyist tradition, both of these systems are very affordable to the casual hobbyist. She also provides detailed descriptions of some common Ethernet chipsets down to the registers (at least for the ubiquitous NE2000 registers). Also included are schematics for typical interfaces to these chipsets for the reader who wishes to build his own Ethernet-aware embedded system.
The Internet basics sections describe the various connection solutions such as dial-up, DSL, and satellite and the benefits and limitations of each. Axelson provides a cursory discussion of firewalls, domain naming and DNS, URL dissection, DHCP, NAT, ARP, and ICMP. These sections, I believe, are suitably informational for the embedded system designer, but not exhaustive. She then launches into an in-depth discussion of IP addressing and the IPv4 header which, in my opinion, is required for anyone working at the packet level. Axelson uses some data from Ethereal to support her discussion of IPv4. She also reminds us that Ethernet communications need not use the full TCP or UDP stack but can, if desired, use only IP-wrapped packets or even just Ethernet frames to communicate.
We finally get to some real code in the TCP/UDP socket communication sections. Axelson begins with samples of UDP, then TCP, socket communications. She bounces back and forth between Rabbit C code and TINI Java code. Both sets of examples are properly threaded so as to be more than just academic-example hogwash. Then she delves into the details of UDP and TCP, beginning with descriptions of the frame headers, then concludes with handshaking/flow-control (SYN-ACK and so forth). She includes suggestions for other books that continue even deeper into socket communications which is very nice especially since they aren't gratuitous promotions from the same publisher. (They are, in fact, from two different publishers.) By the way, Lakeview Research is her own company, so Axelson self-publishes. Nice.
Fully half of the book is dedicated to describing the top layer of the protocol stack: applications. Specifically, HTTP client and server, receiving and sending email, and FTP client and server. The HTTP samples leverage the bundled TINI and Rabbit libraries to serve web pages. Axelson also includes examples of running a third-party servlet engine (Tynamo) on the TINI system. Similarly, the sections for sending and receiving email and the FTP client/server leverage the bundled libraries of Rabbit and TINI. I find this appropriate -- why write low-level socket code when there are available libraries that perform all the grunge work for you? If you do need to modify the support libraries, the Rabbit Dynamic C source code is available, but the TINI Java library source code is not.
The last few sections of the book discuss security. Axelson doesn't leave security as a footnote, as she does include sample code for basic authentication, but she also doesn't give security the depth she provided the other topics. Sure, security is a huge topic which would take numerous volumes to cover, but I thought this section could use a little more detail. I would like to have seen example code in the sections on encryption (both symmetric and asymmetric). I would like to have seen what is required to enable SSL in the web server examples. If these were not to be provided, I would have like to have her cite other books which would have completed her discussion as she did in the raw socket communications sections.
What Could Be ImprovedI don't really like the large font and spacing used in this book; I prefer a more condensed text which probably would have reduced the book size some 20% or so. But as I think about it, perhaps this is one characteristic that make Axelson's books so easy to read: there is little eye-strain.
In the hardware sections, I would like to have seen even a trivial example of an NE2000 device driver. It wouldn't even have to be an Ethernet-compliant driver, just something that demonstrates sending and receiving with flow and error control. This would be useful if you were building your own device which didn't include a protocol stack.
In the low-level socket communications sections, I would have preferred to see two things. First, I would have liked to see a test program that communicated between the C-based Rabbit and the Java-based TINI to demonstrate a heterogeneous distributed embedded system. Second, I would have like to seen an echo test program. When prototyping communications to any embedded system I always write an echo test program which begins by transmitting a small message with a numeric value, then listens for messages, increments their value, and sends them back out. Validation testing is performed during this process. This program is easy to write and a great diagnostic tool.
ConclusionSince this is my first book review I can't objectively give it an absolute rating like 4 stars or 8/10 since you have nothing to compare my judgment to. However, I can say that this book is well worth the money spent which, all too often, isn't the case anymore these days. I think Axelson has struck an ideal blend of detail where needed and summary when detail is not required. The book is organized well and should satisfy both the casual bathroom reader and the rigorous, horribly-cracked-binding, lab-bench-reference reader.
I like Axelson's writing style; it's an ideal blend of assume I'm an idiot-style when you need it and in-depth when you want to dig. Another great point: she doesn't stuff the appendices with data sheets, API documentation, or command syntax references. All those can be found on-line and have no place in a book, where they quickly become dated. If you absolutely must have a definite rating, then I'd give it an 8 or 9 out of 10. I would place books like Stevens' Unix Network Programming at a solid 10 and about 99% of the other books out there around a 5.
You can purchase Embedded Ethernet and Internet Complete from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
Oops, didn't really make it.
Get it?
Forrest Post.
Heh.
mmmmm, frosty pist!
Michael Jackson's bed
Stained with semen, spots of blood
Tiny fingerprints
Thriller, Off The Wall
History, Bad, Dangerous
Titles say it all
Is he black or white?
He was black when he was born
Now he's sort of grey
Visit Neverland
See the monkeys in their cage
You'd be safer there
The anti-salmon
What kind of woman writes stuff like this.
Women should be on the street puttin duckets in my pocket.
"If we have a Windows 2000 Server as our domain server (no way to get rid of it) with Kerberos authentication, can Samba clients live in the same network so that the users are authenticated from the server?"
It sounds like a good title to have around, I will probably buy it just for that reason.
However, if the device or embedded system you're working on is already designed and your goal is to network-enable it, what do you guys turn to? From what I've seen around, Lantronix XPort is a good option for cheap embedded device servers, but what else is available?
"Eve of Destruction", it's not just for old hippies anymore...
Ethernet, TCP, UDP, and IP frames
Uhh.. Ethernet uses frames, IP uses packets.
... is the author a hot chick?
Listen you, there is nothing *wrong* with sucking cock. *Cock* is good. A large part of my diet comes from *cock*, and quite frankly, sucking *cock* is easier than eating pussy, and the feedback is 100% better. So I say to all you cute guys, shave your pubes and get some *cock* action. In fact, sucking *cock* is quite tasty indeed, sperm is mostly albumen protein which is the same as egg whites. So, if you want to learn to eat cum, try egg whites with a little salt. The trick to sucking a good *cock* is to run your mouth around the base of the head. Drive a guy *crazy* that way, you will. Than, lick the underside of his shaft as you fool with his balls, oh my God. The real joy for a trouser snake monster is sucking up a cute teenage boy who has never had *cock* or pussy. Let me tell you, they moan and thrust like your first fuck every time.
"Who are in control, they are not in control of anything - they don't even control themselves!" - Glen Beck
I said to myself Jan pronounced Yaan, but it's Jan short for Janet.
IT-ZA KREY-ZEE VORRL-DA VEE LEE-VA IN-A
Hey that's George from Seinfeld! And the guy who married Britney Spears
Used to be that San Francisco sent it's laundry by ship to be done in China. That was a temporary situation, too.
To Whom It May Concern (other than myself):
Hi. I have been a huge fan of cereals of all kinds for my whole life. Sometimes I eat it for all three meals of the day, or live on it exclusively for weeks, or put it in my underpants to keep me feeling fresh (and also as an emergency back-up snack). I cereasly love it.
I am especially fond of a lot of your cereals like Boo Berry and Trix and Chex and Lucky Charms and Cookie Crisp. My absolute favorite is Fruity Pebbles though, which I believe is a Post cereal. Maybe you guys should make something that tastes like Fruity Pebbles except manages not to have Fred Flintstone's ugly mug all over the box. Yabba Dabba Eww. Anyway, my point is that I like a lot of your cereals and so I am personally concerned with their condition. And, quite frankly, lately I've been a bit worried.
Let's start with my favorite cereal of yours - Boo Berry. I love Boo Berry... at least I think I do... actually, I know it used to be my favorite cereal but I haven't had any in years so I've kind of forgotten what it tastes like - because it's not in any stores! No stores in my area carry it. I checked on your website and apparently you still make it; you even offer it for sale. Unfortunately I can't justify buying it for the $6.74 for a twelve ounce box price. You do offer buying it in a case instead of a four pack, which would drop the price to $4.71 a box, but that is still unreasonable and would also require me to spend an entire week's pay on a large shipment of haunted cereal. My girlfriend would kill me (if I didn't overdose on blue food coloring first).
I think I have a solution to this dilemma. I know you can't force any businesses to carry your cereals and I know that you can't afford to sell them direct for less than $4.71 and still have money left over to pay for upkeep on Count Chocula's castle, hiring someone to build 400 mind-numbing advertisements disguised as crappy kids games for youruleschool.com, and keep your CEOs rolling in golden Kix. So here's what you should do - open up your own stores all across the country. You've already got one in Mall-of-America, now put one in every mall in America. Even if you don't sell much cereal (and you'd sell a lot, trust me) it would be great advertising. You can sell t-shirts with nifty slogans like "Frosted Wheaties: When You're Too Damn Lazy To Put Sugar On Your Own Wheaties!" or "Honey Nut Chex: It Rhymes With 'Funny Butt Sex' For A Reason!" and other stuff which is even more great advertising plus it makes money up front. I can see it now, picture a young child in the mall with its mother...
YOUNG CHILD: Mommy! Mommy! Look at all the pretty colored cereal!
MOTHER: Oh Honey, you know cereals like that are just a result of the global dentist/cereal/porn conspiracy, we've been through this a million times...
YOUNG CHILD: Awww...
MAN IN TRIX RABBIT SUIT comes out of the store.
MAN IN TRIX RABBIT SUIT: You know Ms. Averagemother, all of our cereals are fortified with titanium plating and deflector shi... er, essential vitamins and minerals; and they are a part of this complete breakfast.
MAN IN TRIX RABBIT SUIT whips out a complete breakfast on a tray.
MOTHER: Well... I guess a few minutes couldn't hurt...
YOUNG CHILD: Gee, thanks mom!
YOUNG CHILD runs in followed slowly by MOTHER. Group of scantily clad dentists appears and drags MOTHER into back room. YOUNG CHILD transforms into a cartoon and spends eternity trying to steal Lucky's Charms and torturing the Trix Rabbit by hogging the cereal.
Now, on to my next suggestion. You need to do something about Cheerios. Really, they're awful. Yes they are good for my heart, but this is overshadowed by the fact that they taste like my butt.
On the other hand, a cereal that already tastes great is Lu
FUCK YOU
...let me suggest not starting your list improvements talking about fonts ;-)
"Ain't I a stinka..." - Bugs
Anyone propagating ethernet, IP and TCP for real time systems should be hit with a stick. Hard.
Babbling hyped protocol PR is regretable, utter nonsense not.
Over 90 years and counting !
he is god
he is god
And the usual code quality report courtesy PMD:
The Army reading list
You mean I can buy the Internet?
I wonder if the book includes a CD?
- - - - - - - - - - -
I am a programmer. I am paid to produce syntax not grammar. Deal with it.
Embedded and real-time are not equivalent.
For whatever reason
I feel like I've been wanting you all my life
But you don't understand
I'm so glad we're at the same place at the same time
Its over now
I spotted you dancin'
You made all the CowboyNeals stare
Those lips and your brown eyes
And the sexy hair
I shake shake my thing
I make the world want you
Tell your Trolls you'll be back
I wanna see what you can do.
What would it take for you to just leave with me
Not trying to sound conceited but me and you were meant to be
You're a sexy troll, I'm a nice girl
Lets turn this dance floor into our own little nasty world
Trolls
Sometimes a girl just needs one
Trolls
To love her and to hold
Trolls
When a girl is with one
Trolls
Then she's in control
Pick a troll off the dance floor. (Make him say duh-huh)
Screamin in his ear
Must of said somethin' bout me (what you said?)
Cuz he's loookin over here
You looking at me
With that sexy attitude
But the way you troll's movin in
It puts me in the mood
What would it take for you to just leave with me
Not trying to sound conceited but me and you were meant to be
You're a sexy troll, I'm a nice girl
Lets turn this dance floor into our own little nasty world
Trolls
Sometimes a girl just needs one
Trolls
To love her and to hold
Trolls
When a girl is with one
Trolls
Then she's in control
Do you normally _jack off_ while reading Slashdot? Or do you _jack off_ thinking about your cube-mates' wife? You are a very sorry person.
just making slashdot a better place. mod down. teabaggers.
I read the title and thought: "They finished embedding the Internet?"...
Anybody seen something similar, but for USB? I.e., if you want to build an embedded USB slave device?
"Eve of Destruction", it's not just for old hippies anymore...
fwiw, I've been using a Rabbit (RCM2200) for almost a year now on a personal project. It's connected to my house network, which is connected to the internet via the normal methods (Linksys hardware). The supplied libraries that come with the Rabbit are very capable as-is, but you can expand them if need be since you get the source (as the reviewer mentioned). I added code to be able to do authenticated smtp logins, for example. Getting code up and running to be able to do a telnet login to check on its status, and change settings was dead easy. It runs 24/7 and has been very reliable... the uptime hasn't exceeded a few months simply because I usually don't go that long without performing a code update of some kind, or otherwise powering down for a hardware reconfig, etc. Someday I may document the project and submit it to /. .... those who have seen it thus far think it's pretty kewl.
w
If so, then this article is not worth looking at.
Much like michael's fat bitch.
By the way, Lakeview Research is her own company, so Axelson self-publishes. Nice.
While I admire Jan for making a viable business out of something she obviously loves, she seems to have bitten off a lot for herself. After building some prototype hardware based on Parallel Port Complete, I found the book had an error making my hardware quite crippled (a software workaround was possible, but inefficient and ugly). I pointed it out to her via e-mail, but it was never resolved to my satisfaction. AFAIK, to this day that error still exists.
I began to wonder what it must be like to self-publish and then deal with an error report when you are author, editor, publisher and tech support all rolled into one. A bigger company may not have handled my issue any better, but certainly it would have the resources do so easier than a small self-publisher. My two cents are: Jan's stuff is great for hobbyists, but beware of accuracy.
Donald Duck is going to have a SCREAMING ORGASM when he orders this from Amazon along with their 1 click patent.
TCP/IP Lean by Jeremy Bentham, ISBN: 1-929629-11-7
Cirrus Logic CS8900a Ethernet module, it works in 8-bit mode
Buy a CS8900 module.
** Shameless plug **
Read my thesis about how to put it all together.
It may be a better fit for those of us with absolutely no background, really short attention spans and very strange ideas about what might be cool to do to a toilet...
You refer to Jan as "her" and "she". Jan is a (Swedish) male name, however.
Assuming they mean making up network cable and not actually fabricating CAT-5 wire, why on Earth would you NOT make your own cables?
CDN$.30/foot + connectors is a hell of a lot cheaper than the precut lengths that are only available in standard sizes (25ft, 50ft), and it's very easy..
Jan is also a woman's name in English (the language the book is written in.)
The publisher's bio shown at the linked Barnes and Noble site for the book says, "She".
We routinely publish her work in Nuts & Volts (hobby electronics) as well as SERVO Magazine (personal robotics).
Dan Danknick
Technical Editor (of both)
I found this the other day in a Dev Kit at http://store.systronix.com. It came with a TINI400 (TStik), Socket Board and this book.
It was the only book they sell on their site (which piqued my interest).