TCP проти UDP: демістифікація надійності та дебати про ефективність

Сьогодні ми почнемо з зосередження уваги на TCP. Раніше в розділі про шарування ми згадували важливий момент. На мережевому шарі і нижче, мова йде більше про хост для хостів, а це означає, що ваш комп'ютер повинен знати, де інший комп'ютер для того, щоб підключитися до нього. Однак комунікація в мережі часто - це міжпроцеська комунікація, а не міжмахінська комунікація. Тому протокол TCP вводить концепцію порту. Порт може бути зайнятий лише одним процесом, який забезпечує пряме зв'язок між процесами додатків, що працюють на різних хостах.

Завдання транспортного шару полягає в тому, як надати послуги прямого зв'язку між процесами додатків, що працюють на різних хостах, тому він також відомий як протокол кінця до кінця. Транспортний шар приховує основні деталі мережі, що дозволяє процесу подання заявки бачити так, ніби між двома об'єктами транспортного шару є логічний канал зв'язку.

TCP означає протокол управління передачею і відомий як протокол, орієнтований на з'єднання. Це означає, що перед тим, як одна програма може почати надсилати дані іншому, два процеси повинні робити рукостискання. Рукостискання - це логічно підключений процес, який забезпечує надійну передачу та впорядкований прийом даних. Під час рукостискання встановлюється з'єднання між джерелами та хостами призначення шляхом обміну низкою пакетів управління та узгоджуючи деякі параметри та правила для забезпечення успішної передачі даних.

