Thursday, September 12, 2013

Flow and Error Control Technologies

It is the functionality of data link layer of OSI model.This mechanisms ensure that all data frame transmitted reach its destination error free and probably in sequential manner.It uses three tools for this purpose-Acknowledgment,Timers and Sequence Number.
  • Acknowledgment:
It is the ACK signal transmitted by the receiver to the sender as acknowledgment of data received.The sender in turns knows that the data reached to the destination safely.
There is also NACK frame to signify that the data is not received by the receiver.By having it sender have to retransmit the data again.
  • Timers:
ACK/NACK frames works fine in all other cases but if the ACK/NACK signal is lost during the transmission,there is no way for the sender if the sent data reached or not.So it waits.The waiting time is scheduled by the timer to say the sender, how long should it wait to retransmit the data again,
  • Sequence Numbers:
Every data frame has a sequence number to distinguish between a new frame and an old frame in case of retransmission to avoid duplicity.

There are mainly two kinds of error we concern with-Single bit error and burst error.Single bit error occurs when a single bit get altered during transmission,burst error means a data packet totally got damaged or altered during data transfer.
Error can be detected by the following techniques -
Parity bit,Cyclic redundancy check(CRC) and Checksum .We briefly discuss it here-

  • Parity Bit:
A parity bit is a redundant bit added to the data packet after counting nos. of 1's in the data.If number of 1's is odd we add a parity bit as 1 else it is 0.If the parity data received and and data sent is not the same,the data is rejected.

  • Cyclic Redundancy Check:
Here the data is divided by a common divisor and along with the data,the remainder of this division is sent to receiver.The receiver on the other hand uses the same divisor and if the remainder is zero,the data is error free otherwise discarded.

  • Checksum:
Here a checksum generator is used.Checksum generator  First data unit is divided into equal segments of n bits. Then all segments are added together using 1’s complement. Then it complements ones again. It becomes Checksum and sends along with data unit.

These are the common error detection technique.Hamming Code is a Error correction technique but it is generally a good idea to retransmit the data again then correct it, In fast networks error correction will take more time.
 Flow Control:
It is generally happen that sender's data sending rate is far much higher to the rate at which receiver can receive the data.So flow control is needed to ensure efficient and error free data transmission.Techniques used here are-Stop and wait protocol and sliding window protocol.

  • Stop and Wait Protocol:
Here sender simply sends the data and waits for the acknowledgment from the receiver, if it gets the ACK signal it sends the next data. It is the simplest way of flow control.Sometimes the ACK signal lost(if the communication line is not error free) and the timer is responsible for telling the sender how much it should wait for retransmitting the same data.

  • Sliding Window Protocol:
Here Instead of waiting for the ACK signal the sender and receiver uses a buffer.The buffer is the temporary storage where data can wait before receiver be available to receive. So the sender doesn't have to wait for ACK signal and transmit data one after another without stopping.
And it also solve the problem of uses of more bandwidth, because in this scheme both sender and receiver uses the channel to send the data and receiver just send the acknowledge with the data which it want to send to sender, so there is no special bandwidth is used for acknowledgment, so the bandwidth is saved, and this whole process is called PIGGYBACKING.


LAN Technologies
Computer Networks
Introduction to Computer Science
Digital Electronics

No comments:

Post a Comment

Feautured Post

Python Trivia Post: enumerate()

Python has a very useful inbuilt function, which is called enumerate(). This is needed whenever you need the numbering of a certain element...