गो-बैक-एन एआरक्यू: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:


'''गो-बैक-''एन'' एआरक्यू''' स्वचालित रिपीट रिक्वेस्ट (एआरक्यू) प्रोटोकॉल का एक विशिष्ट उदाहरण है, जिसमें भेजने की प्रक्रिया रिसीवर से  [[पावती (डेटा नेटवर्क)|अभिस्वीकृति(डेटा नेटवर्क)]] (एसीके) पैकेट प्राप्त किए बिना भी ''विंडो आकार'' द्वारा निर्दिष्ट कई [[डेटा ढांचा]] भेजना जारी रखती है। यह ट्रांसमिट विंडो आकार के साथ सामान्य [[स्लाइडिंग विंडो प्रोटोकॉल]] का एक विशेष मामला है {{var|N}} और 1 का विंडो आकार प्राप्त करें। यह संचारित कर सकता है {{var|N}} ACK की आवश्यकता से पहले सहकर्मी को फ्रेम।


रिसीवर प्रक्रिया अगले फ्रेम के अनुक्रम संख्या पर नज़र रखती है जिसे वह प्राप्त करने की उम्मीद करता है। यह ऐसे किसी भी फ्रेम को हटा देगा जिसमें सटीक अनुक्रम संख्या नहीं है जिसकी वह अपेक्षा करता है (या तो एक डुप्लिकेट फ्रेम जिसे उसने पहले ही स्वीकार कर लिया है, या एक आउट-ऑफ-ऑर्डर फ्रेम जिसे वह बाद में प्राप्त करने की उम्मीद करता है) और अंतिम सही इन-ऑर्डर फ्रेम के लिए एक एसीके भेजेगा।<ref name="KuroseRoss" />एक बार जब प्रेषक अपनी विंडो में सभी फ़्रेम भेज देता है, तो यह पता लगाएगा कि पहले खोए हुए फ़्रेम के बाद से सभी फ़्रेम बकाया हैं, और रिसीवर प्रक्रिया से प्राप्त अंतिम ACK के अनुक्रम संख्या पर वापस जाएगा और उस फ़्रेम से शुरू करके अपनी विंडो को भर देगा और प्रक्रिया को फिर से जारी रखेगा।
'''गो-बैक-एन एआरक्यू''' स्वचालित रिपीट रिक्वेस्ट (एआरक्यू) प्रोटोकॉल का एक विशिष्ट उदाहरण है, जिसमें भेजने की प्रक्रिया रिसीवर से [[पावती (डेटा नेटवर्क)|अभिस्वीकृति]] (एसीके) पैकेट प्राप्त किए बिना भी विंडो आकार द्वारा निर्दिष्ट अनेक फ्रेम भेजना जारी रखती है। यह सामान्य स्लाइडिंग विंडो प्रोटोकॉल का एक विशेष स्थिति है जिसमें {{var|N}} के ट्रांसमिट विंडो आकार और 1 के विंडो आकार प्राप्त होता है। यह एसीके की आवश्यकता से पहले पीयर को {{var|N}} फ्रेम संचारित कर सकता है।
 
गो-बैक-एन एआरक्यू [[रुकें और प्रतीक्षा करें ARQ]] की तुलना में कनेक्शन का अधिक कुशल उपयोग है, क्योंकि प्रत्येक पैकेट के लिए पावती की प्रतीक्षा करने के विपरीत, कनेक्शन अभी भी पैकेट भेजे जाने के दौरान उपयोग किया जा रहा है। दूसरे शब्दों में, उस समय के दौरान जो अन्यथा प्रतीक्षा में व्यतीत होता, अधिक पैकेट भेजे जा रहे हैं। हालाँकि, इस पद्धति के परिणामस्वरूप फ़्रेम को कई बार भेजना पड़ता है - यदि कोई फ़्रेम खो गया है या क्षतिग्रस्त हो गया है, या उन्हें स्वीकार करने वाला ACK खो गया है या क्षतिग्रस्त हो गया है, तो वह फ़्रेम और सेंड विंडो में निम्नलिखित सभी फ़्रेम (भले ही वे त्रुटि के बिना प्राप्त हुए हों) फिर से भेजे जाएंगे। इससे बचने के लिए [[चयनात्मक दोहराएँ ARQ]] का इस्तेमाल किया जा सकता है।<ref name="Tanenbaum" />


