Data link layer — framing, error detection (CRC computation), MAC
4.3.4· Coding › Computer Networks
1. Framing
KYUN: Receiver ko ek continuous stream milta hai ...10110101.... Markers ke bina wo ek frame ko doosre se alag nahi kar sakta. Hume delimiters chahiye — lekin delimiters galti se data ke andar bhi aa sakti hain, isliye hume ek escaping trick chahiye.
Tarikay
(a) Byte/character count — pehla field kehta hai "agle bytes mera payload hain."
- Problem: agar count field khud corrupt ho jaye, toh receiver hamesha ke liye sync kho deta hai.
(b) Byte stuffing (flag bytes) — shuru aur end mein ek khaas FLAG byte daalo (jaise 0x7E). Agar FLAG ya escape byte ESC data mein aaye, toh usse ESC se prefix karo.
(c) Bit stuffing — frame ko flag pattern 01111110 se delimit karte hain. Data mein ye pattern aane se rokne ke liye, sender data mein har 5 consecutive 1s ke baad ek 0 insert karta hai.
2. Error Detection — CRC
GF(2) arithmetic KYA hai? Coefficients bits hain. Addition = subtraction = XOR (koi carries nahi!). . Isliye polynomial long division mein subtraction ki jagah XOR use hota hai.
Scratch se derivation — CRC remainder use se ye divisible kyun hota hai
Maano:
- = message polynomial, degree (message mein bits hain).
- = generator, degree (toh bits).
Step 1 — jagah banao. Message ko se multiply karo, yaani zeros append karo: Kyun? Ye message ko left shift karta hai, low-order slots check bits ke liye reserve karta hai.
Step 2 — divide karo. GF(2) par: CRC remainder hai ( bits, FCS = Frame Check Sequence).
Step 3 — transmit karo. Bhejo: Ye divisible kyun hai? Kyunki GF(2) mein addition = subtraction: kyunki (XOR). Toh ka ek exact multiple hai.
Worked example (poora long division)
Message , generator (toh ).
3 zeros kyun append karo? 3 check bits → dividend = 1101000.
1101000 ÷ 1011 (XOR division)
1101000
1011
----
0110000
1011
----
01110 0
1011
----
01010
1011
----
0001 → remainder R = 001
Step-by-step (har step kyun?): jab bhi leading bit 1 ho, ko XOR karo, shift karo, tab tak repeat karo jab tak bits khatam na ho jaayein. Leading 0 ⇒ agle bit ko neeche laao (000 se XOR karo).
Transmit .
Receiver check: 1101001 ko 1011 se divide karo → remainder 000 ⇒ accept karo. Agar koi bit flip ho, remainder ≠ 0 hoga (un errors ke liye jo pakad sakta hai).

CRC kaunsi errors pakadta hai? (Acha kyun chuno)
Error pattern hai; received = . Error undetected hogi agar , se divisible ho. Toh hum aisa choose karte hain ki wo rare ho:
- Saari single-bit errors (): pakdi jaati hain agar mein terms hain.
- Bit errors ki saari odd sankhya: pakdi jaati hain agar mein factor ho.
- Length ke saare burst errors: pakde jaate hain (ek burst hai jahan ; aur ).
3. MAC — Medium Access Control
Do flavours:
(a) CSMA/CD (wired Ethernet): Carrier Sense (baat karne se pehle suno), Multiple Access, Collision Detection (bhejte waqt bhi sunta raho; agar kuch aisa suna jo tumhare bits se match nahi karta → collision). Collision par: jam + binary exponential backoff (-th collision ke baad slots mein random time wait karo).
(b) CSMA/CA (Wi-Fi): radio par collisions reliably detect nahi ho saktin, isliye avoid karo — bhejne se pehle random backoff wait karo, ACKs use karo, optional RTS/CTS.
Active Recall
Recall CRC remainder append karne se frame
se divisible kyun ho jaata hai? Kyunki GF(2) mein aur dono XOR hain. ; kyunki , hume milta hai , ek exact multiple.
Recall CSMA/CD mein
kyun zaroori hai? Sender ko tab bhi transmit karte rehna chahiye jab worst-case collision signal (round trip ) wapas aaye, taaki wo use detect kar sake.
Recall Bit stuffing ka rule?
Data mein har paanch consecutive 1s ke baad ek 0 insert karo, taaki flag 01111110 payload mein kabhi na aa sake.
Recall (Feynman, ek 12 saal ke bacche ko samjhao)
Socho ek lambi sentence bina spaces ke bhej rahe ho. Framing = clear START/END marks lagana taaki tumhara dost jaane har word kahan hai. CRC = end mein ek chhota "magic number" lagana; tumhara dost wahi calculation dubara karta hai — agar match nahi karta, koi letter dak mein bigad gaya. MAC = ye rule ki "ek waqt mein sirf ek hi insaan baat kare" taaki ek shor-bharey kamrey mein sab ko samjha ja sake.
Data link layer ke teen kaam kya hain?
Bit stuffing ka rule kya hai?
CRC mein kya hai aur message mein kitne zeros append karte hain?
Transmitted CRC frame , se divisible kyun hai?
CRC division mein kaun si arithmetic use hoti hai?
CRC error E(x) kab undetected rehti hai?
Factor wala generator kaun si errors pakadta hai?
CSMA/CD ko minimum frame size kyun chahiye?
Collision ke baad CSMA/CD kya karta hai?
Wi-Fi mein CD ki jagah CSMA/CA kyun?
MAC address kitne bits ka hota hai aur kya ye hierarchical hai?
Kya CRC errors correct karta hai?
CRC: message 1101, G=1011, FCS dhundo.
Connections
- Physical Layer — raw bit pipe provide karta hai jis par framing kaam karti hai.
- Polynomials over GF(2) — CRC ka math foundation.
- Hamming Code — error correction vs CRC ki detection.
- Ethernet — CSMA/CD use karta hai, 64-byte min frame, MAC addresses.
- Network Layer (IP) — hierarchical addressing ko flat MAC se contrast karta hai.
- Stop-and-Wait & Sliding Window — framing + error detection ke upar bani reliability.