ट्रेडरच्या वैज्ञानिक कॅल्क्युलेटरमध्ये स्लाइडिंग विंडोचा आकार प्रविष्ट करणे. स्लाइडिंग विंडो

FAQ 26.05.2019
चेरचर

या पद्धतीची मुख्य कल्पना (याला सहसा LZ1 पद्धत देखील म्हटले जाते, पहा) इनपुट फाइलचा पूर्वी वाचलेला भाग शब्दकोश म्हणून वापरणे आहे. एन्कोडर इनपुट फाइलसाठी एक विंडो तयार करतो आणि ती उजवीकडून डावीकडे हलवतो ज्यासाठी संक्षेप आवश्यक आहे. अशा प्रकारे, पद्धत स्लाइडिंग विंडोवर आधारित आहे. खिडकी दोन भागात विभागली आहे. डावीकडील भागाला शोध बफर म्हणतात. हे वर्तमान शब्दकोश म्हणून काम करेल आणि त्यात नेहमीच अलीकडे आलेले आणि एन्कोड केलेले वर्ण असतील. विंडोच्या उजव्या बाजूस लुकहेड बफर म्हणतात, ज्यामध्ये मजकूर आहे जो आता एन्कोड केला जाईल. सराव मध्ये, शोध बफरमध्ये अनेक हजार बाइट्स असतात आणि लूकहेड बफरची लांबी अनेक दहा वर्णांची असते. उभ्या पट्टी | t आणि e या अक्षरांमधील दोन बफरमधील वर्तमान विभागणी. म्हणून समजा "sir_sid_eastman_easily_t" हा मजकूर आधीच संकुचित केलेला आहे आणि "eases_sea_sick_seals" मजकूर संकुचित करणे आवश्यक आहे.

sir_sid_eastman_asily_t

eases_sea_sick_seals

एन्कोडर लुकअप बफरला उलट क्रमाने स्कॅन करतो (उजवीकडून डावीकडे) आणि लूकहेड बफरमधून वर्ण e ची पहिली घटना शोधतो. शब्दाच्या सुरुवातीला असे अक्षर सहज ओळखते. याचा अर्थ e हे (ऑफसेटद्वारे) शोध बफरच्या शेवटी 8 अंतरावर आहे. एन्कोडर नंतर किती जुळणारे वर्ण या दोन ई वर्णांचे अनुसरण करतात हे निर्धारित करते, या प्रकरणात, कॅरेक्टर मॅच ea ची लांबी 3 आहे. एन्कोडर दीर्घ जुळणारे अनुक्रम शोधण्याचा प्रयत्न करत आहे. आमच्या बाबतीत, ईस्टमॅन शब्दामध्ये 16 च्या ऑफसेटसह समान लांबी 3 चा दुसरा जुळणारा क्रम आहे. डीकोडर त्यापैकी सर्वात लांब निवडतो आणि जर लांबी जुळत असेल तर सर्वात दूरची, आणि लेबल तयार करतो (16, 3, "ई").

अधिक दूरचा दुवा निवडणे एन्कोडरसाठी सोपे करते. हे लक्षात घेणे मनोरंजक आहे की सर्वात जवळचा सामना निवडणे, प्रोग्रामला काहीसे अधिक जटिल बनवताना, त्याचे काही फायदे देखील आहेत. या प्रकरणात, सर्वात लहान ऑफसेट निवडला जातो. टॅगमध्ये सर्वात मोठा ऑफसेट संचयित करण्यासाठी पुरेशी बिट असल्याने याचा काही फायदा नाही असे दिसते. तथापि, Huffman एन्कोडिंग किंवा इतर सांख्यिकीय लेबल एन्कोडिंगसह LZ77 चे अनुसरण करणे शक्य आहे जेथे लहान ऑफसेट लहान कोड नियुक्त केले जातात. बर्नार्ड हर्डने प्रस्तावित केलेल्या या पद्धतीला एलझेडएच म्हणतात. जर अनेक लहान विस्थापन प्राप्त झाले तर एलझेडएच सह अधिक कॉम्प्रेशन प्राप्त होते.

पुढील कल्पना समजून घेणे खूप सोपे आहे. एन्कोडरने कोणता सामना निवडला, सर्वात जवळचा किंवा सर्वात दूरचा हे डिकोडरला माहित नाही, परंतु हे माहित असणे आवश्यक नाही! डीकोडर फक्त लेबले वाचतो आणि शोध बफरमध्ये मजकूर स्ट्रिंग शोधण्यासाठी ऑफसेट वापरतो. हा पहिला योगायोग असो की शेवटचा याने त्याला काही फरक पडत नाही.

