Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ysatenko_Osnovi Internet.doc
Скачиваний:
1
Добавлен:
17.11.2019
Размер:
1.1 Mб
Скачать

2.7. 3 Інкапсуляція пакетів

У багаторівневій сім’ї протоколів TCP/IP протокол UDP належить транспортному рівню й займає нішу між міжмережними (IP, ICMP) і прикладними протоколами. Прикладні програми звертаються до UDP, що використовує IP-протокол для пересилання й одержання датаграм (рис. 14)

Рисунок 14 – Взаємозв'язок рівнів при відправленні (прийомі) повідомлень

Знаходження UDP-протоколу над IP означає, що повні UDP-повідомлення, що включають UDP-заголовок і дані, інкапсулюються в IP-датаграмах при передаванні мережею (рис.15).

Для протоколів IP та UDP інкапсуляція означає, що UDP приписує заголовок на початку даних, які передав користувач, і передає все це нижньому рівню протоколів (протоколу IP). Міжмережний рівень – рівень протоколу IP – приписує свій заголовок до UDP-сегменту. І, нарешті, рівень взаємодії з мережею вставляє датаграми в кадри перед передачею їх від однієї машини до іншої.

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

Рисунок 15 – Інкапсуляція UDP-датаграми

2.7.4 Поділ на рівні й обчислення контрольної суми udp

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]