TCP හි රහස් අවිය: ජාල ප්‍රවාහ පාලනය සහ ජාල තදබදය පාලනය

TCP විශ්වසනීයත්ව ප්‍රවාහනය
විශ්වාසදායක ප්‍රවාහන ප්‍රොටෝකෝලයක් ලෙස අපි සැමට TCP ප්‍රොටෝකෝලය හුරුපුරුදුය, නමුත් එය ප්‍රවාහනයේ විශ්වසනීයත්වය සහතික කරන්නේ කෙසේද?

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

එබැවින්, විශ්වාසදායක සම්ප්‍රේෂණයක් ලබා ගැනීම සඳහා TCP අනුක්‍රමික අංකය, පිළිගැනීමේ පිළිතුර, නැවත යැවීම පාලනය, සම්බන්ධතා කළමනාකරණය සහ කවුළු පාලනය වැනි යාන්ත්‍රණ භාවිතා කරයි.

මෙම ලිපියෙන් අපි TCP හි ලිස්සන කවුළුව, ප්‍රවාහ පාලනය සහ තදබදය පාලනය කෙරෙහි අවධානය යොමු කරන්නෙමු. නැවත සම්ප්‍රේෂණ යාන්ත්‍රණය ඊළඟ කොටසේ වෙන වෙනම ආවරණය කෙරේ.

ජාල ප්‍රවාහ පාලනය
ජාල ප්‍රවාහ පාලනය හෝ ජාල ගමනාගමන පාලනය ලෙස හැඳින්වෙන මෙය ඇත්ත වශයෙන්ම නිෂ්පාදකයින් සහ පාරිභෝගිකයින් අතර ඇති සියුම් සම්බන්ධතාවයේ ප්‍රකාශනයකි. ඔබ රැකියාවේදී හෝ සම්මුඛ සාකච්ඡා වලදී මෙම අවස්ථාවට බොහෝ විට මුහුණ දී ඇති. නිෂ්පාදකයාගේ නිෂ්පාදනය කිරීමේ ධාරිතාව පාරිභෝගිකයාගේ පරිභෝජනය කිරීමේ ධාරිතාව ඉක්මවා ගියහොත්, එය පෝලිම දින නියමයක් නොමැතිව වර්ධනය වීමට හේතු වේ. වඩාත් බරපතල අවස්ථාවක, RabbitMQ පණිවිඩ ඕනෑවට වඩා ගොඩගැසෙන විට, එය සමස්ත MQ සේවාදායකයේම කාර්ය සාධනය පිරිහීමට හේතු විය හැකි බව ඔබ දැන සිටිය හැකිය. TCP සඳහාද මෙය සත්‍ය වේ; පරීක්ෂා නොකළහොත්, ඕනෑවට වඩා පණිවිඩ ජාලයට දමනු ලබන අතර, පාරිභෝගිකයින් ඔවුන්ගේ ධාරිතාව ඉක්මවා යනු ඇත, නිෂ්පාදකයින් අනුපිටපත් පණිවිඩ යැවීම දිගටම කරගෙන යනු ඇත, එය ජාලයේ ක්‍රියාකාරිත්වයට බෙහෙවින් බලපානු ඇත.

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

TCP මඟින් ලැබීමේ කවුළුවක් සඳහා විචල්‍යයක් භාවිතා කරමින් ප්‍රවාහ පාලනය සපයයි. ලැබීමේ කවුළුව මඟින් යවන්නාට තවමත් කොපමණ හැඹිලි ඉඩක් තිබේද යන්න පිළිබඳ ඇඟවීමක් ලබා දේ. ලබන්නාගේ සත්‍ය පිළිගැනීමේ ධාරිතාව අනුව යවන ලද දත්ත ප්‍රමාණය යවන්නා විසින් පාලනය කරයි.

ග්‍රාහක සත්කාරකය විසින් තමන්ට ලැබිය හැකි දත්ත ප්‍රමාණය යවන්නාට දැනුම් දෙන අතර, යවන්නා මෙම සීමාව දක්වා යවයි. මෙම සීමාව කවුළු ප්‍රමාණයයි, TCP ශීර්ෂය මතකද? ග්‍රාහකයාට ලැබිය හැකි හෝ ලැබීමට කැමති බයිට් ගණන දැක්වීමට භාවිතා කරන ලැබීමේ කවුළු ක්ෂේත්‍රයක් ඇත.