सर्वसाधारणपणे, LZ77 लेबलमध्ये तीन फील्ड असतात: ऑफसेट, लांबी आणि लूकहेड बफरमधील पुढील कॅरेक्टर (आमच्या बाबतीत, हे टीसेसमधील दुसरे ई असेल. हे लेबल आउटपुट फाइलवर लिहिले जाते, आणि विंडो शिफ्ट केली जाते. उजवीकडे (किंवा इनपुट फाईल डावीकडे हलविली जाते) चार स्थानांमध्ये: जुळणाऱ्या क्रमासाठी तीन स्थाने आणि पुढील वर्णासाठी एक स्थान.

Sid_eastman_asily_tease

s_sea_sick_seals …

उलट शोधात वर्णांची जुळवाजुळव न आढळल्यास, 0 च्या ऑफसेटसह आणि 0 च्या लांबीसह लेबल लिहिले जाते. त्याच कारणास्तव, लेबलमध्ये तिसरा घटक असेल. शून्य ऑफसेट आणि लांबी असलेली लेबले नेहमी कामाच्या सुरूवातीला असतात, जेव्हा शोध बफर रिकामा किंवा जवळजवळ रिकामा असतो. आमच्या उदाहरणासाठी पहिले सात कोडिंग चरण खाली दर्शविले आहेत.

sir_sid_eastman_r

ir_sid_eastman_e

r_sid_eastman_ea

Sid_eastman_eas

sid_eastman_easi

astman_asily_te

हे स्पष्ट आहे की फॉर्मची लेबले (0,0,...), जे एकल वर्ण एन्कोड करतात, चांगले कॉम्प्रेशन देत नाहीत. त्यांची लांबी मोजणे सोपे आहे. ऑफसेट आकार आहे, शोध बफरची लांबी कुठे आहे. सराव मध्ये, हा बफर कित्येकशे बाइट लांब आहे, म्हणून ऑफसेट 10 - 12 बिट लांब आहे. “लांबी” फील्डचा आकार बरोबर आहे, लूकहेड बफरची लांबी कुठे आहे (1 वजा करणे का आवश्यक आहे हे पुढील परिच्छेद स्पष्ट करेल). सामान्यतः लुकहेड बफर अनेक दहा बाइट्स लांब असतो. म्हणून, या फील्डची लांबी अनेक बिट्स आहे. "वर्ण" फील्डचा आकार सामान्यतः 8 बिट्स असतो, परंतु सर्वसाधारणपणे - , वर्णमालाचा आकार कुठे असतो. एका वर्णाच्या लेबलचा एकूण आकार (0,0,...) बिट्सच्या बरोबरीचा आहे, जो शून्य कोड घटकांशिवाय “रॉ” वर्णाच्या लांबी 8 पेक्षा खूप मोठा आहे.

खालील उदाहरण दर्शवते की लांबी फील्ड लुकहेड बफर आकारापेक्षा जास्त का असू शकते:

alf_eastman_asily_grows_alf

लुकहेड बफरमधील पहिले कॅरेक्टर a हे लुकअप बफरमधील 5 व्या कॅरेक्टर a सारखेच आहे. असे दिसून येईल की दोन्ही बाहेरील a चे 3 च्या मॅच लांबीसह जुळतील, म्हणून एन्कोडर सर्वात डावीकडील वर्ण निवडेल आणि लेबल (28,3, "a") तयार करेल. खरं तर, एन्कोडर लेबल (3,4, “_”) तयार करतो. लुकहेड बफरमधील चार-वर्ण "अल्फा" स्ट्रिंग लुकअप बफरच्या तीन "अल्फ" वर्ण आणि लुकहेड बफरच्या पहिल्या "ए" वर्णांशी जुळते. याचे कारण म्हणजे डीकोडर कोणत्याही बदलाशिवाय अशी चिन्हे अगदी नैसर्गिकरित्या हाताळू शकतो. हे शोध बफरच्या स्थान 3 पासून सुरू होते आणि पुढील 4 वर्ण कॉपी करते, एकामागून एक, बफर उजवीकडे विस्तारित करते. पहिले 3 वर्ण जुन्या बफर सामग्रीमधून कॉपी केले आहेत आणि चौथे या नवीन तीनपैकी पहिल्याची प्रत आहे. खालील उदाहरण आणखी पटण्यासारखे आहे (जरी ते थोडेसे काल्पनिक आहे):

alf_eastman_asily_yells_A

एन्कोडर लूकहेड बफरमधील “A” वर्णाच्या पहिल्या नऊ प्रतींशी जुळण्यासाठी एक लेबल (1,9,“A”) तयार करतो, ज्यामध्ये दहाव्या वर्ण A चा समावेश होतो. म्हणूनच जुळणीची लांबी, तत्वतः, समान असू शकते. लुकहेड बफर वजा 1 च्या आकारापर्यंत.

LZ77 पद्धतीचा डीकोडर एन्कोडरपेक्षा खूपच सोपा आहे (म्हणजे, LZ77 पद्धत एक असममित कॉम्प्रेशन पद्धत आहे). त्याने एन्कोडर सारखाच शोध बफर तयार केला पाहिजे. डीकोडर लेबलमध्ये प्रवेश करतो, त्याच्या बफरमध्ये एक जुळणी शोधतो, जुळणारे वर्ण आणि तृतीय फील्डमधील वर्ण बफरमध्ये लिहितो. जर फाइल एकदा (किंवा अनेक वेळा) संकुचित केली असेल परंतु वारंवार डीकंप्रेस केली असेल तर ही पद्धत किंवा त्यातील बदल चांगले कार्य करते. जुन्या संकुचित फायलींचे वारंवार वापरलेले संग्रहण हे अल्गोरिदम वापरण्याचे एक चांगले उदाहरण आहे.

पहिल्या दृष्टीक्षेपात, वर्णन केलेली कॉम्प्रेशन पद्धत इनपुट डेटाबद्दल कोणतीही गृहीत धरत नाही. विशेषतः, वैयक्तिक वर्णांच्या वारंवारतेकडे लक्ष दिले जात नाही. तथापि, थोडासा विचार केल्यास असे दिसून येते की स्लाइडिंग विंडोच्या स्वरूपामुळे, LZ77 पद्धत नेहमी शोध बफरच्या अलीकडील सामग्रीशी लुकहेड बफरची तुलना करते, परंतु बर्याच काळापूर्वी आलेल्या डेटाशी नाही (आणि जी आधीच निघून गेली आहे. शोध बफर). म्हणून, इनपुट फाईलचे समान क्षेत्र एकमेकांच्या जवळ पुनरावृत्ती होते असे अस्पष्टपणे गृहीत धरले जाते. या मालमत्तेचे समाधान करणारा डेटा चांगला संकुचित केला जाईल.

मूलभूत LZ77 पद्धत 1980 आणि 1990 च्या दशकात संशोधक आणि प्रोग्रामरद्वारे अनेक प्रकारे सुधारली गेली. लेबलमधील ऑफसेट आणि लांबी फील्ड एन्कोड करताना व्हेरिएबल लांबी कोड वापरणे हा एक संभाव्य मार्ग आहे. दुसरा मार्ग म्हणजे दोन्ही बफरचा आकार वाढवणे. शोध बफर वाढवल्याने तुम्हाला अधिक जुळण्या शोधण्याची परवानगी मिळते, परंतु शोध वेळ वाढविण्याच्या खर्चावर. अर्थात, मोठ्या शोध बफरला शोध वेगवान करण्यासाठी अधिक अत्याधुनिक डेटा संरचना आवश्यक असेल (§ 2.4.2 पहा). तिसरी सुधारणा स्लाइडिंग विंडोशी संबंधित आहे. प्रत्येक सामन्यानंतर सर्व मजकूर डावीकडे हलवणे हा सर्वात सोपा मार्ग आहे. एक वेगवान तंत्र म्हणजे रेखीय विंडोला चक्रीय रांगेने पुनर्स्थित करणे, ज्यामध्ये दोन पॉइंटर्स रीसेट करून विंडो सरकवते (§ 2.1.1 पहा). आणखी एक सुधारणा म्हणजे प्रत्येक लेबलमध्ये एक बिट (ध्वज) जोडणे, जे तिसरे फील्ड काढून टाकते (§2.2 पहा).

ज्या प्रकरणांमध्ये इतर विश्वासार्हता पद्धती अयशस्वी होतात आणि पॅकेट गमावले जातात, पॅकेट रीट्रांसमिशन पद्धती वापरल्या जातात. या पद्धतींसाठी कनेक्शन-देणारं प्रोटोकॉल वापरणे आवश्यक आहे.

डेटा रिट्रांसमिशन आवश्यक आहे याची खात्री करण्यासाठी, प्रेषक पाठवल्या जाणाऱ्या फ्रेम्सची संख्या देतो आणि प्रत्येक फ्रेमसाठी प्राप्तकर्त्याकडून तथाकथित सकारात्मक पावती (ACK) अपेक्षित असते - मूळ फ्रेम प्राप्त झाली आहे हे सूचित करणारी सेवा फ्रेम आणि त्यातील डेटा बरोबर आहे. अशी क्रमांकन व्यवस्थापित करण्यासाठी, तार्किक कनेक्शन प्रक्रिया आवश्यक आहे - ती एक प्रारंभिक बिंदू प्रदान करते ज्यापासून क्रमांकन सुरू होते. पावतीची प्रतीक्षा वेळ मर्यादित आहे - प्रत्येक फ्रेम पाठवताना, ट्रान्समीटर टाइमर सुरू करतो आणि निर्दिष्ट वेळेनंतर सकारात्मक पावती न मिळाल्यास, फ्रेम हरवलेली मानली जाते. प्राप्तकर्त्याला दूषित डेटासह फ्रेम प्राप्त झाल्यास, तो नकारात्मक पावती (NACK) पाठवू शकतो - हे स्पष्ट संकेत आहे की फ्रेम पुन्हा प्रसारित करणे आवश्यक आहे.

पावती विनिमय प्रक्रिया आयोजित करण्यासाठी दोन पद्धती आहेत: निष्क्रिय स्त्रोत पद्धत आणि स्लाइडिंग विंडो पद्धत.

स्रोत निष्क्रिय पद्धतीसाठी आवश्यक आहे की ज्या स्त्रोताने फ्रेम पाठवली आहे त्याने पुढील फ्रेम पाठवण्यापूर्वी (किंवा दूषित झालेली पुनरावृत्ती) प्राप्तकर्त्याकडून पावती (सकारात्मक किंवा नकारात्मक) ची प्रतीक्षा करावी. जर पावती कालबाह्यतेच्या आत आली नाही, तर फ्रेम (किंवा पावती) हरवलेली मानली जाते आणि तिचे प्रसारण पुनरावृत्ती होते. अंजीर मध्ये. 6.6, परंतु हे स्पष्ट आहे की या प्रकरणात डेटा एक्सचेंजची कार्यक्षमता संभाव्यतेपेक्षा कमी आहे, जरी ट्रान्समीटर मागील एक पाठवल्यानंतर लगेच पुढील फ्रेम पाठवू शकतो.

प्रथम, त्याने सकारात्मक पावती येण्याची प्रतीक्षा केली पाहिजे. (यापुढे, जेथे हे विचाराधीन मुद्द्याचे सार विकृत करत नाही, सकारात्मक पावत्या संक्षिप्ततेसाठी फक्त "पावत्या" म्हणतील.)


या सुधारणेच्या पद्धतीचे तोटे विशेषतः कमी-स्पीड संप्रेषण चॅनेलवर, म्हणजे प्रादेशिक नेटवर्कमध्ये लक्षणीय आहेत.

दुसऱ्या पद्धतीला स्लाइडिंग विंडो पद्धत म्हणतात. या पद्धतीमध्ये, डेटा ट्रान्सफर रेट वाढवण्यासाठी, स्त्रोताला या पॅकेट्सच्या पावत्या न घेता, स्त्रोतासाठी जास्तीत जास्त संभाव्य दराने सतत मोडमध्ये फ्रेम्सची विशिष्ट संख्या प्रसारित करण्याची परवानगी दिली जाते. अशा प्रकारे प्रसारित करण्याची परवानगी असलेल्या पॅकेट्सच्या संख्येला विंडो आकार म्हणतात. आकृती 6.6b आकाराच्या W पॅकेट्ससाठी या पद्धतीचा वापर स्पष्ट करते.

सुरुवातीच्या क्षणी, जेव्हा अद्याप कोणतेही पॅकेट पाठवले गेले नाहीत, तेव्हा विंडो 1 ते W पर्यंतच्या संख्येसह पॅकेटची श्रेणी निर्धारित करते. स्त्रोत पॅकेट्स प्रसारित करण्यास सुरवात करतो आणि प्रतिसादात पावत्या प्राप्त करतो. साधेपणासाठी, असे गृहीत धरू की पावत्या त्या ज्या पॅकेटवर पाठवल्या जातात त्याच क्रमाने येतात.

पत्रव्यवहार प्रथम पावती Kj मिळाल्यावर t t वेळी, विंडो एका स्थानाद्वारे हलविली जाते, 2 ते (W + 1) पर्यंत नवीन श्रेणी परिभाषित करते.

पॅकेजेस पाठवणे आणि पावत्या प्राप्त करणे या प्रक्रिया एकमेकांपासून पूर्णपणे स्वतंत्र आहेत. जेव्हा स्त्रोताला n क्रमांकासह पॅकेटची पावती मिळते तेव्हा आपण एका अनियंत्रित क्षणाचा विचार करू या विंडो उजवीकडे सरकते आणि (n + 1) पासून (W + n) पर्यंत प्रसारित करण्यासाठी परवानगी असलेल्या पॅकेटची श्रेणी निर्धारित करते. स्त्रोत सोडून पॅकेट्सचा संपूर्ण संच खाली सूचीबद्ध केलेल्या गटांमध्ये विभागला जाऊ शकतो (चित्र 6.6, ब पहा).

1 ते η पर्यंत संख्या असलेली पॅकेट आधीच पाठवली गेली आहेत आणि त्यांच्यासाठी पावत्या मिळाल्या आहेत, म्हणजेच ते डावीकडील खिडकीच्या बाहेर आहेत.

संख्या (η + 1) ने सुरू होणारी आणि संख्या (W + n) ने समाप्त होणारी पॅकेट विंडोमध्ये आहेत आणि म्हणून कोणत्याही पावतीच्या आगमनाची प्रतीक्षा न करता पाठविली जाऊ शकतात. ही श्रेणी आणखी दोन उपश्रेणींमध्ये विभागली जाऊ शकते:

(η + 1) पासून m पर्यंत संख्या असलेली O पॅकेट्स आधीच पाठविली गेली आहेत, परंतु त्यांच्यासाठी पावत्या अद्याप प्राप्त झालेल्या नाहीत;

m पासून (W + n) पर्यंत संख्या असलेली O पॅकेट्स अद्याप पाठविली गेली नाहीत, जरी यावर कोणतीही मनाई नाही.

(W + η + 1) पेक्षा जास्त किंवा समान संख्या असलेली सर्व पॅकेट उजवीकडील विंडोच्या बाहेर आहेत आणि म्हणून ती अद्याप पाठविली जाऊ शकत नाहीत.

पॅकेट क्रमांकांच्या क्रमाने विंडो हलवणे अंजीर मध्ये स्पष्ट केले आहे. ६.६, इ.स. येथे t〇 हा प्रारंभिक क्षण आहे, tļ आणि t n हे अनुक्रमे पहिल्या आणि η-व्या पॅकेटसाठी पावत्या येण्याचे क्षण आहेत. प्रत्येक वेळी पावती आल्यावर, खिडकी डावीकडे सरकते, पण तिचा आकार बदलत नाही आणि डब्ल्यू सारखाच राहतो.

जेव्हा पॅकेट पाठवले जाते, तेव्हा स्त्रोतावर कालबाह्य सेट केले जाते. या काळात पाठवलेल्या पॅकेजची पावती न आल्यास, पॅकेज (किंवा त्याची पावती) हरवल्याचे मानले जाते आणि पॅकेज पुन्हा पाठवले जाते.

जर पावत्यांचा प्रवाह नियमितपणे W पॅकेट्सच्या सहनशीलतेमध्ये येत असेल, तर विनिमय दर दिलेल्या चॅनेलसाठी आणि स्वीकारलेल्या प्रोटोकॉलसाठी जास्तीत जास्त संभाव्य मूल्यापर्यंत पोहोचतो.

काही स्लाइडिंग विंडो अंमलबजावणीसाठी प्राप्तकर्त्याला प्राप्त झालेल्या प्रत्येक वैध पॅकेटसाठी पावती पाठवण्याची आवश्यकता नसते. प्राप्त झालेल्या पॅकेटमध्ये कोणतेही अंतर नसल्यास, प्राप्तकर्त्याला फक्त शेवटच्या प्राप्त झालेल्या पॅकेटची पावती पाठवणे आवश्यक आहे आणि ही पावती प्रेषकाला सूचित करेल की मागील सर्व पॅकेट देखील सुरक्षितपणे आले आहेत.

इतर पद्धती नकारात्मक पावत्या वापरतात. नकारात्मक पावत्या दोन प्रकारच्या आहेत - गट आणि निवडक. गट पावतीमध्ये पॅकेट क्रमांक असतो, ज्यापासून नेटवर्कवर ट्रान्समीटरने पाठवलेल्या सर्व पॅकेटचे प्रसारण पुन्हा करणे आवश्यक आहे. निवडक नकारात्मक पावतीसाठी फक्त एक पॅकेट पुन्हा प्रसारित करणे आवश्यक आहे.

स्लाइडिंग विंडो पद्धतीमध्ये दोन पॅरामीटर्स आहेत जे ट्रान्समीटर आणि रिसीव्हर दरम्यान डेटा ट्रान्सफरच्या कार्यक्षमतेवर लक्षणीय परिणाम करू शकतात - विंडोचा आकार आणि पावतीचे कालबाह्य मूल्य. कालबाह्यतेची निवड नेटवर्कच्या विश्वासार्हतेवर अवलंबून नसते, परंतु नेटवर्कद्वारे पॅकेट प्रसारित करण्यात विलंब होतो.

विश्वासार्ह नेटवर्क्समध्ये, ज्यामध्ये पॅकेट क्वचितच विकृत आणि गमावले जातात, डेटा एक्सचेंज रेट वाढवण्यासाठी, विंडोचा आकार वाढवणे आवश्यक आहे, कारण या प्रकरणात ट्रान्समीटर कमी विरामांसह पॅकेट पाठवेल. अविश्वसनीय नेटवर्क्समध्ये, विंडोचा आकार कमी केला पाहिजे, कारण पॅकेटचे वारंवार नुकसान आणि विकृतीमुळे, नेटवर्कद्वारे पुन्हा प्रसारित केलेल्या पॅकेट्सचे प्रमाण झपाट्याने वाढते, याचा अर्थ नेटवर्क बँडविड्थ मोठ्या प्रमाणात वाया जाते आणि उपयुक्त नेटवर्क बँडविड्थ कमी होते.

विंडोचा आकार स्लाइडिंग विंडो अल्गोरिदमचा स्थिर पॅरामीटर असू शकतो. या प्रकरणात, जेव्हा कनेक्शन स्थापित केले जाते तेव्हा ते निवडले जाते आणि सत्रादरम्यान बदलत नाही. अल्गोरिदमच्या अनुकूली आवृत्त्या देखील आहेत, जेथे नेटवर्कच्या वर्तमान स्थितीनुसार आणि गंतव्य नोडच्या अनुषंगाने सत्रादरम्यान विंडोचा आकार बदलतो.

अशा अल्गोरिदममधील नेटवर्कची विश्वासार्हता पॉझिटिव्ह पावतीची कालबाह्यता किंवा विशिष्ट पॅकेटसाठी डुप्लिकेट पावती येण्यासारख्या पॅकेट गमावण्याच्या चिन्हे द्वारे निर्धारित केली जाते. डुप्लिकेट सूचित करते की गंतव्य नोडची पुढील पॅकेटची प्रतीक्षा करण्याची वेळ संपली आहे आणि नोड हे पॅकेट दुसऱ्यांदा पाठवण्याची विनंती करत आहे. जेव्हा अशा घटना घडतात, तेव्हा पाठवणारा नोड विंडोचा आकार कमी करतो, इष्टतम डेटा ट्रान्समिशन मोड शोधण्याचा प्रयत्न करतो.

विंडोचा आकार गंतव्य नोडद्वारे देखील बदलला जाऊ शकतो. विंडोचा आकार कमी करण्याचे कारण गंतव्य नोडचे ओव्हरलोड आहे, ज्यामध्ये येणार्या पॅकेटवर प्रक्रिया करण्यासाठी वेळ नाही. आम्ही या समस्येकडे नंतर परत येऊ, धडा 7 च्या अभिप्राय विभागात, जेव्हा आम्ही गर्दीचा सामना करण्यासाठी तंत्रांचा शोध घेऊ.

स्लाइडिंग विंडो पद्धतीची अंमलबजावणी देखील आहेत जी विंडोच्या आकारानुसार पॅकेटच्या संख्येऐवजी बाइट्सची संख्या वापरतात. या दृष्टिकोनाचे सर्वात प्रसिद्ध उदाहरण म्हणजे TCP प्रोटोकॉल.

सर्वसाधारणपणे, निष्क्रिय स्त्रोत पद्धतीपेक्षा स्लाइडिंग विंडो पद्धत अंमलात आणण्यासाठी अधिक क्लिष्ट आहे, कारण ट्रान्समीटरने बफरमध्ये सर्व पॅकेट संग्रहित केले पाहिजेत ज्यासाठी सकारात्मक पावती अद्याप प्राप्त झाली नाहीत. याव्यतिरिक्त, ही पद्धत वापरताना, अल्गोरिदमच्या अनेक पॅरामीटर्सचे निरीक्षण करणे आवश्यक आहे: विंडोचा आकार W, ज्या पॅकेटसाठी पावती प्राप्त झाली त्या पॅकेटची संख्या, नवीन पावती प्राप्त करण्यापूर्वी अद्याप प्रसारित केल्या जाऊ शकणाऱ्या पॅकेटची संख्या. .

रीट्रांसमिशन आणि स्लाइडिंग विंडो या विषयावर अधिक:

  1. § 29 दायित्वांच्या अंतर्गत अधिकारांचे हस्तांतरण आणि हस्तांतरण. - हस्तांतरणाच्या अधिकाराचे रोमन बांधकाम. - नवीनतम कायद्याद्वारे हस्तांतरणाची सुविधा. - शिलालेख हस्तांतरित करा. - प्रसारण निर्बंध. - हस्तांतरण क्रिया. - हस्तांतरणकर्त्याची जबाबदारी आणि अधिग्रहणकर्त्याचे अधिकार. - कर्जदाराच्या अधिकारात किंवा सब्रोगेशनमध्ये प्रवेश. - रशियन ट्रान्समिशन कायदा. - कर्जाच्या पत्रांचे हस्तांतरण. - लेनदारांना दाव्यांचे हस्तांतरण.

हा अल्गोरिदम (अल्गोरिदम LZ77 4 अब्राहम लेम्पेल आणि जेकब झिव्ह या लेखकांच्या नावावर. 1977 मध्ये प्रकाशित.) शब्दकोष वापरणारे पहिले होते. अनुक्रमातील शेवटचे N आधीच एन्कोड केलेले घटक शब्दकोश म्हणून वापरले जातात. कॉम्प्रेशन प्रक्रियेदरम्यान, त्यानंतरचा शब्दकोष इनपुट क्रमासह (“स्लाइड”) हलतो. आउटपुटवरील घटकांची साखळी खालीलप्रमाणे एन्कोड केलेली आहे: शब्दकोशातील घटकांच्या प्रक्रिया केलेल्या साखळीच्या जुळणाऱ्या भागाची स्थिती - ऑफसेट (वर्तमान स्थितीशी संबंधित), लांबी, साखळीच्या जुळलेल्या भागानंतर पहिला घटक. जुळणाऱ्या साखळीची लांबी n या संख्येने वर मर्यादित आहे. त्यानुसार, प्रक्रिया केल्या जात असलेल्या क्रमाशी जुळणारी शब्दकोशातील सर्वात मोठी साखळी शोधणे हे कार्य आहे. जर कोणतेही जुळले नाहीत, तर शून्य ऑफसेट, एकक लांबी आणि अनकोड केलेल्या अनुक्रमाचा फक्त पहिला घटक रेकॉर्ड केला जातो - (0, 1, e) .

वर वर्णन केलेली कोडींग योजना संकल्पनेकडे नेणारी आहे स्लाइडिंग विंडो(इंग्रजी स्लाइडिंग विंडो), ज्यामध्ये दोन भाग आहेत:

  1. N - डिक्शनरी - लांबीच्या आधीच एन्कोड केलेल्या घटकांचा अनुवर्ती शोध बफर(इंग्रजी शोध बफर);
  2. घटकांच्या साखळीतून लांबी n चा एक अनुक्रम ज्यासाठी जुळणी शोधण्याचा प्रयत्न केला जाईल - पूर्वावलोकन बफर(इंग्रजी लुक-हेड बफर).

दृष्टीने स्लाइडिंग विंडोकॉम्प्रेशन अल्गोरिदम खालीलप्रमाणे वर्णन केले आहे: जर e 1, . . . , e i आधीपासून एन्कोड केलेला अनुक्रम आहे, नंतर e i-N+1 , . . . , e i एक शब्दकोश किंवा शोध बफर आहे, आणि e i+1 , . . . , e i+n - पूर्वावलोकन बफर. त्याचप्रमाणे, पूर्वावलोकन बफरमधील घटकांची सर्वात मोठी शृंखला शोधणे हे कार्य आहे, e i+1 पासून सुरू होणारी, शोध बफरमधील साखळीशी जुळणारी - ही साखळी कोणत्याही घटकापासून सुरू होऊ शकते आणि कोणत्याही घटकासह समाप्त होऊ शकते, म्हणजे. पूर्वावलोकन बफरवर आक्रमण करून शोध बफरच्या पलीकडे जा. पलीकडे जाणे स्वाभाविक आहे स्लाइडिंग विंडोते निषिद्ध आहे. घटकांची कमाल लांबी जुळणारी साखळी e i-p , , स्लाइडिंग विंडोमध्ये शोधू द्या. . . , e i+q , नंतर ते खालीलप्रमाणे एन्कोड केले जाईल: (p+1, q+p+1, e i+p+q+2 ) - पूर्वावलोकन बफरच्या सुरुवातीच्या सापेक्ष ऑफसेट (e i+1) , जुळलेल्या साखळीची लांबी , प्रिव्ह्यू बफरमधून जुळलेल्या स्ट्रिंगचे अनुसरण करणारा घटक. एकाच लांबीच्या दोन जुळण्यांमध्ये शोध परिणाम झाल्यास, पूर्वावलोकन बफरच्या सुरूवातीस सर्वात जवळचा एक निवडला जातो. यानंतर, स्लाइडिंग विंडो p + q + 2 घटक पुढे सरकवली जाते आणि शोध प्रक्रिया पुन्हा केली जाते.

N आणि n संख्यांची निवड ही एक वेगळी महत्त्वाची समस्या आहे, कारण N आणि n जितके मोठे असतील तितकी ऑफसेट आणि लांबीची मूल्ये संग्रहित करण्यासाठी अधिक जागा आवश्यक आहे. साहजिकच, अल्गोरिदमचा चालू वेळ देखील वाढत्या N आणि n सह वाढतो. लक्षात घ्या की N आणि n सहसा परिमाणाच्या क्रमाने भिन्न असतात.

हा अल्गोरिदम वापरून कॉम्प्रेशनचे उदाहरण देऊ. N = 10 आणि n = 3 पॅरामीटर्ससह "TOBEORNOTTOBE" स्ट्रिंग कॉम्प्रेस करूया:

पाऊल स्लाइडिंग विंडो कमाल जुळलेली साखळी बाहेर पडा
1 ""+"TOB" टी ०,१,टी
2 "T"+"OBE" ०,१,ओ
3 "TO"+"BEO" बी 0.1.B
4 "TOB"+"EOR" ०.१.ई
5 "TOBE"+"ORN" ३,१,आर
6 "TOBEOR"+"नाही" एन 0,1,N
7 "TOBEORN"+"OTT" ३,१,टी
8 "TOBEORNOT"+"TOBE" TOB ९.३.ई

जर आपण ऑफसेट संचयित करण्यासाठी 4 बिट, लांबीसाठी 2 बिट्स आणि घटकांसाठी 8 बिट वाटप केले, तर एन्कोड केलेल्या अनुक्रमाची लांबी (क्रम पदनामाचा शेवट विचारात न घेता) 4 x 8 + 2 x असेल. 8 + 8 x 8 = 112 बिट, आणि मूळ 102 बॅट असेल. या प्रकरणात, आम्ही अनुक्रम संकुचित केला नाही, परंतु, त्याउलट, प्रतिनिधित्वाची अनावश्यकता वाढवली. कारण अशा अल्गोरिदमसाठी अनुक्रमांची लांबी खूपच लहान आहे. परंतु, उदाहरणार्थ, अंजीरमधील हफमन कोड ट्रीचे रेखाचित्र. 13.1, जे डिस्क स्पेस 420 किलोबाइट व्यापते, कॉम्प्रेशन नंतर अंदाजे 310 किलोबाइट आकाराचे असते.

खाली कॉम्प्रेशन अल्गोरिदमसाठी स्यूडो कोड आहे.

// M - निश्चित सीमा // इनपुट प्रवाहातून अनुक्रमे वर्ण वाचा // इन - इनपुट - संकुचित अनुक्रम // n - साखळीची कमाल लांबी // pos - शब्दकोशातील स्थिती, len - साखळीची लांबी // nelem - साखळीमागील घटक, str - साखळी सापडली // in - input, out - output // SlideWindow - शोध बफर असताना(!in.EOF()) // डेटा असताना ( // जास्तीत जास्त जुळणी शोधत आहे आणि त्याचे मापदंड SlideWindow.FindBestMatch(in, n, pos , len, nelem); // लेखन आउटपुट: ऑफसेट, लांबी, घटक आउट. लिहा(लेन) // स्लाइडिंग विंडो हलवा; घटक SlideWindow.Move (in, len + 1); सूची 13.2.

LZ77 कॉम्प्रेशन अल्गोरिदम

संकुचित अनुक्रम डीकोड करणे हे रेकॉर्ड केलेल्या कोडचे थेट डीकोडिंग आहे: प्रत्येक प्रविष्टी शब्दकोशातील साखळी आणि स्पष्टपणे लिहिलेल्या घटकासह जुळली आहे, त्यानंतर शब्दकोश हलविला जातो. स्पष्टपणे, डिकोडिंग अल्गोरिदम चालते म्हणून शब्दकोश पुन्हा तयार केला जातो.

// n - साखळीची कमाल लांबी // pos - शब्दकोशातील स्थिती, len - साखळीची लांबी // nelem - साखळीमागील घटक, str - सापडलेली साखळी // in - input, out - output // Dict - शब्दकोष (!in. EOF()) // डेटा असताना ( in.Read(pos); in.Read(len); in.Read(nelem); if(pos == 0) ( //नवीन वेगळे अक्षर // डिक्शनरीमधून प्रथम एक घटक काढून टाका. डिक्टमध्ये एक घटक जोडा डिक्शनरीमधील संबंधित ओळ str = Dict.Get(pos, len); // डिक्शनरीमधून len + 1 घटक काढून टाका. डिक्शनरीमध्ये एक साखळी जोडा लिहा (str + nelem) ) सूची 13.3.

अल्गोरिदम हा अल्गोरिदम अल्गोरिदमच्या संपूर्ण कुटुंबाचा संस्थापक आहे आणि स्वतः त्याच्या मूळ स्वरूपात व्यावहारिकपणे वापरला जात नाही. त्याच्या फायद्यांमध्ये बऱ्यापैकी मोठ्या सीक्वेन्सवर कम्प्रेशनची सभ्य डिग्री, वेगवान डीकंप्रेशन आणि पेटंट 5 ची अनुपस्थिती समाविष्ट आहे.विशिष्ट काळासाठी (सामान्यतः 15-20 वर्षे) आविष्काराचा गैरफायदा घेण्याचा अनन्य अधिकार प्रदान करणारा दस्तऐवज अल्गोरिदम ला. तोट्यांमध्ये मंद कॉम्प्रेशन गती, तसेच पर्यायी अल्गोरिदमपेक्षा कमी कॉम्प्रेशन रेशो (अल्गोरिदममधील बदल या गैरसोयीचा सामना करतात) यांचा समावेश होतो. हफमन अल्गोरिदम ("लॉसलेस इमेज कॉम्प्रेशन अल्गोरिदम") आणि LZ77 च्या संयोजनाला DEFLATE 6 पद्धत म्हणतातयाला कॉम्प्रेशन म्हणतात, आणि डीकंप्रेशनला INFLATE म्हणतात (इंग्रजी: DEFLATE - to deflate, INFLATE - to inflate).

. DEFLATE पद्धत PNG ग्राफिक्स फॉरमॅटमध्ये तसेच युनिव्हर्सल डेटा कॉम्प्रेशन फॉरमॅट ZIP मध्ये वापरली जाते.

वाहतूक स्तर नेटवर्क स्तराद्वारे प्रदान केलेल्या सेवा वापरते:

इष्टतम मार्ग निवड आणि तार्किक पत्ता सेवा. या लेयर 3 सेवा प्रेषक आणि प्राप्तकर्ता यांच्यात एंड-टू-एंड कनेक्शन प्रदान करतात. हा धडा ट्रान्सपोर्ट लेयर प्रेषकाकडून प्राप्तकर्त्याकडे प्रसारित केलेल्या माहितीच्या प्रवाहाचे नियमन कसे करतो याचे वर्णन करतो. वाहतूक स्तरामध्ये खालील वैशिष्ट्ये आहेत:

ट्रान्सपोर्ट लेयर डेटा स्ट्रीम हे नेटवर्क एंडपॉइंट्समधील तार्किक कनेक्शन आहे;

---------------- स्लाइडिंग विंडो मेकॅनिझम एंड-टू-एंड कंट्रोल आणि कनेक्शनची विश्वासार्हता प्रदान करते, तुम्हाला पॅकेट आणि नोटिफिकेशन नंबरचा क्रम ट्रॅक करण्यास अनुमती देते; चौथ्या लेयर प्रोटोकॉल TCP आणि UDP मध्ये विविध नेटवर्क कनेक्शन व्यवस्थापित करण्यासाठी आणि वरच्या स्तरावर माहिती प्रसारित करण्यासाठी, तथाकथितबंदरे

(बंदर).वाहतूक स्तर स्टॅक

त्याच्या नावाप्रमाणे, TCP/IP प्रोटोकॉल स्टॅकचा ट्रान्सपोर्ट लेयर प्राप्त करणाऱ्या डिव्हाइसवर आणि पाठवणाऱ्या डिव्हाइसवरील ऍप्लिकेशन्स दरम्यान डेटा वाहतूक करण्यासाठी जबाबदार आहे. ट्रान्सपोर्ट लेयर कसे कार्य करते याचे ज्ञान आधुनिक नेटवर्किंग तंत्रज्ञानाच्या सखोल आकलनासाठी महत्त्वाचे आहे. खालील विभागांमध्ये TCP/IP मॉडेलच्या सर्वात महत्त्वाच्या स्तरांपैकी एक - वाहतूक स्तराची कार्ये आणि सेवा तपशीलवार आहेत.

ट्रान्सपोर्ट लेयर स्टॅकचा परिचयवाहतूक स्तर स्टॅक

चौथ्या, वाहतूक, पातळीचे वर्णन करण्यासाठी, अभिव्यक्ती बर्याचदा वापरली जाते सेवेची गुणवत्ता. UDP, ज्याची खाली तपशीलवार चर्चा केली आहे, हा एक ट्रान्सपोर्ट लेयर प्रोटोकॉल आहे जो कनेक्शनरहित वाहतूक सेवा प्रदान करतो. तथापि, या स्तरावर कार्यरत मुख्य प्रोटोकॉल TCP आहे, जो कनेक्शन स्थापना यंत्रणा वापरतो. या प्रोटोकॉलची मुख्य कार्ये म्हणजे प्रेषकाकडून प्राप्तकर्त्यापर्यंत माहितीच्या प्रवाहाचे वाहतूक आणि विश्वसनीय नियंत्रण. ट्रान्सपोर्ट लेयरच्या मुख्य फंक्शन्समध्ये एंड-टू-एंड ट्रान्समिशन कंट्रोल, स्लाइडिंग विंडो मेकॅनिझमद्वारे प्रवाह नियंत्रण आणि अनुक्रम क्रमांकांच्या स्थापनेद्वारे आणि पोचपावतींच्या वापराद्वारे वितरण विश्वासार्हतेची हमी देणे समाविष्ट आहे.

विश्वसनीय डेटा ट्रान्समिशन आणि प्रवाह नियंत्रण का आवश्यक आहे हे समजून घेण्यासाठी, एखाद्या परदेशी व्यक्तीची कल्पना करा जो खूप लवकर बोलतो. त्याच्या श्रोत्याला बहुधा काही वेळा वैयक्तिक शब्द (प्रक्षेपण विश्वासार्हतेच्या अनुरूप) पुनरावृत्ती करण्यास भाग पाडले जाईल आणि त्याला अधिक हळू (प्रवाहाशी समान) बोलण्यास सांगावे लागेल.

ट्रान्सपोर्ट लेयर सेंडिंग नोडमधून रिसीव्हिंग नोडमध्ये डेटा विश्वसनीयरित्या ट्रान्सफर करण्याचे साधन प्रदान करते. हा स्तर नेटवर्क एंडपॉइंट्स दरम्यान तार्किक कनेक्शन तयार करतो; याव्यतिरिक्त, ट्रान्सपोर्ट लेयर टास्कमध्ये विविध द्वारे प्रसारित केलेल्या डेटाचे विभाजन आणि पुनर्संचय समाविष्ट आहे अनुप्रयोगएका ट्रान्सपोर्ट लेयर डेटा स्ट्रीममध्ये वरचे स्तर. हा प्रवाह एंडपॉइंट्स दरम्यान एंड-टू-एंड डेटा ट्रान्सफर प्रदान करतो.

ट्रान्सपोर्ट लेयर डेटा फ्लो हे नेटवर्कवरील एंडपॉइंट्समधील तार्किक कनेक्शन आहे; ट्रान्सपोर्ट लेयर अनुप्रयोगांमध्ये कनेक्शन स्थापित केले जाऊ शकते की नाही हे देखील तपासते. अंजीर मध्ये. आकृती 11.2 ट्रान्सपोर्ट लेयरचे ऑपरेशन स्पष्ट करते.

वाहतूक स्तर खालील कार्ये प्रदान करते:

    उच्च-स्तरीय अनुप्रयोग डेटाचे विभाजन;

    एंड-टू-एंड संवाद व्यवस्थापन;

    एका टोकापासून दुस-या नोडमध्ये विभाग हस्तांतरित करणे;

    विंडोचा आकार बदलून प्रवाह नियंत्रण;

    संख्या नियुक्त करून आणि पुष्टीकरणे वापरून विश्वासार्हता सुनिश्चित करणे.

ट्रान्सपोर्ट लेयरसाठी, बाह्य नेटवर्कला विशिष्ट माध्यम (सामान्यतः क्लाउड म्हणून चित्रित केले जाते) म्हणून प्रस्तुत केले जाऊ शकते ज्याद्वारे डेटा पॅकेट प्रेषकाकडून प्राप्तकर्त्याकडे प्रसारित केले जातात. विशिष्ट प्राप्तकर्त्यासाठी कोणता मार्ग इष्टतम आहे हे निर्धारित करण्यासाठी हे वातावरण जबाबदार आहे. आधीच या टप्प्यावर, आपण नेटवर्कवरील डेटा ट्रान्समिशन प्रक्रियेत राउटरची महत्त्वाची भूमिका समजून घेऊ शकता.

TCP/IP प्रोटोकॉल सूटमध्ये दोन स्वतंत्र प्रोटोकॉल असतात: TCP आणि IP. IP प्रोटोकॉल हा एक कनेक्शनलेस लेयर 3 प्रोटोकॉल आहे जो नेटवर्कवर कार्यक्षम डेटा ट्रान्सफर सक्षम करतो. TCP एक लेयर 4 प्रोटोकॉल आहे आणि एक कनेक्शन-देणारं सेवा आहे जी प्रवाह नियंत्रण आणि म्हणून अत्यंत विश्वासार्ह ट्रांसमिशन प्रदान करते. या दोन प्रोटोकॉलचे संयोजन आपल्याला डेटा हस्तांतरण कार्यांची विस्तृत श्रेणी सोडविण्यास अनुमती देते. अर्थात, TCP/IP प्रोटोकॉल स्टॅकमध्ये इतर अनेक प्रोटोकॉल असतात, परंतु TCP आणि IP हे मुख्य प्रोटोकॉल आहेत. तसे, संपूर्ण इंटरनेट नेटवर्क TCP/IP प्रोटोकॉल स्टॅकवर आधारित आहे.

प्रवाह नियंत्रण

जेव्हा ट्रान्सपोर्ट लेयर TCP डेटा विभाग फॉरवर्ड करते, तेव्हा ते डेटाच्या अखंडतेची हमी देऊ शकते. हे ध्येय साध्य करण्याची एक पद्धत आहे प्रवाह नियंत्रण (प्रवाहनियंत्रण) , जे अशा परिस्थितीशी संबंधित समस्या टाळते जेव्हा कनेक्शनच्या एका टोकाला असलेला नोड दुसऱ्या टोकाला असलेल्या स्टेशनच्या बफरला ओव्हरफ्लो करतो. ओव्हरफ्लोमुळे गंभीर समस्या उद्भवतात कारण यामुळे डेटा गमावू शकतो.

ट्रान्सपोर्ट लेयर सेवा वापरकर्त्यांना नोड्स पाठवणे आणि प्राप्त करणे दरम्यान डेटाचे विश्वसनीय वाहतूक आवश्यक आहे. संप्रेषण भागीदार प्रणाली दरम्यान विश्वसनीय डेटा हस्तांतरण सुनिश्चित करण्यासाठी, एक कनेक्शन-देणारं यंत्रणा वापरली जाते. विश्वसनीय वाहतूक खालील कार्ये प्रदान करते:

    प्रेषकाला प्रत्येक विभागाच्या वितरणाची पुष्टी मिळते याची खात्री करते;

    डिलिव्हरीची पुष्टी प्राप्त न झालेल्या कोणत्याही विभागांचे पुनर्प्रसारण प्रदान करते;

    विभागांना गंतव्यस्थानावर योग्य क्रमाने क्रमवारी लावण्याची अनुमती देते;

    नेटवर्क कंजेशन प्रतिबंधित करते आणि ते उद्भवल्यास गर्दीचे व्यवस्थापन सुनिश्चित करते.

स्थापना, सत्र व्यवस्थापन आणि समाप्ती

OSI संदर्भ मॉडेलमध्ये, एकाधिक अनुप्रयोग एकाच वेळी एक वाहतूक कनेक्शन वापरू शकतात. डेटा ट्रान्स्पोर्टेशन फंक्शन सेगमेंटनुसार सेगमेंट लागू केले जाते. याचा अर्थ विविध ऍप्लिकेशन्स फर्स्ट-इन, फर्स्ट-आउट (FIFO) आधारावर डेटा ट्रान्सफर करू शकतात. विभाग एक किंवा भिन्न प्राप्तकर्त्यांसाठी हेतू असू शकतात. या नियमाला कधीकधी उच्च-स्तरीय अनुप्रयोग संवाद मल्टिप्लेक्सिंग यंत्रणा (आकृती 3) म्हटले जाते.

तांदूळ. 3. OSI मॉडेलच्या सर्वात वरच्या स्तरावरील विविध ऍप्लिकेशन्स ट्रान्सपोर्ट लेयरचा वापर करतात

ट्रान्सपोर्ट लेयरच्या मुख्य कार्यांपैकी एक म्हणजे पीअर-टू-पीअर सिस्टमसह कनेक्शन स्थापित करण्यासाठी संप्रेषण सत्र आयोजित करणे. डेटा हस्तांतरित करणे सुरू करण्यासाठी, प्रेषक आणि प्राप्तकर्ता अनुप्रयोग त्यांच्या ऑपरेटिंग सिस्टमला कनेक्शन सुरू करण्यासाठी सूचित करतात. एक स्टेशन कनेक्शन सुरू करते जे दुसऱ्या स्टेशनने स्वीकारले पाहिजे. प्रोटोकॉलच्या ऑपरेशनसाठी जबाबदार ऑपरेटिंग सिस्टम मॉड्यूल एक विशेष संदेश पाठवून एकमेकांशी संवाद साधतात आणि डेटा ट्रान्सफरची शक्यता आणि शेवटच्या नोड्सची तयारी तपासतात.

सिंक्रोनाइझेशन प्रक्रिया पूर्ण झाल्यानंतर आणि कनेक्शन स्थापित झाल्यानंतर, डेटा हस्तांतरण सुरू होते. हस्तांतरण प्रक्रियेदरम्यान, प्राप्त केलेला डेटा योग्य असल्याची खात्री करण्यासाठी दोन्ही स्थानके सतत संदेशांची देवाणघेवाण करतात. अंजीर मध्ये. आकृती 4 प्रेषक आणि प्राप्तकर्ता यांच्यातील विशिष्ट कनेक्शनचे वर्णन करते. शेवटचे नोड्स सिंक्रोनाइझ करण्यासाठी प्रथम विनंती संदेश आवश्यक आहे. प्रारंभिक सिंक्रोनाइझेशन विनंतीची पुष्टी करण्यासाठी दुसरा आणि तिसरा आवश्यक आहे; ते उलट दिशेने कनेक्शन पॅरामीटर्स देखील समक्रमित करतात. शेवटचा संदेश आहे पुष्टीकरण(पोचती), ज्याचा उपयोग प्राप्तकर्त्याला कळवण्यासाठी केला जातो की दोन्ही पक्ष कनेक्शन स्थापित करण्यास तयार आहेत. कनेक्शन स्थापित झाल्यानंतर, डेटा हस्तांतरण सुरू होते.

तांदूळ. 4. पीअर-टू-पीअर सिस्टमसह कनेक्शन स्थापित करण्याची प्रक्रिया

डेटा ट्रान्सफर दरम्यान, दोन कारणांमुळे गर्दी होऊ शकते. पहिले म्हणजे एक वेगवान संगणक नेटवर्कद्वारे प्रसारित करू शकत असलेल्या डेटापेक्षा अधिक वेगाने डेटाचा प्रवाह निर्माण करू शकतो. दुसरा अशा परिस्थितीत होतो जेव्हा अनेक संगणकांना एकाच वेळी एका प्राप्तकर्त्याला डेटा पाठवणे आवश्यक असते. या प्रकरणात, प्राप्तकर्त्याला ओव्हरलोडचा अनुभव येऊ शकतो, जरी प्रत्येक प्रेषक वैयक्तिकरित्या समस्या निर्माण करत नाही.

अंत नोड किंवा गेटवेवर प्रक्रिया करण्यासाठी डेटाग्राम खूप लवकर येतात अशा प्रकरणांमध्ये, ते तात्पुरते मेमरीमध्ये साठवले जातात. जर डेटा फ्लो कमी होत नसेल, तर एंड नोड किंवा गेटवे, त्याची मेमरी रिसोर्सेस संपवून, त्यानंतरचे सर्व डेटाग्राम टाकून देण्यास भाग पाडले जाईल.

डेटा गमावण्यापासून रोखण्यासाठी, ट्रान्सपोर्ट फंक्शन प्रेषकाला माहिती संदेश पाठवू शकते: "डिव्हाइस प्राप्त करण्यास तयार नाही." लाल ट्रॅफिक लाइटप्रमाणे काम करत, हा सूचक संदेश पाठवणाऱ्याला डेटा पाठवणे थांबवण्याचा संकेत देतो. प्राप्तकर्ता पुन्हा अतिरिक्त डेटावर प्रक्रिया करण्यास सक्षम झाल्यानंतर, तो "डेटा प्राप्त करण्यासाठी डिव्हाइस तयार" असा वाहतूक सूचक संदेश पाठवतो, जो हिरव्या ट्रॅफिक लाइटसारखा असतो. असा सूचक मिळाल्यावर, प्रेषक विभागांचे प्रसारण पुन्हा सुरू करू शकतो.

डेटा हस्तांतरणाच्या समाप्तीनंतर, प्रेषक प्राप्तकर्त्यास एक सिग्नल पाठवतो, जो हस्तांतरण पूर्ण झाल्याचे सूचित करतो. प्राप्तकर्ता कनेक्शन तुटल्याची पुष्टी करतो, त्यानंतर मशीनमधील कनेक्शन पूर्ण होते.

तीन-चरण हँडशेक

TCP प्रोटोकॉल कनेक्शन-ओरिएंटेड अल्गोरिदम वापरते, त्यामुळे डेटा हस्तांतरित करण्यापूर्वी तार्किक कनेक्शन स्थापित करणे आवश्यक आहे. दोन वर्कस्टेशन्स दरम्यान नेटवर्क कनेक्शन स्थापित करण्यासाठी, त्यांचे प्रारंभिक अनुक्रम क्रमांक (ISN - प्रारंभिक अनुक्रम क्रमांक) समक्रमित करणे आवश्यक आहे. SYN असलेल्या विशेष विभागांच्या देवाणघेवाणीद्वारे सिंक्रोनाइझेशन साध्य केले जाते sसिंक्रोनाइझेशन) आणि ISN क्रमांक. SYN बिट वाहून नेणारे मॉड्यूल काहीवेळा SYN संदेश देखील म्हणतात. स्थापनेच्या समस्येचे निराकरण करण्यासाठी, तुम्हाला ISN क्रमांकांची देवाणघेवाण करण्यासाठी प्रारंभिक कनेक्शन स्थापित करून ISN क्रमांक निवडण्यासाठी योग्य यंत्रणा निवडणे आवश्यक आहे.

