Що таке hdr у протоколі udp ip. Протокол UDP. Передача даних за протоколом UDP

Говорячи про безпеку інформації, ми маємо на увазі конфіденційність, цілісність та доступність інформації у кожний момент часу. І якщо з конфіденційністю та доступністю все зрозуміло, то як забезпечити цілісність інформації при її передачі через мережу? Для вирішення цього завдання нам знадобиться знання мережевих протоколів. У цій статті ми розглянемо протоколи TCP та UDP. Вони входять до стек протоколів TCP/IP, відносяться до транспортного рівня моделі OSI і використовуються передачі інформації від вузла до вузла.

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

UDP

UDP protocol – протокол, що забезпечує передачу даних (датаграм) без створення сполучень між хостами. При надсиланні датаграм немає впевненості в існуванні одержувача та його готовності до обміну. Мережевий протокол UDP не забезпечує впорядкування датаграм при отриманні. Він використовується додатками для яких істотне значення має час доставки, коли немає можливості чекати затримані або вимагати втрачені пакети, наприклад, в системах реального часу. Датаграми можуть доставлятися не в заданому порядку, дублюватися або не доставлятися. Тому протокол UDP називають "ненадійним протоколом датаграм".

Програми, які використовують протокол UDP, не чутливі до втрат даних, порушення порядку отримання датаграм та дублювання. Вони можуть використовувати механізми забезпечення надійності на прикладному рівні.

TCP

Протокол передачі TCP - протокол забезпечує надійну доставку пакетів даних, він забезпечує встановлення з'єднання між двома хостами методом «рукостискання», після якого може здійснюватися обмін даними.

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

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

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

TCP та UDP відмінності

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

Діліться корисною інформацією із близькими.

UDP

Опис та призначення

UDP - User Datagram Protocol/ Протокол передачі датаграм користувача (RFC-768). Протокол UDP базується на протоколі IP і надає прикладним процесам транспортні послуги, що трохи відрізняються від послуг протоколу IP. Протокол UDP забезпечує негарантовану доставку даних, тобто. не потребує підтвердження їх отримання; крім того, цей протокол не вимагає встановлення з'єднання між джерелом та приймачем інформації.

Рівень (за моделлю OSI): Транспортний.

UDP є одним з ключових елементів Transmission Control Protocol/Internet Protocol, набору мережевих протоколів для Інтернету. З UDP комп'ютерні програми можуть надсилати повідомлення (в даному випадку звані датаграми) іншим хостам по IP-мережі без необхідності попереднього повідомлення для встановлення спеціальних каналів передачі або шляхів даних. Протокол був розроблений Девідом П. Рідом у 1980 році та офіційно визначений у RFC 768.

UDP використовує просту модель передачі, без неявних «рукостискань» для забезпечення надійності, упорядкування чи цілісності даних. Таким чином, UDP надає ненадійний сервіс і датаграми можуть прийти не по порядку, дублюватися або зовсім зникнути без сліду. UDP має на увазі, що перевірка помилок та виправлення або не потрібні, або повинні виконуватись у додатку. Чутливі до часу програми часто використовують UDP, оскільки краще скинути пакети, ніж чекати пакети, що затрималися, що може виявитися неможливим в системах реального часу. При необхідності виправлення помилок на мережному рівні інтерфейсу програма може використовувати TCP або SCTP, розроблені для цієї мети.

Природа UDP як протоколу без збереження стану також корисна для серверів, що відповідають на невеликі запити від величезної кількості клієнтів, наприклад DNS та потокові мультимедійні програми на зразок IPTV, Voice over IP, протоколи тунелювання IP та багато онлайн-ігор.

UDP – мінімальний орієнтований на обробку повідомлень протокол транспортного рівня, задокументований у RFC 768. Відповідно виконує всі функції транспортного рівня.

UDP не надає жодних гарантій доставки повідомлення для протоколу верхнього рівня та не зберігає стану надісланих повідомлень. Тому UDP іноді називають Unreliable Datagram Protocol (англ. - Ненадійний протокол датаграм).

UDP забезпечує багатоканальну передачу (за допомогою номерів портів) та перевірку цілісності (за допомогою контрольних сум) заголовка та суттєвих даних. Надійна передача в разі потреби повинна реалізовуватись додатком користувача.

Рис.3.5.

