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


 

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

50103. Вычисления в MatLab 728.5 KB
  Пример выполнения работы Материалы для заданий 1 2 Потери пучка при прохождении через вещество В этой работе можно познакомиться с основным методом моделирования применяемым при исследовании прохождения пучков частиц через вещество методом статистического моделирования называемым методом МонтеКарло. При этом судьба каждой частицы разыгрывается с помощью случайного выбора а полученные для множества частиц результаты подвергаются статистической обработке. Метод применяется например при проектировании ядерных реакторов...
50104. Исследование метрологических возможностей моста Уитстона 194 KB
  Определение удельного сопротивления заданного материала. Так например мост Уитстона используется для определения изменения сопротивления тензорезистора тензодатчика измеряющего изменение давления температуры распределение деформаций изгиб или сжатиерастяжение в конструктивных элементах зданий сооружений в сводах подземных выработок и многое др. Измеряемое сопротивление Rx и три других переменных сопротивления R R1 и R2 соединяются так что образуют замкнутый четырехугольник BCD. Но можно подобрать сопротивления R R1 и R2...
50105. Градуювання термопари і спостереження явища Пельтьє 81.5 KB
  Для усix значень різниці температур Т2 Т1 визначити дійсні значення термоЕРС. На основі двох одержаних графіків визначити середнє значення абсолютної похибки градуювання термопари. Визначити питому термоЕРС для двох крайніх і середньої точки графіка за п. Визначити різницю термоЕРС і за таблицею що знаходиться на робочому місці визначити значення різниці температур контактів.
50106. СПЕКТРАЛЬНАЯ ХАРАКТЕРИСТИКА ПОЛУПРОВОДНИКОВОГО ФОТОЭЛЕМЕНТА 166.5 KB
  Тогда с учетом формул 6 и 7 для спектральной чувствительности фотоэлемента можно записать: 8 Согласно выражению 8 отношение спектральной чувствительности фотоэлемента γλ для произвольной длины волны λ к его чувствительности γγm для фиксированной длины волны λт будет равно: 9 В формуле 9 Um обозначает напряжение в цепи при освещении фотоэлемента светом с длиной волны λт и считается что в изучаемой спектральной области при постоянной величине входной щели монохроматора интервал длин волн dλ для разных λ изменяется...
50108. Техніка ударів по мячу головою 77 KB
  Техніка ударів по м’ячу головою. У другій фазі його тулуб швидко подається вперед і верхньою частиною голови він б’є по м’ячу. Удар по м’ячу головою з місця Послідовність навчання Удар по нерухомому м’ячу.
50110. ВЕТРОВЫЕ НАГРУЗКИ 95.5 KB
  Скорость ветра Для измерений характеристик ветра на метеостанциях в настоящее время используются анеморумбометры М63М или их модификации который обеспечивает автоматическое измерение средней скорости за 10 минут в диапазоне 140 м с максимальной скорости до 60 м с и направления ветра. Они предназначены для измерения скорости ветра от 0 до 40 м с. При этом определяли среднюю скорость ветра максимальную скорость порыв в срок наблюдений а также направление ветра. Для определения скорости ветра наблюдается колебание доски в течение 2...