विषय-सूचि
स्लाइडिंग विंडो प्रोटोकॉल (sliding window protocol in hindi)
सेंडर साइड (sender side)
स्टॉप और वेट ARQ एक एरर और फ्लो कण्ट्रोल की सुविधा देता है लेकिन बहुत से बड़े परफॉरमेंस सम्बन्धित समस्याएं भी पैदा कर देता है क्योंकि सेंडर अगला पैकेट भेजने के लिए तैयार होने के बावजूद भी हमेशा acknowledgement के लिए इन्तजार करता है।
एक ऐसी स्थिति की कल्पना कीजिये जहां आपके पास हाई बैंडविड्थ वाला एक कनेक्शन हो और propagation डिले भी बहुत ज्यादा हो (आप किसी अन्य देश के किसी सर्वर से तेज गति के कनेक्शन द्वारा कनेक्टेड हैं ), तब भी आप स्टॉप & वेट के कारण पूरे गति का उपयोग नहीं कर पाएंगे।
स्लाइडिंग विंडो प्रोटोकॉल इस एफिशिएंसी की समस्या को एक समय पर एक से ज्यादा पैकेट्स बड़े सीक्वेंस नम्बर के साथ भेज कर हैंडल करता है। एक तरह से समझ लीजिये ये वैसा ही है जैसे आर्किटेक्चर में पाइपलाइनिंग का विचार।
कुछ जरूरी परिभाषाएं
अब हम आपको एक-एक कर के कुछ ऐसी चीजों के बारे में बतायेंगे जिन्हें जानने के बाद आपको इस प्रोटोकॉल को समझने में काफी आसानी होगी।
ट्रांसमिशन डिले (Tt)
ये वो समय है जो किसी पैकेट को होस्ट से डेस्टिनेशन लिंक तक भेजने में लगता है।
Tt = D/B
यहाँ, B= लिंक का बैंडविड्थ, और D= ट्रांसमिट होने वाले डाटा का साइज़
Propagation डिले (Tp)
ये वो समय है जो होस्ट द्वारा ट्रान्सफर किये गया पहला बिट डेस्टिनेशन लिंक तक पहुँचने में लगाता है।
Tp = d/s
यहाँ d= दूरी और s= वेव के propagation कि गति (यह माध्यम के characteristics पर निर्भर करता है)
एफिशिएंसी
ये पैकेट के कुल useful समय और कुल साइकिल समय का अनुपात होता है। स्टॉप & वेट प्रोटोकॉल के लिए,
Total cycle time = Tt(data) + Tp(data) + Tt(acknowledgement) + Tp(acknowledgement) = Tt(data) + Tp(data) + Tp(acknowledgement) = Tt + 2*Tp
चूँकि acknowledgement आकार में बहुत ही छोटे होते हैं इसीलिए उनके ट्रांसमिशन डिले को नजरअंदाज किया जा सकता है।
Efficiency = Useful Time / Total Cycle Time = Tt/(Tt + 2*Tp) (For Stop and Wait) = 1/(1+2a) [ Using a = Tp/Tt ]
इफेक्टिव बैंडविड्थ (EB) या Throughput
इसका अर्थ हुआ एक सेकंड में भेजे गये सारे बिट कि संख्या।
EB = Data Size(L) / Total Cycle time(Tt + 2*Tp) Multiplying and dividing by Bandwidth (B), = (1/(1+2a)) * B [ Using a = Tp/Tt ] = Efficiency * Bandwidth
लिंक की कैपेसिटी (क्षमता)
अगर लिंक फुल डुप्लेक्स है तो लिंक को बिना किसी collision के दोनों दिशाओं में ट्रान्सफर कराया जा सकता है। कोई चैनल कितनी संख्या में बिट को रख सकता है, इसे ही उसकी अधिकतम कैपेसिटी या क्षमता कहते हैं।
Capacity = Bandwidth(B) * Propagation(Tp) For Full Duplex channels, Capacity = 2*Bandwidth(B) * Propagation(Tp)
पाइपलाइनिंग का कांसेप्ट
स्टॉप & वेट प्रोटोकॉल में केवल एक पैकेट को लिंक तक ट्रांसमिट किया जाता है और फिर सेंडर रिसीवर से acknowledgement प्राप्त करने के लिए इन्तजार करता है।
इस सेट-अप में समस्या ये आती है कि एफिशिएंसी बहुत कम हो जाती है क्योंकि लिंक में एक पैकेट डालने के बाद हम दूसरे पैकेट्स को नही डालते हैं।
कुल Tt+2*Tp साइकिल समय में अब हम अधिकतम पैकेट्स कि संख्या निकालेंगे जो सेंडर acknowledgement प्राप्त करने से पहले लिंक में ट्रांसमिट कर सकता है।
In Tt units ----> 1 packet is Transmitted. In 1 units ----> 1/Tt packet can be Transmitted. In Tt + 2*Tp units -----> (Tt + 2*Tp)/Tt packets can be Transmitted ------> 1 + 2a [Using a = Tp/Tt]
अधिकतम पैकेट जो कुल साइकिल समय में ट्रांसमिट किया जा सकता है = 1=2*a
उदाहरण
अब इसी चीज को हम एक प्रश्न को हल कर के समझेंगे। मान लीजिये,
Tt= 1 ms, और Tp= 1.5 ms
नीचे वाले चित्र में जैसा कि दिखाया गया है, सेंडर को पैकेट 0 ट्रांसमिट करना है तो वो तुरंत उसके बाद पैकेट 1,2,3 को भी ट्रांसमिट करेगा। acknowledgement 0 को आने में समय लगेगा:
2*1.5= 3 ms
स्टॉप & वेट में,
1+2*1.5= 4 ms, यहाँ हम केवल 1 पैकेट ही ट्रांसमिट कर रहे हैं। यहाँ हमने पैकेट का विंडो रखा हुआ है जिसे ट्रांसमिट किया है और उसका acknowledgement प्राप्त नही हुआ है।
हमने जिस पैकेट का acknowledgement आ गया है उस कर्म संख्या को इसीलिए फिर से प्रयोग कर रहे हैं ताकि हेडर का आकार कम से कम रखा जा सके।
सेंडर विंडो के लिए न्यूनतम बिट की संख्या (minimum bit for sender window)
हमने उपर ये फार्मूला देखा,
Maximum window size = 1 + 2*a where a = Tp/Tt Minimum sequence numbers required = 1 + 2*a.
अब जो हम बताने जा रहे हैं वो GATE के लिए काफी महत्वपूर्ण है। अभी के विंडो के सारे पैकेट्स को एक क्रम संख्या दी जाएगी।
सेंडर विंडो के लिए जरूरी बिट कि संख्या: ceil(log2(1+2*a)).
लेकिन कभी-कभी प्रोटोकॉल हेडर में बिट की संख्या पहले से परिभाषित होती है। हेडर में कर्म संख्या क्षेत्र का आकार ये भी तय करता है कि हम कुल साइकिल समय में अधिकतम कितनी संख्या में पैकेट्स को भेज सकते हैं। अगर N हेडरक्रम संख्या का बिट्स में साइज़ या आकार है तो हमारे पास 2Nक्रम संख्याएं हो सकती है।
विंडो साइज़ (WS)= min(1+2*a, 2N)
अगर आप क्रम संख्याओं या सेंडर विंडो के लिए न्यनतम जरूरी बिट्स को कैलकुलेट करना चाहते हैं तो वो होगा: ceil(log2(WS)).
ये सभी कुछ सेंडर साइड के लिए था।
स्लाइडिंग विंडो प्रोटोकॉल: रिसीवर साइड (sliding window protocol: reciever side)
स्लाइडिंग विंडो प्रोटोकॉल वास्तविकता में एक थ्योरी वाला कांसेप्ट है जिसमे स्टॉप & वेट ARQ कि एफिशिएंसी बढाने के लिए सेंडर विंडो साइज़ (WS) 1+2a होता है।
अब हम इसके प्रैक्टिकल प्रयोग कि बात करेंगे जिसमे हमे इसका ध्यान रखना होगा कि रिसीवर विंडो का साइज़ कितना होना चाहिए। प्रैक्टिकल रूप से इसे दो प्रोटोकॉल में implement किया जाता है:
1. गो बैक N (GBN)
2. सेलेक्टिव रिपीट (SR)
इस आर्टिकल में हम आपको पहले प्रोटोकॉल यानी GBN समझाने कि कोशिश करेंगे जिसमे उसके तीन प्रमुख characteristics वाले फीचर की चर्चा करेंगे और साथ ही SR कि चर्चा कर दोनों कि तुलना भी करेंगे।
सेंडर विंडो साइज़
ये N ही होता है। अगर हम कहे कि प्रोटोकॉल GB10 है तो WS= 10 होगा। अगर हमे पाइपलाइनिंग का प्रयोग करना हो तो N हमेशा 1 से ज्यादा रहना चाहिए। अगर N= 1 हो तो ये स्टॉप & वेट प्रोटोकॉल को कम करता है।
GBN कि एफिशिएंसी= N/(1+2a), जहां a= Tp/Tt
अगर B चैनल का बैंडविड्थ है तो इफेक्टिव बैंडविड्थ (EB) या Throughput= (Efficiency)*(Bandwidth)= (N/(1+2a))*B.
रिसीवर विंडो साइज़ (WR)
.रिसीवर विंडो साइज़ (WR) गो बैक N प्रोटोकॉल (GBN) में हमेशा 1 होता है।
अब GBN में क्या होता है इसको हम एक उदाहरण के जरिये अच्छे से समझायेंगे। नीचे दिए गये इस डायग्राम को ध्यान से देखिये:
अब मान लीजिये अगर पैकेट 2 नेटवर्क में कहीं खो गया तो रिसीवर पैकेट 1 के बाद जो भी पैकेट (4 और 5) आएंगे उन सबको अस्वीकार कर देगा क्योंकि वो तो पैकेट 2 का इन्तजार कर रहा है। सेंडर की तरफ से प्रत्येक पैकेट को भेजने के बाद टाइम आउट टाइमर चलता है जो पैकेट 2 के लिए expire हो जाएगा। अब सेंडर अंतिम भेजे हुए पैकेट 5 से पीछे अभी के विंडो में पैकेट संख्या 2 पर जाएगा पैकेट 5 तक के सभी पैकेट्स को ट्रांसमिट कर देगा। इसी कारण से इसे गो बैक N कहते हैं। गो बैक का मतलब हुआ कि सेंडर को unacknowledged विंडो में अंतिम ट्रांसमिट किये हुए पैकेट से N जगहों तक वापास जाना होता है, वहां से नहीं जहां से पैकेट खो गया है।
Acknowledgements
यहाँ पर दो तरह के acknowledgements होते हैं जिनका विवरण नीचे दिया गया है:
- Cumulative Ack– एक acknowledgement को कई पैकेट्स के लिए प्रयोग किया जाता है। प्रमुख फायदा यह है कि ट्रैफिक बहुत कम होता है। इसकी सबसे बड़ी खामी ये है कि अगर एक acknowledgement खो गया तो इसका मतलब हुआ कि भेजे गये सारे पैकेट्स खो गये हैं। इसीलिए इसमें रेलिअबिलिटी कम है।
- Independent Ack– अभी पैकेट को स्वतंत्र रूप से acknowledgement दिया जाता है और अलग-अलग। इसमें रेलिअबिलिटी ज्यादा है लेकिन ये ध्यान रखने वाली बात है कि इसमें ट्रैफिक भी ज्यादा है क्योंकि हम हर एक पैकेट के लिए अलग अलग acknowledgement भेज रहे हैं।
अगर रिसीवर के पास N संख्या में पैकेट्स हैं तो acknowledgement नंबर N+1 होगा। इसमें सबसे महत्वपूर्ण बात ये है कि ack टाइमर पहले टाइमर कि एक्सपायरी के बाद शुरू नही होगा बल्कि जब रिसीवर एक पैकेट प्राप्त करेगा तब होगा।
सेंडर के साइड पर टाइम आउट टाइमर ack टाइमर से ज्यादा होगा।
विंडो साइज़ और सीक्वेंस नम्बर के बीच रिलेशनशिप
हम ये अबतक जान गये हैं कि किसी भी स्लाइडिंग विंडो प्रोटोकॉल में जरूरी सीक्वेंस नम्बर हमेशा विंडो के साइज़ के बराबर होना चाहिए।
GBN में न्यूनतम जरूरी सीक्वेंस संख्या है N+1.
हमे बिट्स चाहिए: ceil(log2(N+1)).
अतिरिक्त 1 कि जरूरत हमे डुप्लीकेट पैकेट्स की समस्या को हटाने के लिए पड़ती है जैसा कि नीचे बताया गया है।
एक GB4 का उदाहरण देखिये जिसमे विंडो साइज़ 4 है। इसीलिए हमे न्यूनतम 4 सीक्वेंस नम्बर चाहिए होंगे क्योंकि विंडो के सभी पैकेट को अलग-अलग लेबल करना होगा। अब मान लीजिये कि रिसीवर ने सारे पैकेट्स (सेंडर द्वारा भेजा गया 0, 1, 2 और 3) प्राप्त कर लिए और वो पैकेट संख्या 0 के लिए फिर से इन्तजार करने लगा। यहाँ हम 4 का प्रयोग इसीलिए नहीं कर सकते क्योंकि हमारे पास केवल चार सीक्वेंस संख्या है, चूँकि N=4)।
अब मान लीजिये इन 4 पैकेट के लिए भेजा गया cumulative ack नेटवर्क में खो गया और सेंडर तक नहीं पहुँच पाया। वहीं सेंडर के साइड पैकेट 0 के लिए टाइमआउट हो जाएगा और सभी 4 पैकेट्स को फिर से ट्रांसमिट किया जाएगा। अब समस्या ये है कि रिसीवर तो पैकेट्स के नये सेट का इन्तजार कर रहा है जो कि 0 से शुरू होगा लेकिन उसे प्राप्त होगी तो पिछले आये सारे पैकेट्स कि डुप्लीकेट कॉपी। लेकिन अब रिसीवर आसानी से सभी डुप्लीकेट पैकेट्स को अस्वीकार कर सकता है क्योंकि वो तो पैकेट संख्या 4 के लिए इन्तजार कर रहा है (अब अतिरिक्त सीक्वेंस संख्या जोड़ा गया है)।
सीक्वेंस नम्बर 4 के साथ प्रयास:
स्लाइडिंग विंडो प्रोटोकॉल: सेलेक्टिव रिपीट (sliding window protocol selective repeat)
सेलेक्टिव रिपीट की जरूरत क्यों है?
अभी हमने देखा कि GBN यानी गो बैक N प्रोटोकॉल तब सही से काम करता है जब एरर कम हों लेकिन अगर लाइन कमजोर हो तो ये बहुत सारे बैंडविड्थ को फिर से ट्रांसमिट किये हुए फ्रेम्स बर्बाद करता है।
एक वैकल्पिक रणनीति है सेलेक्टिव रिपीट प्रोटोकॉल जो कि रिसीवर को फ्रेम के ख़राब होने या खोने के बाद उसे बफर करने और स्वीकार करने में सक्षम बनाता है।
सेलेक्टिव रिपीट केवल उन पैकेट्स को फिर से ट्रांसमिट करने कि कोशिश करता है जो असल में खो गये हैं या खराब हो गये हैं (errors की वजह से) :
- रिसीवर क्रम से बहार आये पैकेट को स्वीकार करने में सक्षम होना चाहिए।
- चूँकि रिसीवर को पैकेट्स को हायर लेयर में क्रम में रिलीज़ करना चाहिए, इसीलिए रिसीवर कुछ पैकेट्स को बफर करने में सक्षम होना चाहिए।
Retransmission Request
- Implicit– रीसीवर सभी सही पैकेट्स को ack करता है और जिन पैकेट को टाइम आउट से पहले ack नही कर पता उन्हें एरर या फिर बीच में खोया हुआ मान लिया जाता है। इस प्रक्रिया का होना जरूरी है ताकि पता चले कि कितने पैकेट्स प्राप्त हो चुके हैं।
- Explicit– एक explicit NAK सिर्फ एक पैकेट के ट्रांसमिशन का निवेदन कर सकता है। ये फिर से ट्रांसमिशन कर सकता है लेकिन इसकी जरूरत नहीं पड़ती।
- इनमे से कोई एक दोनों को प्रैक्टिस में प्रयोग किया जाता है।
सेलेक्टिव रिपीट प्रोटोकॉल (Selective repeat protocol in hindi)
ये प्रोटोकॉल GBN कि तरह ही है सिवाय इसके कि इसमें buffers का प्रयोग किया जाता है और रिसीवर एवं सेंडर दोनों ही विंडो साइज़ को मेन्टेन करते हैं।
जब लिंक भरोसेमंद नहीं तो तब SRP और अच्छे से काम करता है। ऐसा इसीलिए, क्योंकि इस स्थिति में ट्रांसमिशन और भी तेजी से होता है।
सभी फ्रेम को फिर से ट्रांसमिट करने से चुन-चुन कर फ्रेम्स को फिर से ट्रांसमिट करना ज्यादा बेहतर होता है। SRP को भी फुल डुप्लेक्स लिंक की जरूरत होती है। बैकवर्ड acknowledgements नही इसमें होते रहते हैं।
- सेंडर विंडो (WS) = रिसीवर विंडो (WR).
- SR प्रोटोकॉल में विंडो साइज़ सीक्वेंस नम्बर का आधा के बराबर होना चाहिए। ऐसा पैकेट की पहचान में गलती ना हो इसीलिए किया जाता है। अगर विंडो साइज़ सीक्वेंस नम्बर के आधा से ज्यादा होगा तो अगर ack खो जाने के बाद सेंडर फिर से नये पैकेट्स भेज सकता है जिसे रिसीवर retransmission समझ लेगा।
- सेंडर तब तक नये पैकेट्स ट्रांसमिट कर सकता है जब तक उसकी संख्या UNacked पैकेट्स के W के साथ हो।
- सेंडर एक टाइम आउट के बाद Unacked पैकेट्स को फिर से ट्रांसमिट करता है या फिर NAK के उपर अगर वो खाली हो।
- रिसीवर सभी सही पैकेट्स को एकनॉलेज करता है।
- रिसीवर सही पैकेट्स को सुरक्षित रखता है जबतक कि वो हायर लेयर में क्रम में आते रहें।
- सेलेक्टिव रिपीट ARQ में सेंडर और रिसीवर विंडो का साइज़ ज्यादा से ज्यादा 2^m का आधा होना चाहिए।
SRP कि एफिशिएंसी GBN के बराबर ही होती है:
Efficiency = N/(1+2a) Where a = Propagation delay / Transmission delay Buffers = N + N Sequence number = N(sender side) + N ( Receiver Side)
इस लेख से सम्बंधित यदि आपका कोई भी सवाल या सुझाव है, तो आप उसे नीचे कमेंट में लिख सकते हैं।
सम्बंधित लेख
- कंप्यूटर नेटवर्क में मेनचेस्टर इनकोडिंग (Manchester encoding) क्या है?
- कंप्यूटर नेटवर्क में फ्रीक्वेंसी डिवीज़न मल्टीप्लेक्सिंग (frequency division multiplexing) क्या है?
- कंप्यूटर नेटवर्क में हैमिंग कोड क्या है?
- कंप्यूटर नेटवर्क में टोकन रिंग के बारे में जानकारी
- कंप्यूटर नेटवर्क में CSMA/CD के कार्य की पूरी प्रक्रिया
- कंप्यूटर नेटवर्क में डायनामिक ट्रंकिंग प्रोटोकॉल क्या है?
- कंप्यूटर नेटवर्क में पोर्ट सिक्यूरिटी क्या है?
- कंप्यूटर नेटवर्क में रोल बेस्ड एक्सेस कण्ट्रोल और उसके फायदे
- कंप्यूटर नेटवर्क में चैनल कैपेसिटी या मैक्सिमम डाटा रेट क्या है?
- कंप्यूटर नेटवर्क में पैकेट स्विचिंग और डिलेज क्या हैं?
Excellent windows sliding poctocoll