Understanding protocols
April 25, 2007 12:44 AM   Subscribe

Please help me understand protocols better.

I'm trying to gain a deeper understanding of protocols (such as TCP, iSCSI, ...). I find them easy to understands in terms of commands getting passed around, but what I'm looking for is a more abstract way of thinking about them. For example, if I were to discuss the merits of Fibre Channel over Ethernet vs iSCSI, critiquing the design of both, what kind of concepts would I use? Are there conceptual frameworks that give you deeper insight on an abstract level? And does this question make sense at all?
posted by dhoe to Computers & Internet (8 answers total) 7 users marked this as a favorite
 
Start with the OSI model. TCP/IP doesn't really quite fit into it cleanly, but the basic concept of layers is an important one to understanding protocols.

The critical thing to understand is that an agent at a given layer uses the layer below it to communicate to its peer at the far end of the link, and the agent and its peer work together to provide services to the layer above.
posted by Steven C. Den Beste at 1:13 AM on April 25, 2007


Also, each layer abstracts and hides the one below it from the view of the one above it. That means that TCP (layer 4) doesn't have to know whether the physical link (layer 1) is 10baseT ethernet, 100baseT ethernet, or Wifi. Neither does IP (layer 3). Both TCP and IP work exactly the same way over all of them, because the details of the physical link are hidden from them by layer 2.

When you're talking about something like SCSI, the standard defines several layers. SCSI layer one is a standard for the cable that connects devices together, saying what each wire means and describing timing and voltages and so on. SCSI also describes the end-to-end communications protocol that travels over that cable, which is more-or-less transport layer (layer 4) with a bit of layer 3 addressing mixed in. Layer 2 is local interface drivers which are left unspecified by the standard.

Strictly speaking, if it's handled cleanly, it would be possible to transact SCSI commands across USB, because USB is layer 3. I don't know if anyone actually does that, but they do something similar in order to control external USB hard drives.
posted by Steven C. Den Beste at 1:32 AM on April 25, 2007


For understanding TCP/IP, TCP/IP Illustrated would be a good start, as well as the other books that W. Richard Stevens has written.
posted by cmonkey at 3:59 AM on April 25, 2007


TCP/IP Jumpstart is another reference to thumb through, though the free protocol tutorials in Novell's Networking Primer are your your quickest bet.
posted by Smart Dalek at 4:50 AM on April 25, 2007


I would also suggest that you consider the larger context around various standards. For example when considering iSCSI vs FiberChannel it's important to consider the goals of simplifying infrastructure and gaining economies of scale that inspired iSCSI, and how well it achieves those goals.
posted by Good Brain at 8:20 AM on April 25, 2007


Response by poster: Thanks for the answers so far. To clarify, I'm not so much looking into explanations of specific protocols; what I'm after is an abstract way of think about them. Imagine you've never heard of protocol X, grab the spec and start reading - what goes on in an expert's head? I guess something like "oh, I see, it's a layer y protocol. Stateless, hm", etc. So he's got abstractions in his mind that he uses to assess the new protocol. But what does he think exactly?
posted by dhoe at 8:36 AM on April 25, 2007


You should read "Computer Networking: A Top Down Approach." It's very high level, and gets you thinking about the sorts of things people keep in mind when design protocols.
posted by chunking express at 8:52 AM on April 25, 2007


Best answer: Imagine you've never heard of protocol X, grab the spec and start reading -

I've done this a lot. (I remember trying to decipher the CCITT standards for X.25--in comparison, the Internet RFCs are much, much easier to read.)

I'd recommend starting with Andrew Tanenbaum's Computer Networks, a commonly used textbook. For example, if you look at section 1.3.2, he gives a quick rundown on protocol design issues:
Addressing

Rules for data transfer: simplex, half-duplex, full-duplex; logical channels

Error control

Sequencing

Flow control

Segmentation and reassembly

Multiplexing

Routing
A number of chapter samples are available online, including Chapter 1.
posted by russilwvong at 9:33 AM on April 25, 2007


« Older Looking to recreate the "perfect" sound   |   Can I make a doomed project worth my while? Newer »
This thread is closed to new comments.