Стек протоколів tcp ip призначення рівнів

Лекція 3. Стек TCP/IP. Базові протоколи TCP/IP

Протокол TCP/IP є базовим транспортним мережевим протоколом. Термін "TCP/IP" зазвичай означає все, що пов'язане з протоколами TCP та IP. Він охоплює цілу родину протоколів, прикладні програми та навіть саму мережу. До складу сімейства входять протоколи UDP, ARP, ICMP, TELNET, FTP та багато інших.

Архітектура протоколів TCP/IP призначена для об'єднаної мережі, що складається зі з'єднаних один з одним шлюзами окремих пакетів різнорідних підмереж, до яких підключаються різнорідні машини. Кожна з підмереж працює відповідно до своїх специфічних вимог і має свою природу засобів зв'язку. Однак передбачається, що кожна підмережа може прийняти пакет інформації (дані з відповідним заголовком мережі) і доставити його за вказаною адресою в цій конкретній підмережі. Не потрібно, щоб підсіти гарантувала обов'язкову доставку пакетів та мала надійний наскрізний протокол. Таким чином, дві машини, підключені до однієї підмережі можуть обмінюватися пакетами.

Стек протоколів TCP/IP має чотири рівні (рисунок 3.1).

Рисунок 3.1 – Стек TCP/IP

Рівень IV відповідає рівню доступу до мережі, який працює на основі стандартних протоколів фізичного та канального рівня, таких як Ethernet, Token Ring, SLIP, PPP та інших. Протоколи цього рівня відповідають за пакетну передачу даних у мережі лише на рівні апаратних засобів.

Рівень III забезпечує міжмережну взаємодію під час передачі пакетів даних з однієї підмережі до іншої. У цьому працює протокол IP.

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

Рівень I – прикладний. Стек TCP/IP існує давно і він включає велику кількість протоколів і сервісів прикладного рівня (протокол передачі файлів FTP, протокол Telnet, протокол Gopher для доступу до ресурсів всесвітнього простору GopherSpace, найвідоміший протокол HTTP для доступу до віддалених гіпертекстових баз даних у всесвітній павутинні та ін.).

Усі протоколи стека можна розділити на дві групи: протоколи передачі, передають корисні дані між двома сторонами; службові протоколи, необхідних коректної роботи мережі.

Службові протоколи обов'язково використовують протокол передачі даних. Наприклад, службовий протокол ICMP використовує протокол IP. Інтернет – сукупність всіх зв'язкових комп'ютерних мереж, які використовують протоколи стека TCP/IP.

Функції транспортного рівня. Протоколи TCP, UDP.

Четвертий рівень моделі призначений для доставки даних без помилок, втрат і дублювання в тій послідовності, як вони були передані. При цьому не має значення, які дані передаються, звідки й куди, тобто він надає сам механізм передачі. Транспортним рівнем надаються такі види послуг:

- Встановлення транспортного сполучення;

- передача даних;

- Розрив транспортного сполучення.

Функції, що виконуються транспортним рівнем:

– перетворення транспортної адреси на мережевий;

– мультиплексування транспортних з'єднань у мережеві;

- Встановлення та розрив транспортних з'єднань;

– упорядкування блоків даних щодо окремих з'єднань;

– виявлення помилок та необхідний контроль за якістю послуг;

– відновлення після помилок;

- Сегментування, об'єднання та зчеплення;

- Управління потоком даних по окремих з'єднаннях;

- Супервізорні функції;

- Передача термінових транспортних блоків даних.

Протокол керування передачею TCP надає надійну службу доставки пакетів, орієнтовану встановлення з'єднання.

Протокол TCP:

- гарантує доставку IP-датаграм;

- Розбиває на сегменти і складання великих блоків даних, що відправляються програмами;

- Забезпечує доставку сегментів даних у потрібному порядку;

- Виконує перевірку цілісності переданих даних за допомогою контрольної суми;

