ජාල පැකට් තැරැව්කරු TCP සම්බන්ධතා වල ප්‍රධාන අභිරහස්: ත්‍රිත්ව අතට අත දීමේ අවශ්‍යතාවය ප්‍රතික්ෂේප කරන ලදී

TCP සම්බන්ධතා සැකසුම
අපි වෙබ් බ්‍රවුස් කරන විට, විද්‍යුත් තැපෑලක් යවන විට හෝ ඔන්ලයින් ක්‍රීඩාවක් ක්‍රීඩා කරන විට, අපි බොහෝ විට ඒ පිටුපස ඇති සංකීර්ණ ජාල සම්බන්ධතාවය ගැන නොසිතමු. කෙසේ වෙතත්, අප සහ සේවාදායකය අතර ස්ථාවර සන්නිවේදනය සහතික කරන මෙම කුඩා පියවරයන් වේ. වැදගත්ම පියවරක් වන්නේ TCP සම්බන්ධතා සැකසුම වන අතර මෙහි හරය වන්නේ තුන් ආකාරයකින් අතට අත දීමයි.

තුන් ආකාරයකින් අතට අත දීමේ මූලධර්මය, ක්‍රියාවලිය සහ වැදගත්කම මෙම ලිපියෙන් විස්තරාත්මකව සාකච්ඡා කරනු ඇත. පියවරෙන් පියවර, ත්‍රි-මාර්ග අතට අත දීම අවශ්‍ය වන්නේ ඇයි, එය සම්බන්ධතා ස්ථායිතාව සහ විශ්වසනීයත්වය සහතික කරන්නේ කෙසේද සහ දත්ත හුවමාරුව සඳහා එය කෙතරම් වැදගත්ද යන්න අපි පැහැදිලි කරන්නෙමු. තුන් ආකාරයකින් අතට අත දීම පිළිබඳ ගැඹුරු අවබෝධයක් සමඟින්, ජාල සන්නිවේදනයේ යටින් පවතින යාන්ත්‍රණයන් පිළිබඳ වඩා හොඳ අවබෝධයක් සහ TCP සම්බන්ධතා වල විශ්වසනීයත්වය පිළිබඳ පැහැදිලි දැක්මක් අපට ලැබෙනු ඇත.

TCP තුන් ආකාරයකින් අතට අත දීමේ ක්‍රියාවලිය සහ රාජ්‍ය සංක්‍රාන්ති
TCP යනු සම්බන්ධතා-නැඹුරු ප්‍රවාහන ප්‍රොටෝකෝලයකි, දත්ත සම්ප්‍රේෂණයට පෙර සම්බන්ධතා ස්ථාපිත කිරීම අවශ්‍ය වේ. මෙම සම්බන්ධතා පිහිටුවීමේ ක්රියාවලිය තුන් ආකාරයකින් අතට අත දීමකින් සිදු කෙරේ.

 TCP තුන් ආකාරයකින් අතට අත දීම

එක් එක් සම්බන්ධතාව තුළ යවන TCP පැකට් දෙස සමීපව බලමු.

මුලදී, සේවාදායකයා සහ සේවාදායකය යන දෙකම වසා ඇත. පළමුව, සේවාදායකය වරායක් මත සක්‍රියව සවන් දෙන අතර LISTEN තත්වයේ පවතී, එනම් සේවාදායකය ආරම්භ කළ යුතු බවයි. මීලඟට, සේවාදායකයා වෙබ් පිටුවට ප්‍රවේශ වීම ආරම්භ කිරීමට සුදානම් වේ.එයට සේවාදායකය සමඟ සම්බන්ධතාවයක් ඇති කර ගැනීමට අවශ්‍ය වේ. පළමු සම්බන්ධතා පැකට්ටුවේ ආකෘතිය පහත පරිදි වේ:

 SYN පැකේජය

සේවාලාභියෙකු සම්බන්ධතාවයක් ආරම්භ කරන විට, එය අහඹු ආරම්භක අනුක්‍රමික අංකයක් (client_isn) ජනනය කර එය TCP ශීර්ෂයේ "අනුක්‍රමික අංකය" ක්ෂේත්‍රයේ තබයි. ඒ අතරම, පිටතට යන පැකට්ටුව SYN පැකට්ටුවක් බව පෙන්වීමට සේවාලාභියා SYN ධජ ස්ථානය 1 ට සකසයි. සේවාලාභියා පළමු SYN පැකට්ටුව සේවාදායකයට යැවීමෙන් සේවාදායකය සමඟ සම්බන්ධතාවයක් ඇති කර ගැනීමට කැමති බව පෙන්නුම් කරයි. මෙම පැකට්ටුවේ යෙදුම් ස්ථර දත්ත අඩංගු නොවේ (එනම්, දත්ත යැවූ). මෙම අවස්ථාවේදී, සේවාලාභියාගේ තත්ත්වය SYN-SENT ලෙස සලකුණු කර ඇත.