सिंक्रोनाइझेशनसाठी प्रत्येक बाजूने त्याचा प्रारंभिक ISN पाठवणे आणि ACK च्या स्वरूपात पुष्टीकरण प्राप्त करणे आवश्यक आहे (यासाठी लहान पोचपावती) दुसऱ्या पक्षाकडून कनेक्शनसाठी. याव्यतिरिक्त, प्रत्येक पक्षाने संप्रेषण भागीदाराचा ISN क्रमांक प्राप्त करणे आवश्यक आहे आणि त्याबद्दल ACK सूचना पाठवणे आवश्यक आहे. A आणि B या दोन नेटवर्क नोड्समधील संदेश विनिमयाचा क्रम खाली वर्णन केला आहे.

या संदेशाला म्हणतात तीन-चरण पावती (तीन- मार्ग हस्तांदोलन) (चित्र 5).

तांदूळ. 5. तीन-चरण हँडशेक

1.एबी SYN.माझा प्रारंभिक ISN अनुक्रम क्रमांक X, ACK क्रमांक = 0, SYN बिट सेट आहे, तथापि ACK बिट सेट केलेला नाही.

2. बीACK.तुमचा क्रम क्रमांक X+1 आहे, माझा ISN क्रमांक Y आहे, SYN आणि ACK बिट सेट केले आहेत.

