Създаден е протокол, наречен TCP Flow Control, за да контролира потока от данни между потребителя и сървъра.
Той гарантира, че определена честотна лента е налична за изпращане и получаване на данни, така че обработката да може да продължи, без да се натъкват на сериозни проблеми.
TCP протоколът използва метод, известен като протокол за плъзгащ се прозорец, за да постигне това.
Ще разгледаме задълбочено контрола на TCP потока в тази част, включително как функционира и, най-важното, протокола на плъзгащия се прозорец.
Какво е TCP Flow Control?
TCP протоколът гарантира, че надежден комуникационен канал може да бъде установен в непредсказуема мрежа.
Пакетите с данни могат да се загубят, да пристигнат извън последователност, да бъдат архивирани в мрежата или да бъдат претоварени на приемащия възел, докато се изпращат от един възел на друг.
Въпреки това, докато разработваме приложение, обикновено не трябва да се справяме с тази сложност; вместо това ние просто изпращаме някои данни към сокет и TCP гарантира, че пакетите са успешно доставени до възела на получателя.
Контролът на потока е важна допълнителна функция, която TCP предлага.
Чрез използването на контрол на потока, TCP по същество ще се увери, че подателят не изпраща на получателя твърде много пакети наведнъж.
Как работи протоколът за контрол на трансфера – контрол на потока?
Това обикновено се случва, когато трябва да комуникираме данни по мрежа.
Приложението изпращач изпраща данни към сокет, транспортният слой (в този случай TCP) пакетира тези данни в сегмент, а мрежовият слой (например IP) предава този пакет към приемащия възел по някакъв маршрут.
Мрежовият слой ще предаде тези данни на TCP в приемащия край на разговора и TCP ще ги направи достъпни за приемащото приложение като идентичен дубликат на дадените данни.
TCP няма да достави пакети без ред и ще изчака повторно предаване, в случай че открие празнина в байтовия поток.
Това ще видим, ако увеличим.
Както буферите за предаване, така и за получаване на TCP се използват за съхраняване на данни, които трябва съответно да бъдат изпратени и получени.
След това данните от буфера за получаване ще бъдат прочетени от приложението, когато бъдат подготвени.
Да се уверим, че не изпращаме допълнителни пакети, докато приемният буфер на приемника вече е пълен, е основната цел на контрола на потока, тъй като това би принудило приемника да изпусне допълнителни пакети, които не може да обработи.
Получателят ще обяви своя прозорец за получаване или наличното пространство в буфера за получаване, за да ограничи количеството данни, които TCP може да прехвърли.
Протоколът за плъзгащ се прозорец
Протоколът за плъзгащ се прозорец в TCP е един от най-широко използваните методи за контрол на потока. Това е байт-ориентирана процедура с променлив размер.
При този подход получателят изпраща на изпращача прозореца на приемника веднага щом подателят и получателят са свързани.
Размерът на текущия буфер на приемника се нарича прозорец на приемника.
Количеството данни, което може да бъде изпратено допълнително без потвърждение, сега се изчислява от TCP въз основа на наличния прозорец на получателя.
TCP обаче спира трансфера на данни, ако размерът на прозореца на приемника е 0 и изчаква да се увеличи.
Размерът на прозореца на приемника е компонент на TCP рамката.
Максималният размер на прозореца е 65,535 16 байта, тъй като има размер на прозореца от XNUMX бита.
Размерите на прозореца се избират от получателя. С всяко съобщение за потвърждение приемникът предава размера на прозореца на приемника, който е наличен в момента.
Процес на протокол за плъзгащ се прозорец
Когато се използва техниката на протокола с плъзгащ се прозорец, се установяват два буфера, когато подателят и получателят се свързват.
Тези два буфера са разделени на две групи: прозорецът за изпращане, който принадлежи на подателя, и прозорецът за получаване, който принадлежи на получателя.
Прозорецът за получаване връща оставащото буферно пространство за получаване, когато изпращачът предава данни на получателя.
В резултат на това подателят е ограничен до количеството данни, което може да се побере в получаващия буфер.
Предавателният прозорец в примера по-горе предава данни към приемащия прозорец.
След получаване на данните, получаващият прозорец изпраща потвърждение, а след това предаващият прозорец предава нов кадър с данни.
Този път обаче получаващият прозорец изпраща допълнително съобщение, че наличната памет е запълнена в допълнение към потвърждението, което е получил.
Предавателният прозорец спира предаването на данни, докато не получи потвърждение от приемащия прозорец, че пространството е освободено, след което може да възобнови предаването на данни.
Заключение
В заключение, нивото на свързване на данни и транспортното ниво са отговорни за справянето с проблемите на контрола на потока.
Основната цел на механизма за контрол на потока е да спре приемника да бъде претоварен с данни от по-бързо предаващия подател.
Дори ако данните, прехвърляни от подателя, са без грешки и се изпращат с по-бърза скорост благодарение на мощна машина, възможно е по-бавният край на получателя да не може да се справи с по-високата скорост на данни и следователно да загуби част от данните.
Оставете коментар