प्रोटोकॉल्स आणि राउटर्स (अच्युत गोडबोले)

अच्युत गोडबोले achyut.godbole@gmail.com
रविवार, 13 ऑक्टोबर 2019

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

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

नेटवर्कमधल्या कुठल्याही दोन कॉम्प्युटर्समध्ये संवाद साधण्यासाठी फक्त त्यांना एका केबलनं जोडून चालत नाही, तर त्या संवादासाठी काही नियमांचं पालन करावं लागतं. या नियमांनाच ‘प्रोटोकॉल्स’ असं म्हणतात. या प्रोटोकॉल्सचेही एकावर एक असे रचलेले अनेक भाग (लेयर्स) पाडले जातात. हे भाग किंवा लेयर्स किती असावेत आणि प्रत्येकाचं कार्य काय असावं यावरून अनेक परिमाणं (स्टँडर्ड्‌स) निघाली. ‘ओपन सिस्टिमस् इंटरकनेक्शन (OSI)’ हे एक असंच एक परिमाण आहे. प्रत्यक्ष जवळपास कुठल्याही नेटवर्कमध्ये OSI मध्ये सांगितलेली सगळी कार्यं होतच असतात; पण प्रत्येकामधल्या लेयर्सची संख्या आणि त्यांची कार्यं वेगवेगळी असू शकतात. त्यामुळे कुठल्याही नेटवर्कमध्ये हे OSI परिमाण तंतोतंत पाळलं जात नसलं, तरी त्यातल्या लेयर्सविषयी बोलताना OSI मधल्या लेयर्सचा बरेचदा उल्लेख होतो आणि त्यांच्याशी तुलना केली जाते. म्हणून OSI च्या लेयर्सविषयी थोडंसं बोललंच पाहिजे.
OSI मध्ये ७ लेयर्स असतात. त्या लेयर्सपैकी सगळ्यात खालचा लेयर म्हणजे ‘फिजिकल लेयर.’ यामध्ये नेटवर्कमधल्या दोन कॉम्प्युटर्सना जोडणारी केबल कुठली असावी, ती कॉम्प्युटरला कशी जोडली जावी, त्यांच्यातले सिग्नल्स कसे असावेत अशा गोष्टींचा उल्लेख असतो. जोडल्या जाणाऱ्या दोन कॉम्प्युटर्समध्ये याविषयी एकवाच्यता (अॅग्रीमेंट) असावी लागते. नाहीतर संवाद होणं शक्य नसतं.
फिजिकल लेयरच्या वर ‘डेटा लिंक लेयर’ असतो. यामध्ये पूर्वी वर्णिल्याप्रमाणे कुठलीही फ्रेम दुसऱ्या कॉम्प्युटर्सपर्यंत निर्दोष पोचली आहे की नाही ते तपासणं, जर त्यात काही चूक झाली असली, तर त्या फ्रेमसाठी रिसिव्हरनं ट्रान्स्मिटरकडे ‘नॅक (NAK)’ असा संदेश पाठवणं आणि ज्या फ्रेमसाठी ‘नॅक’ असा संदेश येईल, ती फ्रेम ट्रान्स्मिटरनं रिसिव्हरकडे अचूकपणे पोचेपर्यंत पाठवत राहणं याला ‘स्टॉप अँड वेट’ पद्धत म्हणतात. यामध्ये ‘स्लायडिंग विंडो’ अशी काही व्हेरिएशन्सही असतात. यामध्ये एकाच वेळी अनेक फ्रेम्स पाठवता येतात. हे सगळं ‘डेटा लिंक लेयर’मध्ये येतं.
डेटा लिंक लेयरवर ‘नेटवर्क लेयर’ येतो. यामध्ये राउटिंग येतं. प्रत्येक पॅकेट त्यावेळच्या नेटवर्कच्या स्थितीप्रमाणे (कुठल्या लाईनवर लोड जास्त आहे; कुठल्या डाऊन आहेत...) आपला मार्ग निवडतो. त्यासाठी राउटिंग टेबल्सचा वापर करण्यात येतो. नेटवर्कच्या बदलत्या स्थितीप्रमाणं ही टेबल्स सतत बदलावी लागतात. इंटरनेटमध्ये राउटर्स हे राउटिंगचं काम करतात; आणि त्यासाठी ते राउटिंग टेबल्सही मेन्टेन करतात.
नेटवर्क लेयरनंतर ‘ट्रान्सपोर्ट लेयर’ येतो. हा ‘एंड-टू-एंड’ प्रोटोकॉल असतो. म्हणजे जर ‘क्ष’ या (ट्रान्स्मिटर) कॉम्प्युटरला ‘य’ या (रिसिव्हर) कॉम्प्युटरकडे संदेश पाठवायचा असेल, आणि तो संदेश म्हणजे त्याची पॅकेट्स नेटवर्कमधून वेगवेगळ्या रूट्सनी ‘क्ष’कडून ‘य’कडे पोचत असतील, तर ‘य’ कॉम्प्युटरमध्ये या सगळ्या पॅकेट्सची हेडर्स काढून त्यांच्या क्रमांकाप्रमाणे ती एकापुढं एक ठेवून मूळ संदेश मिळवावा लागतो. यानंतर ‘य’ हा कॉम्प्युटर त्याच्याकडे पूर्ण संदेश योग्य तऱ्हेनं अचूकपणे पोचला असेल, तर त्याबद्दल ‘क्ष’ या कॉम्प्युटरला ‘अॅक (ACK)’ हा संदेश पाठवतो. हा संदेश फक्त नेटवर्कमधल्या ‘य’ च्या पुढच्या नोडसाठी नसतो, तर तो ‘क्ष’ या टोकाच्या सोर्स कॉम्प्युटरसाठी असतो. फक्त तो ‘य’ पासून ‘क्ष’पर्यंत मधल्या वेगवेगळ्या नोड्सच्या मार्फत पाठवावा लागतो एवढंच. म्हणून याला एका ‘एंड-टू-एंड प्रोटोकॉल’ असं म्हणतात.
ट्रान्सपोर्ट लेयरच्या वर सेशन्स, प्रेझेंटेशन आणि अॅप्लिकेशन असे लेयर्स असतात. सेशन्स लेयरमध्ये संवाद साधण्यासाठी एस्टॅब्लिश केलेल्या सेशनविषयी नियम असतात, तर प्रेझेंटेशन लेयरमध्ये कोडिंगच्या पद्धती (अॅस्की, एब्सिडिक...), डेटा कॉम्प्रेशन, डेटा एन्क्रिप्शन अशा अनेक बाबतीतले नियम असतात. अॅप्लिकेशन लेयरमध्ये हे सगळं कम्युनिकेशन कशाचा संवाद साधण्यासाठी याविषयी असतो. त्यामध्ये आपल्या ब्राऊझरवरून कुठल्याही वेब साइटवरून वेब पेजेस मिळवण्यासाठी वापरलेले http आणि https हे प्रोटोकॉल्स, फाईल ट्रान्स्फर प्रोटोकॉल (FTP) किंवा ई-मेल असे प्रकार मोडतात.
सन १९८० च्या दशकात प्रत्येक कॉम्प्युटरच्या उत्पादकानं स्वत:चे असे नेटवर्कचे प्रोटोकॉल्स निर्माण केले. डेटा जनरल कॉम्प्युटर्सनं ‘झोडियॅक’, डिजिटल इक्विपमेंट कॉर्पोरेशननं ‘डेकनेट’ आणि आयबीएमनं ‘एसएनए’ असे प्रत्येकानं आपापले प्रोटोकॉल्स बनवले. त्यात त्याच कंपनीच्या (उदा. डेटा जनरल, आयबीएम) नेटवर्कमधल्या कॉम्प्युटर्सना एकमेकांशी संवाद साधता यायचा. या प्रोटोकॉल्समध्येही OSI लेयर्सची जवळजवळ सगळी कार्यं (फंक्शन्स) असली, तरी प्रत्येकामधल्या लेयर्सची संख्या आणि त्यातल्या प्रत्येक लेयरचं कार्य यांच्यामध्ये फरक होता. तसंच लोकल एरिया नेटवर्कमध्ये बस टोपॉलॉजीवर आधारलेल्या IEEE802.3, ईथरनेट, रिंग टोपॉलॉजीवर आधारलेल्या लॅनसाठी ‘टोकन रिंग’ किंवा IEEE802.5 तसंच ‘वाइड एरिया नेटवर्क (वॅन)’साठी X.25 असे अनेक प्रोटोकॉल्स निर्माण झाले. या सगळ्या प्रोटोकॉल्समध्ये फ्रेम किंवा पॅकेटची लांबी केवढी असेल, त्याची अचूकता शोधण्याची पद्धती कुठली (चेकसमसाठी गणित करण्याचा अल्गॉरिदम किंवा पद्धती), कुठलंही पॅकेट पुढच्या नोडपर्यंत अचूकपणे पोचलं आहे की नाही ही कळण्यासाठी अॅक/नॅक किंवा स्लायडिंग विंडो किंवा अशी पद्धती कुठली, राउटिंग टेबलची रचना कशी असावी, ते कसं आणि केव्हा अपडेट करावं, नेटवर्कचं राउटिंग कसं करायचं अशा अनेक बाबतीत खूपच फरक असतात. त्यामुळे मग अशी अनेक वेगवेगळ्या तऱ्हेची आणि वेगवेगळे प्रोटोकॉल्स वापरणारी नेटवर्क्स जर एकमेकांशी संवाद साधू बघत असली, तर काय करायचं? त्यांच्या प्रोटोकॉल्समध्येही एवढा फरक असतो, की हे काम जवळपास अशक्यच वाटावं. एका नेटवर्कला अनेक नेटवर्क्सशी संवाद साधायचा असेल, तर प्रोटोकॉल्सची भाषांतरं किंवा रूपांतरं करायला हवीत. हे काम प्रचंडच अवघड आहे.
इंटरनेटमध्ये हेच मोठं आव्हान असतं. याचं कारण इंटरनेट म्हणजे काही एक नेटवर्क नाही. इंटरनेट म्हणजे हजारो, लाखो वेगवेगळ्या नेटवर्क्सचं एक भलंमोठं नेटवर्क आहे! मग माझा ईमेल माझ्या पुण्याच्या कॉम्प्युटरवरून निघून हजारो वेगवेगळ्या तऱ्हेची वेगवेगळे प्रोटोकॉल्स वापरणारी नेटवर्क्स पादाक्रांत करून बरोबर अमेरिकेतल्या माझ्या मित्राच्या कॉम्प्युटरवर क्षणार्धात जाऊन बसतो तरी कसा?
हे समजावून घेण्याआगोदर आपल्याला राउटर्सविषयी बोललं पाहिजे. इंटरनेटमध्ये राउटर्स एक अत्यंत महत्त्वाची भूमिका बजावतात. राउटर्स राउटिंग टेबल्स मेन्टेन करतात आणि त्यांचा वापर करून नेटवर्कमधलं राउटिंगचं काम करतात. त्यामुळे राउटरचं हार्डवेअर आणि सॉफ्टवेअर मिळून OSIच्या नेटवर्क लेयरचं काम करतात असं आपण म्हणू शकतो. राउटर्स आणखी एक महत्त्वाचं काम करतात. ते म्हणजे ते दोन नेटवर्क्सना (त्यांना ‘सबनेट्स म्हणतात) जोडतात. शेजारच्या आकृतीत हे दाखवलंय.