3.एमागे.तुमचा क्रम क्रमांक Y+1 आहे, माझा क्रम क्रमांक X+1 आहे, ACK बिट सेट आहे आणि SYN बिट सेट केलेला नाही.

थ्री-वे हँडशेकिंग ही एक असिंक्रोनस कनेक्शन यंत्रणा आहे जी क्रम संख्या सिंक्रोनाइझ करण्यासाठी आवश्यक आहे, कारण अशा संख्या नेटवर्कवरील काही व्हर्च्युअल ग्लोबल काउंटरवर अवलंबून नसतात. म्हणून, TCP प्रोटोकॉल चालवणाऱ्या नेटवर्कमध्ये, ISN क्रमांक नियुक्त करण्यासाठी विविध यंत्रणा वापरल्या जातात. त्यापैकी एक तीन-चरण हँडशेक आहे. तथापि, ही यंत्रणा केवळ ISN क्रमांक प्राप्त करण्याच्या उद्देशाने नाही. त्याचा वापर करून, अंतिम उपकरणे डेटा ट्रान्समिशन विंडोचा आकार, MTU पॅरामीटर आणि नेटवर्कवरील डेटा ट्रान्समिशनच्या विलंबाविषयी माहितीची देवाणघेवाण करतात. प्रथम SYN च्या प्राप्तकर्त्याकडे पुढील संदेश प्राप्त होईपर्यंत प्राप्त झालेला विभाग पुढे ढकललेला जुना संदेश होता की नवीन संदेश होता हे निर्धारित करण्याचे कोणतेही साधन नाही; फक्त अपवाद म्हणजे जर प्राप्तकर्ता कनेक्शनवर वापरलेला शेवटचा क्रम क्रमांक संग्रहित करतो (जे नेहमी शक्य नसते). म्हणून, प्राप्तकर्त्याने प्रेषकाला अशा SYN संदेशाची पडताळणी करण्याची विनंती केली पाहिजे.

