View page as slide show

Wireless service engineering

Wireless communication medium challenges for applications
- Presentation at TKK

Sources

  • Bluetooth Application Developer's Guide - Jennifer Bray (ed)
  • GPRS and 3G Wireless Applications - Christoffer Andersson

Wireless communication medium - properties.

  • Unreliable communication medium
    • Disconnected communication
    • Packet loss
  • Latency
  • Low data transfer rate
  • Cost of use
    • Money (location and technology)
    • Energy (battery life)
  • Extend of the problem depends on the used technology
  • Focus today on unreliable medium

Unreliable communications

  • Packet loss
    • Due to interferences
    • Congested communication medium, e.g. too many users of same frequency in small area.
    • Retransmissions and error coding slows down communication
  • Disconnections
    • Caused by:
      • Blocking elements for radio signals (tunnels, buildings etc.)
      • Gap in coverage area
      • Customer moves out of the communication area totally.
    • Data transmission no longer possible

Help from transport layer and below

  • Provides reliable communication for application
    • Ordered transmission
    • Retransmission of lost packets and discard of duplicates.
    • Error detection
  • Mobility management
    • Reconnections after disconnection
    • Seamless connectivity, horizontal handoffs
  • For applications, packet loss shows as slowed down communication

Handling packet loss and disconnected communications

  • Non blocking communications
    • Slowness of connection or disconnection should not hang application
      • No reason to prevent writing email while trying to update mailbox content.
      • You should be able to browse the map even if gps connection is lost.
    • Separate thread for handling communication
      • When it is possible for application behavior vice
        • e.g turn based vs realtime strategy games
      • Is there support for the given device?
  • Let the user know what is going on.
    • Monitor the signal strength and subtly warn the user about fading signal
      • Allows user to react
      • Can move to the area with better coverage
      • May save the data under work.
    • Not knowing why the application has delays causes frustration which can cause extreme measures
      • Repeated pushes of send button (how do we know whether user wants to send several times or is frustrated?
      • Restarting application, Rebooting the device (very unhappy customer)
  • Proactivity
    • Fetch the data that user likely will request next while previous data is handled
      • e.g. download unread email and attachments
    • Do not do without user consent, when the transmission is charged based on amount of data
    • Be also careful when working on devices with small batteries.

Is the connection lost

  • Who decides when to give up?
    • Unnecessary connection recovery attempts waste battery
  • Transport layer relies on timers
  • Application can tell transport layer to give up
  • Allow user to tell application to give up.

Questions when connection is lost

  • Did the sent action got through.
    • Was the whole transaction successful
      • Atomic transaction
      • e.g. did the hotel reservation got through?
    • Does the customer know about it?
  • What messages were lost?

When we get connectivity back

  • Restart from beginning?
  • Inform what was the last event that got through
    • How long we should store the history
    • Authentication
  • Continue where we left?
    • Requires heavy authentication at application layer
    • State of interruption should be stored on either or both ends
      • Depends on the type of application
    • Possibility to synchronise the states at both ends.
      • e.g. turn based games.

Summary

  • Expect that disconnections happen already at design phase.
  • Think carefully what kind of connectivity you need
    • Is connectionless communication enough?
    • Publish-subscribe vs client-server
  • Know the capabilities of used communication technology
  • Know the limitations of the used platform.
  • Keep user informed
  • Have a plan for reconnection
Last modified: 2013/07/01 14:34