आकृती १
या आकृतीत राउटर डावीकडल्या बस आणि उजवीकडल्या रिंग या दोन्ही नेटवर्क्सना जोडतो, एवढंच नव्हे, तर तो या दोन्ही नेटवर्क्सवर असतो. म्हणजे बस नेटवर्कचे नोड्स मोजले, तर ते B1, B2, B3, B4 आणि राउटर असे होतील आणि तसंच रिंग नेटवर्कचे नोड्स मोजले, तर ते R1, R2, R3, R4 आणि राउटर असे होतील.
यामुळे जेव्हा बसवरच्या B1 नोडला रिंगवरच्या R2 नोडला एक सदेश पाठवायचा असेल, तेव्हा B1 तो संदेश प्रथम राउटरला पाठवतो. राउटर हाही त्या बसचाच एक नोड असल्यामुळे हे शक्य होतं (म्हणजे B1 त्या संदेशाचे ईथरनेट किंवा CSMA/CD च्या प्रोटोकॉलमध्ये दिल्याप्रमाणे अनेक फ्रेम्स आणि त्यांची हेडर्स बनवतो, आणि CSMA/CD प्रोटोकॉल वापरून त्या फ्रेम्स बसवरून राउटरकडे येतात तेव्हा त्यातली हेडर्स काढून राउटरमध्ये तो पूर्ण संदेश तयार होतो.)
आता राउटर त्या संदेशाचे टोकन रिंगच्या प्रोटोकॉलप्रमाणे वेगळ्या फ्रेम्स आणि त्यांची हेडर्स बनवतो; आणि एक एक करून टोकन रिंगच्या प्रोटोकॉलप्रमाणे रिंगवर सोडतो. त्या फ्रेममधल्या हेडरमध्ये ज्याला तो संदेश पाठवायचा आहे (R2) याचा पत्ता आहे. त्याचा वापर करून ती फ्रेम राउटर, नंतर R1 असा प्रवास करून R2 कडे येते तेव्हा ती फ्रेम आपल्यासाठीच आहे हे R2 ला त्या फ्रेममधला अॅड्रेस बघून कळतं. मग ती फ्रेम योग्य तऱ्हेनं अचूकपणे पोचली आहे का ते चेकसम वापरून तपासलं जातं आणि दर फ्रेमसाठीच्या ACK/NAK च्या पिंगपाँगनंतर सगळ्या फ्रेम्स R2 कडे येतात. R2 मग सगळ्या फ्रेममधली हेडर्स काढून त्या एकापुढे एक अशा क्रमानं लावून मूळ संदेश मिळवतो. अशा तऱ्हेनं एका नेटवर्कवरच्या एका नोडवरचा संदेश दुसऱ्या तऱ्हेच्या नेटवर्कच्या दुसऱ्या नोडपर्यंत राउटरच्या मार्फत पोचतो.
मात्र, इंटरनेट हे अनेक वेगवेगळ्या प्रोटोकॉलच्या नेटवर्क्सचं (सबनेट्स) एक अजस्त्र नेटवर्क आहे. यामध्ये संदेश योग्य तऱ्हेनं एका टोकापासून दुसऱ्या टोकाला पोचवण्यासाठी TCP/IP या प्रोटोकॉलचा जन्म झाला. इंटरनेटवर संवाद TCP/IP मुळेच शक्य होतो.
‘टीसीपी आयपी’ प्रोटोकॉलचा वापर कसा सुरू झाला आणि याचं श्रेय कुणाला मिळालं याची गोष्ट फारच गंमतशीर आहे. व्हिटंट सर्फ आणि रोबर्ट कान या दोघांनी मिळून सन १९७३ मध्येच या संपूर्ण प्रोटोकॉलचा मसुदा तयार केला; पण यावर नाव कुणाचं टाकावं हे मात्र निश्चित होईना. हे ठरवण्यासाठी शेवटी चक्क नाणेफेक केली गेली आणि टीसीपी/आयपीचा जन्मदाता म्हणून व्हिटंट सर्फ याचं नाव इतिहासात कोरलं गेलं! याच व्हिटंट सर्फबरोबर दोन दिवस न्यूयॉर्कमध्या एका हॉटेलमध्ये आणि दोन दिवस मुंबईच्या ताजमहालमध्ये काढण्याचा, त्याच्याबरोबर गप्पा मारण्याचा आणि त्याची मुलाखत घेण्याचा योग मला आला होता हे विशेष!
OSI च्या स्टँडर्डप्रमाणे असलेल्या ७ लेयर्सपैकी अॅप्लिकेशन लेयर (उदा. http, email, FTP...), प्रेझेंटेशन लेयर आणि सेशन्स लेयर हे TCP/IP मध्ये फक्त एकाच लेयरमध्ये सामावलेले असतात. त्यालाच ‘ट्रान्सपोर्ट कन्ट्रोल प्रोटोकॉल (TCP)’ असं म्हणतात. पाठवायच्या संदेशाचे TCP मध्ये दिलेल्या प्रोटोकॉलप्रमाणे पॅकेटस् आणि त्यांची हेडर्स हा लेयर बनवतो, आणि ती खालच्या म्हणजे IP कडे (इंटरनेट प्रोटोकॉल) पाठवतो. IP लेयरचं काम राउटिंगचं असतं. त्यात राउटर्सचा उपयोग तर होतोच; पण यामध्ये इंटरनेटला जोडलेल्या प्रत्येक नोडला एक विशिष्ट पत्ता दिलेला असतो. त्याला ‘IP अॅड्रेस’ असं म्हणतात. त्याविषयी नंतर बोलूच. थोडक्यात IP हा नेटवर्क लेयरचा प्रोटोकॉल आहे. या लेयरखालचे लेयर्स हे पूर्वीप्रमाणेच डेटा लिंक लेयर (ACK/NAK...) आणि फिजिकल लेयर्स यांचे असतात. एकूण TCP/IP हा एक गुंतागुंतीचा प्रोटोकॉल आहे, आणि त्याविषयी सखोल चर्चा करणं इथे शक्य नाही. त्यामानानं इंटरनेटसाठीच दुसरा वापरला जाणारा UDP हा प्रोटोकॉल जास्त सुलभ आणि सोपा आहे. त्यामुळे इंटरनेटवर गेम्स खेळणं वगैरे गोष्टींसाठी तो वापरला जातो; पण जास्त महत्त्वाच्या आणि गंभीर गोष्टींसाठी TCP हाच प्रोटोकॉल वापरण्यात येतो.


स्पष्ट, नेमक्या आणि विश्वासार्ह बातम्या वाचण्यासाठी 'सकाळ'चे मोबाईल अॅप डाऊनलोड करा
Web Title: saptarang achyut godbole write protocol and router article