स्लाइडिंग विंडो यंत्रणा

विश्वसनीय कनेक्शन-ओरिएंटेड डेटा फॉरवर्डिंगच्या सर्वात सामान्य स्वरूपामध्ये, डेटा पॅकेट्स ज्या क्रमाने प्रसारित केल्या गेल्या त्याच क्रमाने प्राप्तकर्त्याच्या टोकाला वितरित करणे आवश्यक आहे. कोणताही डेटा पॅकेट हरवल्यास, दूषित, डुप्लिकेट किंवा ऑर्डरबाह्य प्राप्त झाल्यास प्रोटोकॉल अयशस्वी होण्याचे संकेत देते. या समस्येचा सर्वात सोपा उपाय म्हणजे प्रत्येक डेटा विभागाच्या प्राप्तकर्त्याची पुष्टीकरणे वापरणे.

तथापि, जर प्रेषकाला प्रत्येक सेगमेंट पाठवल्यानंतर पोचपावती वाट पाहण्यास भाग पाडले असेल तर, अंजीर मध्ये दर्शविल्याप्रमाणे. 6, नंतर या पद्धतीसह प्रेषण गती लक्षणीयरीत्या कमी होते. प्रेषकाने डेटा पॅकेट पाठवण्याचे पूर्ण केल्यापासून कोणत्याही प्राप्त पावतीची प्रक्रिया पूर्ण होईपर्यंत ठराविक कालावधीचा कालावधी निघून जात असल्याने, डेटाचा अतिरिक्त तुकडा प्रसारित करण्यासाठी त्याचा वापर केला जाऊ शकतो. प्रेषकाला पोचपावती न घेता पाठवण्याची परवानगी असलेल्या डेटा पॅकेट्सची संख्या म्हणतात. खिडकी(खिडकी).

