
- •1. Еволюція обчислювальних систем.
- •2. Обчислювальні мережі як частковий випадок розподілених систем (систем телеобробки).
- •1. Мережі еом локальні.
- •1.1. Основні поняття та визначення.
- •1.2. Ієрархічна організація мереж.
- •1.3. Еталонна модель взаємодії відкритих систем iso/osi.
- •1.4. Модель та протокольний граф тср/ір.
- •1.5. Фізичний рівень.
- •1.5.1. Передача сигналів у середовищі.
- •1.5.2. Перешкоди, шуми, спотворення.
- •1.5.3. Основні типи середовищ передачі даних.
- •1.5.4. Основні фізичні топології локальних мереж.
- •1.5.5. Алгоритм роботи пристроїв фізичного рівня.
- •1.6. Канальний рівень.
- •1.6.1. Структура канального рівня.
- •1.6.3. Пристрої канального рівня.
- •1.6.3.1. Поняття мас-адресації.
- •1.6.3.2. Поняття домену колізій та широкомовного домену.
- •1.6.3.3. Пристрої канального рівня та їх вплив на трафік мережі.
- •1.6.4. Методи доступу до середовища.
- •1.6.4.1. Колективний метод доступу до середовища (csma/cd)
- •1.6.4.2. Маркерний метод доступу до середовища (Token passing)
- •1.6.5. Протоколи канального рівня.
- •1.6.5.1. Мережі Ethernet.
- •1000-Мегабітні версії Ethernet. (Gigabit Ethernet)
- •1.6.5.2 Мережі Token Ring
- •1.5.5.3 Мережі fddi
- •1.7. Мережевий рівень.
- •1.7.1. Функції мережевого рівня.
- •1.7.2. Логічна адресація.
- •1.7.2.1. Класи ір-адрес.
- •1.7.2.2. Спеціальні ір – адреси.
- •1.7.2.3. Маски ір-адрес.
- •1.7.2.4. Безкласова адресація та створення підмереж.
- •1.7.3. Протокол ір.
- •1.7.3.1. Робота протоколу ір.
- •1.7.3.2. Функції ір.
- •1.7.4. Маршрутизація.
- •1.7. Транспортний рівень.
- •1.7.1. Функції транспортного рівня.
- •1.7.2. Технології управління потоком даних.
- •1.7.3. Протоколи транспортного рівня.
- •1.7.3.1. Протокол тср.
- •1.7.3.2. Формат тср-сегменту.
- •1.7.3.3. Протокол udp
- •1.7.3.4. Формат udp-сегменту.
- •1.8. Сеансовий рівень.
- •1.8.1. Функції сеансового рівня.
- •1.8.2. Процедури tws та twa.
- •1.9. Представницький рівень
- •1.10. Прикладний рівень
- •2. Протокольний стек тср/ір.
- •2.1. Призначення протокольного стеку тср/ір.
- •2.2. Протоколи стеку тср/ір.
- •2.2.1 Протоколи arp та proxy arp.
- •2.2.3. Поштові протоколи smtp, рор3, імар4.
- •2.2.4. Протоколи моніторингу та управління мережею snmp, icmp.
- •2.2.5. Протокол нттр.
- •2.3. Діагностика та управління мережею з допомогою утиліт на основі протоколу icmp.
2.2.5. Протокол нттр.
HTTP (Hypertext Transfer Protocol, Протокол передачі гіпертексту) являє собою протокол прикладного рівня. HTTP забезпечує високопродуктивний механізм тиражування інформації мультимедійних систем незалежно від типу представлення даних. Протокол побудований за об'єктно-орієнтованою технологією і може використовуватися для рішення різних задач, наприклад, роботи із серверами імен або керування розподіленими інформаційними системами. На даний момент найбільш розповсюдженою є специфікація протоколу "НТТР/1.0".
WWW (World Wide Web, Всесвітня павутина) складається з комп'ютерів, що надають графічний доступ до інформації, що зберігається на них. Здатність зберігати мультимедійну інформацію, таку як відео, аудіо, картинки і звуки, робить WWW унікальним засобом тиражування інформації. WWW-сервер являє собою комп'ютер, на якому працює певне програмне забезпечення, що надає можливість користувачам Internet приєднуватися і користуватися WWW-ресурсами цього комп'ютера для пошуку і вибору інформації.
З 1990 року протокол HTTP використовується інформаційною системою WWW у якості одного з основних протоколів роботи.
Сервіси WWW
Протокол HTTP дозволяє одержувати доступ до ресурсів і сервісів WWW-серверів. Для уніфікації доступу до багатофункціональних ресурсів мережі, WWW-сервери підтримують комплекс інтерфейсів, що дозволяють структурувати рівні і методи роботи з різними ресурсами мережі. По суті, кожний з інтерфейсів являє собою об'єкт мережі зі своїми методами і своєю структурою. Узгоджена взаємодія цих об'єктів і складає вся розмаїтість світу WWW.
URI (Uniform Resource Identifier, Ідентифікатор ресурсу), URL (Uniform Resource Locator, Місцезнаходження ресурсу), URN (Uniform Resource Name, Ім'я ресурсу) — різні імена того самого сервісу, що призначений для ідентифікації типів, методів роботи і комп'ютерів, на яких знаходяться визначені ресурси, доступні через Internet. Цей сервіс складається з трьох частин:
Схема. Ідентифікує тип сервісу, через який можна одержати доступ до сервісу, наприклад FTP або WWW-сервер
Адреса. Ідентифікує адресу (хост) ресурсу, наприклад, www.ripn.net
Ім'я або шлях доступу. Ідентифікує повний шлях до ресурсу на обраному хості, що ми хочемо використовувати для доступу до ресурсу, наприклад, /home/images/imagel.gif
Іншими словами, URL, URI і URN — це спосіб для уздженої ідентифікації ресурсів у Internet.
Як правило, коли мають на увазі комп'ютер, на якому розташований ресурс, використовують значення URL або URN, а коли позначають ресурс цілком (тип, хост, шлях) використовують URI
URI ресурсу може містити не тільки ім'я ресурсу, але і параметри, необхідні для його роботи. Ім'я ресурсу відділене від рядка параметрів символом "?". Рядок параметрів складається з лексем, поділюваних символом "&". Кожна така лексема складається з імені параметра і його значення, розділених символом "=". Символи, що не входять у набір символів ASCII, заміняються знаком "%" і шістнадцятковим значенням цього символу. Наприклад, символ пробілу " " заміняється на "%20".
HyperText Markup Language (HTML) — це мова опису інформації, яка міститься на WWW. HTML-файл являє собою звичайний ASCII-текст, що містить спеціальні коди, що позначають приєднану до файлу графічну, відео, аудіо інформацію або виконувані коди середовища перегляду інформації — Web browser — Java Script, Java Classes. Уся ця інформація зберігається у файлах на WWW-сервері. Коли Web browser одержує доступ до цього файлу, він спочатку інтерпретує закодовану в HTML-файлі інформацію, а потім представляє для користувача всю інформацію в графічному або текстовому виді Web-сторінок.
НТ у HTML позначає HyperText, основну концепцію розміщення інформації на WWW. HyperText або hyperlinks (гіперпосилання), містить зв’язки (URL) усередині текстового документа, що дозволяють користувачеві швидко переходити від однієї частини документа до іншої або до іншого документа.
Common Gateway Interface (CGI) — це стандарт розширення функціональності WWW, що дозволяє WWW-серверам виконувати програми, аргументами роботи яких може керувати користувач. WWW-сервери дозволяють запитувати статичні HTML Web-сторінки і переглядати їх за допомогою We-браузерів. CGI розширює можливості користувача і дозволяє виконувати програми, асоційовані з даною Web-сторінкою і надає можливість одержання динамічної інформації з WWW-сервера. Наприклад, користувач такого WWW-сервера може одержати саму останню інформацію про погоду, виконавши програму, що запитує прогноз погоди на даний момент із бази даних.
CGI-інтерфейс, в основному, служить як шлюз між WWW-сервером і зовнішніми програмами, що виконуються. Він одержує запит від користувача, передає його зовнішній програмі і потім повертає результати користувачеві через динамічно побудовану Web-сторінку. При цьому побудовані Web-сторінки можуть докорінно відрізнятися друг від друга, якщо вони побудовані в залежності від переданих користувачем параметрів.
Найчастіше CGI використовується для вибірки інформації з баз даних. Користувач уводить запит у Web-сторінку; WWW-сервер його читає, передає відповідному додаткові або запускає процес для його обробки, одержує результат запиту і показує його користувачеві.
Механізм CGI цілком платформно-незалежний і може передавати дані між будь-якими WWW-серверами, що підтримують механізм CGI. Оскільки CGI заснований на файлах, що виконуються, немає обмежень на тип програми, що буде виконуватися в CGI. Програма може бути написана на будь-якій з мов програмування, що дозволяє створювати модулі, що виконуються, C/C++, FORTRAN, Pascal, Visual Basic або PowerBuilder. CGI-програма також може бути написана з використанням командних мов операційних систем, таких як Perl або Shell.
Останнім часом бурхливо розвивається тенденція активних серверних сторінок, так званих ASP. По суті це використання того ж самого стандарту CGI, тільки на рівні об’єктно-орієнтованого підходу до побудови Web-сторінок.
Принципи побудови HTTP-з'єднання
Протокол HTTP побудований по моделі "запит/відповідь”. Іншими словами, клієнт установлює з'єднання із сервером і відправляє запит. У ньому зазначений тип запиту, URL (URI, URN), версія протоколу HTTP (оскільки формат запиту може мінятися від версії до версії) і зміст запиту: інформація клієнта (параметри) і, можливо, супровідна інформація або тіло повідомлення. Сервер HTTP відповідає рядком статусу обробки запиту, що містить: версію підтримуваного протоколу, код обробки запиту або код помилки й інформацію, що повертається на запит. Інформація тіла повідомлень як клієнта, так і сервера повинна бути представлена в МІМЕ-форматі.
HTTP-з'єднання ініціюється користувачем і складається з запиту до ресурсу визначеного сервера. У найпростішому випадку, з'єднання являє собою потік даних між клієнтом — ініціатором з'єднання і сервером (рис.1).
Рис. 1. Найпростіша схема взаємодії між клієнтом і сервером HTTP
У більш складній ситуації, у процесі передачі даних беруть участь кілька проміжних об'єктів (Рис.2). Вони можуть бути трьох видів: proxy (проміжний агент), gateway (шлюз) і tunnel (тунель):
Proxy являє собою проміжний агент, що приймає запит клієнта і, у залежності від своїх настройок, змінює частину або все повідомлення запиту і передає переформатований запит далі по ланцюжку, наприклад, іншим серверам або запитуваному серверові. У момент прийняття запитів Proxy може працювати як сервер, а при передачі запитів — як клієнт. Proxy часто використовується як ретранслятор протоколів внутрішньої мережі в Internet і, як правило, являє собою "головні ворота" виходу користувачів внутрішньої мережі назовні.
Gateway (шлюз) являє собою проміжний сервер. На відміну від proxy, шлюз приймає запити клієнта, начебто він і є запитуваний сервер і передає їх далі. Робота шлюзу зовсім прозора для клієнта. Шлюз, як правило, використовується як ретранслятор запитів або протоколів зовнішньої мережі у внутрішню, до ресурсів сервера, тобто це "головні ворота" входу користувачів зовнішньої мережі.
T
unnel
(тунель) являє собою програму-посередник
між двома з'єднаннями. Тунелі
використовуються в тих випадках, коли
необхідно організувати потік даних
через який-небудь проміжний об'єкт
(наприклад, той же proxy), що не може
інтерпретувати структуру потоку даних.
Рис.2. Схема взаємодії клієнта і сервера через проміжні об'єкти мережі
На схемі показане з'єднання між клієнтом і сервером із трьома проміжними об'єктами ("А", "В" і "С"). Повідомлення запиту і відповіді повинні пройти через чотири окремих канали, а кожний із проміжних об'єктів може одночасно підтримувати кілька з'єднань. Наприклад, "В" може одержувати одночасно запит як від "А", так і від інших клієнтів, і передавати повідомлення на "С" і на інші сервери.
Кожний з об'єктів — учасників з'єднання, за винятком тунелю, може підтримувати внутрішній кеш запитів і відповідей.
Кеш являє собою локальну базу даних повідомлень відповідей і систему керування цією базою. Кеш зберігає відповіді серверів і повертає їх на запит клієнта, не передаючи запит наступному об'єктові ланцюжка з'єднання (рис.3).
Ефект від використання кеша полягає в тому, що він зменшує довжину ланцюжка з'єднання і, тим самим, зменшує час з'єднання.
Рис. 3. Схема використання кеша
На представленій схемі об'єкт "В" передає відповідь на запит зі свого кеша, що був побудований на підставі даних попереднього з'єднання.
Однак необхідно пам'ятати, що далеко не усі відповіді можуть кешуватися. Деякі запити можуть містити параметри, що накладають обмеження на роботу кеша.
HTTP - це протокол прикладного рівня, що, як правило, працює поверх транспортного протоколу TCP/IP, хоча, як усякий протокол прикладного рівня, може працювати на будь-якому іншому транспорті, який забезпечує надійне і достовірне з'єднання. При роботі з TCP сервер HTTP використовує, як правило, порт 80, хоча можливо використання й інших портів.
HTTP-з'єднання повинне відкриватися клієнтом перед кожним запитом і закриватися сервером після відправлення відповіді. Як клієнт, так і сервер повинні мати на увазі, що з'єднання може бути передчасно закрито або користувачем, або після закінчення часу з'єднання, або через збій системи.
Опис протоколу HTTP
HTTP, імовірно, найпростіший із протоколів прикладного рівня, як по синтаксису, так і по принципах побудови з'єднання.
Після встановлення TCP-каналу між клієнтом і сервером HTTP, клієнт відправляє на сервер запит. Загальна структура запиту виглядає наступним чином:
(Тут і далі <SP> позначає символ пробілу, /* line */ — позначення порожнього рядка, що закінчується парою <CRLF> — повернення каретки.)
METHOD <SP> Request-URI <SP> HTTP-Version [General-Header]
Date
Pragma
[Request-Header]
Authorization
From
If-Modified-Since
Referer
User-Agent
[Entity-Header]
Allow
Content-Encoding
Content-Length
Content-Type
Expires
Last-Modified
extension-header
/* line */
[Entity-Body]
Поле "METHOD" містить ідентифікатор методу звертання до HTTP-сервера. Метод визначає склад і структуру заголовків запиту, вид передачі і структуру параметрів запиту. Найбільш розповсюдженими методами є "GET" і "POST". Іноді також використовуються методи "HEAD", "DELETE", "PUT".
Метод "GET" запитує інформацію про ресурс, розташований за заданим URI. Як правило, запитувана інформація являє собою HTML, TXT або інший текстовий файл. Якщо URI асоційований з файлом, що виконується — сервісом CGI, процес CGI буде запущений, і клієнтові будуть передані результати стандартного потоку виводу цього процесу. Якщо ресурсові URI для роботи необхідні параметри, вони повинні бути зазначені в URI ресурсу.
Метод "POST", як правило, використовується для передачі клієнтом на сервер даних, що повинні бути оброблені ресурсом, зазначеним у URI. Даний метод найчастіше використовується для роботи з CGI-сервісом. Метод "POST" передає параметри ресурсові URI у тілі повідомлення, тому при його використанні не потрібно дотримувати ніяких обмежень на довжину переданого рядка параметрів. Відповіді на запити методом POST, як правило, не кешуються.
Метод "HEAD" аналогічний методові "GET", за винятком того, що клієнту повертається тільки заголовок повідомлення відповіді (скорочений "GET"). Цей метод, в основному, використовується для тестування гіперпосилань і перевірки доступу до ресурсів.
Метод "DELETE" використовується для видалення ресурсу певного URI.
Метод "PUT" використовується, коли клієнт бажає зберегти переданий на сервер ресурс з ідентифікатором URI.
Також протокол HTTP надає простий механізм аутентифікації користувача ресурсів WWW-сервера. Механізм побудований на обміні інформацією аутентифікації між клієнтом і сервером ресурсу. Механізм дозволяє вибирати схему аутентифікації і рівень таємності переданих даних.
60