Saturday, November 24, 2018

OSI (7) Layers အေၾကာင္းသိေကာင္းစရာ





















OSI ဆုိတာဟာဘာလဲ။ အရွည္ေျပာရရင္ေတာ့ Open System Interconnection လုိ႔ေခၚပါတယ္။ သူဟာ Network ေတြ တစ္ခုနဲ႔တစ္ခု အျပန္အလွန္ ခ်ိတ္ဆက္ၾကရာမွာ အခက္အခဲမရွိ လြယ္ကူေခ်ာေမြ႕ ေစဖုိ႔အတြက္ International Organization for Standardization (ISO) အဖြဲ႕ ၾကီးက ခ်မွတ္ထားတဲ့ စံတစ္ခုျဖစ္ပါတယ္။

            ကမာၻေပၚမွာ ကြန္ပ်ဴတာ ထုတ္လုပ္ေရာင္းခ်တဲ့ ကုမၸဏီၾကီးေတြ အမ်ားၾကီးရွိပါတယ္။ အဲဒီလုိပဲ ကြန္ပ်ဴတာေတြ တစ္လုံးနဲ႔ တစ္လုံးခ်ိတ္ဆက္တဲ့အခါမွာသုံးတဲ့ Networking Devices ေတြကုိ ထုတ္လုပ္တဲ့ ကုမၸဏီေတြလည္း အမ်ားၾကီးရွိပါတယ္။ အဲဒီလုိမ်ိဳး နည္းပညာပုိင္းဆုိင္ရာ မတူညီၾကတဲ့ အမ်ိဳးအစားအမ်ိဳးမ်ိဳးေသာ ကြန္ပ်ဴတာေတြ၊ Networking Devices ေတြကုိ အသုံးျပဳထားၾကတဲ့ Network ေတြအသီးသီးဟာ တစ္ခုနဲ႔တစ္ခု လြယ္လင့္တကူ အျပန္အလွန္ ခ်ိတ္ဆက္မိခ်င္တယ္ဆုိရင္ သူတုိ႔အားလုံးၾကားထဲမွာ ပုံေသစံႏႈန္း(ဘုံတူညီခ်က္မ်ား) ရွိဖုိ႔ေတာ့လုိအပ္ေနပါတယ္။ ဒါမွသာ အဲဒီ Network ေတြဟာ အတူတကြ ေခ်ာေမြ႕စြာ ခ်ိတ္ဆက္ အလုပ္လုပ္နုိင္ၾကမွာျဖစ္ပါတယ္။ဒါေၾကာင့္ ISO အဖဲြ႕ၾကီးဟာ အဲဒီလုိအပ္ခ်က္ကုိ ေျပလည္ေစဖုိ႔အတြက္ OSI Layers (7)ခုကုိ ၁၉၇၄ ခုနွစ္ေလာက္ကတည္းက စတင္ေဖာ္ထုတ္ခဲ့တာပဲျဖစ္ပါတယ္။

            အခုအခ်ိန္မွာေတာ့ OSI(7) Layers စံႏႈန္းမ်ားနဲ႔ တုိက္ဆုိင္ကုိက္ညီမႈမရွိဘဲ ကြဲျပားေနတဲ့ Networking နဲ႔ပတ္သက္ ဆက္ႏြယ္ေနေသာ Device ရယ္လုိ႔ ေစ်းကြက္ထဲမွာ မရွိေတာ့တဲ့အထိ တစ္ကမာၻလုံးက OSI Layers (7) ခုကုိ အသိအမွတ္ျပဳလက္ခံ ေနၾကပါျပီ။ ဘာျဖစ္လုိ႔လဲဆုိေတာ့ လူသားေတြဟာ ယေန႔ေခတ္မွာ ဆက္သြယ္ေရးစနစ္ရဲ႕အေရးၾကီးပုံနဲ႔အသုံး၀င္ပုံ ေတြကိုပုိမုိခံစား သိရွိလာၾကတာနဲ႔အမွ် ေကာင္းမြန္ျမန္ဆန္တဲ့ ဆက္သြယ္ေရးစနစ္ေတြကုိ အသုံးျပဳခြင့္ရဖုိ႔ ပုိမုိေတာင့္တလာၾကပါတယ္။ ကြန္ပ်ဴတာ ကြန္ယက္ေတြဟာလည္း ယေန႔ဆက္သြယ္ေရးစနစ္ေတြမွာ အေရးပါတဲ့ အစိတ္အပုိင္းေတြအျဖစ္ ပါ၀င္လႈပ္ရွားေနၾကတယ္ဆုိတာ အားလုံးသိေနၾကမယ္ထင္ပါတယ္။ ဒီေတာ့ ကြန္ပ်ဴတာ ကြန္ယက္ေတြၾကားမွာ နည္းပညာ Platform မတူသည္ျဖစ္ေစ၊ အမ်ိဳးအစား တံဆိပ္မတူသည္ျဖစ္ေစ အတူတကြ ခ်ိတ္ဆက္လုပ္ေဆာင္ နုိင္ၾကဖုိ႔ဆုိတာ ဟာလည္း အမွန္တကယ္အေရးၾကီးတဲ့လုိအပ္ခ်က္ တစ္ခု ျဖစ္ပါတယ္။ ဒါမွသာ က်ယ္ျပန္႔ၾကီးမားတဲ့ ကြန္ပ်ဴတာကြန္ယက္ေတြ စီမံဖန္တီးခ်ိတ္ဆက္နုိင္မွာပါ။ အဲဒီလုိအဲဒီလုိ အခ်က္ေတြေၾကာင့္

လည္း OSI(7) Layers ဟာ ကမာၻ႕နည္းပညာစင္ျမင့္ထက္မွာ အမ်ားစုလက္ခံသုံးစြဲတဲ့ စံႏႈန္းတစ္ခုအျဖစ္အလ်င္အျမန္ ေနရာရလာခဲ့ ့တာပဲျဖစ္ပါတယ္။OSI(7) Layers စံႏႈန္းေပၚေပါက္လာျပီးတဲ့ေနာက္ပုိင္း ကြန္ပ်ဴတာကြန္ယက္ပုိင္းဆုိင္ရာ နည္းပညာေတြဟာ အျပန္အ လွန္ ပူးေပါင္းေဆာင္ရြက္မႈေတြနဲ႔အတူ အလ်င္အျမန္တုိးတက္လာခဲ့ပါတယ္။ ကြန္ပ်ဴတာကြန္ယက္ေတြရဲ႕ လႊမ္းျခဳံျဖန္႔က်က္မႈဧရိယာ

ေတြဟာလည္း ပိုမုိက်ယ္ျပန္႔ၾကီးမားလာခဲ့ပါတယ္။ အသိသာအျမင္သာဆုံး အက်ိဳးဆက္ကုိ ျပပါဆုိရင္ေတာ့ အခုတစ္ကမာၻလုံး တြင္တြင္က်ယ္က်ယ္ အသုံးျပဳေနၾကတဲ့ Internet ကုိသာၾကည္႕ပါ။ Internet ဆုိတာကေတာ့အားလုံးသိေနၾကတဲ့ အတုိင္း ကမာၻေပၚ

