- •Розділ 1. Основи мереж зв’язку
- •Тема 1.1 Принципи побудови мереж
- •Тема 1.2 Технологія цифрових мереж
- •Тема 1.3 Технологія ip-мереж
- •6.4.1. Протокол мережного рівня, формат ір-пакета
- •Розділ 2. Технології глобальних мереж
- •Тема 2.1 Комутовані з’єднання
- •2. Структура потоку e1
- •1. Модеми
- •2. Протокол ppp
- •Тема 2.2. Технологія atm і широкосмугова isdn
- •Тема 2.3. Технологія Frame Relay (fr)
- •Тема 2.4. Віртуальні приватні мережі
- •Тема 3.1. Технології бездротових мереж
- •Космічний сегмент
- •Частоти супутникового зв’язку
- •Протоколи супутникових мереж.
- •Наземний сегмент
- •Тема 3.2. Інтегрована передача голосу та даних
- •Тема 3.3. Цифрові абонентські канали
- •Тема 3.4. Технології кабельного доступу та оптичних мереж
6.4.1. Протокол мережного рівня, формат ір-пакета
IP-пакет (стандартизований RFC 791) складається з поля заголовка, яке включає в себе службову інформацію, та поля даних. Формат ІР-пакета зобоажено на dhc. 6.4.3.
Рис.
6.4.3. Формат заголовка ІР-пакета
Він має такі поля:
Версія - містить номер версії протоколу IP. Довжина - 4 біти.
Довжина заголовка - 4 біти. Довжина заголовка складає 20 байт і може бути розширена до 60 байт за рахунок полів опції та вирівнювання.
Тип обслуговання - байт, який визначає параметри обслуговання. Біти 0...2 задають пріоритет пакета. Біти 3...5- параметри якості обслуговання (біт 3 - затримки (delay), біт 4 - пропускної спроможності (throughput), біт 5 - надійності (reliability)). Біти 6...7- зарезервовані.
Загальна довжина IP-пакета в байтах. Максимальна довжина- 65 535 байт. При передаванні даних по мережах різних типів, довжина залежить від протоколу канального рівня, в який інкапсулюється ІР-пакет.
Ідентифікатор пакета довжиною 2 байти використовується для розпізнавання пакетів, які утворені в результаті фрагментації. Всі частини фрагментованого пакета даних повинні мати однакове значення цього поля.
Флаги- трибітове поле. Встановлений біт F (Do not Fragment) вказує обладнанню, що цей пакет не може більш фрагментувати, а встановлений біт MF (More Fragment) вказує на те, що даний пакет є проміжним (не останнім фрагментом), третій біт - зарезервовано.
Зміщення фрагмента - 13 бітове поле, що задає зміщення в байтах поля даних цього пакета відносно початку загального поля даних вихідного пакета. Використовується при збиранні (дефрагментації) фрагментів при передаванні їх між мережами з різними максимальними одиницями передавання - MTU (Maximum Transmission Unit).
Час життя - однобайтове поле, яке характеризує час перебування пакета в мережі, та задається в секундах при формуванні пакета. При проходженні пакета через маршрутизатор чи інший вузол мережі цей час зменшується на 1 секунду, навіть тоді коли оброблення зайняло менше часу. Коли значення поля досягне 0, то пакет знищується оскільки сучасні маршрутизатори обробляють пакет менше, ніж за 1 секунду, то час життя - це максимальна кількість вузлів, що пакет може пройти до свого знищення. Максимальний час життя у мережі становить 120 секунд.
Протокол. Це поле довжиною 1 байт, що вказує протоколу транспортного рівня (TCP, UDP, ІСМР), якому з них призначені дані пакета IP.
Контрольна сума. Поле довжиною 2 байти, що захищає заголовок пакета.
Адреса джерела - 4-байтове поле.
Адреса приймача - 4-байтове поле.
Опції- необов'язкове поле довільної довжини, використовують при налагодженні мережі, наприклад, вказує маршрут проходження пакета через маршрутизатори.
Вирівнювання - поле, яке вирівнює заголовок до цілого числа 32 бітових слів. Вирівнювання виконують нулями.
Лекція №10. Протокол транспортного рівня
Протокол TCP (стандартизований RFC 793). Протокол забезпечує надійне передавання пакетів, які називають сегментами, у вигляді байтових потоків зі встановленням логічного з'єднання. Протокол TCP діє між прикладними процесами та протоколом IP мережного рівня. Пакети, що надходять на транспортний рівень від прикладних процесів, за допомогою операційної системи утворюють велику кількість черг, які мають точку входу до транспортного рівня. Ці черги з точками входу називають портами прикладних процесів. Порт разом з номером мережі і номером вузла визначає прикладний процес у мережі. Такий набір параметрів має назву сокет (socket).
Визначенням портів прикладних процесів займається організація IANA (Internet Assigned Numbers Authority). Наприклад, порт 27 закріплено за службою електронної пошти (smtp), а 23 - за службою віддаленого доступу (telnet).
Протокол TCP здійснює підтримку двох черг для кожного порту: черги пакетів, які надходять від мережі, та чергу пакетів, що надходять від прикладних процесів у мережу. Обслуговання запитів від прикладних процесів називають мультиплексуванням даних, а зворотну процедуру, тобто надходження пакетів від мережного рівня та їх розподіл між прикладними - процесами демультиплексуванням даних. Порт у протоколі TCP відіграє роль адреси.
Сегмент TCP складається із заголовка та поля даних. Формат заголовка сегмента показано на рис. 6.4.4.
Зміщення даних - чотирибітове поле, що містить довжину заголовка TCP сегмента, тобто вказує на початок поля даних.
Резерв - це поле довжиною 6 біт, заповнюється нулями і призначене для подальшого розширення протоколу.
Контрольні біти - поле довжиною 6 біт і, якщо кожний біт встановлений в 1, то вони мають такі значення:
біт - URG - сегмент, що містить важливі дані;
біт - ACK - сегмент, що містить правильні дані;
біт - PSH - включена функція, яка дозволяє швидко передати сегмент порту, якому він адресований, а також вказує на те, що попередні сегменти досягли адресата;
біт - RST - вказівка на переустановлення логічного з'єднання, або відповідь на неправильно переданий сегмент;
біт - SYN - вказує на те, що сегмент є запит на встановлення логічного з'єднання;
біт - FIN - вказує на те, що даних для передавання немає і сегмент є запит на закриття логічного з'єднання.
Розмір вікна. Це 2 байтове поле, що вказує кількість байтів, які готовий прийняти одержувач інформації. За допомогою вікна реалізується функція управління потоком даних. Чим більше вікно, тим більше даних можна передати в мережу, а якщо значення поля 0, то передавання даних зупиняється. Таким чином, змінюючи розмір вікна, можна впливати на завантаження мережі.
Контрольна сума. Поле довжиною 2 байти, що містить контрольну суму по полях заголовка сегмента, включаючи і так званий псевдо- заголовок. Псевдозаголовок має такі поля заголовка IP-пакета: адреси джерел і приймача, поле протокол та поле довжини IP-пакета. Додання псевдозаголовка дозволяє захистити TCP сегмент від помилкової інформації, що може бути передана за допомогою ІР-пакета.
Покажчик важливості. 2-байтове поле, яке містить значення, що вказує зміщення відносно номера байта в черзі, тобто вказує номер байта, що йде за важливими даними. Починаючи з цього моменту байти даних мають загальний статус. Поле використовується разом з бітом URG. Процедурні характеристики протоколу TCP.
Встановлення та закриття з 'єднання. Для цієї процедури послідовність дій така:
прикладний процес, що має дані для передавання, надсилає протоколу TCP запит на відкриття порту для передавання;
після відкриття порту робоча станція, на якій виконується прикладний процес, за допомогою TCP надсилає запит (зі встановленим бітом SYN і початковим значенням номера у послідовності даних) на робочу станцію, з якою встановлюється з'єднання;
приймальна станція відкриває порт прикладного процесу для приймання даних і відсилає квитанцію, яка підтверджує прийом запиту (поле «Номер підтвердження» на одиницю більше ніж початковий номер у послідовності для передавання зі встановленим бітом АСК);
приймальна станція також відкриває свій порт для передавання і відсилає запит на передавання станції, яка ініціювала процес (встановлений біт SYN та початковий номер у своїй послідовності даних);
станція - ініціатор приймає запит, відкриває свій порт для приймання даних та повертає квитанцію.
Після цього етапу логічне з'єднання вважається встановленим і дозволяється обмін інформацією між прикладними процесами. \ Процедура «ковзного вікна» (sliding window) - дозволяє виконувати управління потоком даних та полягає в тому, що кожна сторона, яка бере участь у сеансі обміну інформацією, може надіслати стільки байтів, скільки зазначено в полі «Розмір вікна» без їх підтвердження. Тобто, вікно яке передається з кожним сегментом визначає діапазон номерів черги, які готові прийняти відправник вікна. Цей механізм пов'язаний з наявністю місця у буферній пам'яті.
Надійність передавання забезпечується підтвердженнями (надісланням квитанції) та нумерацією сегментів у черзі. Номер сегмента в черзі передається разом з сегментом. Сегменти також включають у себе номер підтвердження, який є номером для наступного сегмента. Якщо TCP передає сегмент з даними, то його копія розміщується в черзі повторної передавання, при цьому включається таймер. Якщо підтвердження прийшло для вже переданих даних, то цей сегмент виключається з черги повторної передачі. У випадку коли підтвердження не надійшло до закінчення строку, який задається таймером, сегмент надсилають повторно. Такий механізм значно підвищує надійність передавання даних в мережі.
Механізм таймерів. Якщо сегмент приймається з помилками (неправильна контрольна сума) чи не приймається зовсім, то в цих ситуаціях біт ACK не формується і не відсилається. В цих випадках потрібне повторне передавання. Для прийняття рішення, коли слід здійснювати повторне передавання сегмента вводять поняття таймера, який відноситься до кожного сегмента, що передається. Якщо час таймера закінчився до одержання біта АСК, то відправник сегмента повторює передавання. Час таймера вибирають трохи більшим, ніж час проходження сегмента до одержувача, та одержання підтвердження від нього. Цей час називають RTT (Round Trip Time). Є два способи задавання таймера повторного передавання:
фіксований. У даному випадку використовують фіксоване значення таймера, яке визначається за статистичними даними, що характеризують нормальну роботу розподіленої мережі. Такий метод не дозволяє швидко реагувати на зміни, які можуть виникнути в мережі;
адаптований. Коли протокол TCP постійно відстежує час одержання підтвердження на сегмент, що відіслав та встановлює своє значення таймера. Процедура визначення таймера в цьому випадку достатньо складна і описана у документі RFC 793.
Рис.
6.4.4. Формат заголовка TCP
сегмента
Мінімальна довжина заголовка 20 байтів. Поля заголовка сегмента мають такі призначення:
Порт відправника та порт одержувача довжиною 16 байт кожний.
Номер у послідовності даних довжиною 32 біти, який визначає порядковий номер першого байта даних користувача.
Номер підтвердження довжиною 32 байти. Поле, де вказується номер підтвердження на відправлений сегмент з даними, який очікує відправник.
Протокол TCP постійно удосконалюється. Так, він дороблений для використання у ATM технології, а також модернізований та адаптований для використання в мережах швидкості передавання інформації, в яких складає Терабіт/с.
Протокол UDP (стандартизований RFC 768). Це датаграмний протокол транспортного рівня, що не встановлює логічного з'єднання та не гарантує надійного передавання даних (можлива втрата пакетів, відсутні механізми повідомлення відправника про правильність чи хибність його прийому з боку одержувача). Довжина заголовка UDP-пакета складає 8 байтів, що значно менше ніж заголовок TCP-сегмента. До заголовка відносяться поля порту відправника та порту одержувача (по 2 байти), поле довжини повідомлення (2 байти) та контрольна сума (2 байти). Контрольна сума має структуру таку саму, як і TCP сегмент (обчислюється по полях заголовка UDP-пакета та полях псевдозаголов- ка). Робота UDP-протоколу після отримання датаграми від мережного рівня (IP-протоколу) полягає в тому, що в першу чергу перевіряється контрольна сума заголовка. Якщо вона не вірна, то пакет знищується. В іншому випадку відбувається аналіз порту в датаграмі і вона направляється в чергу цього порту. Якщо черга порту переповнена, то UDP-протокол знищує датаграму. Протокол UDP-обслуговує прикладні процеси, які не чутливі до втрат інформації.
Лекція №11. Маршрутизація в IP-мережах
Протоколи маршрутизації (рис. 6.4.1) являють собою найбільш складну групу протоколів Internet, яка динамічно розвивається і сьогодні. Під маршрутизацією розуміють рішення завдання з пошуку оптимального шляху від відправника інформації до її одержувача. В ІР-мережах (Internet та ін.) головним параметром маршрутизації є адреса в ІР-про- токолі. Internet організована як сукупність взаємопов'язаних між собою автономних систем або доменів (domains), що включають в себе значну кількість IP-мереж, які мають єдине адміністративне управління та загальну єдину політику маршрутизації (policy routing). В домені використовують протоколи внутрішньої - IGP (Interior Gateway Protocol), а між ними - зовнішньої маршрутизації - EGP (Exterior Gateway Protocol). Обладнання, яке займається просуванням інформації (пакетів) мережного рівня, має назву маршрутизатор (router).
При розгляді маршрутизації виділяють дві проблеми:
визначення і розповсюдження маршрутів у мережі (домені), що пов'язане з реалізацією політики маршрутизації та регламентується алгоритмами вектор - відстань (distance vector) і стан каналів (link state);
просування за встановленими маршрутами пакетів від відправника До одержувача, що визначаються в алгоритмах маршрутизації (hop-by- hop routing) і маршрутизацією від відправника (source specified routing).
Алгоритм вектор-відстань базується на тому, що кожний об'єкт
(маршрутизатор), який бере участь у маршрутизації, зберігає у своїй маршрутній базі інформацію про всі адреси мережі та метрику, яка визначає відстань до одержувача інформації. Об'єкти обмінюються між собою маршрутними базами. При прийнятті рішення про маршрут передавання пакета оцінюється кожний шлях до об'єкта та вибирається найкращий. Цей алгоритм реалізований у протоколі маршрутизації RIP.
Алгоритм стану каналів полягає в тому, що на першому етапі кожний об'єкт будує в собі граф зв'язків мережі, який описує її топологію з урахуванням того, що кожний зв'язок (канал) характеризується своєю метрикою та формує в собі топологічну базу (link state database). Після обміну базами, кожний об'єкт має нове уявлення про мережі і на другому етапі вирішує проблему визначення оптимального шляху до кожної відомої їм мережі. Цей алгоритм реалізований у протоколі OSPF.
Постадійна маршрутизація. В цьому випадку кожний маршрутизатор приймає незалежне рішення про просування пакета. Рішення залежить від адреси та інформації, що знаходиться в маршрутній базі.
Маршрутизація від відправника. Маршрут формується відправником пакета і записується в кожний пакет, що відправляється в мережу.
Протоколи маршрутизації
Протокол RIP - перша версія протоколу стандартизована RFC 1058, а друга - RFC 1722 та іншими. Протокол RIP- це протокол внутрішньої маршрутизації призначений для невеликих мереж. Для передавання RIP-повідомлень використовують UDP протокол (порт 520), а також метрику- кількість кроків (маршрутизаторів) до одержувача. Максимальна кількість кроків - 15. В одному RIP-повідомленні може бути інформація про 25 маршрутів. При включенні маршрутизатора, на якому працює RIP, він будує свою таблицю маршрутизації, в якій прописані всі шляхи до інших мереж, та відсилає її маршрутизаторам за допомогою RIP-повідомлень. Таку процедуру виконує кожний маршрутизатор, що підключений до мережі. При обміні RIP-повідомленнями маршрутизатори кожний раз оновлюють свої таблиці маршрутизаторів через кожні 30 секунд та за їх допомогою виконують просування пакетів з інформацією.
Недоліки протоколу:
погано відпрацьовує в мережах, де є петльові маршрути;
велика кількість службової інформації, що завантажує мережу (таблиці відсилаються цілком);
потрібно багато часу на поновлення таблиці після збою в роботі маршрутизатора;
не працює з адресами підмереж та не використовує поняття «автономна система».
Протокол OSPF стандартизований в RFC 1370, 1578, 1793, 1850, 2328. Це також протокол внутрішньої маршрутизації, який використовує алгоритм стану каналів та може обслуговувати автономну систему, яка скла дається з декількох зон. Протокол OSPF значно ефективніше протоколу RIP і він розроблявся як альтернатива протоколу RIP. Маршрутизатор, на якому працює OSPF, вирішує проблему оптимізації маршрутів, аналізуючи граф мережі з метрикою, що характеризує якість обслуговування. Основними параметрами метрики є пропускна спроможність, затримка, надійність, а додатковими - завантаження каналу, вимоги безпеки. Тільки при зміні топології мережі маршрутизатори обмінюються повідомленнями і OSPF швидко перебудовує маршрутні таблиці.
До основних переваг OSPF відносять:
швидке розповсюдження інформації тільки при зміні топології мережі, що дозволяє значно зменшити кількість службової інформації;
можливість розподілення інформації по паралельних каналах у залежності від їх пропускної спроможності, що значно поліпшує роботу мережі в цілому.
Протоколи IGRP і EIGRP - це протоколи внутрішньої маршрутизації, які розроблені фірмою Cisco Systems.
IGRP використовує алгоритм вектор-відстань і має значно поліпшені характеристики ніж протокол RIP та вирішує такі проблеми:
надійно відпрацьовує в мережах складної топології і петльоподіб- ними маршрутами;
швидко відновлює роботу в мережі при зміні топології;
значно знижує кількість передавання службової інформації;
забезпечує розподілення інформації між каналами з однаковою метрикою;
Метрика протоколу включає такі параметри: пропускну спроможність каналу, затримку, навантаження каналу, надійність роботи. Ці параметри мають значний інтервал визначень. Наприклад, навантаження каналу і надійність можуть змінюватися від 1 до 225, а пропускна спроможність - від 1200 біт/с до 10 Гбіт/с. Це дозволяє здійснювати регулювання великих мереж та забезпечувати їх надійне функціонування. З вищенаведеного маємо, що протокол IGRP додав до себе всі переваги протоколу OSPF.
EIGRP - це протокол, який об'єднує всі переваги алгоритмів вектор- відстань та стану каналів, а також можливість використання масок підмереж. Протокол реалізований на базі алгоритму розподіленого оновлення - DUAL (Distributed Update Algorithm), який дозволяє марш- рутизатору швидко поновлювати свою роботу відразу ж після зміни мережної топології, що значно поліпшує надійність функціонування розподільної мережі. Протокол має такі складові частини:
спроможність знаходити сусіда;
алгоритм DUAL;
удосконалений механізм інкапсуляції повідомлень в протокол IP.
В першу чергу, маршрутизатор знаходить і визначає сусідів (маршрутизатори), які напрямки взаємодіють з ним, а також до нього надходить пакет Hello у призначений час, тобто визначається область, в якій
він обмінюється маршрутною інформацією з іншими маршрутизатора- ми. Подруге, алгоритм DUAL визначає оптимальний маршрут передавання трафіка з виключенням петльових маршрутів. Ці обставини значно поліпшують механізм маршрутизації, однак потребують певних обчислювальних ресурсів та високої продуктивності маршрутизаторів.
Протоколи EGP та BGP
EGP належить до протоколів зовнішньої маршрутизації мережі Internet. Він організовує зв'язок з виділеними маршрутизаторами різних автономних систем, які збирають інформацію про систему за допомогою внутрішніх протоколів маршрутизації. Обмін трафіка між автономними системами відбувається через граничні маршрутизатори. До значних недоліків EGP можна віднести те, що протокол не використовує метрику, тобто не виконує інтелектуальну маршрутизацію, не має можливості відстежувати появу петльових маршрутів і його службові повідомлення мають значний розмір.
Останнім часом замість протоколу EGP використовують більш удосконалений протокол BGP, який для передавання службової інформації використовує протокол TCP. Це значно поліпшує зв'язок між автономними системами, оскільки TCP гарантує доставлення маршрутної інформації. BGP, повністю виключаючи недоліки протоколу EGP. Протокол добре взаємодіє з протоколами внутрішньої маршрутизації та за допомогою метрики (швидкість каналу, його надійність та ін.), яку задає адміністратор, дозволяє значно поліпшити умови взаємодії автономних систем. На сьогодні використовують протокол BGP третьої версії, і це основний протокол мережі Internet, який визначає шлях до віддалення автономних систем.
Критерії маршрутизації
До функції маршрутизації пред’являють наступні вимоги:
Правильність;
Простота;
Живучість;
Стабільність;
Рівнодоступність;
Оптимальність;
Ефективність.
Перші два пункти не потребують пояснення. Живучість означає здатність мережі доставляти пакети по визначеному маршруту в умовах обмежених відмов та перевантажень. В ідеалі мережа має реагувати на такі ситуації без втрати пакетів чи порушення віртуальних каналів. З іншої сторони, розробник, який намагається підвищити живучість, стикається з проблемами стабільності. Методи, які є адаптивними до змін умов зв’язку, або реагують надто повільно, або викликають непостійні коливання від одного граничного стану до іншого. Наприклад, мережа може реагувати на перевантаження в одній області, переміщуючи велику частину трафіку в іншу область. Це викликає перевантаження в другій області і недовантаження в першій, що призводить до зворотного зміщення. У ході цих коливань пакети можуть циркулювати всередині мережі.
Також протиріччя викликають терміни рівнодоступності та оптимальності. Деякі критерії ефективності надають вищий пріоритет обміну пакетами між сусідніми станціями порівняно з обміном між віддаленими станціями. Цей підхід дозволить підвищити швидкість передачі даних в середньому по мережі. Але виглядає несправедливим для станції, яка в основному має зв'язок з віддаленими станціями.
Стратегію маршрутизації складають кілька елементів.
Критерії ефективності:
Кількість переходів;
Вартість;
Затримка;
Швидкість передавання.
Джерело мережевої інформації:
Немає; Локальний;
Сусідній вузол;
Вузли по маршруту;
Всі вузли.
Час прийняття рішення:
Пакет (дейтаграма);
Сеанс (віртуальний канал).
Оновлення мережевої інформації:
Постійно;
Періодично; При сильних змінах навантаження;
При змінах топології.
Місце прийняття рішення:
Кожен вузол (розподілене);
Центральний вузол (централізоване);
Вихідний вузол (джерело).
Розглянемо ці елементи.
Критерії ефективності маршрутизації
Вибір маршруту в загальному випадку визначається на основі деякого критерію ефективності. Найпростіший критерій – кількість переходів між вузлами у маршруті, котра має бути якомого меншою. Цей параметр легко вимірюється; його мінімальне значення відповідає мінімуму споживання ресурсів мережі. Узагальненим варіантом критерію мінімального числа переходів є вибір маршруту найменшої вартості. У цьому випадку кожному каналу присвоюється певна вартість, і для будь-якої пари підключених станцій визначається маршрут, який має мінімальну сумарну вартість. Вартість каналу визначається виходячи з деякої одної чи кількох задач розробки мережі. Наприклад, вартість можна вибрати обернено пропорційною швидкості передачі даних (тобто чим вища швидкість передачі даних по каналу, тим нижча вартість йому призначається). В першому випадку маршрут з найменшою вартістю буде забезпечувати найвищу швидкість передачі даних, а у другому – мінімальну затримку.
При використанні критерію мінімального числа переходів чи мінімальної вартості алгоритм визначення оптимального маршруту для будь-якої пари станцій відносно простий. Затрати на часу на обробку приблизно однакові для кожного обчислення. Оскільки критерій мінімальної вартості більш гнучкий, він застосовується частіше, ніж критерій мінімального числа переходів.
Час і місце прийняття рішення
Двома головними характеристиками рішення про маршрут є час та місце його прийняття. Час визначається тим, чи приймається рішення про маршрутизацію для каналу чи пакету. Якщо в мережі прийнятий внутрішній механізм дейтаграм, то рішення про маршрутизацію приймається індивідуально для кожного пакету. При внутрішньому механізмі віртуальних каналів, рішення про маршрутизацію приймається під час встановлення віртуального каналу. В найпростішому випадку всі пакети, які використовують даний віртуальний канал, слідують по тому самому маршруту. При більш складній організації мережі маршрут може динамічно змінюватися.
Термін місце прийняття рішення вказує, який вузол чи вузли мережі приймають рішення про маршрутизацію. Найчастіше вибирається розподілена маршрутизація, коли кожен вузол має вибирати канал для відправлення пакетів, що надходять. При централізованій маршрутизації рішення приймається деякими особливими вузлами, такими як центр управління зв’язком. Цей підхід небезпечний тим, що при відмові такого центру управління зв’язком мережа відмовить. Розподілений підхід складніший, але більш стійкий. Ще одна альтернатива – маршрутизація від джерела. Це дає можливість користувачеві задавати маршрут, який бажаний саме для нього.
Час прийняття рішення та місце прийняття рішення є незалежними проектними параметрами.
Джерело та інтервал оновлення мережевої інформації
В більшості стратегій маршрутизації рішення приймаються на основі відомостей про топологію мережі, завантаженості та вартості каналу. Але деякі стратегії не використовують даної інформації, хоча дозволяють передавати пакети. До цієї категорії відносяться лавинна маршрутизація та деякі стратегії випадкової маршрутизації.
При розподіленій маршрутизації, коли рішення приймається кожним вузлом, окремий вузол може використовувати лише локальну інформацію, таку як вартість кожного з вихідних каналів. Кожен вузол також може отримувати інформацію від сусідніх вузлів, таку як об’єм навантаження на цьому вузлі. Існують алгоритми, які дозволяють вузлу отримувати інформацію від усіх вузлів на будь-якому потенційному маршруті зв’язку, що представляє інтерес. У випадку централізованої маршрутизації центральний вузол використовує інформацію, отриману від усіх вузлів.
З цією концепцію пов’язане поняття інтервалу оновлення мереженої інформації, котрий визначається як джерелом інформації, так і стратегією маршрутизації. Якщо використовується локальна інформація, то оновлення проходить практично безперервно. Тобто кожен вузол завжди знає свій локальний стан. Для всіх інших типів джерел інформації інтервал оновлення залежить від стратегії маршрутизації. При фіксованій маршрутизації інформація ніколи не оновлюється. При адаптивній змінюється періодично. Чим більше мереженої інформації доступно і чим частіше вона оновлюється, тим імовірніше, що рішення про маршрутизацію будуть оптимальними. Проте передача такої інформації витрачає ресурси мережі.
Лекція №12. Основні параметри проксі-сервера
План
Поняття проксі-сервера
Використання проксі-сервера
Функціонування та параметри проксі-сервера
Налаштування віддаленого робочого стола
Поняття про́ксі-се́рвера. Проксі-сервер (від англ. proxy — «представник, уповноважений») — сервер (комп'ютерна система або програма) в комп'ютерних мережах, що дозволяє клієнтам виконувати непрямі (через посередництво проксі-сервера) запити до мережевих сервісів.
Спочатку клієнт з'єднується з проксі-сервером і запитує який-небудь ресурс (наприклад, e-mail), розташований на іншому сервері. Потім проксі-сервер або підключається до вказаного сервера і отримує ресурс у нього, або повертає ресурс з власного кешу (у випадках, якщо проксі має свій кеш).
У деяких випадках запит клієнта або відповідь сервера може бути змінена проксі-сервером з певнию метою. Також проксі-сервер дозволяє захищати клієнтський комп'ютер від деяких мережевих атак і допомагає зберігати анонімність клієнта.
Використання. Найчастіше проксі-сервери застосовуються для:
Забезпечення доступу з комп'ютерів локальної мережі в інтернет.
Кешування даних: якщо часто відбуваються звернення до одних і тих же зовнішніх ресурсів, то можна тримати їх копію на проксі-сервері та видавати за запитом, знижуючи тим самим навантаження на канал у зовнішню мережу і прискорюючи отримання клієнтом шуканої інформації .
Стиснення даних: проксі-сервер завантажує інформацію з інтернету і передає інформацію кінцевому користувачеві в стислому вигляді. Такі проксі-сервери використовуються в основному з метою економії зовнішнього трафіка.
Захист локальної мережі від зовнішнього доступу: наприклад, можна налаштувати проксі-сервер так, що локальні комп'ютери будуть звертатися до зовнішніх ресурсів тільки через нього, а зовнішні комп'ютери не зможуть звертатися до локальних взагалі (вони "бачать "тільки проксі-сервер) (дивіться також NAT).
Обмеження доступу з локальної мережі до зовнішньої: наприклад, можна заборонити доступ до певних веб-сайтів, обмежити використання інтернету якимось локальним користувачам, встановлювати квоти на трафік або смугу пропускання, фільтрувати рекламу і віруси.
Анонімізації доступу до різних ресурсів. Проксі-сервер може приховувати відомості про джерело запиту або користувача. У такому разі цільовий сервер бачить лише інформацію про проксі-сервер, наприклад, IP-адресу, але не має можливості визначити дійсне джерело запиту (анонімні проксі). Існують також спотворюючі проксі-сервери, які передають цільовим серверам неправдиву інформацію про справжнього користувача, та реально анонімні (елітні), які приховують сам факт використання проксі. Проксі, які передають адресу джерела, називаються прозорими.
Проксі-сервер, до якого може отримати доступ будь-який користувач мережі інтернет, називається відкритим.
Є такі види проксі-серверів
Прозорий проксі — схема зв'язку, при якій трафік, або його частина, перенаправляється на проксі-сервер неявно (засобами маршрутизатора). При цьому клієнт може використовувати всі переваги проксі-сервера без додаткових налаштувань, але з іншого боку, не має вибору.
Зворотний проксі — проксі-сервер, який на відміну від прямого, ретранслює запити клієнтів із зовнішньої мережі на один або декілька серверів, логічно розташованих у внутрішній мережі. Часто використовується для балансування мережного навантаження між декількома веб-серверами і підвищення їх безпеки, граючи при цьому роль міжмережевого екрану на прикладному рівні.
Функціонування та параметри проксі-сервера
Клієнтський комп'ютер має налаштування (конкретної програми або операційної системи), відповідно до якої всі мережеві з'єднання по деякому протоколу потрібно здійснювати не на ip-адресу сервера (ресурсу), що виділяється з DNS-імені ресурсу, або безпосередньо заданий, а на ip-адресу (і інший порт) проксі-сервера.
За необхідності звернення до будь-якого ресурсу за цим протоколом, клієнтський комп'ютер відкриває мережеве з'єднання з проксі-сервером (на потрібному порті) і здійснює звичайний запит, так якщо б він звертався безпосередньо до ресурсу.
Розпізнавши дані запиту, перевіривши його коректність і дозвіл для клієнтського комп'ютера, проксі-сервер, не розриваючи з'єднання, сам відкриває нове мережеве з'єднання безпосередньо з ресурсом і робить той же самий запит. Отримавши дані (або повідомлення про помилку), проксі-сервер передає їх клієнтському комп'ютеру.
З цього випливають два основні обмеження звичайного проксі-сервера:
Проксі-сервер повинен бути повнофункціональним сервером і клієнтом для кожного підтримуваного протоколу
Проксі-сервер може обслуговувати тільки ті мережеві протоколи, у запиті яких передається ім'я або ip-адреса ресурсу (не відноситься до прозорих проксі — вони отримують ip-адресу безпосередньо з перехопленого з'єднання).
В часі становлення Інтернету проксі-сервери були найпопулярнішим способом виходу в Інтернет з локальних мереж. Цьому сприяли такі обставини:
Основний протокол, що використовувався — http, який легко проксіюється;
Підтримка проксі більшістю браузерів і / або операційних систем;
Контроль доступу та облік трафіку по користувачам;
Проксі-сервер — це звичайна програма (а не системна), яка може працювати з мінімальними правами на будь-якій ОС з підтримкою мережі (стека TCP / IP);
Відсутність доступу в Інтернет по інших протоколах часто було більш перевагою, ніж недоліком.
У зв'язку із зростанням ролі інших мережевих протоколів, переходом до тарифікації послуг інтернету по швидкості доступу, а також появою дешевих апаратних маршрутизаторів з функцією NAT, використання звичайних проксі-серверів для виходу користувачів до Інтернет застосовується вкрай рідко.
Однак великого поширення набули прозорі проксі-сервери (протоколу http, іноді деяких інших), в тому числі і ті, що входять до складу багатьох апаратних маршрутизаторів для доступу до інтернету, з метою збору статистики та контролю доступу до сайтів. Інші порти (протоколи) при цьому проходять через NAT.
Основними параметрами проксі-сервера є:
Протокол, по якому відбувається з’єднання;
Порт.
Наприклад, у Windows параметри проксі-сервера можна побачити, звернувшись до вкладки «Додаткові/Мережа» та вибравши пункт «Налаштування з’єднання».
HTTP-проксі – використовується для з’єднання по протоколам HTTP/HTTPS. HTTPS підтримує метод CONNECT і дозволяє організувати ланцюжок проксі-серверів.
SSL-проксі – проксі-сервер, який дозволяє встановити «прослуховування» трафіку, зашифрованого за допомогою SSL-протоколу.
FTP-проксі – дозволяє здійснювати будь-які операції з файлами на віддаленому сервері по протоколу FTP.
SOCKS – мережений протокол, який дозволяє клієнт-серверним додаткам прозоро використовувати сервіси за міжмережевими екранами. SOCKS передає усі дані клієнта, не додаючи нічого від себе, на відміну від HTTP-проксі.
Налаштування віддаленого робочого стола
Існує різне програмне забезпечення, котре використовується для доступу до віддаленої робочої стільниці. Для прикладу розглянемо програму VNC, оскільки дана програма дозволяє взаємодію між собою операційних систем Windows та Linux.
Virtual Network Computing (VNC) — віртуальне мережеве обчислення, що використовує протокол RFB (Remote Framebuffer). Управління здійснюється шляхом передачі натиснень клавіш на клавіатурі і рухів миші з одного комп'ютера на іншій і ретрансляції вмісту екрану через комп'ютерну мережу.
Система VNC платформонезалежна: Vnc-клієнт, званий VNC viewer, запущений на одній операційній системі, може підключатися до vnc-сервера, що працює на будь-якій іншій ОС. Існують реалізації клієнтської і серверної частини практично для всіх операційних систем, у тому числі і для Java (включаючи мобільну платформу J2me). До одного vnc-сервера одночасно можуть підключатися множинні клієнти. Найбільш популярні способи використання VNC — видалена технічна підтримка і доступ до робочого комп'ютера з будинку.
VNC була розроблена компанією At&t. Оригінальні вихідні коди доступні на умовах ліцензії GNU General Public License, як і багато варіантів VNC, що існують на даний момент.
VNC складається з двох частин: клієнта і сервера. Сервер — програма, що надає доступ до екрану комп'ютера, на якому вона запущена. Клієнт (або viewer) — програма, одержуюча зображення екрану з сервера і взаємодіюча з ним.
VNC — дуже простий протокол, заснований на графічних примітивах: «Покласти прямокутник піксельних даних на задану координатами позицію». Сервер посилає невеликі прямокутники клієнтові. Така схема в своїй примітивній формі споживає велику частину пропускної можливості каналу. Для зниження навантаження на канал використовуються різні методи. Існують різні кодування — методи визначення найбільш ефективного способу передачі цих прямокутників.
Протокол VNC дозволяє клієнтові і серверу «домовитися» про те, яке кодування буде використано. Найпростіший метод кодування, підтримуваний всіма клієнтами і серверами, — «Raw encoding», при якому пікселі передаються в порядку зліва-направо, зверху-вниз, і після передачі первинного стану екрану передаються пікселі, що лише змінилися. Цей метод працює дуже добре при незначних змінах зображення на екрані (рухи покажчика миші по робочому столу, набір тексту під курсором), але завантаження каналу стає дуже високим при одночасному зміни великої кількості пікселів, наприклад, при перегляді відео в повноекранному режимі.
За умовчанням VNC використовує діапазон tcp-портів з 5900 до 5906. Кожним портом є відповідний екран x-сервера (порти з 5900 по 5906 асоційовані з екранами з :0 по :6). Багато комп'ютерів під управлінням ОС Windows можуть використовувати лише один порт через відсутність розрахованих на багато користувачів властивостей, властивих unix-системам. Для windows-систем екран за умовчанням — :0, що відповідає порту 5900.
Також існує можливість зворотного підключення від сервера до клієнта. В цьому випадку клієнт переводиться в прослуховуючий (Listening) режим і з'єднання ініціюється сервером на 5500 tcp-порт клієнта. Порти можуть бути змінені.
Спочатку VNC не використовує шифрування трафіку, проте в процедурі аутентифікації пароль не передається у відкритому вигляді, а використовується алгоритм «виклик-відповідь» з des-шифруванням (ефективна довжина ключа складає 56-біт). У багатьох реалізаціях існує обмеження в 8 символів на довжину пароля і якщо його довжина перевершує 8 символів, то пароль урізується, а зайві символи ігноруються.
При необхідності надійного шифрування всієї vnc-сесії, вона може бути встановлена через SSL, SSH або vpn-тунель, а також поверх Ipsec. Технологія Ipsec підтримується переважною більшістю сучасних ОС і використовується як при з'єднанні через інтернет, так і в локальних мережах. Ssh-клієнти дозволяють створювати ssh-тунелі як зі всіх основних платформ (UNIX, Windows, Macintosh і ін.), так і для менш популярних.
В ОС Linux в якості сервера VNC є програма Vino, а в якості клієнта програма VNC- viewer.