– надсилає позитивні підтвердження, якщо дані отримані успішно. Використовуючи виборчі підтвердження, також можна надсилати негативні підтвердження для даних, які не були отримані;

– пропонує кращий транспорт для програм, яким потрібна надійна передача даних із встановленням сеансу зв'язку, наприклад, для баз даних «клієнт-сервер» та програм електронної пошти.

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

Щоб два вузли TCP могли обмінюватися даними, потрібно спочатку встановити сеанс зв'язку друг з одним. Сеанс TCP ініціалізується за допомогою процесу, званого триетапним встановленням зв'язку, яким синхронізуються номери послідовності і передається інформація, що керує, необхідна для встановлення віртуального з'єднання між вузлами. Після завершення цього процесу встановлення зв'язку починається пересилання та підтвердження пакетів у послідовному порядку між цими вузлами. Аналогічний процес використовується TCP перед припиненням з'єднання для того, щоб переконатися, що обидва вузли закінчили передачу та прийом даних (рисунок 3.2).


Рисунок 3.2 – Формат заголовка сегмента TCP

Поля порт джерела та порт одержувача займають по 2 байти та ідентифікують процес-відправник процес-одержувач. Поля порядковий номер та номер підтвердження (довжини по 4 байти) нумерують кожен надісланий або отриманий байт даних. Реалізуються як цілі числа без знака, що скидаються, коли досягають максимального значення. Кожна сторона веде свою порядкову нумерацію. Поле довжина заголовка займає 4 біти і є довжиною заголовка TCP-сегмента, виміряну в 32-бітових словах. Довжина заголовка не фіксована і може змінюватись в залежності від значень, які встановлюються в полі параметри. Поле резерву займає 6 біт. Поле прапори займає 6 біт і містить шість 1-бітових прапорів:

– прапор URG (Urgent Pointer – покажчик точності) встановлюється в 1 у разі використання поля покажчик на термінові дані;

– прапорець ACK (Acknowledgment – ​​підтвердження) встановлюється в 1 у разі, якщо в полі номер підтвердження містить дані. Інакше це поле ігнорується;



- прапор PSH (Push - виштовхування) означає, що приймаючий стек TCP повинен негайно інформувати додаток про дані, що надійшли, а не чекати поки буфер заповниться;

– прапор RST (Reset – скидання) використовується для скасування з'єднання: через помилку програми, відмови від невірного сегмента, спробу створити з'єднання за відсутності затребуваного сервісу;

– прапор SYN (Synchronize – синхронізація) встановлюється під час ініціювання з'єднання та синхронізації порядкового номера;

– прапор FIN (Finished – завершення) використовується для розриву з'єднання. Він зазначає, що відправник закінчив передачу даних.

Поле розмір вікна (довжина 2 байта) містить кількість байт, яка може бути надіслана після байта, отримання якого вже підтверджено. Поле контрольна сума (довжина 2 байти) служить підвищення надійності. Воно містить контрольну суму заголовка, даних та псевдозаголовка. При виконанні обчислень поле контрольна сума встановлюється рівним нулю, а поле даних доповнюється нульовим байтом, якщо його довжина є непарним числом. Алгоритм обчислення контрольної суми просто складає всі 16-розрядні слова у додатковому коді, а потім обчислює додаток для всієї суми.

Протокол UDP, будучи дейтаграмним протоколом, реалізує сервіс наскільки можна, тобто гарантує доставку своїх повідомлень, отже, жодним чином компенсує ненадійність дейтаграммного протоколу IP. Одиниця даних протоколу UDP називається UDP-пакетом або дейтаграмою користувача. Кожна дейтаграма переносить окреме повідомлення користувача. Це призводить до обмеження: довжина дейтаграми UDP не може перевищувати довжини поля даних протоколу IP, що, у свою чергу, обмежено розміром кадру технології нижнього рівня. Тому якщо UDP-буфер переповнюється, дані програми відкидаються. Заголовок UDP-пакету, що складається з чотирьох 2-байтових полів, містить поля порт джерела, порт одержувача, довжина UDP та контрольна сума (рисунок 3.3).

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