යවන්නාගේ සත්කාරකයා වරින් වර කවුළු පරීක්ෂණ පැකට්ටුවක් යවනු ඇත, එය ග්‍රාහක ධාරකයට තවමත් දත්ත පිළිගැනීමට හැකි දැයි අනාවරණය කර ගැනීමට භාවිතා කරයි. ග්‍රාහකයාගේ බෆරය පිරී ඉතිරී යාමේ අවදානමක් ඇති විට, යවන ලද දත්ත ප්‍රමාණය පාලනය කිරීමට යවන්නාට උපදෙස් දීම සඳහා කවුළු ප්‍රමාණය කුඩා අගයකට සකසා ඇත.

ජාල ප්‍රවාහ පාලන රූප සටහනක් මෙන්න:

රථවාහන පාලනය

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

පෙර ජාල ප්‍රවාහ පාලනයේදී, අපි මඟ හැරියේ යවන්නා ග්‍රාහකයාගේ හැඹිලිය දත්ත වලින් පුරවන එකයි, නමුත් ජාලය තුළ සිදුවන්නේ කුමක්දැයි අපි දැන සිටියේ නැත. සාමාන්‍යයෙන්, පරිගණක ජාල බෙදාගත් පරිසරයක පවතී. එහි ප්‍රතිඵලයක් ලෙස, අනෙකුත් සත්කාරක අතර සන්නිවේදනය හේතුවෙන් ජාල තදබදයක් ඇති විය හැකිය.

ජාලය තදබදයෙන් පෙළෙන විට, පැකට් විශාල සංඛ්‍යාවක් යැවීම දිගටම සිදුවුවහොත්, එය ප්‍රමාදය සහ පැකට් නැතිවීම වැනි ගැටළු ඇති කළ හැකිය. මෙම අවස්ථාවේදී, TCP දත්ත නැවත සම්ප්‍රේෂණය කරනු ඇත, නමුත් නැවත සම්ප්‍රේෂණය ජාලය මත බර වැඩි කරයි, එහි ප්‍රතිඵලයක් ලෙස විශාල ප්‍රමාදයන් සහ වැඩි පැකට් පාඩු ඇති වේ. මෙය විෂම චක්‍රයකට ඇතුළු වී විශාල වෙමින් පවතී.

මේ අනුව, TCP හට ජාලයේ සිදුවන දේ නොසලකා හැරිය නොහැක. ජාලය තදබදයක් ඇති විට, TCP එය යවන දත්ත ප්‍රමාණය අඩු කිරීමෙන් තමාවම කැප කරයි.

එබැවින්, තදබදය පාලනය කිරීම යෝජනා කර ඇති අතර, එය යවන්නාගේ දත්ත වලින් මුළු ජාලයම පිරවීම වැළැක්වීම අරමුණු කරයි. යවන්නා යැවිය යුතු දත්ත ප්‍රමාණය නියාමනය කිරීම සඳහා, TCP තදබදය කවුළුව ලෙස හැඳින්වෙන සංකල්පයක් නිර්වචනය කරයි. තදබදය පාලන ඇල්ගොරිතමය ජාලයේ තදබදයේ මට්ටමට අනුව තදබදය කවුළුවේ ප්‍රමාණය සකස් කරනු ඇත, එවිට යවන්නා විසින් යවන ලද දත්ත ප්‍රමාණය පාලනය කරනු ඇත.

තදබදය කවුළුවක් යනු කුමක්ද? මෙය යැවීමේ කවුළුව සමඟ ඇති සම්බන්ධය කුමක්ද?

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

යැවීමේ කවුළුව යනු යවන්නා සහ ලබන්නා අතර එකඟ වූ කවුළු ප්‍රමාණයකි, එය ග්‍රාහකයාට ලැබිය හැකි දත්ත ප්‍රමාණය පෙන්නුම් කරයි. තදබදය කවුළුව සහ යැවීමේ කවුළුව සම්බන්ධ වේ; යැවීමේ කවුළුව සාමාන්‍යයෙන් තදබදය සහ ලැබීමේ කවුළුවල අවම අගයට සමාන වේ, එනම්, swnd = min(cwnd, rwnd).

