sticky_note_PNG18952.jpg

Tuesday, February 21, 2017

TCP හා UDP Protocols ගැන වැඩිදුරටත්..

කාලෙකට එන්නේ නෑ කිව්වට තැපැලෙන් ආයෙම ඇවිත් නේද? ඇත්තටම ආසාවෙන් කරන දෙයක් වෙනුවෙන් කෙනෙක් කොහොම හරි තමන්ගේ කාලයෙන් කොටසක් වෙන් කරගන්නවා ඒ දේ කරන්න. ඒක අනිවා සත්‍යයක්.

හරි දැන් අපි කතා කරමු මාතෘකාව ගැන. මම මේ TCP හා UDP Protocols ගැන OSL Layers හා Protocols මාතෘකා වලදී ටික ටික කලා. නමුත් සැරටම කථා කෙරුනේ නෑ කියලා තමයි හිත කියන්නේ. ඒක නිසා අද ඒ ගැන ගැඹුරට කතා කරමු.

මොනවද මේ කියන මහ ලොකු Protocols දෙක. ඇත්තටම මේ Protocols 02 අපිට හම්බු වෙන්නේ OSL Layers වල තියෙන Transport Layer එකේදී තමයි.බලන්න මේ පහත රූපසටහන. මේකෙන් ඔයාලට පෙන්නනවා ඒ ඒ ලේයර් එකට අදාල  Protocols ටික.


දැන් දැක්කා නේද Transport Layer එකේ තියෙනවා TCP හා UDP කියලා Protocols 02ක්. මොනවද මේ  Protocols? ඇත්තටම මේවා Transport  Protocols.හරි අපි දැන් කථා කරමු මොනවද මේ සහ මොකටද ඕනේ වෙන්නේ කියලා. අන්තර්ජාලයේදී අපි එහා මෙහා යවන data packet එක හැදිලා තියෙනනේ මම පහතින් දක්වලා තියෙන structure එකට අනුව. 


මෙතැනදී අපි කතා කරන Transport layer එක ඇයි මේ structure එකට වැදගත් වෙන්නේ. අන්න ඒක තමයි මම දැන් පැහැදිලි කරන්න හදන්නේ. අපි ජාලය තුළ applications දෙකක් හෝ ඊට වැඩි ප්‍රමාණයක් භාවිතා කරමින් එක්වර කටයුතු කිරීමේදී ඒ කාර්යය සඳහා භාවිතයට ගැනෙන data packets එකම මොහොතක (semulataneously ) එහා මෙහා ගෙන යෑම  තමයි මෙන්න මේ ලේයර් එකෙන් සිද්ධ වෙන කාර්යය සරලම සිංහලෙන් කිව්වොත්. දැන් කොහොමද මේ කථාව වෙන්නේ. කියන්නම් සරලව

ඔන්න අමාරුවෙන් ඔයාලට මේ කථාව හගිස්සවන්න කියලා ඇනිමේෂන් Gif එකකුත් ගැටගහගත්තා.ඇත්තටම මේ දත්ත යැවීම කියන කතාව සිද්ධ වෙන්නේ ඉහතින් සඳහන් කරලා තියෙන විදියට කියලා දැන් ඔයාලට පැහැදිලි නේද.මතක තියාගන්න Transport layer එක විසින් එක නෙට්වර්ක් කනෙක්ෂන් එකක් සඳහා Ports 65000 පමණ ප්‍රමාණයක් ඇතිකරනු ලබනවා.මේ ports අතුරෙන් තෝරාගත් port එකට හෝ ports කිහිපය වෙත දත්ත යැවීම තමයි ඉහතින් සඳහන් කර රූපසටහනින් දක්වලා තියෙන්නේ.

දැන් මේ කියන Transport layer එක නියෝජනය කරන TCP හා UDP Protocols ගැන වෙන වෙනම කතා කරලා බලමු.

UDP - (User Datagram Protocol)

