The communication system is the system used to send information (data, voice, video, etc…) from place to another place.
The purpose of this communication is not just sending the information but how the information gets at the other side the same as the sender send it.
So, the reception of the information at the destination in high quality and less distortion is the main job of any communication system designs.
The block diagram of any communication system consist of transmitter which transmit the message signal comes from the in formation source, channel which is the path that carry the signal from transmitter and receiver and here is the problem because practically the channel is noisy and the at last the receiver which receives the signal at its destination.
The main block diagram of any communication system shows down,
Fig.1.1 Main Communication System Block Diagram
To control the the distortion and the losses of the signal happened by the channel, they looked for technique called Error control coding.
From its name we can understand that this technique is about how to make coding module to control on error.
There are two types of error control coding which are :
1- Forward Error Correction
2- Automatic repeat request
1.2 Forward Error Correction
First, before we begin to discuss this type of error control coding, we need to tell some brief about the Data Link Protocol.
The main function of this protocol is to ensure that the communication between transmitter and receiver comes with no error.
The concept of the system is that the signal is split-ted into frames and each frame sending by transmitter to receiver will exposure to noise, and then may cause error in the received bit or/and losing of the total frame that can not be recognized by receiver.
So, the problem of losing the total frame obligating the designers to not only detect the errors but the most important part is to correct them.
Correcting the errors can be done by two types of methods:
1- Forward Error Correcting codes.
2- Automatic Repeat Request.
Down here is the block diagram of the communication system using forward error correction,
The difference between this block diagram and the main block diagram above is the stage of channel encoder and decoder which are responsible for coding message signal in such a way at transmitter to be able to detect errors and then correct them at the receiver side.
So, the receiver can receive then the message with less errors and with high quality that matches with high percentage the original message and that we already want to achieve.
1- Linear Block codes:
2- Convolutional Codes
But the topic that will be discussed in this report is the other type of error control coding which is Automatic Repeat Request (ARQ), so we will go now to discuss in details the ARQ.
1.3 Automatic Repeat Request
This is the second type of error detection and correction, its done by the re-transmission of the frame that has error and this re-transmission process is achieved automatically between transmitter and receiver using ARQ.
The block diagram of the automatic repeat request is shown below,
1- Stop-and-wait ARQ.
2- Go-back-N ARQ.
3- Selective Repeat ARQ.
2.1 Stop-and-wait ARQ
This mechanism is the basic method of automatic repeat request which means it is the foundation of the other two.
This method depends on two essential parameters which are the frames and the acknowledgment naming 0 and 1 alternatively.
Frames that labeled 0 are sends to the receiver and the receiver will take an action so then the receiver will send back an acknowledgment which is labeled 1 to the sender.
So, now the frame labeled as 1 will send to the receiver and the receiver will send back an acknowledgment which labeled as 0 and the labeled will be reversed again and so on.
The sender will keep a copy of frame 0 until an acknowledgment comes back from the receiver, the purpose of this copy is if the receiver receives the frame correctly then it will send back a positive acknowledgment makes the sender understand that everything is OK and no need now for this copy and begin to send the second frame,but at the same time if the receiver received the frame damaged it will neglect this frame 0 or the frame is lost the receiver will remain silent in both cases no acknowledgment will send back to the receiver so the receiver will understand that there is some error with this frame so re-transmit again this frame and it will be easy because the sender has a copy of it.
But this process is controlled by a timer starts from the beginning of sending the frame, if this timing is finished before an acknowledgment received at the sender, the sender will re-transmit again the frame even the frame is received correctly at the receiver and so this timer is carefully calculated to be not short to receive the acknowledgment and so delay the system and not long to make delay in the system to take the action, so to control this timing it must be longer than the frame duration otherwise, it will be an infinite loop.