Рисунок 3.3 – Формат заголовка UDP

Основна література: 2

Додаткова література: 7

Контрольні питання:

1. Яким протоколом у OSI є TCP/IP?

2. Навіщо призначена архітектура протоколів TCP/IP?

3. Які рівні має стек TCP/IP?

4. Які функції виконує протокол керування передачею TCP?

5. Які відмінності існують між протоколами TCP та UDP?

СтекTCP/ IP.

Стек TCP/IP – це набір ієрархічно упорядкованих мережевих протоколів. Назву стек отримав за двома найважливішими протоколами – TCP (Transmission Control Protocol) та IP (Internet Protocol). Крім них, у стек входять ще кілька десятків різних протоколів. В даний час протоколи TCP/IP є основними для Інтернету, а також для більшості корпоративних та локальних мереж.

В операційній системі Microsoft Windows Server 2003 стек TCP/IP обраний як основний, хоча підтримуються інші протоколи (наприклад, стек IPX/SPX, протокол NetBIOS).

Стек протоколів TCP/IP має дві важливі властивості:

    платформонезалежністю, тобто можлива його реалізація на різних операційних системах і процесорах;

    відкритістю, т. е. стандарти, якими будується стек TCP/IP, доступні будь-кому.

Історія створенняTCP/ IP.

У 1967 році Агентство з перспективних дослідницьких проектів міністерства оборони США (ARPA – Advanced Research Projects Agency) ініціювало розробку комп'ютерної мережі, яка мала зв'язати ряд університетів та науково-дослідних центрів, які виконували замовлення Агентства. Проект отримав назву ARPANET. До 1972 року мережа з'єднувала 30 вузлів.

В рамках проекту ARPANET було розроблено та в 1980–1981 роках опубліковано основні протоколи стеку TCP/IP – IP, TCP та UDP. Важливим чинником поширення TCP/IP стала реалізація цього стека операційній системі UNIX 4.2 BSD (1983).

До кінця 80-х років мережа ARPANET, що значно розширилася, стала називатися Інтернет (Interconnected networks - пов'язані мережі) і об'єднувала університети та наукові центри США, Канади та Європи.

У 1992 році з'явився новий сервіс Інтернет - WWW (World Wide Web - всесвітня павутина), заснований на протоколі HTTP. Багато в чому завдяки WWW Інтернет, а з ним і протоколи TCP/IP, отримав у 90-ті роки бурхливий розвиток.

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

МодельOSI.

Модель взаємодії відкритих систем (OSI – Open Systems Interconnection) була розроблена Міжнародною організацією зі стандартизації (ISO – International Organization for Standardization) для одноманітного підходу до побудови та об'єднання мереж. Розробка моделі OSI почалася 1977 року і закінчилася 1984 року твердженням стандарту. З того часу модель є еталонною для розробки, опису та порівняння різних стеків протоколів.

Розглянемо коротко функції кожного рівня.


Модель OSI включає сім рівнів: фізичний, канальний, мережевий, транспортний, сеансовий, подання та прикладний.

    Фізичний рівень (physical layer) визначає принципи передачі сигналів, швидкість передачі, специфікації каналів зв'язку. Рівень реалізується апаратними засобами (мережевий адаптер, порт концентратора, кабель мережі).

    Канальний рівень (data link layer) вирішує дві основні завдання – перевіряє доступність середовища передачі (середовище передачі найчастіше виявляється розділена між кількома мережевими вузлами), а також виявляє та виправляє помилки, що виникають у процесі передачі. Реалізація рівня є програмно-апаратною (наприклад, мережевий адаптер та його драйвер).

    Мережевий рівень (network layer) забезпечує об'єднання мереж, що працюють за різними протоколами канального та фізичного рівнів, до складової мережі. При цьому кожна з мереж, що входять до єдиної мережі, називається підмережею(Subnet). На мережному рівні доводиться вирішувати два основні завдання – маршрутизації(routing, вибір оптимального шляху передачі повідомлення) та адресації(addressing, кожен вузол у складовій мережі повинен мати унікальне ім'я). Зазвичай функції мережного рівня реалізує спеціальний пристрій маршрутизатор(router) та його програмне забезпечення.

    Транспортний рівень (transport layer) вирішує завдання надійної передачі повідомлень у складовій мережі за допомогою підтвердження доставки та повторного відправлення пакетів. Цей рівень та всі наступні реалізуються програмно.

    Сеансовий рівень (session layer) дозволяє запам'ятовувати інформацію про поточний стан сеансу зв'язку та у разі розриву з'єднання відновлювати сеанс із цього стану.

    Рівень подання (presentation layer) забезпечує перетворення інформації, що передається з одного кодування в інше (наприклад, з ASCII в EBCDIC).

    Прикладний рівень (application layer) реалізує інтерфейс між іншими рівнями моделі та додатками користувача.

