Днес ще започнем, като се съсредоточим върху TCP. По-рано в главата за наслояването споменахме един важен момент. На мрежовия слой и по-долу става въпрос повече за връзки между хостове, което означава, че вашият компютър трябва да знае къде се намира друг компютър, за да се свърже с него. Комуникацията в мрежа обаче често е междупроцесна, а не междумашинна комуникация. Следователно, TCP протоколът въвежда концепцията за порт. Портът може да бъде зает само от един процес, което осигурява директна комуникация между приложни процеси, изпълнявани на различни хостове.
Задачата на транспортния слой е как да осигури директни комуникационни услуги между приложни процеси, работещи на различни хостове, така че е известен още като протокол от край до край. Транспортният слой скрива основните детайли на мрежата, позволявайки на приложния процес да вижда, че има логически комуникационен канал от край до край между двете обекти на транспортния слой.
TCP е съкращение от Transmission Control Protocol (Протокол за контрол на предаването) и е известен като протокол, ориентиран към свързване. Това означава, че преди едното приложение да може да започне да изпраща данни към другото, двата процеса трябва да извършат ръкостискане (handshake). Ръкостискането е логически свързан процес, който осигурява надеждно предаване и правилно приемане на данни. По време на ръкостискането се установява връзка между изходния и целевия хост чрез обмен на серия от контролни пакети и съгласуване на някои параметри и правила, за да се осигури успешно предаване на данни.
Какво е TCP? (Mylinking'sМрежов краниМрежов пакетен брокерможе да обработва както TCP, така и UDP пакети)
TCP (Протокол за контрол на предаването) е надежден, ориентиран към връзката, базиран на байтов поток комуникационен протокол на транспортно ниво.
Ориентиран към свързванеОриентирана към връзката означава, че TCP комуникацията е „един към един“, т.е. комуникация от точка до точка от край до край, за разлика от UDP, който може да изпраща съобщения до множество хостове едновременно, така че не може да се постигне комуникация „един към много“.
НадежденНадеждността на TCP гарантира, че пакетите се доставят надеждно до получателя, независимо от промените в мрежовата връзка, което прави формата на пакетите на протокола TCP по-сложен от този на UDP.
Базиран на байтов потокБазираният на байтов поток характер на TCP позволява предаването на съобщения с всякакъв размер и гарантира ред на съобщенията: дори ако предишното съобщение не е било напълно получено и дори ако следващите байтове са били получени, TCP няма да ги достави на приложното ниво за обработка и автоматично ще изпусне дублиращи се пакети.
След като хост А и хост Б установят връзка, приложението трябва само да използва виртуалната комуникационна линия, за да изпраща и получава данни, като по този начин гарантира предаването на данни. TCP протоколът е отговорен за контролирането на задачи като установяване, прекъсване и задържане на връзка. Трябва да се отбележи, че тук казваме, че виртуалната линия означава само установяване на връзка, докато TCP протоколът за връзка показва само, че двете страни могат да започнат предаване на данни и да гарантират надеждността на данните. Маршрутизиращите и транспортни възли се обработват от мрежовите устройства; самият TCP протокол не се занимава с тези подробности.
TCP връзката е пълнодуплексна услуга, което означава, че хост A и хост B могат да предават данни в двете посоки в TCP връзка. Тоест, данните могат да се прехвърлят между хост A и хост B в двупосочен поток.
TCP временно съхранява данни в буфера за изпращане на връзката. Този буфер за изпращане е един от кешовете, създадени по време на тристранното ръкостискане. Впоследствие TCP ще изпрати данните от кеша за изпращане към кеша за получаване на целевия хост в подходящото време. На практика всеки партньор ще има кеш за изпращане и кеш за получаване, както е показано тук:
Буферът за изпращане е област от паметта, поддържана от TCP имплементацията от страната на изпращача, която се използва за временно съхраняване на данни за изпращане. Когато се извърши тристранно ръкостискане за установяване на връзка, кешът за изпращане се настройва и използва за съхраняване на данни. Буферът за изпращане се настройва динамично според претоварването на мрежата и обратната връзка от получателя.
Буферът за получаване е област от паметта, поддържана от TCP имплементацията от приемащата страна, която се използва за временно съхраняване на получените данни. TCP съхранява получените данни в кеша за получаване и чака приложението от по-горен ред да ги прочете.
Обърнете внимание, че размерът на кеша за изпращане и получаване е ограничен. Когато кешът е пълен, TCP може да предприеме някои стратегии, като например контрол на претоварването, контрол на потока и др., за да осигури надеждно предаване на данни и стабилност на мрежата.
В компютърните мрежи предаването на данни между хостове се осъществява посредством сегменти. И така, какво е пакетен сегмент?
TCP създава TCP сегмент или пакетен сегмент, като разделя входящия поток на части и добавя TCP заглавки към всяка част. Всеки сегмент може да се предава само за ограничен период от време и не може да надвишава максималния размер на сегмента (MSS). По пътя си надолу, пакетният сегмент преминава през каналния слой. Каналният слой има максимална единица за предаване (MTU), която е максималният размер на пакета, който може да премине през каналния слой. Максималната единица за предаване обикновено е свързана с комуникационния интерфейс.
И така, каква е разликата между MSS и MTU?
В компютърните мрежи йерархичната архитектура е много важна, защото отчита разликите между различните нива. Всеки слой има различно име; в транспортния слой данните се наричат сегмент, а в мрежовия слой данните се наричат IP пакет. Следователно, максималната единица за предаване (MTU) може да се разглежда като максималния размер на IP пакета, който може да бъде предаден от мрежовия слой, докато максималният размер на сегмента (MSS) е концепция на транспортния слой, която се отнася до максималното количество данни, които могат да бъдат предадени от TCP пакет едновременно.
Обърнете внимание, че когато максималният размер на сегмента (MSS) е по-голям от максималната единица за предаване (MTU), фрагментацията на IP ще се извърши на мрежовия слой и TCP няма да раздели по-големите данни на сегменти, подходящи за размера на MTU. На мрежовия слой ще има раздел, посветен на IP слоя.
Структура на сегментите на TCP пакета
Нека разгледаме формата и съдържанието на TCP заглавките.
Пореден номер: Случайно число, генерирано от компютъра при установяване на връзката като начална стойност при установяване на TCP връзка, а поредният номер се изпраща на получателя чрез SYN пакета. По време на предаване на данни, подателят увеличава поредния номер според количеството изпратени данни. Приемникът преценява реда на данните според получения пореден номер. Ако се установи, че данните не са подредени, получателят ще ги пренареди, за да гарантира правилния ред.
Номер на потвърждение: Това е пореден номер, използван в TCP за потвърждение на получаването на данни. Той показва поредния номер на следващите данни, които подателят очаква да получи. В TCP връзка, получателят определя кои данни са били успешно получени въз основа на поредния номер на получения сегмент от пакета данни. Когато получателят получи успешно данните, той изпраща ACK пакет до подателя, който съдържа номера за потвърждение. След получаване на ACK пакета, подателят може да потвърди, че данните, преди да потвърди номера за отговор, са били успешно получени.
Контролните битове на TCP сегмента включват следното:
ACK битКогато този бит е 1, това означава, че полето за потвърждение е валидно. TCP указва, че този бит трябва да бъде зададен на 1, с изключение на SYN пакети, когато връзката е установена първоначално.
RST битКогато този бит е 1, това показва, че има изключение в TCP връзката и връзката трябва да бъде принудително прекъсната.
SYN битКогато този бит е зададен на 1, това означава, че връзката трябва да бъде установена и началната стойност на поредния номер е зададена в полето за пореден номер.
FIN битКогато този бит е 1, това означава, че в бъдеще няма да се изпращат повече данни и връзката е желана.
Различните функции и характеристики на TCP са въплътени в структурата на сегментите на TCP пакетите.
Какво е UDP? (Mylinking'sМрежов краниМрежов пакетен брокерможе да обработва както TCP, така и UDP пакети)
Протоколът за потребителски дейтаграми (UDP) е протокол за комуникация без установяване на връзка. В сравнение с TCP, UDP не предоставя сложни механизми за контрол. Протоколът UDP позволява на приложенията директно да изпращат капсулирани IP пакети, без да установяват връзка. Когато разработчикът избере да използва UDP вместо TCP, приложението комуникира директно с IP адреса.
Пълното име на UDP протокола е User Datagram Protocol, а заглавната му част е само осем байта (64 бита), което е много кратко. Форматът на UDP заглавната част е следният:
Портове на местоназначение и източникОсновната им цел е да посочат към кой процес UDP трябва да изпраща пакети.
Размер на пакетаПолето за размер на пакета съдържа размера на UDP заглавката плюс размера на данните
Контролна сумаПроектиран да осигури надеждна доставка на UDP заглавки и данни. Ролята на контролната сума е да открие дали е възникнала грешка или повреда по време на предаването на UDP пакет, за да се гарантира целостта на данните.
Разлики между TCP и UDP в MylinkingМрежов краниМрежов пакетен брокерможе да обработва както TCP, така и UDP пакети
TCP и UDP се различават в следните аспекти:
ВръзкаTCP е транспортен протокол, ориентиран към свързване, който изисква установяване на връзка, преди да могат да се прехвърлят данни. UDP, от друга страна, не изисква връзка и може да прехвърля данни незабавно.
Обект на услугатаTCP е двуточкова услуга „един към един“, т.е. връзката има само две крайни точки, които комуникират помежду си. UDP обаче поддържа интерактивна комуникация „един към един“, „един към много“ и „много към много“, която може да комуникира с множество хостове едновременно.
НадеждностTCP предоставя услугата за надеждно доставяне на данни, като гарантира, че данните са без грешки, без загуби, без дублиране и пристигат при поискване. UDP, от друга страна, полага максимални усилия и не гарантира надеждна доставка. UDP може да пострада от загуба на данни и други ситуации по време на предаване.
Контрол на задръстванията, контрол на потокаTCP има механизми за контрол на претоварването и контрол на потока, които могат да регулират скоростта на предаване на данни според мрежовите условия, за да гарантират сигурността и стабилността на предаването на данни. UDP няма механизми за контрол на претоварването и контрол на потока, дори ако мрежата е много претоварена, той няма да прави корекции на скоростта на изпращане на UDP.
Заглавна част от режийния файлTCP има дълга дължина на заглавката, обикновено 20 байта, която се увеличава, когато се използват полета за опции. UDP, от друга страна, има фиксирана заглавка от само 8 байта, така че UDP има по-ниски разходи за заглавката.
Сценарии за TCP и UDP приложения:
TCP и UDP са два различни протокола на транспортния слой и имат някои разлики в сценариите на приложение.
Тъй като TCP е протокол, ориентиран към свързване, той се използва предимно в сценарии, където е необходима надеждна доставка на данни. Някои често срещани случаи на употреба включват:
Прехвърляне на файлове по FTPTCP може да гарантира, че файловете няма да бъдат загубени или повредени по време на прехвърляне.
HTTP/HTTPSTCP осигурява целостта и коректността на уеб съдържанието.
Тъй като UDP е протокол без установяване на връзка, той не предоставя гаранция за надеждност, но притежава характеристиките на ефективност и работа в реално време. UDP е подходящ за следните сценарии:
Трафик с нисък пакетен трафик, като например DNS (система за имена на домейни)DNS заявките обикновено са кратки пакети и UDP може да ги завърши по-бързо.
Мултимедийна комуникация, като например видео и аудиоЗа мултимедийно предаване с високи изисквания в реално време, UDP може да осигури по-ниска латентност, за да гарантира, че данните могат да бъдат предавани своевременно.
Излъчване на комуникацияUDP поддържа комуникация „един към много“ и „много към много“ и може да се използва за предаване на излъчвани съобщения.
Обобщение
Днес научихме за TCP. TCP е ориентиран към свързване, надежден, базиран на байтов поток комуникационен протокол на транспортно ниво. Той осигурява надеждно предаване и правилно приемане на данни чрез установяване на връзка, ръкостискане и потвърждение. TCP протоколът използва портове, за да осъществява комуникацията между процесите и предоставя директни комуникационни услуги за приложни процеси, работещи на различни хостове. TCP връзките са пълнодуплексни, което позволява едновременен двупосочен трансфер на данни. За разлика от тях, UDP е ориентиран към безсъединяване комуникационен протокол, който не предоставя гаранции за надеждност и е подходящ за някои сценарии с високи изисквания за реално време. TCP и UDP се различават по режим на свързване, обект на услугата, надеждност, контрол на претоварването, контрол на потока и други аспекти, а техните сценарии на приложение също са различни.
Време на публикуване: 03 декември 2024 г.