SYN+ACK පැකේජය

සේවාදායකයෙකුට සේවාලාභියෙකුගෙන් SYN පැකට්ටුවක් ලැබුණු විට, එය අහඹු ලෙස තමන්ගේම අනුක්‍රමික අංකය (server_isn) ආරම්භ කර පසුව එම අංකය TCP ශීර්ෂයේ "අනුක්‍රමික අංකය" ක්ෂේත්‍රයේ තබයි. මීළඟට, සේවාදායකය "පිළිගැනීමේ අංකය" ක්ෂේත්‍රය තුළ client_isn + 1 ඇතුළු කර SYN සහ ACK බිටු දෙකම 1 ලෙස සකසයි. අවසාන වශයෙන්, සේවාදායකයා විසින් යෙදුම්-ස්ථර දත්ත (සහ සේවාදායකය සඳහා දත්ත කිසිවක් අඩංගු නොවන) සේවාලාභියා වෙත පැකට්ටුව යවයි. යැවීමට). මෙම අවස්ථාවේදී, සේවාදායකය SYN-RCVD තත්වයේ ඇත.

ACK පැකට්ටුව

සේවාදායකයාට සේවාදායකයෙන් පැකට්ටුව ලැබුණු පසු, අවසාන පිළිතුරු පැකට්ටුවට ප්‍රතිචාර දැක්වීමට පහත ප්‍රශස්තිකරණයන් සිදු කිරීමට අවශ්‍ය වේ: පළමුව, සේවාලාභියා පිළිතුරු පැකට්ටුවේ TCP ශීර්ෂයේ ACK බිට් එක 1 ලෙස සකසයි; දෙවනුව, සේවාලාභියා "පිළිතුරු අංකය තහවුරු කරන්න" ක්ෂේත්රයේ server_isn + 1 අගය ඇතුල් කරයි; අවසාන වශයෙන්, සේවාදායකයා පැකට්ටුව සේවාදායකයට යවයි. මෙම පැකට්ටුවට සේවාදායකයාගේ සිට සේවාදායකය වෙත දත්ත රැගෙන යා හැක. මෙම මෙහෙයුම් අවසන් වූ පසු, සේවාලාභියා ස්ථාපිත තත්වයට ඇතුල් වනු ඇත.

සේවාදායකයාට සේවාලාභියාගෙන් පිළිතුරු පැකට්ටුව ලැබුණු පසු, එය ද ස්ථාපිත තත්ත්වයට මාරු වේ.

ඉහත ක්‍රියාවලියෙන් ඔබට පෙනෙන පරිදි, තුන් ආකාරයකින් අතට අත දීමක් සිදු කරන විට, තුන්වන අතට අත දීමෙන් දත්ත රැගෙන යාමට අවසර ඇත, නමුත් පළමු අතට අත දීමක් නොවේ. මෙය සම්මුඛ සාකච්ඡා වලදී නිතර අසන ප්‍රශ්නයකි. තුන් ආකාරයකින් අතට අත දීම අවසන් වූ පසු, දෙපාර්ශවයම ස්ථාපිත තත්වයට ඇතුළු වන අතර, සම්බන්ධතාවය සාර්ථකව ස්ථාපිත කර ඇති බව පෙන්නුම් කරයි, එම අවස්ථාවේදී සේවාදායකයා සහ සේවාදායකයා එකිනෙකාට දත්ත යැවීම ආරම්භ කළ හැකිය.

අතට අතදීමක් ඇයි? දෙපාරක් නෙවෙයි හතර පාරක්?
සාමාන්‍ය පිළිතුර නම්, "මන්ද තුන් ආකාරයකින් අතට අත දීමෙන් ලැබීමේ සහ යැවීමේ හැකියාව සහතික වන බැවිනි." මෙම පිළිතුර නිවැරදි නමුත් එය මතුපිට හේතුව පමණක් වන අතර ප්‍රධාන හේතුව ඉදිරිපත් නොකරයි. පහත දැක්වෙන පරිදි, මෙම ප්‍රශ්නය පිළිබඳ අපගේ අවබෝධය ගැඹුරු කිරීම සඳහා මම පැති තුනකින් ත්‍රිත්ව අතට අත දීම සඳහා හේතු විශ්ලේෂණය කරමි.

