| Aside from the issues of the physical network 
    (signal types and voltage levels, connector pinouts, cabling, topology, 
    etc.), there needs to be a standardized way in which communication is 
    arbitrated between multiple nodes in a network, even if it's as simple as a 
    two-node, point-to-point system. When a node "talks" on the network, it is 
    generating a signal on the network wiring, be it high and low DC voltage 
    levels, some kind of modulated AC carrier wave signal, or even pulses of 
    light in a fiber. Nodes that "listen" are simply measuring that applied 
    signal on the network (from the transmitting node) and passively monitoring 
    it. If two or more nodes "talk" at the same time, however, their output 
    signals may clash (imagine two logic gates trying to apply opposite signal 
    voltages to a single line on a bus!), corrupting the transmitted data.
    The standardized method by which nodes are allowed to transmit to the bus 
    or network wiring is called a protocol. There are many different 
    protocols for arbitrating the use of a common network between multiple 
    nodes, and I'll cover just a few here. However, it's good to be aware of 
    these few, and to understand why some work better for some purposes than 
    others. Usually, a specific protocol is associated with a standardized type 
    of network. This is merely another "layer" to the set of standards which are 
    specified under the titles of various networks.  The International Standards Organization (ISO) has specified a general 
    architecture of network specifications in their DIS7498 model (applicable to 
    most any digital network). Consisting of seven "layers," this outline 
    attempts to categorize all levels of abstraction necessary to communicate 
    digital data.  
      Level 1: Physical Specifies electrical and mechanical details 
      of communication: wire type, connector design, signal types and levels.
      Level 2: Data link Defines formats of messages, how data is to 
      be addressed, and error detection/correction techniques. Level 3: Network Establishes procedures for encapsulation of 
      data into "packets" for transmission and reception. Level 4: Transport Among other things, the transport layer 
      defines how complete data files are to be handled over a network. Level 5: Session Organizes data transfer in terms of beginning 
      and end of a specific transmission. Analogous to job control on a 
      multitasking computer operating system. Level 6: Presentation Includes definitions for character sets, 
      terminal control, and graphics commands so that abstract data can be 
      readily encoded and decoded between communicating devices. Level 7: Application The end-user standards for generating 
      and/or interpreting communicated data in its final form. In other words, 
      the actual computer programs using the communicated data.  Some established network protocols only cover one or a few of the DIS7498 
    levels. For example, the widely used RS-232C serial communications protocol 
    really only addresses the first ("physical") layer of this seven-layer 
    model. Other protocols, such as the X-windows graphical client/server system 
    developed at MIT for distributed graphic-user-interface computer systems, 
    cover all seven layers.  Different protocols may use the same physical layer standard. An example 
    of this is the RS-422A and RS-485 protocols, both of which use the same 
    differential-voltage transmitter and receiver circuitry, using the same 
    voltage levels to denote binary 1's and 0's. On a physical level, these two 
    communication protocols are identical. However, on a more abstract level the 
    protocols are different: RS-422A is point-to-point only, while RS-485 
    supports a bus topology "multidrop" with up to 32 addressable nodes.
     Perhaps the simplest type of protocol is the one where there is only one 
    transmitter, and all the other nodes are merely receivers. Such is the case 
    for BogusBus, where a single transmitter generates the voltage signals 
    impressed on the network wiring, and one or more receiver units (with 5 
    lamps each) light up in accord with the transmitter's output. This is always 
    the case with a simplex network: there's only one talker, and everyone else 
    listens!  When we have multiple transmitting nodes, we must orchestrate their 
    transmissions in such a way that they don't conflict with one another. Nodes 
    shouldn't be allowed to talk when another node is talking, so we give each 
    node the ability to "listen" and to refrain from talking until the network 
    is silent. This basic approach is called Carrier Sense Multiple Access 
    (CSMA), and there exists a few variations on this theme. Please note that 
    CSMA is not a standardized protocol in itself, but rather a methodology that 
    certain protocols follow.  One variation is to simply let any node begin to talk as soon as the 
    network is silent. This is analogous to a group of people meeting at a round 
    table: anyone has the ability to start talking, so long as they don't 
    interrupt anyone else. As soon as the last person stops talking, the next 
    person waiting to talk will begin. So, what happens when two or more people 
    start talking at once? In a network, the simultaneous transmission of two or 
    more nodes is called a collision. With CSMA/CD (CSMA/Collision 
    Detection), the nodes that collide simply reset themselves with a random 
    delay timer circuit, and the first one to finish its time delay tries to 
    talk again. This is the basic protocol for the popular Ethernet network.  Another variation of CSMA is CSMA/BA (CSMA/Bitwise Arbitration), 
    where colliding nodes refer to pre-set priority numbers which dictate which 
    one has permission to speak first. In other words, each node has a "rank" 
    which settles any dispute over who gets to start talking first after a 
    collision occurs, much like a group of people where dignitaries and common 
    citizens are mixed. If a collision occurs, the dignitary is generally 
    allowed to speak first and the common person waits afterward.  In either of the two examples above (CSMA/CD and CSMA/BA), we assumed 
    that any node could initiate a conversation so long as the network was 
    silent. This is referred to as the "unsolicited" mode of communication. 
    There is a variation called "solicited" mode for either CSMA/CD or CSMA/BA 
    where the initial transmission is only allowed to occur when a designated 
    master node requests (solicits) a reply. Collision detection (CD) or bitwise 
    arbitration (BA) applies only to post-collision arbitration as multiple 
    nodes respond to the master device's request.  An entirely different strategy for node communication is the 
    Master/Slave protocol, where a single master device allots time slots 
    for all the other nodes on the network to transmit, and schedules these time 
    slots so that multiple nodes cannot collide. The master device 
    addresses each node by name, one at a time, letting that node talk for a 
    certain amount of time. When it is finished, the master addresses the next 
    node, and so on, and so on.  Yet another strategy is the Token-Passing protocol, where each 
    node gets a turn to talk (one at a time), and then grants permission for the 
    next node to talk when it's done. Permission to talk is passed around from 
    node to node as each one hands off the "token" to the next in sequential 
    order. The token itself is not a physical thing: it is a series of binary 
    1's and 0's broadcast on the network, carrying a specific address of the 
    next node permitted to talk. Although token-passing protocol is often 
    associated with ring-topology networks, it is not restricted to any topology 
    in particular. And when this protocol is implemented in a ring network, the 
    sequence of token passing does not have to follow the physical connection 
    sequence of the ring.  Just as with topologies, multiple protocols may be joined together over 
    different segments of a heterogeneous network, for maximum benefit. For 
    instance, a dedicated Master/Slave network connecting instruments together 
    on the manufacturing plant floor may be linked through a gateway device to 
    an Ethernet network which links multiple desktop computer workstations 
    together, one of those computer workstations acting as a gateway to link the 
    data to an FDDI fiber network back to the plant's mainframe computer. Each 
    network type, topology, and protocol serves different needs and applications 
    best, but through gateway devices, they can all share the same data.  It is also possible to blend multiple protocol strategies into a new 
    hybrid within a single network type. Such is the case for Foundation 
    Fieldbus, which combines Master/Slave with a form of token-passing. A Link 
    Active Scheduler (LAS) device sends scheduled "Compel Data" (CD) commands to 
    query slave devices on the Fieldbus for time-critical information. In this 
    regard, Fieldbus is a Master/Slave protocol. However, when there's time 
    between CD queries, the LAS sends out "tokens" to each of the other devices 
    on the Fieldbus, one at a time, giving them opportunity to transmit any 
    unscheduled data. When those devices are done transmitting their 
    information, they return the token back to the LAS. The LAS also probes for 
    new devices on the Fieldbus with a "Probe Node" (PN) message, which is 
    expected to produce a "Probe Response" (PR) back to the LAS. The responses 
    of devices back to the LAS, whether by PR message or returned token, dictate 
    their standing on a "Live List" database which the LAS maintains. Proper 
    operation of the LAS device is absolutely critical to the functioning of the 
    Fieldbus, so there are provisions for redundant LAS operation by assigning 
    "Link Master" status to some of the nodes, empowering them to become 
    alternate Link Active Schedulers if the operating LAS fails.  Other data communications protocols exist, but these are the most 
    popular. I had the opportunity to work on an old (circa 1975) industrial 
    control system made by Honeywell where a master device called the Highway 
    Traffic Director, or HTD, arbitrated all network communications. What 
    made this network interesting is that the signal sent from the HTD to all 
    slave devices for permitting transmission was not communicated on the 
    network wiring itself, but rather on sets of individual twisted-pair cables 
    connecting the HTD with each slave device. Devices on the network were then 
    divided into two categories: those nodes connected to the HTD which were 
    allowed to initiate transmission, and those nodes not connected to the HTD 
    which could only transmit in response to a query sent by one of the former 
    nodes. Primitive and slow are the only fitting adjectives for 
    this communication network scheme, but it functioned adequately for its 
    time.  |