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


 

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

36934. Розробка засобів програмованого (тестового) контролю навчальних досягнень учнів з трудового навчання 29.76 KB
  Мета роботи: Вивчення дидактичних основ вибору питань для тестової перевірки навчальних досягнень учнів з трудового навчання. Оволодіти методикою проведення тестової перевірка знань умінь та навичок учнів за допомогою нових інформаційних технологій. Система тестування як форма контролю та оцінювання навчальних досягнень учнів з трудового навчання.
36935. ВИЗНАЧЕННЯ СТАЛОЇ В ЗАКОНІ СТЕФАНА-БОЛЬЦМАНА 127 KB
  Основні теоретичні відомості Якщо на тіло падає потік світла то частина цього потоку буде відбиватися від його поверхні а друга частина потоку що проникає в тіло буде поглинатися частинками тіла і перетворюватися в інші форми енергії в кінцевому рахунку в теплоту. Відношення відбитого потоку Фвідб до падаючого потоку Ф називається коефіцієнтом відбивання або поглинаючою здатністю тіла тобто а = Фвід6 Ф а відношення потоку що поглинається тілом до падаючого потоку називається коефіцієнтом поглинання або поглинаючою здатністю...
36936. Удаленная работа з FTP-сервером 225 KB
  FTPсервер представляет из себя своеобразную библиотеку файлов. Для перекачки файлов между FTPсерверами и компьютером пользователя используется протокол FTP File Trnsfer Protocol – протокол передачи файлов. С помощью FTPсервера можно выкачивать на свой компьютер файлы выложенные на многочисленных FTPсерверах.
36937. ПОВІРКА МОСТА ПОСТІЙНОГО СТРУМУ МО-62 ТА ПРЯМЕ ВИМІРЮВАННЯ ОПОРУ РЕЗИСТОРА 259.5 KB
  Крім того міст дозволяє: а визначити характер і місце ушкодження повітряних ліній або кабелю; б повіряти вимірювальні прилади й пристрої до термометрів опору за винятком деяких меж виміру; в підганяти опір сполучних ліній приладів що працюють із термометрами опору по 2 і 3провідній схемі включення; г вимірювати опори ізоляції в межах від 1 до 100 Мом; д використовувати плече зрівняння моста в якості магазину опорів; е використовувати внутрішній гальванометр у зовнішніх електричних ланцюгах. Резистори намотані бифилярно...
36938. Пошук інформації в Internet 99.5 KB
  Як трактуються слова Незалежно від того яка форма слова стоїть в запиті пошук враховує всі форми за правилами російської мови. Наприклад якщо задано запит “идти†те в результаті пошуку будуть знайдені посилання на документи що містять слова идет†шел†шла†тощо . Якщо в запиті слово набране з великої букви будуть знайдені тільки слова з великої літери у противному випадку будуть знайдені як слова з великої так і з маленької літери. Між словами можна поставити знак †або кому †щоб знайти документи що містять...
36939. Обмін даними з додатками 702 KB
  Щоб прочитати цей файл в Mthcd необхідно: В меню Insert Вставка виберіть команду Сomponent Компонент з’явиться діалогове вікно Сomponent Wizrd рис. Рис. З’явиться діалогове вікно File Options рис. Рис.
36941. Ознайомитись з програмною моделлю 32 розрядних процесорів Intel та оволодіти навиками створення програм, використовуючи 32 розрядний асемблер 122.49 KB
  model flt stdcll option csemp: none ; оголошення службових процедур макросів змінних констант include msm32 include windows.inc include msm32 include kernel32.inc include msm32 include msm32.inc include msm32 include debug.
36942. Оволодіти навиками створення програм, частини яких написані різними мовами програмування. Засвоїти правила взаємодії різних модулів 169.07 KB
  Звичайно доступ наприклад до двох параметрів переданих через стек здійснюється в такий спосіб: PUSH EBP MOV EBPESP MOV EX[EBP8] MOV EDX[EBP12] . POP EBP RET Деякі версії мови C розрізняють великі і малі букви тому ім'я асемблерного модуля повинне бути представлено в тому ж символьному регістрі який використовують для посилання Cпрограми.code _clc proc push ebp mov ebpesp mov ex[ebp16] shr ex01 mov ebx[ebp8] shl ebx02 sub ebxex sub ebx[ebp12] sub ebx[ebp8] mov ex[ebp20] dd exebx pop ebp ret _clc endp END ...