Lectures

Wireless - broadcast network implemented over short* distance radio
communication.

See both WiFi and 802.11 on wikipedia.

IEEE 802.11 (1991) (a-n, various revisions and tweaks).
  3 major variations and several tweaks.

  2.5 GHz and 5 GHz bandwidth.

  * 3.6(7) GHz - wide area wireless - U.S. only.

  * 60 GHz - very high speed but generally only within a room.

Home frequencies vary by country.

Higher frequency, higher data throughput but shorter range.
  But may favor environments with many obstacles.

Major frequency is divided into sub-ranges or channels which 
  allows multiple devices or stations to use the same access point.  

  * 2.4 GHz - 2.412, 2.417, 2.422, 2.427, 2.432, 2.437, 2.442, 2.447,
              2.452, 2.457, 2.462, 2.467, 2.472, 2.484

  * Similar to how the television broadcast spectrum is broken into channels.
  * Consider switching channels if you WiFi under performs.

Because channel frequencies overlap, only a few channels useful.
  One access point will use channels at least 25MHz apart.
   
Implemented in half-duplex - a device can either send or receive but
  not both at same time.

Wireless network is combination of stations (end points) and access nodes.
  Access nodes usually interconnected using standard copper LAN.
  But can be directly bridged to create a truly wireless network.

Also wireless stations can be set up peer to peer without an access node,
  but then network is truly private.

Wireless access points are configured so that they appear to have a 
  common link layer (same local network id - SSID).

  SSID - service set identification - 32 octet ID which IDs/ensures the 
     interaction between an access node and a station that has established
     a connection to it.
     * This allows different devices to connect to different nodes/networks.
       a type of network name.
     * Often human readable.

Multiple devices can interleave communication packets on a particular
  channel and follow the CSMA/CA protocol when competing for band width.

CSMA/CA Carrier sense - multiple access / collision avoidance.

  :CSMA/CA
  Listen for idle channel
  If channel idle
  Then
    Send "Request to Send" to access point to reserve a period of time
      on channel. Other devices see RTS request and wait.
      * The RTS is very small, so minimizes the chance of collision with
        another RTS.

    Access point hears the RTS and determines whether it wants to grant
      access (Clear to send, CTS) or not (no response).

    If "Clear To Send" received from Access point (within given time).
    Then
      Use channel to send frame of data.
      Send end of Frame. Other devices now know they can request channel.
      Goto :CSMA/CA
    
    Else
      * Possibly Access point is denying channel or RTS collided with another
        and got garbled, so Access point didn't respond. 

      Goto :CSMA/CA

    Endi-if
  End-if

  Access node will issue only one CTS on any channel. However it can
    be working several non-overlapping channels.

  While this may not completely eliminate collisions, it does reduce them
    but at the cost of additional handshaking overhead.

  Generally, faster network speeds and more access points also work to 
    limit collisions.

  If a transaction frame is small enough, it may be sent without using
    the RTS/CTS handshake. * Like a UDP packet at datalink level.

  Part of CSMA/CA is carrier sense. In hardwired Ethernet, this is easy
    to implement at the hardware level. In radio broadcasting media, this 
    is expensive and complex.
  
  * Reservation system
 
  Instead a type of virtual network sense is implemented by including a
    timing counter, the Network Allocation Vector (NAV), in the RTS packet 
    that tell other nodes how long it needs to complete the transmission 
    transaction it is announcing. 
 
  The NAV includes time for the CTS, the Frame of data being sent, the
    Acknowledgment from the receiver, and any time spacing between 
    the various parts. The spacing is known as inter-frame space.

  The CTS reproduces a slightly reduced NAV to make sure all nodes
    heard the time reservation request.