Курс лекцій „Комп’ютерні мережі

Вид материалаКурс лекцій

Содержание


1.7.3.2. Функції ІР.
Type of service (ТОS)
Total Length
Fragment Offset
Header Checksum
Source Address
Таблична маршрутизація
Подобный материал:
1   2   3   4   5   6   7   8   9
підмережі у двійковому вигляді:

01100100.00101100.00000000.00000000

2) виділити з неї біти, які займає саме номер підмережі, у даному випадку – біти з 9-го по 18-й (1-8 – мережа, 19-32 – вузол) та записати результат; нулями зліва можна знехтувати:

0010110000, або 10110000

3) отримане число перетворити у десяткову форму:

(10110000)2=(176)10

Отже, мова йде про 176-ту за порядком підмережу.

Приклад 3. Визначити, чи можна використовувати наступні ІР-адреси для адресації кінцевих вузлів мережі, якщо відомо, що маска має вигляд 255.255.255.240: 201.68.45.23; 201.68.45.64; 201.68.45.127.

Для використання у якості адреси кінцевого вузла вона повинна задовільняти двом умовам: не бути адресою підмережі (у полі номера вузла всі двійкові 0) та не бути широкомовною адресою для даної підмережі (у полі номера вузла всі двійкові 1). Отже, дані ІР-адреси слід перевірити на відповідність цим умовам: запишемо маску у двійковому вигляді, щоб визначити, скільки біт відведено під номер вузла:

11111111.11111111.11111111.11110000

Отже, номер вузла займає 4 біти. Тепер перетворимо кожну з даних адрес у двійкову форму і перевіримо, чи не заповнені ці біти лише нулями або лише одиницями.

201.68.45.23: 11001001.01000100.00101101.00010111 – дану ІР-адресу можна використовувати.

201.68.45.64: 11001001.01000100.00101101.01000000 – дану ІР-адресу не можна використовувати, це ІР-адреса мережі.

201.68.45.127: 11001001.01000100.00101101.01111111 – дану ІР-адресу не можна використовувати, це широкомовна адреса.

Приклади для самостійного розв’язання.

1) дано ІР-адресу класу С 201.11.44.0. Створити на її основі 5 підмереж, кожна з яких міститиме не менше 20 вузлів. Вказати ІР-адресу 3-ї підмережі; широкомовну адресу для 4-ї підмережі; ІР-адресу 12-го вузла 2-ї підмережі. (Маска: 255.255.255.224; 201.11.44.96; 201.11.44.159; 201.11.44.76.)

2) дано ІР-адресу вузла 151.12.68.137 /19. Визначити, скільки вузлів може містити така підмережа; визначити порядковий номер вузла у підмережі. (213-2=8192-2=8190; 1161)

3) визначити, чи можна використовувати у якості адрес кінцевих вузлів наступні ІР-адреси (якщо не можна, то вказати причину): 126.0.0.0/8(- - адреса мережі); 92.0.44.0/8(+); 135.51.255.0/16(+); 201.44.55.255/24 (- - широкомовна); 71.85.143.12/17(+).

35

1.7.3. Протокол ІР.

1.7.3.1. Робота протоколу ІР.

Internet Protocol є головним на мережевому рівні сімейства протоколів ТСР/IP і призначений для передачі пакетів даних від одного хоста мережі до іншого. Можливості Internet Protocol по забезпеченню надійності передачі даних у точку призначення досить обмежені. IP не призначений для підтримки достовірного, стабільного з'єднання. У нього так само немає ні механізмів підтвердження одержання інформаційних пакетів, ні засобів забезпечення достовірності переданих даних, ні можливостей контролю потоку даних від одного вузла до іншого.

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

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

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

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

Проілюструємо модель роботи передачі дейтаграми від одного комп'ютера до іншого (рис. 1.7.3.1). Крім того, будемо вважати, що при передачі дейтаграма проходить через один шлюз. Отже:

1. Протокол транспортного рівня, наприклад ТСР, що відправляє дані, викликає IP-функцію локального комп'ютера для відправлення пакета. При виклику функції вказується адреса призначення пакета, передані дані і, якщо необхідно, деякі інші параметри.

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

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

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

5. Модуль інтерфейсу локальної мережі будує заголовок пакета локальної мережі, приєднує IP-дейтаграмму і відправляє пакет по локальній мережі.

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

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


Рис. 1.7.3.1. Загальна схема руху IP-пакета (LNI — інтерфейс локальної мережі)

36

1.7.3.2. Функції ІР.

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

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

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

Однак не всі дейтаграми можуть бути фрагментовані. Якщо дейтаграма позначена як "не фрагментована" (тобто встановлений прапор No Fragment), то така дейтаграма ні за яких обставин не може піддаватися поділові на пакети меншої довжини. Якщо така дейтаграма не може бути доставлена в точку призначення без фрагментації, вона буде знищена. В інших випадках дейтаграму можна розбити на більш дрібні фрагменти.

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

Процедура фрагментації може розбити дейтаграму на пакети довільної довжини і потім відновити її в первісному виді. Кожен фрагмент вихідної дейтаграми має унікальний ідентифікатор (identification field), що однозначно визначає його приналежність до вихідного фрагментованого пакета. Це число унікальне для пари адрес відправник-одержувач увесь той час, поки дейтаграма знаходиться в мережі. Поля зсуву (fragment offset) і довжини, задані для кожного фрагмента вихідної дейтаграми, цілком визначають положення фрагмента у вихідній дейтаграмі. Крім того, IP-пакет містить прапор "наступного фрагмента", що вказує на те, що в даної порції є продовження або що даний фрагмент останній. Інформації цих полів досить, щоб IP-модуль, що одержує серію фрагментів, міг зібрати вихідну дейтаграму.

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

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

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

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

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

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

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

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

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

