View page as slide show

Communication software and architecture


  • Communication is transmission of information from one communicating entity to another
    • From source to destination
    • Exchange of information can be between two or more separate entities
  • Communicating entities can be similar or different
    • File transfer: computer - computer
    • Printing: computer - printer
  • Communication is handled mostly by software
    • Communicating entities are piece of software (web browser- web server)

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 requirements

  • Protocol consists of several steps.
    • There is beginning and end for protocol
  • Protocol has to be unambiguous
    • Each step in protocol has to be defined
  • Protocol has to be complete
    • There has to be specific action for all possible situations.
  • All communicating participants has to know the protocol and follow it.

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

Protocol functions

Message handling
  • Segmentation and reassembly
    • dividing data to proper size for transmission
  • Encapsulation / framing
    • Creating the boundaries of message
  • Encoding/decoding
    • Combining data and metadata
reliable data transfer
  • connection control
    • connection-oriented communication: establishment, data transfer, termination
  • ordered delivery
    • maintaining PDU order
  • flow control
    • limiting the transmission to fit for receiver
  • Prioritizing
  • Error control
Governance and routing
  • Synchronization
  • Addressing
  • Routing
  • Multiplexing and demultiplexing
  • switching and forwarding
Special services
  • Security
  • application specific services

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