СтруктураTCP/ IP. В основі структури TCP/IP лежить не модель OSI, а власна модель, яка називається DARPA (Defense ARPA – нова назва Агентства з перспективних досліджень) або DoD (Department of Defense – Міністерство оборони США). У цій моделі всього чотири рівні. Відповідність моделі OSI моделі DARPA, а також основним протоколам стека TCP/IP показано на рис. 2.2.

Слід зазначити, що нижній рівень моделі DARPA – рівень мережевих інтерфейсів – не виконує функції канального і фізичного рівнів, а лише забезпечує зв'язок (інтерфейс) верхніх рівнів DARPA з технологіями мереж, що входять до складової мережі (наприклад, Ethernet, FDDI, ATM ).

Усі протоколи, що входять у стек TCP/IP, стандартизовані у документах RFC.

ДокументиRFC.

Затверджені офіційні стандарти Інтернету та TCP/IP публікуються у вигляді документів RFC (Request for Comments – робоча пропозиція). Стандарти розробляються всією спільнотою ISOC (Internet Society – Спільнота Інтернет, міжнародна громадська організація). Будь-який член ISOC може подати на розгляд документ для його публікації в RFC. Далі документ розглядається технічними експертами, групами розробників та редактором RFC і проходить відповідно до RFC 2026 наступні етапи, які називаються рівнями готовності (maturity levels):

    чернетка(Internet Draft) – на цьому етапі з документом знайомляться експерти, вносяться доповнення та зміни;

    запропонований стандарт(Proposed Standard) – документу надається номер RFC, експерти підтвердили життєздатність запропонованих рішень, документ вважається перспективним, бажано, щоб він був випробуваний на практиці;

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

    стандарт Інтернету(Internet Standard) – найвищий етап затвердження стандарту, специфікації документа набули широкого поширення та добре зарекомендували себе на практиці. Список стандартів Інтернету наведено у RFC 3700. З тисяч RFC лише кілька десятків є документами у статусі «стандарт Інтернету».

Крім стандартів документами RFC можуть бути також опис нових мережевих концепцій та ідей, керівництва, результати експериментальних досліджень, представлених для інформації і т. д. Таким документам RFC може бути присвоєний один з наступних статусів:

    експериментальний(Experimental) – документ, що містить відомості про наукові дослідження та розробки, які можуть зацікавити членів ISOC;

    інформаційний(Informational) – документ, опублікований для надання інформації та не потребує схвалення спільноти ISOC;

    найкращий сучасний досвід(Best Current Practice) – документ, призначений передачі досвіду конкретних розробок, наприклад реалізацій протоколів.

Статус вказується у заголовку документа RFC після слова Category (Категорія). Для документів у статусі стандартів (Proposed Standard, Draft Standard, Internet Standard) вказується назва Standards Track, оскільки рівень готовності може змінюватися.

Номери RFC надаються послідовно і ніколи не видаються повторно. Початковий варіант RFC ніколи не оновлюється. Оновлена ​​версія опублікована під новим номером. Застарілий та замінений документ RFC набуває статусу історичний(Historic).

