View page as slide show

Communication Software, Protocols and architecture


  • Communication is exchange of information between two or more entities
    • Entities can be similar (human to human) or different (human to robot)
  • Communication is needed for variety of interaction between different entities e.g.
    • File transfer
    • Voice transfer
    • Control commands
    • Ticket reservation

Modern society relies on communication between machines

  • Peripherals
    • keyboard, printer, mouse, monitor
  • Internet and its services
  • Mobile communications
  • Ubiquitous computing
  • Business solutions

Communication software

  • Exchanging of data can consist of several different tasks e.g.
    • Connection forming /dialing
    • Error detection
    • Data transfer
    • Data en/decoding
  • Mostly these tasks are done on software
    • Hence communication software
  • There are many applications that need communication and thus it is not feasible to handle it
    • It is not feasible to implement all the communication task for every application.
  • Interoperability challenges
    • Different hardware (PC, mobile phone, printer …) with varying capabilities
    • Different software to run on (Linux, Windows, Symbian…) with support for different languages and data formats
    • use of different communication medium Wired/wireless
  • Often involves independent development groups
    • Web server and web browser creators do not have necessarily anything in common.
    • Need for agreement for data transfer style

Simple communication model

  • Source → transmitter →transmission medium → receiver →destination
    • Source generates data
    • Transmitter converts data to transmission signals
    • transmission medium carries the data
    • receiver converts the data to receivable form
    • destination uses the data
  • Different perspectives
    • Application → Bluetooth dongle → radio → Bluetooth dongle → Application
    • User → web browser → Internet → Web server → Web application

Requirements for Communication

  • Entities has to be connected to each other
    • e.g. wired or wireless communication channel
    • direct or via several systems (via several entities)
  • Communicating entities has to be able to understand each other
    • Communicating rules are defined in protocol
  • Communication between entities are conducted with messages


  • In order for two entities to understand each other, they “have to speak same language”
    • What is communicated
    • How it is communicated
    • When it is communicated
  • Protocol defines the rules for communication
    • Computers require clear rules in order to operate.
    • The syntax, semantics, and synchronization of communication
  • Good protocol forms the base for efficient and reliable communication
  • Different environments need different protocols
  • Common protocol allows different types of devices to understand each other
  • Standardization is important
    • Ensures compatibility of devices from different vendors
    • Enables competition among manufacturers.
    • Allows interoperability of different protocols


  • also known as: Datagram, frame, packet, signal, PDU.
  • Block of information that is sent from one entity to another.
    • The smallest unit of information that can be understood and handled by receiver
  • Consists of data and metadata
    • header and payload
  • Protocol defines the used message format e.g. encoding
    • Protocol message is called PDU (protocol data unit)

Protocol vs language

  • Both languages and protocols have vocabulary and syntax
  • procedure rules and grammar define how vocabulary and syntax are used
  • service specification defines the semantics of protocol
  • protocol language have to deal with problems from concurrency
    • timing
    • race conditions and deadlocks
    • order of events

Protocol specification

  • Document that defines
    • The service to be provided by the protocol
    • The assumption about the environment in which the protocol is executed
    • The vocabulary of messages used to implement the protocol
    • The encoding of each message in the vocabulary
    • The procedure rules guarding the consistency of message exchange
    • Interfaces to use the protocol
  • Needed for different groups to create compatible applications

Example protocol HTTP

  • HTTP 0.9
    • Client can send only one message (GET) with file as parameter
    • Server responds to GET message by sending the file.
Last modified: 2013/07/01 14:42