ကလူသန္းေပါင္းမ်ားစြာတုိ႔ရဲ႕ ဆက္သြယ္ေရးၾကားခံမီဒီယာတစ္ခု လုိ႔ေျပာရင္လဲရသလုိ လိုအပ္တဲ့ သတင္းအခ်က္အလက္ အမ်ားဆုံးကုိအျမန္ဆုံးရွာေဖြ ရယူနုိင္တဲ့တစ္ကမာၻလုံးဆုိင္ရာ ကြန္ပ်ဴတာကြန္ယက္ၾကီးပဲျဖစ္ပါတယ္။ Internet ေပၚမွာရွိတဲ့ ကြန္ပ်ဴတာေတြ၊ Networking Devices ေတြအားလုံးဟာ OSI(7) Layers စံႏႈန္းေတြနဲ႔အညီ အခ်င္းခ်င္း ခ်ိတ္ဆက္လုပ္ေဆာင္ေနၾက တာပဲျဖစ္ပါတယ္။ သူတုိ႔ေတြထဲမွာ မတူညီတဲ့တံဆိပ္အမ်ိဳးအစားေတြအမ်ားၾကီး ပါတယ္။ မတူညီတဲ့ နည္းပညာ Platform ေတြအမ်ားၾကီးလည္းပါပါတယ္။ အားလုံးပာာ အတူတကြ ျပႆနာမရွိဘဲ အခ်င္းခ်င္း ခ်ိတ္ဆက္လုပ္ေဆာင္ေနၾကတာျဖစ္ပါတယ္။ ကဲ ဒီေလာက္ဆုိရင္ေတာ့ OSI(7) Layers ဆုိတာဘာလဲဆုိတာ ရယ္ ဘယ္လုိဘယ္ပံုေပၚေပါက္လာတယ္ဆုိတာေတြကုိသိျမင္ေလာက္ျပီ ထင္ပါတယ္။

            OSI(7) Layers ရဲ႕ေပၚေပါက္လာပုံ နဲ႔ ဘာေၾကာင့္ ေပၚေပါက္လာရတယ္ဆုိတာေတြကုိ သိရျပီးမွေတာ့ အဲဒီ Layers (၇) ခုအေၾကာင္းကုိေကာ ပုိျပီးမသိခ်င္ၾကဘူူးလား။ သိခ်င္တယ္ဆုိရင္ေတာ့ ကၽြန္ေတာ္ တတ္နိုင္သေလာက္ၾကိဳးစားပမ္းစား ရွင္းျပ ထားတာေလးေတြကုိ ဆက္ျပီးဖတ္လုိက္ပါဦးေနာ္။

            အရင္ဆုံး Layers (၇) ခု ရဲ႕နာမည္ေလးေတြကုိ အရင္ေျပာျပမယ္ေနာ္ဟုတ္ျပီလား။ ေသေသခ်ာခ်ာေလးမွတ္သားထားမယ္ ဆုိရင္ေတာ့ပုိေကာင္းတာေပါ့ေနာ္။ Networking ကုိစိတ္၀င္စားတယ္ဆုိတဲ့ လူတစ္ေယာက္အေနနဲ႔ ့ဒီ OSI Layers (၇) ခုဟာ ဘာေတြလဲဆုိတာေလာက္ေတာ့အနည္းဆုံး သိထားသင့္တယ္ဗ်။ ကဲကဲ မွတ္ထားလုိက္ၾကေနာ္။

            (၇) Application Layer

            (၆) Presentation Layer

            (၅) Session Layer

            (၄) Transport Layer

            (၃) Network Layer

            (၂) Data Link Layer  နဲ႔

            (၁) Physical Layer  တုိ႔ပဲျဖစ္ပါတယ္။

            အဲ ကၽြန္ေတာ္က User နဲ႔အနီးစပ္ဆုံး Layer ကေနစျပီး ေရးလုိက္ေတာ့ Application Layer ကထိပ္ဆုံး ေရာက္သြားတယ္။ ဒါေပမယ့္ Network အေခၚအေ၀ၚ အရဆုိရင္ေတာ့ Application Layer ဟာ Layer (၇)ပါ။ ေအာက္ဆုံးက Physical Layer ကေတာ့ Layer(၁)ပါ။ အဲဒါေလးကုိလဲမေရာေထြးေစဘဲ ေသေသခ်ာခ်ာ မွတ္သားထားဖုိ႔ သတိေပးလုိက္ပါရေစေနာ္။ ေနာင္မွာ Layer နံပါတ္နဲ႔ ေျပာၾကေရးၾကတာေတြကုိ ေတြ႕တဲ့အခါ ရႈပ္ေထြးကုန္မွာ စုိးလုိ႔ပါ။ ကၽြန္ေတာ္ကေတာ့ User နဲ႔အနီးစပ္ဆုံး Layer ကေနပဲအစဥ္လုိက္ တစ္ခုစီ ရွင္းျပသြားပါမယ္။ ေသေသခ်ာခ်ာေလး ေခါင္းကုိေအးေအးေဆးေဆးထားျပီး ေတြးလုိက္ေငးလုိက္(အဲေလ) ေတြးလုိက္ဖတ္ လုိက္ နဲ႔ေတြးေတြးျပီး ဖတ္ျပီးသမွ်ကုိ နားလည္ေအာင္ စဥ္းစားပါေနာ္။ နားလည္သြားရင္လည္း တစ္ခါတည္းသာ မွတ္သားထားလုိက္ ပါေနာ္။ Networking နဲ႔ပတ္သက္တဲ့ ပစၥည္းကိရိယာအားလုံးဟာ OSI Layers(၇)ခု နဲ႔ကင္းကြာလုိ႔မရနိုင္ပါဘူး။ ဒီ OSI Layers(၇)ခု ေပၚမွာပဲအေျခခံျပီး အလုပ္လုပ္ၾကတာမုိ႔ Network သမားတစ္ေယာက္ အေနနဲ႔ ဒီ OSI Layers(၇)ခု အေၾကာင္းကုိ အနည္းဆုံး အၾကမ္းဖ်င္းေလာက္ေတာ့နားလည္ ထားသင့္ပါတယ္။

















