Monday, December 6, 2010

Basic Switching - Address Learning

පොඩි විවේකයකින් පස්සෙ ඔන්න තවත් පොඩි පාඩමක්. අදත් subject එකනම් networking තමයි. switch එක ගැන පොඩි විස්තර ටිකක් තමයි කියන්න යන්නෙ. මුලින්ම කටිටියම දන්නවද මොකක්ද මේ switch එකක් කියන්නෙ කියල. දන්නෙ නැද්ද?? කමක් නෑ එහෙනම් මේක කියවන්නකො.

සරලවම කියලනවනම් switch එකකින් පුළුවන් network එකක තියල end devices ඒ කියන්නෙ PCs වගේ, කිහිපයක් එකිනෙකට connect කරන්න. ඒකට සම්බන්ධ උපකරණ අතර දත්ත switch කිරීම තමයි මෙයා කරන්නෙ. බලන්නකො ඉතින් දාල තියන නම කොචිචර ගැලපෙනවද කියල.

මෙන්න මේ රූපෙ පොඩ්ඩක් බලන්නකො. ඔය මැද තියෙන්නෙ switch එකනෙ. එකෙ වර්ගය තමයි Cisco 2950, ඒකෙ තියන පෝට් ගාන තමයි ඉස්සරහින් ලියල තියෙන්නෙ.(24) ඒ කියන්නෙ උපකරණ 24ක් මේ switch එකට එකවර සම්බන්ධ කරන්න පුළුවන්. වටේට හයිකරල තියෙන්නෙ PCs' Switch එකේ ඒව connect වෙන port number එක තමයි ඔය නිල්පාටින් ලියල තියෙන්නෙ. ඒ කියන්නෙ PORT 2 ට සම්බන්ධ කරල තියෙන්නෙ PC-A, ඒ විදියටම PORT4 - PC-B PORT6 - PC-C PORT8 - PC-D සම්බන්ධ කරල තියනව.

අද මම කියන්න හදන්නෙ මෙන්න මේ switch එකක මූලික functions ගැන. ඒ මොනවද දන්නවද??
  1. Address Learning
  2. Forwarding
  3. Filtering
  4. Loop Avoidance

ඔන්න ඔය ටික තමයි මේ switch එකකට කරන්න පුළුවන්. හරිම සරලයි නේද?? හරි එහෙනම් එකින් එක පටන් ගමු. මුලින්ම Address Learning.

ඔන්න මම මුලින්ම කිවුවනෙ මේ switch එකට පුළුවන් කියල එක PC එකක ඉදන් එන data තවත් එකකට යොමු කරන්න. ඉතින් මේක කරන්නෙ කොහොමද? උදාහරණයක් විදියට අපි හිතමු A සිට C ට දත්ත පැකට් එකක් යවන්න ඕන කියල. ඔයාල දන්නවද මේ දත්ත පැකට් එකක යවන්න ඔන දත්ත වලට අමතරව තව ගොඩක් දේවල් තියනව. ඒ අතරින් අපිට දැන් වැදගත් වෙන්නෙ මේ දත්ත පැකට් එකේ තියන යවන්නාගේ ලිපිනය (Source Mac Address) හා ලබන්නාගෙ ලිපිනය (Destination Mac Address) කියන දෙක තමයි. මොකද switch එක වැඩ කරන්නෙ මේ දෙන්න එක්ක (Layer 2) තමයි. මේවට අමතරව තවත් දත්ත ගොඩක් මේ පැකට් එකක තියනව. හරි මුලින්ම දත්ත පැකටි එක A සිට PORT2 හරහා switch එකට ඈතුළු වෙනව. දැන් switch එක මොකද කරන්නෙ?? කො කියන්න බලන්න. "ඒක C ට යවනව..." හපොයි එච්චර ලේසියෙන් යන්නෙ නෑ. ඊට කලින් වැඩ ගොඩක් තියනව.

