நெட்வொர்க் பாக்கெட் தரகர் 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 நிலையில் உள்ளது.

ஏசிகே பாக்கெட்

கிளையன்ட் சேவையகத்திலிருந்து பாக்கெட்டைப் பெற்றவுடன், இறுதி பதில் பாக்கெட்டுக்கு பதிலளிக்க பின்வரும் மேம்படுத்தல்களைச் செய்ய வேண்டும்: முதலில், கிளையன்ட் பதில் பாக்கெட்டின் TCP தலைப்பின் ACK பிட்டை 1 ஆக அமைக்கிறது; இரண்டாவதாக, கிளையன்ட் "பதில் எண்ணை உறுதிப்படுத்து" புலத்தில் server_isn + 1 மதிப்பை உள்ளிடுகிறது; இறுதியாக, கிளையன்ட் பாக்கெட்டை சேவையகத்திற்கு அனுப்புகிறது. இந்த பாக்கெட் கிளையண்டிலிருந்து சேவையகத்திற்கு தரவை எடுத்துச் செல்ல முடியும். இந்த செயல்பாடுகள் முடிந்ததும், கிளையன்ட் நிறுவப்பட்ட நிலைக்குச் செல்லும்.

சேவையகம் கிளையண்டிலிருந்து பதில் பாக்கெட்டைப் பெற்றவுடன், அது நிறுவப்பட்ட நிலைக்கு மாறுகிறது.

மேலே உள்ள செயல்முறையிலிருந்து நீங்கள் பார்க்க முடியும் என, மூன்று-வழி ஹேண்ட்ஷேக்கைச் செய்யும்போது, ​​மூன்றாவது ஹேண்ட்ஷேக் தரவை எடுத்துச் செல்ல அனுமதிக்கப்படுகிறது, ஆனால் முதல் இரண்டு ஹேண்ட்ஷேக்குகள் இல்லை. இது நேர்காணல்களில் அடிக்கடி கேட்கப்படும் ஒரு கேள்வி. மூன்று-வழி ஹேண்ட்ஷேக் முடிந்ததும், இரு தரப்பினரும் ESTABLISHED நிலைக்குச் செல்கிறார்கள், இது இணைப்பு வெற்றிகரமாக நிறுவப்பட்டதைக் குறிக்கிறது, அந்த நேரத்தில் கிளையன்ட் மற்றும் சர்வர் ஒருவருக்கொருவர் தரவை அனுப்பத் தொடங்கலாம்.

ஏன் மூன்று கைகுலுக்கல்கள்? இரண்டு முறை அல்ல, நான்கு முறை?
பொதுவான பதில், "ஏனெனில் மூன்று வழி கைகுலுக்கல் பெறுவதற்கும் அனுப்புவதற்கும் உத்தரவாதம் அளிக்கிறது." இந்த பதில் சரியானது, ஆனால் இது மேலோட்டமான காரணம் மட்டுமே, முக்கிய காரணத்தை முன்வைக்கவில்லை. பின்வருவனவற்றில், இந்த சிக்கலைப் பற்றிய நமது புரிதலை ஆழப்படுத்த மூன்று அம்சங்களில் இருந்து மூன்று கைகுலுக்கலுக்கான காரணங்களை பகுப்பாய்வு செய்வேன்.

மூன்று வழி கைகுலுக்கல் வரலாற்று ரீதியாக மீண்டும் மீண்டும் வரும் இணைப்புகளின் துவக்கத்தைத் திறம்படத் தவிர்க்கலாம் (முக்கிய காரணம்)
மூன்று வழி கைகுலுக்கல் இரு தரப்பினரும் நம்பகமான ஆரம்ப வரிசை எண்ணைப் பெற்றுள்ளதை உறுதி செய்கிறது.
மூன்று வழி கைகுலுக்கல் வளங்களை வீணாக்குவதைத் தவிர்க்கிறது.

காரணம் 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