गो-बैक-एन एआरक्यू
गो-बैक-एन एआरक्यू स्वचालित रिपीट रिक्वेस्ट (एआरक्यू) प्रोटोकॉल का एक विशिष्ट उदाहरण है, जिसमें भेजने की प्रक्रिया रिसीवर से इक्नॉव्लेजमेंट (एसीके) पैकेट प्राप्त किए बिना भी विंडो आकार द्वारा निर्दिष्ट अनेक फ्रेम भेजना प्रवाहित करती है। यह सामान्य स्लाइडिंग विंडो प्रोटोकॉल का एक विशेष स्थिति है जिसमें N के ट्रांसमिट विंडो आकार और 1 के विंडो आकार प्राप्त होता है। यह एसीके की आवश्यकता से पहले पीयर को N फ्रेम संचारित कर सकता है।
रिसीवर प्रक्रिया अगले फ्रेम के अनुक्रम संख्या पर दृष्टि रखती है जिसे वह प्राप्त करने की आशा करता है। यह ऐसे किसी भी फ्रेम को हटा देगा जिसमें स्पष्ट अनुक्रम संख्या नहीं है जिसकी वह अपेक्षा करता है (या तो एक डुप्लिकेट फ्रेम जिसे उसने पहले ही स्वीकार कर लिया है, या एक आउट-ऑफ-ऑर्डर फ्रेम जिसे वह बाद में प्राप्त करने की आशा करता है) और अंतिम सही इन-ऑर्डर फ्रेम के लिए एक एसीके भेजेगा।[1] एक बार जब प्रेषक अपनी विंडो में सभी फ़्रेम भेज देता है, तो यह पता लगाएगा कि पहले खोए हुए फ़्रेम के पश्चात से सभी फ़्रेम शेष हैं, और रिसीवर प्रक्रिया से प्राप्त अंतिम एसीके के अनुक्रम संख्या पर वापस जाएगा और उस फ़्रेम से प्रारंभ करके अपनी विंडो को भर देगा और प्रक्रिया को फिर से प्रसारित किया जायेगा |
गो-बैक-एन एआरक्यू स्टॉप-एंड-वेट ARQ की तुलना में कनेक्शन का अधिक कुशल उपयोग है, क्योंकि प्रत्येक पैकेट के लिए पावती की प्रतीक्षा करने के विपरीत, कनेक्शन अभी भी पैकेट भेजे जाने के समय उपयोग किया जा रहा है। दूसरे शब्दों में, उस समय के समय जो अन्यथा प्रतीक्षा में व्यतीत होता, अधिक पैकेट भेजे जा रहे हैं। चूँकि, इस पद्धति के परिणामस्वरूप फ़्रेम को अनेक बार भेजना पड़ता है - यदि कोई फ़्रेम खो गया है या क्षतिग्रस्त हो गया है, या उन्हें स्वीकार करने वाला एसीके खो गया है या क्षतिग्रस्त हो गया है, तो वह फ़्रेम और सेंड विंडो में निम्नलिखित सभी फ़्रेम (तथापि वे त्रुटि के बिना प्राप्त हुए हों) फिर से भेजे जाएंगे। इससे बचने के लिए सेलेक्टिव रिपीट ARQ का उपयोग किया जा सकता है।[2]
स्यूडोकोड
ये उदाहरण अनुक्रम और अनुरोध संख्याओं की अनंत संख्या मानते हैं।[1]
N := window size
Rn := request number
Sn := sequence number
Sb := sequence base
Sm := sequence max
function receiver is
Rn := 0
Do the following forever:
if the packet received = Rn and the packet is error free then
Accept the packet and send it to a higher layer
Rn := Rn + 1
else
Refuse packet
Send a Request for Rn
function sender is
Sb := 0
Sm := N + 1
Repeat the following steps forever:
if you receive a request number where Rn > Sb then
Sm := (Sm − Sb) + Rn
Sb := Rn
if no packet is in transmission then
Transmit a packet where Sb ≤ Sn ≤ Sm.
Packets are transmitted in order.
विंडो का आकार चुनना (एन)
N के लिए मान चुनते समय कुछ बातें ध्यान में रखनी चाहिए:
- प्रेषक को अधिक तीव्र से संचारित नहीं करना चाहिए. N को पैकेट को संसाधित करने की रिसीवर की क्षमता से सीमित किया जाना चाहिए।
- किसी भी पैकेट (कोई डेटा या एसीके पैकेट) के गिराए जाने की स्थिति में ट्रांसमिशन को सत्यापित करने के लिए N अनुक्रम संख्याओं की संख्या से छोटा होना चाहिए (यदि उन्हें शून्य से N तक क्रमांकित किया गया है)[2]
- (1) और (2) में प्रस्तुत सीमाओं को देखते हुए, N को यथासंभव अधिक उच्च संख्या के रूप में चुनें।[3]
संदर्भ
- ↑ 1.0 1.1 Kurose, James F.; Keith W. Ross. Computer Networking: A Top-Down Approach. ISBN 0-321-49770-8.
- ↑ 2.0 2.1 Tanenbaum, Andrew S. Computer Networks (4th ed.). ISBN 0-13-066102-3.
- ↑ Marbach, Peter. "ARQ Protocols" (PDF). Retrieved 2013-08-24.
यह भी देखें
- विश्वसनीय डेटा स्थानांतरण
- पाइपलाइन (सॉफ्टवेयर)
- स्वचालित दोहराव अनुरोध
- कम्प्यूटर नेट्वर्किंग
- चयनात्मक दोहराएँ ARQ