තවත් වැදගත් දෙයක්. හැම switch එකකම MAT (MAC Address Table) කියල එකක් ඒ switch එක විසින් නිර්මාණය කරගන්නව. ඒකෙ තියෙන්නෙ ඒ switch එකට සම්බන්ධ උපකරන වල MAC address එක හා අදාල පොට් එක. ඒ කියන්නෙ තමන්ගෙ එක එක පොට් වල ඉන්න අයගෙ MAC Address. (MAC address එක කියන්නෙ සෑම පරිගණකයකටම අනන්ය වූ අංකයක්. මේක ඈතුලත් වෙන්නෙ Network Card එකේ. ඒක අපිට වෙනස් කරන්න බෑ. මේක IP Address එකත් එක්ක පටලගන්න එපා)

දැන් data packet එක PORT2 හරහා switch එකට එනව. ඒ ආපුගමන් switch එක කරන්නෙ ඒ පැකට් එකේ source mac address එක කියවනව. දැන් බලන්න ඒක මොකක්ද? Aගෙ MAC එක නේද? (ඈයි A නෙ එවුවෙ.) හරි ඔන්න දැන් switch එක යමක් ඉගන ගන්නව. මොකක්ද??? තමන්ගෙ PORT2 ඉන්න කෙනාගෙ MAC address එක මේක තමයි කියල. ඊට පස්සෙ ඒක තමන්ගෙ MAC Address Table එකට දාගන්නව තමන්ගෙ පෝට් 2 ඉන්නෙ Aකියල. හරි ඔන්න MAT එකේ එක row එකක් පිරුන.

ඊලගට switch එක අර data packet එකේ destination mac address එක කියවනව. (ඒක කාගෙද C ගෙනෙ.) කියවල ඉවර වෙලා මෙයා තමන්ගෙ MAC Address Table එකේ පොඩ්ඩක් හොයනව කො මේ C ඉන්නෙ මොන පෝට් එකේද කියල? හැබැයි MAT තාම C ගැන විස්තරයක් නෑනෙ. (මතකයි නේද MAT එකේ තාම තියෙන්නෙ PORT2 <- PCA කියල විතරයි.) ඔන්න ඉතින් දැන් switch එකට C හොයා ගන්න බැරි වුන නිසා එයා කරන්නෙ මේ Data Packet එක තමන්ගෙ ඉතිරි පෝට් (ඒ කියන්නෙ මේක ඈතුලට ආපු පෝට් එක හැර අනිත් ඒව) වලින් එලියට යවනව. ඒ කියන්නෙ පෝට් 4, 6, සහ 8 කියන ඒවයින්. ඔන්න ඕකට තමයි Flooding කියන්නෙ.

ඉතින් එතකොට PC-B PC-C PC-D කියල තුන් දෙනාම මේ Data Packet එක ලභා ගන්නව. හැබැයි PCB හා PCD දැනගන්නව මේක තමන්ට නෙමේ කියල ඉතින් එයාල නිකන් ඉන්නව. හැබැයි PC-C මේ data packet එක ලභාගෙන ආ මට මේක හම්බ වුනා කියල return එකක් යවනව Aට. ඒකත් පොඩි Data packet එකක්. පොඩ්ඩක් හිතන්න මේ return data packet එකේ Source Address එකයි Destination Address එකයි මොනවද කියල??? Source Address එක C ගෙ MAC Address එක නේද? ඒවගේම Destination Address එක A ගෙ MAC Address එක නේද? ඈයි මේ return packet එන යන්නෙ C සිට A ටනෙ.