Заголовок UDP складається з чотирьох полів, кожне по 2 байти (16 біт). Два з них необов'язкові для використання в IPv4 (рожеві комірки в таблиці), тоді як IPv6 необов'язковий тільки порт відправника.

Порт відправника

У цьому полі вказується номер порту відправника. Передбачається, що це значення визначає порт, на який при необхідності буде надсилатися відповідь. В іншому випадку значення має бути рівним 0. Якщо хостом-джерелом є клієнт, то номер порту буде, швидше за все, ефемерним. Якщо джерелом є сервер, його порт буде однією з «добре відомих».

Порт одержувача

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

Довжина датаграми

Поле, що задає довжину всієї датаграми (заголовка та даних) у байтах. Мінімальна довжина дорівнює довжині заголовка - 8 байт. Теоретично, максимальний розмір поля - 65535 байт для UDP-датаграми (8 байт на заголовок та 65527 на дані). Фактична межа для довжини даних при використанні IPv4 - 65507 (крім 8 байт на UDP-заголовок потрібно ще 20 на IP-заголовок).

У Jumbogram"мах IPv6 пакети UDP можуть мати більший розмір. Максимальне значення становить 4294967295 байт (2 ^ 32 - 1), з яких 8 байт відповідають заголовку, а решта 4294967287 байт - даним.

Контрольна сума

Поле контрольної суми використовується для перевірки заголовка та даних на помилки. Якщо сума не згенерована передавачем, поле заповнюється нулями. Поле не є обов'язковим для IPv4.

Розрахунок контрольної суми

Метод для обчислення контрольної суми визначений RFC 768.

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

Для розрахунку контрольної суми псевдозаголовок та UDP-повідомлення розбивається на слова (1 слово = 2 байти (октету) = 16 біт). Потім розраховується порозрядне доповнення до одиниці суми всіх слів із порозрядним доповненням. Результат записується у відповідне поле UDP-заголовку.

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

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

Псевдозаголовки

Якщо UDP працює над IPv4, контрольна сума обчислюється за допомогою псевдозаголовка, який містить деяку інформацію із заголовка IPv4. Псевдозаголовок не є справжнім заголовком IPv4, що використовується для відправлення IP-пакета. У таблиці наведено псевдозаголовок, який використовується лише для обчислення контрольної суми.

Мал. 3.6.

Адреси джерела та одержувача беруться з IPv4-заголовка. Значення поля "Протокол" для UDP дорівнює 17 (0x11). Поле «Довжина UDP» відповідає довжині заголовка та даних.

Обчислення контрольної суми для IPv4 необов'язково, якщо вона не використовується, значення дорівнює 0.

При роботі UDP над IPv6 контрольна сума є обов'язковою. Метод для її обчислення був опублікований у RFC 2460:

При обчисленні контрольної суми знову використовується псевдозаголовок, що імітує реальний IPv6-заголовок:

Мал. 3.7.

Адреса джерела така сама, як і в IPv6-заголовку. Адреса отримувача - фінальний отримувач; якщо в IPv6-пакеті не міститься заголовка маршрутизації (Routing), то це буде адреса одержувача з IPv6-заголовка, інакше на початковому вузлі, це буде адреса останнього елемента заголовка маршрутизації, а на вузлі-одержувачі - адреса одержувача з IPv6 -Заголовка. Значення «Наступний заголовок» дорівнює значенню протоколу - 17 для UDP. Довжина UDP - довжина UDP-заголовка та даних.

Надійність та вирішення проблеми перевантажень

Через брак надійності програми UDP повинні бути готові до деяких втрат, помилок та дублювання. Деякі з них (наприклад, TFTP) можуть додати елементарні механізми забезпечення надійності на прикладному рівні.

Але найчастіше такі механізми не використовуються UDP-додатками і навіть заважають їм. Потокові медіа, розраховані на багато користувачів ігри в реальному часі і VoIP - приклади додатків, що часто використовують протокол UDP. У цих конкретних програмах втрата пакетів зазвичай не є великою проблемою. Якщо програма потребує високого рівня надійності, можна використовувати інший протокол (TCP) або erasure codes.

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