මේ Protocol එකේ විශේෂත්වය කුමක්ද? මේක connection less, Light weight Protocol එකක්. මේ Protocol එක හදලා තියෙන්නේ David.P.Reed කියන මහත්තයා විසින් 1980 දී පමණ.අර කිව්වත් වගේ මේ Protocol එක සරල කම නිසා තමයි ජනප්‍රිය වෙලා තියෙන්නේ. හැබැයි මේ කියන Protocol එක 100% විශ්වසය තියන්න පුළුවන් සහ Feedback එහෙම දෙන Protocol එකක් නම් නෙමේ.ඒ කියන්නේ අපි යවද්දී මොකක් හරි packet  එකක් මිසින් උනා හරි corrupt උනා හරි කියලා හිතන්න. දෙයියන්ගේ පිහිටයි ඒ ගැන කිසිම ආරංචියක් නම් ඔයාට ලොවෙත් ලැබෙන්නේ නෑ. ඒකාන්තයි. ඒක නිසා File, softwareවගේ දේවල් ඩවුන්ලෝඩ් කිරිල්ල හෝ database වගේ දේවල් සඳහා නම් මේ කියන UDP කියන Protocol එක භාවිතය කොහෙත්ම සුදුසු නෑ. මොකද මේ වගේ දේවල් වල සුළු දත්තයක් හරි වෙනස් වීමක් හෝ loss වීමක් සිදු උනොත් ඒ කතාව එතනින්ම නිමා වෙන නිසා තමයි UDP මේ කටයුතු සඳහා භාවිත නොකරන්නේ.තව දෙයක් මතක තියාගන්න UDP file header එක TCP file header එකට සාපේක්ෂව පොඩියි. ඒ කියන්නේ UDP packet එක TCP packet එකට වඩා පොඩියි
UDP File Header - 8 bytes
TCP File Header - 20 bytes

එතකොට UDP භාවිතා කරන්නේ? අන්න පොයින්ට් එක. ඔයා Youtube එකෙන් පට්ට වීඩියෝ එකක් බලනවා කියලා හිතන්න. ඒකේ එක බිට් එකක් හෝ දෙකක් හෝ loss විම නිසා ඔයා බලන වීඩියෝ එකට ලොකූ හානියක් සිදු වෙන්නේ නෑ. ඒ වගේම ඔයාට ඒක දැනීමක් වෙන්නෙත් නෑ. අනික feedback දිදී ඉන්න ගියොත් ඔයාට වීඩියෝ එක ලොඩ් වෙලා ඒක බලන්න වෙන්නේ තැපෑලෙන්.මොකද request කරන හැම packet එකටම feedback දෙන්න ගියොත් ඒක විකාරයක්නේ. හරි ඒ වගේම හිතන්න skype call එකක් ගන්නවා කියලා. ඒ වගේ අවස්ථාවකදී bit කිහිපයක loss වීමක් ඔයාගේ සංවාදයට ඒ හැටි බාදාවක් නෙමේ. එතැනදී ඔයාට වැදගත් වෙන්නේ ඉක්මනින් අනිත් කෙනොගේ ප්‍රතිචාරය දැනගැනීම. ඒක තැපෑලෙන් සිදු නොවීමට UDP protocol එකේ සරලකම වැදගත් වෙනවා. දැක්කා නේද UDP protocol එක ඔයාට එදිනෙදා වැඩවලට support කරන ආකාරය.

ඊලඟට TCP - (Transmission Control Protocol )

මේ Protocol එකේ විශේෂත්වය කුමක්ද? මේක Connection oriented සහ reliable Protocol එකක්. අපි දැන් කථා කරමු මේ protocol එකේ සුවිශේෂිතාවයන් පිළිබඳ. මේ protocol තුලින් ජාලය තුල නොඩ් 02ක් අතර සම්බන්ධතාවය ගොඩනඟා ගැනීමේදී 3-way handshake එකක් සිද්ධ වෙනවා පහත රූපසටහනේ දක්වලා තියෙන පරිදි.

තේරූණද වැඩේ. දැන් මේ විදියට දත්ත යැවීමට පටන් ගත්තම යවන නොඩ් එකේ(A) ඉදන් ලැබෙන නොඩ් එකට (B) දත්ත ගලාගෙන යාම ආරම්භ වෙනවා. එතැනදී B විසින් A වෙත Acknowledgement එකක් එවනවා ලැබුණු දත්ත පිලිබඳව. මෙතැනදී error detection එකක් සිද්ධ වෙනවා. හැබැයි මතක තියා ගන්න TCP හාදයා error correction වගේ ඇක්ෂන් එකක් නම් කරන්නේ නෑ. තව වැදගත් දෙයක් තමයි මෙයා in-order delivery කියන දේ.මන් දෙන්නම් උදාහරණයක්