තදබදය සහිත කවුළු cwnd පහත පරිදි වෙනස් වේ:

ජාලයේ තදබදයක් නොමැති නම්, එනම් නැවත සම්ප්‍රේෂණ කල් ඉකුත්වීමක් සිදු නොවන්නේ නම්, තදබදය කවුළුව වැඩි වේ.

ජාලයේ තදබදයක් තිබේ නම්, තදබදය කවුළුව අඩු වේ.

ජාලය තදබදයෙන් පෙළෙනවාද නැද්ද යන්න යවන්නා තීරණය කරන්නේ නිශ්චිත කාලය තුළ ACK පිළිගැනීමේ පැකට්ටුව ලැබී ඇත්දැයි නිරීක්ෂණය කිරීමෙනි. යවන්නාට නිශ්චිත කාලය තුළ ACK පිළිගැනීමේ පැකට්ටුව නොලැබුනේ නම්, එය ජාලය තදබදයෙන් පෙළෙන බව සලකනු ලැබේ.

තදබදය කවුළුවට අමතරව, TCP තදබදය පාලන ඇල්ගොරිතම සාකච්ඡා කිරීමට කාලයයි. TCP තදබදය පාලන ඇල්ගොරිතම ප්‍රධාන කොටස් තුනකින් සමන්විත වේ:

මන්දගාමී ආරම්භය:මුලදී, cwnd තදබදය කවුළුව සාපේක්ෂව කුඩා වන අතර, යවන්නා ජාලයේ ධාරිතාවයට ඉක්මනින් අනුවර්තනය වීමට තදබදය කවුළුව ඝාතීය ලෙස වැඩි කරයි.
තදබදය වළක්වා ගැනීම:තදබදය කවුළුව යම් සීමාවක් ඉක්මවා ගිය පසු, යවන්නා තදබදය කවුළුවේ වර්ධන වේගය මන්දගාමී කිරීමට සහ ජාලය අධික ලෙස පැටවීම වළක්වා ගැනීමට රේඛීය ආකාරයකින් තදබදය කවුළුව වැඩි කරයි.
වේගවත් සුවය:තදබදය ඇති වුවහොත්, යවන්නා තදබදය කවුළුව අඩකින් අඩු කර වේගවත් ප්‍රතිසාධන තත්ත්වයට ඇතුළු වී ලැබුණු අනුපිටපත් ඇක් හරහා ජාල ප්‍රතිසාධනයේ ස්ථානය තීරණය කර, පසුව තදබදය කවුළුව වැඩි කිරීම දිගටම කරගෙන යයි.

මන්දගාමී ආරම්භය
TCP සම්බන්ධතාවයක් ස්ථාපිත කළ විට, තදබදය සහිත කවුළු cwnd මුලින් අවම MSS (උපරිම කොටස් ප්‍රමාණය) අගයකට සකසා ඇත. මේ ආකාරයෙන්, ආරම්භක යැවීමේ අනුපාතය MSS/RTT බයිට්/තත්පරය පමණ වේ. සත්‍ය ලබා ගත හැකි කලාප පළල සාමාන්‍යයෙන් MSS/RTT ට වඩා බෙහෙවින් විශාල බැවින්, TCP ප්‍රශස්ත යැවීමේ අනුපාතය සොයා ගැනීමට අවශ්‍ය වන අතර එය මන්දගාමී-ආරම්භක මාර්ගයෙන් ලබා ගත හැකිය.

මන්දගාමී ආරම්භක ක්‍රියාවලියේදී, තදබදය සහිත කවුළු cwnd හි අගය 1 MSS දක්වා ආරම්භ කරනු ලබන අතර, සම්ප්‍රේෂණය කරන ලද පැකට් කොටස හඳුනා ගන්නා සෑම අවස්ථාවකම, cwnd හි අගය එක් MSS කින් වැඩි කරනු ලැබේ, එනම්, cwnd හි අගය MSS 2 ක් බවට පත්වේ. ඉන්පසු, පැකට් කොටසක සෑම සාර්ථක සම්ප්‍රේෂණයක් සඳහා cwnd හි අගය දෙගුණ වේ, යනාදිය. නිශ්චිත වර්ධන ක්‍රියාවලිය පහත රූපයේ දැක්වේ.

 ජාල තදබදය පාලනය