အရင္ဆုံး Layer(၇)ခုတစ္ခုနဲ႔တစ္ခု ဆက္သြယ္ျပီး အလုပ္လုပ္ပုံကုိ အေပၚယံျမင္နုိင္ေအာင္ ပံုဆြဲျပလုိက္ပါတယ္။ ပုံထဲမွာ Computer A ကေန Computer B ကုိ Data Packet သုိ႔မဟုတ္ Message တစ္ခုပုိ႔လုိက္တယ္ေပါ့ဗ်ာ။ အဲဒီ Computer A ကပုိ႔လုိက္ တဲ့ Message ကုိ Computer B ဆီကိုတန္းတန္းမတ္မတ္ စိတ္ခ်ရတဲ့အေနအထား (Message အစစ္အမွန္အျပည္႕အစုံ) နဲ႔ ေရာက္ရွိ သြားနုိင္ဖုိ႔အတြက္ OSI Layers(၇)ခုလုံးဟာ တစ္ခုနဲ႔တစ္ခု အဆင့္ဆင့္ လက္ဆင့္ကမ္း ပူးတြဲေဆာင္ရြက္သြားၾကတာပါ။ အဲဒီလုိ တစ္ခုနဲ႔တစ္ခု အဆင့္ဆင့္ ပူးတြဲေဆာင္ရြက္ၾကပုံေၾကာင့္ OSI(7) Layers ကုိ တစ္ခါတစ္ရံမွာ Protocol Stacks လုိ႔လဲ ေခၚၾကပါတယ္။       

            ကဲကဲ အေပၚယံ ေလ့လာၾကည္႔ျပီးရင္ေတာ့ အေသးစိတ္ဆက္ျပီး ေလ့လာၾကတာေပါ့။ ပထမဦးဆုံးအေနနဲ႔ ေလ့လာရမွာက ေတာ့ Application Layer(Layer 7) ပါပဲ။ Application Layer ကဘာေတြလုပ္သလဲ။ေျပာရရင္ေတာ့ သူက Layer(၇)ခုလုံးမွာ User နဲ႔ အနီးစပ္ဆုံး Layer ပါပဲ။ User တစ္ေယာက္ Network Connection အသုံးျပဳျပီး Data ေတြကုိဟုိဘက္တျခား User တစ္ေယာက္ဆီကုိ ပုိ႔ဖုိ႔ ဒါမွမဟုတ္ ဟိုဘက္ကပုိ႔လုိက္တဲ့ Data ေတြကို ျပန္လည္ျမင္ေတြ႕ အသုံးခ်နုိင္ေအာင္လုိ႔ လုိအပ္တဲ့ Services ေတြ Application ေတြ အားလုံးဟာ ဒီ Layer မွာ အက်ံဳး၀င္ၾကပါတယ္။ ဥပမာ Electronic Mail တုိ႔၊ File Transfer တုိ႔၊ Remote Job Entry တုိ႔ စတဲ့ Service ေတြေပါ့။ ေျပာရရင္ Application Layer ဟာ User ေတြကုိ သူတုိ႔ ပုိ႔ခ်င္တဲ့ Data အမ်ဳိးအစားေတြအလုိက္ သူတုိ႔ပုိ႔ခ်င္တဲ့ ပံုစံအေနအထားအတုိင္း လြယ္လြယ္ကူကူနဲ႔ Network Connection ေပၚ တင္ေပးနိုင္ေအာင္ ကူညီပံ့ပုိးေပးပါတယ္။ Network Connection ကုိျဖတ္သန္းျပီး လက္ခံမယ့္သူဘက္အျခမ္းကုိ ေရာက္သြားရင္လည္း ဒီဘက္ကပုိ႔လုိက္တဲ့ Data အမ်ိဳးအစားကုိ လုိက္ျပီး လက္ခံသူအဆင္ေျပစြာနဲ႔ အဲဒီ Data ေတြကိုလက္ခံယူနုိင္ေအာင္၊ ျပန္လည္အသုံးခ်နုိင္ေအာင္ လုိအပ္တဲ့ Service ေတြနဲ႔ကူညီေပးျပန္ ပါတယ္။ ဘယ္လုိသေဘာမ်ိဳးလဲဆုိေတာ့ Interface တစ္ခုလုိသေဘာထားမယ္ဆုိရင္လည္းရပါတယ္။ကၽြန္ေတာ္တုိ႔အေနနဲ႔ကြန္ပ်ဴတာ ထဲမွာ စာစီစာရုိက္လုပ္ခ်င္တယ္။ဒါမွမဟုတ္ကၽြန္ေတာ္တုိ႔ေရးသားထားတဲ့စာေတြကုိ ကြန္ပ်ဴတာထဲမွာသိမ္းထားခ်င္တယ္ဆုိရင္ Microsoft Word တုိ႔၊ Adobe PageMaker တုိ႔ဟာ ကြန္ပ်ဴတာနဲ႔ ကၽြန္ေတာ္တုိ႔ၾကားကေန ကၽြန္ေတာ္တုိ႔ုကုိ ကူညီေပးတဲ့ Interface ေတြပဲျဖစ္ပါတယ္။ အဲဒီလုိပဲ ကြန္ပ်ဴတာေတြ တစ္လုံးနဲ႔တစ္လုံး ခ်ိတ္ဆက္ျပီး သတင္းအခ်က္အလက္ေတြဖလွယ္တဲ့အခါ ဟုိဘက္ဒီ ဘက္ Data ေတြ Transfer လုပ္ၾကတဲ့အခါ ေတြမွာလည္း User ေတြနဲ႔ Network Connection ေတြၾကား ေျပာရရင္ေတာ့ User နဲ႔ ေအာက္ပုိင္း Layer ေတြၾကားမွာ Application Layer ဟာ Interface တစ္ခုပါပဲ။ User ေတြပုိ႔ခ်င္တဲ့ သတင္းအခ်က္အလက္ေတြ၊ Data ေတြအားလုံးကုိ ေအာက္ပုိင္း Layers ေတြကနားလည္လက္ခံယူနုိင္ျပီး ဟုိဘက္တျခားကုိ ဆက္လက္ပုိ႔ေဆာင္ေပးနုိင္ဖုိ႔အတြက္ Application Layer ကၾကားကေန၀င္ေရာက္ျပီး Interface တစ္ခုအေနနဲ႔ ေဆာင္ရြက္ေပးတာျဖစ္ပါတယ္။ ဒီလုိေဆာင္ရြက္ေပးရာမွာ User ပုိ႔လႊတ္မယ့္ Data အမ်ိဳးအစားေပၚမူတည္ျပီး အသုံးျပဳတဲ့ Service ေတြဟာလည္း အမ်ိဳးမ်ိဳးရွိေနမွာျဖစ္ပါတယ္။ ဒါမွလည္း Data အမ်ိဳးအစားမ်ားစြာကုိ User ေတြအခက္အခဲမရွိဘဲ တစ္ဖက္နဲ႔တစ္ဖက္ Transfer လုပ္နိုင္မွာျဖစ္ပါတယ္။

            ဥပမာတစ္ခုနဲ႔ပုိရွင္းေအာင္ ေျပာရမယ္ဆုိရင္ေတာ့ ကၽြန္ေတာ္တုိ႔ တယ္လီဖုန္းဆက္သြယ္ေရးစနစ္နဲ႔ ဥပမာေပးခ်င္ပါတယ္။ အဲဒီမွာ တယ္လီဖုန္းအခြံ (Hand Phone မွာဆုိရင္ေတာ့ HandSet ေပါ့ေနာ္။) ဟာ Application Layer လုိ႔သေဘာထားေပးပါ။ အဲဒီဖုန္း ရဲ႕နံပါတ္ကေတာ့ Application Layer ကအသုံးျပဳတဲ့ Service ေပါ့ေနာ္။ Data Transfer လုပ္ခ်င္တယ္ဆုိရင္ Network Connection ရွိရမွာျဖစ္သလုိ အဲဒီဖုန္းဟာလည္း Service ၀င္ေနဖုိ႔ေတာ့လုိတာေပါ့ေနာ္။ ကဲဒါဆုိရင္ ကၽြန္ေတာ္တုိ႔ အဲဒီဖုန္းကုိ အသုံးျပဳျပီးေတာ့ ကၽြန္ေတာ္တုိ႔ရဲ႕သူငယ္ခ်င္းေတြ မိတ္ေဆြေတြဆီကုိ ဆက္သြယ္လုိ႔ ရနုိင္ျပီေပါ့။ အဲဒီမွာ ကၽြန္ေတာ္ေျပာခ်င္တာက ကၽြန္ေတာ္တုိ႔ ေခၚဆုိခ်င္တဲ့ Phone ရဲ႕အမ်ိဳးအစား(GSM လား၊ WCDMA လား၊ CDMA 450 လား ဒါမွမဟုတ္ ၾကိဳးဖုန္းလား) ဆုိတာေပၚမူတည္ျပီး ကၽြန္ေတာ္တုိ႔အသုံးျပဳေခၚဆုိရတဲ့ ဖုန္းနံပါတ္ေတြဟာမတူၾကဘူးမဟုတ္လား။ အင္းအဲဒီလုိပါပဲ Application Layer ဟာလည္း ကၽြန္ေတာ္တုိ႔အသုံးျပဳခ်င္တဲ့ Data အမ်ိဳးအစားအလုိက္ Services ေတြအမ်ားၾကီးေတြနဲ႔ ၾကားခံ Interface တစ္ခုအျဖစ္ကၽြန္ေတာ္တုိ႔နဲ႔ ေအာက္ပုိင္း Layer ေတြ ၾကားမွာ ကူညီလုပ္ေဆာင္ေပးပါတယ္။

            ကဲကဲ Application Layer တစ္ခုတည္းကုိရွင္းေနတာေတာ္ေတာ္ေတာင္ရွည္ေနျပီ။ ဒီေလာက္ဆုိရင္လည္း Application Layer အေၾကာင္းကုိ ေတာ္ေတာ္ေလးသေဘာေပါက္ေလာက္ျပီလုိ႔ ယူဆပါတယ္။ ဒါဆုိရင္ေအာက္ကေနာက္ထပ္ Layer တစ္ခုကုိ ထပ္ျပီးေလ့လာၾကတာေပါ့ေနာ္။ ေနာက္ထပ္ Layer တစ္ခုကဘာပါလိမ့္။ မွတ္မိတဲ့လူရွိရင္လည္း ေျပာလုိက္ၾကပါေနာ္။ ဘာတဲ့။ ဟုတ္ကဲ့။ Presentation Layer ပါ။ မွန္ပါတယ္။ အားလုံးမွန္ၾကပါတယ္။ ကဲကဲဆက္ျပီး ေလ့လာလုိက္ၾကရေအာင္ေနာ္။

            Presentation Layer(Layer 6) ကေတာ့ Application Layer ကေန စီးဆင္းလာတဲ့ Data ေတြကုိ Network Connection တစ္ေလွ်ာက္မွာ သြားလာနိုင္မယ့္ Format ပုံစံမ်ိဳးကုိ ေျပာင္းလဲေပးပါတယ္။ အဲဒါကုိ Encode လုပ္တယ္လုိ႔ေခၚပါတယ္။ ဒါ့အျပင္ Security ပုိင္းစိတ္ခ်ရေစရန္အတြက္လုိအပ္တဲ့ Encryption ေတြကုိလည္းလုပ္ေပးပါတယ္။ ျပီးေတာ့ပမာဏၾကီးမားစြာေဖာင္းပြေနတာ မ်ိဳးမျဖစ္ေအာင္ လုိအပ္တဲ့ Compression လုပ္ေဆာင္မႈအပိုင္းေလးေတြလည္း လုပ္ေဆာင္ေပးပါတယ္။ ဒါကပုိ႔တဲ့ဘက္ကေပါ့ေနာ္။ လက္ခံမယ့္ဘက္ေရာက္တဲ့အခါက်ေတာ့ ပုံမွန္အရြယ္ပမာဏျပန္ျဖစ္ေအာင္ မွန္မွန္ကန္ကန္ Decompression လုပ္ေပးပါတယ္။ မွန္ကန္ေသာ Encryption နည္းလမ္းမ်ားနဲ႔ Decryption ျပန္လုပ္ေပးပါတယ္။ ျပီးရင္ေတာ့ သင့္ေတာ္တဲ့ Format တစ္ခုနဲ႔ Data ေတြ ကုိျပန္ျပီး Decode လုပ္ေပးပါတယ္။ Application Layer ကနားလည္လက္ခံနုိင္မယ့္ Format မ်ိဳးနဲ႔ေပါ့။ ဒါမွလည္း Application Layer က User ေတြကုိ Data ေတြျပန္လည္ျပသေပးနုိင္မွာျဖစ္ပါတယ္။

            အင္းအဲဒီလုိလုပ္ေဆာင္တဲ့ေနရာမွာ Application Layer မွာတုန္းကလုိပဲနည္းစနစ္အမ်ိဳးမ်ိဴးရွိပါတယ္။ Encodeလုပ္တဲ့ေနရာ မွာနဲ႔ Decode လုပ္တဲ့ေနရာမွာဆုိ သုံးရတဲ့ Mechanism ေတြက ပုိ႔တဲ့ဘက္အျခမ္းမွာ နဲ႔လက္ခံမယ့္ဘက္အျခမ္းမွာေတာင္ တူခ်င္မွတူ ပါလိမ့္မယ္။ဘာလုိ႔လဲဆုိေတာ့ ဒီဘက္ Computer A(Sender) ကသုံးတဲ့ Character Set(ကြန္ပ်ဴတာကသုံးတဲ့ Data Representation စနစ္) နဲ႔ဟုိဘက္က Computer B(Receiver) ကသုံးတဲ့ Character Set နဲ႔က တူခ်င္မွတူမွာမုိ႔ပါ။ဥပမာ Computer A က ASCII Code (American Standard Code for Information Interchange) ကုိအသုံးျပဳျပီး သူ႔ရဲ႕စက္မွာ Data ေတြကုိသိမ္းေပမယ့္ Computer B ကေတာ့ EBCDIC (Extended Binary Coded Decimal Interchange Code) ကုိသုံးခ်င္သုံးပါလိမ့္မယ္။ဒါဆုိရင္ Presentation Layer ဟာပုိ႔တဲ့ဘက္ Sender ဘက္မွာ ASCII Coded Data ေတြကုိ Network Connection ေပၚမွာသြားလာမယ့္ Format မ်ိဳးအျဖစ္ေျပာင္း လဲေပးရျပီးလက္ခံမယ့္ဘက္မွာေတာ့ Network Connection ေပၚကလာတဲ့ Data ေတြကုိ EBCDIC Coded Data ေတြအျဖစ္ျပန္လည္ ေျပာင္းလဲေပးရပါတယ္။ ဒါဟာ Presentation Layer ရဲ႕အဓိကလုပ္ေဆာင္ခ်က္ပါပဲ။

            ေနာက္ပုိ္င္း Network Connection ေတြေပၚကေန Data ေတြကုိ အျပန္အလွန္ Transfer လုပ္ၾကရာမွာ Security ပုိင္းဟာ လည္းစဥ္းစားစရာ အခ်က္တစခ်က္ ျဖစ္လာခဲ့ပါတယ္။ ဒါေၾကာင့္ Data ေတြကုိ Transfer လုပ္တဲ့ေနရာမွာ ဟုိးအရင္လုိဒီအတုိ္င္းပုံမွန္ အတုိင္း ေပးပုိ႔ရာကေန Encryption လုပ္ျပီးမွသာ Transfer လုပ္လာၾကပါတယ္။ အဲဒီလုိ Encryption လုပ္တဲ့ေနရာမွာေတာ့ဟုိဘက္ နဲ႔ဒီဘက္ႏွစ္ဘက္စလုံးမွာတူညီတဲ့လုိက္ဖက္ညီတဲ့စနစ္တစ္ခုကုိပဲသုံးၾကပါတယ္။ Encoding နဲ႔ Decoding တုိ႔မွာလုိဟုိဘက္ဒီဘက္ကြဲ ျပားတဲ့ Mechanism မရွိေတာ့ဘူးလုိ႔ ဆုိခ်င္တာပါ။အဲဒီလို Encryption Decryption လုပ္ေဆာင္ခ်က္ေတြဟာလည္း Presentation Layer မွာပဲလုပ္ေဆာင္ၾကတာပါ။ ျပီးေတာ့ Network Connection ေပၚကေန Data ေတြ Transfer လုပ္ၾကရာမွာ ကၽြန္ေတာ္တုိ႔အေန နဲ႔ Connection Bandwidth ကုိလဲမေမ့ထားသင့္ပါဘူး။ ဒီေတာ့ Data ေတြ ဟုိဘက္ပုိ႔ခ်င္တဲ့ေနရာဆီကုိ ျမန္ျမန္ေရာက္သြားဖုိ႔ဆုိတာ ဟာ Data ရဲ႕Size ပမာဏေပၚမူတည္ပါတယ္။ Size ေသးေလပုိျမန္ေလပဲေပါ့။ ဒီေတာ့ Data ေတြကုိပုံမွန္ Size အတိုင္းပုိ႔မယ့္အစား Compression လုပ္ျပီးမွပဲ ပုိ႔ၾကပါတယ္။အဲဒီလုိ Compression လုပ္ထားတဲ့ Data ကုိဟုိဘက္ Destination (Computer B)ဆီေရာက္ တဲ့အခါ Decompression လုပ္ျပီးပုံမွန္ Size ျပန္ရေအာင္လုပ္ပါတယ္။ ဒီေနရာမွာေတာ့ Compression လုပ္တဲ့နည္းစနစ္နဲ႔ Decompressionလုပ္တဲ့နည္းစနစ္တုိ႔တူညီမွသာမွန္ကန္တဲ့ Data ကုိ မွန္ကန္တဲ့ Original Size အေနအထားျပန္ရမွာပါ။ အဲဒီလုိ Data Compression ေတြ Decompression ေတြအားလုံးဟာလည္း Presentation Layer မွာလုပ္ေဆာင္ၾကပါတယ္။

            Session Layer(Layer 5) ကေတာ့ Data ေတြ Transfer လုပ္ဖုိ႔အတြက္ဟုိဘက္နဲ႔ဒီဘက္ၾကားထဲမွာ Connection တစ္ခုကုိ အစျပဳျဖစ္ထြန္းေစပါတယ္။ Logical Connection ေပါ့ေနာ္။ျပီးရင္အဲဒီ Connection ေလးကုိ Data ေတြ Transferလုပ္တာမျပီးေသးခင္ အထိ ထိန္းသိမ္းထားပါတယ္။ Presentation Layer ကေနတဆင့္လက္ခံရရွိလာတဲ့ Data ေတြကုိလည္းအဲဒီ Connection ေပၚမွာ အဆင္ေျပေျပသြားနုိင္ေအာင္သင့္ေတာ္တဲ့အပုိင္းေလးေတြအျဖစ္ပုိင္းေပးတာကုိလည္းလုပ္ေဆာင္ပါေသးတယ္။အဲဒီလုိအပုိင္းေလးေတြ ပုိင္းတဲ့ေနရာမွာအပုိငး္ေလးေတြရဲ႕ Size ပမာဏဟာရရွိနုိင္မယ့္ Network Connection ေပၚမွာမူတည္ပါတယ္။ အေပၚမွာေျပာခဲ့တဲ့ Logical Connection ဆုိတာေလ။ ဒါေပမယ့္ Connection ရဲ႕ Speed နဲ႔ Bandwidth ေပၚမွာမူတည္တာေတာ့မဟုတ္ပါဘူး။ အဲဒီ Connection ရဲ႕အသုံးျပဳထားတဲ့နည္းပညာေပၚမွာသာမူတည္တာပါ။ အပုိင္းတစ္ပုိင္းမွာ ဘယ္ေလာက္ Bytes ရွိမယ္ဆုိတာဟာအဲဒီ Connection တစ္ေလွ်ာက္လုံးကၾကားခံ မီဒီယာၾကိဳးေတြ၊ Network Card ေတြ၊ Swithch ေတြ၊ Router ေတြ နဲ႔ Protocols ေတြေပၚမွာ သာမူတည္မွာပါ။ ဆုိလုိတာက Ethernet လား၊ ISDN လား၊ ATM လား ဆုိတာေတြေပါ့။ ဒါေတြအားလုံးကုိ Session Layer ကေလ့လာ မွတ္သားျပီး Computer A နဲ႔ Computer B ၾကားမွာ Logical Connection ေလးတစ္ခုကုိ စတင္ခ်ိတ္ဆက္လုိက္ပါတယ္။ အဲဒီ Connection တစ္ေလွ်ာက္လုံးမွာဘယ္ေလာက္ Size ပမာဏရွိတဲ့ Data Packet ေတြသြားရင္အဆင္ေျပမယ္ဆုိတာကုိ သတ္မွတ္ျပီး Decision ခ်ပါတယ္။ အဲဒီ Decision နဲ႔အညီ Data ေတြကုိ အပိုင္းေလးေတြပိုင္းပါတယ္။ အဲဒီလုိ ပုိင္းတဲ့အခါအပုိင္းေလးေတြတုိင္းမွာ လုိအပ္တဲ့ Information ေလးေတြကုိလည္း တခါတည္းေပါင္းထည္႕ေပးပါတယ္။ ဒီအပုိင္းေလးဟာ နံပါတ္ဘယ္ေလာက္ျဖစ္ပါတယ္ ဆုိတာမ်ိဳးေပါ့။ ဒါမွလည္းဟုိဘက္လက္ခံမယ့္ Receiver ဘက္မွာ ျပန္ျပီးစုစည္းတဲ့အခါအစီအစဥ္အလုိက္မွန္မွန္ကန္ကန္ စုစည္းနိုင္ ေတာ့မွာေပါ့။ အဲဒီလုိပုိင္းထားတဲ့ Data အပုိင္းေလးေတြကုိ ေအာက္ပုိင္း Layer ေတြဆီကုိ ပုိ႔ေဆာင္လက္ဆင့္ကမ္းေပးျပီး ဟုိဘက္လုိ ခ်င္တဲ့ ေနရာဆီကုိ ေရာက္ေအာင္ဆက္လက္ပုိ႔ေဆာင္ေစပါတယ္။ ဟုိဘက္ Session Layer ကလည္းလက္ခံရရွိလာတဲ့ Data အပုိင္း ေလးေတြကုိ နဂုိ Data ျပန္ရေအာင္အစီအစဥ္အလုိက္ျပန္လည္ထုပ္ပုိးပါတယ္။ နဂုိမူရင္း Data ကုိရရွိျပီဆုိေတာ့မွ Presentation Layer ကုိျပန္လည္ပုိ႔ေဆာင္ေပးပါတယ္။ အဲဒီလုိ Data ကုိအပုိင္းေလးေတြပုိင္းတာ၊ ျပန္လည္စုစည္းတာဟာ Session Layer ရဲ႕အဓိက လုပ္ေဆာင္မႈျဖစ္ပါတယ္။ Logical Connection တစ္ခုအစျပဳတည္ေဆာက္တာဟာလည္းအဲဒီလုိ Data ေတြပုိင္းတဲ့လုပ္ေဆာင္မႈကုိ ေထာက္ပ့ံမႈရေစဖုိ႔အတြက္ပဲျဖစ္ပါတယ္။ Logical Connection တစ္ခုတည္ေဆာက္လုိက္ျခင္းျဖင့္ Session Layer ဟာ တကယ့္ Network Connection ေပၚမွာ Data Transfer အဆင္ေျပေျပလုပ္လုိ႔ရနုိင္မယ့္ အေျခအေနတစ္ခုကုိ တိတိက်က် သိရွိရေအာင္ စုံစမ္း လုိက္ျခင္းပဲျဖစ္ပါတယ္။ ဒါမွလည္း Data ေတြကုိ ပုိင္းတဲ့အခါမွာ Network Connection ေပၚမွာ ရနိုင္မယ့္အေျခအေန၊ Services ေတြ နဲ႔ အဆင္ေျပေအာင္ေကာင္းမြန္စြာ ပုိင္းထုတ္နုိင္မွာျဖစ္ပါတယ္။ ကဲဒီေလာက္ဆုိရင္ေတာ့ Session Layer အေၾကာင္းကုိ ေတြးျမင္ သေဘာေပါက္ေလာက္ျပီလုိ႔ထင္ပါတယ္။

            Transport Layer(Layer 4) ကေတာ့ကၽြန္ေတာ္တုိ႔ Data ေတြအျပန္အလွန္ဖလွယ္ၾကရာမွာစိတ္ခ်ရတဲ့အေနအထားမ်ိဳးနဲ႔ Transfer လုပ္နုိင္ေအာင္လုပ္ေဆာင္ေပးပါတယ္။ဘယ္လုိလုပ္ေဆာင္ေပးလဲဆုိေတာ့ခုနက Session Layer ကေနအပုိင္းေလးေတြ ပုိင္းျပီးလက္ဆင့္ကမ္းေပးလုိက္တဲ့Data အပုိုင္းေလးေတြကုိ (Data Packet ေလးေတြေပါ့ဗ်ာ။) သူက Additional Information ေလး ေတြထပ္ထည္႕ေပးလုိက္ပါတယ္။ဘာ Information ေလးေတြလဲဆုိေတာ့ ပုိျပီးတိက်တဲ့ Packet Information ေလးေတြ ဆိုလုိတာက ဒီ Packet မွာ Data ကဘယ္ေလာက္ Bytes ပါတယ္၊ တျခား Information ေတြလည္း ဘယ္ Information ကျဖင့္ဘယ္ေလာက္ Bytes ပါတယ္ စသျဖင့္ေပါ့ဗ်ာ။ အဲဒီလုိ Information ေလးေတြအျပင္ Packet တုိင္းမွာ Error Control ေလးေတြလည္းထပ္ထည္႕ေပး ေသးတယ္ဗ်။ အဲဒီ Error Control ေလးေတြကေတာ့ နည္းစနစ္အမ်ိဳးမ်ိဳးနဲ႔ အမ်ားၾကီးရွိပါတယ္။ သူတုိ႔အားလုံးကဒီ Packet ကုိလမ္းမွာ တျခားလူတစ္ေယာက္ကခုိးယူျပီး Data ေတြျပင္ေပးလုိက္သလား၊ ဒါမွမဟုတ္ Connection တစ္ေနရာမွာခ်ိဳ႕ယြင္းခ်က္ေတြရွိလုိ႔ Data ေတြတစ္စိတ္တစ္ပုိင္းမ်ား Lost ျဖစ္ေနသလားဆုိတာသိနုိင္တဲ့ သခၤ်ာဆုိင္ရာတြက္ခ်က္မႈ ပုံစံမ်ိဳးေလးေတြပါ။ တြက္ခ်က္ပုံနည္းလမ္းကုိ လုိက္ျပီးအမ်ိဳးအမည္အမ်ားၾကီးရွိပါတယ္။ဒီေတာ့ကာ ဒီ Error Control ကုိၾကည္႕ျပီးေတာ့ Receiver ဘက္မွာ Data ဟာ Original Data ဟုတ္မဟုတ္ဆုိတာကုိ ခ်က္ခ်င္းသိနိုင္တာေပါ့။တကယ္လုိ႔လက္ခံရရွိထားတဲ့ Packet ဟာ Original Packet မဟုတ္ဘူးဆုိရင္လဲ အဲဒီ Packet တစ္ခုတည္းကုိခ်က္ခ်င္း Sender ဘက္က Transport Layer ကထပ္ျပီးပုိ႔ေပးပါတယ္။ဒါေၾကာင့္ Transport Layer ဟာ Data Transfer အစမွအဆုံးတုိင္ Data Packet တစ္ခုခ်င္းစီအတုိင္းအတာအထိစိတ္ခ်ရတဲ့ Data Transferring ျဖစ္ေစဖုိ႔အတြက္ တာ၀န္ယူလုပ္ေဆာင္ေပးပါတယ္။ ဒါ့အျပင္ Transport Layer ေနာက္ထပ္လုပ္ေဆာင္ေပးတာကေတာ့ Data Transfer Speed ကုိ Control လုပ္ေပးတာပါပဲ။ Data Packets ေတြကုိ Network Connection ေပၚကုိတင္ပုိ႔ေပးတဲ့အခါမွာ ဟုိဘက္က လက္ခံမယ့္ Receiver ဘက္က Switch ေတြ၊ Network Card ေတြကလက္ခံနုိင္မယ့္ Speed အတုိင္းလုိက္ေလ်ာညီေထြျဖစ္ေအာင္ ထိန္းခ်ဳပ္ေပး ပါတယ္။ဒါေပမယ့္ အဲဒီ Connection က Direct Connection (Sender နဲ႔ Receiver တုိ႔ဟာ Network တစ္ခုတည္းအတြင္းမွာပဲ ရွိေနရင္လုိ႔ဆုိလုိတာပါ) ဆုိရင္ေတာ့ ဒီကိစၥဟာ မသိသာပါဘူး။အဲဒါေပမယ့္ Indirect Connection (Sender နဲ႔ Receiver ၾကားမွာ Network ေတြအမ်ားၾကီး ျခားရင္ျခားေနမယ္၊ဒါမွမဟုတ္ Internet ေပၚကျဖတ္သြားရတာမ်ိဳးလည္းျဖစ္ရင္ျဖစ္ေနမယ္၊ဆုိလုိတာက ေတာ့ Sender ကေန Receiver ဆီကုိသြားမယ့္ Data Packets ေတြဟာၾကားမွာ Router တုိ႔ Gateway တုိ႔လုိ High Performance Networking Device ေတြအဆင့္ဆင့္ကုိ လက္ဆင့္ကမ္းျဖတ္ေက်ာ္သြားရတာမ်ိဳးကုိေျပာတာပါ။) ဆုိရင္ေတာ့ Transport Layer ရဲ႕ လုပ္ေဆာင္ခ်က္ကအေရးပါပါတယ္။သူဟာလမ္းတစ္ေလွ်ာက္လုံးမွာ Data Packets ေတြကုိဘယ္ေနရာကေနဘယ္ေနရာ အတုိင္းအတာအထိကုိေတာ့ဘယ္ေလာက္ Speed နဲ႔သြားရမယ္၊ဘယ္ေနရာက်ရင္ေတာ့ဘယ္ေလာက္ Speed န႔ဲသြားရမယ္ဆုိတာကုိ မွတ္သားေလ့လာဆုံျဖတ္ျပီးေတာ့ ထိန္းခ်ဳပ္ေပးပါတယ္။ ဒါကုိ Flow Control လုပ္ေဆာင္တယ္လုိ႔ေခၚပါတယ္။ဒါမွသာ Data ေတြဟာ ၾကားထဲမွာ Bottle Neck ျပႆနာလုိ တစ္ခုနဲ႔တစ္ခု အထပ္ထပ္ ထပ္မိျပီး ေပ်ာက္ဆုံးပ်က္ဆီးသြားတာတုိ႔၊Packetsတစ္ခုနဲ႔တစ္ခုၾကား Time Limits တန္ဖုိးတစ္ခုေလာက္အထိကြာေ၀းအဆက္ျပတ္သြားတာတုိ႔ မျဖစ္နုိင္ေတာ့ဘူးေပါ့ေနာ္။ ဒါေၾကာင့္ Transport Layer ရဲ႕ လုပ္ေဆာင္မႈေတြကိုအႏွစ္ခ်ဳပ္ျပီး Reliable End-to-End Error Recovery and Flow Control လုပ္ေပးနုိင္တယ္လုိ႔ေျပာနုိင္ပါတယ္။ ဒီေလာက္ဆုိရင္ေတာ့ Transport Layer အေၾကာင္းကုိ ေတာ္ေတာ္ေလး သေဘာေပါက္ေလာက္ျပီလို႔ထင္ပါတယ္။

            ကဲ ကၽြန္ေတာ္တုိ႔ ေနာက္ထပ္ Layer တစ္ခုကုိ ထပ္ျပီး ေလ့လာၾကည္႕ရေအာင္။ ကၽြန္ေတာ္တို႔အခုေလ့လာမယ့္ Layer ကေတာ့ Network Layer (Layer 3) ပဲျဖစ္ပါတယ္။ အရင္ဆုံးကၽြန္ေတာ္တုိ႔တစ္ေတြ Network Layer ကဘာလဲဆုိတာကစျပီးစဥ္းစား ရေအာင္။ ျမန္မာလုိပဲေတြးၾကည္႕ဗ်ာ။ Network ဆုိတာကြန္ယက္ေတြ၊ ကြန္ပ်ဴတာေတြ တစ္လုံးနဲ႔တစ္လုံးခ်ိတ္ဆက္ထားတယ္ဆုိတဲ့ အဓိပၸယ္ဟုုတ္လား။ အဲဒီလုိပဲ Network Layer ဟာလည္း Sender နဲ႔ Receiver ၾကားမွာ Connection အဓိကခ်ိတ္ဆက္ေပးတဲ့အလုပ္ ကုိလုပ္ေဆာင္ပါတယ္။ ဘယ္လုိ လုပ္ေဆာင္ေပးတာလဲ။ ဟုတ္ကဲ့။ မတူညီတဲ့ Network ေတြၾကားမွာ ခ်ိတ္ဆက္ေပးတာပါ။ (ဥပမာ Routers တုိ႔ Gateway တုိ႔လုိေပါ့။) Network Layer ရဲ႕လုပ္ေဆာင္မႈဟာလည္းအေပၚက Transport Layer ရဲ႕ Flow Control လုပ္ေဆာင္မႈလုိပဲ Direct Connection ေတြမွာေတာ့ သိပ္မသိသာ သိပ္အေရးမပါလွပါဘူး။ But ဒါေပမယ့္ေပါ့ေနာ္ Indirect Connection ေတြမွာေတာ့ သိပ္ျပီးအေရးပါလွပါတယ္။ မတူညီတဲ့ Network ဆုိတာမ်ိဳးကဘာကုိေျပာတာလဲဆုိေတာ့ႏွစ္မ်ိဳးရွိပါတယ္။ ပထမ တစ္မ်ိဳးက Network Architecture တူျပီး Network Address ေတြ Class မတူတာ Subnet မတူတာမ်ိဳးပါ။ ေနာက္တစ္မ်ိဳးက Network Architecture ကုိမတူတာပါ။ ပထမတစ္မ်ိဳးမွာ အရင္ၾကည္႕ရေအာင္။ ကၽြန္ေတာ္တုိ႔ေတြအေနနဲ႔ IP Address ေတြ အေၾကာင္းကုိ အနည္းငယ္ သိထားဖုိ႔ေတာ့လုိပါမယ္။ IP Address ဆုိိတာက TCP/IP Protocol ကုိသံုးတဲ့ Network ေတြမွာ ကြန္ပ်ဴတာေတြကုိ သတ္မွတ္ထားတဲ့ Logical Address ေတြပါ။ တစ္လုံးနဲ႔တစ္လုံး လုံး၀တူလုိ႔မရပါဘူး။ အဲဒီ IP Address ေတြမွာ အဓိက အသုံးျပဳတာ Class (၃) မ်ိဳး ရွိပါတယ္။ Class (၁)ခုအတြင္းမွာ အက်ံဳး၀င္တဲ့ Address ေတြနဲ႔တျခား Class ေတြမွာ အက်ံဳး၀င္တဲ့ Address ေတြဟာ Network မတူပါဘူး။ Class တစ္ခုအတြင္းမွာ အက်ံဳး၀င္ေနတဲ့ Address ေတြကုိေတာင္ သီးျခားအစု လုိက္အစုလုိက္ Network ေလးေတြျပန္ခြဲႏုိင္ပါေသးတယ္။ Subnet ကြဲတယ္လုိ႔လဲေျပာနုိင္ပါတယ္။(အေသးစိတ္ကုိေတာ့ IP Subnetting မွာေလ့လာလုိက္ပါေနာ္။ကၽြန္ေတာ္ကေတာ့ လုိသေလာက္ပဲေျပာသြားပါမယ္။) အဲဒီေတာ့ အဲဒီလုိမတူညီၾကတဲ့ Network ေတြဟာ Cable ေတြနဲ႔ဆက္သြယ္ထားေပမယ့္ တစ္ခုနဲ႔တစ္ခု Connection မရနုိင္ပါဘူး။ Data Transfer မလုပ္နုိင္ဘူးေပါ့ဗ်ာ။ အဲဒီလုိ အခါမ်ိဳးမွာ Network Layer က၀င္ျပီးေတာ့ သူတုိ႔ေတြၾကားမွာ ခ်ိတ္ဆက္ေပးပါတယ္။ ဒါမွလဲ သူတုိ႔အခ်င္းခ်င္း Data Transfer လုပ္လုိ႔ရသြားပါတယ္။ အဲဒါကုိကၽြန္ေတာ္တုိ႔အေနန႔ဲ Routing လုပ္တယ္လုိ႔ေခၚပါတယ္။ ေနာက္တစ္မ်ိဳးျဖစ္တဲ့ Network Architecture ကုိမတူတဲ့ Network ေတြၾကားမွာလည္း Network Layer ဟာသူတုိ႔အခ်င္းခ်င္းၾကားမွာ၀င္ေရာက္ခ်ိတ္ဆက္ေပးပါတယ္။ Data Transfer လုပ္လုိ႔ရနုိင္ေအာင္လုိ႔ပါ။ အဲဒီမွာ တစ္ခုေတာ့ ေျပာခ်င္ပါတယ္။ သူက Connection ရေအာင္ပဲလုပ္ေပးတာပါ။ အဓိက ကေတာ့ Data Packet ေတြကုိ ပုိ႔နုိင္ေအာင္ လက္ခံနုိင္ေအာင္ သူကၾကား၀င္တံတားထုိးေပးတဲ့သေဘာမ်ိဳးပါပဲ။ ေျပာရရင္ေတာ့ Only for Routing and Data Transmission ပါပဲ။ တျခားလုိအပ္တဲ့ Data ကုိ Processing လုပ္နုိင္ေအာင္ နားလည္ေအာင္ လုပ္ေဆာင္ေပး ရတာေတြကေတာ့ အေပၚပုိင္း Layer ေတြရဲ႕ တာ၀န္ပါ။သူနဲ႔မဆုိင္ပါဘူး။

            Network Layer ရဲ႕အေရးပါတဲ့ေနာက္ထပ္လုပ္ေဆာင္မႈတစ္ခုရွိပါေသးတယ္။ ခုနက ကၽြန္ေတာ္ေျပာခဲ့သလုိပဲမတူညီတဲ့ Network ေတြၾကားမွာ ၀င္ေရာက္တံတားထုိးေပးတဲ့သေဘာ Network Layer ကလုပ္ေဆာင္ပါတယ္။ အဲဒီလုိ လုပ္ေဆာင္တဲ့ေနရာမွာ တံတားတစ္စင္းပဲထုိးလုိ႔ရတယ္။ တျခားေနရာကသြားစရာလမ္းမရွိေတာ့ဘူး။ဒီတစ္လမ္းပဲရွိေတာ့တယ္ဆုိရင္ေတာ့သိပ္မသိသာပါဘူး။ ဒါေပမယ့္ တျခားသြားလုိ႔ရတဲ့လမ္းေတြလည္းရွိတယ္။ အဲဒီလမ္းေတြဟာလည္း Data Packets ေတြကုိ Receiver (Destination )ဆီကုိ ေရာက္ေစနုိင္တယ္ဆုိရင္ အဲဒီလမ္းေတြမွာလည္းတံတားေတြထုိး လိုက္ျပီး Data Packets ေတြကုိ တစ္လမ္းတည္းက တစ္စုတစ္ေ၀းတည္းမသြားေစေတာ့ဘဲ အဖဲြ႕ေတြခြဲျပီး တျခားလမ္းေတြကပါျဖန္႔ျပီးသြားခုိင္းပါတယ္။ ဒါဟာ Data Transfer Speed ကုိအမ်ားၾကီး တုိးတက္ေစပါတယ္။ အဲဒါမ်ိဳးဟာ Internet လုိအမ်ားသုံး Network ၾကီးေတြ (လမ္းေၾကာင္းေတြအမ်ားၾကီးအျပန္အလွန္ခ်ိတ္ဆက္ထားၾကတဲ့ Network အစုအေ၀းေတြမွာေပါ့။) ေပၚကေန Data Transfer လုပ္တဲ့အခါမွာ သိပ္အေရးပါပါတယ္။ ဒါေပမယ့္အဲဒီလုိ လမ္းေၾကာင္းေတြခြဲတဲ့အခါမွာ Network Layer ဟာေရာက္ရင္ျပီးေရာဆုိျပီးေတာ့ ျပီးျပီးေရာပုိ႔တာမ်ိဳးေတာ့မဟုတ္ပါဘူး။ အရင္ဆုံး Sender ဘက္ Network Layer ကသူနဲ႔ခ်ိတ္ဆက္ထားသမွ် Network လမ္းေၾကာင္းေတြတစ္ေလွ်ာက္ Message တစ္ခုစီကုိ Time Limit တစ္ခုနဲ႔ ခ်ိန္ျပီးပုိ႔လုိက္ပါတယ္။ အဲဒီ Message ေတြထဲကမွ Time Limit မကုန္မီေရာက္လာတဲ့ Message ေတြကုိေတာ့ လာရာလမ္းအတုိင္း Receiver ဘက္ Network Layer ကျပန္ျပီး အေၾကာင္းၾကားေစပါတယ္။ Acknowledgement ျပန္တယ္ေပါ့ဗ်ာ။ Time Limit ကုန္တဲ့ အထိ Receiver ဘက္ကုိမေရာက္ေသးတဲ့ Message ေတြကုိေတာ့ Time Limit ကုန္ျပီဆုိတာနဲ႔ သက္ဆုိင္ရာ ေရာက္ရွိေနတဲ့ Network ကသူ႔ဘာသာ Auto ဖ်က္ခ်လုိက္ပါတယ္။ Sender ဘက္ကုိလည္း ျပန္အေၾကာင္းၾကားမႈ ေရာက္မလာေတာ့ဘူးေပါ့။ အဲဲဒီလုိ ျဖစ္ျပီဆုိေတာ့မွ ခုနက အေၾကာင္းၾကားမႈျပန္ရတဲ့လမ္းေၾကာင္းေတြအတိုင္း Network Layer ကလုိက္ျပီး တံတားထုိး (Route လုပ္တယ္ေပါ့ဗ်ာ) ပါတယ္။ ျပီးတာနဲ႔ Data Transfer လုပ္နုိင္ဖုိ႔ ေအာက္ပုိင္း Layer ေတြဆီ လက္ဆင့္ကမ္းပုိ႔ေဆာင္ပါတယ္။ ကဲဒီေလာက္ဆုိရင္ Network Layer ရဲ႕လုပ္ေဆာင္ပုံေတြကုိ နားလည္ သေဘာေပါက္ေလာက္ျပီ လို႔ထင္ပါတယ္။

            ကဲေနာက္တစ္ဆင့္ကေတာ့ Data Link Layer (Layer 2) ပါ။ Data Link Layer ရဲ႕အဓိကလုပ္ေဆာင္ခ်က္ကေတာ့ အေပၚ Layer ေတြဆီကလက္ခံရရွိလာတဲ့ Data Packet ေလးေတြကို Network Connection တစ္ေလွ်ာက္မွာ သြားလာနုိင္မယ့္ Data Frame အျဖစ္ေျပာင္းလဲေပးပါတယ္။ အဲဒီ Data Frame ေပၚမွာလုိအပ္တဲ့ Information ေတြလည္းထပ္ထည္႕ပါတယ္။ ျပီးေတာ့ Data ေတြ ကုိလည္း ေအာက္က Physical Layer ကလက္ခံနားလည္ျပီး Network Connection ေပၚတင္ပုိ႔ေပးနုိင္ေအာင္လုိ႔ Raw Bits ေတြအျဖစ္ေျပာင္းလဲေပးပါတယ္။ Data Link Layer ရဲ႕အဓိကေနာက္ထပ္လုပ္ ေဆာင္ခ်က္ တစ္ခုကေတာ့ Sender နဲ႔အနီးစပ္ဆုံး လက္ခံမယ့္ Receiver( Destination Receiver အစစ္မဟုတ္ေသးတဲ့ၾကားကလက္ဆင့္ကမ္းေပးမယ့္သူကုိေျပာတာပါ) ၾကားထဲက Data သြားမယ့္ Network Connection ဟာ Clear ျဖစ္ေနလား၊ Data သြားမယ္ဆုိိရင္ Collision ျဖစ္နုိင္လားဆုိတာေတြကို ေလ့လာစစ္ေဆးျပီး စိတ္ခ်ရျပီဆုိမွ Data ေတြကိုပုိ႔လႊတ္ေစပါတယ္။ ေနာက္တစ္ပုိင္းျဖစ္တဲ့ ခုနကလက္ခံခဲ့တဲ့ Receiver နဲ႔ ေနာက္တစ္ဆင့္ Receiver ၾကားမွာလည္းအဲဒီလုိစစ္ေဆးျပီး ေစာင့္သင့္ရင္ေစာင့္ျပီး စိတ္ခ်ရမွ ပုိ႔ေစပါတယ္။အဲဒီလုိလုပ္တာဟာ တကယ့္ Destination Receiver အစစ္ဆီကုိ ေရာက္တဲ့အထိပါပဲ။ အဲဒီလုိစစ္ေဆးတဲ့ေနရာမွာ ၾကားခံ Network ရဲ႕သုံးထားတဲ့နည္းပညာေပၚကုိ မူတည္ျပီး စစ္ေဆးပုံစစ္ေဆးနည္းေတြကေတာ့အမ်ားၾကီးရွိပါတယ္။ Data Link Layer ကုိထပ္ျပီး (၂)ပုိင္း ပုိင္းနုိင္ပါေသးတယ္။ Logical Link Control (LLC) ဆုိတဲ့ Sublayer နဲ႔ Media Access Control (MAC) ဆိုတဲ့ Sublayer တုိ႔ပဲျဖစ္ပါတယ္။ Logical Link Control (LLC) ကေတာ့ ခုနကေျပာခဲ့တဲ့ Collision မျဖစ္ေအာင္ေစာင့္ထိန္းေပးတဲ့ကိစၥမွာ အရင္ဆုံး Data ေတြကုိ မပုိ႔ခင္ Nodes နွစ္ခုၾကားမွာ (Sender နဲ႔အနီးဆုံး Receiver ပဲထားပါေတာ့ဗ်ာ) Cable ေတြ Card ေတြကုိ Connection ရေအာင္ လုပ္ပါတယ္။ Logical Link ေလးေပါ့ဗ်ာ။အဲဒီ Link ေပၚမွာ သြားနုိင္ေအာင္ Data ေတြကုိ အဆင္သင့္ျဖစ္ေအာင္ျပင္ဆင္ေပးပါတယ္။ Raw Bits ေတြျဖစ္လာေအာင္ေပါ့။ ဘယ္အပုိင္းက အရင္သြားရမယ္။ ဘယ္အပုိင္းက ေနာက္ကလုိက္မယ္ဆုိတာကုိလဲ ဆုံးျဖတ္ေပးပါတယ္။ လက္ခံမယ့္ဘက္မွာလည္း Data ေတြကို အေပၚ Layer ေတြဆီ တင္ေပးနိုင္ဖုိ႔အဆင္သင့္အေနအထားျဖစ္ေအာင္ ျပန္ျပဳျပင္ပါတယ္။ Data Frame ေတြကုိလည္း အစီအစဥ္တက်ျပန္ျပီးစီရတာေပါ့ဗ်ာ။ အဲေနာက္တစ္လႊာျဖစ္တဲ့ Media Access Control ကေတာ့ LLC Sublayer နဲ႔ Physical Layer ၾကားမွာ Interface ပုံစံမ်ိဳးလုပ္ေပးပါတယ္ LLC Sublayer ဆီက Data Frame ေတြကုိ တစ္ခုခ်င္းစီရယူျပီး Data Collision ျဖစ္နုိင္မျဖစ္နုိင္ေစာင့္ၾကည္႕ကာ မျဖစ္နုိင္ဘူးဆုိရင္ Transmit လုပ္ပါတယ္။ Collision ျဖစ္နုိင္တယ္ဆုိိရင္ယာယီေစာင့္ေန ပါေသးတယ္။ ျပီးေတာ့လည္း Data Frame တစ္ခုျပီးမွတစ္ခုယူျပီး Transmit လုပ္တာပါ။ လက္ခံမယ့္ဘက္ကေတာ့ တစ္ခုခ်င္းစီလက္ခံစစ္ေဆးျပီးပါလာတဲ့ Information ေတြနဲ႔ကုိက္ညီတယ္ဆုိမွ LLC Sublayer ကုိလက္ဆင့္ကမ္းေပးပါတယ္။ အကယ္၍ ပါလာတဲ့ Information ေတြနဲ႔ မကုိက္ညီဘူးဆုိရင္ အဲဒီ Frame ကုိထပ္ပုိ႔ခုိင္းပါတယ္။ Data Link Layer နဲ႔သူရဲ႕ Sublayer နွစ္ခုအေၾကာင္းကုိ ေကာင္းစြာသေဘာေပါက္ ေလာက္ျပီလုိ႔ထင္ပါတယ္။

            ကဲလာပါျပီ။ ေနာက္ဆုံး Layer 1 ျဖစ္တဲ့ Physical Layer ပါ။ Physical Layer ကဘာေတြလုပ္ပါသလဲ။ Physical Layer ကေတာ့ Network Cable ေပၚမွာ Data ေတြကုိ အမွန္တကယ္ Transmission လုပ္နုိင္ေအာင္လုပ္ေဆာင္ေပးပါတယ္။ အေပၚ Data Link Layer ကတဆင့္ရရွိလာတဲ့ Raw Bits Data Frame  ေတြကုိ Cable ေတြေပၚမွာ အမွန္တကယ္သြားနုိင္မယ့္ Data Signals မ်ားအျဖစ္သုိ႔ေျပာင္းလဲေပးပါတယ္။ ေျပာင္းလဲတဲ့ေနရာမွာ Cable အမ်ိဳးအစားေတြ၊ Card အမ်ိဳးအစားေတြ၊ Connector အမ်ိဳးအစားေတြကုိလုိက္ျပီး တစ္ဘကနဲ႔တစ္ဘက္ Transfer လုပ္လုိ႔အဆင္ေျပနုိင္မယ့္ Signal မ်ိဳးကုိေျပာင္းလဲေပးပါတယ္။ Cable ေတြ၊ Card ေတြ၊ Connector ေတြအမ်ိဳးအစား အမ်ားၾကီးရွိသလုိ Physical Layer ကေျပာင္းလဲေပးရတဲ့ Signal အမ်ိဳးအစားေတြလည္းအမ်ားၾကီးေတာ့ ရွိတာေပါ့ေနာ္။ ဥပမာ Digital Signal ၊ Analog Signal တုိ႔ေပါ့။ ျပီးေတာ့ Signal အမ်ိဳးအစားတစ္ခုခ်င္းစီအတြက္ေတာင္ ၾကားထဲက ခ်ိတ္ဆက္ထားတဲ့ Network Connection ရဲ႕နည္းပညာေပၚမူတည္ျပီး ထုတ္လႊတ္ပုံထုတ္လႊတ္နည္းေတြကြဲျပားပါေသး တယ္။ (ဥပမာ Star လား Ring လား Bus လား) ဒါေၾကာင့္ Physical Layer ဟာတကယ့္ Really Physical Media ေပၚမွာ Data ေတြမွန္မွန္ကန္ကန္ အဆင္ေျပေျပသြားနုိင္ဖုိ႔အ တြက္ကုိ လုိအပ္တဲ့ လုပ္ေဆာင္မႈေတြျဖစ္တဲ့ Raw Bits Data Frame ေတြကို Electric Signal အသြင္ေျပာင္းေပးတာေတြ၊ အဲဒီလုိေျပာင္းတဲ့အခါမွာ ဘယ္လုိ Signal ပုံစံကုိ ေျပာင္းမွာလဲဆုိတာေတြ၊ ေျပာင္းျပီးသား Signal ေတြကုိ ဘယ္လုိဘယ္ပံု Cable ၾကိဳးေပၚကုိ တင္ေပးမွာလဲ ဆုိတာေတြအျပင္ Cable ေပၚကုိ Data ေတြတင္ေပးနုိင္ဖုိ႔အတြက္ လုိအပ္တဲ့ Voltage ေတြကအစဆုံးျဖတ္သတ္မွတ္ထုတ္လုပ္ေပးတာကုိလုပ္ေဆာင္ပါတယ္။ ကဲဒီေလာက္ဆုိရင္ေတာ့ Physical Layer ရဲ႕အေၾကာင္းကုိလည္းေတာ္ေတာ္သေဘာ ေပါက္ေလာက္ျပီလုိ႔ထင္ပါတယ္။

            ကဲဒါဆုိရင္ Layer (၇)ခု လုံးအေၾကာင္းကုိ အားရပါးရ စိတ္၀င္တစားဖတ္ျပီးသြားတဲ့အခါ ေခါင္းထဲမွာ အေရးၾကီးတာေလးေတြကို စြဲက်န္မွတ္မိေနေအာင္လုိ႔ Layer (၇) ခုလုံးကုိ အနွစ္ျခဳပ္ျပီးျပန္လည္ေဖာ္ျပလုိက္ပါတယ္။ ဒီတစ္ခါေတာ့ Network အေခၚအေ၀ၚ Layer နံပါတ္စဥ္အတုိင္းေဖာ္ျပလုိက္ပါတယ္ေနာ္။

                                                           

 Physical Layer              

     Transfer Medium ေပၚမွာ Data သြားလာနုိင္ဖုိ႔ ကူညီေပးပါတယ္။ Data ေတြကုိ Transfer Medium နဲ႔လုိက္ေလ်ာညီေထြရွိမယ့္ Signal ပုံစံအျဖစ္ေျပာင္းလဲေပးပါတယ္။ အဲဒီ Data Signal ေတြကုိ Transmission လုပ္နုိင္ဖုိ႔ေရာျပန္ျပီး Synchronization လုပ္နုိင္ဖုိ႔ေရာ လုိအပ္တဲ့ Voltage Levels ကုိဆုံးျဖတ္ေပးပါတယ္။

           