හරි ඔන්න දැන් මේ Return Packet එක පෝට් 6 හරහා switch එකට එනව. දැන් switch එක මොකද කරන්නෙ. කලින් දේමයි. ඒ කියන්නෙ.... මේ පැකට් එකෙත් Source Address එක කියවල බලනව. ඒක C ගෙනෙ. දැන් switch එක ඉගන ගන්නව තමන්ගෙ පෝට් 6 ඉන්නෙ C කියල. එයා ඒකත් එයාගෙ Mac Address Table එකට හිමීට දාගන්නව. දැන් මොනවද මේ Table එකේ තියෙන්නෙ. (PORT2 <- PC-A PORT6 <- PC-C ) හරි ඊ ලගට switch එක මෙකක්ද බලන්නෙ. Return Packet එකේ Destination address එක. එක කියවල බලනව. ඒකෙ තියෙන්නෙ A ගෙ Address එකනෙ. ඊ ලගට මෙයා හොරාට MAC Address Table එකත් බලනව කෝ මේ A ඉන්නෙ කොහෙද කියල. ඒකෙන් හොයා ගන්නව A ඉන්නෙ පොට් 2කේ කියල. ඉතින් මෙයා මේ data packet එක පෝට් 2න් එලියට එවනව. එතකෙට ඒක හරියටම ලැබෙන්නෙ Aට විතරයි. බලන්න කලින් වගේ හැමෝටම යවන්න වුනේ නෑනෙ. ඔන්න ඕකට තමයි Forwarding කියන්නෙ.

නිකන් පැටලිලා වගේ නම් ආපහු සැරයක් කියවන්න. එච්චරම අමාරු නෑ. දැන් පෙඩ්ඩක් හිතන්න ආපු data packet එකක් A සිට C ට යවනව කියල. කලින් වගේම packet එක පෝට්2 න් switch එකට ඈතුළු වෙනව. switch එක ඒකෙ Source MAC එක කියවනව. ඒක A ගෙ. ඒකෙන් මෙයාට ඉගන ගන්න දෙයන් නෑ. මොකද මෙයා දැනටමත් දන්නව පෝට්2 A ඉන්නව තියල. ඈයි Mac Address Table එකේ තියෙනවනෙ. එහෙනම් MAT එක Update වෙන්න දෙයක් නෑ. හරි Destination Address එක බලනව. ඒක C ගෙ. C ඉන්නෙ මොන පෝට් එකේද කියල Table එකෙන් හොයාගෙන හරියට යවනව. ඉස්සෙල්ල වගෙ Flood කරන්න ඕනෙ නෑ. දැන් ඒක C ට හම්බ වුනාම එයා Return Data Packet එකක් යවනව. ඒක switch එකට පෝට් 6න් එනව. switch එක ඒකෙ Source Mac Address එක කියවල බලනව. හැබැයි අලුතෙන් ඉගන ගන්න දෙයක් නෑ. Destination Mac Address එක කියවල බලනව. MAT එකෙන් ඒක හොයාගෙන හරියට Aට යවනව. දැක්කද switch එක ඉගන ගන්න ඉක්මන. ඔන්න ඹය Address හා Port match කරගන්න එකට තමයි Address Learning කිවුවෙ.

තවත් පොඩ් ඒ වුනාට ගොඩක් වැදගත් දෙයක්. මේ ඉගන ගන්න වැඩ පිලිවෙලේ මොකක් හරි විශේෂ දෙයක් දැක්කෙ නැද්ද? හොදට බලන්න........ ආ හම්බවුනා නේද?? හරියටම හරි. ඒක තමයි.

SWITCH එක ඉගන ගන්නෙ Source MAC Address වලින් විතරයි. එයා Destination MAC Address වලින් ඉගන ගන්නෙ නෑ.

අදට ඈති නේද? ටිකක් සංකීර්ණයි වගේ තමයි. ඒත් දෙපාරක් විතර කියවන්න. එතකොට තේරුම් ගන්න පුළුවන්. ඊ ලගට පොඩ්ඩක් කල්පනා කරල බලන්න Data Packet එකක A සිට Bට යන්නෙ කොහොමද කියල?? ඉතුරු ටික ඊලග එකෙන් හොදේ.... තේරෙන්නෙ නෑ වගේනම් comment එකකින් අහන්නකො. බුදු සරණයි.