TCP ज्याला प्रलंबित पावती म्हणतात ते वापरते; त्यामध्ये पुढील अपेक्षित ऑक्टेटशी संबंधित संख्या आहे. स्लाइडिंग विंडो मेकॅनिझम म्हणजे खिडकीच्या आकारांची संपूर्ण TCP सत्रात डायनॅमिकली वाटाघाटी केली जाते. स्लाइडिंग विंडो यंत्रणाही एक प्रवाह नियंत्रण यंत्रणा आहे ज्यासाठी प्राप्तकर्त्याने काही प्रमाणात डेटा प्रसारित केल्यानंतर प्रेषकाकडून पावती स्वीकारणे आवश्यक आहे.

तांदूळ. 6. खिडकीचा आकार एक आहे

दोन उपकरणांमधील डेटाचा प्रवाह नियंत्रित करण्यासाठी, TCP वापरते प्रवाह नियंत्रण यंत्रणा(प्रवाह-नियंत्रण यंत्रणा). प्राप्तकर्ता प्रेषकाला अहवाल देतो की डेटा प्राप्त झाला आहे; अशी सूचना प्राप्त केल्याने आपल्याला विंडो आकार सेट करण्याची परवानगी मिळते. विंडो वर्तमान पावती क्रमांकावर आधारित ऑक्टेटची संख्या निर्दिष्ट करते, जी TCP डिव्हाइस दिलेल्या वेळी प्राप्त करण्यास सक्षम आहे.

उदाहरणार्थ, 3 च्या विंडो आकारासह, प्रेषक प्राप्तकर्त्यास तीन ऑक्टेट पाठवू शकतो. यानंतर, त्याने प्राप्तकर्त्याकडून पुष्टीकरणाची प्रतीक्षा केली पाहिजे. जर प्राप्तकर्त्याला तीन ऑक्टेट मिळाले असतील, तर त्याने ऑक्टेट पाठवणाऱ्याला याची पोचपावती पाठवली पाहिजे. पाठवणारा पुढील तीन ऑक्टेट पाठवू शकतो. जर प्राप्तकर्त्याला तीन ऑक्टेट मिळाले नाहीत, उदाहरणार्थ बफर ओव्हरफ्लोमुळे, तर तो पोचपावती पाठवणार नाही. प्रेषकाला पोचपावती न मिळाल्यास, याचा अर्थ असा होतो की शेवटचे ऑक्टेट्स पुन्हा प्रसारित केले जाणे आवश्यक आहे आणि त्याच वेळी प्रसारण दर कमी करणे आवश्यक आहे.

दोन नेटवर्क उपकरणांमध्ये डेटा प्रवाहित होताना TCP विंडोचा आकार बदलू शकतो. प्राप्तकर्त्याकडून पाठवलेल्या प्रत्येक पोचपावतीमध्ये प्राप्तकर्ता प्राप्त करण्यास सक्षम असलेल्या बाइट्सच्या संख्येबद्दल माहिती असते. TCP कंजेशन कंट्रोल विंडो म्हणून ओळखल्या जाणाऱ्या विंडोचा वापर करते, ज्याचा आकार सामान्यतः प्राप्त करणाऱ्या उपकरणाच्या विंडोसारखाच असतो, परंतु डेटाचा एक भाग गमावल्यास (उदाहरणार्थ, नेटवर्क कंजेशनमुळे) आकार अर्धा केला जातो. ही यंत्रणा डिव्हाइस बफर व्यवस्थापित करताना आणि डेटा प्रवाहावर प्रक्रिया करताना आवश्यकतेनुसार विंडो आकार कमी किंवा वाढवण्याची परवानगी देते. खिडकीचा मोठा आकार एकाच वेळी अधिक ऑक्टेट प्रसारित करण्यास अनुमती देतो.

जेव्हा प्रेषक तीन ऑक्टेट प्रसारित करतो, तेव्हा ते चार ऑक्टेटसाठी ACK सिग्नलची प्रतीक्षा करण्यासाठी स्विच करते. प्राप्तकर्ता दोन-ऑक्टेट डेटा ब्लॉकवर प्रक्रिया करण्यास सक्षम असल्यास, तो तिसरा ऑक्टेट टाकून देतो आणि त्याला पुढील अपेक्षित डेटा ब्लॉक म्हणून नियुक्त करतो. हे नवीन विंडो आकार निर्दिष्ट करते, जे दोन समान आहे. प्रेषक पुढील दोन ऑक्टेट प्रसारित करतो, परंतु विंडोचा आकार अद्याप तीन आहे (उपकरण अद्याप तीन ऑक्टेट एकाच वेळी हाताळू शकते असे गृहीत धरून). प्राप्तकर्ता ऑक्टेट क्रमांक 5 ची विनंती करतो आणि नवीन विंडोचा आकार दोन वर सेट करतो.

