Протоколи UDP і TCP

Протокол UDP

Протокол UDP (User Datagram Protocol) — протокол транспортного рівня, що входить в стек протоколів TCP/IP, котрий забезпечує негарантовану доставку даних без встановлення віртуального з’єднання.

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

Протокол TCP

Протокол TCP (Transmission Control Protocol) є транспортним протоколом стека протоколів TCP/IP, що забезпечує гарантовану доставку даних зі встановленням віртуального з’єднання.

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

Відповідно до функціонального призначення протоколу структура TCP-сегменту припускає наявність наступних інформаційних полів:

— номер порту-відправника і номер порту-одержувача — номери портів, що ідентифікують програми, між якими здійснюється взаємодія;
— поля, призначені для забезпечення гарантованої доставки: розмір вікна, номер послідовності і номер підтвердження (див. Реалізація режиму гарантованої доставки);
— прапори, що управляють, — спеціальні бітові поля, що управляють протоколом.

Протоколи для з’єднань типу «крапка-крапка»

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

Гарантована доставка

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

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

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

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

Доставка даних між додатками

Для ідентифікації програм протоколи транспортного рівня в мережі Інтернет (TCP і UDP), використовують унікальні числові значення, так звані номери портів. Номери портів призначаються програмам відповідно до їх функціонального призначення на основі певних стандартів. Для кожного протоколу існують стандартні списки відповідності номерів портів і програм. Так, наприклад, програмне забезпечення WWW, що працює через транспортний протокол TCP, використовує TCP-порт 80, модулі протоколу FTP — TCP-порт 21, а служба DNS взаємодіє з транспортними протоколами TCP і UDP через TCP-порт 53 і UDP-порт 53 відповідно.

Таким чином, протокол мережевого рівня IP і транспортні протоколи TCP і UDP реалізують дворівневу схему адресації: номери TCP- і UDP-портів дозволяють однозначно ідентифікувати програму в рамках вузла, однозначно визначуваного IP-адресою. Отже, комбінація IP-адреси і номера порту дозволяє однозначно ідентифікувати програму в мережі Інтернет. Така комбінована адреса називається сокетом (socket).

Функції транспортного рівня.

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

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

Таким чином, засоби транспортного рівня є функціональною надбудовою над мережевим рівнем і вирішують дві основні задачі:

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

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

Мережевий рівень. Основні висновки.

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

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

Пристрої, призначені для об’єднання мереж на мережевому рівні, називаються маршрутизаторами.

Основним протоколом мережевого рівня є протокол IP.

Протокол IP визначає схему адресації вузлів мережі і забезпечує маршрутизацію і фрагментацію пакетів.

IP-адреса — це 4-х байтове число, що однозначним чином ідентифікує вузол мережі і що складається з двох частин — номеру мережі і номеру вузла.

Залежно від того, скільки розрядів всередині IP-адреси відводиться під номери мережі і вузла, адреси діляться на класи.

Для гнучкого розділення IP-адреси на номери мережі і вузла може використовуватися маска підмережі — 4-х байтове число спеціального вигляду.

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

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

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

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

Допоміжні протоколи мережевого рівня стека TCP/IP

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

Перша проблема полягає в наступному. Для того, щоб передати дані по мережі, програмне забезпечення протоколу IP створює пакет і передає його засобам канального рівня. При цьому засобам канального рівня для формування кадру даних необхідна адреса одержувача, причому не логічна IP-адреса, а MAC-адреса, яка може бути правильно пізнана мережевим адаптером приймаючого комп’ютера. Проте специфікацією протоколу IP не передбачений механізм, що дозволяє визначати відповідність між апаратними і IP-адресами. Цю функцію виконує допоміжний протокол мережевого рівня ARP (Address Resolution Protocol), що входить в сімейство протоколів TCP/IP.

Інша серйозна проблема полягає в тому, що якщо при обробці IP-пакету на маршрутизаторі виникли якісь проблеми, наприклад, закінчився «час життя пакету», то відправник про них не дізнається, оскільки механізм «зворотного зв’язку» також не передбачений специфікацією протоколу IP. Для вирішення цієї проблеми використовується спеціальний протокол мережевого рівня ICMP (Internet Control Message Protocol), що входить в стек протоколів TCP/IP, і котрий забезпечує передачу управляючої інформації і інформації про помилки.

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

IP-фрагментація

Як відомо, для різних мережевих технологій значення MTU, визначене для кадрів даних, може відрізнятися. Тому, при перетворенні кадрів на маршрутизаторі може бути потрібно розділення вкладених в них IP-пакетів на дрібніші пакети.

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

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

Структура кадру даних

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

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

 2. Поле, призначене для визначення протоколу мережевого рівня, якому необхідно передати дані. Оскільки на одному комп’ютері можуть функціонувати програмні модулі різних протоколів мережевого рівня, то протоколи канального рівня повинні уміти розподіляти дані по цих протоколах.

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

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

Для більшості протоколів канального рівня існує обмеження на максимально допустимий об’єм даних, що передаються в одному кадрі, що викликане різними технічними умовами. Характеристику, що встановлює це порогове значення, виражене в байтах, позначають англійською абревіатурою MTU (Maximum Transfer Unit, максимальна одиниця передачі даних).

IP-маршрутизація

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

Як IP-маршрутизатор може бути використаний комп’ютер, системне програмне забезпечення якого дозволяє здійснювати IP-маршрутизацію. Зокрема, маршрутизатор можна організувати на базі комп’ютера під управлінням будь-якої з операційних систем сімейства Microsoft Windows Server.

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

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

Якщо на вузлі не настроєна адреса маршрутизатора, то доставка даних одержувачу, розташованому в іншій мережі, виявиться неможливою.

Вибір шляху на маршрутизаторі здійснюється на основі інформації, представленої в таблиці маршрутизації. Таблиця маршрутизації — це спеціальна таблиця, що зіставляє IP-адресам мереж адреси наступних маршрутизаторів, на які слід відправляти пакети з метою їх доставки в ці мережі. Обов’язковим записом в таблиці маршрутизації є так званий маршрут по замовчуванню, що містить інформацію про те, як направляти пакети в мережі, адреси яких не присутні в таблиці, тому немає необхідності описувати в таблиці маршрути для всіх мереж. Таблиці маршрутизації можуть будуватися «вручну» адміністратором або динамічно, на основі обміну інформацією, який здійснюють маршрутизатори за допомогою спеціальних протоколів.