पैकेट रिबार्डिंग के साथ भ्रमित

Aug 15 2020

मैं एक पाठ्यपुस्तक पढ़ रहा था जो टीसीपी प्रोटोकॉल "सेलेक्टिव रिपीट" के बारे में कहती है:

हमने मान लिया है कि प्रेषक और रिसीवर के बीच चैनल के भीतर पैकेट को फिर से व्यवस्थित नहीं किया जा सकता है। यह आमतौर पर एक उचित धारणा है जब प्रेषक और रिसीवर एक एकल भौतिक तार से जुड़े होते हैं। हालाँकि, जब दोनों को जोड़ने वाला "चैनल" एक नेटवर्क है, तो पैकेट रीक्रिएटिंग हो सकता है। व्यवहार में लिया गया दृष्टिकोण यह सुनिश्चित करने के लिए है कि एक अनुक्रम संख्या का पुन: उपयोग नहीं किया जाता है जब तक कि प्रेषक "सुनिश्चित" न हो कि अनुक्रम संख्या x के साथ पहले भेजे गए पैकेट अब नेटवर्क में नहीं हैं। यह मानकर किया जाता है कि एक पैकेट नेटवर्क में कुछ समय के लिए निश्चित अधिकतम राशि से अधिक समय तक "जीवित" नहीं रह सकता है।

मैं भ्रमित हूं और नीचे मेरे दो सवाल हैं।

Q1- क्या करता है "चैनल को अनिवार्य रूप से बफरिंग पैकेट के रूप में सोचा जा सकता है और भविष्य में इन पैकेटों को अनायास ही छोड़ दिया जाना चाहिए।" क्या मतलब है? हमें एक पुराने पैकेट को बफर करने की आवश्यकता क्यों है? क्या यह बेहतर नहीं है कि रिसीवर इसे अनदेखा कर दे?

Q2-मान लें कि विंडो का आकार 2 है और उपलब्ध अनुक्रम संख्या 0,1,2,3 है। प्रेषक सबसे पहले पैकेट 0, पैकेट 1 भेजता है, जबकि पैकेट 0 किसी तरह से मारा जाता है और आने में बहुत समय लगता है, इसलिए समय समाप्त होने पर प्रेषक को फिर से पैकेट 0 भेजना होता है, लेकिन इस बार पैकेट 0 (नया) समय पर आता है। तब प्रेषक पैकेट 2, पैकेट 3, सभी रिसीवर द्वारा प्राप्त करता है। और फिर प्रेषक पैकेट 0 (नया), और पैकेट 1 (नया) भेजने वाला है, लेकिन पुराना पैकेट 0 अब रिसीवर के पास पहुंच जाता है, इसलिए यह नहीं पता चल पाता कि यह पैकेट पुराना पैकेट है या नया पैकेट। तो "कैसे मान लेता है कि एक पैकेट नेटवर्क में" लाइव "नहीं कर सकता है जो कुछ निश्चित अधिकतम समय से अधिक समय तक" इस मुद्दे को ठीक कर सकता है? क्या इसका मतलब है कि पैकेट हेडर में वह समय है जो उसे भेजा गया था?

जवाब

2 Zac67 Aug 16 2020 at 07:31

क्या करता है "चैनल को अनिवार्य रूप से बफरिंग पैकेट के रूप में सोचा जा सकता है और भविष्य में किसी भी बिंदु पर इन पैकेटों को सहजता से उत्सर्जित किया जा सकता है।" क्या मतलब है? हमें एक पुराने पैकेट को बफर करने की आवश्यकता क्यों है? बेहतर नहीं है कि रिसीवर इसे अनदेखा करे?

यह कतारबद्ध और बफरिंग की प्रकृति है जो पैकेट स्विचिंग का एक अनिवार्य हिस्सा है - प्राप्त पैकेट कतारबद्ध होते हैं / इनग्रेस पर बफ़र किए जाते हैं और एक बार अग्रेषित किए जाने के बाद कतार से हटा दिए जाते हैं। बफ़रिंग आवश्यक है अन्यथा जब भी पैकेट प्राप्त होता है तो ईग्रेस लिंक हमेशा मुक्त होना चाहिए - यह पैकेट-स्विच किए गए नेटवर्क के लिए संभव नहीं है, केवल सर्किट-स्विच वाले के लिए।

बता दें कि विंडो का साइज 2 है और एबेबेबे सीक्वेंस नंबर 0,1,2,3 है।

खिड़की पैकेट / डेटाग्राम नहीं बल्कि बाइट्स गिनती है । इसके अलावा, अनुक्रम संख्या केवल तब दोहराई जाती है जब उसका 32-बिट क्षेत्र ओवरफ्लो होता है - जो कि डेटा के 4 GiB के बाद ही होता है। हालांकि, उस सीमा का अर्थ है कि अस्पष्टता से बचने के लिए "उड़ान में" कभी भी 4 से अधिक गिब डेटा नहीं हो सकता है। चूँकि सबसे बड़ी संभव खिड़की 1 GiB के करीब है, इसलिए यह कोई समस्या नहीं है।

ध्यान दें कि सरल, संचयी ACKs के साथ, रिसीवर चुनिंदा ACK बाद के सेगमेंट नहीं कर सकता है जब एक पिछला खंड अभी भी गायब है। एक एसीके का मतलब है कि पिछले सभी डेटा प्राप्त हुए हैं।

उदाहरण के लिए, 1,000 के खंड आकार और 10,000 की खिड़की के आकार के साथ, प्रेषक डेटाग्राम D00-D09 (अनुक्रम 0-9,999) भेजता है। D00 और D02-D09 प्राप्त होते हैं, लेकिन D01 खो जाता है। रिसीवर अभी भी ACKs 1,000 (अगले अपेक्षित डेटा अनुक्रम) जो प्रेषक को D0 को खिड़की से बाहर स्थानांतरित करने के लिए ट्रिगर करता है, इसे 1,000-10,999 तक आगे बढ़ाता है, और D10 भेजता है।

इस बीच रिसीवर ने फैसला किया है कि एक समस्या है, इसलिए यह सिर्फ संकेत देने के लिए फिर से एसीके 1000 करता है। प्रेषक डबल ACK प्राप्त करता है और D01 (अनिच्छुक मोड) या D01 (आक्रामक मोड) से शुरू होने वाले सभी डेटा को भेजता है। रिसीवर को पहले से ही D10 (10,000-10,999) मिल चुका है, इसलिए यह ACKs 11,000 है जो बदले में प्रेषक की खिड़की को 11,000-20,999 में स्थानांतरित करता है (और आक्रामक मोड के लिए अभी भी बकाया retransmissions को निरस्त करता है)।

(मैंने कुछ हद तक प्रक्रिया को सरल बना दिया है, वास्तव में अधिक समानांतर ओवरलैप है, और भेजने और प्राप्त करने के बीच एक देरी, निश्चित रूप से)।

संपादित करें: जैसा कि जेफ ने सही (thx!) बताया है, चयनात्मक स्वीकार्यता (SACK) के लिए समर्थन आज दिया गया है। उस विकल्प का उपयोग करते हुए, रिसीवर तुरंत 2,000-9,999 (D02-D09 से) वापस ले सकता है, इसलिए प्रेषक उन्हें फिर से शुरू नहीं करेगा। यह पहले भी 11,000-20,999 का प्रसारण शुरू कर सकता था।