गो-बैक-एन एआरक्यू: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
'''गो-बैक-एन एआरक्यू''' स्वचालित रिपीट रिक्वेस्ट (एआरक्यू) प्रोटोकॉल का एक विशिष्ट उदाहरण है, जिसमें भेजने की प्रक्रिया रिसीवर से [[पावती (डेटा नेटवर्क)|अभिस्वीकृति]] (एसीके) पैकेट प्राप्त किए बिना भी विंडो आकार द्वारा निर्दिष्ट अनेक फ्रेम भेजना जारी रखती है। यह सामान्य स्लाइडिंग विंडो प्रोटोकॉल का एक विशेष स्थिति है जिसमें {{var|N}} के ट्रांसमिट विंडो आकार और 1 के विंडो आकार प्राप्त होता है। यह एसीके की आवश्यकता से पहले पीयर को {{var|N}} फ्रेम संचारित कर सकता है। | |||
रिसीवर प्रक्रिया अगले फ्रेम के अनुक्रम संख्या पर दृष्टि रखती है जिसे वह प्राप्त करने की उम्मीद करता है। यह ऐसे किसी भी फ्रेम को हटा देगा जिसमें स्पष्ट अनुक्रम संख्या नहीं है जिसकी वह अपेक्षा करता है (या तो एक डुप्लिकेट फ्रेम जिसे उसने पहले ही स्वीकार कर लिया है, या एक आउट-ऑफ-ऑर्डर फ्रेम जिसे वह बाद में प्राप्त करने की उम्मीद करता है) और अंतिम सही इन-ऑर्डर फ्रेम के लिए एक एसीके भेजेगा।<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: | ||
== विंडो का आकार चुनना (एन) == | == विंडो का आकार चुनना (एन) == | ||
N के लिए मान चुनते समय कुछ बातें ध्यान में रखनी चाहिए: | |||
# प्रेषक को बहुत तेजी से संचारित नहीं करना चाहिए. {{var|N}} पैकेट को संसाधित करने की रिसीवर की क्षमता से | #प्रेषक को बहुत तेजी से संचारित नहीं करना चाहिए. {{var|N}} को पैकेट को संसाधित करने की रिसीवर की क्षमता से सीमित किया जाना चाहिए। | ||
# {{var|N}} अनुक्रम संख्याओं की संख्या से छोटी होनी चाहिए (यदि उन्हें शून्य से क्रमांकित किया गया है {{var|N}}) {{Clarify|date=February 2018}} किसी भी पैकेट (कोई डेटा या | #किसी भी पैकेट (कोई डेटा या एसीके पैकेट) के गिराए जाने की स्थिति में ट्रांसमिशन को सत्यापित करने के लिए {{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 के लिए मान चुनते समय कुछ बातें ध्यान में रखनी चाहिए:
- प्रेषक को बहुत तेजी से संचारित नहीं करना चाहिए. N को पैकेट को संसाधित करने की रिसीवर की क्षमता से सीमित किया जाना चाहिए।
- किसी भी पैकेट (कोई डेटा या एसीके पैकेट) के गिराए जाने की स्थिति में ट्रांसमिशन को सत्यापित करने के लिए N अनुक्रम संख्याओं की संख्या से छोटा होना चाहिए (यदि उन्हें शून्य से N तक क्रमांकित किया गया है)
- N अनुक्रम संख्याओं की संख्या से छोटी होनी चाहिए (यदि उन्हें शून्य से क्रमांकित किया गया है N)[clarification needed] किसी भी पैकेट (कोई डेटा या एसीके पैकेट) गिराए जाने की स्थिति में ट्रांसमिशन को सत्यापित करने के लिए।[2]#
- [3][failed verification]
- (1) और (2) में प्रस्तुत सीमाओं को देखते हुए, N को यथासंभव सबसे बड़ी संख्या के रूप में चुनें।
संदर्भ
- ↑ 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