Data Link Layer            

      Network လမ္းေၾကာင္းတစ္ေလွ်ာက္မွာအဆင္ေျပေျပသြားနုိင္မယ့္ Frame ေလးေတြျဖစ္လာေအာင္ Data ကုိတည္ေဆာက္ေပးပါ တယ္။ Network Connection တစ္ေလွ်ာက္မွာCollision မျဖစ္ေအာင္

ေစာင့္ၾကပ္ထိန္းသိမ္းေပးပါတယ္။ Collision ျဖစ္သြားရင္ ဒါမွမဟုတ္ Error Control Information နဲ႔မတုိက္ဆုိင္ပဲ Error ေတြ႕ေနရတယ္ဆုိရင္ အဲဒီFrame ကုိခ်က္ခ်င္းထပ္ပုိ႔ေပးပါတယ္။



 Network Layer              

      မတူညီတဲ့ Network ေတြၾကားမွာ Connection ရေအာင္ ၊ Data Transfer လုပ္နုိင္ေအာင္ၾကားခံဆက္

သြယ္ေပးပါတယ္။ Network လမ္းေၾကာင္းေတြကုိလည္းရွာေဖြေပးျပီးData Transferလုပ္ရာမွာပုိမုိျမန္

္ဆန္ေအာင္ ကူညီေပးပါတယ္။                     


