Thursday, November 29, 2012

TCP/IP (B.E. IT)

CHAPTER 4
Classful Internet Addresses
4.1 Introduction
TCP/IP internet ဆိုတာ physical network ေတြကို router ေတြသံုးျပီး အျပန္အလွန္ခ်ိတ္ဆက္ထားတဲ့ virtual network တစ္ခုပါ။

4.2 Universal Identifier
Host computer တစ္လံုးကို အျခား ဘယ္ host computer တစ္လံုးနဲ႕မဆို communicate လုပ္ႏုိင္ေအာင္ေဆာင္ရြက္ေပးႏုိင္တဲ့ communication system ကို universal communication service ကိုေပးႏုိင္တဲ့ system လုိ႕ဆိုပါတယ္။ communication system တစ္ခုကို universal ျဖစ္ေအာင္လုပ္ဘုိ႕ဆိုရင္ အဲဒီ system ကို ခ်ိတ္ဆက္ထားတဲ့ computer တစ္လံုးခ်င္းစီကို identify လုပ္ႏုိင္တဲ့ တစ္ကမၻာလံုးက လက္ခံႏုိင္တဲ့ method မ်ိဳးရွိဘို႕လုိပါတယ္။
Host identifier ေတြကေတာ့ names, addresses, or routes ေတြပါ။ name က object တစ္ခုဟာ ဘာလဲဆိုတာကို identify လုပ္ေပးတယ္။ address ကေတာ့ ေနရာကို identify လုပ္ျပီး route ကေတာ့ သြားရမယ့္လမ္းေၾကာင္းကို identify လုပ္ေပးပါတယ္။ စက္ေတြကို identify လုပ္တဲ့အခါ လူေတြက name နဲ႕ identify လုပ္ရတာကိုၾကိဳက္တယ္။ software ေတြကေတာ့ address လိုဟာမ်ိဳးကိုၾကိဳက္ၾကတယ္။


4.3 The Original Classful Addressing Scheme
Internet ဆိုတာ အျခား physical network ေတြလိုဘဲ network အၾကီးစားၾကီးတစ္ခုပါ။ ျခားနားတာကေတာ့ Internet က software နဲ႕ implement လုပ္ထားတဲ့ virtual structure တစ္ခုပါ။ Internet ခ်ိတ္ဆက္ထားတဲ့ host တုိင္းကို 32-bit integer address နဲ႕ identify လုပ္ပါတယ္။ အဲဒါကို internet address or IP address လုိ႕ေခၚပါတယ္။ IP address မွာ host id ေရာ အဲဒီ host ကခ်ိတ္ဆက္ထားတဲ့ network id ပါ ႏွစ္ခုလံုးပါ၀င္ပါတယ္။ prfix (ေရွ႕ပို္င္း) က netid ျဖစ္ျပီး suffix (ေနာက္ပိုင္း)က hostid ျဖစ္ပါတယ္။
Figure 4.1
Classful addressing scheme မွာဆိုရင္ address ေတြဟာ self-identifying ျဖစ္ပါတယ္။ ဘာေၾကာင့္လည္းဆိုေတာ့ ျပင္ပ information ေတြကိုသံုးစရာမလုိဘဲ address ကိုၾကည့္ရုံနဲ႕ prefix နဲ႕ suffix ရဲ႕ boundary ကိုသိႏုိင္လုိ႕ပါ။ IP address ကို classes ၅မ်ိဳးခြဲထားတယ္။ Class A, B, C, D, E ပါ။ ပထမ ၃မိ်ဳးကေတာ့ primary class ေတြေပါ့။ IP address တစ္ခုဟာ ဘယ္ class ထဲမွာပါလည္းသိခ်င္ရင္ higher order bit ၃ခုကိုၾကည့္ျပီးသိႏိုင္ပါတယ္။ primary class ၃ခုထဲကေနခြဲျခားဘုိ႕ဆိုရင္ေတာ့ higher order bit ၂ခုကိုၾကည့္ရင္သိႏုိင္ပါျပီ။ ေရွ႕ဆံုး bit က 0 ဆုိရင္ေသခ်ာေပါက္ Class A ပါ။ 1 ဆိုရင္ေတာ့ ဒုတိယ bit ကိုပါ ဆက္ၾကည့္ရပါမယ္။ ဒုတိယ bit က 0 ဆိုရင္ Class B ပါ။ ဆိုလုိတာက ေရွ႕ဆံုး bit ၂ခုက 10 ဆိုရင္ Class B ေပါ့။ 11 ဆိုရင္ တတိယ bit ကိုထပ္ၾကည့္ရပါမယ္။ 65536 host ထက္ပိုခ်ိတ္ဆက္ထားတဲ့ network ၾကီးေတြအတြက္ IP address ကို Class A အမ်ိဳးအစားေပးရပါမယ္။ (netid က 7 bits ရွိျပီး hostid က 24 bits ရွိပါမယ္။) 256 host ထက္မ်ားျပီး 65536 host ထက္မမ်ားတဲ့ အလယ္အလတ္စား network ေတြအတြက္ဆို Class B address ေပးရပါမယ္။ (netid က 14 bits ရွိျပီး hostid က 16 bits ရွိပါမယ္။) အမ်ားဆံုး 256 host သာခ်ိတ္ဆက္မယ့္ network ေတြအတြက္ေတာ့ Class A address ကိုသံုးရပါမယ္။ (netid က 21 bits ရွိျပီး hostid က 8 bits ရွိပါမယ္။)