पुष्टी

एक विश्वासार्ह वितरण यंत्रणा हे सुनिश्चित करते की एका स्टेशनद्वारे पाठवलेला डेटा प्रवाह दुस-याच्या डेटा लिंकवर डुप्लिकेशन किंवा डेटा गमावल्याशिवाय वितरित केला जाईल. रीट्रांसमिशनसह सकारात्मक पावती ही एक तंत्र आहे जी डेटा प्रवाहांच्या विश्वसनीय वितरणाची हमी देते. सकारात्मक पावतीसाठी प्राप्तकर्त्याने डेटा प्राप्त केल्यानंतर पोचपावती संदेश परत पाठवून प्रेषकाशी संवाद साधणे आवश्यक आहे. प्रेषक पाठवलेल्या प्रत्येक पॅकेटला लॉग करतो आणि पुढील डेटा पॅकेट पाठवण्यापूर्वी पुष्टीकरणाची प्रतीक्षा करतो. जेव्हा सेगमेंट फॉरवर्ड केला जातो, तेव्हा प्रेषक टायमर सुरू करतो आणि जर पोचपावती प्राप्त होण्यापूर्वी टायमर कालबाह्य झाला तर तो डेटा ब्लॉक पुन्हा पाठवतो.

अंजीर मध्ये. आकृती 7 पाठवणारा पॅकेट 1, 2 आणि 3 पाठवणारा दाखवतो. प्राप्तकर्ता पॅकेट 4 ची विनंती करून पॅकेट्सची पावती देतो. प्रेषक, पावती मिळाल्यानंतर, 4, 5 आणि 6 पॅकेट पाठवतो. जर पॅकेट 5 प्राप्तकर्त्याला वितरित केले गेले नाही , ते दुसरे पॅकेट 5 पाठवण्याची विनंती करणारी पोचपावती पाठवते आणि प्रेषक पॅकेट 5 पुन्हा पाठवतो आणि पॅकेट क्रमांक 7 पाठवणे सुरू ठेवण्यासाठी योग्य पोचपावती प्राप्त करणे आवश्यक आहे.

टीसीपी प्रोटोकॉल विभागांचा क्रम लागू करतो आणि त्यानंतर पोचपावती. प्रत्येक डेटाग्रामला संप्रेषणापूर्वी एक नंबर दिला जातो (चित्र 8). प्राप्तकर्त्याला सर्व डेटाग्राम प्राप्त झाल्यानंतर, ते संपूर्ण संदेशात एकत्र केले जातात. TCP प्रोटोकॉलची जबाबदारी इंटरनेटवर प्रसारित झालेला खराब झालेला, हरवलेला, डुप्लिकेट केलेला किंवा ऑर्डरबाह्य डेटा पुनर्प्राप्त करणे आहे. पुनर्प्राप्ती यंत्रणा प्रत्येक प्रसारित ऑक्टेटला अनुक्रम क्रमांक नियुक्त करून कार्य करते, ज्याची पावती मिळाल्यानंतर प्राप्तकर्त्याने एक पोचपावती (ACK) पाठवणे आवश्यक आहे. प्रतीक्षा कालावधीत कोणतीही पुष्टी न मिळाल्यास, प्रेषकाद्वारे डेटा पुन्हा प्रसारित केला जातो. एकदा प्राप्तकर्त्याला ऑक्टेट वितरीत केल्यावर, त्यांचे अनुक्रम क्रमांक तुकड्यांमधील संदेश पुन्हा एकत्र करण्यासाठी आणि डुप्लिकेट काढून टाकण्यासाठी वापरले जातात. खराब झालेला डेटा चेकसम वापरून पुनर्प्राप्त केला जातो जो प्रत्येक प्रसारित सेगमेंटमध्ये जोडला जातो. चेकसम प्राप्तकर्त्याद्वारे सत्यापित केला जातो आणि तो जुळत नसल्यास, दूषित डेटा टाकून दिला जातो.

तांदूळ. 7. खिडकीचा आकार तीन आहे

तांदूळ. 8. क्रम संख्या आणि पुष्टीकरणे

प्रोटोकॉलTCP

TCP(ट्रान्समिशन कंट्रोल प्रोटोकॉल - ट्रान्समिशन कंट्रोल प्रोटोकॉल) एक कनेक्शन-देणारं ट्रान्सपोर्ट लेयर प्रोटोकॉल आहे आणि विश्वासार्ह, पूर्ण-डुप्लेक्स डेटा ट्रान्समिशन प्रदान करतो. TCP प्रोटोकॉल हा TCP/IP प्रोटोकॉल स्टॅकचा भाग आहे. कनेक्शन-देणारं वातावरणात, डेटा हस्तांतरित करणे सुरू करण्यासाठी दोन संगणकांमध्ये कनेक्शन स्थापित करणे आवश्यक आहे. TCP प्रोटोकॉल संदेशांना पॅकेटमध्ये विभाजित करण्यासाठी, त्यांना प्राप्तकर्त्याकडे पुन्हा जोडण्यासाठी आणि डेटाचे कोणतेही तुकडे प्राप्त न झाल्यास ते पुन्हा प्रसारित करण्यासाठी जबाबदार आहे. प्रोटोकॉल अंतिम-वापरकर्ता अनुप्रयोगांमध्ये आभासी चॅनेल तयार करण्यास देखील सक्षम आहे.

TCP यंत्रणा वापरणाऱ्या उच्च-स्तरीय सेवा आणि प्रोटोकॉल:

    FTP (फाइल ट्रान्सफर प्रोटोकॉल);

    HTTP (हायपरटेक्स्ट ट्रान्सफर प्रोटोकॉल);

    SMTP (साधा मेल ट्रान्सफर प्रोटोकॉल - साधा ईमेल प्रोटोकॉल);

स्लाइडवर दर्शविलेल्या TCP सेगमेंट फील्डचे खाली वर्णन केले आहे.

प्रेषक पोर्ट -कॉलिंग पोर्ट नंबर.

रिसीव्हर पोर्ट -पोर्ट नंबर म्हणतात.

अनुक्रमांक -येणारा डेटा योग्य क्रमाने व्यवस्थित करण्यासाठी वापरला जाणारा क्रमांक.

पुष्टीकरण क्रमांक- पुढील अपेक्षित TCP ऑक्टेटची संख्या.

HLEN शीर्षलेखात 32!बिट शब्दांची संख्या.

आरक्षित फील्ड- सर्व बिट्स 0 वर सेट आहेत.

कोडचे तुकडे- सेवा कार्ये (उदाहरणार्थ, सत्र सेट करणे आणि समाप्त करणे).

खिडकी- प्रेषक स्वीकारण्यास इच्छुक असलेल्या ऑक्टेटची संख्या.

चेकसम- हेडर आणि डेटा फील्डची गणना केलेली चेकसम.

त्वरित डेटा पॉइंटर- तातडीच्या डेटाची समाप्ती दर्शवते.

पर्याय- सध्या एक पॅरामीटर परिभाषित केला आहे: TCP विभागाचा कमाल आकार.

डेटा- उच्च स्तरीय प्रोटोकॉल डेटा.

प्रोटोकॉलUDP

UDP (वापरकर्ता डेटाग्राम प्रोटोकॉल- वापरकर्ता डेटाग्राम हस्तांतरण प्रोटोकॉल), ज्याचे सेगमेंट फॉरमॅट स्लाइडवर दाखवले आहे, ते TCP/IP प्रोटोकॉल स्टॅकमधील कनेक्शनलेस ट्रान्सपोर्ट प्रोटोकॉल आहे. UDP हा एक साधा प्रोटोकॉल आहे जो पोचपावतीशिवाय आणि वितरणाची हमी न देता डेटाग्रामची देवाणघेवाण करतो. UDP आणि TCP प्रोटोकॉलच्या सेगमेंट फॉरमॅटची तुलना करताना प्रोटोकॉलची साधेपणा स्पष्ट होते. UDP प्रोटोकॉल वापरताना, त्रुटी हाताळणे आणि डेटा रीट्रांसमिशन उच्च-स्तरीय प्रोटोकॉलद्वारे हाताळले जाणे आवश्यक आहे. उदाहरणार्थ, TFTP द्वारे डेटा पाठवताना हस्तांतरणात व्यत्यय आल्यास, फक्त एक मानवी ऑपरेटर माहिती पुन्हा डाउनलोड करू शकतो.

खालील यादी UDP विभागाची फील्ड दर्शवते जी स्लाइडवर दर्शविली आहे

    प्रेषक पोर्ट -कॉलिंग पोर्ट नंबर.

    प्राप्तकर्ता पोर्ट -पोर्ट नंबर म्हणतात.

    लांबी- हेडर आणि डेटासह बाइट्सची संख्या.

    चेकसम- हेडर आणि डेटा फील्डची गणना केलेली चेकसम.

    डेटा- उच्च स्तरीय प्रोटोकॉल डेटा.

UDP प्रोटोकॉल स्लाइडिंग विंडो यंत्रणा वापरत नाही, त्यामुळे डेटा ट्रान्समिशनची विश्वासार्हता सुनिश्चित करणे आवश्यक आहे अनुप्रयोग स्तर प्रोटोकॉल(अनुप्रयोग स्तर प्रोटोकॉल). UDP ची रचना अशा अनुप्रयोगांसाठी केली गेली होती ज्यांना ऑर्डर केलेले विभाग एकत्र जोडण्याची आवश्यकता नाही.

UDP प्रोटोकॉल खालील उच्च-स्तरीय सेवा आणि प्रोटोकॉलद्वारे वापरला जातो:

    TFTP (क्षुल्लक फाइल हस्तांतरण प्रोटोकॉल - सर्वात सोपा फाइल हस्तांतरण प्रोटोकॉल);

    SNMP (साधा नेटवर्क व्यवस्थापन प्रोटोकॉल - साधा नेटवर्क व्यवस्थापन प्रोटोकॉल);

    DHCP (डायनॅमिक होस्ट कॉन्फिगरेशन प्रोटोकॉल - डायनॅमिक होस्ट कॉन्फिगरेशन प्रोटोकॉल);

    DNS (डोमेन नेम सिस्टम - डोमेन नेम सेवा).

प्रोटोकॉल पोर्ट क्रमांकTCPआणिUDP

वरच्या स्तरावर माहिती प्रसारित करण्यासाठी, TCP प्रोटोकॉल आणि UDP प्रोटोकॉल दोन्ही पोर्ट नंबर किंवा तथाकथित सॉकेट वापरतात. नेटवर्कवर एकाच वेळी होणाऱ्या विविध संवादांचा मागोवा घेण्यासाठी पोर्ट क्रमांक वापरले जातात.