හිතන්න abcd  efgh කියලා packet දෙකක් A කියන නොඩ් එකේ ඉදන් B කියන නොඩ් එකට යනවා කියලා. වැඩේ කියන්නේ කලවම් වෙලා efgh කියන packet එක තමයි මුලින්ම යැවිලා තියෙන්නේ. හැබැයි TCP protocol එකෙන් එහෙම mix උන packets ටික in-order හදා ගෙන තමයි B නොඩ් එකට deliver කරන්නේ. සාධාරණ හාදයෙක් නේද (ඒ කිව්වේ මුලින් deliver කරන්නේ abcd කියන packet එක හොඳේ)

තව දෙයක් තමයි මෙයා නෙට්වර්ක් එක ට්‍රැෆික් සහිතනම් ට්‍රැෆික් එක ඉවර වෙනකම් delay කරගෙන ඉදලත් delivery එක කරනවා. ඒ අතින් නම් සුපිරි නේද (congestion). මේ ගැන වැඩිදුර කතා කරමු ඉස්සරහට.

මේකේ තියන අවාසි තමයි header size එක ප්‍රමාණයෙන් වැඩියි. ඒක නිසා packet එක බරින් වැඩියි. තව දෙයක් තමයි මේක හරහා ක්ෂණික ප්‍රතිචාර, පියවරයන් ගැනීම අපහසුයි. මොකද feedback එක්ක එන නිසා. ඒ නිසා මුලින් UDP වල වගේ දේවල් කරන්න මේ protocol එකෙන් අමාරුයි. තේරුණාද වැඩේ සරලව. file transfer වගේ දේවල් remote access (ssh) වගේ වැඩ, database updating/maintains තව දහසකුත් කාර්යයන් සඳහා TCP protocol එක මිනිස්සු බහුලව භාවිතා කරනවා.

ඔන්න සරලව කතාව ආරම්භ කරපු protocol 02 ගැන කතා කළා.දන්න විස්තරත් ගොඩාක් කියලා දැම්මා. අදට ගිහින් එන්නම්





Friday, February 17, 2017

MAC Address එක ගැන දන්න හැමදේම

අපි කලින් පොස්ට් එකෙන් කථා කලා නේද Ethernet එක ගැන.හරි මේ Ethernet පරිසරයේ තියෙන host එකක් වෙන් කරලා අඳුරගන්න බාවිතා කරන ලිපිනය තමයි MAC Address එක කියලා කියන්නේ.මේ ගැන කලිනුත් ටිකක් කතා කලා කියලා මේ බ්ලොග් එකේ හැම දේම බැලුව අය දන්නවා ඇති. අද ටිකක් විතර වැඩිපුර කතා කරමු MAC Address එක ගැන.

අපි හැමෝටම තමන්ගේ අනන්‍යතාවය අඳුගන්න තියෙනවා නේද identity card එකක්. මේකත් ඒ වගේ තමයි Ethernet එකේදී නොඩ් එකක් අඳුරගන්න භාවිතා වෙන්නේ අපි මේ කතා කරන්න යන MAC Address එක. මේ කියන ඇඩ්‍රස් එක  කොහෙද තියෙන්නේ. මේක තියෙන්නේ පරිගණකයට සම්බන්ධ කරන ලද නෙට්වර්ක් කාඩ් එකේ.NIC (Network Interface Card) මේ කියන MAC Address එක මේ NIC එක නිශ්පාදනය කරන හාදයාම (Manufacturer) ම කාඩ් එකේ Firmware එකට බට් කරලා (ඇතුළත් කරලා )තමයි වෙලඳපලට එවන්නේ.මේ කියන MAC Address එකටම පෙලක් කට්ටිය Hardware Address කියනවා.

