69766

Реалізація стека протоколів Інтернету

Лекция

Информатика, кибернетика и программирование

Канальний рівень (data link layer) відповідає за передавання кадру даних між будь-якими вузлами в мережах із типовою апаратною підтримкою (Ethernet, FDDI тощо) або між двома сусідніми вузлами у будь-яких мережах (SLIP, PPP).

Украинкский

2014-10-09

66 KB

2 чел.

Тема 14. Реалізація стека протоколів Інтернету

Сукупність протоколів, які лежать в основі сучасного Інтернету, називають набором протоколів Інтернету (Internet Protocol Suite, IPS) або стеком протоколів TCP/IP за. назвою двох основних протоколів [13, 21, 39]. У цьому розділі наведемо основні характеристики такого набору та особливості його реалізації у сучасних ОС.

14.1. Рівні мережної архітектури TCP/IP

Мережна архітектура TCP/IP має чотири рівні, яки показані на рис. 16.1. Розглянемо їх знизу вгору.

Канальний рівень (data link layer) відповідає за передавання кадру даних між будь-якими вузлами в мережах із типовою апаратною підтримкою (Ethernet, FDDI тощо) або між двома сусідніми вузлами у будь-яких мережах (SLIP, PPP). При цьому забезпечуються формування пакетів, корекція апаратних помилок, спільне використання каналів. Крім того, на більш низькому рівні він забезпечує передавання бітів фізичними каналами, такими як коаксіальний кабель, кручена пара або оптоволоконний кабель (іноді для опису такої взаємодії виділяють окремий фізичний рівень physical layer).

Перш ніж перейти до наступного рівня, дамо два означення. Хостом (host) є вузол мережі, де використовують стек протоколів TCP/IP. Мережним інтерфейсом (network interface) є абстракція віртуального пристрою для зв'язку із мережею, яку надає програмне забезпечення канального рівня. Хост може мати декілька мережних інтерфейсів, зазвичай вони відповідають його апаратним мережним пристроям.

На мережному рівні (network layer) відбувається передавання пакетів із використанням різних транспортних технологій. Він забезпечує доставлення даних між мережними інтерфейсами будь-яких хостів у неоднорідній мережі з довільною топологією, але при цьому не бере на себе жодних зобов'язань щодо надійності передавання даних. На цьому рівні реалізована адресація інтерфейсів і маршрутизація пакетів. Основним протоколом цього рівня у стеку TCP/IP є IP (Internet Protocol).

Транспортний рівень (transport layer) реалізує базові функції з організації зв'язку між процесами, що виконуються на віддалених хостах. У стеку TCP/IP на цьому рівні функціонують протоколи TCP (Transmission Control Protocol) i UDP (User Datagram Protocol). TCP забезпечує надійне передавання повідомлень між віддаленими процесами користувача за рахунок утворення віртуальних з'єднань (цей протокол розглядатиметься докладніше у розділі 16.2.4). UDP забезпечує ненадійне передавання прикладних пакетів (подібно до IP), виконуючи винятково функції сполучної ланки між IP і процесами користувача (далі на ньому зупинятися не будемо).

Прикладний рівень (application layer) реалізує набір різноманітних мережних сервісів, наданих кінцевим користувачам і застосуванням. До цього рівня належать протоколи, реалізовані різними мережними застосуваннями (службами), наприклад, HTTP (основа організації Web), SMTP (основа організації пересилання електронної пошти).

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

14.2. Канальний рівень

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

Як зазначено вище, кількість мережних інтерфейсів звичайно співвідноситься з кількістю мережних апаратних пристроїв хоста. Крім того, виділяють спеціальний інтерфейс зворотного зв'язку (loopback interface); усі дані, передані цьому інтерфейсу, надходять на вхід реалізації стека протоколів того самого хоста.

14.3. Мережний рівень

У цьому розділі йтиметься про особливості протоколів мережного рівня.

Протокол IPv4

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

Кожний мережний інтерфейс в IP-мережі має унікальну адресу. Такі адреси називають IP-адресами. Стандартною версією IP, якою користуються від початку 80-х років XX століття, є IP версії 4 (IPv4), де використовують адреси завдовжки 4 байти. їх зазвичай записують у крапково-десятковому поданні (чотири десяткові числа, розділені крапками, кожне з яких відображає один байт адреси). Прикладом може бути 194.41.233.1. Спеціальну адресу зворотного зв'язку 127.0.0.1 (loopback address) присвоюють інтерфейсу зворотного зв'язку і використовують для зв'язку із застосуваннями, запущеними на локальному хості.

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

