කාලෙකට එන්නේ නෑ කිව්වට තැපැලෙන් ආයෙම ඇවිත් නේද? ඇත්තටම ආසාවෙන් කරන දෙයක් වෙනුවෙන් කෙනෙක් කොහොම හරි තමන්ගේ කාලයෙන් කොටසක් වෙන් කරගන්නවා ඒ දේ කරන්න. ඒක අනිවා සත්යයක්.
හරි දැන් අපි කතා කරමු මාතෘකාව ගැන. මම මේ TCP හා UDP Protocols ගැන OSL Layers හා Protocols මාතෘකා වලදී ටික ටික කලා. නමුත් සැරටම කථා කෙරුනේ නෑ කියලා තමයි හිත කියන්නේ. ඒක නිසා අද ඒ ගැන ගැඹුරට කතා කරමු.
මොනවද මේ කියන මහ ලොකු Protocols දෙක. ඇත්තටම මේ Protocols 02 අපිට හම්බු වෙන්නේ OSL Layers වල තියෙන Transport Layer එකේදී තමයි.බලන්න මේ පහත රූපසටහන. මේකෙන් ඔයාලට පෙන්නනවා ඒ ඒ ලේයර් එකට අදාල 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 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 ගැන කතා කළා.දන්න විස්තරත් ගොඩාක් කියලා දැම්මා. අදට ගිහින් එන්නම්
තේරූණද වැඩේ. දැන් මේ විදියට දත්ත යැවීමට පටන් ගත්තම යවන නොඩ් එකේ(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 ගැන කතා කළා.දන්න විස්තරත් ගොඩාක් කියලා දැම්මා. අදට ගිහින් එන්නම්
සුපිරි පැහැදිලිකිරීමක්
ReplyDeleteනියමයි
ReplyDeleteසුපිරි 🎉 ස්තුතියි ♥️🙏🏻
ReplyDelete