Мережеві механізми були призначені для того, щоб звести до мінімуму можливі ефекти від перевантажень при неконтрольованих високошвидкісних навантаженнях. Такі мережеві елементи, як маршрутизатори, що використовують пакетні черги та техніки скидання, часто є єдиним доступним інструментом для уповільнення надлишкового UDP-трафіку. DCCP (англ. Datagram Congestion Control Protocol - протокол контролю за навантаженнями датаграм) розроблений як часткове вирішення цієї потенційної проблеми за допомогою додавання кінцевому хосту механізмів для відстеження перевантажень для високошвидкісних UDP-потоків на кшталт потокових медіа.

Програми

Численні ключові Інтернет-додатки використовують UDP, у тому числі - DNS (де запити повинні бути швидкими і складатися тільки з одного запиту, за яким слідує один пакет відповіді), Простий Протокол Управління Мережами (SNMP), Протокол Маршрутної Інформації (RIP), Протокол динамічної конфігурації вузла (DHCP).

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

Порівняння UDP та TCP

TCP - орієнтований на з'єднання протокол, що означає необхідність "рукостискання" для встановлення з'єднання між двома хостами. Як тільки з'єднання встановлено, користувачі можуть надсилати дані в обох напрямках.

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

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

Важковаговість-- TCP потрібно три пакети для встановлення сокет-з'єднання перед тим, як надіслати дані. TCP стежить за надійністю та перевантаженнями.

Поточність- Дані читаються як потік байтів, не передається ніяких особливих позначень для меж повідомлення або сегментів.

UDP – простий, заснований на повідомленнях протокол без встановлення з'єднання. Протоколи такого типу не встановлюють виділення з'єднання між двома хостами. Зв'язок досягається шляхом передачі в одному напрямку від джерела до одержувача без перевірки готовності або стану одержувача. Однак, основною перевагою UDP над TCP є програми для голосового зв'язку через інтернет-протокол (Voice over IP, VoIP), в якому будь-яке «рукостискання» завадило б хорошому голосовому зв'язку. VoIP вважається, що кінцеві користувачі в реальному часі нададуть будь-яке необхідне підтвердження про отримання повідомлення.

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

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

Легковість-- ніякого впорядкування повідомлень, ніякого відстеження з'єднань тощо. буд. Це невеликий транспортний рівень, розроблений IP.

Датаграми- пакети надсилаються окремо і перевіряються на цілісність тільки якщо вони прибули. Пакети мають певні межі, які дотримуються після отримання, тобто операція читання на сокет-одержувачі видасть повідомлення таким, яким воно було спочатку надіслано.

Немає контролю навантажень-- UDP сам по собі не уникає перевантажень. Для додатків з великою пропускною здатністю можна викликати колапс перевантажень, якщо вони не реалізують заходи контролю на прикладному рівні.

Протокол UDP

User Datagram Protocol (UDP)- це простий, орієнтований на дейтаграм протокол без організації з'єднання, що надає швидке, але необов'язково надійне транспортне обслуговування. Він підтримує взаємодії "один із багатьма" і тому часто застосовується для широкомовної та групової передачі дейтаграм.

Internet Protocol (IP) є ​​основним протоколом Інтернету. Transmission Control Protocol (TCP) і UDP - це протоколи транспортного рівня, побудовані поверх лежить основу протоколу.

TCP/IP - це набір протоколів, званий також "пакетом протоколів Інтернету" (Internet Protocol Suite), що з чотирьох рівнів. Запам'ятайте, що TCP/IP не просто один протокол, а сімейство або набір протоколів, що складається з інших низькорівневих протоколів, таких як IP, TCP та UDP. UDP розміщується на транспортному рівні поверх IP (протоколу мережного рівня). Транспортний рівень забезпечує взаємодію між мережами через шлюзи. У ньому використовуються IP-адреси для надсилання пакетів даних через Інтернет або іншу мережу за допомогою різноманітних драйверів пристроїв.

Перш ніж приступати до вивчення роботи UDP, звернемося до основної термінології, яку потрібно добре знати. Нижче коротко визначимо основні терміни, пов'язані з UDP:

Пакети

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

Дейтаграми

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

MTU (Maximum Transmission Unit)

MTU характеризує канальний рівень і відповідає максимальній кількості байтів, яку можна передати в одному пакеті. Тобто MTU - це найбільший пакет, який може переносити дане мережеве середовище. Наприклад, Ethernet має фіксований MTU, що дорівнює 1500 байтам. У UDP, якщо розмір дейтаграми більший за MTU, протокол IP виконує фрагментацію, розбиваючи дейтаграму на дрібніші частини (фрагменти) так, щоб кожен фрагмент був меншим за MTU.

