நெட்வொர்க் பாக்கெட் தரகர் TCP இணைப்புகளின் முக்கிய மர்மங்கள்: டிரிபிள் ஹேண்ட்ஷேக்கின் தேவையை நீக்கியது

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

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

TCP மூன்று வழி ஹேண்ட்ஷேக் செயல்முறை மற்றும் மாநில மாற்றங்கள்
TCP என்பது ஒரு இணைப்பு சார்ந்த போக்குவரத்து நெறிமுறையாகும், இதற்கு தரவு பரிமாற்றத்திற்கு முன் இணைப்பு நிறுவுதல் தேவைப்படுகிறது. இந்த இணைப்பை நிறுவுதல் செயல்முறை மூன்று வழி கைகுலுக்கலின் மூலம் செய்யப்படுகிறது.

 TCP மூன்று வழி கைகுலுக்கல்

ஒவ்வொரு இணைப்பிலும் அனுப்பப்படும் TCP பாக்கெட்டுகளை இன்னும் விரிவாகப் பார்ப்போம்.

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

 SYN பாக்கெட்

ஒரு கிளையன்ட் இணைப்பைத் தொடங்கும் போது, ​​அது ஒரு சீரற்ற ஆரம்ப வரிசை எண்ணை (client_isn) உருவாக்கி, அதை TCP தலைப்பின் "வரிசை எண்" புலத்தில் வைக்கிறது. அதே நேரத்தில், வெளியேறும் பாக்கெட் ஒரு SYN பாக்கெட் என்பதைக் குறிக்க கிளையன்ட் SYN கொடி நிலையை 1 ஆக அமைக்கிறது. முதல் SYN பாக்கெட்டை சேவையகத்திற்கு அனுப்புவதன் மூலம் சேவையகத்துடன் இணைப்பை ஏற்படுத்த விரும்புவதாக கிளையன்ட் குறிப்பிடுகிறார். இந்த பாக்கெட்டில் பயன்பாட்டு அடுக்கு தரவு இல்லை (அதாவது அனுப்பப்பட்ட தரவு). இந்த கட்டத்தில், கிளையண்டின் நிலை SYN-SENT எனக் குறிக்கப்படுகிறது.

SYN+ACK பாக்கெட்

ஒரு சேவையகம் ஒரு கிளையண்டிலிருந்து SYN பாக்கெட்டைப் பெறும்போது, ​​அது அதன் சொந்த வரிசை எண்ணை (server_isn) தோராயமாக துவக்குகிறது, பின்னர் அந்த எண்ணை TCP தலைப்பின் "வரிசை எண்" புலத்தில் வைக்கிறது. அடுத்து, சேவையகம் "ஒப்புகை எண்" புலத்தில் வாடிக்கையாளர்_isn + 1 ஐ உள்ளிட்டு, SYN மற்றும் ACK பிட்கள் இரண்டையும் 1 ஆக அமைக்கிறது. இறுதியாக, சேவையகம் கிளையண்டிற்கு பாக்கெட்டை அனுப்புகிறது, அதில் பயன்பாட்டு அடுக்கு தரவு இல்லை (மற்றும் சேவையகத்திற்கான தரவு இல்லை. அனுப்ப). இந்த நேரத்தில், சேவையகம் SYN-RCVD நிலையில் உள்ளது.

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

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

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

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

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

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

காரணம் 1: வரலாற்று நகல் இணைப்புகளைத் தவிர்க்கவும்
சுருக்கமாகச் சொன்னால், பழைய டூப்ளிகேட் இணைப்பு துவக்கத்தால் ஏற்படும் குழப்பத்தைத் தவிர்ப்பதே மும்முனை கைகுலுக்கலுக்கு முக்கியக் காரணம். சிக்கலான நெட்வொர்க் சூழலில், தரவு பாக்கெட்டுகளின் பரிமாற்றம் குறிப்பிட்ட நேரத்திற்கு ஏற்ப இலக்கு ஹோஸ்டுக்கு எப்போதும் அனுப்பப்படுவதில்லை, மேலும் நெட்வொர்க் நெரிசல் மற்றும் பிற காரணங்களால் பழைய தரவு பாக்கெட்டுகள் முதலில் இலக்கு ஹோஸ்டுக்கு வரக்கூடும். இதைத் தவிர்க்க, இணைப்பை நிறுவ டிசிபி மூன்று வழி ஹேண்ட்ஷேக்கைப் பயன்படுத்துகிறது.

மூன்று வழி கைகுலுக்கல் வரலாற்று நகல் இணைப்புகளைத் தவிர்க்கிறது

ஒரு கிளையன்ட் தொடர்ச்சியாக பல 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 இந்த சிக்கல்கள் ஏற்படுவதைத் தவிர்க்க இணைப்பை நிறுவ மூன்று வழி கைகுலுக்கலைப் பயன்படுத்துகிறது.

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

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


இடுகை நேரம்: ஜனவரி-08-2025