Explanation
Design Issues of Data Link Layer:
1. Framing:
◦ Issue: Determining how to delineate frames within the bit stream.
◦ Solution: Techniques like character stuffing or bit stuffing.
2. Error Detection and Correction:
◦ Issue: Ensuring data integrity during transmission.
◦ Solution: Implementing error-detection codes (e.g., CRC) and error-correction codes (e.g., Hamming code).
3. Flow Control:
◦ Issue: Managing the flow of data between sender and receiver.
◦ Solution: Techniques like Stop-and-Wait, Sliding Window.
4. Addressing:
◦ Issue: Establishing how devices on a network are identified.
◦ Solution: MAC (Media Access Control) addresses for devices.
5. Media Access Control:
◦ Issue: Controlling access to the shared communication medium.
◦ Solution: Protocols like CSMA/CD (Carrier Sense Multiple Access with Collision Detection) in Ethernet.
CRC (Cyclic Redundancy Check):
• Definition: CRC is an error-checking technique used for detecting errors in data during transmission.
• Example:
◦ Dataword: 110110011
◦ Generator Polynomial: 1011 (x^3 + x^2 + 1)
• Steps:
1. Append 3 zero bits to the dataword (to match the degree of the generator polynomial).
▪ Original Dataword: 110110011
▪ Augmented Dataword: 110110011000
Divide the augmented data word by the generator polynomial (perform binary division).
1011 | 110110011000
- 1011
-----
0110011
1011
-----
010010
1011
-----
001011
1011
-----
01011
1011
-----
00101
1011
-----
0101 (remainder)
•
1. Append the remainder (0101) to the original dataword.
▪ Codeword: 1101100110101
• Verification:
◦ If the received codeword is divisible by the generator polynomial without a remainder, the data is likely to be error-free.
Hamming Code:
• Definition: Hamming codes are a group of error-detecting and error-correcting codes.
• Example (Hamming(7,4)):
◦ Data Bits: 1001
◦ Parity Bits: 3 (calculated based on the positions: 1, 2, 4)
• Steps:
1. Place data bits at positions 3, 5, 6, and 7. Fill the parity bit positions with zeros initially.
P1 0 1 0 0
P2 0 1 0 1
D3 0 1 1 1
P4 1 1 1 1
D5 0 0 0 1
D6 0 0 0 0
D7 0 0 0 0
Calculate parity bits.
P1 = D3 ⊕ D5 ⊕ D7 = 1
P2 = D3 ⊕ D6 ⊕ D7 = 0
P4 = D5 ⊕ D6 ⊕ D7 = 0
Fill in the parity bits.
P1 1 1 0 0
P2 0 1 0 1
D3 0 1 1 1
P4 1 1 1 1
D5 0 0 0 1
D6 0 0 0 0
D7 0 0 0 0
• Verification:
◦ If any single bit error occurs, the parity check can identify and correct it. For example, if the received codeword is 1101010, the error in position 5 can be detected and corrected.
These error-detection and error-correction techniques are crucial for ensuring reliable data transmission in communication networks.