TCP срещу UDP: Демистифициране на дебата за надеждност спрямо ефективността

Днес ще започнем, като се съсредоточим върху TCP. По -рано в главата за наслояването споменахме важен момент. На мрежовия слой и по -долу става въпрос повече за хост за връзки на хост, което означава, че вашият компютър трябва да знае къде е друг компютър, за да се свърже с него. Комуникацията в мрежа обаче често е междупроцесова комуникация, а не комуникация между интермохията. Следователно, TCP протоколът въвежда концепцията за порт. Портът може да бъде зает само от един процес, който осигурява директна комуникация между процесите на приложение, работещи на различни хостове.

Задачата на транспортния слой е как да се предоставят директни комуникационни услуги между процесите на приложение, работещи на различни хостове, така че е известен и като протокол от край до край. Транспортният слой крие основните детайли на мрежата, което позволява на процеса на кандидатстване да види, че има логичен комуникационен канал за край до край между двете субекти на транспортния слой.

TCP означава протокол за контрол на предаването и е известен като протокол, ориентиран към връзката. Това означава, че преди едно приложение да започне да изпраща данни до друго, двата процеса трябва да направят ръкостискане. Handshake е логично свързан процес, който осигурява надеждно предаване и подредено приемане на данни. По време на ръкостискането се установява връзка между източника и хостовете на местоназначението чрез обмен на серия от контролни пакети и съгласие за някои параметри и правила за осигуряване на успешно предаване на данни.

