TCP հուսալիության փոխադրում
Մենք բոլորս ծանոթ ենք TCP արձանագրությանը, որպես հուսալի տրանսպորտային արձանագրություն, բայց ինչպես է այն ապահովում տրանսպորտի հուսալիությունը:
Հուսալի փոխանցման հասնելու համար հարկավոր է հաշվի առնել բազմաթիվ գործոններ, ինչպիսիք են տվյալների կոռուպցիան, կորուստը, կրկնօրինակումը եւ արտագնա երանգները: Եթե այդ խնդիրները հնարավոր չէ լուծել, ապա հուսալի փոխանցումը հնարավոր չէ հասնել:
Հետեւաբար, TCP- ն օգտագործում է այնպիսի մեխանիզմներ, ինչպիսիք են հաջորդականության համարը, հաստատում են պատասխանը, վերափոխեք վերահսկողությունը, կապի կառավարումը եւ պատուհանների կառավարումը `հուսալի փոխանցման հասնելու համար:
Այս հոդվածում մենք կենտրոնանալու ենք լոգարիթմական պատուհանի, հոսքի վերահսկման եւ TCP- ի գերբնակեցման վերահսկմանը: Վերադարձի մեխանիզմը ծածկված է հաջորդ բաժնում առանձին:
Network անցի հոսքի վերահսկում
Network անցի հոսքի հսկողությունը կամ իմանալ, քանի որ ցանցային երթեւեկության հսկողությունը իրականում արտադրողների եւ սպառողների միջեւ նուրբ հարաբերությունների դրսեւորում է: Դուք հավանաբար բախվել եք այս սցենարի շատ աշխատավայրում կամ հարցազրույցներում: Եթե արտադրողի կարողությունը մեծապես գերազանցում է սպառողի սպառողի կարողությունները, ապա դա կբերի հերթը, որը անորոշ ժամանակով կաճի: Ավելի լուրջ դեպքում գուցե դուք իմանաք, որ երբ նապաստակային հաղորդագրությունները շատ են հավաքվում, այն կարող է առաջացնել ամբողջ MQ սերվերի կատարողականի դեգրադացիա: Նույնը ճիշտ է TCP- ի համար. Եթե մնացել է չստուգված, ցանցի մեջ շատ հաղորդագրություններ կդրվեն, եւ սպառողները կգերազանցեն իրենց կարողությունները, մինչդեռ արտադրողները կշարունակեն ուղարկել կրկնօրինակ հաղորդագրություններ, ինչը մեծապես կազդի ցանցի կատարման վրա:
Այս երեւույթը լուծելու համար TCP- ն ուղարկում է մեխանիզմ, որը ուղարկողի համար վերահսկում է ստացողի իրական ընդունելության հզորության հիման վրա ուղարկված տվյալների քանակը, որը հայտնի է որպես հոսքի հսկողություն: Ստացողը պահպանում է ստացված պատուհանը, մինչդեռ ուղարկողը պահպանում է ուղարկող պատուհանը: Հարկ է նշել, որ այս պատուհանները միայն մեկ TCP կապի համար են, եւ ոչ բոլոր կապերը կիսում են պատուհանը:
TCP- ն ապահովում է հոսքի հսկողություն `օգտագործելով ստացված պատուհանի փոփոխական: Ստացող պատուհանը ուղարկողին տալիս է ցուցում, թե որքանով է հասանելի քեշի տարածքը: Ուղարկողը վերահսկում է ստացողի իրական ընդունման կարողությունների համաձայն ուղարկված տվյալների քանակը:
Ստացողի հյուրընկալողը տեղեկացնում է այն տվյալների չափի ուղարկողին, որը կարող է ստանալ այն, եւ ուղարկողը ուղարկում է մինչեւ այս սահմանը: Այս սահմանը պատուհանի չափն է, հիշեք TCP վերնագիրը: Ստացվում է պատուհանի դաշտ, որն օգտագործվում է ստացված բայթերի քանակը նշելու համար, որը կարող է ստանալ կամ պատրաստ է ստանալ:
Ուղարկողի հյուրընկալողը պարբերաբար կուղարկի պատուհանի զննության փաթեթ, որն օգտագործվում է ստացողի հյուրընկալողի համար, որը դեռեւս կարող է ընդունել տվյալներ: Երբ ստացողի բուֆերը վտանգված է արտահոսքի վտանգի տակ, պատուհանի չափը դրված է ավելի փոքր արժեքի, ուղարկողին հրահանգելու համար ուղարկված տվյալների քանակը վերահսկելու համար:
Ահա ցանցի հոսքի կառավարման դիագրամ.
Network անցի գերբնակվածության վերահսկում
Նախքան գերբնակվածության վերահսկում ներկայացնելը, մենք պետք է հասկանանք, որ բացի ստացված պատուհանից եւ ուղարկող պատուհանից, կա նաեւ գերբնակված պատուհան, որը հիմնականում օգտագործվում է ստացված պատուհանի համար տվյալների փոխանցման համար: Հետեւաբար, գերբնակվածության պատուհանը պահպանվում է նաեւ TCP ուղարկողի կողմից: Մեզ պետք է ալգորիթմ `որոշելու, թե որքան տվյալներ են տեղին ուղարկվում, քանի որ շատ քիչ կամ չափազանց շատ տվյալներ ուղարկելն իդեալական չէ, հետեւաբար գերբնակված պատուհանի հայեցակարգը:
Նախորդ ցանցի հոսքի հսկողության ներքո այն, ինչ մենք խուսափեցինք, ստացողի պահոցը լրացնող ուղարկողն էր, բայց մենք չգիտեինք, թե ինչ է կատարվում ցանցում: Սովորաբար համակարգչային ցանցերը գտնվում են ընդհանուր միջավայրում: Արդյունքում, այլ հյուրընկալողների միջեւ հաղորդակցվելու պատճառով կարող են լինել ցանցի գերբնակվածություն:
Երբ ցանցը խցանված է, եթե մեծ քանակությամբ փաթեթներ շարունակվեն, այն կարող է առաջացնել այնպիսի խնդիրներ, ինչպիսիք են փաթեթների ձգձգումը եւ կորուստը: Այս պահին TCP- ն կվերադարձնի տվյալները, բայց վերահաղորդումը կբարձրացնի ցանցի բեռը, ինչը հանգեցնում է ավելի մեծ ձգձգումների եւ ավելի շատ փաթեթների կորուստների: Սա կարող է վերածվել արատավոր ցիկլի եւ շարունակել ավելի մեծանալ:
Այսպիսով, TCP- ն չի կարող անտեսել այն, ինչ կատարվում է ցանցում: Երբ ցանցը խցանված է, TCP- ն իրեն զոհաբերում է, նվազեցնելով իր ուղարկած տվյալների քանակը:
Հետեւաբար առաջարկվում է գերբնակվածության վերահսկողությունը, որը նպատակ ունի խուսափել ամբողջ ցանցը ուղարկողի միջոցով լցնելուց: Տվյալների քանակը կարգավորելու համար ուղարկողը պետք է ուղարկի, TCP- ն սահմանում է գերբնակվածության պատուհանը կոչվող հայեցակարգ: Գերբնակվածության կառավարման ալգորիթմը կկարգավորի գերբնակվածության պատուհանի չափը `ըստ ցանցի գերբնակվածության աստիճանի, որպեսզի վերահսկի ուղարկողի կողմից ուղարկված տվյալների քանակը:
Որն է գերբնակվածության պատուհանը: Ինչ կապ ունի սա ուղարկման պատուհանի հետ:
Գերբնակվածության պատուհանը պետության փոփոխական է, որը պահվում է ուղարկողի կողմից, որը որոշում է ուղարկողը ուղարկողի քանակը կարող է ուղարկել: Գերբնակված պատուհանը դինամիկ կերպով փոխվում է ցանցի գերբնակվածության մակարդակի համաձայն:
Ուղարկող պատուհանը համաձայնեցված է ուղարկողի եւ ստացողի միջեւ, որը ցույց է տալիս ստացողի տվյալների քանակը: Հնարավոր են գերբնակվածության պատուհանը եւ ուղարկող պատուհանը. Ուղարկող պատուհանը սովորաբար հավասար է գերբնակվածության նվազագույնի եւ Windows ստանալու համար, այսինքն, SWND = Min (CWND, RWND):
Գերբնակված պատուհանը CWND- ն փոխվում է հետեւյալ կերպ.
Եթե ցանցում գերբնակվածություն չլինի, այսինքն, վերափոխման ոչ մի դադարեցում չի առաջանում, գերբնակվածության պատուհանը մեծանում է:
Եթե ցանցում գերբնակվածություն կա, գերբնակվածության պատուհանը նվազում է:
Ուղարկողը որոշում է, թե ցանցը խցանված է, դիտարկելով, թե արդյոք ACK Acknowlempeming փաթեթը ստացվում է սահմանված ժամկետում: Եթե ուղարկողը նշված ժամանակահատվածում չի ստանում ACK Acknowlempemplem փաթեթը, համարվում է, որ ցանցը գերբնակված է:
Բացի գերբնակված պատուհանից, ժամանակն է քննարկել TCP գերբնակվածության կառավարման ալգորիթմը: TCP գերբնակվածության կառավարման ալգորիթմը բաղկացած է երեք հիմնական մասից.
Դանդաղ սկիզբ.Սկզբում CWND գերբնակվածության պատուհանը համեմատաբար փոքր է, եւ ուղարկողը մեծացնում է գերբնակվածության պատուհանը, որն արտացոլվում է արագորեն հարմարվելու ցանցի կարողություններին:
Գերբնակվածության խուսափում.Գերբնակված պատուհանից հետո ինչ-որ շեմից հետո ուղարկողը գծային ձեւով ավելացնում է գերբնակվածության պատուհանը, գերբնակվածության պատուհանի աճի տեմպը դանդաղեցնելու եւ ցանցի ծանրաբեռնվածությունից խուսափելու համար:
Արագ վերականգնում.Եթե գերբնակվածությունը տեղի է ունենում, ուղարկողը կիսում է գերբնակված պատուհանը եւ մտնում է արագ վերականգնման վիճակ, ստացված կրկնօրինակների պատուհանի միջոցով ցանցի վերականգնման վայրը որոշելու համար:
Դանդաղ մեկնարկ
Երբ կայացած է TCP կապը, գերբնակվածության պատուհանը CWND- ն ի սկզբանե սահմանվում է MSS (առավելագույն հատվածի չափի չափի) արժեք: Այս եղանակով, ուղարկման սկզբնական տոկոսադրույքը MSS / RTT բայթ / վայրկյան է: Իրական մատչելի թողունակությունը սովորաբար շատ ավելի մեծ է, քան MSS / RTT- ը, ուստի TCP- ն ցանկանում է գտնել օպտիմալ ուղարկման փոխարժեքը, որը կարելի է հասնել դանդաղ մեկնարկի միջոցով:
Դանդաղ մեկնարկի գործընթացում CWND- ի CWND- ի արժեքը նախաստորագրվի 1 MSS, եւ ամեն անգամ, երբ փոխանցվող փաթեթային հատվածը ճանաչվում է, CWND- ի արժեքը կդառնա մեկ MSS: Դրանից հետո CWND- ի արժեքը կրկնապատկվում է փաթեթային հատվածի յուրաքանչյուր հաջող փոխանցման համար, եւ այլն: Հատուկ աճի գործընթացը ցուցադրվում է հետեւյալ ցուցանիշում:
Այնուամենայնիվ, ուղարկման փոխարժեքը միշտ չի կարող աճել; Աճը պետք է ավարտվի ինչ-որ պահի: Այսպիսով, երբ է ավարտվում ուղարկման փոխարժեքը: Դանդաղ սկսելը սովորաբար ավարտում է ուղարկման փոխարժեքի ավելացումը մի քանի եղանակներից մեկում.
Առաջին ճանապարհը դանդաղ մեկնարկի ուղարկման ընթացքում փաթեթային կորստի դեպքն է: Երբ փաթեթային կորուստ է առաջանում, TCP- ն սահմանում է ուղարկողի գերբնակված պատուհանը CWND- ի CWND- ի եւ վերսկսելու դանդաղ մեկնարկի գործընթացը: Այս պահին ներդրվում է դանդաղ մեկնարկի շեմի Ssthresh- ի հայեցակարգը, որի սկզբնական արժեքը CWND արժեքի կեսն է, որն առաջացնում է փաթեթների կորուստ: Այսինքն, երբ հայտնաբերվում է գերբնակվածություն, Ssthresh- ի արժեքը պատուհանի արժեքի կեսն է:
Երկրորդ ճանապարհը ուղղակիորեն կապելն է դանդաղ մեկնարկի շեմի ssthreh- ի արժեքի հետ: Քանի որ Ssthresh- ի արժեքը պատուհանի արժեքի կեսն է, երբ գերբնակվածությունը հայտնաբերվում է, փաթեթային կորուստը կարող է առաջանալ յուրաքանչյուր կրկնապատկման միջոցով, երբ CWND- ն ավելի մեծ է, քան S ssthreh- ը: Հետեւաբար, ամենալավն է CWND- ին սահմանել Ssthresh- ին, ինչը կհանգեցնի TCP- ին անցնել գերբնակվածության կառավարման ռեժիմին եւ վերջ տալ դանդաղ:
Վերջին ճանապարհը, որ դանդաղ մեկնարկը կարող է ավարտվել, եթե հայտնաբերվեն երեք ավելորդ կտորներ, TCP- ն իրականացնում է արագ վերահաղորդում եւ մտնում վերականգնման վիճակ: (Եթե պարզ չէ, թե ինչու կան երեք ACK փաթեթ, այն կբացվի առանձին վերահաղորդման մեխանիզմում :)
Գերբնակվածության խուսափում
Երբ TCP- ն մտնում է գերբնակվածության վերահսկման պետություն, CWND- ը սահմանված է գերբնակվածության շեմի սանդրեշի կեսին: Սա նշանակում է, որ CWND- ի արժեքը չի կարող կրկնապատկել ամեն անգամ, երբ փաթեթային հատված է ստացվում: Փոխարենը, ընդունվում է համեմատաբար պահպանողական մոտեցում, որում CWND- ի արժեքը ավելանում է միայն մեկ MS- ով (փաթեթի առավելագույն հատվածի երկարությունը) յուրաքանչյուր փոխանցումից հետո: Օրինակ, նույնիսկ եթե 10 փաթեթային հատվածներ են ընդունվում, CWND- ի արժեքը կավելանա միայն մեկ MSS- ով: Սա գծային աճի մոդել է, եւ այն ունի նաեւ վերին եզրը աճի վրա: Երբ փաթեթի կորուստը տեղի է ունենում, CWND- ի արժեքը փոխվում է MSS- ի, իսկ Ssthresh- ի արժեքը սահմանվում է CWND- ի կեսին: Կամ դա կդադարեցնի նաեւ MSS- ի աճը, երբ 3 ավելորդ ACK պատասխաններ են ստացվել: Եթե CWND- ի արժեքը կիսով չափ կրճատվելուց հետո երեք ավելորդ կտորներ են ստացվել, S ssthresh- ի արժեքը գրանցվում է որպես CWND արժեքի կեսը եւ մուտքագրվում է արագ վերականգնման պետություն:
Արագ վերականգնում
Արագ վերականգնման վիճակում գերբնակված պատուհանի CWND- ի արժեքը ավելանում է մեկ MS- ով `յուրաքանչյուր ստացված ավելորդ ACK- ի համար, այսինքն, ACK, որը հաջորդականությամբ չի ժամանում: Սա պետք է օգտագործի փաթեթային հատվածները, որոնք հաջողությամբ փոխանցվել են ցանցում, հնարավորինս բարելավելու փոխանցման արդյունավետությունը:
Երբ ժամանում է կորցրած փաթեթների հատվածի ACK- ն, TCP- ն նվազեցնում է CWND- ի արժեքը, այնուհետեւ մտնում է գերբնակվածության խուսափման վիճակ: Սա վերահսկում է գերբնակված պատուհանի չափը եւ խուսափել ցանցի գերբնակվածությունից հետագա ավելացումից:
Եթե գերբնակվածության վերահսկման պետությունից հետո տեղի է ունենում տեւողությունը, ցանցի վիճակը դառնում է ավելի լուրջ, եւ TCP- ն գերբնակվածության խուսափումից դուրս է գալիս դանդաղ սկզբնական պետության: Այս դեպքում գերբնակված պատուհանի CWND- ի արժեքը սահմանված է 1 MSS, փաթեթի հատվածի առավելագույն երկարությունը եւ դանդաղ սկսելու շեմի Ssthresh- ի արժեքը սահմանվում է CWND- ի կեսին: Դրա նպատակը ցանցի վերականգնումից հետո գերբնակված պատուհանի չափը նորից բարձրացնելն է `փոխանցման փոխարժեքը եւ ցանցի գերբնակվածության աստիճանը հավասարակշռելու համար:
Ամփոփություն
Որպես հուսալի տրանսպորտային արձանագրություն, TCP- ն իրականացնում է հուսալի տրանսպորտ `ըստ հաջորդական թվով, հաստատմամբ, վերահաղորդման վերահսկման, կապի կառավարման եւ պատուհանի վերահսկման: Դրանց թվում, հոսքի կառավարման մեխանիզմը վերահսկում է ուղարկողի կողմից ուղարկված տվյալների քանակը `ստացողի իրական ստացող կարողությունների համաձայն, ինչը խուսափում է ցանցի գերբնակեցման եւ կատարողականի քայքայման խնդիրներից: Գերբնակվածության կառավարման մեխանիզմը խուսափում է ցանցի գերբնակվածության առաջացումից `ուղարկողի կողմից ուղարկված տվյալների քանակը կարգավորելով: Գերբնակված պատուհանի եւ պատուհանի ուղարկման հասկացությունները կապված են միմյանց հետ, եւ ուղարկողի վրա տվյալների քանակը վերահսկվում է գերբնակված պատուհանի չափը դինամիկ կերպով կարգավորելով: Դանդաղ մեկնարկը, գերբնակվածության խուսափումը եւ արագ վերականգնումը TCP գերբնակվածության կառավարման ալգորիթմի երեք հիմնական մասերն են, որոնք տարբեր ռազմավարությունների միջոցով կարգավորվում են գերբնակվածության պատուհանի չափը:
Հաջորդ բաժնում մենք մանրամասնորեն կքննարկենք TCP- ի Retransmission մեխանիզմը: Retransmission մեխանիզմը TCP- ի կարեւոր մասն է `հուսալի փոխանցման հասնելու համար: Այն ապահովում է տվյալների հուսալի փոխանցումը `վերականգնելով կորցրած, կոռումպացված կամ հետաձգված տվյալները: Վերադարձի մեխանիզմի իրականացման սկզբունքը եւ ռազմավարությունը կներդրվեն եւ մանրամասն կներկայացվեն հաջորդ բաժնում: Մնացեք լարված:
Փոստ -24-2025