Порти

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

    Добре відомі порти - від 0 до 1023

    Реєстровані порти - від 1024 до 49151

    Динамічні / приватні порти – від 49152 до 65535

Зауважимо, що порти UDP можуть отримувати більше одного повідомлення за кожен проміжок часу. У деяких випадках сервіси TCP і UDP можуть використовувати ті самі номери портів, наприклад 7 (Echo) або 23 (Telnet).

UDP використовує такі відомі порти:

Перелік портів UDP та TCP підтримується агентством IANA (Internet Assigned Numbers Authority).

IP-адреси

Дейтаграма IP складається з 32-бітових IP-адрес джерела та призначення. IP-адреса призначення визначає кінцеву точку для дейтаграми UDP, а IP-адреса джерела використовується для отримання інформації про те, хто відправив повідомлення. У пункті призначення пакети фільтруються, і ті, адреси джерел яких не входять у допустимий набір адрес, відкидаються без повідомлення відправника.

Однонаправлена ​​IP-адреса унікально визначає хост у мережі, тоді як групова IP-адреса визначає конкретну групу адрес у мережі. Широкомовні IP-адреси виходять та обробляються всіма хостами локальної мережі або конкретної підмережі.

TTL

Значення часу життя, або TTL (time-to-live), дозволяє встановити верхню межу числа маршрутизаторів, якими може пройти дейтаграмма. Значення TTL не дає пакетам потрапити до нескінченних циклів. Воно ініціалізується відправником і зменшується на одиницю кожним маршрутизатором, який обробляє дейтаграму. Коли значення TTL стає нульовим, дейтаграма відкидається.

Групове розсилання

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

Принцип роботи UDP

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

На попередньому малюнку вказано, що загальна довжина заголовка UDP становить вісім байтів. Теоретично максимальний розмір дейтаграми IP дорівнює 65535 байтам. З урахуванням 20 байтів заголовка IP та 8 байтів заголовка UDP довжина даних користувача може досягати 65 507 байтів. Проте більшість програм працюють із даними меншого розміру. Так, для більшості програм за замовчуванням встановлена ​​довжина приблизно 8192 байта, оскільки саме такий обсяг даних зчитується та записується мережевою файловою системою (NFS). Можна встановлювати розміри вхідного та вихідного буферів.

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

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

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

Коли програма-відправник "викидає" дейтаграму в мережу, вона надсилається по IP-адресі призначення, вказаному в заголовку IP. При проході через маршрутизатор значення часу життя (TTL) у заголовку IP зменшується на одиницю.

Коли дейтаграма прибуває до заданого призначення та порту, рівень IP за своїм заголовком перевіряє, чи фрагментована дейтаграма. Якщо це так, дейтаграма збирається відповідно до інформації, яка є в заголовку. Нарешті прикладний рівень витягує відфільтровані дані, видаляючи заголовок.

Недоліки UDP

Порівняно з TCP UDP має такі недоліки:

    Відсутність сигналів квитування. Перед відправкою пакета UDP, сторона, що відправляє, не обмінюється з стороною, що одержує квитуючими сигналами. Отже, відправник не має способу дізнатися, чи досягла дейтаграма кінцевої системи. В результаті UDP не може гарантувати, що дані дійсно будуть доставлені адресату (наприклад, якщо не працює кінцева система або мережа).

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

    Використання сесій. Орієнтованість TCP на підключення підтримується сеансами між хостами. TCP використовує ідентифікатор сеансу, що дозволяє відстежувати з'єднання між двома хостами. UDP не має підтримки сеансів через свою природу, яка не орієнтована на з'єднання.

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

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

    Управління потоком. У UDP управління потоком відсутня, в результаті погано спроектований UDP-додаток може захопити значну частину пропускної спроможності мережі.

Переваги UDP

Порівняно з TCP UDP має такі переваги:

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

    Швидкість. UDP працює швидше за TCP. З цієї причини багато програм воліють не TCP, a UDP. Ті ж засоби, які роблять TCP більш стійким (наприклад, сигнали квитування), уповільнюють його роботу.

    Топологічна різноманітність. UDP підтримує взаємодії "один з одним" та "один з багатьма", у той час як TCP підтримує лише взаємодію "один з одним".

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

    Розмір заголовка. Для кожного пакета заголовок UDP має довжину лише вісім байтів, у той час як TCP має 20-байтові заголовки, і тому UDP споживає менше пропускної спроможності мережі.