37

1.7.3.3. Формат заголовка IP-пакета





Рис. 1.7.3.2. Заголовок IP-дейтаграми

Version (4 біти). Поле версії. Значення поля установлює формат заголовка Internet-пакета. Ми розглядаємо версію 4.

IHL (4 біти). Поле довжини заголовка IP-пакета (Internet Header Length) у 32-бітних словах. Значення цього поля не може бути менше 5.

Type of service (ТОS) (8 біт). Поле типу сервісу. Це поле використовується для ідентифікації використовуваного дейтаграмою сервісу, тобто приналежність її до того або іншого з передбачених видів IP-дейтаграм, що, відповідно, визначає вид її обробки. Так, деякі мережі надають сервіс роботи з пакетами різної важливості, обробляючи і пропускаючи спочатку дейтаграми з виставленим прапором пріоритетності. Мережні модулі таких мереж використовують такі параметри поля TOS, як категорія терміновості або важливості пакета, можлива затримка передачі, рівень забезпечення достовірної доставки й ін.

Total Length (16 біт). Поле сумарної довжини. Сумарна довжина — це довжина всієї дейтаграми цілком, вважаючи байти, що входять у заголовок дейтаграми і дані. Це поле може приймати значення до 65535 (тобто довжина дейтаграми може досягати 216-1 байтів). Однак довгі дейтаграми не використовуються при роботі IP-протоколу. Усі хости і шлюзи мережі, як правило, працюють з довжинами до 576 байт, що не рекомендується перевищувати, працюючи в стандартному режимі. Число 576 обране з тих міркувань, що цієї довжини пакета цілком достатньо для того, щоб передати заголовок (64 байта) і блок даних (512 байт).

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

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

Вибір унікальності ідентифікатора може здійснюватися також за рахунок протоколів верхнього над IP рівня. Наприклад, ТСР-протокол може передати повторно точно такий же ТСР-сегмент, тоді імовірність коректної обробки дейтаграми буде набагато вище, якщо повторно відправлений пакет містить той же ідентифікатор, як і вихідний, і якщо фрагменти дейтаграми використовуються для побудови ТСР-сегмента.

Flags (3 біти). Поле керуючих прапорів.

Біт 0 — зарезервоване (повинний бути 0).

Біт 1 (DF)=0 — можна фрагментувати, біт 1 (DF)=1 — не фрагментувати.

Біт 1 (MF)=0 — останній фрагмент, біт 1 (MF)=1 — є наступний фрагмент.

Fragment Offset (13 біт). Поле зсуву фрагмента. Це поле вказує, де у вихідній дейтаграмі розташований даний фрагмент. Величина цього поля задає зсув у 64-бітних блоках. Перший фрагмент має нульовий зсув.

Time To Live (ТТL) (8 біт). Поле "часу життя" пакета. Величина цього поля визначає верхнє значення періоду часу, протягом якого дана дейтаграма може знаходитися в мережі, тобто подорожувати від шлюзу до шлюзу, від сегмента до сегмента. Цей параметр установлюється відправником дейтаграми і зменшується в кожній точці маршрутизації або обробки дейтаграми. Якщо в цьому полі виявляється нульове значення до того, як дейтаграма досягла свого адресата, вона знищується — шлюз не пропускає таку дейтаграму далі. Цей параметр служить свого роду "саморегулятором" мережевого трафіку.

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

Деякі протоколи будують свої механізми забезпечення високого рівня надійності з'єднання на тому, що старі дубльовані дейтаграми не доходять до вузла після закінчення визначеного часу (TTL).

Protocol (8 біт). Поле типу протоколу. Це поле містить число, що визначає тип наступного (верхнього) протоколу, що використовує дану дейтаграмму (ТСР, UDP і т.д.).

Header Checksum (16 біт). Поле контрольної суми заголовка. Це поле служить для перевірки правильності інформації тільки заголовка дейтаграми. При цьому дані дейтаграми можуть містити помилки. При виявленні невідповідності контрольної суми заголовкові дейтаграми, дейтаграма відразу ж знищується. Оскільки частина заголовка при передачі міняється (TTL і ін.), вона перераховується і перевіряється в кожній точці обробки дейтаграми. Алгоритм обчислення являє собою побітове доповнення побітової суми всіх 16-бітних слів заголовка. При обчисленні поле контрольної суми вважається рівним нулеві. Цей алгоритм досить простий, швидко виконується і цілком задовольняє вимогам контролю цілісності пакета.

Source Address (32 біта). Адреса відправника.

Destination Address (32 біта). Адреса одержувача.

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

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

Padding. Поле вирівнювання: може бути перемінної довжини. Це поле використовується для вирівнювання розміру заголовка по 32-бітній границі. Число заповнення — нуль.

38, 39

1.7.4. Маршрутизація.

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




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

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

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

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

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

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

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


А1  А4:


Рис.1.7.4.1. Лавинна маршрутизація.


Процес маршрутизації включає 2 основні види діяльності: визначення оптимального шляху та просування пакетів через мережеве середовище (комутація пакетів). Останнє є порівняно простим завданням, на відміну від першого.

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

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