4.4 Address Specify Network Connections
Computer တစ္လံုးမွာ physical connection ၂ခု သို႕မဟုတ္ ၂ခုထက္ပိုျပီးရွိခဲ့ရင္ အဲဒီ computer ကို multi-homed host လုိ႕ေခၚပါတယ္။ multi-homed host ေတြနဲ႕ router ေတြမွာ တစ္ခုထက္ပိုတဲ့ IP address ေတြရွိပါတယ္။ address တစ္ခုစီဟာ အဲဒီ host or router ေတြနဲ႕ခ်ိတ္ဆက္ထားတဲ့ network connection တစ္ခုစီကိုကိုယ္စားျပဳပါတယ္။ တကယ္ေတာ့ IP address ဆိုတာ computer ကို identify လုပ္တာမဟုတ္ဘဲ အဲဒီ computer ခ်ိတ္ဆက္ထားတဲ့ network connection ကိုသာ identify လုပ္တာျဖစ္ပါတယ္။ router n ခုဟာ network n ခုနဲ႕ ခ်ိတ္ဆက္ထားတယ္ဆိုပါေတာ့။ ဒါဆို အဲဒီ router မွာ IP address n ခုရွိပါမယ္။ IP address တစ္ခုခ်င္းဟာ network connection တစ္ခုစီကို identify လုပ္ပါတယ္။

