Лекція 9. Багаторівнева структура стеку TCP/IP
Стек протоколів TCP/IP, TCP/IP-модель — набір протоколів мережі Інтернет. Назва походить від назви стрижневих протоколів мережі Інтернет — IP (англ. Internet Protocol — «міжмережевий протокол») і TCP (англ. Transmission Control Protocol — «протокол керування передаванням»). Фактично це систематизований стек протоколів, що поділяється на чотири рівні, які корелюються з еталонною моделлю OSI.
TCP/IP зародився в результаті досліджень, профінансованих Управлінням перспективних науково-дослідних розробок (Advanced Research Project Agency, ARPA) уряду США в 1970-х роках. Цей протокол був розроблений для того, щоб обчислювальні мережі дослідницьких центрів в усьому світі могли бути об'єднані у формі віртуальної «мережі мереж» (internetwork). Первісна мережа Інтернет була створена в результаті перетворення наявного конгломерату обчислювальних мереж, що носили назву ARPAnet, за допомогою TCP/IP.
Великий внесок у розвиток стеку протоколів TCP/IP вніс університет Берклі, реалізувавши протоколи стека у своїй версії ОС UNIX. Популярність цієї ОС призвела до поширення протоколів ТСР, IP й інших протоколів стека. Сьогодні цей стек використовують для зв'язку комп'ютерів світової інформаційної мережі Інтернет, а також багатьох корпоративних мереж.
Стек протоколів TCP/IP (модель взаємодії відкритих систем DoD (Department of Defence) міністерства оборони США) ділиться на 4 рівні: прикладний (application), транспортний (transport), міжмережевий (internet) та рівень доступу до середовища передачі (англ. network access layer, link layer, рос. Канальный уровень). Терміни, що використовуються для позначення блоку переданих даних, різні при використанні різних протоколів транспортного рівня: TCP і UDP.
На прикладному рівні це потік (TCP) і повідомлення (UDP); на транспортному — сегмент і пакет.
Як і в моделі OSI, дані більш верхніх рівнів інкапсулюються в блоки даних більше нижніх рівнів, наприклад, сегмент (TCP) або пакет (UDP) зі своїми даними і службовими заголовками інкапсулюється всередині поля «Дані» дейтаграми.
9.1. Прикладний рівень
Протоколи прикладного рівня TCP/IP визначають процедури організації взаємодії прикладних процесів (програм) різних мережевих комп'ютерів і форми подання інформації за такої взаємодії. За ознаками взаємодії прикладних процесів виділяють два типи прикладного програмного забезпечення: програма-клієнт та програма-сервер. Протоколи прикладного рівня зорієнтовано на конкретні прикладні завдання. Серед традиційних послуг, котрі забезпечують протоколи прикладного рівня з сімейства TCP/IP, сьогодні найпопулярнішими є електронна пошта — протоколи SMTP та POP3, передача файлів — FTP та TFTP, емуляція віддаленого терміналу — TELNET тощо.
Зі середини 1990-х років в Інтернеті активно запроваджуються послуги, які базуються на технології WWW, яка ґрунтується на протоколі передачі гіпертексту HTTP.
Сьогодні популярні послуги пакетної IP-телефонії на базі стандартів IETF, до яких відносяться спеціальні протоколи прикладного, транспортного та мережевого рівнів, н-д сигналізації SIP, передачі в режимі реального часу RTP та RTCP, резервування ресурсів RSVP, рекомендацій ITU H.323 тощо.
SMTP (Simple Mail Transfer Protocol - Простий Протокол Пересилання Пошти) — це протокол, який використовується для пересилання електронної пошти до поштового сервера або з клієнта-комп'ютера, або між поштовими серверами. В IANA для SMTP зареєстрований порт 25. SMTP з'єднання де застосовується SSL шифрування використовують порт 465.
SMTP — порівняно простий, текстовий протокол, в якому з'єднання відбувається завжди за ініціативи відправника. SMTP — синхронний протокол і складається із серії команд, що посилаються клієнтом та відповідей сервера. Відправником зазвичай є поштовий клієнт кінцевого користувача або поштовий сервер.
SMTP було розроблено як протокол транспортування і доставки, тому системи, що використовують SMTP, завжди повинні бути у робочому стані. Протокол часто використовується для передачі повідомлень клієнтами електронної пошти, які, проте, не мають можливості діяти як сервер.
POP3 (Post Office Protocol - Поштовий Офісний Протокол) — це протокол, що використовується клієнтом для доступу до повідомлень електронної пошти на сервері. Остання версія протоколу — третя. POP3 дозволяє клієнтові мати вибірковий доступ до повідомлень на сервері. За своєю функціональністю POP є набагато біднішим за IMAP протокол, не надаючи клієнту інтерфейсу з маніпулювання папками на сервері, вибірковим отриманням частин повідомлення чи можливості завантаження заголовків листів.
POP3 протокол, за замовчуванням працює на 110 порту TCP. Шифрований Secure POP3 (SSL-POP) працює на 995 порту TCP.
Протокол передачі файлів (File Transfer Protocol, FTP) — дає можливість абоненту обмінюватися двійковими і текстовими файлами з будь-яким комп'ютером мережі, що підтримує протокол FTP. Установивши зв'язок з віддаленим комп'ютером, користувач може скопіювати файл з віддаленого комп'ютера на свій, або скопіювати файл зі свого комп'ютера на віддалений.
При розгляді FTP як сервісу Інтернет мають на увазі не просто протокол, а саме сервіс — доступ до файлів, які знаходяться у файлових архівах.
FTP — стандартна програма, яка працює за протоколом TCP, яка завжди поставляється з операційною системою. Її початкове призначення — передача файлів між різними комп'ютерами, які працюють у мережах TCP/IP: на одному з комп'ютерів працює програма-сервер, на іншому — програма-клієнт, запущена користувачем, яка з'єднується з сервером і передає або отримує файли через FTP-сервіс.
Telnet (TErminaL NETwork)— мережевий протокол для реалізації текстового інтерфейсу по мережі (у сучасній формі — за допомогою транспорту TCP). Назву «telnet» мають також деякі утиліти, що реалізують клієнтську частину протоколу.
Призначення протоколу TELNET у наданні достатньо спільного, двонаправленого, восьмибітового байт-орієнтованого засобу зв'язку. Його основне завдання полягає в тому, щоб дозволити термінальним пристроям і термінальним процесам взаємодіяти один з одним. Передбачається, що цей протокол може бути використаний для зв'язку виду термінал-термінал («зв'язування») або для зв'язку процес-процес («розподілені обчислення»).
HTTP — протокол передачі даних, що використовується в комп'ютерних мережах. Назва скорочена від Hyper Text Transfer Protocol, протокол передачі гіпер-текстових документів
Основним призначенням протоколу HTTP є передача веб-сторінок (текстових файлів з розміткою HTML), хоча за допомогою нього успішно передаються і інші файли, які пов'язані з веб-сторінками (зображення і застосунки), так і не пов'язані з ними (у цьому HTTP конкурує з складнішим FTP).
HTTP припускає, що клієнтська програма — веб-браузер — здатна відображати гіпертекстові веб-сторінки та файли інших типів у зручній для користувача формі. Для правильного відображення HTTP дозволяє клієнтові дізнатися мову та кодування веб-сторінки й/або запитати версію сторінки в потрібних мові/кодуванні, використовуючи позначення із стандарту MIME.
9.2. Транспортний рівень
Протоколи транспортного рівня TCP/IP-моделі надають транспортні послуги прикладним процесам. Основними протоколами транспортного рівня TCP/IP є протокол керування передавання TCP і протокол користувальницьких дейтаграм UDP. Транспортні послуги цих протоколів суттєво відрізняються. Протокол UDP доставляє дейтаграми без установлення з'єднання. При цьому він не гарантує їхнього доставляння. Протокол TCP забезпечує надійне доставляння байтових потоків (сегментів) із попереднім встановленням транспортного дуплексного з'єднання (віртуального каналу) між модулями TCP мережевих комп'ютерів. Для розв'язання транспортних завдань протоколи TCP та UDP під час передавання даних формують і додають до даних свої заголовки обсягом 20 байт та 8 байт відповідно.
Кожен прикладний процес взаємодіє з модулем транспортного рівня TCP або UDP через окремий порт, що дозволяє при взаємодії систем однозначно ідентифікувати прикладні процеси. Ці порти нумеруються починаючи з нуля. При передачі запиту прикладної програми клієнта до прикладної програми сервера транспортний модуль, формуючи дейтаграму чи сегмент, вказує номери портів програмних модулів прикладних протоколів сервера й клієнта. З цією метою в заголовку пакета протоколу транспортного рівня виділено два поля — «порт одержувача» і «порт відправника», обсягом по 2 байти. Номери портів TCP та UDP до прикладних протоколів сервера стандартизовані IETF. Для цього надано номери в діапазоні від 1 до 1023. Наприклад, програмний модуль TCP сервера зазвичай взаємодіє з модулем протоколу HTTP через порт з номером 80.
9.3. Мережевий рівень
Протоколи мережевого рівня TCP/IP забезпечують взаємодію мереж різної архітектури тощо. Основним протоколом мережного рівня технології TCP/IP є міжмережевий протокол IP та його допоміжні протоколи: адресний протокол ARP; реверсний адресний протокол RARP (Reverse ARP); протокол діагностичних повідомлень ICMP (Internet Control Message Protocol), який надсилає повідомлення вузлам мережі про помилки на маршруті, які виникають при передачі пакетів тощо.
Головне завдання міжмережевого протоколу IP — це маршрутизація пакетів даних між різнотипними комп'ютерними мережами. Для розв'язання цього завдання протокол IP підтримує IP-адресацію мереж та вузлів, використовує таблицю маршрутизації пакетів, виконує, за необхідності, фрагментацію та дефрагментацію цих пакетів.
Функціонування мережевого рівня також забезпечує низка протоколів динамічної маршрутизації RIP, OSPF, які динамічно формують маршрути таблиці маршрутизації за алгоритмами вектора VDA (Vector Distance Algorithm) і стану зв'язку LSA (Link State Algorithm) відповідно; протоколів політики зовнішньої маршрутизації EGP (Exterior Gateway Protocol), BGP (Border Gateway Protocol) тощо.
9.4. Рівень доступу до середовища передачі (Network Access Layer)
Функції:
- відображення IP-адреси в фізичні адреси мережі (MAC-адреси);
- інкапсуляція IP-дейтаграм в кадри для передачі по фізичному каналу і передачі кадрів.
- На цьому рівні працює протокол ARP, який здійснює відображення адреси IP-> MAC.