Data Link Control
Data Link Control (DLC) is the service provided by the data link layer of
function defined in the Open Systems Interconnection (OSI) model for network
communication. The Data Link layer is responsible for providing reliable data
transfer across one physical link within the network.
To see the need for data link control, we list some requirements and objectives
for effective data communication between two directly connected
transmitting-receiving stations. Here is the list of all
-
Frame Synchronization
Data are sent in blocks called frames. The beginning and end of each frame must be recognizable. -
Flow Control
The sending station must not send frames at a rate faster than the receiving station can absorb them. -
Error Control
Any bit errors introduced by the transmission system must be corrected. -
Addressing
On a multipoint line, such as a local area network (LAN), the identity of the two stations involved in a transmission must be specified. -
Control and data on same link
It is usually not desirable to have a physically separate communications path for control information. Accordingly, the receiver must be able to distinguish control information from the data being transmitted. -
Link Management
The initiation, maintenance and termination of a sustained data exchange require a fair amount of coordination and cooperation among stations. Procedures for the management of this exchange are required.
Error Detection
While transmitting data from one station to another, care should be taken to
ensure that the receiver receives the same data as sent by the sender without
any error. The purpose of error-detection methods is to detect whether the data
is error free or not. If not, then ascertain what type of error exists. Two
types of error need to be detected: single-bit errors and burst errors. In
single-bit errors, only one bit of data is corrupted while in burst errors two
or more bits in the data are corrupted. Error detection methods are based on the
concept of redundancy. A shorter group of bits is appended to the end of each
data unit which serves to detect errors. It contains no data information as such
and hence can be discarded after the accuracy of the transmission has been
checked. The most common error detection techniques are:
- Single Parity checking
The simplest code is the single parity check code that takes k information bits and appends a single check bit to form a codeword, which will be transmitted over the channel. The parity check at the receiver ensures that the total number of 1s in the receiver codeword is even; that is, the codeword has even parity. The check bit in this case is called a parity bit. Here the receiver codeword is valid if it has even number of 1s, otherwise it is invalid and there is some error in the received codeword. This error-detection code is used in ASCII where characters are represented by seven bit and the eight bit consists of a parity bit
If a codeword undergoes a single error during transmission, then the corresponding binary block at the output of the channel will contain an odd number of 1s and the error will be detected. More generally, if the codeword undergoes an odd number of errors, the corresponding output block will also contain an odd number of 1s. Therefore, the single parity bit allows us to detect all error patterns that introduce an odd number of errors. On the other hand, the single parity bit will fail to detect any error patterns that introduce an even number of errors, since the resulting codeword will have even parity which is valid codeword.
At the transmitter a checksum is calculated from the information bits and transmitted along with the information. At the receiver, the checksum is recalculated, based on the received information. The received and recalculated checksums are compared and the error alarm is set if they disagree.
The simple example can be used to present two fundamental observations about error detection. The first observation is that error detection requires redundancy in that the amount of information that is transmitted is over and above the required minimum. For a single parity check code of length k+1, k bits are information bits and one bit is the parity bit. -
Cyclic Redundancy Code (CRC)
One of the most common and most powerful, error-detecting code is the CRC which can be described as follows. Given a k bit block of bits or message, the transmitter generates an n bit sequence known as a Frame Check Sequence (FCS), so that the resulting frame, consisting of k+n bits, is exactly divisible by some predetermined number called CRC polynomial. The receiver then divides the incoming frame of k+n bits by the same CRC polynomial number and if there is no remainder, assumes there was no error. The CRC polynomial number by which the information frame bits are divided are selected such that distance between two valid codeword is high and with proper selection of CRC polynomial it is possible to detect errors with very high probability i.e. more than 99.9% of the errors can be detected. Even it is possible to find out which bits are in error when only few bits are corrupted in the information bit stream. So with CRC it is also possible to correct the error though it is not possible for all possible errors.




Join the conversation! Your thoughts help the community grow.