4.5 Network And Directed Broadcast Addresses
IP address ထဲမွာ Netid ပါျခင္းအားျဖင့္ အဓိကေကာင္းက်ိဳးတစ္ခုက routing လုပ္တဲ့အခါ efficient ျဖစ္ေစပါတယ္။ ေနာက္ေကာင္းက်ိဳးတစ္ခုက IP address ဟာ host ကိုသာမက network ကိုပါ refer လုပ္ႏုိင္ပါတယ္။ host တစ္ခုရဲ႕ hostid ကို 0 မေပးရပါဘူး။ hostid 0 ျဖစ္ခဲ့မယ္ဆိုရင္ ဒါဟာ အဲဒီ network ကိုသာ ျပန္ညႊန္းပါတယ္။
ေနာက္ထပ္ေကာင္းက်ိဳးတစ္ခုက network တစ္ခုမွာခ်ိတ္ဆက္ထားတဲ့ host ေတြအားလံုးကို refer လုပ္တဲ့ directed broadcast address ဆိုတာပါပါတယ္။ hostid က all 1s ျဖစ္ေနခဲ့မယ္ဆိုရင္ ဒါဟာ directed broadcast address ပါ။ packet တစ္ခုကို အဲလို address မ်ိဳးဆီပို႕လိုက္မယ္ဆိုပါေတာ့။ packet ဟာ source ကေနထြက္ခြာလာျပီးလမ္းတေလွ်ာက္မွာ router ေတြကိုျဖတ္သန္းရမယ္။ router တစ္ခုဟာ သူ႕ဆီကို packet တစ္ခုေရာက္လာရင္ ဘယ္ router ဆီကိုထပ္ပို႕ေပးရမလည္းဆိုတာကို ဆံုးျဖတ္ရပါတယ္။ အဲဒီအခါမွာ router ဟာ packet ရဲ႕ netid portion ကိုသာၾကည့္ပါတယ္။ hostid portion ကိုမၾကည့္ပါဘူး။ destination network နဲ႕ခ်ိတ္ဆက္ထားတဲ့ router ဆီေရာက္တဲ့အခါမွသာ router ဟာ hostid portion ကိုၾကည့္ပါတယ္။ hostid portion က all 1s ျဖစ္ေနရင္ေတာ့ အဲဒီ network မွာခ်ိတ္ဆက္ထားတဲ့ host ေတြအားလံုးဆီကို packet ကို deliver လုပ္လုိက္ပါတယ္။ အခ်ိဳ႕ network hardware ေတြဟာ broadcast ကို support မလုပ္ေပးနုိင္ပါဘူး။

4.6 Limited Broadcast
IP address ရဲ႕ 32 bit လံုးဟာ 1 ေတြခ်ည္းျဖစ္ခဲ့မယ္ဆိုရင္ဒါ Limited Broadcast ပါ။ host ဟာ သူ႕ရဲ႕ IP address or local network ရဲ႕ prefix ကို မသိေသးခင္မွာ အသံုးျပဳပါတယ္။ start up မွာသံုးတာပါ။ သိျပီးသြားျပီဆိုရင္ေတာ့ directed broadcast ကိုသာသံုးသင့္ပါတယ္။