Усі існуючі на сьогодні документи RFC можна переглянути, наприклад, на сайті www.rfc-editor.org . У серпні 2007 року їх налічувалося понад 5000. Документи RFC, згадані у цьому курсі, наведено у Додатку I.

Огляд основних протоколів.

Протокол IP (Internet Protocol) – це основний протокол мережного рівня, що відповідає за адресацію у складових мережах та передачу пакета між мережами. Протокол IP є дейтаграмнимпротоколом, т. е. не гарантує доставку пакетів до вузла призначення. Забезпеченням гарантій займається протокол транспортного рівня TCP.

Протоколи RIP (Routing Information Protocolпротокол маршрутної інформації ) таOSPF (Open Shortest Path First – « першими відкриваються найкоротші маршрути» ) - Протоколи маршрутизації в IP-мережах.

Протокол ICMP (Internet Control Message Protocolпротокол керуючих повідомлень у складових мережах) призначений для обміну інформацією про помилки між маршрутизаторами мережі та вузлом-джерелом пакета. За допомогою спеціальних пакетів повідомляє про неможливість доставки пакета, про тривалість складання пакету з фрагментів, про аномальні величини параметрів, про зміну маршруту пересилання та типу обслуговування, про стан системи тощо.

Протокол ARP (Address Resolution Protocol – протокол перетворення адрес) перетворює IP-адреси на апаратні адреси локальних мереж. Зворотне перетворення здійснюється за допомогою протоколу RAPR (Reverse ARP).

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

UDP (User Datagram Protocol - Протокол дейтаграм користувача) забезпечує передачу даних дейтаграмним способом.

HTTP (HyperText Transfer Protocol – протокол передачі гіпертексту) – протокол доставки web-документів, основний протокол служби WWW.

FTP (File Transfer Protocol – протокол передачі файлів) – протокол для пересилання інформації, що зберігається у файлах.

POP 3 (Post Office Protocol version 3 – протокол поштового офісу) та SMTP (Simple Mail Transfer Protocol – простий протокол пересилання пошти) – протоколи для доставки вхідної електронної пошти (POP3) та надсилання вихідної (SMTP).

Telnet – протокол емуляції терміналу 1 , що дозволяє користувачеві підключатися до інших віддалених станцій і працювати з ними зі своєї машини, якби вона була їх віддаленим терміналом.

SNMP (Simple Network Management Protocol - Простий протокол управління мережею) призначений для діагностики працездатності різних пристроїв мережі.

TCP/IP представлено цілим сімейством протоколів, серед яких є протоколи UDP і TCP. У цьому розділі описано стек протоколів TCP/IP, а також протоколи UDP та TCP.

Протокол TCP забезпечує прозорий обмін даними між кінцевими системами, використовуючи нижчі служби мережевого рівня (Network layer) для переміщення пакетів між двома системами, між якими встановлено зв'язок. TCP є прикладом протоколу транспортного рівня (Transport layer). IP - протоколом мережного рівня.

Так само як і в еталонній моделі OSI (див. малюнок), TCP/IP розбиває по групах всі протоколи, що працюють у мережі, відповідно до завдань, що вони виконують, і відносить їх до відповідного рівня. Кожен рівень відноситься до різних аспектів передачі даних. Ідеологічно зручно уявити TCP/IP як стек протоколів.

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

Функції UDP

Протокол UDP є розширенням раннього набору протоколів IP.

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

Для відповідності потреб трафіку такого типу, творці TCP/IP додали протокол UDP до стеку протоколів. Як основна служба адресації та пересилання пакетів на мережному рівні виступав протокол IP. Протоколи TCP і UDP розташовуються над IP, і обидва використовують сервіси протоколу IP.

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

Сьогодні стек TCP/IP широко використовується як у глобальних, так і локальних мережах. Цей стек має ієрархічну структуру, в якій визначено 4 рівні (табл. 1).

Таб. 1. Ієрархічна структура стека TCP/IP

