Slashdot Mirror


Embedded Ethernet and Internet Complete

tdrury writes " Embedded Ethernet and Internet Complete , by Jan Axelson, is targeted towards the professional as well as the hobbyist embedded system designer who wants to further extend his communication options from traditional serial (RS-232, RS-455) communications to Ethernet. Axelson had been an author for Circuit Cellar magazine, and I have always enjoyed her articles, which tend to cover embedded communications of one type or another. (Axelson authors a set of Complete books including ones covering serial, parallel, and USB communication.)" Read on for the rest of tdrury's review. Embedded Ethernet and Internet Complete author Jan Axelson pages 482 publisher Lakeview Research LLC rating 9 reviewer Tim Drury ISBN 1931448000 summary Designing with Ethernet in embedded systems.

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.

Contents

The 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 Improved

I 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.

Conclusion

Since 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.

21 of 105 comments (clear)

  1. FP by Anonymous Coward · · Score: -1, Offtopic

    Oops, didn't really make it.

    1. Re:FP by Anonymous Coward · · Score: -1, Offtopic

      hey that was a really good first post! congrats on getting it!

  2. Life is like a box of chocolates! by Anonymous Coward · · Score: -1, Offtopic


    Get it?

    Forrest Post.

    Heh.

    1. Re:Life is like a box of chocolates! by Anonymous Coward · · Score: -1, Offtopic


      God -damn- I miss Peter, Paul and Mary.

  3. fp! by Anonymous Coward · · Score: -1, Offtopic

    mmmmm, frosty pist!

  4. Michael Jackson Haikus by Anonymous Coward · · Score: -1, Offtopic

    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

    1. Re:Michael Jackson Haikus by Anonymous Coward · · Score: -1, Offtopic

      i absolutely love:

      Thriller, Off The Wall
      History, Bad, Dangerous
      Titles say it all

      You've got some flare. keep up the good work. (if it's not a paste)

  5. Can you do it or can't you? by Anonymous Coward · · Score: -1, Offtopic
    That's what my boss asked me.

    "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?"

  6. Re:A woman wrote this? by Anonymous Coward · · Score: -1, Offtopic
    Women should be on the street puttin duckets in my pocket.

    I like to keep my women serving me in the kitchen during the day and in my bed at night. It's hard to find women, who understand this god-given role of theirs. I blame it on the liberals and "sensitive males" who have voluntarily given women this power.

  7. But the most important question is ... by Anonymous Coward · · Score: -1, Offtopic

    ... is the author a hot chick?

    1. Re:But the most important question is ... by Patrik_AKA_RedX · · Score: -1, Offtopic

      She's in IT so, only when she takes off her glasses. (Or has TV been lying to me again?)

  8. Written by Jason Alexander! by Anonymous Coward · · Score: -1, Offtopic

    Hey that's George from Seinfeld! And the guy who married Britney Spears

    1. Re:Written by Jason Alexander! by Anonymous Coward · · Score: -1, Offtopic
      He has two first names?!!! Inconcievable!

      Errr... I meant to ask "Britney Spears married George from Seinfeld"?!!!

  9. Re:Thanks for the review by Anonymous Coward · · Score: -1, Offtopic

    If you're not advertising, then I don't know what an advertisement is...

  10. Rubbish by Samuel+Duncan · · Score: -1, Offtopic

    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 !
  11. Re:A woman wrote this? by Anonymous Coward · · Score: -1, Offtopic

    The smartest person I know is a guy.

  12. Re:A woman wrote this? by Anonymous Coward · · Score: -1, Offtopic

    The smartest person I know is female.

    Do you think that someone is gonna award you a PC prize or women will get the hots for you just because of bullshit statements like that?

  13. You want Britney!!!! here ya go!!!! by Anonymous Coward · · Score: -1, Offtopic

    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

  14. Re:Code samples for the book.... by Anonymous Coward · · Score: -1, Offtopic

    whatever the hell that gibberish is, the trolls have conquered this story. cease and desist, you ontopic bitch

  15. Jakcin' fool by Anonymous Coward · · Score: -1, Offtopic

    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.

  16. tha'ts a ;ptta noise to signal by Anonymous Coward · · Score: -1, Offtopic

    just making slashdot a better place. mod down. teabaggers.