අපි මේ කතා කරන MAC Address එක බයිට් (bytes) 06 ක ප්‍රමාණයකින් සමන්විතයි. ඇත්තටම මේනවද මේ බයිට් (bytes) 06 යේ තියෙන්නේ. බයිට් (bytes) 06ක් කිව්වේ බිට් 48ක් නේ නේ.....ද?(මතකනේ ගණනය කරන විදිය . Byte 01 = Bit 08 යි). මේ කියපු 06 Bytes ඇත්තටම කොටස් 02කට බෙදෙනවා. මේ NIC එක හදන හාදයා (Manufacturer) මේකට අන්තර්ජාතික වශයෙන් සම්මත කේතයන් (IEEE) සඳහා 03 bytes යොදා ගන්නවා.එ කේතයට කියන්නේ Organizationally Unique Identifier කියලා. කෙටියෙන් කියනවා නම් සහ ෆීල්ඩ් එකේ බාවිතා වෙන්නේ (OUI) කියන වචනේ කෙටි කරලා.ඉතිරි 03 bytes වල තමයි නිශ්පාදකයා ඇතුළත් කරන කේත සඳහා බාවිතා කරනු ලබන්නේ.ඒ කේතයන් නම් කරනවා Globally Administered Address කියන තාක්ෂණික වචනේ. මෙන්න මේක බලන්න



දැන් කතාව තේරුණා නේද මේ වෙනකම්.මේ කියන MAC Address එක සමාන්‍යෙයන් ලියනු ලබන්නේ නම් hexadecimal digits 12කින් තමයි.hexadecimal කිව්වේ 16 පාදයේ ඕං. හරියට මේ වගේ සීන් එකක්.
D8-D3-85-EA-1B-EE

මේ හැම hexadecimal digit එකක්ම බ්ට් 04 ක ප්‍රමාණයකින් සමන්විතයිලූ. මුල් hexadecimal digits 06න් තමයි මේ MAC Address එක නිශ්පාදනය කරපු නිශ්පාදකයාව විස්තර කරන්නේ .මේකේ විදියට නම් Hewlett Packard නොහොත් කවුරුත් දන්න hp Brand එක)

දැන් මම කියන්නම් ඔයාලා කොහොමද තමුන්ගේ මැෂින් එකේ MAC Address එක අඳුරගන්නේ කියලා

1. මුලින්ම යන්න start menu එකට----> ගිහින් එකේ search box එකේ ටයිප් කරන්න cmd කියලා
2. දැන් ඔයාලට command prompt එක ලැබෙයි-----> එකේ ටයිප් කරන්න ipconig/all කියලා


ඔයාලට මෙන්න මේ වගේ සීන් එකක් ඩිස්ප්ලේ වෙයි. මම මේකේ පොඩි පොඩි ෆිගර් ටිකක් මැකුවා මතු ආරක්ෂාවට කියලා.එකෙන්ම සමා වෙන්න හොඳේ. දැන් එතකොට ලිනක් වගේ එවා පාවිච්චි කරන ප්‍රබුද්ධ පුද්ගලයින්ට (එහෙම කිව්වට සමාවෙන්න.ඇත්තටම ලිනක්ස් ආතල් වින්ඩෝස් උන් දන්නේ නෑ ලොවෙත්.sudo තමයි නේද)

එයාලත් යන්න shell එකට----->.ගිහින් ගහන්න ipconfig කියලා.එකකොට එයි ලස්සනට පේලියට මේ වගේ 


මෙන්න මේ කියන HWaddr සටහනෙන් පෙන්නන්නෙත්  MAC Address එකම තමයි.කට්ටියම  MAC Address එක ගැන මොනාම හරි ඉගෙන ගත්ත නේද. එහෙනම් එකෙන්ම සන්තෝෂයි. 

අයේම තව ටික කාලයක් යයි පෝස්ට් එකක් දාන්න.මොකද විබාගේ අත ලඟ. ඒ උනත් දිගටම බ්ලොග් එකත් එක්ක ඉන්න. නොදන්න දෙයක් තියෙනවා නම් chat එකේ ලියලා යන්න.මන් අනිවා රිප්ලයි කරන්නම්. නැත්නම් මේල් එකක් දාන්න. බුදු සරණයි..!

Thursday, February 16, 2017

Ethernet ගැන දන්න සිංහලෙන්