Transport Layer                        

    Data Transfer လုပ္ရာမွာအစမွအဆုံးတုိင္ Data Packet တစ္ခုခ်င္းစီအတုိင္းအတာအထိ စိတ္ခ်ရတဲ့ Data Transmission တစ္ခု             ျဖစ္ေအာင္လုပ္ေဆာင္ေပးပါတယ္။ Error Control နဲ႔ Flow Control ကုိ ေဆာင္ရြက္ပါတယ္။ အကယ္၍ Data Packet တစ္ခုမွာမ်ားနဂုိ Packetအတုိင္းမဟုတ္ေၾကာင္း

ေတြ႕ရွိပါကခ်က္ခ်င္းထပ္ပုိ႔ေပးပါတယ္။


 Session Layer               

      Data Transfer လုပ္ဖုိ႔အတြက္ Sender နဲ႔ Receiver ၾကားမွာ Logical Connection တစ္ခုကုိ အစျပဳတည္ေဆာက္ပါတယ္။ အဲဒီ             Connection ကုိ Data Transmission မျပီးမခ်င္းထိန္းသိမ္းထားပါတယ္။ Data ေတြကုိလည္းအဲဒီ Connection ေပၚမွာ အဆင္ေျပ ေျပ သြားနုိင္မယ့္အပုိင္းေလးေတြအျဖစ္ပုိင္းပါတယ္။ လက္ခံမယ့္ဘက္ေရာက္တဲ့အခါမွာနဂုိမူရင္း Original Data ျပန္ရေအာင္ ျပန္ လည္စုစည္းပါတယ္။



  Presentation Layer                    

