Networking Basics

  1. Basic terms

    1. Bandwidth -- rate at which network can transmit data

    2. Latency -- delay between sending of signal and receiving of same signal.

    3. Baud -- number of symbols sent per second.  NOT the same as bandwidth.

    4. Half duplex -- network that carries data in one direction at a time.

    5. Full duplex -- net goes both ways simultaneously.

    6. Turn-around time -- time needed to switch a half-duplex link to the other direction.

    7. LAN -- set of computers connected by local area net (normally ethernet).

    8. WAN -- larger geograpic region (more than a city).

    9. MAN -- metropolitan area net (biggest area without satellites or long distance links).

    10. Ethernet -- the most common LAN

  2. Networking Goals

    1. Bandwidth high

    2. Latency low

    3. Correctness (data is correct and accurate)

    4. Availability

      1. Stay up in the face of dead hardware

      2. Stay up in the face of enemy attack

    5. Privacy

    6. Verifiability of authorship

    7. Interoperability

      1. Use standard software and hardware

      2. Use gateways that can convert

    8. Ease of use

    9. Low Cost

  3. Basic throughput formula

    1. Packet delivery time = latency + size/bandwidth

    2. Bandwidth = baud * log2(number_of_possible_symbols)

    3. Number of possible symbols = signal_strength/noise_strength

    4. Inefficiencies can stem from

      1. Errors in transmissions

      2. Idle time (time not used for transmitting).

      3. Need for acknowledgements

      4. Turn-around time if it's a half duplex link.

      5. Addressing overhead

  4. Layering

    1. The basic idea is to not try and do to much at one.  Have each layer only offer a little more than the layer below it.  And offer access to the lower layers for application that want only simple services.

    2. There are two normal ways to look t it, OSI and TCP/IP. We use TCP/IP.

    3. Can build complex services out of several simple layers.

    4. Each sending layer takes previous data, and (possibly) adds more data to it.

    5. Lower layers deal with more data than upper layers

    6. Each layers data is the above layers entire packet.

    7. Extra data is overhead.

    8. Extra data is needed for each layer to function.

    9. While upper layers are working, network media is idle (processing overhead).

    10. No layer need know how the previous layer works.

      1. I could change yelling to sign language and everything would be OK (though speed accuracy might change).

      2. I can change Ethernet and TCP would still work (and Ethernet was not around when TCP was designed).

  5. Classes of communication services

    1. Asynchronous (printing a file, event logging).

      1. Data can come at variable rate. (can temporarily exceed bandwidth, but not long term).

      2. Errors or drops are FIXED

      3. Optionally, receiver sees message as intended, but with possibly unlimited delay.

      4. Optionally, receiver sees only "best effort", with no guarantees.

      5. With connections, order can guaranteed.  without connections it is not.

    2. Synchronous (voice, video, data logging)

      1. Data comes at a fixed maximum rate. (limited by bandwidth)

      2. Data might be corrupted or lost in transit

      3. Voice would be delivered at fixed delay, with possible drops or background noise.

      4. Always has connections.

    3. Expedited

      1. Example is ^C in telnet

      2. Just means data gets delivered before other data.

      3. Generally makes more sense in a connection oriented scheme.

    4. Cannot offer guaranteed delay and correctness, because an unlikely set of errors might make that impossible.

  6. Circuits (No used often)

    1. Goal.  Minimize cost.

      1. Minimize wiring and switching costs.

      2. Utilize equipment as much as possible.

    2. Circuit Switching

      1. General circuit switching thoughts

        1. If call is connected, you are connected thruout the call.  never ends in the middle.

        2. Cannot use idle or slack time when a device is quiet for other devices.

        3. If circuit is established, it has known and fixed capacity.

        4. Call must be established (set up) before any data can get through.

        5. Can have minimum delays since data is not handled at intermediate nodes.

        6. Sucks if traffic is bursty or conversations are short.

      2. Cannot actually have a real pair of wires between every two devices.

        1. That requires N^2 wires

        2. Most wires would be idle most of the time.

      3. Can present the illusion by having one master switch, and running each device to that switch.

        1. Inside can actually require (n/2)^2 switches.  Called an NxN crossover switch.

        2. Running all devices to a central switch sucks in wire-length terms

        3. Completely impractical for N very big.

      4. Can create the illusion by offering a limited capacity crossover switch

        1. A crossover switch with only capacity of K simultaneous connections.

        2. Cost is N*K.

        3. Need K big enough that "blocking' probability is small.

        4. Still requires all devices to be wired to a central point.

      5. Can have several hubs, and connect them with trunk lines.

        1. Can greatly reduce the amount of wiring needed.

        2. Sometimes calls can be routed more than one way.

        3. Design of hubs and interconnects is called a 'topology'.

    3. Packet switching (Used often)

      1. Virtual Circuit

        1. Before a call can go through, it must be set up.

        2. Each packet takes same route (only need to compute route once).

        3. Each packet arrives in order

        4. Can make bandwidth reservations

        5. Idle time can be used for other applications.

        6. Great for long standing connections that can tolerate timing jitters

      2. Datagram

        1. Call need not be set up before use.

        2. Each packet gets routed independently.

        3. packets may not arrive in order

        4. Cannot make bandwidth reservations

        5. Idle time can be used by other applications.

        6. Great for short conversations that can tolerate timing jitters.

      3. Multiplexing

        1. Statistical multiplexing

          1. Accept packets as they come in.

          2. Send out packets in some order (time, priority, expedited, etc).

          3. Link is never idle when data is waiting to be sent.

          4. Packets face random queing delays.

          5. Packets must be labeled as to which connectio they belong.

        2. Frequency division multiplexing

          1. Send each connection on a different frequency.

          2. T.V. channels on a co-ax are a great example.

          3. Note that one cannot send a t.v. signal twice as fast if the neighbor channel is quiet.

          4. Data need not be labeled.

        3. Time Division Multiplexing

          1. Send each channel in its own time slot.

          2. If channel has nothing to say, slot is idle.

          3. data need not be labeled.