ත්‍රි-මාර්ග අතට අත දීම මගින් ඓතිහාසිකව පුනරාවර්තන සම්බන්ධතා ආරම්භ කිරීම ඵලදායී ලෙස වළක්වා ගත හැකිය (ප්‍රධාන හේතුව)
තුන් ආකාරයකින් අතට අත දීමෙන් දෙපාර්ශවයටම විශ්වාසනීය ආරම්භක අනුක්‍රමික අංකයක් ලැබී ඇති බව සහතික කරයි.
ත්‍රිවිධ අතට අත දීමෙන් සම්පත් නාස්ති වීම වැළකේ.

හේතුව 1: ඓතිහාසික අනුපිටපත් එකතු වීම වළක්වන්න
කෙටියෙන් කිවහොත්, තුන් ආකාරයකින් අතට අත දීමේ ප්‍රධාන හේතුව වන්නේ පැරණි අනුපිටපත් සම්බන්ධතා ආරම්භය නිසා ඇති වන ව්‍යාකූලත්වය වළක්වා ගැනීමයි. සංකීර්ණ ජාල පරිසරයක් තුළ, දත්ත පැකට් සම්ප්‍රේෂණය සෑම විටම නියමිත වේලාවට අනුව ගමනාන්ත ධාරකයට නොයවන අතර, ජාල තදබදය සහ වෙනත් හේතූන් නිසා පැරණි දත්ත පැකට් ගමනාන්ත ධාරකයට ප්‍රථමයෙන් පැමිණිය හැක. මෙය වලක්වා ගැනීම සඳහා, TCP සම්බන්ධතාවය ස්ථාපිත කිරීම සඳහා තුන් ආකාරයකින් අතට අත දීමක් භාවිතා කරයි.

තුන් ආකාරයකින් අතට අත දීම ඓතිහාසික අනුපිටපත් සම්බන්ධතා වළක්වයි

සේවාලාභියෙකු SYN සම්බන්ධතා ස්ථාපිත පැකට් කිහිපයක් අනුප්‍රාප්තිකව යවන විට, ජාල තදබදය වැනි අවස්ථාවන්හිදී, පහත සඳහන් දේ සිදු විය හැක:

1- පැරණි SYN පැකට් නවතම SYN පැකට් වලට පෙර සේවාදායකයට පැමිණේ.
2- පැරණි SYN පැකට්ටුව ලැබීමෙන් පසු සේවාදායකයා සේවාදායකයාට SYN + ACK පැකට්ටුවකට පිළිතුරු දෙනු ඇත.
3- සේවාලාභියාට SYN + ACK පැකට්ටුව ලැබුණු විට, එය තමන්ගේම සන්දර්භය අනුව සම්බන්ධතාවය ඓතිහාසික සම්බන්ධතාවයක් (අනුක්‍රමික අංකය කල් ඉකුත් වූ හෝ කල් ඉකුත් වූ) බව තීරණය කරයි, පසුව සම්බන්ධතාවය අත්හිටුවීමට RST පැකට්ටුව සේවාදායකයට යවයි.

අත් දෙකේ සම්බන්ධතාවයක් සමඟ, වත්මන් සම්බන්ධතාවය ඓතිහාසික සම්බන්ධතාවයක් දැයි තීරණය කිරීමට ක්රමයක් නොමැත. තුන්වන පැකට්ටුව යැවීමට සූදානම් වන විට සන්දර්භය මත පදනම්ව වත්මන් සම්බන්ධතාවය ඓතිහාසික සම්බන්ධතාවයක් දැයි තීරණය කිරීමට ත්‍රි-මාර්ග අතට අත දීම සේවාදායකයාට ඉඩ දෙයි:

1- එය ඓතිහාසික සම්බන්ධතාවයක් නම් (අනුක්‍රමික අංකය කල් ඉකුත් වූ හෝ කල් ඉකුත් වූ), තුන්වන අතට අත දීම මගින් එවන ලද පැකට්ටුව ඓතිහාසික සම්බන්ධතාවය නවතා දැමීමට RST පැකට්ටුවකි.
2- එය ඓතිහාසික සම්බන්ධයක් නොවේ නම්, තුන්වන වතාවට යවන ලද පැකට්ටුව ACK පැකට්ටුවක් වන අතර, සන්නිවේදනය කරන පාර්ශ්ව දෙක සාර්ථකව සම්බන්ධතාවය ස්ථාපිත කරයි.