4.7 Interpreting Zero To Mean “This”
IP address ရဲ႕ hostid or netid မွာ bit ေတြအားလံုးဟာ 1 ေတြခ်ည္းျဖစ္ေနရင္ ဒါကို “all” လို႕ဆိုလိုပါတယ္။ bit ေတြအားလံုး 0 ဆိုရင္ေတာ့ “this” ေပါ့။ ဒါေၾကာင့္ hostid 0 ဆိုရင္ ဒါ this host လို႕ဆိုလိုပါတယ္။ netid 0 ဆိုရင္ this network ဆိုတဲ့သေဘာေပါ့။ ဥပမာ machine တစ္ခုွဆီ packet တစ္ခုေရာက္လာတယ္။ packet ရဲ႕ netid က 0 ျဖစ္ျပီး hostid က ေတာ့ အဲဒီ machine ရဲ႕ id ျဖစ္ေနတယ္ဆိုပါေတာ့။ ဒါဆိုရင္ ဒီ packet ဟာ သူ႕ဆီကို ပို႕လာတဲ့ packet လို႕သတ္မွတ္ႏုိင္ျပီး further process ေတြဆက္လုပ္ႏုိင္ပါတယ္။
Host တစ္ခုဟာ သူကိုယ္တုိင္ရဲ႕ network address ကိုမသိေသးတဲ့အခါမွာ netid 0 လို႕ယာယီအသံုးျပဳပါတယ္။ netid 0 လုိ႕ေပးထားတဲ့ packet တစ္ခုကို ပို႕လုိက္တဲ့အခါ အဲဒီ network ေပၚမွာရွိေနတဲ့ အျခား host ေတြက ဒါကို this network (သူတို႕ network ကိုပို႕တဲ့ packet) လို႕မွတ္ယူလုိက္ပါတယ္။ မူလ host ဆီ reply ျပန္တဲ့အခါမွာ သူတုိ႕ရဲ႕ netid ကိုထည့္ျပီးျပန္ေပးလိုက္ပါတယ္။ ဒီအခါမွာ မူလ host ဟာ netid ကိုသိသြားျပီမုိ႕ ေနာက္ထပ္ communicate လုပ္တဲ့အခါ 0 လုိ႕မသံုးေတာ့ဘဲ netid ကိုအတိအက်အသံုးျပဳႏုိင္သြားျပီျဖစ္ပါတယ္။
4.8 Subnet And Supernet Extensions
Physical network တစ္ခုရဲ႕ network prefix ေတြဟာ unique ျဖစ္ရပါမယ္။ ဆိုလိုတာက netid တူလို႕မရပါဘူး။ network ေတြတိုးပြားလာတာနဲ႕အမွ် address space ေတြအလွ်င္အျမန္ exhaust (ေနာက္ထပ္ေပးစရာမရွိ) ျဖစ္သြားႏုိင္ပါတယ္။ ဒါေၾကာင့္ prefix ကုိ physical network အမ်ားက share လုပ္ျပီး အသံုးျပဳႏုိင္မယ့္ subnet addressing ဆိုတာျဖစ္လာပါတယ္။
အရင္က prefix နဲ႕ subfix ၾကား boundary ကိုသတ္မွတ္တဲ့အခါ Class A အတြက္ဆို ေရွ႕ဆံုး 1byte နဲ႕ ေနာက္ပိုင္း 3bytes ၾကားဟာ boundary ပါ။ Class B ဆိုရင္ ေရွ႕ဆံုး 2bytes နဲ႕ ေနာက္ပိုင္း 2bytes ၾကားဟာ boundary ပါ။ superneting ဆိုတဲ့နည္းအရဆိုရင္ boundary ဟာဘယ္ေနရာမဆိုျဖစ္ႏုိင္ပါတယ္။ ဥပမာ ေရွ႕ဆံုး 9 bits နဲ႕ ေနာက္ဆံုး 23 bits ၾကားမွာလည္း boundary ျဖစ္ႏုိင္ပါတယ္။ ဒီေတာ့ class ဆိုတာလည္းမရွိေတာ့ပါဘူး။ ဒါေၾကာင့္ classless addressing လို႕ေခၚပါတယ္။ ဒီနည္းက address space ေတြကို ပိုျပီးျပည့္ျပည့္၀၀အသံုးခ်ႏုိင္တယ္ဆိုတာေတြ႕ရပါတယ္။

4.9 IP Multicast Addresses
Packet တစ္ခုကို ကြန္ပ်ဴတာတစ္လံုးထဲဆီပို႕တာကို unicast delivery လုိ႕ေခၚပါတယ္။ broadcast ဆိုတာကေတာ့ အားလံုးဆီပို႕တာေပ့ါ။ multicast delivery ဆိုတာကေတာ့ packet တစ္ခုကို သက္ဆိုင္ရာ host ေတြ ဆီကိုပို႕တာပါ။ ၂ ခု သို႕မဟုတ္ ၂ခုထက္ပိုတဲ့ host ေတြဆီေပါ့။ အဲဒီလို ပို႕ႏုိင္ဘုိ႕ဆိုတာကလည္း multicast delivery ကို support လုပ္ေပးႏုိင္တဲ့ network ေတြအတြက္သာျဖစ္ႏုိင္ပါတယ္။