UDP (англ. User Datagram Protocol - протокол користувальницьких датаграм) - це транспортний протокол передачі даних у мережах IP без встановлення з'єднання. Він є одним із найпростіших протоколів транспортного рівня моделі OSI. Його IP-ідентифікатор – 0x11.

UDP зазвичай використовується в таких додатках, як потокове відео та комп'ютерні ігри, де допускається втрата пакетів, а повторний запит утруднений або не виправданий, або в додатках виду запит-відповідь (наприклад, запити до DNS), де створення з'єднання займає більше ресурсів, ніж повторне відправлення. Фактично функції UDP зводяться до операцій мультиплексування та демультиплексування, а також нескладну перевірку наявності помилок у даних. Таким чином, при використанні U DP програма майже безпосередньо взаємодіє з протоколом мережного рівня IP.

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

Прикладом протоколу прикладного рівня, який використовує служби протоколу UDP, є DNS. Коли DNS-програма генерує запит, вона створює DNS-повідомлення та передає його протоколу UDP.


Порівняння протоколів UDP від ​​TCP.

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

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

FTP і HTTP – це приклади програм, у яких для забезпечення доставки даних застосовується протокол TCP.

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


Протокол ARP. Застосування.

ARP(англ. Address Resolution Protocol- протокол визначення адреси) - протокол низького рівня, що використовується в комп'ютерних мережах, призначений для визначення адреси канального рівня за відомою адресою мережевого рівня. Найбільшого поширення цей протокол отримав завдяки повсюдності мереж IP, побудованих поверх Ethernet, оскільки у 100 % випадків у такому поєднанні використовується ARP. Опис протоколу було опубліковано в листопаді 1982 року в RFC 826. ARP був спроектований для передачі IP-пакетів через сегмент Ethernet. При цьому загальний принцип, запропонований для ARP, може бути використаний і для мереж інших типів.

Існують такі типи повідомлень ARP: запит ARP (ARP request) та відповідь ARP (ARP reply). Система-відправник за допомогою запиту ARP просить фізичну адресу системи-отримувача. Відповідь (фізична адреса вузла-отримувача) надходить як відповідь ARP.

Перед тим, як передати пакет мережевого рівня через сегмент Ethernet, мережевий стек перевіряє кеш ARP, щоб з'ясувати, чи не зареєстрована в ньому вже потрібна інформація про вузла-одержувача. Якщо такого запису в кеші ARP немає, виконується широкомовний запит ARP. Цей запит для пристроїв у мережі має такий зміст: «Хто-небудь знає фізичну адресу пристрою, який має наступну IP-адресу?» Коли одержувач з цією IP-адресою прийме цей пакет, то повинен буде відповісти: «Так, це моя IP-адреса. Моя фізична адреса наступна: …» Після цього відправник оновить свій кеш ARP і зможе передати інформацію одержувачу.

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

ARP спочатку було розроблено як для IP протоколу, але нині переважно використовується зіставлення IP- і MAC-адрес.

Принцип роботи

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

Всі вузли локальної мережі отримують ARP запит і порівнюють вказану там IP-адресу з власним.

У разі їх збігу вузол формує ARP-відповідь, в якому вказує свою IP-адресу і свою локальну адресу і відправляє його вже направлено, так як ARP запиту відправник вказує свою локальну адресу.

Доброго часу, дорогі читачі.
На численні прохання сьогодні я публікую для Вас статтю, яка познайомить Вас з основами основ термінів комп'ютерної мережі, а саме:

  • Мережеві протоколи - що це за страшні назви та з чим їх їдять
  • UDP, TCP, ICMP - що, навіщо і в чому різниця
  • IP-адреса, - у всіх є, але не всі знають нафіга ця штука:-)
  • Маска адреси (підмережа)
  • Шлюз (gateway)
  • Декілька слів про таблиці маршрутизації
  • Порти - що це насправді
  • MAC-адреса

Приблизно так.

Стаття, думаю, буде корисна всім від малого до великого, бо містить не стільки набір дивних незрозумілих дій або слів, скільки блок доступною мовою викладеної інформації, яка, як мінімум, дасть Вам розуміння як взагалі це все працює і навіщо це потрібно. Поїхали.