ටික දවසකින් මේ පැත්තට එන්න බැරි උනේ විභාගයක් අතලඟ නිසා, අම්බානෙක කාර්යබහුල උන නිසා හා අන්තර්ජාල පහසුකම් ලබා ගැනීම දුෂ්කර උන නිසා. හරි ඔන්න අද සුපිරි මාතෘකාවක් අරන් ආවා. මම අද කියන්න යන්නේ අපි හැමෝම අහලා තියෙන ඒත් හරිහමන් අදහසක් ගන්න බැරි තවත් ජාල සමඟ සම්බන්ධ වචනයක් ගැන කථාවක්. මේක නිකන් ගුගල් හොයලා බැලුවොත් නම් ලංකාවේ එක බ්ලොග් එකකවත් හොයාගන්න නෑ. ඇත්තටම ඇයි ඒ. මම අද කියන්න යන්නේ Ethernet ගැන.මුලින් දැන ගන්න ටිකක් අමාරු උණත් පස්සේ ආස උන මාතෘකාවක් තමයි මේක

ඇත්තටම මොකක්ද මේ Ethernet කියන්නේ.වචනේ පරිසමාප්ති අර්තයෙන්ම මේක network architecture එකක් හොදේ. ඒ කියන්නේ අපි මුලින් කතා කල topology ,FDDI, ATM වගේ මේක අද කාලේ ජනප්‍රිය network architecture එකක්.මේ ක්‍රමය 1980 වගේ කාලයේදී තමයි වානිජ වශයෙන් හඳුන්වා දීලා තියෙන්නේ. තේරුණද? මේ network architecture එක එහෙමත් නැතිනම් Ethernet බහුලවම භාවිතා කරන්නේ LAN, MAN සඳහා සහ WAN සඳහාත් භාවිතා කරනවා. මේක අන්තර්ජාතික වහයෙන් පිළිගැනීමකට ලක්වෙලා  IEEE 802.3 කියන සම්මතයෙන් ආවේ 1983 වර්ෂයේදී.මේ Ethernet බහුල වශයෙන් ජනප්‍රිය වෙන්න හේතුව තමයි විශාල දත්ත පරාසයක් (bit rate) හැසිරවිය හැකිවීම සහ දිගු දුර සබැඳියාවන් නිසා. 

ඔන්න Ethernet network එකකට දෙන්න පුළුවන් සරල උදාහරණයක්



මේ කියන Ethernet සංකල්පය පටන් ගත්ත යුගයේ 10base5 නෙට්වර්ක්ස් coaxial cable (අමු තඹ කම්බියෙන්) දිව්වත් කාලය මැව් වෙනසත් සමගින් twisted pair, fiber optic වැනි කේබල් සමඟින් Ethernet hub, switches වැනි උපාංග වලින් සන්නද්ධව ඉදිරියට ආවා. මෙතැනදී සරලව දක්වන්න පුළුවන් දේ තමයි විවිධාකාර වූ ජාල සමඟින් එක්ව අපි මේ කථා කරන Ethernet එක ගොඩනඟන්න හැකියාව ලැබීම තමයි මේ සංකල්පය ප්‍රචලිත වෙන්න හේතුව

දැන් අපි කතා කරමු Ethernet Frame එහෙමත් නැත්නම් payload එක ගැන. දන්න සිංහලෙන් කිව්වොත් මේ කියන Ethernet එකේ යවන හෝ එවන දත්තයක් (data packet ) එකක් ගමන් ගන්නා විදිය තමයි මන් මේ කිව්ව frame එක.


මේකතමයි Ethernet  එකේ අපි යවන packet එකක header එක.තව මේකත් එක්ක payload එක එහෙමත් නැත්නම් අපි යවන දත්තය යනවා හොඳේ.දැන් අපි බලමු මේ header එකේ විස්තර වෙන වෙනම.

preamble - මේ කියන field එකෙන් තමයි නෙට්වර්ක් එකට ඉඟියක් එහෙමත් නැත්නම් සංඥාවක් දෙන්නේ frame එක එහා මෙහා යන ගමන ආරම්භ කළා කියලා. ටෙක්නිකල් විදියට synchronization වෙනවා කියලා දන්වන්නේ මේ header කෑල්ලෙන්.

SFD - (Start Frame Delimiter) - මෙතැනදී ලකුනු කරගන්නවා අපිට යවන්න අවශ්‍ය නොඩ් එකේ එහෙමත් නැත්නම් ජාලයකනම් යවන්න ඒනේ පරිගනකයේ MAC Address එක



තවම ඉවර නෑ හොඳේ.....

 
Angry Birds -  Help