Протокол IPv6

Суттєвим недоліком протоколу IPv4 є незначна довжина IP-адреси. Кількість адрес, які можна відобразити за допомогою 32 біт, є недостатньою з огляду на сучасні темпи росту Інтернету. Сьогодні нові IP-адреси виділяють обмежено.

Для вирішення цієї проблеми було запропоновано нову реалізацію ІР-прото-колу — IP версії 6 (IPv6), основною відмінністю якої є довжина адреси — 128 біт (16 байт).

Інші протоколи мережного рівня

Крім IP, на мережному рівні реалізовано й інші протоколи. Для забезпечення ме-режної діагностики застосовують протокол ІСМР (Internet Control Message Protocol), який використовують для передавання повідомлень про помилки під час пересилання ІР-дейтаграм, а також для реалізації найпростішого луна-протоколу, що реалізує обмін запитом до хосту і відповіддю на цей запит. ІСМР-повідомлення інкапсулюють в ІР-дейтаграми.

Більшість сучасних ОС мають утиліту ping, яку використовують для перевірки досяжності віддаленого хоста. Ця утиліта використовує луна-протокол у рамках ІСМР.

Підтримка мережного рівня

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

14.4. Транспортний рівень

Темою цього розділу будуть особливості реалізації протоколів транспортного рівня на прикладі TCP.

Протокол TCP

Пакет з TCP –заголовком називають TCP –сегментом. Основні характеристики протоколу TCP [39] такі.

  •  Підтримка комунікаційних каналів між клієнтом і сервером, які називають з'єднаннями (connections). TCP-клієнт встановлює з'єднання з конкретним сервером, обмінюється даними з сервером через це з'єднання, після чого розриває його.
  •  Забезпечення надійності передавання даних. Коли дані передають за допомогою TCP, потрібне підтвердження їхнього отримання. Якщо воно не отримане впродовж певного часу, пересилання даних автоматично повторюють, після чого протокол знову очікує підтвердження. Час очікування зростає зі збільшенням кількості спроб. Після певної кількості безуспішних спроб з'єднання розривають. Неповного передавання даних через з'єднання бути не може: або воно надійно пересилає дані, або його розривають.
  •  Встановлення послідовності даних (data sequencing). Для цього кожний сегмент, переданий за цим протоколом, супроводжує номер послідовності (sequence number). Якщо сегменти приходять у невірному порядку, TCP на підставі цих номерів може переставити їх перед тим як передати повідомлення в застосування.
  •  Керування потоком даних (flow control). Протокол TCP повідомляє віддаленому застосуванню, який обсяг даних можливо прийняти від нього у будь-який момент часу. Це значення називають оголошеним вікном (advertised window), воно дорівнює обсягу вільного простору у буфері, призначеному для отримання даних. Вікно динамічно змінюється: під час читання застосуванням даних із буфера збільшується, у разі надходження даних мережею — зменшується. Це гарантує, що буфер не може переповнитися. Якщо буфер заповнений повністю, розмір вікна зменшують до нуля. Після цього TCP, пересилаючи дані, очікуватиме, поки у буфері не вивільниться місце.

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

Порти

Для встановлення зв'язку між двома процесами на транспортному рівні (за допомогою TCP або UDP) недостатньо наявності IP-адрес (які ідентифікують ме-режні інтерфейси хостів, а не процеси, що на цих хостах виконуються). Щоб розрізнити процеси, які виконуються на одному хості, використовують концепцію портів (ports).

Порти ідентифікують цілочисловими значеннями розміром 2 байти (від 0 до 65 535). Кожний порт унікально ідентифікує процес, запущений на хості: для того щоб TCP-сегмент був доставлений цьому процесові, у його заголовку зазначається цей порт. Процес-сервер звичайно використовує заздалегідь визначений порт, на який можуть вказувати клієнти для зв'язку із цим сервером. Для клієнтів порти зазвичай резервують динамічно (оскільки вони потрібні тільки за наявності з'єднання, щоб сервер міг передавати дані клієнтові).

Для деяких сервісів за замовчуванням зарезервовано конкретні номери портів у діапазоні від 0 до 1023 (відомі порти, well-known ports); наприклад, для протоколу HTTP (веб-серверів) це порт 80, а для протоколу SMTP - 25. В UNIX-системах відомі порти є привілейованими — їх можуть резервувати тільки застосування із підвищеними правами. Відомі порти розподіляються централізовано, подібно до ІР-адрес.

