Що TCP / UDP додають до "raw ip"?


18

Я знаю, що і TCP, і UDP побудовані на основі IP, і я знаю відмінності між TCP і UDP, але я плутаюся в тому, що саме "raw ip". Чи було б справедливо сказати, що TCP і UDP реалізують IP, але сам IP сам по собі не здатний передавати дані? Або IP - це дуже комунікаційна форма низького рівня, яку далі абстрагують TCP та UDP?


2
Для подальших коментарів нижче (недостатньо для повної відповіді, просто для наочності): IP - це протокол, який передає дані. TCP або UDP - це протоколи, які також передають дані. TCP і UDP часто сидять на вершині IP, тому для IP його навантаження даних може бути TCP або UDP. Ethernet часто використовується для передачі IP. Так, наприклад, кадр Ethernet може нести і IP-пакет, оскільки це корисна навантаження даних, а цей IP-пакет, можливо, несе сегмент TCP, як його корисне навантаження, і так далі. Ви закінчуєте стек таких протоколів, як цей goo.gl/1uEYtC
jwbensley

3
IP, безумовно, передає дані - наприклад, він містить ці пакети TCP / UDP. Це, як правило, не можна використовувати в застосуванні. UDP - це дуже необроблений протокол на вершині IP, але він вже додає номери портів , що дозволяє декільком службам одночасно обробляти трафік UDP в системі. Інакше у вас буде лише стільки служб, скільки у вас IP-адреси.
Луань

Відповіді:


23

IP - протокол рівня 3 . TCP / UDP - це протоколи 4 рівня. Кожен з них служить різним цілям.

3 рівень відповідає за доставку в кінці . Його єдиною функцією є додавання всього необхідного до пакету, щоб отримати пакет від одного хоста до іншого.

Шар 4 відповідає за доставку послуг до обслуговування . Його єдиною функцією є відокремлення потоків даних. На вашому комп’ютері може працювати кілька програм, кожна з яких надсилає / отримує біти на провід. IE: у вас може працювати декілька вкладок браузера, потокове інтернет-радіо, завантаження, запуску деяких законних торрентів, використання програми чату тощо. Усі вони отримують 1 та 0 з дроту, а рівень 4 відокремлює кожен потік даних у унікальний додаток, який їм потрібен. Ось ілюстрація:

L4 Сегрегація потоків даних

IP не в змозі доставити пакет до правильної послуги / програми. І TCP / UDP не в змозі доставити пакет з одного кінця Інтернету на інший.

І TCP, і IP працюють разом, щоб вони могли досягти "кінцевої мети" Інтернет-комунікацій.

Дані, які потрібно отримати від одного хоста до іншого, генеруються верхніми шарами моделі OSI.

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

Тоді сегмент буде переданий до L3, який додасть інформацію, необхідну для доставки сегмента від кінця до кінця, як IP-заголовок із IP-адресою джерела. Заголовок і сегмент L3 тепер можуть називатися пакетом.

Цей процес відомий як інкапсуляція та декапсуляція (або іноді декапсуляція). Ось анімація того, як це працює:

Інкапсуляція та декапсуляція, що використовується з дозволу Practical Networking.net

Якщо це не має сенсу, я пропоную прочитати докладніше про модель OSI та про те, як кожен шар має різні обов'язки, які працюють разом для переміщення пакету через Інтернет .


7
Зауважте, що Інтернет лише вільно слідує моделі OSI.
користувач253751

2
inside an IP header is usually a TCP or UDP headerневірно, заголовок TCP / UDP не знаходиться в заголовку IP, він знаходиться в частині даних пакету IP.
Eborbob

"Його єдиною функцією є відокремлення потоків даних", хоча це, в основному, стосується UDP (також є контрольна сума, але мех), це, звичайно, не відповідає TCP.
Пітер Грін

1
@immibis Правда, але я ще не маю зрозуміти, де наступна модель OSI призвела до неочікуваного впровадження чи розуміння травестії. Здебільшого, а особливо для тих, хто нещодавно наближається до Інтернет-технологій, більш цінним є продовження роздумів над обмеженнями моделі OSI.
Едді

@Eborbob Я бачу, як це неправильно залежно від того, як дивляться на речення. Чесно кажучи, цілий абзац міг би використати слово, я спробую дійти до нього пізніше сьогодні ввечері. Дякуємо, що вказали на це.
Едді

6

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

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

UDP є досить мінімальним шаром над IP. Він додає номери портів, щоб ідентифікувати, для якого сокета дані, і контрольну суму (для відхилення пошкоджених пакетів). Додаток залишається відповідальним за обробку втрачених пакетів, контроль заторів та розподіл даних на пакети відповідного розміру.

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


4

IP - протокол рівня OSI-3, тоді як TCP і UDP є протоколами OSI-рівня 4. Як протокол рівня 3, IP може нести безліч різних протоколів рівня 4. TCP і UDP, мабуть, є найбільш поширеними, але вони не єдині. Протоколи рівня 4 - це те, що програми використовують як кінцеві з'єднання. IP транспортує протоколи 4 рівня з мережі в мережу (хост-хост). Протоколи рівня 2, як Ethernet, транспортні протоколи 3 рівня в локальній мережі.

Вам слід вивчити модель OSI, але зрозуміти, що це концептуальна модель, а реальний світ часто точно не відповідає.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.