එබැවින්, TCP ත්‍රි-මාර්ග අතට අත දීම භාවිතා කරන ප්‍රධාන හේතුව වන්නේ එය ඓතිහාසික සම්බන්ධතා වැළැක්වීම සඳහා සම්බන්ධතාවය ආරම්භ කිරීමයි.

හේතුව 2: දෙපාර්ශවයේම ආරම්භක අනුක්‍රමික අංක සමමුහුර්ත කිරීමට
TCP ප්‍රොටෝකෝලයෙහි දෙපසම අනුක්‍රමික අංකයක් පවත්වා ගත යුතු අතර එය විශ්වාසදායක සම්ප්‍රේෂණය සහතික කිරීම සඳහා ප්‍රධාන සාධකයකි. TCP සම්බන්ධතා වලදී අනුක්‍රමික අංක වැදගත් කාර්යභාරයක් ඉටු කරයි. ඒවා පහත දේ කරයි:

ග්‍රාහකයාට අනුපිටපත් දත්ත ඉවත් කර දත්තවල නිරවද්‍යතාවය සහතික කළ හැක.

දත්තවල අඛණ්ඩතාව සහතික කිරීම සඳහා ග්‍රාහකයාට අනුක්‍රමික අංකයේ අනුපිළිවෙලට පැකට් ලබා ගත හැක.

● අනුක්‍රමික අංකයට විශ්වාසදායක දත්ත සම්ප්‍රේෂණය සක්‍රීය කරමින් අනෙක් පාර්ශවයට ලැබී ඇති දත්ත පැකට්ටුව හඳුනා ගත හැක.

එබැවින්, TCP සම්බන්ධතාවයක් ස්ථාපිත කිරීමෙන් පසු, සේවාලාභියා විසින් SYN පැකට් ආරම්භක අනුක්‍රමික අංකය සමඟ යවන අතර සේවාදායකයාගේ SYN පැකට්ටුව සාර්ථක ලෙස පිළිගැනීමක් පෙන්නුම් කරන ACK පැකට්ටුවක් සමඟ පිළිතුරු දීමට සේවාදායකයට අවශ්‍ය වේ. ඉන්පසුව, සේවාදායකයා මුල් අනුක්‍රමික අංකය සමඟ SYN පැකට්ටුව සේවාදායකයා වෙත යවන අතර, ආරම්භක අනුක්‍රමික අංක විශ්වාසදායක ලෙස සමමුහුර්ත කර ඇති බව සහතික කිරීම සඳහා සේවාදායකයා පිළිතුරු දෙන තෙක් බලා සිටී.

දෙපාර්ශවයේම ආරම්භක අනුක්‍රමික අංක සමමුහුර්ත කරන්න

පාර්ශ්ව දෙකෙහිම ආරම්භක අනුක්‍රමික අංක විශ්වාසදායක ලෙස සමමුහුර්ත කිරීමට සිව්-මාර්ග අතට අත දීමක් කළ හැකි වුවද, දෙවන සහ තුන්වන පියවර තනි පියවරකට ඒකාබද්ධ කළ හැකි අතර, ප්‍රතිඵලයක් ලෙස තුන් ආකාරයකින් අතට අත දීමක් සිදුවේ. කෙසේ වෙතත්, අතට අත දීම් දෙකෙන් සහතික කළ හැක්කේ එක් පාර්ශ්වයක ආරම්භක අනුක්‍රමික අංකය අනෙක් පාර්ශ්වයට සාර්ථකව ලැබෙන බව පමණි, නමුත් දෙපාර්ශවයේම ආරම්භක අනුක්‍රමික අංකය තහවුරු කළ හැකි බවට සහතිකයක් නොමැත. එබැවින්, TCP සම්බන්ධතා වල ස්ථායීතාවය සහ විශ්වසනීයත්වය සහතික කිරීම සඳහා තුන් ආකාරයකින් අතට අත දීම හොඳම තේරීම වේ.

හේතුව 3: සම්පත් නාස්ති කිරීමෙන් වළකින්න
"හෑන්ඩ්ෂේක්" පමණක් තිබේ නම්, සේවාදායක SYN ඉල්ලීම ජාලය තුළ අවහිර වූ විට, සේවාදායකයා විසින් එවන ලද ACK පැකට්ටුව සේවාදායකයාට ලබා ගත නොහැක, එබැවින් SYN නැවත යවනු ලැබේ. කෙසේ වෙතත්, තුන්වන අතට අත දීමක් නොමැති බැවින්, සේවාදායකයාට සම්බන්ධතාවය ස්ථාපිත කිරීම සඳහා ACK පිළිගැනීමක් ලබා ගත්තේද යන්න තීරණය කළ නොහැක. එබැවින්, සේවාදායකයට සක්‍රීයව සම්බන්ධතාවයක් ස්ථාපිත කළ හැක්කේ එක් එක් SYN ඉල්ලීම ලැබීමෙන් පසුව පමණි. මෙය පහත සඳහන් දේට මග පාදයි:

සම්පත් නාස්තිය: සේවාලාභියාගේ SYN ඉල්ලීම අවහිර කර ඇත්නම්, එහි ප්‍රතිඵලයක් ලෙස බහු SYN පැකට් නැවත නැවත සම්ප්‍රේෂණය වේ නම්, ඉල්ලීම ලැබීමෙන් පසු සේවාදායකය අනවශ්‍ය වලංගු නොවන සම්බන්ධතා කිහිපයක් ස්ථාපිත කරයි. මෙය සේවාදායක සම්පත් අනවශ්‍ය ලෙස නාස්ති කිරීමට හේතු වේ.

පණිවිඩ රඳවා ගැනීම: තුන්වන අතට අත දීමක් නොමැතිකම හේතුවෙන්, සේවාදායකයාට සම්බන්ධතාවය ස්ථාපිත කිරීම සඳහා ACK පිළිගැනීම නිවැරදිව ලබා ගත්තේද යන්න දැන ගැනීමට සේවාදායකයට ක්‍රමයක් නොමැත. එහි ප්‍රතිඵලයක් වශයෙන්, පණිවිඩ ජාලය තුළ සිරවී ඇත්නම්, සේවාලාභියා විසින් නැවත නැවතත් SYN ඉල්ලීම් යවනු ඇත, එමඟින් සේවාදායකය නිරන්තරයෙන් නව සම්බන්ධතා ඇති කර ගනී. මෙය ජාල තදබදය සහ ප්‍රමාදය වැඩි කරන අතර සමස්ත ජාල ක්‍රියාකාරිත්වයට අහිතකර ලෙස බලපානු ඇත.

සම්පත් නාස්ති කිරීමෙන් වළකින්න

එබැවින්, ජාල සම්බන්ධතාවයේ ස්ථායීතාවය සහ විශ්වසනීයත්වය සහතික කිරීම සඳහා, TCP මෙම ගැටළු ඇතිවීම වළක්වා ගැනීම සඳහා සම්බන්ධතාවය ස්ථාපිත කිරීම සඳහා තුන්-මාර්ග අත්වැල භාවිතා කරයි.

සාරාංශය
ජාල පැකට් තැරැව්කරුTCP සම්බන්ධතා ස්ථාපිත කිරීම තුන් ආකාරයකින් අතට අත දීමකින් සිදු කෙරේ. තුන් ආකාරයකින් අතට අත දීම අතරතුර, සේවාදායකයා මුලින්ම SYN ධජය සහිත පැකට්ටුවක් සේවාදායකයට යවයි, එය සම්බන්ධතාවයක් ඇති කර ගැනීමට අවශ්‍ය බව දක්වයි. සේවාලාභියාගෙන් ඉල්ලීම ලැබීමෙන් පසු, සේවාදායකයා SYN සහ ACK ධජ සහිත පැකට්ටුවක් සේවාලාභියාට පිළිතුරු දෙයි, සම්බන්ධතා ඉල්ලීම පිළිගෙන ඇති බව හඟවා එහිම ආරම්භක අනුක්‍රමික අංකය යවයි. අවසාන වශයෙන්, සම්බන්ධතාවය සාර්ථකව ස්ථාපිත කර ඇති බව දැක්වීමට සේවාදායකයා සේවාදායකයට ACK ධජයක් සමඟ පිළිතුරු දෙයි. මේ අනුව, පාර්ශව දෙක ස්ථාපිත තත්වයේ පවතින අතර එකිනෙකාට දත්ත යැවීම ආරම්භ කළ හැකිය.

සාමාන්‍යයෙන්, TCP සම්බන්ධතා ස්ථාපිත කිරීම සඳහා තුන්-මාර්ග අතට අත දීමේ ක්‍රියාවලිය සැලසුම් කර ඇත්තේ සම්බන්ධතා ස්ථායිතාව සහ විශ්වසනීයත්වය සහතික කිරීම, ඓතිහාසික සම්බන්ධතා පිළිබඳ ව්‍යාකූලත්වය සහ සම්පත් නාස්තිය වළක්වා ගැනීම සහ දෙපාර්ශවයට දත්ත ලබා ගැනීමට සහ යැවීමට හැකි බව සහතික කිරීමට ය.


පසු කාලය: ජනවාරි-08-2025