Framing: Concept and Purpose of Framing in Data-Link Control in Hindi
Makhanlal Chaturvedi University / BCA / Computer Networks
Framing and Flow Control in Data-Link Control in Hindi
Framing and Flow Control in Data‑Link Control in Hindi
Data‑Link Layer का मुख्य लक्ष्य दो directly जुड़े हुए नोड्स के बीच reliable data transfer देना है। इसके लिए दो सबसे महत्त्वपूर्ण तकनीकों—Framing और Flow Control—का प्रयोग होता है। इस लेख में हम इन दोनों को बहुत सरल, स्टेप‑बाय‑स्टेप और beginner friendly भाषा में समझेंगे, ताकि आप ना केवल उनके कॉन्सेप्ट्स grasp करें बल्कि उन्हें अपने networking या computer science के प्रैक्टिकल प्रोजेक्ट्स में भी आसानी से लागू कर सकें।
Framing: Concept and Purpose of Framing in Data-Link Control in Hindi
जब भी हम किसी दो नोड्स के बीच raw bit stream भेजते हैं, receiver के लिए यह तय कर पाना मुश्किल होता है कि कब एक संदेश खत्म हुआ और कब नया शुरू। यही समस्या हल करने के लिए Framing का अविष्कार किया गया। Frame मूल रूप से bits का एक संगठित समूह है, जिसमें हेडर, payload और trailer होता है। हेडर में addressing, type field इत्यादि होते हैं, जबकि trailer अकसर error detection चेकसम लेता है। हर Frame के आरंभ और अंत को पहचानने के कई तरीके हैं जिन्हें हम अगली section में देखेंगे।
- Framing data integrity बढ़ाता है क्योंकि receiver बिटों की सही सीमा (boundaries) जानता है।
- यह error isolation में मदद करता है; अगर एक frame corrupt है, तो केवल उसी को दोबारा भेजना पड़ता है, पूरी स्ट्रीम नहीं।
- Frames synchronization आसान बनाते हैं, जिससे medium पर collision domain या interference की स्थिति में भी recovery सरल हो जाती है।
Framing Techniques: Character and Bit Stuffing in Hindi
दो classical framing techniques हैं—Character Stuffing और Bit Stuffing। दोनों का उद्देश्य flag pattern को data से अलग करना है ताकि receiver सही frame सीमा पढ़ सके।
| विशेषता (Feature) | Character Stuffing | Bit Stuffing |
|---|---|---|
| Flag Pattern | सामान्यतः ESC और FLAG bytes का प्रयोग | निश्चित 6‑bit या 8‑bit pattern (जैसे 01111110) |
| माध्यम (Medium) | Text‑based protocols (उदा. PPP का पुराना संस्करण) | Binary data लिंक (HDLC, CAN इत्यादि) |
| Overhead | प्रत्येक ESC के बाद एक extra byte | हर पाँच continuous 1s के बाद एक 0 insert |
| Pros | Implementation सरल, मानव पढ़ने योग्य | Data type agnostic, binary‑safe |
| Cons | Non‑binary friendly, ज्यादा byte overhead | Processing intensive, bit‑by‑bit scan |
Character Stuffing में यदि data में ESC या FLAG आता है, तो transmitter उसके आगे एक extra ESC byte लगा देता है। Receiver दो continuous ESC देखकर समझ जाता है कि यह actual data है, कोई frame flag नहीं।
Bit Stuffing का algorithm थोड़ा computational है पर binary links के लिए अधिक उपयोगी है।
नियम सरल है: transmitter हर बार जब पाँच continuous 1 bits भेजता है, वह अपने आप एक
0 bit भी insert कर देता है। Receiver इसी pattern को पहचान कर वह अतिरिक्त 0 drop कर देता है।
ऐसा करने से कभी भी सात continuous 0 अथवा 1 का flag pattern डेटा में natural form में नहीं बन पाता।
/* Bit Stuffing Algorithm – Sender Side (Pseudo‑C) */
void transmitWithBitStuffing(uint8_t *data, size_t len) {
int oneCount = 0;
sendFlag(); // 0x7E
for (size_t i = 0; i < len; ++i) {
for (int bit = 7; bit >= 0; --bit) {
bool b = (data[i] >> bit) & 1;
sendBit(b); // actual bit transmit
if (b) {
oneCount++;
if (oneCount == 5) { sendBit(0); oneCount = 0; } // Stuff 0
} else {
oneCount = 0;
}
}
}
sendFlag();
}
Flow Control: Meaning of Flow Control in Data-Link Control in Hindi
Flow Control वह प्रक्रिया है जिसके द्वारा sender और receiver के बीच data rate का समन्वय (coordination) रखा जाता है, ताकि किसी भी पक्ष का buffer overflow न हो। सोचिए अगर sender बहुत तेजी से Frames भेज दे और receiver धीरे‑धीरे प्रोसेस करे—buffer भरने पर data lost हो सकता है। Flow Control यही सुनिश्चित करता है कि network link congestion‑free रहे और retransmission कम से कम हो।
- यह half‑duplex (दोनों दिशाओं में alternate) और full‑duplex (simultaneous) दोनों तरह के लिंक पर लागू होता है।
- Modern protocols (TCP भी) upper layers पर Sliding Window जैसी ही approach use करते हैं, जिससे आप देख सकते हैं कि Data‑Link Layer की concepts higher layers तक extend होती हैं।
Flow Control Methods: Stop-and-Wait and Sliding Window in Hindi
Flow Control implement करने के दो प्रमुख तरीक़े हैं—Stop‑and‑Wait और Sliding Window। दोनों ही ACK (Acknowledgement) संदेशों पर निर्भर करते हैं, पर उनके ऑपरेशन के तरीके अलग हैं।
| विशेषता | Stop‑and‑Wait | Sliding Window |
|---|---|---|
| Working Principle | एक Frame भेजो → ACK का इंतज़ार करो → अगला frame | N frames (window size) भेजो → cumulative ACKs |
| Throughput | Low, propagation delay का बड़ा असर | High, link हमेशा busy रखा जा सकता है |
| Complexity | Implementation extremely simple | Sequence Number handling, window management |
| Error Recovery | Timer per frame; lost ACK पर same frame retransmit | Selective Repeat या Go‑Back‑N strategies उपयोग |
| Memory Requirement | Minimal (सिर्फ एक buffer) | Multiple frame buffers sender/receiver दोनों पर |
/* Simplified Stop‑and‑Wait Sender */
while (hasMoreFrames()) {
sendFrame(current);
startTimer();
if (waitForAckOrTimeout()) {
current = nextFrame();
} else {
/* timeout -> retransmit same frame */
continue;
}
}
Stop‑and‑Wait छोटे embedded links, sensor networks इत्यादि में आज भी उपयोगी है क्योंकि hardware simplicity प्राथमिकता होती है। इसके विपरीत, Sliding Window आज के high‑speed WANs और Ethernet‑based MANs में आवश्यक है, जहाँ bandwidth utilization critical है।
Sliding Window में window size sender द्वारा एक dynamic variable की तरह adjust किया जा सकता है—congestion control का आधार यही है। Receiver प्रत्येक frame के साथ sequence number चेक करता है और cumulative ACK भेजता है। अगर कोई frame corrupt या lost हो जाए, तो दो strategies हैं:
- Go‑Back‑N – receiver missing frame detect होते ही अगले सभी frames discard कर देता है; sender उसी missing number से पुनः transmit करता है।
- Selective Repeat – सिर्फ वही corrupt या lost frames दोबारा भेजे जाते हैं; बाकी सही frames buffer में बने रहते हैं।
Window size चुनते समय दो practical factors देखें: bandwidth‑delay product (जितना बड़ा product उतनी large window) और hardware buffer limits। Modern links में typically 64, 128 या 512 frames तक की windows देखने को मिलती हैं।