4.10 Weakness In Internet Addressing
IP address မွာ network information (netid) ကိုထည့္ေပးထားျခင္းအားျဖင့္ ေကာင္းတဲ့အခ်က္ေတြကိုအေရွ႕မွာေျပာခဲ့ျပီးပါျပီ။ ဒီတစ္ခါေတာ့မေကာင္းတဲ့အခ်က္ေတြကို ေျပာပါမယ္။ အဆိုးဆံုးတခုက addess ဟာ host comptuer ကို identify လုပ္တာမဟုတ္ဘဲ network connection ကုိသာ identify လုပ္တာျဖစ္ေနလို႕ပါ။ ဒီ host computer ကို network တစ္ခုကေန အျခား network တစ္ခုကိုေျပာင္းခ်ိတ္လိုက္မယ္ဆိုရင္ IP address ကိုျပန္ေျပာင္းရပါလိမ့္မယ္။ လူတစ္ေယာက္ဟာ ခရီးသြားစရာရွိလို႕ သူ႕ computer ကို Internet ခ်ိတ္ဆက္ထားတဲ့ network ကေန ျဖဳတ္သယ္သြားတယ္ဆိုပါေတာ့။ ခရီးဆံုးကိုေရာက္လုိ႕ သူ႕ computer နဲ႕ Internet သံုးခ်င္ရင္ အဲဒီမွာရွိေနတဲ့ network နဲ႕သက္ဆိုင္တဲ့ IP address ကိုျပန္ေပးရပါမယ္။ (ခုေခတ္မွာေတာ့ wifi နဲ႕အသံုးျပဳၾကတာမ်ားပါတယ္။ ဖုန္းနဲ႕လည္းသံုးၾကပါတယ္။ permanent IP address မသံုးဘဲ DHCP ကိုသံုးၾကပါတယ္။)
ေနာက္အားနည္းခ်က္တစ္ခုက Class C network တစ္ခုမွာ host အေရအတြက္ 255 ခုထက္ပိုလာတဲ့အခါ Class B address ကိုေျပာင္းေပးရပါမယ္။ အလုပ္ရႈပ္တာေပါ့။

4.11 Dotted Decimal Notation
IP address ေတြကို dotted decimal notation နဲ႕ေရးပါတယ္။ ဥပမာ
128.10.2.30
Binary နဲ႕ေရးမယ္ဆိုရင္
10000000 00001010 00000010 00011110
Classful addressing scheme အရ IP address ေတြရဲ႕ class ေတြကို ဒီလိုသတ္မွတ္ထားတယ္။

Class Lowest Address Highest Address
A 1.0.0.0 126.0.0.0
B 128.1.0.0 191.255.0.0
C 192.0.1.0 223.255.255.0
D 224.0.0.0 239.255.255.255
E 240.0.0.0 255.255.255.254

ဒီထဲမွာမပါတဲ့ address ေတြကေတာ့ အခ်ိဳ႕ကိစၥေတြမွာအသံုးျပဳဘို႕ reserve ထားတာပါ။

4.12 Loopback Address
ဒီထဲမွာမပါတဲ့ 127.0.0.0 ဟာ loopback address ပါ။ testing လုပ္ဘုိ႕အတြက္နဲ႕ local computer ေပၚက inter-process communication အတြက္ သံုးပါတယ္။ packet တစ္ခုရဲ႕ destination address ဟာ loopback address ျဖစ္ေနရင္ အဲဒီ packet ကို အျခားကိုမပို႕ဘဲ အဲဒီ computer မွာဘဲ process လုပ္ပါတယ္။ တနည္းေျပာရရင္ 127 ဆိုတာ network address မဟုတ္ပါဘူး။ 127 ဆိုတဲ့ netid မရွိပါဘူး။

4.13 Summary Of Special Address Conventions

4.14 Internet Addressing Authority

