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 విలువ 2 MSS అవుతుంది. ఆ తరువాత, ప్యాకెట్ విభాగపు ప్రతి విజయవంతమైన ప్రసారం కోసం 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లో సగానికి సెట్ చేయబడుతుంది. లేదా 3 పునరావృత ACK ప్రతిస్పందనలు అందుకున్నప్పుడు కూడా అది MSS పెరుగుదలను ఆపివేస్తుంది. cwnd విలువను సగానికి తగ్గించిన తర్వాత కూడా మూడు పునరావృత acks అందుకుంటే, ssthresh విలువ cwnd విలువలో సగం వరకు నమోదు చేయబడుతుంది మరియు వేగవంతమైన రికవరీ స్థితిని నమోదు చేయబడుతుంది.

వేగవంతమైన రికవరీ
ఫాస్ట్ రికవరీ స్థితిలో, ప్రతి స్వీకరించిన రిడండెంట్ ACK కి, అంటే, వరుసగా రాని ACK కి, కంజెషన్ విండో cwnd విలువ ఒక MSS ద్వారా పెరుగుతుంది. ఇది నెట్‌వర్క్‌లో విజయవంతంగా ప్రసారం చేయబడిన ప్యాకెట్ విభాగాలను ఉపయోగించి ప్రసార సామర్థ్యాన్ని సాధ్యమైనంతవరకు మెరుగుపరచడం.

కోల్పోయిన ప్యాకెట్ విభాగం యొక్క ACK వచ్చినప్పుడు, TCP cwnd విలువను తగ్గించి, ఆపై రద్దీ అవాయిడెన్స్ స్థితికి ప్రవేశిస్తుంది. ఇది రద్దీ విండో పరిమాణాన్ని నియంత్రించడానికి మరియు నెట్‌వర్క్ రద్దీని మరింత పెంచకుండా ఉండటానికి.

రద్దీ నియంత్రణ స్థితి తర్వాత గడువు ముగియడం జరిగితే, నెట్‌వర్క్ పరిస్థితి మరింత తీవ్రంగా మారుతుంది మరియు TCP రద్దీ అవాయిడెన్స్ స్థితి నుండి నెమ్మదిగా ప్రారంభ స్థితికి మారుతుంది. ఈ సందర్భంలో, రద్దీ విండో cwnd విలువ 1 MSSకి సెట్ చేయబడుతుంది, గరిష్ట ప్యాకెట్ సెగ్మెంట్ పొడవు మరియు నెమ్మదిగా ప్రారంభ థ్రెషోల్డ్ ssthresh విలువ cwndలో సగానికి సెట్ చేయబడుతుంది. దీని ఉద్దేశ్యం నెట్‌వర్క్ కోలుకున్న తర్వాత రద్దీ విండో పరిమాణాన్ని తిరిగి క్రమంగా పెంచడం, ప్రసార రేటు మరియు నెట్‌వర్క్ రద్దీ స్థాయిని సమతుల్యం చేయడం.

సారాంశం
విశ్వసనీయ రవాణా ప్రోటోకాల్‌గా, TCP సీక్వెన్స్ నంబర్, రసీదు, పునఃప్రసార నియంత్రణ, కనెక్షన్ నిర్వహణ మరియు విండో నియంత్రణ ద్వారా నమ్మకమైన రవాణాను అమలు చేస్తుంది. వాటిలో, ప్రవాహ నియంత్రణ విధానం రిసీవర్ యొక్క వాస్తవ స్వీకరించే సామర్థ్యం ప్రకారం పంపినవారు పంపిన డేటా మొత్తాన్ని నియంత్రిస్తుంది, ఇది నెట్‌వర్క్ రద్దీ మరియు పనితీరు క్షీణత సమస్యలను నివారిస్తుంది. రద్దీ నియంత్రణ విధానం పంపినవారు పంపిన డేటా మొత్తాన్ని సర్దుబాటు చేయడం ద్వారా నెట్‌వర్క్ రద్దీ సంభవించకుండా నివారిస్తుంది. రద్దీ విండో మరియు పంపే విండో యొక్క భావనలు ఒకదానికొకటి సంబంధించినవి మరియు పంపేవారి వద్ద ఉన్న డేటా మొత్తం రద్దీ విండో పరిమాణాన్ని డైనమిక్‌గా సర్దుబాటు చేయడం ద్వారా నియంత్రించబడుతుంది. నెమ్మదిగా ప్రారంభం, రద్దీ నివారణ మరియు వేగవంతమైన పునరుద్ధరణ అనేవి TCP రద్దీ నియంత్రణ అల్గోరిథం యొక్క మూడు ప్రధాన భాగాలు, ఇవి నెట్‌వర్క్ సామర్థ్యం మరియు రద్దీ స్థాయికి అనుగుణంగా వివిధ వ్యూహాల ద్వారా రద్దీ విండో పరిమాణాన్ని సర్దుబాటు చేస్తాయి.

తదుపరి విభాగంలో, TCP యొక్క పునఃప్రసార యంత్రాంగాన్ని మనం వివరంగా పరిశీలిస్తాము. విశ్వసనీయ ప్రసారాన్ని సాధించడానికి పునఃప్రసార యంత్రాంగం TCPలో ఒక ముఖ్యమైన భాగం. కోల్పోయిన, పాడైన లేదా ఆలస్యమైన డేటాను పునఃప్రసారం చేయడం ద్వారా ఇది విశ్వసనీయమైన డేటా ప్రసారాన్ని నిర్ధారిస్తుంది. పునఃప్రసార యంత్రాంగం యొక్క అమలు సూత్రం మరియు వ్యూహాన్ని తదుపరి విభాగంలో పరిచయం చేసి వివరంగా విశ్లేషిస్తాము. వేచి ఉండండి!


పోస్ట్ సమయం: ఫిబ్రవరి-24-2025