TCP vs UDP: Демистификација дебате о поузданости vs. ефикасности

Данас ћемо почети фокусирајући се на TCP. Раније у поглављу о слојевитости, поменули смо важну тачку. На мрежном слоју и ниже, више се ради о везама између хостова, што значи да ваш рачунар мора да зна где се налази други рачунар да би се повезао са њим. Међутим, комуникација у мрежи је често међупроцесна комуникација, а не међумашинска комуникација. Стога, TCP протокол уводи концепт порта. Порт може бити заузет само једним процесом, што омогућава директну комуникацију између процеса апликација који се извршавају на различитим хостовима.

Задатак транспортног слоја је како да обезбеди директне комуникационе услуге између апликацијских процеса који се извршавају на различитим хостовима, па је познат и као протокол од краја до краја. Транспортни слој скрива основне детаље мреже, омогућавајући апликацијском процесу да види као да постоји логички комуникациони канал од краја до краја између два ентитета транспортног слоја.

TCP је скраћеница од Transmission Control Protocol и познат је као протокол оријентисан на конекцију. То значи да пре него што једна апликација може да почне да шаље податке другој, два процеса морају да изврше руковање. Руковање је логички повезан процес који обезбеђује поуздан пренос и уредан пријем података. Током руковања, веза се успоставља између изворног и одредишног хоста разменом низа контролних пакета и договарањем неких параметара и правила како би се осигурао успешан пренос података.

Шта је ТЦП? (МајлинкингМрежни додириМрежни брокер пакетаможе да обрађује и TCP и UDP пакете)
TCP (Протокол за контролу преноса) је поуздан протокол за комуникацију транспортног слоја заснован на бајтном току, оријентисан на конекцију.

Оријентисан на конекцијуОријентисаност на конекцију значи да је TCP комуникација један-на-један, односно комуникација од тачке до тачке од краја до краја, за разлику од UDP-а, који може слати поруке више хостова истовремено, тако да се комуникација један-на-више не може постићи.
ПоузданПоузданост TCP-а осигурава да се пакети поуздано испоручују примаоцу без обзира на промене у мрежној вези, што чини формат пакета протокола TCP-а сложенијим од UDP-а.
Засновано на бајтном токуПрирода TCP-а заснована на бајтном току омогућава пренос порука било које величине и гарантује редослед порука: чак и ако претходна порука није у потпуности примљена, и чак и ако су наредни бајтови примљени, TCP их неће доставити апликацијском слоју на обраду и аутоматски ће одбацити дуплиране пакете.
Када хост А и хост Б успоставе везу, апликацији је потребно само да користи виртуелну комуникациону линију за слање и примање података, чиме се осигурава пренос података. TCP протокол је одговоран за контролу задатака као што су успостављање везе, прекид везе и задржавање везе. Треба напоменути да овде кажемо да виртуелна линија значи само успостављање везе, док TCP протоколска веза само указује на то да две стране могу да започну пренос података и да осигурају поузданост података. Чворове рутирања и транспорта управљају мрежни уређаји; сам TCP протокол се не бави овим детаљима.

TCP веза је услуга пуног дуплекса, што значи да хост А и хост Б могу да преносе податке у оба смера у 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 битКада је овај бит 1, то значи да је поље за потврду одговора важеће. TCP наводи да овај бит мора бити подешен на 1, осим за SYN пакете када се веза почетно успоставља.
RST битКада је овај бит 1, то указује да постоји изузетак у TCP вези и да се веза мора присилно прекинути.
SYN битКада је овај бит постављен на 1, то значи да веза треба да се успостави и да је почетна вредност редног броја постављена у поље за редни број.
FIN битКада је овај бит 1, то значи да се у будућности више неће слати подаци и да је веза жељена.
Различите функције и карактеристике TCP-а су отелотворене структуром TCP сегмената пакета.

Шта је UDP? (MyLinking-овМрежни додириМрежни брокер пакетаможе да обрађује и TCP и UDP пакете)
Протокол корисничких датаграма (UDP) је протокол за комуникацију без конекције. У поређењу са TCP-ом, UDP не пружа сложене механизме контроле. UDP протокол омогућава апликацијама да директно шаљу енкапсулиране IP пакете без успостављања везе. Када програмер одлучи да користи UDP уместо TCP-а, апликација комуницира директно са IP адресом.