Прикладний рівень стека TCP/IP відповідає трьом верхнім рівням моделі OSI: прикладному, уявленню та сеансовому. Він об'єднує сервіси, що надаються системою користувачам додатків. За довгі роки застосування в мережах різних країн та організацій стек TCP/IP накопичив велику кількість протоколів та служб прикладного рівня. До них відносяться такі поширені протоколи, як протокол передачі файлів (File Transfer Protocol, FTP), протокол емуляції терміналу telnet, простий протокол передачі пошти (Simple Mail Transfer Protocol, SMTP), протокол передачі гіпертексту (Hypertext Transfer Protocol, HTTP) та багато інших . Протоколи прикладного рівня розгортаються на хостах.

Транспортний рівень стека TCP/IP може надавати вищому рівню два типи сервісу:

  • гарантовану доставку забезпечує протокол управління передачею (Transmission Control Protocol, TCP);
  • залишку по можливості, або з максимальними зусиллями, забезпечує протокол дейтаграм користувача (User Datagram Protocol, UDP).

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

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

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

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

Основним протоколом мережного рівня є міжмережевий протокол (Internet Protocol, IP). У його завдання входить просування пакета між мережами - від одного маршрутизатора до іншого доти, доки пакет не потрапить у мережу призначення. На відміну від протоколів прикладного і транспортного рівнів, протокол IP розгортається як на хостах, а й у всіх маршрутизаторах (шлюзах). Протокол IP – це дейтаграмний протокол, який працює без встановлення з'єднань за принципом доставки з максимальними зусиллями. Такий тип мережевого сервісу називають також ненадійним.

До мережного рівня TCP/IP часто відносять протоколи, що виконують допоміжні функції щодо IP. Це, насамперед, протоколи маршрутизації RIP і OSPF, призначені вивчення топології мережі, визначення маршрутів і складання таблиць маршрутизації, виходячи з яких протокол IP переміщає пакети у потрібному напрямі. З цієї ж причини до мережного рівня можуть бути віднесені протокол міжмережевих керуючих повідомлень (ICMP), призначений для передачі маршрутизатором джерелу відомостей про помилки, що виникли при передачі пакета, і деякі інші протоколи.

Ідеологічною відмінністю архітектури стека TCP/IP від ​​багаторівневої архітектури інших стеків є інтерпретація функцій найнижчого рівня - рівня мережевих інтерфейсів.

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

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

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

  • упаковка (інкапсуляція) IP-пакету в одиницю даних проміжної мережі;
  • перетворення мережевих адрес на адреси технології даної проміжної мережі.

