UDP

Матеріал з Вікі ЦДУ
Версія від 18:40, 3 грудня 2008; Hiss (обговореннявнесок)

(різн.) ← Попередня версія • Поточна версія (різн.) • Новіша версія → (різн.)
Перейти до: навігація, пошук

Протокол дэйтаграмм користувача UDP (User Datagram Protocol) є протоколом транспортного рівня і базується на можливостях, наданих міжмережевим протоколом IP. Основна задача TCP - забезпечення "швидкої" передачі даних у мережі. Його транспортна адреса в заголовку IP-сегмента дорівнює 17.

Його основні характеристики перераховані нижче: - реалізує взаємодію в режимі без встановлення логічного (віртуального) з'єднання; - організує поблочний (дэйтаграммный, пакетний) тип передачі даних; - для ідентифікації партнерів по взаємодії на транспортному рівні використовує 16-бітові "номери портів"; - не гарантує надійної передачі даних (можлива як утрата UDP-пакетів, так і їхнє дублювання); - не має засобів повідомлення джерела UDP-пакета про правильність/помилковості в його прийомі адресатом; - не забезпечує правильний порядок доставки UDP-пакетів від джерела до приймача; - може гарантувати цілісність даних у UDP-пакеті за рахунок використання контрольної суми; - дуже простий (особливо, у порівнянні з протоколом TCP).

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

Формат заголовка UDP-пакета. 0 15 31 +------------------------------+-------------------------------+ | Порт джерела | Порт приймача | +------------------------------+-------------------------------+ | Довжина | Контрольна сума | +------------------------------+-------------------------------+

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

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

        0         7          15                      31
       +-----------+-----------+-----------------------+
       |             IP-адреса джерела                 |
       +-----------------------+-----------------------+
       |             IP-адреса приймача                |
       +-----------+-----------+-----------------------+
       |   Нулі    | Транспорт |   Довжина IP-сегмента |
       +-----------+-----------+-----------------------+

Якщо поле "Контрольна сума" UDP-заголовка містить нульове значення, це означає, що джерело UDP-пакета контрольну суму не підраховував, і приймач виконувати її перевірку не повинний. Деякі реалізації протоколу UDP (наприклад, у SunOS - клоні ОС UNIX від Sun Microsystems) контрольну суму не підраховують у принципі, покладаючись на можливості контролю цілісності даних, реалізовані в протоколах мережного рівня (наприклад, у Ethernet).