Everything About IT Notes

Wednesday, December 26, 2012

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


7layersကဲကဲ အေပၚယံ ေလ့လာၾကည္႔ျပီးရင္ေတာ့ အေသးစိတ္ ဆက္ျပီး ေလ့လာၾကတာေပါ့။
ပထမဦးဆုံး အေနနဲ႔ ေလ့လာရမွာ ကေတာ့ 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 တစ္ခုတည္းကုိရွင္းေနတာေတာ္ေတာ္ေတာင္ရွည္ေနျပီ။ ဒီေလာက္ဆုိရင္လည္း ApplicationLayer အေၾကာင္းကုိ ေတာ္ေတာ္ေလးသေဘာေပါက္ေလာက္ျပီလုိ႔ ယူဆပါတယ္။ ဒါဆုိရင္ေအာက္ ကေနာက္ထပ္ Layerတစ္ခုကုိ ထပ္ျပီးေလ့လာၾကတာေပါ့ေနာ္။ ေနာက္ထပ္ Layer တစ္ခုကဘာပါလိမ့္။ မွတ္မိတဲ့လူရွိရင္လည္းေျပာလုိက္ၾကပါေနာ္။ ဘာတဲ့။ ဟုတ္ကဲ့။ Presentation Layer ပါ။ မွန္ပါတယ္။ အားလုံးမွန္ၾကပါတယ္။ ကဲကဲဆက္ျပီးေလ့လာလုိက္ၾကရေအာင္ေနာ္။
Presentation Layer(Layer 6) ကေတာ့ Application Layer ကေန စီးဆင္းလာတဲ့ Data ေတြကုိ NetworkConnection တစ္ေလွ်ာက္မွာ သြားလာနိုင္မယ့္ 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 CodedDecimal 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 (ComputerB)ဆီေရာက္ တဲ့အခါ Decompression လုပ္ျပီးပုံမွန္ Size ျပန္ရေအာင္လုပ္ပါတယ္။ ဒီေနရာမွာေတာ့ Compressionလုပ္တဲ့နည္းစနစ္နဲ႔ Decompression လုပ္တဲ့နည္းစနစ္တုိ႔တူညီမွသာမွန္ကန္တဲ့ Data ကုိ မွန္ကန္တဲ့ Original Sizeအေနအထားျပန္ရမွာပါ။ အဲဒီလုိ Data Compression ေတြ Decompression ေတြအားလုံးဟာလည္း PresentationLayer မွာလုပ္ေဆာင္ၾကပါတယ္။
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 လုပ္ေပးတာပါပဲ။ DataPackets ေတြကုိ Network Connection ေပၚကုိတင္ပုိ႔ေပးတဲ့အခါမွာ ဟုိဘက္က လက္ခံမယ့္ Receiver ဘက္က Switchေတြ၊ Network Card ေတြကလက္ခံနုိင္မယ့္ Speed အတုိင္းလုိက္ေလ်ာညီေထြျဖစ္ေအာင္ ထိန္းခ်ဳပ္ေပး ပါတယ္။ဒါေပမယ့္အဲဒီ Connection က Direct Connection (Sender နဲ႔ Receiver တုိ႔ဟာ Network တစ္ခုတည္းအတြင္းမွာပဲရွိေနရင္လုိ႔ဆုိလုိတာပါ) ဆုိရင္ေတာ့ ဒီကိစၥဟာ မသိသာပါဘူး။
အဲဒါေပမယ့္ Indirect Connection (Sender နဲ႔ Receiverၾကားမွာ Network ေတြ အမ်ားၾကီး ျခားရင္ျခားေနမယ္၊ဒါမွမဟုတ္ Internetေပၚကျဖတ္သြားရတာမ်ိဳး လည္းျဖစ္ရင္ျဖစ္ေနမယ္၊ ဆုိလုိတာက ေတာ့ Sender ကေန Receiver ဆီကုိသြားမယ့္ DataPackets ေတြဟာၾကားမွာ 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 တုိ႔လုိေပါ့။) NetworkLayer ရဲ႕လုပ္ေဆာင္မႈဟာလည္းအေပၚက 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 ေတြပါ။ တစ္လုံးနဲ႔တစ္လုံး လုံး၀တူလုိ႔မရပါဘူး။ အဲဒီ IPAddress ေတြမွာ အဓိက အသုံးျပဳတာ Class (၃) မ်ိဳး ရွိပါတယ္။
Class (၁)ခုအတြင္းမွာ အက်ံဳး၀င္တဲ့ Addressေတြနဲ႔တျခား Class ေတြမွာ အက်ံဳး၀င္တဲ့ Address ေတြဟာ Network မတူပါဘူး။ Class တစ္ခုအတြင္းမွာ အက်ံဳး၀င္ေနတဲ့Address ေတြကုိေတာင္ သီးျခားအစု လုိက္အစုလုိက္ Network ေလးေတြျပန္ခြဲႏုိင္ပါေသးတယ္။ Subnetကြဲတယ္လုိ႔လဲေျပာနုိင္ပါတယ္။(အေသးစိတ္ကုိေတာ့ IP Subnetting မွာေလ့လာလုိက္ပါေနာ္။ကၽြန္ေတာ္ကေတာ့လုိသေလာက္ပဲေျပာသြားပါမယ္။)
အဲဒီေတာ့ အဲဒီလုိမတူညီၾကတဲ့ Network ေတြဟာ Cable ေတြနဲ႔ဆက္သြယ္ထားေပမယ့္တစ္ခုနဲ႔တစ္ခု Connection မရနုိင္ပါဘူး။ Data Transfer မလုပ္နုိင္ဘူးေပါ့ဗ်ာ။ အဲဒီလုိ အခါမ်ိဳးမွာ Network Layerက၀င္ျပီးေတာ့ သူတုိ႔ေတြၾကားမွာ ခ်ိတ္ဆက္ေပးပါတယ္။ ဒါမွလဲ သူတုိ႔အခ်င္းခ်င္း Data Transfer လုပ္လုိ႔ရသြားပါတယ္။
Source: Product of  MY DATA Game & Software CD /DVD

0 comments:

Post a Comment