Відповіді:
TCP підтримується акками та повторно намагається переконатися, що дані потрапляють туди, куди вони йдуть. UDP є беззв’язним і "стріляй і забудь" UDP використовується в основному для потокових програм, де, якщо ви втратите деякі дані, вам не потрібно намагатися надсилати їх ще раз.
Який з них ви використовуєте, залежить від програми. Наприклад, веб-сервер використовує TCP.
Ви можете знайти хороший підсумок тут:
Чим відрізняється Інтернет-протоколи UDP та TCP?
І TCP, і UDP працюють на моделі транспортного рівня TCP / IP, але мають дуже різне використання.
Найбільш важливі відмінності:
Структура кадру
Коли дані надсилаються по мережі, їх потрібно інкапсулювати в так звані "кадри". Існують різні методи інкапсуляції залежно від протоколу та топології, які використовуються. Наступні зображення показують, як структура кадру TCP і UDP відрізняється.
Це структура кадру TCP:
Ця структура кадру UDP, набагато простіше:
Типовими протоколами, які використовують TCP, є HTTP, FTP та SMTP. Прикладами протоколів, що використовують UDP, є DNS та DHCP.
І пояснення рівня генерального директора:
UDP - це коли ви кидаєте папір у загальному напрямку сміття.
TCP - це, коли він пропущений, ви кидаєте точні копії того ж паперу знову і знову, поки він не потрапить у смітник. Буде витрачатися папір, навіть обурені пакети TCP призводять до втрати мережевих або системних ресурсів.
TCP і UDP - це обидва протоколи, які працюють над IP-адресою. TCP має гарантовану доставку, а UDP - ні. Ви б вибрали той чи інший для переадресації портів залежно від того, яку послугу ви намагаєтеся переадресувати. HTTP, наприклад, є TCP. Якщо ви не знаєте, який протокол є службою, яку ви намагаєтеся переслати, це майже напевно TCP.
Щоб відповісти на іншу частину вашого питання, ви повинні переслати те, що використовує ваша програма. Щоб переслати HTTP-трафік, виберіть TCP. Для пересилання трафіку TFTP виберіть UDP. Програми p2p в основному використовують як tcp, так і udp, тому пересилайте їх обох.
Все залежить від протоколу та програми, яку ви використовуєте.
Крім відмінностей, про які йшлося раніше, також передбачено TCP
управління потоком. Використовуючи віконний механізм, одержувач обмежує кількість октетів (байтів), які він хоче отримати від відправника, перш ніж відправник повинен дочекатися дозволу, щоб надіслати більше даних. Розмір вікна може змінюватись одержувачем по мірі розмови. Це дозволяє одержувачу "придушувати" швидкість передачі даних, що надходять від відправника: UDP не дозволяє цього, і все, що може отримати приймач, - це викинути дані, які він не може зберігати або обробляти по прибуттю.
деякі інші технічні засоби, такі як безперервне підтвердження (використовує вибіркове підтвердження, щоб дозволити відправнику змогу повторно передавати лише відсутній кадр, а не відсутній кадр та наступні, які одержувач уже має, але не міг визнати звичайним чином), обробку перевантажень та адаптивна повторна передача (коригування таймера, який визначає, як швидко надіслати переданий кадр, коли підтвердження не отримано). Вони не стосуються UDP, але допомагають TCP надавати додаткові послуги через UDP, не сильно збільшуючи навантаження мережі на той самий об'єм корисної навантаження.
TCP докладає зусиль, щоб забезпечити отримані дані одержувачу; UDP цього не робить.
Не зважайте на всі відповіді, що пояснюють одну проти іншої. Для налаштування переадресації портів правила досить прості: вам потрібно вибрати TCP, якщо тільки документи для протоколу / програми, які ви використовуєте, скажуть використовувати UDP. Зазвичай ті, що використовують UDP, пов’язані із потоковим потоком або дуже простими речами, які надають перевагу легким протоколам / швидкості над надійністю (особливо DNS та NTP). Зауважте, що крім TCP та UDP існують і інші протоколи - ICMP, протоколи тунелювання тощо.
Чим більше відомий протокол, тим більше маршрутизаторів на шляху втручається в протокол. Надішліть пакети tcp, і велика ймовірність отримання отриманих пакетів сильно збиті. UDP зазвичай не такий керований, а інші 254 протоколи оплати IP, як правило, повністю не торкаються.
Протокол User Datagram (UDP)
Він є частиною базових протоколів пакету Internet Protocol Suite. Програми на мережевих комп'ютерах можуть надсилати короткі повідомлення, які іноді називаються дейтаграмами. UDP не гарантує надійності (трапляється, що дейтаграма може вийти з ладу, дублюватися або відсутня без будь-якого повідомлення). Той факт, що не перевіряється, чи всі пакети дійсно доставлені, UDP виявляється більш швидким та ефективним для програм, які не потребують гарантованої доставки. UDP знаходить своє використання в таких ситуаціях:
Часові програми. Проблеми через затримки пакетів уникають
Це також корисно для серверів, які відповідають на невеликі запити від величезної кількості клієнтів. UDP підтримує пакетну трансляцію (передається всім у локальній мережі) та багатоадресову передачу (передає всім абонентам).
Протокол управління передачею (TCP)
Його часто називають TCP / IP через важливість цього протоколу в Internet Suite Suite. TCP працює на більш високому рівні, стосується лише двох кінцевих систем (наприклад, між веб-браузером та веб-сервером). TCP забезпечує надійну послідовну доставку потоку даних з однієї програми на одному комп’ютері на іншу програму на іншому комп'ютері. Загальні можливості підтримки підтримки перегрупування електронної пошти TCP та передачі файлів та веб-додатків TCP. Серед завдань управління TCP контролює розмір повідомлення, швидкість обміну повідомленнями та переповнення мережевого трафіку. Що стосується IP, він обробляє передачі нижчого рівня від комп'ютера до комп'ютера як повідомлення, що передається через Інтернет.
І те, і інше - це мережеві протоколи, побудовані поверх чогось, що називається Internet Protocol або IP. Інтернет-протокол є основним протоколом Інтернету і є, наприклад, тим, що дозволяє нам переглядати Інтернет. Ось чому ви часто бачите ці протоколи, написані як TCP / IP або UDP / IP. Вони фактично є основними протоколами Інтернету.
В обох випадках ваші дані поділяються на шматки, які називаються пакетами. TCP гарантує, що ці пакети добираються до місця призначення та у правильному порядку та без будь-яких помилок.
UDP з іншого боку не забезпечить навіть надходження пакета даних. Він лише гарантує, що якщо він дійде, він буде без помилок.
Зазвичай інші протоколи працюватимуть поверх TCP та UDP і називаються протоколами додатків, оскільки вони працюють в додатку, а не в операційній системі. Ваш веб-перегляд використовує протокол HTTP, який використовуватиме протокол TCP.
Пошук доменних імен або запити DNS часто використовують UDP, але також можуть використовувати TCP. Ряд потокових служб використовує UDP під іншими протоколами додатків.
Я сподіваюся, що відповість на ваше запитання більш простою англійською мовою.