Стек OSI/ISO. Протоколи IP\TCP\UDP. Часто використовувані порти.
Семирівнева модель OSI є теоретичною. Реальні мережеві протоколи змушені відхилятися від неї, забезпечуючи можливості, які не було передбачено. Тому прив'язка якихось із них до рівнів OSI є дещо умовною. Один з основних стеків протоколів TCP/IP, було розроблено незалежно від моделі OSI ще до її ухвалення.
Основна недоробка OSI — непродуманий транспортний рівень. На ньому OSI дозволяє обмін даними між застосунками (вводячи поняття порту — ідентифікатора програми), однак можливість обміну простими датаграмами в OSI не передбачена — транспортний рівень повинен утворювати з'єднання, забезпечувати доставку, керувати потоком тощо. Реальні ж протоколи таку можливість реалізують.

Ключова відмінність між моделями TCP/IP та OSI
- OSI має 7 рівнів, тоді як TCP/IP має 4 рівні
- Модель OSI - це логічна та концептуальна модель, яка визначає мережеву комунікацію, що використовується системами, відкритими для взаємозв'язку та комунікації з іншими системами. З іншого боку, TCP/IP допомагає визначити, як конкретний комп'ютер повинен бути підключений до Інтернету і як можна передавати дані між ними
- Розмір заголовка OSI становить 5 байт, тоді як розмір заголовка TCP/IP - 20 байт
- OSI означає "взаємодія відкритих систем", тоді як TCP/IP означає "протокол управління передачею"
- OSI дотримується вертикального підходу, тоді як TCP/IP дотримується горизонтального підходу
- Модель OSI, транспортний рівень, орієнтована лише на з'єднання, тоді як модель TCP/IP орієнтована як на з'єднання, так і на відсутність з'єднань
- Модель OSI розроблена ISO (Міжнародною організацією зі стандартизації), в той час як модель TCP розроблена ARPANET ( Мережею Агентства передових дослідницьких проектів)
- Модель OSI допомагає стандартизувати маршрутизатори, комутатори, материнські плати та інше обладнання, тоді як TCP/IP допомагає встановити з'єднання між різними типами комп'ютерів
Рівні стеку TCP/IP
Стек протоколів TCP/IP (модель взаємодії відкритих систем DoD (Department of Defence) міністерства оборони США) ділиться на 4 рівні

- прикладний (applications)
- транспортний (transport)
- міжмережевий (internet)
- рівень доступу до середовища передачі (англ. network access layer, link layer)
Терміни, що використовуються для позначення блоку переданих даних, різні при використанні різних протоколів транспортного рівня: TCP і UDP.
На прикладному рівні це потік (TCP) і повідомлення (UDP); на транспортному — сегмент і пакет. Як і в моделі OSI, дані більш верхніх рівнів інкапсулюють у блоки даних більше нижніх рівнів, наприклад, сегмент (TCP) або пакет (UDP) зі своїми даними і службовими заголовками вкладено у поле «Дані» дейтаграми.