TCP/IP internet မွာအသံုးျပဳမယ့္ network address prefix ေတြဟာ unique ျဖစ္ရပါမယ္။ တစ္ခုနဲ႕တစ္ခုမတူရပါဘူး။ TCP/IP technology ကိုသံုးျပီး private network (Internet မခ်ိတ္ထားတဲ့ network) တည္ေဆာက္ခ်င္တဲ့ အဖြဲ႕အစည္းတစ္ခုအေနနဲ႕ သူ႕ private network ရဲ႕ network prefix ကို ၾကိဳက္ရာေပးႏုိင္ပါတယ္။ အျခား အဖြဲ႕အစည္းေတြရဲ႕ private network ေတြရဲ႕ network prefix ေတြနဲ႕တူေနလည္းျပသနာမရွိပါဘူး။ ဒါေပမယ့္ Internet ခ်ိတ္ဆက္ထားတဲ့ network ဆိုရင္ေတာ့ ၾကိဳက္ရာေပးလို႕မရေတာ့ပါဘူး။ Internet ခ်ိတ္ဆက္ထားတဲ့ network ေတြရဲ႕ network prefix ကို unique ျဖစ္ဘုိ႕အတြက္ Internet address ေတြအားလံုးကို central authority တစ္ခုကေနေပးပါတယ္။ စစခ်င္းေတာ့ the Internet Assigned Number Authority (IANA) က policy ေတြခ်ျပီး ထိန္းခ်ဳပ္ထားပါတယ္။ ေနာက္ပိုင္းမွာေတာ့ the Internet Corporation For Assigned Names and Numbers (ICANN) ကဆက္လုပ္ပါတယ္။
ဒီအဖြဲ႕က address ေပးတဲ့အခါမွာ network ရဲ႕ size ကို ၾကည့္ျပီး သင့္ေတာ္တဲ့ address ကိုေပးပါတယ္။ network size ဆိုတာ network မွာခ်ိတ္ဆက္မယ့္ host အေရအတြက္ကိုေျပာတာပါ။ host ၂၅၅ ထက္မမ်ားတဲ့ network ေတြအတြက္ဆို Class C address ေပးပါတယ္။ Class B ကေတာ့ အလယ္အလတ္စား network ေတြအတြက္ေပါ။ 65535 hosts ထက္ေက်ာ္တဲ့ network ေတြအတြက္ဆို Class A address ေပးပါတယ္။
Address ရဘို႕ central authority နဲ႕တုိက္ရုိက္ဆက္သြယ္စရာမလိုပါဘူး။ မိမိတို႕ local ISP နဲ႕ဆက္သြယ္ေတာင္းခံႏုိင္ပါတယ္။ local ISP ေတြက larger ISP ေတြနဲ႕ဆက္သြယ္ရပါတယ္။ larger ISP ေတြကမွ ICANN နဲ႕တုိက္ရို္က္ဆက္သြယ္တာပါ။ address ေပးတယ္ဆိုတဲ့ေနရာမွာလည္း network prefix ကိုသာေပးတာပါ။ subfix ကိုေတာ့မိမိ network အတြင္းမွာ unique ျဖစ္ေအာင္ေပးရံုပါဘဲ။

4.15 Reserved Address Prefixes
အဖြဲ႕အစည္းတစ္ခုဟာ သူ႕ရဲ႕ network ကို Internet မခ်ိတ္ဆက္ဘူးဆိုရင္ သူၾကိဳက္ရာ IP address ကိုေပးလို႕ရပါတယ္။ private internet မွာအသံုးျပဳတဲ့ address ေတြနဲ႕ global Internet မွာ အသံုးျပဳတဲ့ address ၾကား conflict မျဖစ္ရေလေအာင္ IETF ဆိုတဲ့အဖြဲ႕ကေန အခ်ိဳ႕ေသာ address prefix ေတြကို private internet မွာအသံုးျပဳဘုိ႕အတြက္ရည္ရြယ္ျပီး reserve ထားေပးပါတယ္။

4.16 An Example
4.17 Network Byte Order

