Интиқоли боэътимодии TCP
Ҳамаи мо бо протоколи TCP ҳамчун як протоколи боэътимоди интиқол ошно ҳастем, аммо он чӣ гуна эътимоднокии интиқолро таъмин мекунад?
Барои ба даст овардани интиқоли боэътимод, омилҳои зиёдеро ба назар гирифтан лозим аст, аз қабили вайроншавии маълумот, гумшавӣ, такроршавӣ ва пораҳои аз кор баромада. Агар ин мушкилот ҳал карда нашаванд, интиқоли боэътимодро ба даст овардан мумкин нест.
Аз ин рӯ, TCP барои ноил шудан ба интиқоли боэътимод механизмҳоеро ба монанди рақами пайдарпайӣ, посухи тасдиқ, идоракунии фиристодани такрорӣ, идоракунии пайвастшавӣ ва идоракунии тиреза истифода мебарад.
Дар ин мақола, мо ба равзанаи лағжанда, назорати ҷараён ва назорати бандшавии TCP тамаркуз хоҳем кард. Механизми интиқоли такрорӣ дар бахши оянда алоҳида баррасӣ мешавад.
Назорати ҷараёни шабака
Назорати ҷараёни шабака ё бо номи Назорати трафики шабакавӣ дар асл зуҳуроти муносибати нозук байни истеҳсолкунандагон ва истеъмолкунандагон аст. Шумо эҳтимолан бо ин сенария дар ҷои кор ё дар мусоҳибаҳо борҳо дучор шудаед. Агар қобилияти истеҳсолкунандаи истеҳсолкунанда барои истеҳсол аз қобилияти истеъмолкунандаи истеъмолкунанда хеле зиёд бошад, ин боиси афзоиши беохири навбат мегардад. Дар ҳолати ҷиддитар, шумо метавонед бидонед, ки вақте паёмҳои RabbitMQ аз ҳад зиёд ҷамъ мешаванд, ин метавонад боиси паст шудани самаранокии тамоми сервери MQ гардад. Ҳамин чиз барои TCP низ дуруст аст; агар тафтиш карда нашавад, паёмҳои аз ҳад зиёд ба шабака ворид карда мешаванд ва истеъмолкунандагон аз иқтидори худ зиёдтар мешаванд, дар ҳоле ки истеҳсолкунандагон ба фиристодани паёмҳои такрорӣ идома медиҳанд, ки ин ба кори шабака таъсири калон мерасонад.
Барои ҳалли ин падида, TCP механизмеро барои фиристанда барои назорат кардани миқдори маълумоти фиристодашуда дар асоси иқтидори воқеии қабулкунандаи қабулкунанда пешниҳод мекунад, ки онро идоракунии ҷараён меноманд. Қабулкунанда тирезаи қабулро нигоҳ медорад, дар ҳоле ки фиристанда тирезаи фиристодани маълумотро нигоҳ медорад. Бояд қайд кард, ки ин тирезаҳо танҳо барои як пайвасти TCP мебошанд ва на ҳама пайвастҳо як тирезаро муштарак доранд.
TCP бо истифода аз тағирёбанда барои тирезаи қабулкунанда идоракунии ҷараёнро таъмин мекунад. Тирезаи қабулкунанда ба фиристанда нишон медиҳад, ки чӣ қадар фазои кэш ҳанӯз дастрас аст. Фиристанда миқдори маълумоти фиристодашударо мувофиқи иқтидори воқеии қабулкунандаи қабулкунанда назорат мекунад.
Хости қабулкунанда ба фиристанда дар бораи андозаи маълумоти гирифташаванда хабар медиҳад ва фиристанда то ин маҳдудият мефиристад. Ин маҳдудият андозаи тиреза аст, сарлавҳаи TCP-ро дар хотир доред? Майдони тирезаи қабулкунанда мавҷуд аст, ки барои нишон додани шумораи байтҳое, ки қабулкунанда метавонад ё мехоҳад қабул кунад, истифода мешавад.
Хости фиристанда ба таври даврӣ бастаи санҷиши тирезаро мефиристад, ки барои муайян кардани он, ки оё хости қабулкунанда то ҳол маълумотро қабул карда метавонад ё не, истифода мешавад. Вақте ки буфери қабулкунанда дар хатари аз ҳад зиёд пур шудан қарор дорад, андозаи тиреза ба арзиши хурдтар муқаррар карда мешавад, то ба фиристанда дастур дода шавад, ки миқдори маълумоти фиристодашударо назорат кунад.
Дар ин ҷо диаграммаи идоракунии ҷараёни шабака оварда шудааст:
Назорати бандшавии шабака
Пеш аз ҷорӣ кардани назорати бандшавӣ, мо бояд дарк кунем, ки илова бар равзанаи қабул ва равзанаи фиристодан, равзанаи бандшавӣ низ вуҷуд дорад, ки асосан барои ҳалли масъалаи он, ки фиристанда бо кадом суръат маълумотро ба равзанаи қабулкунанда мефиристад, истифода мешавад. Аз ин рӯ, равзанаи бандшавӣ инчунин аз ҷониби фиристандаи TCP нигоҳдорӣ мешавад. Ба мо алгоритм лозим аст, то муайян кунем, ки чӣ қадар маълумот барои фиристодан мувофиқ аст, зеро фиристодани маълумоти аз ҳад кам ё аз ҳад зиёд беҳтарин нест, аз ин рӯ мафҳуми равзанаи бандшавӣ ба миён меояд.
Дар идоракунии ҷараёни шабакаи қаблӣ, мо аз пур кардани кэши қабулкунанда бо маълумот аз ҷониби фиристанда канорагирӣ мекардем, аммо мо намедонистем, ки дар шабака чӣ рӯй медиҳад. Одатан, шабакаҳои компютерӣ дар муҳити муштарак ҷойгиранд. Дар натиҷа, метавонад аз сабаби муошират байни дигар хостҳо бандшавии шабака ба вуҷуд ояд.
Вақте ки шабака пурбор аст, агар шумораи зиёди бастаҳо фиристода шаванд, ин метавонад боиси мушкилоте ба монанди таъхир ва гум шудани бастаҳо гардад. Дар ин лаҳза, TCP маълумотро аз нав интиқол медиҳад, аммо интиқоли такрорӣ бори шабакаро афзоиш медиҳад, ки боиси таъхирҳои бештар ва талафоти бештари бастаҳо мегардад. Ин метавонад ба як давраи бад ворид шавад ва минбаъд низ бузургтар шавад.
Ҳамин тариқ, TCP наметавонад он чизеро, ки дар шабака рӯй медиҳад, нодида гирад. Вақте ки шабака аз ҳад зиёд пур аст, TCP худро бо кам кардани миқдори маълумоти фиристодааш қурбон мекунад.
Аз ин рӯ, назорати бандшавӣ пешниҳод карда мешавад, ки ҳадафи он пешгирӣ аз пур шудани тамоми шабака бо маълумоти фиристанда мебошад. Барои танзими миқдори маълумоте, ки фиристанда бояд фиристад, TCP мафҳумеро бо номи тирезаи бандшавӣ муайян мекунад. Алгоритми назорати бандшавӣ андозаи тирезаи бандшавиро мувофиқи дараҷаи бандшавии шабака танзим мекунад, то миқдори маълумотеро, ки фиристанда мефиристад, назорат кунад.
Тирезаи бандшавӣ чист? Ин ба тирезаи фиристодан чӣ рабте дорад?
Тирезаи бандшавӣ (Rive Congestion) як тағйирёбандаи ҳолатест, ки аз ҷониби фиристанда нигоҳ дошта мешавад ва миқдори маълумотеро, ки фиристанда метавонад фиристад, муайян мекунад. Тирезаи бандшавӣ (Congestion Window) мувофиқи сатҳи бандшавии шабака ба таври динамикӣ тағйир меёбад.
Тирезаи Фиристанда андозаи тирезаест, ки байни фиристанда ва қабулкунанда мувофиқа шудааст ва миқдори маълумотеро, ки қабулкунанда метавонад қабул кунад, нишон медиҳад. Тирезаи бандшавӣ ва тирезаи фиристанда бо ҳам алоқаманданд; тирезаи фиристанда одатан ба ҳадди ақали бандшавӣ ва тирезаҳои қабулкунанда баробар аст, яъне swnd = min(cwnd, rwnd).
Равзанаи пурборкунии бор чунин тағйир меёбад:
Агар дар шабака бандшавӣ набошад, яъне вақти интиқоли такрорӣ ба амал наояд, равзанаи бандшавӣ зиёд мешавад.
Агар дар шабака бандшавӣ вуҷуд дошта бошад, равзанаи бандшавӣ кам мешавад.
Фиристанда муайян мекунад, ки оё шабака пур аст ё не, бо мушоҳидаи он, ки оё бастаи тасдиқи 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 муқаррар карда мешавад. Ё он инчунин афзоиши MSS-ро ҳангоми гирифтани 3 посухи такрории ACK бозмедорад. Агар пас аз ду баробар кам кардани арзиши cwnd се ack-и такрорӣ ҳанӯз ҳам гирифта шаванд, арзиши ssthresh ҳамчун нисфи арзиши cwnd сабт карда мешавад ва ҳолати барқароршавии зуд ворид карда мешавад.
Барқароршавии зуд
Дар ҳолати барқароркунии зуд, арзиши равзанаи пурборшавӣ cwnd барои ҳар як ACK-и такрории қабулшуда, яъне ACK-е, ки пайдарпай намерасад, ба як MSS зиёд карда мешавад. Ин барои истифодаи сегментҳои пакетҳое, ки дар шабака бомуваффақият интиқол дода шудаанд, барои беҳтар кардани самаранокии интиқол то ҳадди имкон аст.
Вақте ки ACK-и сегменти бастаи гумшуда мерасад, TCP арзиши cwnd-ро кам мекунад ва сипас ба ҳолати пешгирии бандшавӣ ворид мешавад. Ин барои назорат кардани андозаи равзанаи бандшавӣ ва пешгирӣ аз афзоиши минбаъдаи бандшавии шабака аст.
Агар пас аз ҳолати назорати бандшавӣ тайм-аут ба амал ояд, ҳолати шабака ҷиддитар мешавад ва TCP аз ҳолати пешгирии бандшавӣ ба ҳолати оғози суст мегузарад. Дар ин ҳолат, арзиши равзанаи бандшавӣ cwnd ба 1 MSS, дарозии максималии сегменти пакет ва арзиши остонаи оғози суст ssthresh ба нисфи cwnd муқаррар карда мешавад. Ҳадафи ин афзоиши тадриҷии андозаи равзанаи бандшавӣ пас аз барқароршавии шабака барои мувозинат кардани суръати интиқол ва дараҷаи бандшавии шабака мебошад.
Хулоса
Ҳамчун як протоколи боэътимоди интиқол, TCP интиқоли боэътимодро тавассути рақами пайдарпайӣ, тасдиқ, назорати бозинтиқол, идоракунии пайвастшавӣ ва идоракунии тиреза амалӣ мекунад. Дар байни онҳо, механизми назорати ҷараён миқдори маълумоти фиристодашударо аз ҷониби фиристанда мувофиқи иқтидори воқеии қабулкунандаи қабулкунанда назорат мекунад, ки аз мушкилоти бандшавии шабака ва паст шудани самаранокӣ пешгирӣ мекунад. Механизми назорати бандшавӣ бо танзими миқдори маълумоти фиристодашуда аз ҷониби фиристанда аз пайдоиши бандшавии шабака пешгирӣ мекунад. Мафҳумҳои тирезаи бандшавӣ ва тирезаи фиристодан бо ҳамдигар алоқаманданд ва миқдори маълумот дар фиристанда бо танзими динамикии андозаи тирезаи бандшавӣ назорат карда мешавад. Оғози суст, пешгирии бандшавӣ ва барқароршавии зуд се қисми асосии алгоритми назорати бандшавии TCP мебошанд, ки андозаи тирезаи бандшавиро тавассути стратегияҳои гуногун барои мутобиқ шудан ба иқтидор ва дараҷаи бандшавии шабака танзим мекунанд.
Дар бахши оянда мо механизми интиқоли такрории TCP-ро муфассал баррасӣ хоҳем кард. Механизми интиқоли такрорӣ қисми муҳими TCP барои ноил шудан ба интиқоли боэътимод мебошад. Он интиқоли боэътимоди маълумотро тавассути интиқоли такрории маълумоти гумшуда, вайроншуда ё таъхиршуда таъмин мекунад. Принсипи татбиқ ва стратегияи механизми интиқоли такрорӣ дар бахши оянда муфассал муаррифӣ ва таҳлил карда мешавад. Бо мо бимонед!
Вақти нашр: 24 феврали соли 2025

