TCP срещу UDP

Има два типа трафик на интернет протокол (IP). Те са TCP или Протокол за управление на предаването и UDP или Протокол за потребителска дейтаграма. TCP е ориентиран към връзката - след като е установена връзка, данните могат да бъдат изпращани двупосочно. UDP е по-опростен безжичен интернет протокол. Множество съобщения се изпращат като пакети на парчета, използвайки UDP.

Сравнителна диаграма

Разлики - прилики - TCP спрямо UDP сравнителна диаграма
TCPUDP
Съкращение за Протокол за управление на предаването User Datagram Protocol или Universal Datagram Protocol
Връзка Протоколът за контрол на предаването е протокол, ориентиран към връзката. User Datagram Protocol е протокол без връзка.
функция Като съобщение си проправя път през интернет от един компютър на друг. Това се основава на връзка. UDP също е протокол, използван при транспортиране на съобщения или трансфер. Това не се основава на връзка, което означава, че една програма може да изпрати натоварване на пакети до друга и това ще бъде края на връзката.
употреба TCP е подходящ за приложения, които изискват висока надеждност, а времето за предаване е сравнително по-малко критично. UDP е подходящ за приложения, които се нуждаят от бързо и ефективно предаване, като например игри. Безработицата на UDP е полезна и за сървъри, които отговарят на малки заявки от огромен брой клиенти.
Използване от други протоколи HTTP, HTTP, FTP, SMTP, Telnet DNS, DHCP, TFTP, SNMP, RIP, VOIP.
Подреждане на пакети данни TCP пренарежда пакетите с данни в посочения ред. UDP няма присъщ ред, тъй като всички пакети са независими един от друг. Ако е необходима поръчка, тя трябва да се управлява от приложния слой.
Скорост на трансфер Скоростта за TCP е по-ниска от UDP. UDP е по-бърз, тъй като не се прави опит за възстановяване на грешки. Това е протокол за "най-добри усилия".
надеждност Съществува абсолютна гаранция, че прехвърлените данни остават непокътнати и пристигат в същия ред, в който са изпратени. Няма гаранция, че изпратените съобщения или пакети изобщо ще достигнат.
Размер на заглавката Размерът на заглавката на TCP е 20 байта Размерът на UDP Header е 8 байта.
Общи полета на заглавки Изходен порт, Пристанищен порт, Проверка на сумата Изходен порт, Пристанищен порт, Проверка на сумата
Поток на данни Данните се четат като байтов поток, не се предават отличителни индикации към границите на сигналното съобщение (сегмент). Пакетите се изпращат индивидуално и се проверяват за цялост, само ако пристигнат. Пакетите имат определени граници, които се удостоверяват при получаване, което означава, че операцията по четене в приемника ще даде цяло съобщение, тъй като първоначално е изпратено.
тегло TCP е с голямо тегло. TCP изисква три пакета, за да настроите връзка на сокета, преди да могат да бъдат изпращани каквито и да било потребителски данни. TCP се справя с надеждността и контрола на задръстванията. UDP е лек. Няма подреждане на съобщения, няма проследяващи връзки и т.н. Това е малък транспортен слой, проектиран отгоре на IP.
Контрол на потока на данни TCP прави контрол на потока. TCP изисква три пакета, за да настроите връзка на сокета, преди да могат да бъдат изпращани каквито и да било потребителски данни. TCP се справя с надеждността и контрола на задръстванията. UDP няма опция за контрол на потока
Грешка при проверка TCP прави проверка на грешки и възстановяване на грешки. Грешни пакети се препредават от източника до местоназначението. UDP прави проверка на грешки, но просто изхвърля грешни пакети. Грешка при възстановяване не се опитва.
Полетата 1. Пореден номер, 2. AcK номер, 3. Отместване на данни, 4. Запазено, 5. Контролен бит, 6. Прозорец, 7. Спешен указател 8. Опции, 9. Подплънка, 10. Проверка на сумата, 11. Изходен порт, 12. Пристанище за дестинация 1. Дължина, 2. Изходен порт, 3. Порт назначение, 4. Проверете сумата
признание Сегменти за потвърждение Няма признание
ръкостискане SYN, SYN-ACK, ACK Без ръкостискане (протокол без връзка)

Съдържание: TCP срещу UDP

  • 1 Разлики във функциите за пренос на данни
    • 1.1 Надеждност
    • 1.2 Подреждане
    • 1.3 Връзка
    • 1.4 Начин на прехвърляне
    • 1.5 Откриване на грешки
  • 2 Как работят TCP и UDP
  • 3 различни приложения на TCP и UDP
    • 3.1 TCP срещу UDP за сървъри за игри
  • 4 Позовавания

Разлики във функциите за пренос на данни

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

надеждност

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

Подреждане

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

Връзка

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

Начин на прехвърляне

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

Откриване на грешки

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

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

Как работят TCP и UDP

TCP връзка се установява чрез трипосочно ръкостискане, което е процес на иницииране и потвърждаване на връзка. След като връзката е установена, трансферът на данни може да започне. След предаването връзката се прекратява чрез затваряне на всички установени виртуални схеми.

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

Различни приложения на TCP и UDP

Преглеждането в уеб, имейл и прехвърляне на файлове са често срещани приложения, които използват TCP. TCP се използва за контрол на размера на сегмента, скоростта на обмен на данни, контрола на потока и задръстванията в мрежата. TCP е за предпочитане, когато се изискват средства за коригиране на грешки на ниво мрежов интерфейс. UDP се използва до голяма степен от чувствителни към времето приложения, както и от сървъри, които отговарят на малки заявки от огромен брой клиенти. UDP е съвместим с пакетно излъчване - изпращане до всички в мрежа и мултикастинг - изпращане до всички абонати. UDP обикновено се използва в система за имена на домейни, глас през IP, Trivial Protocol Transfer Protocol и онлайн игри.

TCP срещу UDP за сървъри за игри

За масово мултиплейър онлайн (MMO) игри, разработчиците често трябва да направят архитектурен избор между използването на устойчиви UDP или TCP връзки. Предимствата на TCP са постоянните връзки, надеждността и възможността да се използват пакети с произволни размери. Най-големият проблем с TCP в този сценарий е неговият алгоритъм за контрол на задръстванията, който третира загубата на пакети като знак за ограничения на честотната лента и автоматично заглушава изпращането на пакети. В 3G или Wi-Fi мрежи това може да доведе до значителна латентност.

Опитният разработчик Christoffer Lernö претегли плюсовете и минусите и препоръчва следните критерии, за да изберете дали да използвате TCP или UDP за вашата игра:

  • Използвайте HTTP през TCP за извършване на случайни заявки без гражданство, инициирани от клиенти, когато е наред да има закъснение от време на време.
  • Използвайте постоянни обикновени TCP гнезда, ако и клиентът, и сървърът независимо изпращат пакети, но понякога забавяне е ОК (напр. Онлайн покер, много MMO).
  • Използвайте UDP, ако и клиентът, и сървърът могат независимо да изпращат пакети и понякога изоставането не е наред (напр. Повечето мултиплейър екшън игри, някои MMO).

Препратки

  • Уикипедия: Протокол за контрол на предаването
  • Уикипедия: Протокол за потребителска дейтаграма
  • UDP срещу TCP за сървъри за игри
  • Протоколът за контрол на предаването