Data ေတြကုိေအာက္ပုိင္း Layer ေတြကနားလည္အဆင္ေျပမယ့္ Format ပုံစံမ်ိဳးေျပာင္းလဲေပးပါတယ္။ လုိအပ္တဲ့ Encryption ေတြနဲ႔ Compression ေတြကုိလည္းလုပ္ေဆာင္ေပးပါတယ္။ လက္ခံမယ့္ဘက္မွာက်ေတာ့ Decompression ေတြနဲ႔ Decryption ေတြကုိလုိအပ္သလုိ လုပ္ေဆာင္ပါတယ္။

 User နားလည္လက္ခံနုိင္မယ့္ Format မ်ိဳးျပန္ရေအာင္ Data ကုိျပန္ျပီး Format ေျပာင္းေပးပါတယ္။


Application Layer                      

     User ေတြပုိ႔ခ်င္တဲ့ သတင္းအခ်က္အလက္ေတြ၊ Data ေတြကို ေအာက္ပုိင္း Layer ေတြက နားလည္လက္ခံျပီးဆက္လက္ Process  လုပ္နုိင္ဖုိ႔အတြက္ Interface တစ္ခုအျဖစ္ၾကားခံျပီး User ေတြကုိ ပုိမုိ လြယ္ကူအဆင္ေျပေစပါတယ္။ လက္ခံမယ့္ဘက္မွာလည္း             User ေတြအေနနဲ႔လက္ခံရရွိလာတဲ့ Data ေတြကုိ အသုံးခ်ခ်င္သလုိအသုံးခ်နုိင္ခြင့္ ရရွိေအာင္ Interface တစ္ခုအေနနဲ႔             Userေတြကုိ ပုိမုိအဆင္ေျပေစရန္ အသုံးေတာ္ခံျပန္ပါတယ္။






No comments:

Post a Comment