ట్రాన్స్మిషన్ కంట్రోల్ ప్రోటోకాల్ అనేది OSI లేదా TCP/IP మోడల్ కోసం ట్రాన్స్పోర్ట్ లేయర్లో చాలా ముఖ్యమైన ప్రోటోకాల్. TCPలో అనేక ప్రయోజనాలు ఉన్నాయి:
- పంపిన ఏదైనా డేటా కొంత సమయంలో రిసీవర్ ద్వారా గుర్తించబడకపోతే TCP తిరిగి ప్రసారం చేస్తుంది.
- TCP డేటాను పంపే ముందు కొంత కనెక్షన్ని ఏర్పాటు చేస్తుంది. మేము ఆ కనెక్షన్ని 3-వే హ్యాండ్షేక్ అని పిలుస్తాము.
- TCP రద్దీ నియంత్రణ యంత్రాంగాన్ని కలిగి ఉంది.
- TCP కొన్ని పద్ధతులను ఉపయోగించి లోపాన్ని గుర్తించగలదు.
మనం ప్రధానంగా TCP 3-వే హ్యాండ్షేక్ గురించి నేర్చుకుందాం. 3-వే హ్యాండ్షేక్ కోసం వైర్షార్క్లోని ముఖ్యమైన ఫీల్డ్ల గురించి కూడా తెలుసుకుందాం.
3-మార్గం హ్యాండ్షేక్
3-మార్గం హ్యాండ్షేక్లో జరిగే మూడు ఫ్రేమ్ల మార్పిడిలు ఉన్నాయి:
మొదటి ఫ్రేమ్ ఎల్లప్పుడూ క్లయింట్ ద్వారా సర్వర్కు పంపబడుతుంది. దీన్ని ఒక సాధారణ రేఖాచిత్రం నుండి అర్థం చేసుకుందాం:
'క్లయింట్ సర్వర్'
ఫ్రేమ్1: క్లయింట్ SYN ఫ్రేమ్ని సర్వర్కు పంపుతుంది---------------------------------><--------------------------------------------- సర్వర్ SYN+ACK ఫ్రేమ్ని పంపుతుంది క్లయింట్కు: ఫ్రేమ్2
ఫ్రేమ్3: క్లయింట్ ACK ఫ్రేమ్ను సర్వర్కు పంపుతుంది--------------------------------->
వైర్షార్క్లో ఈ మూడు ఫ్రేమ్లను మనం చూడవచ్చు. అన్ని TCP ఫ్రేమ్లను చూడటానికి “tcp” ఫిల్టర్ను Wiresharkలో ఉపయోగించవచ్చు. మూడు ఫ్రేమ్ల స్క్రీన్షాట్ ఇక్కడ ఉంది:
ఇప్పుడు మనం మూడు ఫ్రేమ్లను వివరంగా అర్థం చేసుకుందాం:
SYN
ఈ ఫ్రేమ్ సర్వర్కు తెలియజేయడానికి క్లయింట్ యొక్క సామర్థ్యాల గురించి చాలా సమాచారాన్ని కలిగి ఉంది. కింది స్క్రీన్షాట్ SYN ఫ్రేమ్లోని అన్ని ముఖ్యమైన ఫీల్డ్లను చూపుతుంది:
SYN ఫ్రేమ్ కోసం ఇక్కడ ముఖ్యమైన ఫీల్డ్లు ఉన్నాయి:
మూల పోర్ట్: 50602డెస్టినేషన్ పోర్ట్: 80
సీక్వెన్స్ నంబర్: 0
రసీదు సంఖ్య: 0
హెడర్ పొడవు: 32 బైట్లు
ఫ్లాగ్లు: 0x002 (SYN):
రసీదు: సెట్ చేయబడలేదు
పుష్: సెట్ కాలేదు
రీసెట్: సెట్ చేయలేదు
Syn: సెట్ ------> ఈ బిట్ సెట్ ఎందుకంటే ఇది SYN ఫ్రేమ్.
ఫిన్: సెట్ చేయబడలేదు
విండో: 65535
అత్యవసర పాయింటర్: 0
TCP ఎంపిక - గరిష్ట సెగ్మెంట్ పరిమాణం: 1460 బైట్లు
TCP ఎంపిక - విండో స్కేల్: 3 (8 ద్వారా గుణించండి)
TCP ఎంపిక - SACK అనుమతించబడింది
వీక్షణ+ACK
క్లయింట్కు తెలియజేయడానికి సర్వర్ సామర్థ్యాల గురించి ఈ ఫ్రేమ్ చాలా సమాచారాన్ని కలిగి ఉంది. కింది స్క్రీన్షాట్ SYN+ACK ఫ్రేమ్లోని అన్ని ముఖ్యమైన ఫీల్డ్లను చూపుతుంది:
ఈ ఫ్రేమ్ క్లయింట్ ద్వారా పంపబడిన SYN ఫ్రేమ్ను కూడా గుర్తిస్తుంది.
SYN+ACK ఫ్రేమ్ కోసం ఇక్కడ ముఖ్యమైన ఫీల్డ్లు ఉన్నాయి:
మూలాధార పోర్ట్: 80డెస్టినేషన్ పోర్ట్: 50602
సీక్వెన్స్ నంబర్: 0
రసీదు సంఖ్య: 1
హెడర్ పొడవు: 32 బైట్లు (8)
ఫ్లాగ్లు: 0x012 (SYN, ACK)
రసీదు: సెట్
పుష్: సెట్ కాలేదు
రీసెట్: సెట్ చేయలేదు
అతని: సెట్
ఫిన్: సెట్ చేయబడలేదు
విండో: 29200
అత్యవసర పాయింటర్: 0
TCP ఎంపిక - గరిష్ట సెగ్మెంట్ పరిమాణం: 1412 బైట్లు
TCP ఎంపిక - SACK అనుమతించబడింది
TCP ఎంపిక - విండో స్కేల్: 7 (128తో గుణించండి)
ఈ ఫ్రేమ్లో “అక్నాలెడ్జ్” మరియు “SYN” బిట్లు సెట్ చేయబడడాన్ని మనం చూడవచ్చు. ఎందుకంటే ఈ ఫ్రేమ్ SYN+ACK.
ACK
ఈ ఫ్రేమ్ 3-మార్గం హ్యాండ్షేక్ యొక్క చివరి ఫ్రేమ్ మరియు క్లయింట్ ద్వారా SYN+ACK యొక్క రసీదు. కింది స్క్రీన్షాట్ ACK ఫ్రేమ్లోని అన్ని ముఖ్యమైన ఫీల్డ్లను చూపుతుంది:
ACK ఫ్రేమ్ కోసం ఇక్కడ ముఖ్యమైన ఫీల్డ్లు ఉన్నాయి:
మూల పోర్ట్: 50602డెస్టినేషన్ పోర్ట్: 80
సీక్వెన్స్ నంబర్: 1
రసీదు సంఖ్య: 1
హెడర్ పొడవు: 20 బైట్లు (5)
జెండాలు: 0x010 (ACK)
అత్యవసరం: సెట్ చేయలేదు
రసీదు: సెట్
పుష్: సెట్ కాలేదు
రీసెట్: సెట్ చేయలేదు
Syn: సెట్ చేయబడలేదు
ఫిన్: సెట్ చేయబడలేదు
విండో: 32768
ఇక్కడ, “అక్నాలెడ్జ్” బిట్ మాత్రమే సెట్ చేయబడింది ఎందుకంటే ఇది ACK ఫ్రేమ్.
కొన్ని ముఖ్యమైన సాధారణ క్షేత్రాల కోసం వివరణ
పోర్ట్ 80 : మేము ఈ ట్యుటోరియల్లో ఒక స్థిర పోర్ట్ 80ని గమనించాము. ఎందుకంటే ఇది HTTP క్యాప్చర్ మరియు HTTP కమ్యూనికేషన్ కోసం పోర్ట్ 80 స్థిరంగా ఉంది (సర్వర్ వైపు).
సీక్వెన్స్ నంబర్ : ఆ ఫ్రేమ్ యొక్క క్రమ సంఖ్య. సమకాలీకరణ అనేది మొదటి ఫ్రేమ్ కాబట్టి మనకు సీక్వెన్స్ నంబర్గా 0 ఉంటుంది.
TCP ఫ్లాగ్లు:
గుర్తింపు – ఫ్రేమ్ ACK అయితే ఈ బిట్ సెట్ చేయబడుతుంది. ఉదాహరణ: SYN+ACK, ACK ఫ్రేమ్.
SYN – ఫ్రేమ్ SYN అయితే ఈ బిట్ సెట్ చేయబడుతుంది. ఉదాహరణ: SYN.
కిటికీ : ఈ ఫీల్డ్ పంపినవారి గరిష్ట విండో పరిమాణాన్ని స్వీకరించే మోడ్లో షేర్ చేస్తుంది. ఉదాహరణ: SYN ఫ్రేమ్లో మేము విండో పరిమాణం 65535 బైట్లను కలిగి ఉన్నాము. రిసీవర్ ఏ సమయంలోనైనా గరిష్టంగా 65535 బైట్ల TCP డేటాను అందుకోగలదని దీని అర్థం.
SACK అనుమతించబడింది : SACK [సెలెక్టివ్ అనాలెడ్జ్మెంట్]కి పంపడం మద్దతు ఇస్తే ఈ బిట్ సెట్ చేయబడుతుంది.
గరిష్ట సెగ్మెంట్ పరిమాణం : మనం దీనిని MSS అని కూడా పిలుస్తాము. ఇది పంపినవారు స్వీకరించగల గరిష్ట డేటా ఫ్రేమ్ను నిర్వచిస్తుంది. ఉదాహరణ: మేము SYN ఫ్రేమ్లో MSSని 1460 బైట్లుగా పొందుతాము.
ముగింపు
మేము TCP 3-మార్గం హ్యాండ్షేక్ మరియు SYN, SYN+ACK మరియు ACK ఫ్రేమ్ల కోసం అన్ని ఉపయోగకరమైన ఫీల్డ్ల గురించి తెలుసుకున్నాము. మీరు TCP గురించి మరింత తెలుసుకోవాలనుకుంటే, మీరు ఈ RFC లింక్ని అనుసరించవచ్చు https://tools.ietf.org/html/rfc793 .