रिसीवर प्रक्रिया अगले फ्रेम के अनुक्रम संख्या पर दृष्टि रखती है जिसे वह प्राप्त करने की उम्मीद करता है। यह ऐसे किसी भी फ्रेम को हटा देगा जिसमें स्पष्ट अनुक्रम संख्या नहीं है जिसकी वह अपेक्षा करता है (या तो एक डुप्लिकेट फ्रेम जिसे उसने पहले ही स्वीकार कर लिया है, या एक आउट-ऑफ-ऑर्डर फ्रेम जिसे वह बाद में प्राप्त करने की उम्मीद करता है) और अंतिम सही इन-ऑर्डर फ्रेम के लिए एक एसीके भेजेगा।<ref name="KuroseRoss" /> एक बार जब प्रेषक अपनी विंडो में सभी फ़्रेम भेज देता है, तो यह पता लगाएगा कि पहले खोए हुए फ़्रेम के बाद से सभी फ़्रेम बकाया हैं, और रिसीवर प्रक्रिया से प्राप्त अंतिम एसीके के अनुक्रम संख्या पर वापस जाएगा और उस फ़्रेम से प्रारंभ करके अपनी विंडो को भर देगा और प्रक्रिया को फिर से प्रसारित किया जायेगा |


गो-बैक-एन एआरक्यू [[रुकें और प्रतीक्षा करें ARQ|स्टॉप-एंड-वेट ARQ]] की तुलना में कनेक्शन का अधिक कुशल उपयोग है, क्योंकि प्रत्येक पैकेट के लिए पावती की प्रतीक्षा करने के विपरीत, कनेक्शन अभी भी पैकेट भेजे जाने के समय उपयोग किया जा रहा है। दूसरे शब्दों में, उस समय के समय जो अन्यथा प्रतीक्षा में व्यतीत होता, अधिक पैकेट भेजे जा रहे हैं। चूँकि, इस पद्धति के परिणामस्वरूप फ़्रेम को अनेक बार भेजना पड़ता है - यदि कोई फ़्रेम खो गया है या क्षतिग्रस्त हो गया है, या उन्हें स्वीकार करने वाला एसीके खो गया है या क्षतिग्रस्त हो गया है, तो वह फ़्रेम और सेंड विंडो में निम्नलिखित सभी फ़्रेम (तथापि  वे त्रुटि के बिना प्राप्त हुए हों) फिर से भेजे जाएंगे। इससे बचने के लिए [[चयनात्मक दोहराएँ ARQ|सेलेक्टिव रिपीट ARQ]] का उपयोग किया जा सकता है।<ref name="Tanenbaum" />
== स्यूडोकोड ==
== स्यूडोकोड ==
ये उदाहरण अनुक्रम और अनुरोध संख्याओं की अनंत संख्या मानते हैं।<ref name="KuroseRoss" />
ये उदाहरण अनुक्रम और अनुरोध संख्याओं की अनंत संख्या मानते हैं।<ref name="KuroseRoss" />
<syntaxhighlight>
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.
</syntaxhighlight>
  एन := विंडो का आकार
  एन := विंडो का आकार
  आरएन:= अनुरोध संख्या
  आरएन:= अनुरोध संख्या
Line 40: Line 69:
== विंडो का आकार चुनना (एन) ==
== विंडो का आकार चुनना (एन) ==


किसी मूल्य का चयन करते समय कुछ बातें ध्यान में रखनी चाहिए {{var|N}}:
N के लिए मान चुनते समय कुछ बातें ध्यान में रखनी चाहिए:


# प्रेषक को बहुत तेजी से संचारित नहीं करना चाहिए. {{var|N}} पैकेट को संसाधित करने की रिसीवर की क्षमता से बंधा होना चाहिए।
#प्रेषक को बहुत तेजी से संचारित नहीं करना चाहिए. {{var|N}} को पैकेट को संसाधित करने की रिसीवर की क्षमता से सीमित किया जाना चाहिए।
# {{var|N}} अनुक्रम संख्याओं की संख्या से छोटी होनी चाहिए (यदि उन्हें शून्य से क्रमांकित किया गया है {{var|N}}) {{Clarify|date=February 2018}} किसी भी पैकेट (कोई डेटा या ACK पैकेट) गिराए जाने की स्थिति में ट्रांसमिशन को सत्यापित करने के लिए।<ref name="Tanenbaum" /># (1) और (2) में प्रस्तुत सीमाओं को देखते हुए चुनें {{var|N}} संभव सबसे बड़ी संख्या होना।<ref>{{Cite web |url=http://www.cs.toronto.edu/~marbach/COURSES/CSC358_S14/l4.pdf |accessdate=2013-08-24 |last = Marbach |first = Peter | title=ARQ Protocols}}</ref>{{failed verification|date=August 2013}}
#किसी भी पैकेट (कोई डेटा या एसीके पैकेट) के गिराए जाने की स्थिति में ट्रांसमिशन को सत्यापित करने के लिए {{var|N}} अनुक्रम संख्याओं की संख्या से छोटा होना चाहिए (यदि उन्हें शून्य से {{var|N}} तक क्रमांकित किया गया है)
# {{var|N}} अनुक्रम संख्याओं की संख्या से छोटी होनी चाहिए (यदि उन्हें शून्य से क्रमांकित किया गया है {{var|N}}) {{Clarify|date=February 2018}} किसी भी पैकेट (कोई डेटा या एसीके पैकेट) गिराए जाने की स्थिति में ट्रांसमिशन को सत्यापित करने के लिए।<ref name="Tanenbaum" />#
#<ref>{{Cite web |url=http://www.cs.toronto.edu/~marbach/COURSES/CSC358_S14/l4.pdf |accessdate=2013-08-24 |last = Marbach |first = Peter | title=ARQ Protocols}}</ref>{{failed verification|date=August 2013}}
#(1) और (2) में प्रस्तुत सीमाओं को देखते हुए, N को यथासंभव सबसे बड़ी संख्या के रूप में चुनें।