Що таке TCP? (MyLinking'sМережевий краніБрокер мережевого пакетуможе обробити як TCP, так і UDP -пакети)
TCP (протокол управління передачею)-це орієнтоване на з'єднання, надійне, протокол зв'язку транспортного шару на основі байтів.

Орієнтований на з'єднання: Орієнтоване на з'єднання означає, що зв'язок TCP є одним до одного, тобто зв'язком з точкою до кінця до кінця, на відміну від UDP, яка може одночасно надсилати повідомлення декільком хостам, тому зв'язок один на багато не може бути досягнуто.
Надійний: Надійність TCP гарантує, що пакети надійно доставляються до приймача незалежно від зміни мережевого посилання, що робить формат пакетів протоколу TCP більш складним, ніж у UDP.
На основі байтів: Природа TCP на основі байтів дозволяє передавати повідомлення будь-якого розміру та гарантій порядок повідомлень: Навіть якщо попереднє повідомлення не було повністю отримано, і навіть якщо наступні байти були отримані, TCP не доставить їх до рівня програми для обробки та автоматично опускає дублікатів.
Після того, як хост A і хост B встановить з'єднання, додаток повинен лише використовувати лінію віртуального зв'язку для надсилання та отримання даних, таким чином забезпечуючи передачу даних. Протокол TCP несе відповідальність за контроль, такі як встановлення з'єднання, відключення та утримання. Слід зазначити, що тут ми говоримо, що віртуальна лінія означає лише встановити з'єднання, з'єднання протоколу TCP лише вказує на те, що дві сторони можуть запустити передачу даних та забезпечити надійність даних. Мережеві пристрої обробляють вузли маршрутизації та транспорту; Сам протокол TCP не стосується цих деталей.

З'єднання TCP-це повна дуплексна послуга, що означає, що хост A і хост B може передавати дані в обох напрямках у з'єднанні TCP. Тобто, дані можуть бути передані між хостом A і хостом В у двонаправленому потоці.

TCP тимчасово зберігає дані в буфері відправки з'єднання. Цей буфер надсилання-один із кешів, встановлених під час тристороннього рукостискання. Згодом TCP надішле дані в кеші надсилання на кеш -кеш хоста призначення у відповідний час. На практиці кожен одноранговий матиме кеш -надсилання та кеш прийому, як показано тут:

TCP-UDP

Буфер відправки - це область пам'яті, що підтримується реалізацією TCP на стороні відправника, яка використовується для тимчасового зберігання даних, які потрібно надіслати. Коли тристороннє рукостискання виконується для встановлення з'єднання, кеш-надсилання встановлюється та використовується для зберігання даних. Буфер відправки динамічно коригується відповідно до перевантаженості мережі та зворотного зв'язку з приймачем.

Буфер прийому - це область пам’яті, що підтримується впровадженням TCP з боку прийому, яка використовується для тимчасового зберігання отриманих даних. TCP зберігає отримані дані в кеші прийому і чекає, коли верхня програма прочитала їх.

Зауважте, що розмір кешу надсилання та отримання кешу обмежений, коли кеш повноцінний, TCP може прийняти деякі стратегії, такі як контроль заторів, контроль потоку тощо, щоб забезпечити надійну передачу даних та стабільність мережі.

У комп'ютерних мережах передача даних між хостами здійснюється за допомогою сегментів. То що таке сегмент пакетів?

TCP створює сегмент TCP або сегмент пакетів, розділивши вхідний потік на шматки та додавання заголовків TCP до кожного шматка. Кожен сегмент може передаватися лише протягом обмеженого часу і не може перевищувати максимального розміру сегмента (MSS). На шляху вниз сегмент пакетів проходить через шар ланку. Шар посилань має максимальний блок передачі (MTU), який є максимальним розміром пакету, який може проходити через шар посилання даних. Максимальний блок передачі зазвичай пов'язаний з інтерфейсом зв'язку.

То яка різниця між MSS та MTU?

У комп'ютерних мережах ієрархічна архітектура дуже важлива, оскільки вона враховує відмінності між різними рівнями. Кожен шар має різну назву; У транспортному шарі дані називаються сегментом, а в мережевому рівні дані називаються IP -пакетом. Тому максимальний блок передачі (MTU) можна вважати максимальним розміром пакетів IP, який може передаватися мережевим рівнем, тоді як максимальний розмір сегмента (MSS) - це концепція транспортного шару, яка стосується максимальної кількості даних, які можуть передавати пакет TCP за час.

Зауважте, що коли максимальний розмір сегмента (MSS) більший за максимальний блок передачі (MTU), фрагментація IP буде виконана на мережевому шарі, а TCP не розділить більші дані на сегменти, придатні для розміру MTU. Буде розділ про мережевий шар, присвячений IP -шару.

Структура сегмента пакетів TCP
Давайте вивчимо формат та вміст заголовків TCP.

Сегмент TCP

Номер послідовності: Випадкове число, створене комп'ютером, коли з'єднання встановлюється як його початкове значення при встановленні з'єднання TCP, а номер послідовності надсилається до приймача через пакет SYN. Під час передачі даних відправник збільшує номер послідовності відповідно до кількості надісланих даних. Приймач судить порядок даних відповідно до отриманого номера послідовності. Якщо дані знайдені з ладу, одержувач буде переробити дані, щоб забезпечити порядок даних.

Номер підтвердження: Це номер послідовності, що використовується в TCP для підтвердження отримання даних. Це вказує на номер послідовності наступних даних, які відправник очікує отримувати. У підключенні TCP приймач визначає, які дані були успішно отримані на основі кількості послідовності сегмента отриманих даних. Коли приймач успішно отримує дані, він надсилає пакет ACK відправнику, який містить номер підтвердження підтвердження. Отримавши пакет ACK, відправник може підтвердити, що дані перед тим, як підтвердити номер відповіді, були успішно отримані.

Контрольні біти сегмента TCP включають наступне:

Біт: Коли цей біт 1, це означає, що поле відповіді підтвердження є дійсним. TCP вказує, що цей біт повинен бути встановлений на 1, за винятком пакетів SYN, коли з'єднання спочатку встановлюється.
Перший біт: Коли цей біт дорівнює 1, він вказує на те, що у з'єднанні TCP є виняток, і з'єднання повинно бути змушене відключити.
Син Біт: Коли цей біт встановлений на 1, це означає, що з'єднання має бути встановлено і початкове значення числа послідовності встановлюється в полі число послідовності.
Плавник: Коли цей біт дорівнює 1, це означає, що в майбутньому більше не надсилатимуться дані та бажання з'єднання.
Різні функції та характеристики TCP втілюються структурою сегментів пакетів TCP.

Що таке UDP? (MyLiking'sМережевий краніБрокер мережевого пакетуможе обробити як TCP, так і UDP -пакети)
Протокол Дейтаграми користувача (UDP) - це протокол зв'язку без зв’язку. У порівнянні з TCP, UDP не забезпечує складних механізмів управління. Протокол UDP дозволяє програмам безпосередньо надсилати інкапсульовані IP -пакети, не встановлюючи з'єднання. Коли розробник вирішує використовувати UDP замість TCP, програма спілкується безпосередньо з IP.

Повна назва протоколу UDP - це протокол Дейтаграми користувача, а його заголовок - лише вісім байт (64 біт), що дуже стисло. Формат заголовка UDP такий:

Сегмент UDP

Порти призначення та джерела: Їх головна мета - вказати, до якого процесу UDP повинен надсилати пакети.
Розмір пакету: Поле розміру пакету містить розмір заголовка UDP плюс розмір даних
Контрольна сума: Розроблений для забезпечення надійної доставки заголовків UDP та даних Роль контрольної суми полягає в тому, щоб виявити, чи сталася помилка чи корупція під час передачі пакета UDP для забезпечення цілісності даних.

Відмінності між TCP та UDP у MyLinking'sМережевий краніБрокер мережевого пакетуможе обробити як TCP, так і UDP -пакети
TCP та UDP різні в таких аспектах:

TCP проти UDP

З'єднання: TCP-це протокол транспорту, орієнтований на з'єднання, який вимагає встановлення з'єднання, перш ніж дані можуть бути передані. З іншого боку, UDP не потребує з'єднання і може негайно передавати дані.

Об'єкт обслуговування: TCP-це двоточкова послуга один на один, тобто з'єднання має лише дві кінцеві точки для спілкування один з одним. Однак UDP підтримує один на один, один на безліч та багато-багато інтерактивного спілкування, яке може одночасно спілкуватися з кількома хостами.

Надійність: TCP надійно надає послугу надання даних, гарантуючи, що дані не мають помилок, без втрат, не примірнику та надходять на вимогу. З іншого боку, UDP докладає максимум зусиль і не гарантує надійної доставки. UDP може страждати від втрати даних та інших ситуацій під час передачі.

Контроль заторів, контроль потоку: TCP має механізми контролю заторів та управління потоком, які можуть регулювати швидкість передачі даних відповідно до умов мережі, щоб забезпечити безпеку та стабільність передачі даних. UDP не має механізмів контролю заторів та потоку, навіть якщо мережа дуже перевантажена, вона не вносить коригування швидкості відправки UDP.

Заголовок над головою: TCP має довгу довжину заголовка, як правило, 20 байт, що збільшується, коли використовуються поля варіанту. З іншого боку, UDP має фіксований заголовок лише 8 байт, тому UDP має нижній заголовок над головою.

TCP проти UDP

Сценарії додатків TCP та UDP:
TCP та UDP - це два різних протоколи транспортного шару, і вони мають певні відмінності в сценаріях застосування.

Оскільки TCP-це протокол, орієнтований на з'єднання, він використовується в першу чергу в сценаріях, де потрібна надійна доставка даних. Деякі випадки загального використання включають:

Передача файлів FTP: TCP може гарантувати, що файли не втрачаються та пошкоджені під час передачі.
Http/https: TCP забезпечує цілісність та правильність веб -вмісту.
Оскільки UDP-це протокол без зв’язку, він не забезпечує гарантію надійності, але має характеристики ефективності та в режимі реального часу. UDP підходить для таких сценаріїв:

Трафік з низьким вмістом упаковки, наприклад DNS (система доменних імен): Запити DNS, як правило, короткі пакети, і UDP може їх швидше завершити.
Мультимедійне спілкування, наприклад, відео та аудіо: Для мультимедійної передачі з високими вимогами в режимі реального часу UDP може забезпечити меншу затримку, щоб переконатися, що дані можуть бути вчасно передані.
Трансляція спілкування: UDP підтримує зв'язок один на безліч і багато-багато, і може бути використаний для передачі мовних повідомлень.

Резюме
Сьогодні ми дізналися про TCP. TCP-це орієнтоване на з'єднання, надійне, протокол зв'язку транспорту на основі байтів. Це забезпечує надійну передачу та впорядковане прийом даних шляхом встановлення з'єднання, рукостискання та підтвердження. Протокол TCP використовує порти для реалізації зв'язку між процесами та надає послуги прямого зв'язку для додатків, що працюють на різних хостах. З'єднання TCP-це повне дуплекс, що дозволяє одночасно двонаправлене передачу даних. На відміну від цього, UDP-це протокол зв'язку без зв’язку, який не забезпечує гарантії надійності та підходить для деяких сценаріїв з високими вимогами в режимі реального часу. TCP та UDP відрізняються в режимі підключення, об'єкта служби, надійності, контролю заторів, контролю потоку та інших аспектів, а також їх застосування сценарії також відрізняються.


Час посади: грудень-03-2024