Мережеві протоколи TCP/IP, NWLink IPX/SPX, NetBEUI

Почнемо з того, що взагалі таке мережевий протокол і з чим його їдять.
Мережевий протокол– це набір програмно реалізованих правил спілкування між комп'ютерами. Така мова, якою комп'ютери розмовляють один з одним і передають інформацію. Раніше комп'ютери були, так би мовити, багатомовними і в старих версіях Windows використовувався цілий набір протоколів. TCP/IP, NWLink IPX/SPX, NetBEUI. Нині ж дійшли загальної домовленості, і стандартом стало використання виключно протоколу TCP/IP, а тому далі йдеться саме про нього.

Коли говорять про TCP/IP, то зазвичай мають на увазі під цим ім'ям безліч різних. правил або, скажімо, стандартів, які прописані з використанням (або під використання) цього протоколу. Так, наприклад, є правила, за якими здійснюється обмін повідомленнями між поштовими серверами і є правила, за якими кінцевий користувач одержує до своєї скриньки листи. Є правила для проведення відеоконференцій та правила для організації "телефонних" переговорів по Інтернету. Фактично, це навіть не те щоб правила. Швидше така собі граматика, чи що. Ну знаєте, в англійській одна структура побудови діалогів, у французькій інша. Ось і в TCP/IP щось подібне, тобто. деяка зв'язка різних граматичних правил є якраз цілісним протоколом TCP/IP або, точніше кажучи, стек протоколів TCP/IP.

Мережеві протоколи UDP, TCP, ICMP

У межах протоколу TCP/IP передачі даних використовуються протоколи - TCP і UDP . Багато хто напевно чув, що є порти як TCP, так і UDP, але не всі знають у чому різниця і що це взагалі. І так.

Передача даних за протоколом TCP (Transmission Control Protocol - Протокол Управління Передачею) передбачає наявність підтверджень отримання інформації. "-Ну, мовляв, - отримав? -Отримав!" Якщо ж сторона, що передає, не отримає у встановлені терміни необхідного підтвердження, то дані будуть передані повторно. Тому протокол TCP відносять до протоколів, що передбачають з'єднання, а UDP (User Datagram Protocol - Протокол користувача Датаграм) - ні. UDP застосовується в тих випадках, коли не потрібно підтвердження прийому (наприклад, DNS-запити або IP-телефонія (яскравий представник якої - Skype)). Тобто різниця полягає у наявності підтвердження прийому. Здавалося б "Усього те!", але на практиці це відіграє важливу роль.

Є ще так само протокол ICMP (Internet Control Message Protocol - міжмережевий протокол повідомлень, що управляють), який використовується для передачі даних про параметри мережі. Він включає службові типи пакетів, таки як ping, distintion unreachable, TTLта ін.

Що таке IP-адреса

У всіх він є, але не всі мають уявлення, що за адреса така і чому взагалі без неї не можна. Розповідаю.

IP-адреса - 32-х бітове число, що використовується для ідентифікації комп'ютера в мережі. Адресу прийнято записувати десятковими значеннями кожного октету цього числа з поділом отриманих значень крапками. Наприклад, 192.168.101.36

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

Для побудови локальних мереж виділені спец.діапазони адрес. Це адреси 10.x.x.x, 192.168.x.x, 10.x.x.x, c 172.16.x.x по 172.31.x.x, 169.254.x.x, де під x - мається на увазі будь-яке число це від 0 до 2 Пакети, що передаються з зазначених адрес, не маршрутизується, інакше кажучи, просто не пересилаються через Інтернет, а тому в різних локальних мережах комп'ютери можуть мати відповідні адреси із зазначених діапазонів. Тобто, в компанії ТОВ "Роги і копита" та ТОВ "Вася і компанія" можуть знаходиться два комп'ютери з адресами 192.168.0.244, але не можуть, скажімо, з адресами 85.144.213.122, отриманими від провайдера інтернету, т.к. . в інтернеті не може бути дві однакові IP-адреси. Для пересилання інформації з таких комп'ютерів в Інтернет і назад використовуються спеціальні програми та пристрої, які замінюють локальні адреси реальними при роботі з інтернетом. Іншими словами, дані в Мережу пересилаються з реальної IP-адреси, а не з локальної. Цей процес відбувається не помітно для користувача та називається трансляцією адрес. Хочеться так само згадати, що в рамках однієї мережі, скажімо, компанії, ТОВ "Роги і копита", не може бути два комп'ютери з однією локальною IP-адресою, тобто, у зазначеному вище прикладі малося на увазі, що один комп'ютер адресою 192.168.0.244 в одній компанії, другий з такою ж адресою – в іншій. В одній компанії два комп'ютери з адресою 192.168.0.244 просто не уживуться.

