UDP

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

Протокол дэйтаграмм користувача 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).


TCP/IP