Пун назив UDP протокола је User Datagram Protocol, а његово заглавље има само осам бајтова (64 бита), што је веома сажето. Формат UDP заглавља је следећи:

UDP сегмент

Одредишни и изворни портовиЊихова главна сврха је да назначе ком процесу UDP треба да шаље пакете.
Величина пакетаПоље величине пакета садржи величину UDP заглавља плус величину података
Контролни збирДизајниран да обезбеди поуздану испоруку UDP заглавља и података. Улога контролне суме је да открије да ли је дошло до грешке или оштећења током преноса UDP пакета како би се осигурао интегритет података.

Разлике између TCP и UDP у MyLinking-уМрежни додириМрежни брокер пакетаможе да обрађује и TCP и UDP пакете
TCP и UDP се разликују у следећим аспектима:

TCP vs UDP

ВезаTCP је транспортни протокол оријентисан на конекцију који захтева успостављање везе пре него што се подаци могу пренети. UDP, с друге стране, не захтева везу и може одмах пренети податке.

Објекат услугеTCP је услуга „један-на-један“ са две тачке, односно веза има само две крајње тачке за међусобну комуникацију. Међутим, UDP подржава интерактивну комуникацију „један-на-један“, „један-на-више“ и „многи-на-више“, која може да комуницира са више хостова истовремено.

ПоузданостTCP пружа услугу поуздане испоруке података, осигуравајући да су подаци без грешака, без губитака, да се не дуплирају и да стижу на захтев. UDP, с друге стране, даје све од себе и не гарантује поуздану испоруку. UDP може да пати од губитка података и других ситуација током преноса.

Контрола загушења, контрола протокаTCP има механизме за контролу загушења и контролу протока, који могу да прилагоде брзину преноса података у складу са условима мреже како би се осигурала безбедност и стабилност преноса података. UDP нема механизме за контролу загушења и контролу протока, чак и ако је мрежа веома преоптерећена, неће вршити подешавања брзине слања UDP-а.

Заглавље изнадTCP има дугачку дужину заглавља, обично 20 бајтова, која се повећава када се користе поља опција. UDP, с друге стране, има фиксни заглавље од само 8 бајтова, тако да UDP има мање оптерећење заглавља.

TCP vs UDP

Сценарији TCP и UDP апликација:
TCP и UDP су два различита протокола транспортног слоја и имају неке разлике у сценаријима примене.

Пошто је TCP протокол оријентисан на конекцију, првенствено се користи у сценаријима где је потребна поуздана испорука података. Неки уобичајени случајеви употребе укључују:

Пренос датотека преко ФТП-аTCP може да осигура да се датотеке не изгубе и оштете током преноса.
HTTP/HTTPSTCP осигурава интегритет и исправност веб садржаја.
Пошто је UDP протокол без конекције, не пружа гаранцију поузданости, али има карактеристике ефикасности и рада у реалном времену. UDP је погодан за следеће сценарије:

Саобраћај са малим пакетима, као што је DNS (систем имена домена)DNS упити су обично кратки пакети, а UDP их може брже завршити.
Мултимедијална комуникација као што су видео и аудиоЗа пренос мултимедије са високим захтевима у реалном времену, UDP може да обезбеди мању латенцију како би се осигурало да се подаци могу пренети благовремено.
Емитовање комуникацијеUDP подржава комуникацију „један-ка-многи“ и „многи-ка-многи“ и може се користити за пренос емитованих порука.

Резиме
Данас смо учили о TCP-у. TCP је поуздан протокол за комуникацију транспортног слоја заснован на бајтном току, оријентисан на конекцију. Он обезбеђује поуздан пренос и уредан пријем података успостављањем везе, рукостискањем и потврдом. TCP протокол користи портове за остваривање комуникације између процеса и пружа директне комуникационе услуге за процесе апликација који се извршавају на различитим хостовима. TCP везе су потпуно дуплексне, што омогућава истовремени двосмерни пренос података. Насупрот томе, UDP је протокол за комуникацију без конекције, који не пружа гаранције поузданости и погодан је за неке сценарије са високим захтевима за реално време. TCP и UDP се разликују по режиму конекције, објекту услуге, поузданости, контроли загушења, контроли протока и другим аспектима, а њихови сценарији примене су такође различити.


Време објаве: 03.12.2024.