ॲप्लिकेशन सॉफ्टवेअर डेव्हलपर्सनी इंटरनेट असाइन्ड नंबर्स अथॉरिटी (IANA) द्वारे नियुक्त केलेले आरक्षित पोर्ट क्रमांक वापरण्यास सहमती दर्शविली आहे. उदाहरणार्थ, FTP प्रोटोकॉल वापरून डेटा ट्रान्सफरचा समावेश असलेल्या कोणत्याही एक्सचेंजमध्ये मानक पोर्ट 20 (डेटासाठी) आणि 21 (नियंत्रणासाठी) वापरावे. नेटवर्क कम्युनिकेशन्स ज्यामध्ये सुप्रसिद्ध पोर्ट नंबर असलेले ऍप्लिकेशन समाविष्ट नसतात त्यांना पोर्ट नंबर यादृच्छिकपणे नियुक्त केले जातात, परंतु ते 1023 वरील मूल्यांच्या विशिष्ट श्रेणीतून निवडले जातात. काही पोर्ट TCP आणि UDP प्रोटोकॉलमध्ये राखीव असतात. जरी काही पोर्ट TCP आणि UDP मध्ये राखीव आहेत, तरीही अनुप्रयोग या नंबरवर हार्डवायर नसतील.

स्लाइडमध्ये दाखवल्याप्रमाणे, योग्य अनुप्रयोग निवडण्यासाठी एंड सिस्टम पोर्ट नंबर वापरते. स्त्रोत पोर्ट क्रमांक हा साधारणपणे 1023 पेक्षा मोठा असतो, जो प्रेषण नोडद्वारे गतिशीलपणे नियुक्त केला जातो. उदाहरणार्थ, प्राप्तकर्ता TCP पोर्ट क्रमांक 21 (FTP) निर्दिष्ट करणारे पॅकेट पाठवून एक नोड FTP द्वारे दुसऱ्या नोडशी कनेक्ट करण्याचा प्रयत्न करतो आणि डायनॅमिकपणे 1028 चा स्त्रोत पोर्ट क्रमांक तयार करतो. पोर्टची ही जोडी (प्रेषक आणि प्राप्तकर्ता) विशिष्टता निर्धारित करते. दोन नोड्समधील परस्परसंवादाचे. समान नोडने तिसऱ्या नोडसह FTP कनेक्शन सुरू केल्यास, गंतव्य पोर्ट 21 वर सेट केला जातो, परंतु दोन संप्रेषण सत्रे वेगळे करण्यासाठी प्रेषक पोर्ट वेगळे (उदाहरणार्थ, 1030) म्हणून निवडले जाते.

विश्वसनीय प्रसारण आयोजित करण्यासाठी वापरल्या जाणार्या सर्वात नैसर्गिक तंत्रांपैकी एक आहे पोचपावती. प्रेषक डेटा पाठवतो आणि त्याचा डेटा सुरक्षितपणे प्राप्तकर्त्यापर्यंत पोहोचला असल्याची पुष्टी करणारी पावती प्राप्त होईपर्यंत प्रतीक्षा करतो. TCP प्रोटोकॉल हँडशेकिंगचा एक विशेष केस वापरतो - स्लाइडिंग विंडो अल्गोरिदम. TCP प्रोटोकॉलमध्ये या अल्गोरिदमच्या अंमलबजावणी वैशिष्ट्यांचा तपशीलवार विचार करण्याआधी, सामान्य दृष्टीकोनातून त्यावर चर्चा करणे खूप उपयुक्त आहे.

तर, पावती विनिमय प्रक्रिया आयोजित करण्यासाठी दोन पद्धती आहेत: निष्क्रिय स्त्रोत पद्धत आणि स्लाइडिंग विंडो पद्धत.

पद्धत स्रोत डाउनटाइमफ्रेम पाठवणारा स्त्रोत आवश्यक आहे (या प्रकरणात ट्रान्समिट केलेल्या डेटाच्या युनिटसाठी कोणते नाव वापरले जाते हे महत्त्वाचे नाही) मूळ फ्रेम प्राप्त झाली आहे आणि त्यातील डेटा बरोबर आहे हे दर्शवणाऱ्या प्राप्तकर्त्याकडून पावतीची वाट पाहत आहे, आणि त्यानंतरच पुढील फ्रेम पाठवते (किंवा पुन्हा विकृत एक) जर पावती कालबाह्यतेच्या आत आली नाही, तर फ्रेम (किंवा पावती) हरवलेली मानली जाते आणि तिचे प्रसारण पुनरावृत्ती होते. अंजीर मध्ये. आकृती 17.10 दाखवते की दुसरी फ्रेम पहिल्या फ्रेमच्या वितरणाची पुष्टी करणारी पावती आल्यानंतरच पाठवली जाते.

तांदूळ. १७.१०. स्रोत निष्क्रिय पद्धत

मात्र, नंतर पुढची तिसरी फ्रेम पाठवताना बराच विराम मिळाला. या विराम दरम्यान, स्त्रोताला फ्रेम 2 चे प्रसारण पुनरावृत्ती करण्यास भाग पाडले गेले, कारण त्याची पहिली प्रत गमावली गेली. हे स्पष्ट आहे की स्त्रोत ऑपरेशनसाठी अशा अल्गोरिदमसह, प्राप्तकर्ता पक्ष डुप्लिकेट फ्रेम ओळखण्यास आणि त्यापासून मुक्त होण्यास सक्षम असणे आवश्यक आहे.

हे अगदी स्पष्ट आहे की ही पद्धत वापरताना, डेटा एक्सचेंजचे कार्यप्रदर्शन संभाव्यतेपेक्षा कमी असते - ट्रान्समीटर मागील एक पाठवल्यानंतर लगेच पुढील फ्रेम पाठवू शकतो, परंतु पावती येण्याची प्रतीक्षा करणे आवश्यक आहे.

दुसऱ्या पद्धतीला पद्धत म्हणतात स्लाइडिंग विंडो(स्लाइडिंग विंडो). या पद्धतीमध्ये, डेटा ट्रान्सफर रेट वाढवण्यासाठी, स्त्रोताला ठराविक संख्येच्या फ्रेम्स सतत मोडमध्ये प्रसारित करण्याची परवानगी आहे, म्हणजेच स्त्रोतासाठी जास्तीत जास्त संभाव्य दराने. या फ्रेम्सच्या पावत्या प्राप्त होईपर्यंत. अशा प्रकारे प्रसारित करण्याची परवानगी असलेल्या फ्रेम्सची संख्या म्हणतात खिडकीचा आकार.

आकृती 17.11 5 फ्रेम्सच्या विंडोसाठी या पद्धतीचा वापर स्पष्ट करते.

तांदूळ. १७.११. स्लाइडिंग विंडो पद्धत

सुरुवातीच्या क्षणी, जेव्हा अद्याप कोणतीही फ्रेम पाठवली गेली नाही, तेव्हा विंडो 1 ते 5 समावेशासह फ्रेम क्रमांकांची श्रेणी परिभाषित करते. स्त्रोत फ्रेम प्रसारित करण्यास सुरवात करतो आणि काही काळानंतर प्रतिसादात पावत्या प्राप्त करतो. साधेपणासाठी, आपण असे गृहीत धरू की पावत्या त्या ज्या फ्रेम्सशी संबंधित आहेत त्याच क्रमाने (परंतु त्याच गतीने आवश्यक नाही) येतात. ज्या क्षणी प्रेषकाला पावती 1 प्राप्त होते, त्या क्षणी, विंडो एका स्थानावर सरकते, पाठवण्याची परवानगी असलेल्या फ्रेम्सची नवीन श्रेणी परिभाषित करते (2 ते 6 पर्यंत).

पॅकेजेस पाठवणे आणि पावत्या प्राप्त करणे या प्रक्रिया एकमेकांपासून पूर्णपणे स्वतंत्र आहेत. आमच्या उदाहरणात, प्रेषक फ्रेम प्रसारित करणे सुरू ठेवतो, परंतु काही काळासाठी त्यांना पावती प्राप्त होत नाही. फ्रेम 6 प्रसारित केल्यानंतर, विंडो संपली आहे आणि स्त्रोत प्रसारणास विराम देतो.

पावती 2 (फ्रेम 2 साठी) मिळाल्यानंतर, विंडो एकने वर सरकते, 3 ते 7 पर्यंत ट्रान्समिशनसाठी परवानगी असलेल्या फ्रेमची श्रेणी परिभाषित करते. खिडकीच्या वरचे "स्लाइडिंग" होते. प्रत्येक पावती मिळाल्यानंतर: विंडो 1 ने वर जाते, परंतु तिचा आकार बदलत नाही आणि 5 इतकाच राहतो. पावती 8 आल्यानंतर, विंडो 9 ते 13 च्या श्रेणीत दिसते आणि बर्याच काळासाठी तशीच राहते, कारण काही कारणास्तव स्त्रोत वितरण पुष्टीकरण फ्रेम प्राप्त करणे थांबवते. शेवटची अनुमत फ्रेम 13 पाठवल्यानंतर, पावती 9 मिळाल्यानंतर ते पुन्हा सुरू करण्यासाठी ट्रान्समीटर पुन्हा प्रसारण थांबवतो.

जेव्हा फ्रेम पाठवली जाते, तेव्हा स्त्रोतावर कालबाह्य सेट केले जाते. जर पाठवलेल्या फ्रेमची पावती निर्दिष्ट वेळेत आली नाही, तर फ्रेम (किंवा तिची पावती) हरवलेली मानली जाते आणि फ्रेम पुन्हा प्रसारित केली जाते. जर पावत्यांचा प्रवाह 5 फ्रेमच्या सहनशीलतेमध्ये नियमितपणे येत असेल, तर विनिमय दर दिलेल्या चॅनेलसाठी आणि स्वीकारलेल्या प्रोटोकॉलसाठी जास्तीत जास्त संभाव्य मूल्यापर्यंत पोहोचतो.

सर्वसाधारणपणे, स्लाइडिंग विंडो पद्धत निष्क्रिय स्त्रोत पद्धतीपेक्षा अंमलात आणण्यासाठी अधिक क्लिष्ट आहे, कारण ट्रान्समीटरने सर्व फ्रेम्सच्या बफर प्रती संग्रहित केल्या पाहिजेत ज्यांच्या पावत्या अद्याप प्राप्त झाल्या नाहीत. याव्यतिरिक्त, ही पद्धत वापरताना, अल्गोरिदमच्या अनेक पॅरामीटर्सचे निरीक्षण करणे आवश्यक आहे, जसे की विंडोचा आकार, फ्रेम नंबर ज्यासाठी पावती प्राप्त झाली होती आणि फ्रेम नंबर जो अद्याप नवीन पावती प्राप्त करण्यापूर्वी प्रसारित केला जाऊ शकतो.



आम्ही वाचण्याची शिफारस करतो

वर