Прикладний рівень (application)
Протоколи прикладного рівня TCP/IP визначають процедури організації взаємодії прикладних процесів (програм) різних мережевих комп'ютерів і форми подання інформації за такої взаємодії. За ознаками взаємодії прикладних процесів виділяють два типи прикладного програмного забезпечення: програма-клієнт та програма-сервер. Протоколи прикладного рівня зорієнтовано на конкретні прикладні завдання. Серед традиційних послуг, котрі забезпечують протоколи прикладного рівня з сімейства TCP/IP.
Деякі з популярних протоколів:
- HTTP (Hypertext Transfer Protocol) - протокол передачі гіпертексту в мережі Інтернет. Використовується для передачі веб-сторінок і мультимедійних файлів
- SMTP (Simple Mail Transfer Protocol) - протокол передачі електронної пошти. Використовується для відправки та отримання електронної пошти
- Telnet - протокол термінального доступу до віддаленого комп'ютера. Використовується для з'єднання з віддаленим комп'ютером та виконання команд на ньому
- FTP (File Transfer Protocol) - протокол передачі файлів. Використовується для передачі файлів між комп'ютерами в мережі
- DNS (Domain Name System) - протокол доменних імен. Використовується для перетворення доменного імені в IP-адресу
- SNMP (Simple Network Management Protocol) - протокол управління мережею. Використовується для моніторингу та управління мережевими пристроями
Транспортний рівень (transport)
Протоколи транспортного рівня TCP/IP-моделі надають транспортні послуги прикладним процесам. Основними протоколами транспортного рівня TCP/IP є протокол керування передавання TCP і протокол користувальницьких дейтаграм UDP. Транспортні послуги цих протоколів суттєво відрізняються. Протокол UDP доставляє дейтаграми без встановлення з'єднання. При цьому він не гарантує їхнього доставляння. Протокол TCP забезпечує надійне доставляння байтових потоків (сегментів) із попереднім встановленням транспортного дуплексного з'єднання (віртуального каналу) між модулями TCP мережевих комп'ютерів. Для розв'язання транспортних завдань протоколи TCP та UDP під час передавання даних формують і додають до даних свої заголовки обсягом 20 байт та 8 байт відповідно.
Якщо коротко:
- TCP (Transmission Control Protocol) - протокол керування передачею даних. Використовується для забезпечення надійної передачі даних в мережі
- UDP (User Datagram Protocol) - протокол передачі даних без забезпечення надійності. Використовується для передачі даних, які не потребують надійної доставки
Порти
Кожен прикладний процес взаємодіє з модулем транспортного рівня TCP або UDP через окремий порт, що дозволяє при взаємодії систем однозначно ідентифікувати прикладні процеси. Ці порти нумеруються починаючи з нуля. При передачі запиту прикладної програми клієнта до прикладної програми сервера транспортний модуль, формуючи дейтаграму чи сегмент, вказує номери портів програмних модулів прикладних протоколів сервера й клієнта. З цією метою в заголовку пакета протоколу транспортного рівня виділено два поля — «порт одержувача» і «порт відправника», обсягом по 2 байти. Номери портів TCP та UDP до прикладних протоколів сервера стандартизовані IETF. Для цього надано номери в діапазоні від 1 до 1023. Наприклад, програмний модуль TCP сервера зазвичай взаємодіє з модулем протоколу HTTP через порт з номером 80. Взаємодія модуля TCP чи UDP клієнта з будь-яким модулем прикладного протоколу відбувається через порт, якому надається вільний номер, більший за 1023.

У комп'ютерних мережах існують номери мережевих портів, які використовуються для різних програм. Діапазон цих мережевих портів - від 0 до 65535. Існує три різних типи портів, що використовуються в мережі. Ці типи мережевих портів наведено нижче:
- Загальновідомі порти
- Зареєстровані порти
- Динамічні порти
Деякі з цих номерів портів є загальновідомими портами. Ці відомі порти є зарезервованими портами від 0 до 1024. Повний список цих номерів мережевих портів наведено в RFC 1700. IANA (Internet Assigned Numbers Authority) призначає ці загальновідомі порти.
Інші мережеві порти - це зареєстровані порти від 1024 до 49151. Ці порти призначаються IANA для певних сервісів.
Остання частина портів у мережі - це динамічні порти. Динамічні порти - це порти від 49152 до 65565. Ці порти в мережі не зареєстровані в IANA.
TCP (Transmission Control Protocol) і UDP (User Datagram Protocol) використовують ці відомі порти. Для повнодуплексного двонаправленого трафіку потрібен лише один порт. Крім того, ці порти використовують SCTP (Stream Control Transmission Protocol) і DCCP (Datagram Congestion Control Protocol).

Цей дуже спрощений приклад показує, як клієнти так і сервери використовують номери портів для обміну запитами та відповідями. Клієнт створює HTTP-запит і надсилає його на сервер за добре відомим номером порту HTTP - 80. Його номер порту для цього обміну - псевдовипадково вибраний 3022. Сервер надсилає відповідь на той самий номер порту, який він зчитує із запиту.
Міжмережевий рівень (internet)
Протоколи мережевого рівня 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) тощо.
Якщо коротко:
- IP (Internet Protocol) - протокол мережевого рівня. Використовується для маршрутизації пакетів даних в мережі
- ICMP (Internet Control Message Protocol) - протокол керування повідомленнями в мережі. Використовується для передачі повідомлень про помилки в мережі
Рівень доступу до середовища передачі (Network Access Layer)
Функції:
- відображення IP-адреси в фізичні адреси мережі (MAC-адреси);
- інкапсуляція IP-дейтаграм в кадри для передачі по фізичному каналу і передачі кадрів.
На цьому рівні працює протокол ARP, який здійснює відображення адреси IP->MAC.
Якщо коротко:
- Ethernet - протокол локальної мережі. Використовується для передачі даних в локальній мережі.
Висновок
Протокол Ethernet є основним протоколом для передачі даних в локальних мережах (LAN). Він працює на рівні з'єднань мережі і використовується для встановлення комунікації між пристроями в одній локальній мережі. Протокол ARP, який також працює на цьому рівні, забезпечує відображення між IP-адресами та MAC-адресами, що дозволяє пристроям в мережі ідентифікувати одне одного.