Такий гнучкий підхід спрощує вирішення проблеми розширення набору технологій, що підтримуються. При появі нової популярної технології вона швидко включається в стек TCP/IP шляхом розробки відповідного стандарту, що визначає метод інкапсуляції IP-пакетів у її кадри (наприклад, специфікація RFC 1577, що визначає роботу протоколу IP через мережі ATM, з'явилася в 1994 незабаром після прийняття основних стандартів ATM). Так як для кожної нової технології розробляються власні інтерфейсні засоби, функції цього рівня не можна визначити раз і назавжди, і саме тому нижній рівень стека TCP/IP не регламентується.
Кожен комунікаційний протокол оперує деякою одиницею даних, що передаються. Назви цих одиниць іноді закріплюються стандартом, а найчастіше просто визначаються традицією. У стеку TCP/IP багато років існування утворилася усталена термінологія у цій галузі (рис. 1).

Мал. 1. Назви протокольних одиниць даних у TCP/IP

Потоком даних, інформаційним потоком, або просто потоком називають дані, що надходять від додатків на вхід протоколів транспортного рівня - TCP і UDP.

Протокол TCP «нарізає» із потоку даних сегменти.

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

У стеку TCP/IP одиниці даних будь-яких технологій, в які упаковуються IP-пакети їх подальшої передачі через мережі складової мережі, прийнято називати також кадрами, чи фреймам. При цьому немає значення, яка назва використовується для цієї одиниці даних у технології складової мережі. Для TCP/IP кадром є і кадр Ethernet, і комірка ATM, і пакет Х.25 у тих випадках, коли вони виступають як контейнер, в якому IP-пакет переноситься через складову мережу.

Протоколи TCP/IP - основа роботи глобальної мережі Інтернет. Якщо бути точнішим, то TCP/IP це перелік чи стек протоколів, а, по суті, набір правил якими відбувається обмін інформації (реалізується модель комутації пакетів).

У статті розберемо принципи роботи стека протоколів TCP/IP і спробуємо зрозуміти принципи їх роботи.

Примітка: Найчастіше обревіатурою TCP/IP називають всю мережу, що працює на основі цих двох протоколів, TCP та IP.

У модель такої мережі крім основних протоколів TCP (транспортний рівень) та IP (протокол мережного рівня)входять протоколи прикладного та мережевого рівнів (дивися фото). Але повернемося безпосередньо до протоколів TCP та IP.

Що таке протоколи TCP/IP

TCP — Transfer Control Protocol. Протокол керування передачею. Він служить для забезпечення та встановлення надійного з'єднання між двома пристроями та надійної передачі даних. При цьому протокол TCP контролює оптимальний розмір пакета даних, що передається, здійснюючи нову посилку при збої передачі.

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

Формати протоколів TCP/IP

Формат IP протоколу

Існують два формати для IP адрес IP протоколу.

Формат IPv4. Це 32-бітове двійкове число. Зручна форма запису IP-адреси (IPv4) – це запис у вигляді чотирьох груп десяткових чисел (від 0 до 255), розділених точками. Наприклад: 193.178.0.1.

Формат IPv6. Це 128-бітове двійкове число. Як правило, адреси формату IPv6 записуються у вигляді восьми груп. У кожній групі по чотири шістнадцяткові цифри розділені двокрапкою. Приклад адреси IPv6 2001:0db8:85a3:08d3:1319:8a2e:0370:7889.

Як працюють протоколи TCP/IP

Якщо зручно уявіть передачі пакетів даних у мережі, як надсилання листа поштою.

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

Протокол IP

Кожен комп'ютер у мережі має свою унікальну адресу. У глобальній мережі Інтернет комп'ютер має цю адресу, яка називається IP-адреса (Internet Protocol Address).

За аналогією з поштою, IP-адреса це номер будинку. Але номерів будинку для отримання листа недостатньо.

Інформація, що передається по мережі, передається не комп'ютером, як таким, а програмами, встановленими на нього. Такими програмами є сервер пошти, веб-сервер, FTP тощо. Для ідентифікації пакета інформації, що передається, кожен додаток прикріплюється до певного порту. Наприклад: веб-сервер слухає порт 80, FTP слухає порт 21, поштовий SMTP сервер слухає порт 25, сервер POP3 читає поштову скриньку на порті 110.

Таким чином, в адресному пакеті протоколу TCP/IP, в адресатах з'являється ще один рядок: порт. Аналог з поштою – порт це номер квартири відправника та адресата.

Приклад:

Source address (Адреса відправника):

IP: 82.146.47.66

Destination address (Адресодержувача):

IP: 195.34.31.236

Варто запам'ятати: IP адреса + номер порту - називається "сокет". У прикладі вище: із сокету 82.146.47.66:2049 пакет вирушає на сокет 195.34.31.236: 53.

Протокол TCP

Протокол TCP це протокол наступного після протоколу IP рівня. Призначений цей протокол контролю передачі інформації та її цілісності.

Наприклад, інформація, що передається, розбивається на окремі пакети. Пакети доставлять одержувачу незалежно. У процесі передачі один із пакетів не передався. Протокол TCP забезпечує повторні передачі до отримання цього пакета одержувачем.

Транспортний протокол TCP приховує від протоколів найвищого рівня (фізичного, канального, мережевого IP усі проблеми та деталі передачі даних).