Домашня » як » У чому різниця між TCP і UDP?

    У чому різниця між 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.