කෙසේ වෙතත්, යැවීමේ අනුපාතය සැමවිටම වර්ධනය විය නොහැක; වර්ධනය කවදා හෝ අවසන් විය යුතුය. ඉතින්, යැවීමේ අනුපාතය වැඩිවීම අවසන් වන්නේ කවදාද? මන්දගාමී ආරම්භය සාමාන්‍යයෙන් යැවීමේ අනුපාතය වැඩිවීම අවසන් කරන්නේ ක්‍රම කිහිපයකින් එකකින්:

පළමු ක්‍රමය වන්නේ මන්දගාමී ආරම්භක යැවීමේ ක්‍රියාවලියේදී පැකට් නැතිවීමයි. පැකට් නැතිවීමක් සිදු වූ විට, TCP යවන්නාගේ තදබදය කවුළුව cwnd 1 ලෙස සකසා මන්දගාමී ආරම්භක ක්‍රියාවලිය නැවත ආරම්භ කරයි. මෙම අවස්ථාවේදී, මන්දගාමී ආරම්භක සීමාව ssthresh සංකල්පයක් හඳුන්වා දෙනු ලැබේ, එහි ආරම්භක අගය පැකට් අලාභය ජනනය කරන cwnd අගයෙන් අඩකි. එනම්, තදබදය අනාවරණය වූ විට, ssthresh අගය කවුළු අගයෙන් අඩකි.

දෙවන ක්‍රමය නම් මන්දගාමී-ආරම්භක සීමාව ssthresh හි අගය සමඟ සෘජුවම සහසම්බන්ධ වීමයි. තදබදය අනාවරණය වූ විට ssthresh හි අගය කවුළු අගයෙන් අඩක් වන බැවින්, cwnd ssthresh ට වඩා විශාල වූ විට සෑම දෙගුණ කිරීමකදීම පැකට් අලාභය සිදුවිය හැකිය. එබැවින්, cwnd ssthresh ලෙස සැකසීම වඩාත් සුදුසුය, එමඟින් TCP තදබදය පාලන මාදිලියට මාරු වී මන්දගාමී-ආරම්භය අවසන් වේ.

මන්දගාමී ආරම්භය අවසන් කළ හැකි අවසාන ක්‍රමය නම්, අතිරික්ත ඇක් තුනක් අනාවරණය වුවහොත්, TCP වේගවත් නැවත සම්ප්‍රේෂණයක් සිදු කර ප්‍රතිසාධන තත්ත්වයට ඇතුළු වීමයි. (ACK පැකට් තුනක් ඇත්තේ මන්දැයි පැහැදිලි නැතිනම්, එය නැවත සම්ප්‍රේෂණ යාන්ත්‍රණයේ වෙන වෙනම පැහැදිලි කෙරේ.)

තදබදය වැළැක්වීම
TCP තදබදය පාලනය කිරීමේ තත්වයට ඇතුළු වූ විට, cwnd තදබදයේ සීමාව ssthresh න් අඩකට සකසා ඇත. මෙයින් අදහස් කරන්නේ පැකට් කොටසක් ලැබෙන සෑම අවස්ථාවකම cwnd හි අගය දෙගුණ කළ නොහැකි බවයි. ඒ වෙනුවට, එක් එක් සම්ප්‍රේෂණය අවසන් වූ පසු cwnd හි අගය එක් MSS (උපරිම පැකට් කොටස් දිග) කින් පමණක් වැඩි කරන සාපේක්ෂව ගතානුගතික ප්‍රවේශයක් අනුගමනය කරනු ලැබේ. උදාහරණයක් ලෙස, පැකට් කොටස් 10 ක් පිළිගනු ලැබුවද, cwnd හි අගය වැඩි වන්නේ එක් MSS කින් පමණි. මෙය රේඛීය වර්ධන ආකෘතියක් වන අතර එයට වර්ධනය පිළිබඳ ඉහළ සීමාවක් ද ඇත. පැකට් අලාභය සිදු වූ විට, cwnd හි අගය MSS බවට වෙනස් වන අතර, ssthresh හි අගය cwnd හි අඩකට සකසා ඇත. නැතහොත් අතිරික්ත ACK ප්‍රතිචාර 3 ක් ලැබුණු විට එය MSS හි වර්ධනය ද නවත්වනු ඇත. cwnd හි අගය අඩකින් අඩු කිරීමෙන් පසුවත් අතිරික්ත ඇක් තුනක් ලැබෙන්නේ නම්, ssthresh හි අගය cwnd හි අගයෙන් අඩක් ලෙස සටහන් කර වේගවත් ප්‍රතිසාධන තත්ත්වය ඇතුළත් කරනු ලැබේ.

