Каква е разликата между TCP и UDP?
Вероятно сте виждали препратки към TCP и UDP, когато настройвате препращане на портове на маршрутизатор или когато конфигурирате софтуер за защитна стена. Тези два протокола се използват за различни типове данни.
TCP / IP е пакет от протоколи, използвани от устройства за комуникация по интернет и повечето локални мрежи. Той е кръстен на два от оригиналните протоколи - протокола за управление на предаването (TCP) и интернет протокола (IP). TCP предоставя на приложенията начин да доставят (и получават) подреден и проверен по грешка поток от информационни пакети по мрежата. Протоколът за потребителски дейтаграми (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 трафик.