Ви напевно чули такі терміни як зовнішній IP та внутрішній IP, постійний (статичний IP) та змінний (динамічний) IP. У двох словах про них:

  • зовнішній IP - це саме той IP, який видає Вам провайдер, тобто. Ваша унікальна адреса в інтернеті, наприклад, - 85.144.24.122
  • внутрішній IP, - це локальний IP, тобто. Ваш IP у локальній мережі, наприклад, - 192.168.1.3
  • статичний IP - це IP , який змінюється з кожним підключенням, тобто. закріплений за Вами твердо та назавжди
  • динамічний IP, - це плаваюча IP-адреса, яка змінюється з кожним підключенням

Тип IP (статичний або динамічний) залежить від установок провайдера.

Що таке маска адреси (підмережа)

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

Маска - це параметр, який повідомляє програмне забезпечення у тому, скільки комп'ютерів об'єднано у цю групу (підмережа). Маска адреси має таку ж структуру як і сама IP-адреса: це набір із чотирьох груп чисел, кожна з яких може бути в діапазоні від 0 до 255 . При цьому чим менше значення маски, тим більше комп'ютерів об'єднано в цю підмережу. Для мереж невеликих компаній маска зазвичай має вигляд 255.255.255.x (наприклад, 255.255.255.224). Маска мережі надається комп'ютеру одночасно з IP-адресою. Так, наприклад, мережа 192.168.0.0 з маскою 255.255.255.0 може містити комп'ютери з адресами від 192.168.0.1 до 192.168.254 192.168.0.0 з маскою 255.256.19.25. 2.168.0.127. Думаю, сенс зрозумілий. Як правило, мережі з невеликим можливим числом комп'ютерів використовуються провайдерами з метою економії IP-адрес. Наприклад, клієнту може бути призначена адреса з маскою 255.255.255.252 . Така підмережа містить лише два комп'ютери.

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

Що таке Шлюз (Gateway)

Шлюз – це пристрій (комп'ютер або маршрутизатор), який забезпечує пересилання інформації між різними IP-підмережами. Якщо програма визначає (за IP і маскою), що адреса призначення не входить до складу локальної підмережі, вона надсилає ці дані на пристрій, що виконує функції шлюзу. У налаштуваннях протоколу вказують IP-адресу такого пристрою.

Для роботи лише в локальній мережі шлюз може не вказуватись.

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

Що таке таблиці маршрутизації

І ось ми плавно дісталися до них. І так. Що ж за таблиці такі.

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

Що таке мережеві порти

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

Номери портів з 1-го до 1023-го закріплені за конкретними програмами (так звані well-known-порти). Порти з номерами 1024-65535 можуть бути використані в програмах власної розробки. При цьому можливі конфлікти мають вирішувати самі програми шляхом вибору вільного порту. Іншими словами, порти розподілятимуться динамічно: можливо, що при наступному старті програма вибере інше значення порту, якщо, звичайно, Ви вручну через налаштування не задавали їй порт.

Що є MAC-адреса

Справа в тому, що пакети, що пересилаються в мережі, адресуються комп'ютерам не за їх іменами і не на IP-адресу. Пакет призначається пристрою з конкретною адресою, яка називається MAC-адресою.

MAC-адреса - це унікальна адреса мережного пристрою, яка закладена в нього виробником обладнання, тобто. це такий собі проштампований номер Вашої мережевої карти. Перша половина MAC-адреса являє собою ідентифікатор виробника, друга - унікальний номер даного пристрою.

Як правило MAC-адреса буває потрібна для ідентифікації, скажімо, у провайдера (якщо провайдер використовує прив'язку по мак-адресі замість логіна-паролю) або при налаштуванні маршрутизатора.

Де переглянути всі мережеві налаштування

Ледве не забув сказати пару слів про те де можна подивитися і змінити все це.



Схожі статті

2024 parki48.ru. Будуємо каркасний будинок. Ландшафтний дизайн. Будівництво. Фундамент.