Якщо порт зайнятий (зарезервований) деяким процесом, то жодний інший процес на тому самому хості повторно зайняти його не зможе.

Підтримка транспортного рівня

Засоби підтримки транспортного рівня у ядрі призначені для реалізації сервісів, обумовлених цим рівнем. Вони інкапсулюють повідомлення прикладного рівня у сегменти або дейтаграми транспортного рівня, забезпечують необхідні характеристики відповідного протоколу (для TCP до них належать надійність, керування потоком даних тощо), отримують сегменти або дейтаграми від засобів підтримки мережного рівня і демультиплексують їх. Крім того, ці засоби надають інтерфейс системних викликів для використання у прикладних програмах.

Контрольні питання:

1. Рівні мережної архітектури TCP/IP.

2. Канальний рівень.

3. Мережний рівень.

4. Інші протоколи мережного рівня.

5. Транспортний рівень.

6. Порти.

7. Підтримка транспортного рівня.


 

А также другие работы, которые могут Вас заинтересовать

53150. Веселі гномики 38.5 KB
  Тема: Веселі гномики Автор: Шевченко Марина Михайлівна вихователь ДНЗ №23 Дзвіночок м. Вихователь: Гномикиви дуже гарний настрій подарували нашим гостям. Гномики вас ліс вітає Снігуроньку відшукаєм Вихователь: Ось ми і прийшли на лісову галявину. вихователь індивідуально активізує кожну дитинузапитує про колір Молодціпогляньте яка красива в нас ялинка Давайте поплескаємо в долоні Ялинка запалюється вогниками Вихователь: Йдемо далі.
53151. Година спілкування «Наше дозвілля або Не перемикайте канал!» 69 KB
  Обладнання: анкета програми телебачення фішки вислови мікрофон Зміст роботи І. Кореспондент – Це я зараз запитаю в Можливі відповіді: дізнатись про активне змістовне цікаве дозвілля; як впливає телебачення на здоров’я учнів; продемонструвати своє захоплення і т. Спецрозслідування Ведучий – Доброго дня наші глядачі якщо його можна назвати добрим На нас чекає розслідування: Скільки часу вбиває телебачення робота в групах: 1 у програмі телебачення підкреслити передачі що допомагають розвитку дітей; 2 у програмі...
53152. Як не захворіти на грип та застуду 52 KB
  Обладнання: плакат зараження грипом повітрянокрапельним шляхом малюнки Віруси марлева пов'язка мікроскоп костюм лікаря костюм Зайчика до інсценізації казки Зайчик застудився фотоілюстрації лікарських рослин магнітола телевізор. Поради лікаря А зараз до вашої уваги члени гуртка У світі казки чарівної пропонують казочку Зайчик застудився Зайчик застудився Ведучий: Ось в цій хатці під сосною І улітку і зимою Жив собі маленький Зайчик Жвавий сірий побігайчик з'являється Зайчик чхаєкашляє ойкає Дівчинка: Зайчик...
53153. Година цікавої математики, присвячена Дню космонавтики 148 KB
  Небо зорями рясніє Таємниче і глибоке Всесвіт нам бентежить мрії Спонукаючи до дії Розум радує і око. Інтернет зв'язок мобільний Телебачення прогноз Спілкування з світом вільне Змінює життя всерйоз Учитель: слайд 3 Дорогі діти сьогодні ми з вами зробимо екскурсію в історію освоєння космонавтики. І так ми вирушаємо у подорож слайд4 МАПА ПОДОРОЖІ. слайд 5 Перший конкурс присвячений датам з історії освоєння космосу.
53154. Schulbibliothek. An der Spitze – gestern und heute 98 KB
  Ich möchte wissen, was ihr vor der Stunde erwartet. Hier habe ich eine Liste der Tätigkeiten in der Stunde. Aber die Sätze sind nicht voll. Ergänzt und äußert eure Vermutungen. Was werden wir heute machen? Am Ende der Stunde prüfen wir, welche Vermutungen richtig sind.
53155. Ім'я Гоголя на карті Диканьки 79 KB
  Тема проекту: Ім'я Гоголя на карті Диканьки. Мета: ознайомити дітей з історією вулиці Гоголя в Диканці діяльністю організацій на цій вулиці життям її мешканців. Гоголя; глибше знайомство з особистістю М. Гоголя.