January 28, 2010

Types of flow control and a closer look at Windowing

 

The three types of flow control consists of:

  1. buffering
  2. windowing
  3. congestion avoidance

A closer look at what windowing is and it's function at the transport layer

Windowing

  • Windowing is the quantity of data segments (measured in bytes) that the transmitting machine is allowed to send without receiving an acknowledgement for them.
  • In other words, it's the break of time in between data segments of before and after.
  • Windowing is used to control the amount of outstanding, unacknowledged data segments.

Note: if hosts fails to receive all segments that it should have acknowledged, the host can improve the communication session by decreasing window size.

Connection-oriented Communication

Note: Recall that connection-oriented communications takes place in conjunction with flow control. These communication sessions, in combination of the protocols involved, provide for reliable data transports at the transport layer.

Diagram:

connectionoriented

This is what we call the "Three Way Handshake"

  1. The 1st "connection agreement" segment is a request for synchronization.
  2. At the 2nd and 3rd connection agreement, segments acknowledge the requests and establishes connection parameters (the rules) between hosts. These segments request that the receiver sequencing is synchronized here as well, resulting in a bidirectional connection.
  3. The final segment is also an acknowledgement. It notifies the destination host that the connection has been established – Data transfer can now begin.

How to identify a connection-oriented communication when you see one

  1. It has a virtual circuit set up. (i.e.. 3 way handshake)
  2. Use sequencing
  3. Use acknowledgements
  4. Use flow control

Question: What happens when a device receives a flooding of datagram's (packets) too quickly for it to process?

Answer: They store them in a memory section called a buffer.

Understanding how flow control operates at the Transport layer


A quick overview of the Transport layer and its function:

  • Reliable networking is used at the transport layer
    • Reliable networking = using acknowledgements, sequencing, and flow control in the network.
  • Segments and reassembles data into a data stream from the upper application layer and unites the information into the same data stream for further processing.

Flow Control

  • Flow control prevents a sending host on one side of the connection from overflowing the buffers in the receiving host.
    • an event that can result in data loss
  • Reliable data transports and employs a connection oriented communications sessions between systems and the protocols involved, to ensure that the following will be achieved:
    • Segments delivered are acknowledged back to the sender upon their reception.
    • Any segments not acknowledged are re-transmitted.
    • Segments are sequenced back into their proper order upon arrival at their destination.
    • A manageable data flow is maintained in order to:
      • avoid traffic congestion
      • overloading
      • data loss
  • The purpose of flow control is to provide means for the receiver to be able to govern the out of data sent by the sender.

Important additional functions of the OSI reference model's upper layers

 

Application layer

  • The application layer acts as an interface between the actual applications programs.
    • Example - Microsoft Word – actually does not reside at the application layer, but instead just interfaces at the application layer protocol, using data presented to it by the presentation layer.

Presentation layer

  • The presentation layer presents data to the application layer up top.
  • Responsible for data translation and code formatting.
  • Acts as a translator that presents and provides coding and conversion functions.
    • Example – EBCDIC to ASCII
  • Some presentation layer may also involves multimedia operations too.

Session Layer

  • The session layer is responsible for setting up, managing, and then tearing down sessions between layer entities.
  • Coordinates communication between systems and serves to organize their communication by offering THREE different modes:
    • Simplex
    • Half Duplex
    • Full Duplex
  • Keeps different application data separate from other applications data.