වේගවත් සුවය
වේගවත් ප්‍රතිසාධන තත්වයේදී, ලැබුණු සෑම අතිරික්ත ACK එකක් සඳහාම තදබදය සහිත කවුළු cwnd හි අගය එක් MSS එකකින් වැඩි කරනු ලැබේ, එනම්, අනුපිළිවෙලින් නොපැමිණෙන ACK. මෙය සම්ප්‍රේෂණ කාර්යක්ෂමතාව හැකිතාක් වැඩි දියුණු කිරීම සඳහා ජාලය තුළ සාර්ථකව සම්ප්‍රේෂණය කර ඇති පැකට් කොටස් භාවිතා කිරීමයි.

නැතිවූ පැකට් කොටසේ ACK එකක් පැමිණි විට, TCP මඟින් cwnd අගය අඩු කර තදබදය වළක්වා ගැනීමේ තත්වයට ඇතුළු වේ. මෙය තදබදය කවුළුවේ ප්‍රමාණය පාලනය කිරීම සහ ජාල තදබදය තවදුරටත් වැඩි වීම වළක්වා ගැනීමයි.

තදබදය පාලනය කිරීමේ තත්ත්වයෙන් පසු කල් ඉකුත්වීමක් සිදුවුවහොත්, ජාල තත්ත්වය වඩාත් බරපතල වන අතර TCP තදබදය වළක්වා ගැනීමේ තත්ත්වයෙන් මන්දගාමී-ආරම්භක තත්ත්වයට සංක්‍රමණය වේ. මෙම අවස්ථාවේදී, තදබදය කවුළු cwnd හි අගය 1 MSS ලෙස සකසා ඇති අතර, උපරිම පැකට් කොටසේ දිග සහ මන්දගාමී-ආරම්භක සීමාව ssthresh හි අගය cwnd හි අඩක් ලෙස සකසා ඇත. සම්ප්‍රේෂණ අනුපාතය සහ ජාල තදබදයේ මට්ටම සමතුලිත කිරීම සඳහා ජාලය යථා තත්ත්වයට පත් වූ පසු තදබදය කවුළුවේ ප්‍රමාණය නැවත ක්‍රමයෙන් වැඩි කිරීම මෙහි අරමුණයි.

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

ඊළඟ කොටසේදී, අපි TCP හි නැවත සම්ප්‍රේෂණ යාන්ත්‍රණය විස්තරාත්මකව පරීක්ෂා කරන්නෙමු. විශ්වාසදායක සම්ප්‍රේෂණයක් ලබා ගැනීම සඳහා නැවත සම්ප්‍රේෂණ යාන්ත්‍රණය TCP හි වැදගත් අංගයකි. නැතිවූ, දූෂිත හෝ ප්‍රමාද වූ දත්ත නැවත සම්ප්‍රේෂණය කිරීමෙන් එය විශ්වාසදායක දත්ත සම්ප්‍රේෂණය සහතික කරයි. නැවත සම්ප්‍රේෂණ යාන්ත්‍රණය ක්‍රියාත්මක කිරීමේ මූලධර්මය සහ උපාය මාර්ගය ඊළඟ කොටසේදී හඳුන්වා දී විස්තරාත්මකව විශ්ලේෂණය කෙරේ. රැඳී සිටින්න!


පළ කිරීමේ කාලය: 2025 පෙබරවාරි-24