දැන් අපි බලමු Internet Protocol එකක් මොන විදිහද කියලා.
IP Header
හොදින් බැලුවොත් කෑලි 14 ක් විතර තියෙනවා IP Header එකක. අපි පොඩ්ඩක් බලමු මොනවද මේ කෑලි කියලා.
01. Version - IP packet එකේ version එක ගැන විස්තර තියාගන්න 4bit space එක. Version එක කිව්වේ අද අපිට IP version දෙකක් තියෙනවනේ IPv4 සහ IPv6 කියලා.
02. Internet Header Length (IHL) - මේක 4bit length එකක් තියෙන packet එකේ header details තියා ගන්න තැන.
03. Type of Service - මේක අලුතින් ටිකක් වෙනස් නමකින් හදුන්වනවා Differentiated Services Code Point (DSCP) කියලා. මේකේදි packet එක handle කරන විස්තර ඇතුලත් වෙනවා. ඒ වගේම මේකෙ තව කොටසක් තියෙනවා Explicit Congestion Notification (ECN) කියලා ඒකෙන් කරන්නේ දත්ත හුවමාරැ වෙන අන්ත දෙක අතර packet එකට හානියක් (drop වීමක්) නැතුව යැවීමට උපකාරී වීම. මේක හැබැයි optional field එකක්.
04. Total Length - මේ කොටසේ තමයි Packet එකේ data සහ header length (දිග) එක පිළිබද තොරතුරැ සදහන් වෙන්නේ. මේ කොටසේ දිග 16 bit වෙනවා.
05. Identification - අපි යවන Packet එක අනිත් packet වලින් වෙනස් කරලා හදුනගැනීම සදහා මේ කොටසේ වෙනම ID එකක් ඇතුලත් කරලා තියෙනවා. මේ කොටසත් 16 bit දිගයි.
06. Flags - අපි සාමාන්යයෙන් යවන Data එකක් packet එකක් බවට හරවද්දී ඒ data එකේ ප්රමාණය අනුව සමහර විට එකම data එක තව කුඩා කොටස් වලට කඩාගන්න සිද්ධ වෙනවා. මොකද IP Packet එකක data එකක් උපරිම ගෙන යන්න පුලුවන් සීමාවක් තියෙනවා. ඉතින් ලොකු data එකක් එයා කුඩා කොටස් වලට කඩා ගන්නවා ඒකට අපි කියනවා Fragmentation කියලා. මේ Flags කොටසේ අඩංගු වන්නේ එසේ Fragment කරන ලද packet හදුනා ගැනීමේ තොරතුරැයි.
07. Fragment Offset - මේ මගින් ඉහත අපි කතා කරපු Fragment වෙච්ච packet නැවත එකතු කිරීම වගේම ඒවයේ flags හදුනා ගැනීමත් කරනවා. මේ කොටස 13 bit දිගයි.
08. Time To Live (TTL) - 8 bit දිග මේ TTL එක මගිනුත් වැදගත් කාර්්ය භාරයක් කරනවා. මේකෙන් කරන්නේ Packet එකක් destination එකට ලගා වීමට යම් කාලයක් තීරණය කිරීම. යම් හෙයකින් ඒ කාලය තුලදී ඒ packet එකට destination එක හොයා ගන්න බැරිවුනොත් ඒ packet එක අයින් කරලා දානවා. මේකෙන් සිද්ධ වෙන වාසිය තමයි Packet එකක් Network එකේ අයාලේ යන එක නැවැත්වීම.
09. Protocol - නම කිව්ව පමණින්ම තේරෙනවනේ. මේ කොටසේ අඩංගු වෙන්නේ උඩින් තියෙන layers වලින් එන protocol පිළිබද තොරතුරැ. TCP සහ UDP වගේම Internet layer එකේ ARP, RARP තොරතුරැත් මේකට ඇතුලත් වෙනවා. මේකත් 8 bit field එකක්.
10. Header Checksum - මේකෙදි Header එකේ අඩංගු errors check කිරීමට අදාළ තොරතුරැ අඩංගුයි. ඔයගොල්ලන්ට මතක ඇති අපි TCP header එක ගැන කරද්දිත් මේ Checksum field එක තිබ්බා. මේක 16 bit field එකක්.
11. Source address - අපි data එක යවන තැන IP Address එක. 32 bit දිගයි.
12. Destination address - අපි Data එක යවන්න ඕනේ තැන IP Address එක. IP address එකක් 32 bit දිගයි.
13. Options - මේක Optional field එකක්. මේකේ Packet එකක debug, security, testing තොරතුරැ අඩංගුයි.
14 Data - අන්තිමට උඩ layers වලින් අපි එවන data එක. මේකත් 32 bit දිගයි.
මෙතනදි ඔයගොල්ලෝ ඉගෙන ගත්ත තවත් වැදගත් දෙයක් තියෙනවා. ඒ කියන්නේ IP Address එකක් 32 bit ඒ කියන්නේ 4 Bytes දිග බව. හැබැයි මතක තියා ගන්න ඒ IPv4 address වල Length එක බව.
අලුතින් අපි පාවිච්චි කරන IPv6 address එකක් 48 bit ඒ කියන්නේ 6 Bytes වෙනවා.
ඒ වගේම මම Fragmentation ගැන කියපු ටිකත් හිතේ තියාගන්න.
IP Header
හොදින් බැලුවොත් කෑලි 14 ක් විතර තියෙනවා IP Header එකක. අපි පොඩ්ඩක් බලමු මොනවද මේ කෑලි කියලා.
01. Version - IP packet එකේ version එක ගැන විස්තර තියාගන්න 4bit space එක. Version එක කිව්වේ අද අපිට IP version දෙකක් තියෙනවනේ IPv4 සහ IPv6 කියලා.
02. Internet Header Length (IHL) - මේක 4bit length එකක් තියෙන packet එකේ header details තියා ගන්න තැන.
03. Type of Service - මේක අලුතින් ටිකක් වෙනස් නමකින් හදුන්වනවා Differentiated Services Code Point (DSCP) කියලා. මේකේදි packet එක handle කරන විස්තර ඇතුලත් වෙනවා. ඒ වගේම මේකෙ තව කොටසක් තියෙනවා Explicit Congestion Notification (ECN) කියලා ඒකෙන් කරන්නේ දත්ත හුවමාරැ වෙන අන්ත දෙක අතර packet එකට හානියක් (drop වීමක්) නැතුව යැවීමට උපකාරී වීම. මේක හැබැයි optional field එකක්.
04. Total Length - මේ කොටසේ තමයි Packet එකේ data සහ header length (දිග) එක පිළිබද තොරතුරැ සදහන් වෙන්නේ. මේ කොටසේ දිග 16 bit වෙනවා.
05. Identification - අපි යවන Packet එක අනිත් packet වලින් වෙනස් කරලා හදුනගැනීම සදහා මේ කොටසේ වෙනම ID එකක් ඇතුලත් කරලා තියෙනවා. මේ කොටසත් 16 bit දිගයි.
06. Flags - අපි සාමාන්යයෙන් යවන Data එකක් packet එකක් බවට හරවද්දී ඒ data එකේ ප්රමාණය අනුව සමහර විට එකම data එක තව කුඩා කොටස් වලට කඩාගන්න සිද්ධ වෙනවා. මොකද IP Packet එකක data එකක් උපරිම ගෙන යන්න පුලුවන් සීමාවක් තියෙනවා. ඉතින් ලොකු data එකක් එයා කුඩා කොටස් වලට කඩා ගන්නවා ඒකට අපි කියනවා Fragmentation කියලා. මේ Flags කොටසේ අඩංගු වන්නේ එසේ Fragment කරන ලද packet හදුනා ගැනීමේ තොරතුරැයි.
07. Fragment Offset - මේ මගින් ඉහත අපි කතා කරපු Fragment වෙච්ච packet නැවත එකතු කිරීම වගේම ඒවයේ flags හදුනා ගැනීමත් කරනවා. මේ කොටස 13 bit දිගයි.
08. Time To Live (TTL) - 8 bit දිග මේ TTL එක මගිනුත් වැදගත් කාර්්ය භාරයක් කරනවා. මේකෙන් කරන්නේ Packet එකක් destination එකට ලගා වීමට යම් කාලයක් තීරණය කිරීම. යම් හෙයකින් ඒ කාලය තුලදී ඒ packet එකට destination එක හොයා ගන්න බැරිවුනොත් ඒ packet එක අයින් කරලා දානවා. මේකෙන් සිද්ධ වෙන වාසිය තමයි Packet එකක් Network එකේ අයාලේ යන එක නැවැත්වීම.
09. Protocol - නම කිව්ව පමණින්ම තේරෙනවනේ. මේ කොටසේ අඩංගු වෙන්නේ උඩින් තියෙන layers වලින් එන protocol පිළිබද තොරතුරැ. TCP සහ UDP වගේම Internet layer එකේ ARP, RARP තොරතුරැත් මේකට ඇතුලත් වෙනවා. මේකත් 8 bit field එකක්.
10. Header Checksum - මේකෙදි Header එකේ අඩංගු errors check කිරීමට අදාළ තොරතුරැ අඩංගුයි. ඔයගොල්ලන්ට මතක ඇති අපි TCP header එක ගැන කරද්දිත් මේ Checksum field එක තිබ්බා. මේක 16 bit field එකක්.
11. Source address - අපි data එක යවන තැන IP Address එක. 32 bit දිගයි.
12. Destination address - අපි Data එක යවන්න ඕනේ තැන IP Address එක. IP address එකක් 32 bit දිගයි.
13. Options - මේක Optional field එකක්. මේකේ Packet එකක debug, security, testing තොරතුරැ අඩංගුයි.
14 Data - අන්තිමට උඩ layers වලින් අපි එවන data එක. මේකත් 32 bit දිගයි.
මෙතනදි ඔයගොල්ලෝ ඉගෙන ගත්ත තවත් වැදගත් දෙයක් තියෙනවා. ඒ කියන්නේ IP Address එකක් 32 bit ඒ කියන්නේ 4 Bytes දිග බව. හැබැයි මතක තියා ගන්න ඒ IPv4 address වල Length එක බව.
අලුතින් අපි පාවිච්චි කරන IPv6 address එකක් 48 bit ඒ කියන්නේ 6 Bytes වෙනවා.
ඒ වගේම මම Fragmentation ගැන කියපු ටිකත් හිතේ තියාගන්න.




