If-Koubou

Каква е разликата между TCP и UDP?

Каква е разликата между TCP и UDP? (Как да)

Вероятно сте виждали препратки към TCP и UDP, когато настройвате пренасочване на портове към рутер или при конфигуриране на софтуер за защитна стена. Тези два протокола се използват за различни типове данни.

TCP / IP е пакет от протоколи, използвани от устройствата за комуникация по Интернет и повечето локални мрежи. Той е кръстен на два от оригиналните протоколи - Протокола за контрол на преноса (TCP) и Интернет протокола (IP). TCP предоставя на приложенията начин да достави (и да получи) поточен информационен пакет, нареден и контролиран от грешки, в мрежата. Протоколът User Datagram Protocol (UDP) се използва от приложенията, за да доставя по-бърз поток от информация, като премахва проверката на грешки. Когато конфигурирате мрежов хардуер или софтуер, може да се наложи да знаете разликата.

Какво общо имат

Както TCP, така и UDP са протоколи, използвани за изпращане на битове от данни, известни като пакети - по Интернет. И двата протокола се основават на IP протокола. С други думи, независимо дали изпращате пакет чрез TCP или UDP, този пакет се изпраща на IP адрес. Тези пакети се третират по подобен начин, тъй като те се препращат от компютъра ви към междинните маршрутизатори и към местоназначението.

TCP и UDP не са единствените протоколи, които работят на върха на IP. Те обаче са най-широко използвани.

Как функционира TCP

TCP е най-често използваният протокол в Интернет.

Когато заявите уеб страница в браузъра си, вашият компютър изпраща TCP пакети на адреса на уеб сървъра, като го моли да изпрати уеб страницата обратно на вас. Уеб сървърът отговаря, като изпраща поток от TCP пакети, които уеб браузърът ви съединява, за да оформят уеб страницата. Когато кликнете върху връзка, влезете, публикувате коментар или направите нещо друго, вашият уеб браузър изпраща TCP пакетите на сървъра и сървърът изпраща TCP пакети обратно.

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

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

Process Explorer и други помощни програми могат да покажат вида на връзките, които процесът прави - тук можем да видим браузъра Chrome с отворени TCP връзки към различни уеб сървъри.

Как функционира UDP

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

Когато дадено приложение използва UDP, пакетите са изпратени до получателя. Изпращачът не чака да се увери, че получателят получи пакета - то просто продължава да изпраща следващите пакети. Ако получателят пропусна няколко UDP пакета тук и там, те просто са изгубени - изпращачът няма да ги изпрати отново. Загубата на всичко това означава, че устройствата могат да комуникират по-бързо.

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

Да приемем, например, че гледате поточно предаване на живо, което често се излъчва чрез UDP вместо TCP. Сървърът просто изпраща постоянен поток от UDP пакети на компютрите, които гледат. Ако загубите връзката си за няколко секунди, видеоклипът може да замръзне или да скочи за момент и след това да премине към текущия бит на предаването. Ако възникне малка загуба на пакети, видеото или аудиото може да са изкривени за момент, докато видеото продължава да се възпроизвежда без липсващите данни.

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

Какво?

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

Освен ако не сте мрежов администратор или разработчик на софтуер, това не трябва да ви засяга прекалено много. Ако конфигурирате софтуера на рутера или защитната стена и не сте сигурни дали дадено приложение използва TCP или UDP, обикновено можете да изберете опцията "И двете", за да може маршрутизаторът или защитната стена да прилагат същото правило както за TCP, така и за UDP трафик.