==संदर्भ==
==संदर्भ==

Revision as of 09:24, 31 July 2023


गो-बैक-एन एआरक्यू स्वचालित रिपीट रिक्वेस्ट (एआरक्यू) प्रोटोकॉल का एक विशिष्ट उदाहरण है, जिसमें भेजने की प्रक्रिया रिसीवर से अभिस्वीकृति (एसीके) पैकेट प्राप्त किए बिना भी विंडो आकार द्वारा निर्दिष्ट अनेक फ्रेम भेजना जारी रखती है। यह सामान्य स्लाइडिंग विंडो प्रोटोकॉल का एक विशेष स्थिति है जिसमें 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.
एन := विंडो का आकार
आरएन:= अनुरोध संख्या
एसएन: = अनुक्रम संख्या
एसबी := अनुक्रम आधार
एसएम:= अनुक्रम अधिकतम


'फ़ंक्शन' रिसीवर 'है'
    आरएन := 0
    निम्नलिखित हमेशा के लिए करें:
        'यदि' पैकेट प्राप्त हुआ = Rn और पैकेट त्रुटि रहित है 'तब'
            पैकेट स्वीकार करें और इसे उच्च परत पर भेजें
            आरएन := आरएन + 1
        'अन्य'
            मना पैकेट
        आरएन के लिए अनुरोध भेजें


'फ़ंक्शन' प्रेषक 'है'
    एसबी := 0
    एसएम := एन + 1
    निम्नलिखित चरणों को हमेशा दोहराएँ:
        'यदि' आपको एक अनुरोध संख्या प्राप्त होती है जहां Rn > Sb 'तो'
            एसएम:= (एसएम − एसबी) + आरएन
            एसबी := आरएन
        'यदि' कोई पैकेट ट्रांसमिशन में नहीं है 'तो'
            एक पैकेट संचारित करें जहां Sb ≤ Sn ≤ sm।
            पैकेट क्रम से प्रसारित होते हैं।

विंडो का आकार चुनना (एन)

N के लिए मान चुनते समय कुछ बातें ध्यान में रखनी चाहिए:

  1. प्रेषक को बहुत तेजी से संचारित नहीं करना चाहिए. N को पैकेट को संसाधित करने की रिसीवर की क्षमता से सीमित किया जाना चाहिए।
  2. किसी भी पैकेट (कोई डेटा या एसीके पैकेट) के गिराए जाने की स्थिति में ट्रांसमिशन को सत्यापित करने के लिए N अनुक्रम संख्याओं की संख्या से छोटा होना चाहिए (यदि उन्हें शून्य से N तक क्रमांकित किया गया है)
  3. N अनुक्रम संख्याओं की संख्या से छोटी होनी चाहिए (यदि उन्हें शून्य से क्रमांकित किया गया है N)[clarification needed] किसी भी पैकेट (कोई डेटा या एसीके पैकेट) गिराए जाने की स्थिति में ट्रांसमिशन को सत्यापित करने के लिए।[2]#
  4. [3][failed verification]
  5. (1) और (2) में प्रस्तुत सीमाओं को देखते हुए, N को यथासंभव सबसे बड़ी संख्या के रूप में चुनें।

संदर्भ

  1. 1.0 1.1 Kurose, James F.; Keith W. Ross. Computer Networking: A Top-Down Approach. ISBN 0-321-49770-8.
  2. 2.0 2.1 Tanenbaum, Andrew S. Computer Networks (4th ed.). ISBN 0-13-066102-3.
  3. Marbach, Peter. "ARQ Protocols" (PDF). Retrieved 2013-08-24.


यह भी देखें

बाहरी संबंध