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. Підтримка транспортного рівня.


 

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

23660. Нечеткие множества в системах основанных на знаниях 462.5 KB
  Для ее решения вводится два показателя: П АiФ = sup min фu Aiu это возможность что нечеткое множество Ф принадлежит значению Аi атрибута Ã. Рассмотрим геометрическую интерпретацию определения ПА1Ф: min фu A1u представляет собой треугольник SQR т. sup min фu A1u это точка Q т. Тогда ПА1Ф = min {max 0 min 1 1 m1 m2 1 2 max 0 min 1 1 m2 m1 2 1 }.
23661. Основы построения систем основанных на знаниях (Соз) 68 KB
  Предположим нас интересует что имеет Иван: Запрос: имеет иван Вещь Ответ: Вещь = машина Если мы заполним базу еще рядом фактов имеет петр руб.500 имеет петр телевизор цена видео 4200 цена приемник 20 цена часы 70 тогда на аналогичный запрос но только относительно Петра мы получим ответ: Запрос: имеет петр Вещь Ответ: Вещь = часы Вещь = руб 500 Вещь = телевизор Заметим что имя петр мы вводим со строчной буквы так как это атом; а Вещь является переменной и записывается с заглавной буквы. Чтобы не...
23662. Экспертные системы. Назначения ЭС и основные требования к ним 78 KB
  Экспертные системы Система основанная на знаниях система программного обеспечения основными структурными элементами которой являются базы знаний и механизм логических выводов. Основными требованиями к ЭС являются: использование знаний связанно с конкретной предметной областью; приобретение знаний от эксперта; определение реальной и достаточно сложной задачи; наделение системы способностями эксперта. которые обладают общими качествами: имеют огромный багаж знаний о конкретной предметной области; имеют большой опыт работы в этой...
23663. Приобретение и формализация Знаний 465 KB
  Одной из них является чтректура получившая название дерево решений. Вместе с тем использование дерева решений может быть эффективно там где знания представляются в виде правил. Структура дерева решений иллюстрирует отношения которые должны быть установлены между правилами в хорошо организованной БЗ. Представление знаний в виде дерева решений Базируясь на знаниях эксперта графически диаграмму всех возможных исходов данной консультации можно представить в виде рис.
23664. Представление знаний с использованием логики предикатов 337.5 KB
  S2: получает студент стипендию  сдает успешно сессию студент S3: сдает успешно сессию студент Задача которую надо решить состоит в том чтобы ответить на запрос получает ли студент стипендию Когда используется обычная система логического вывода то такой вопрос представляется в виде отрицания S:  получает студент стипендию и система должна отвергнуть это отрицание при помощи других предложений демонстрируя что данное допущение ведет к противоречию. ШАГ 1 Система на первом шаге применит правило к родительским...
23665. Практикум по извлечению и структурированию знаний в среде CLIPS 1.45 MB
  заместитель начальника службы энергонадзора ОАО Транссибнефть Практикум по извлечению и структурированию знаний в среде CLIPS по дисциплине Интеллектуальные информационные системы Авторсост. В качестве средства разработки экспертных систем описана среда CLIPS. Справочная информация по среде CLIPS дана в необходимом количестве для выполнения практических занятий и домашних заданий.
23666. Построение ЭС с использованием неупорядоченных фактов (шаблонов) и различных типов условных элементов в антецедентах правил 61.5 KB
  Пример: data 1 €œtwo€. Образец data YELLOW будет сопоставляться со всеми упорядоченными фактами содержащими в любом поле кроме первого символьное значение YELLOW. В частности он будет сопоставляться со следующими фактами: data YELLOW blue red green data YELLOW red data red YELLOW data YELLOW data YELLOW data YELLOW. Задано правило: defrule finddata data x y z = printout t x = x : y = y : z = z crlf и следующее множество фактов: data 1 blue data 1 blue red data 1 blue red 6.
23667. Изучение стратегий разрешения конфликтов в продукционных системах 43.5 KB
  При реализации прямого вывода в продукционных базах знаний машина логических выводов сопоставляет левые части антецеденты правил с базой данных и помещает правила антецеденты которых удовлетворяются в агенду конфликтное множество. Когда правило становится активным условия в его левой части удовлетворяются оно помещается в агенду в соответствии со следующими правилами: 1. Вновь активизируемые правила помещаются над всеми правилами с более низкой значимостью salience и ниже всех правил с более высокой значимостью. Если в результате...
23668. Реализация поиска в пространстве состояний 59 KB
  Каждое состояние в пространстве состояний определяется нахождением каждого персонажа объекта фермера farmer лисы fox козы goat и капусты cabbage на одном из двух берегов shore1 или shore2. Эти слоты могут принимать символьные значения shore1 и shore2. Таким образом для представления вершин ДП можно использовать неупорядоченный факт определяемый следующим шаблоном: deftemplate status slot farmerlocation type SYMBOL allowedsymbols shore1 shore2 slot foxlocation type SYMBOL allowedsymbols shore1...