16 comments:

  1. ස්තූතියි මචං. මේකේ හුඟක් විස්තර තියනවා.

    ReplyDelete
  2. @Nadun Dissanayake
    ස්තූතියි comment එකට.

    ReplyDelete
  3. ලොවෙත් නෑ නෙ අයියේ...
    දිගටම මේ නෙට්වර්කින් පාඩම් ලියන්න.
    ඔයා ඒව කියල දෙන විදිහ හරිම අපූරුයි.

    ReplyDelete
  4. හොඳ වැඩක් සහෝ....දිගටම ලියමු..

    ReplyDelete
  5. ස්තූතියි.. දිගටම ලියන්න

    ReplyDelete
  6. එළකිරි..අද මට තෙරිල තිබ්බෙ දේ හොඳට මොලෙ ලස්සන ස්ටොරි එකක් එක්ක permanent write වුනා..ස්තූති...ඔයාගෙ ලිවිල්ලෙ හොඳෙ අන්න එකයි... දිගටම ලියපන් කොලූ....
    :t

    ReplyDelete
  7. ගින්දර වගේ ! මට මේව වටින හැටි උඹ දන්නේ නෑ මචං ..මේ මම මේව ලමයින්ට සමහ දේවල් උගන්වද්දී පාවිච්චි කරන්නද ? තරහ නෑ නේද ? මම කියන්නම් මෙවුවා මම ඉගනගත්තේ කේෂාන් අඩවියෙන් කියලා ..මට කොහොමත් මේව වටිනවා

    නෝට් හදන්න යන වෙලාව ඉතුරුයි නේ...හි .හි

    ජයවේවා !!

    ReplyDelete
  8. @raala
    ස්තූතියි comment එකට. ඔය කිවුවට මම කියල දෙන දේවල් තේරෙනවද කියල මටවත් sure නෑ.
    @dinesh @Chamli @සංජු
    ස්තූතියි comment එකට. වෙලාව ලැබෙන විදියට දිගටම අනිව ලියනව.
    @පැන්da
    ස්තූතියි පැන්ඩෝ. දන්නවනෙ ඉතින් තියන වැඩ ගොඩ. වෙලාව තියන විදියට ලියන්නම් හොදේ.වැඩ වැඩ වැඩ නේ....
    @හිස් අහස
    කිසිම තරහක් නෑ. මගේ උත්සහයෙන් තවත් කෙනෙක් ප්‍රයෝජනයක් ගන්නව කියන එක මට ලොකු සතුටක්. මේවගෙන් ඔන දෙයක් අරගෙන උගන්නන්න. මගේ නමවත් කියන්න එපා. කොලඔ ලමයි මේ පරිගණක ගැන දන්න හැම දෙයක්ම ගමේ ලමයත් දැන ගන්න ඕනෙ. උඔ කරන්නෙ ඒ වැඩේ. උගන්නන වැඩ වලට ඕන උදව්වක් කරන්නම්. ජය වේවි!!!!

    ReplyDelete
  9. නියමයි! කේශාන් හැක් කරන කොට වෙන්නේ මොකක්ද කියලත් පොඩ්ඩක් විතර විස්තර කරන්නකෝ. හැක් කරන්න නම් නෙවෙයි. එහෙම කරන අය ලග පාතක ඉන්නව නම් එයලගෙන් බේරිල ඉන්න පුළුවන්නේ දැන ගෙන හිටියොතින්...

    ReplyDelete
  10. වෙනදා වගෙම නියමයි මචෝ...!

    ReplyDelete
  11. වෙනද වගේම කේශාන් වැඩක් කලම කියල වැඩක් නෑ....
    නියමයි කේශා....
    ඔහොම යන්...............

    ReplyDelete
  12. @..සහන් නම් කියන්නේ...
    ස්තූතියි සහන්. මම දැන් තමයි දන්නෙ උඔත් Blog එකක් ලියනව කියල. නියමයි නේ Sinhala Blog අවකාශයට තවත් කෙනෙක්.
    @Shashika
    ස්තූතියි මචං. බලමුකො නේද වෙලාව තියන විදියට ලියනව.

    ReplyDelete
  13. ඔන්න මමත් පහුවෙලා හරි ඔයාගෙ ආටිකල් එක කියෙව්වා......... නියමයි මචන් එල........

    ReplyDelete

ටිකක් ඡනප්‍රිය ඒව