View page as slide show

Communication software, Protocols and architecture

Simple Communication example

  • Lets take closer look on fetching web page from web server
    • Web client wants to get a file from web server
  • HTTP protocol is used
    • To have rules how to define the file we want to get
  • HTTP is not enough as there is for example no
    • Rules for defining the server we want the file from
      • Routing the message through network to correct server
    • Rules for de/encoding of the bits to electromagnetic waves (or whatever form the physical transmission is done)
    • Detection and correction of transmission errors
  • It is not feasible to add all these to HTTP
    • WHY?

Communication architecture

  • Communication networks are complex and consists of several different types of devices
  • To create connection over such network has several requirements
    • e.g. routing, name to address conversion, channel securing etc.
  • Single protocol that fulfills all the requirements would be huge
  • All the CPOs participating in communication should follow the protocol.
    • Why would router care how the file can be found from webserver somewhere far away?
    • Why should web browser developer care about Internet routing issues?
  • To ease the creation of communication application, different functions required for efficient communication are separated
    • Use of multiple protocols to handle specific problems is needed
    • Each service should be defined in it's own protocol specification
  • Communication architecture defines the interoperability and relation of two or more protocols

Layered communication architecture

layered-entities.jpg

  • Different communication tasks are separated on their own layers
    • Protocol stack
  • Each layer has its own tasks and own protocol
    • Entities at same layer (layer N) are called peer entities
    • Implementation of entity is CPO (communicating protocol object)
  • Connection between peer entities is peer connection following peer protocol
    • Communication messages transmitted between peer entities are called Protocol Data Units (PDU)
  • Lower layer provides a service to higher layer
    • IP provides routing service to TCP that provides reliable communication channel to application
    • Implementation details of lower layer do not affect on higher layer implementation
  • Communication between layers is conducted via lower layer interface
  • Communication messages transmitted between layers are called primitives

OSI- Reference Model

osi-layers.jpg

OSI Model
LayerFunction Data unit
7. Application layerApplication Data
6. Presentation layer Data representation and encryption Data
5. Session layer Coordination of interactions in user sessions Data
4. Transport layer End-to End connection Segment
3. Network layer host-to-host connection e.g. RoutingDatagram/packet
2. Link layer Physical addressingFrame
1. Physical layer transmission of bits over a physical circuitBit

Thorough explanation of OSI

  • OSI model is just a reference model
    • The entire protocol stack based on OSI is not in use
    • On discussions protocols are commonly located within OSI reference model e.g. TCP is in Transport layer and IP in Network layer
  • Different solutions have their own layered architectures
    • TCP/IP, Bluetooth, IRDA, SS7 …

Irda Stack

Bluetooth stack

Communication in layered architecture

  • Horizontal communication (protocol)
    • Communication of peer entities. Peer entities form virtual channel between each other
    • Communication between peer entities are conducted with Protocol Data Units (PDU's)
  • Vertical communication
    • Messages are called primitives
    • Layer N produces service to layer n+1 and uses the service of layer n-1
    • Service is accessed via service access point (SAP)
    • PDU is enveloped and given to lower layer

Interfaces

interfaces.jpg

  • Layer N entity passes IDU to layer N-1 via N-1 SAP
    • SDU : Service data unit (protocol data)
    • PCI : Protocol control information (protocol header)
    • PDU : protocol data unit (N PDU is usually N-1 SDU)
    • ICI : Interface control information
    • IDU : Interface data unit

Protocol system structure

protocol-structure.jpg

Service types of protocol entity

confirmed-service.jpg

  • Confirmed service
    • primitives: request → indication → response→confirmation
  • Unconfirmed service
    • no handshake
    • request → indication
  • Provider initiated
    • indication to both sides from lower layer
    • e.g. lost connection

Protocol Entity in layered architecture

protocol-entity-communication.jpg

Data flow in protocol system

data-flow.jpg

Layered architecture challenges

  • Overhead from the metadata of each layer
  • Additional latency
    • Encoding and decoding pdu's to primitives
    • exchanging the primitives between layers
  • How many layers are needed?
  • What protocols to use?
Last modified: 2013/07/01 14:42