ဘယ္ machine architecture ဘဲျဖစ္ျဖစ္ ဘယ္ network hardware ဘဲျဖစ္ျဖစ္ Internet မွာအသံုးျပဳလုိ႕ရေအာင္ဆိုရင္ data ေတြကို represent လုပ္မယ့္ standard representation တစ္ခုရွိဘုိ႕လိုပါတယ္။ ဥပမာ computer တစ္လံုးက 32-bit binary integer တစ္ခုကို အျခား computer တစ္လံုးဆီပို႕တယ္ဆိုပါေတာ့။ physical transport hardware ကေနျပီး ပထမ computer က sequence of bits ေတြကို ဒုတိယ computer ဆီကိုပို႕ေပးပါတယ္။ အဲဒီလိုပို႕တဲ့အခါမွာ bit ေတြရဲ႕ order (ေရွ႕ေနာက္အစီအစဥ္) ကိုမေျပာင္းဘဲပို႕တာပါ။ ဒါေပမယ့္ vender တစ္ခုကထုတ္လုပ္တဲ့ hardware architecture ဟာ အျခား vendor တစ္ခုကထုတ္လုပ္တဲ့ hardware architecture ဟာ တူခ်င္မွတူပါလိမ့္မယ္။ အခု ဥပမာမွာ ပထမ computer နဲ႕ ဒုတိယ computer ရဲ႕ architecture မတူဘူးဆိုပါေတာ့။ architecture မတူရင္ 32-bit integer ေတြကို store လုပ္တဲ့ နည္းလမ္းလည္းမတူတတ္ပါဘူး။ (တူတာေတြလည္းရွိေကာင္းရွိမွာေပါ့။ ခုကိစၥမွာေတာ့ မတူတဲ့ case ကိုစဥ္းစားၾကည့္ရေအာင္။) အခ်ိဳ႕ architecture ေတြက data ေတြကို store လုပ္ဘုိ႕ Little Endian Format ကိုသံုးတယ္။ ဒီ format အရဆိုရင္ lowest memory address integer ရဲ႕ low order byte ကို သိမ္းတယ္။ အခ်ို႕ architecture ေတြက Big Endian format ကိုသံုးတယ္။ ဒီ format အရဆို lowest memory address integer ရဲ႕ higher order byte ေတြကိုထားတယ္။ ဒါေၾကာင့္ ပထမစက္က ပို႕လိုက္တဲ့ bit sequence ေတြကို ဒုတိယစက္ကို (bit order မေျပာင္းဘဲ) ပို႕လုိ္က္တဲ့အခါ စက္တစ္လံုးခ်င္းစီရဲ႕ data ေတြကို store လုပ္ပံုမတူတာေၾကာင့္ တန္ဘုိးေတြေျပာင္းသြားတတ္ပါတယ္။
Integer ေတြအတြက္ standard ျဖစ္တဲ့ byte order တစ္ခုရွိဘုိ႕လိုကိုလုိပါတယ္။ ဘာေၾကာင့္လည္းဆိုေတာ့ packet ထဲမွာ destination address တို႕ packet length တုိ႕ပါပါတယ္။ ဒါေတြကို sender ေရာ receiver ပါ ၂ဘက္လံုးကအသံုးျပဳရမွာပါ။ ဒီ value ေတြေျပာင္းသြားရင္ အကုန္အမွားအယြင္းေတြျဖစ္ကုန္မွာပါ။ ဒါေၾကာင့္ packet ထဲက binary field ေတြအတြက္ အသံုးျပဳဘို႕ network standard byte order ဆိုတာကိုသတ္မွတ္လိုက္ပါတယ္။ host ေသာ္၄င္း router ေသာ္၄င္း packet တစ္ခုကိုပို႕ေတာ့မယ္ဆိုရင္ မပို႕ခင္ အဲဒီ packet မွာပါတဲ့ binary value ေတြကို local representation ကေန network standard byte order အျဖစ္ေျပာင္းျပီးမွပို႕ရပါမယ္။ packet တစ္ခုကိုေရာက္လာရင္ေတာ့ network standard byte order ကေန local host မွာအသံုးျပဳေနတဲ့ byte order ကိုေျပာင္းရပါမယ္။ packet ထဲမွာပါတဲ့ user data ေတြကိုေတာ့ ဒီလိုေတြေျပာင္းစရာမလုိပါဘူး။ ဘာေၾကာင့္လည္းဆိုေတာ့ TCP/IP protocol ဟာ ဒီ packet ထဲမွာပါလာတဲ့ user data ေတြကိုမၾကည့္ပါဘူး။ head field ကိုသာၾကည့္ပါတယ္။
network standard byte order ဆိုတာဘယ္လိုပံုစံမ်ိဳးလည္းဆိုေတာ့ most significant byte ကို အရင္ပို႕ပါတယ္။ Big Endian style ပါ။ ဆိုလိုတာက most significant byte ဟာ packet ရဲ႕ အစပိုင္းမွာရွိျပီး least significant byte ကေတာ့ packet ရဲ႕ေနာက္ဆံုးဘက္မွာရွိေနမွာပါ။

4.18 Summary

No comments:

Post a Comment