Какво е TCP? (MyLinking'sМрежово докосванеиБрокер на мрежови пакетиможе да обработи както TCP, така и UDP пакети)
TCP (протокол за управление на предаването) е ориентиран към връзката, надежден, базиран на базата на протокол за комуникация на транспортния слой.

Ориентирана към връзката: Ориентирано към връзката означава, че комуникацията с TCP е едно към едно, тоест комуникация от край до край, за разлика от UDP, която може да изпраща съобщения до множество хостове едновременно, така че комуникацията един към много не може да бъде постигната.
Надежден: Надеждността на TCP гарантира, че пакетите се доставят надеждно на приемника, независимо от промените в мрежовата връзка, което прави формата на протоколния пакет на TCP по -сложен от този на UDP.
Байто-поток: Характерът на TCP, базиран на BYTE, позволява предаване на съобщения с всякакъв размер и гаранция за поръчка на съобщения: Дори и предишното съобщение да не е получено напълно и дори ако следващите байтове са получени, TCP няма да ги доставя в слоя за приложения за обработка и автоматично ще пусне дублиращи се пакети.
След като хост А и хост Б са установили връзка, приложението трябва само да използва линията за виртуална комуникация за изпращане и получаване на данни, като по този начин гарантира предаване на данни. Протоколът на TCP е отговорен за контролирането на задачите като установяване на връзки, прекъсване и задържане. Трябва да се отбележи, че тук казваме, че виртуалната линия означава само за установяване на връзка, TCP протокол връзката само показва, че двете страни могат да стартират предаване на данни и да се гарантира надеждността на данните. Възлите за маршрутизиране и транспорт се обработват от мрежовите устройства; Самият протокол TCP не се занимава с тези подробности.

TCP връзка е пълномесечна услуга, което означава, че хост А и хост B могат да предават данни в двете посоки в TCP връзка. Тоест, данните могат да бъдат прехвърлени между хост А и хост В в двупосочен поток.

TCP временно съхранява данни в буфера за изпращане на връзката. Този буфер за изпращане е един от кешовете, създадени по време на тристранното ръкостискане. Впоследствие TCP ще изпрати данните в кеша за изпращане до получаването на кеша на хоста на местоназначението в подходящия момент. На практика всеки връстник ще има кеш за изпращане и кеш на получаване, както е показано тук:

TCP-UDP

Буферът за изпращане е област на паметта, поддържана от внедряването на 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 сегмент

Номер на последователност: Случайно число, генерирано от компютъра, когато връзката е установена като начална стойност, когато е установена TCP връзката и номерът на последователността се изпраща до приемника чрез SYN пакета. По време на предаването на данни изпращащият увеличава последователността според количеството на изпратените данни. Приемникът преценява заповедта на данните според получената последователност. Ако данните бъдат открити извън ред, приемникът ще пренареди данните, за да гарантира реда на данните.

Номер на потвърждение: Това е последователен номер, използван в TCP за потвърждаване на получаването на данни. Той показва номера на последователността на следващите данни, които подателят очаква да получи. В TCP връзка приемникът определя кои данни са получени успешно въз основа на последователността на получения сегмент от пакети с данни. Когато приемникът успешно получи данните, той изпраща ACK пакет на подателя, който съдържа номера за потвърждение за потвърждение. След получаване на пакета ACK, подателят може да потвърди, че данните преди да потвърдят номера на отговора са успешно получени.

Контролните битове на TCP сегмент включват следното:

Ack bit: Когато този бит е 1, това означава, че полето за отговор на потвърждение е валидно. TCP уточнява, че този бит трябва да бъде зададен на 1, с изключение на SYN пакети, когато връзката е първоначално установена.
Първи бит: Когато този бит е 1, това показва, че има изключение в TCP връзката и връзката трябва да бъде принудена да бъде изключена.
Син бит: Когато този бит е зададен на 1, това означава, че връзката трябва да бъде установена и първоначалната стойност на последователността е зададена в полето на последователността.
Перка бит: Когато този бит е 1, това означава, че в бъдеще няма да се изпращат повече данни и връзката е желана.
Различните функции и характеристики на TCP са въплътени от структурата на сегментите на TCP пакети.

Какво е UDP? (MyLinking'sМрежово докосванеиБрокер на мрежови пакетиможе да обработи както TCP, така и UDP пакета)
Протокол за потребителски Datagram (UDP) е протокол за комуникация без връзка. В сравнение с TCP, UDP не осигурява сложни механизми за управление. UDP протоколът позволява на приложенията директно да изпращат капсулирани IP пакети, без да установяват връзка. Когато разработчикът реши да използва UDP вместо TCP, приложението комуникира директно с IP.

Пълното име на UDP протокола е протокол за потребителски datagram, а заглавката му е само осем байта (64 бита), което е много кратно. Форматът на UDP заглавката е следният:

UDP сегмент

Дестинации и изходни пристанища: Основната им цел е да посочат кой процес UDP трябва да изпраща пакети.
Размер на пакета: Полето за размер на пакета държи размера на UDP заглавката плюс размера на данните
Контролна сума: Проектиран да гарантира надеждна доставка на UDP заглавки и данни Ролята на контролната сума е да се открие дали е възникнала грешка или корупция по време на предаването на UDP пакет, за да се гарантира целостта на данните.

Разлики между TCP и UDP в MyLinking'sМрежово докосванеиБрокер на мрежови пакетиможе да обработи както TCP, така и UDP пакети
TCP и UDP са различни в следните аспекти:

TCP срещу UDP

Връзка: TCP е транспортен протокол, ориентиран към връзката, който изисква да се установи връзка, преди да могат да бъдат прехвърлени данни. UDP, от друга страна, не изисква връзка и може незабавно да прехвърля данни.

Обект за обслужване: TCP е услуга едно към едно, тоест връзка има само две крайни точки за комуникация помежду си. Въпреки това, UDP поддържа едно към едно, много и много към много интерактивна комуникация, която може да комуникира с множество хостове едновременно.

Надеждност: TCP предоставя услугата за предоставяне на данни надеждно, като гарантира, че данните са без грешки, без загуби, не-дублирани и пристигат при поискване. UDP, от друга страна, полага най -добрите си усилия и не гарантира надеждна доставка. UDP може да страда от загуба на данни и други ситуации по време на предаване.

Контрол на задръстванията, контрол на потока: TCP има механизми за контрол на задръстванията и контрол на потока, които могат да регулират скоростта на предаване на данни според мрежовите условия, за да гарантират сигурността и стабилността на предаването на данни. UDP няма механизми за контрол на задръстванията и контрол на потока, дори ако мрежата е много претоварена, тя няма да направи корекции на скоростта на изпращане на UDP.

Заглавие над главата: TCP има дълга дължина на заглавката, обикновено 20 байта, което се увеличава, когато се използват полета за опции. UDP, от друга страна, има фиксиран заглавие от само 8 байта, така че UDP има по -ниска заглавка.

TCP срещу UDP

Сценарии за приложение на TCP и UDP:
TCP и UDP са два различни протокола на транспортния слой и имат някои разлики в сценариите на приложение.

Тъй като TCP е протокол, ориентиран към връзката, той се използва предимно в сценарии, когато се изисква надеждно предоставяне на данни. Някои случаи на обща употреба включват:

FTP прехвърляне на файлове: TCP може да гарантира, че файловете не са загубени и повредени по време на трансфера.
Http/https: TCP гарантира целостта и коректността на уеб съдържанието.
Тъй като UDP е протокол без връзка, той не предоставя гаранция за надеждност, но има характеристиките на ефективността и реално време. UDP е подходящ за следните сценарии:

Трафик с ниски пакети, като DNS (система за име на домейн): DNS заявките обикновено са къси пакети и UDP може да ги завърши по -бързо.
Мултимедийна комуникация като видео и аудио: За мултимедийно предаване с високи изисквания в реално време, UDP може да осигури по-ниска латентност, за да гарантира навременно да се предават данни.
Излъчваща комуникация: UDP поддържа комуникация „Един към много и много към много“ и може да се използва за предаване на излъчващи съобщения.

Резюме
Днес научихме за TCP. TCP е ориентиран към връзката, надежден протокол за комуникация на транспортния слой, базиран на байта. Той гарантира надеждното предаване и подреденото приемане на данни чрез установяване на връзка, ръкостискане и потвърждение. TCP протоколът използва портове за реализиране на комуникацията между процесите и предоставя директни комуникационни услуги за процеси на приложения, работещи на различни хостове. TCP връзките са пълен дуплекс, което позволява едновременни двупосочни трансфери на данни. За разлика от тях, UDP е ориентиран към връзка за комуникация протокол, който не предоставя гаранции за надеждност и е подходящ за някои сценарии с високи изисквания в реално време. TCP и UDP са различни в режим на свързване, сервизен обект, надеждност, контрол на задръстванията, контрол на потока и други аспекти и сценариите им на приложение също са различни.


Време за публикация: Дек-03-2024