Модель OSI
Когда ARPA-сеть только разрабатывалась, очень хотелось сделать ее как можно более умной. Но чем сложнее сеть, тем сложнее ее развивать и поддерживать. В качестве решения было предложено разделить все функции сети на логические слои.
Модель функционирования сети называется сетевая модель базовой эталонной модели взаимодействия открытых систем ISO/OSI. Кратко — модель OSI (Open Systems Interconnection).
Всего в такой модели 7 уровней. Взаимодействие уровней жестко стандартизировано и сведено к минимуму. Нижний уровень понятия не имеет о наличии более высоких уровней и об их устройстве.
Самый нижний уровень умеет просто посылать биты . Даже не передавать, а именно посылать. Он понятия не имеет дойдут они или нет. Послал и забыл.
Более высокий уровень оперирует уже группами бит — кадрами , и немного знает об физическом устройстве сети, понимает MAC-адреса и тому подобное.
Следующий уровень — пакетный. Он еще более умный и умеет оперировать IP-адресами сети. И так далее.
Зачем это все нужно? Для максимизации гибкости.
Представь, что каждый уровень — это Java-интерфейс и у него может быть несколько различных реализаций. Так и тут. На физическим уровне вы можете пересылать биты по проводу, слать по воздуху (Wi-Fi), отправлять через спутник, а все остальные уровни даже знать об этом ничего не будут. И все будет работать, как и было задумано.
Стек протоколов OSI
Более детально стек протоколов ты можешь изучить на картинке ниже:
Но если вы не системный администратор, то такая детализация протоколов вам ни к чему. Более интересным может быть изучение стека протоколов TCP (Transmission Control Protocol)/IP (Internet Protocol).
Три верхних уровня в модели OSI, то есть уровень приложения, уровень представления и уровень сеанса, отдельно не различаются в модели TCP/IP, которая имеет только прикладной уровень над транспортным уровнем:
Распределение протоколов по уровням модели OSI
TCP/IP | OSI | |
---|---|---|
Прикладной | Прикладной | HTTP, SMTP, SNMP, FTP, Telnet, SSH, SCP, SMB, NFS, RTSP, BGP |
Представления | XDR, AFP, TLS, SSL | |
Сеансовый | ISO 8327 / CCITT X.225, RPC, NetBIOS, PPTP, L2TP, ASP | |
Транспортный | Транспортный | TCP, UDP, SCTP, SPX, ATP, DCCP, GRE |
Сетевой | Сетевой | IP, ICMP, IGMP, CLNP, OSPF, RIP, IPX, DDP |
Канальный | Канальный | Ethernet, Token ring, HDLC, PPP, X.25, Frame relay, ISDN, ATM, SPB, MPLS, ARP/td> |
Физический | электрические провода, радиосвязь, волоконно-оптические провода, инфракрасное излучение |
Cтек протоколов TCP/IP
Стек протоколов TCP/IP включает в себя четыре уровня:
- Прикладной уровень (Application Layer)
- Транспортный уровень (Transport Layer)
- Межсетевой уровень (Сетевой уровень) (Internet Layer)
- Канальный уровень (Network Access Layer)
Протоколы этих уровней полностью реализуют все функциональные возможности модели OSI. На стеке протоколов TCP/IP построено все взаимодействие пользователей в IP-сетях.
Стек протоколов TCP/IP является независимым от физического оборудования благодаря чему, в частности, обеспечивается полностью прозрачное взаимодействие между проводными и беспроводными сетями.
На прикладном уровне (Application layer) работает большинство сетевых приложений.
Прикладной уровень
Для взаимодействия программ существуют высокоуровневые протоколы обмена информацией. Например, браузеры работают по протоколу HTTP, почта отправляется по протоколу SMTP, Телеграм работает по своему собственному зашифрованному протоколу.
Но приватные протоколы нам не очень интересны. Чаще всего ты будешь сталкиваться с массовыми протоколами, такими как ftp-клиент для протокола FTP (передача файлов), SSH (безопасное соединение с удаленной машиной), DNS (преобразование символьных имён в IP-адреса) и многие другие.
Почти все эти протоколы работают поверх протокола TCP, хотя некоторые для ускорения работы работают по UDP (User Datagram Protocol). Но, что важно, у этих протоколов есть порты по умолчанию. Пример:
- 20 FTP на TCP-порт 20 (для передачи данных) и 21 (для управляющих команд)
- 22 – SSH
- 23 – Telnet
- 53 – запросы DNS
- 80 – HTTP
- 443 – HTTPS
Эти порты определены Агентством по выделению имён и уникальных параметров протоколов (IANA).
Есть еще несколько популярных протоколов прикладного уровня: Echo, Finger, Gopher, HTTP, HTTPS, IMAP, IMAPS, IRC, NNTP, NTP, POP3, POPS, QOTD, RTSP, SNMP, SSH, Telnet, XDMCP.
Транспортный уровень
Протоколы транспортного уровня созданы для решения проблемы гарантированной доставки сообщений.
Сообщение (пакет данных) может быть послано и потеряно где-то в сети. В этом случае на плечи транспортного уровня ложится задача мониторинга таких ситуаций и повторной отсылки сообщения, если нужно.
Еще одна важная задача протокола транспортного уровня — это контроль за порядком прихода сообщений. Часто бывает так, что сообщения были посланы в одном порядке, а пришли в другом. И если собрать из таких кусочков изначально большое сообщение, то получится чепуха.
Чтобы такого не было, транспортный уровень или нумерует сообщения, или не отправляет новое, пока не получил подтверждение получения предыдущего. Протоколы автоматической маршрутизации, логически представленные на этом уровне (поскольку работают поверх IP), на самом деле являются частью протоколов сетевого уровня.
Протокол TCP — “гарантированный” транспортный механизм с предварительным установлением соединения, который предоставляет приложению надежный поток данных, дает уверенность в безошибочности получаемых данных, перезапрашивает данные в случае потери и устраняет дублирование данных.
TCP позволяет регулировать нагрузку на сеть, а также уменьшать время ожидания данных при передаче на большие расстояния. Более того, TCP гарантирует, что полученные данные были отправлены точно в такой же последовательности. В этом его главное отличие от UDP.
Протокол UDP — это протокол передачи датаграмм без установления соединения. Также его называют протоколом “ненадежной” передачи, в смысле невозможности удостовериться в доставке сообщения адресату, а также возможного перемешивания пакетов. В приложениях, требующих гарантированной передачи данных, используется протокол TCP.
UDP обычно используется в таких приложениях, как потоковое видео и компьютерные игры, где допускается потеря пакетов, а повторный запрос затруднен или не оправдан, либо в приложениях вида запрос-ответ (например, запросы к DNS), где создание соединения занимает больше ресурсов, чем повторная отправка.
И TCP, и UDP используют для определения протокола верхнего уровня число, называемое портом.
Лекция 1 Эталонная модель osi
Перемещение информации между компьютерами различных схем является чрезвычайно сложной задачей. В начале 1980 гг. Международная Организация по Стандартизации (ISO) признала необходимость в создании модели сети, которая могла бы помочь поставщикам создавать реализации взаимодействующих сетей. Эту потребность удовлетворяет эталонная модель «Взаимодействие Открытых Систем» (OSI), выпущенная в 1984 г.
Эталонная модель OSI быстро стала основной архитектурной моделью для передачи межкомпьютерных сообщений. Несмотря на то, что были разработаны другие архитектурные модели (в основном патентованные), большинство поставщиков сетей, когда им необходимо предоставить обучающую информацию пользователям поставляемых ими изделий, ссылаются на них как на изделия для сети, соответствующей эталонной модели OSI. И действительно, эта модель является самым лучшим средством, имеющемся в распоряжении тех, кто надеется изучить технологию сетей.
Иерархическая связь
Эталонная модель OSI делит проблему перемещения информации между компьютерами через среду сети на семь менее крупных, и следовательно, более легко разрешимых проблем. Каждая из этих семи проблем выбрана потому, что она относительно автономна, и следовательно, ее легче решить без чрезмерной опоры на внешнюю информацию.
Каждая из семи областей проблемы решалась с помощью одного из уровней модели. Большинство устройств сети реализует все семь уровней. Однако в режиме потока информации некоторые реализации сети пропускают один или более уровней. Два самых низших уровня OSI реализуются аппаратным и программным обеспечением; остальные пять высших уровней, как правило, реализуются программным обеспечением.
Справочная модель OSI описывает, каким образом информация проделывает путь через среду сети (например, провода) от одной прикладной программы (например, программы обработки крупноформатных таблиц) до другой прикладной программы, находящейся в другом компьютере. Т.к. информация, которая должна быть отослана, проходит вниз через уровни системы, по мере этого продвижения она становится все меньше похожей на человеческий язык и все больше похожей на ту информацию, которую понимают компьютеры, а именно «единицы» и «нули».
В качесте примера связи типа OSI предположим, что Система А на Рис. 1.1имеет информацию для отправки в Систему В. Прикладная программа Системы А сообщается с Уровнем 7 Системы А (верхний уровень), который сообщается с Уровнем 6 Системы А, который в свою очередь сообщается с Уровнем 5 Системы А, и т.д. до Уровня 1 Системы А. Задача Уровня 1 — отдавать (а также забирать) информацию в физическую среду сети. После того, как информация проходит через физическую среду сети и поглощается Системой В, она поднимается через слои Системы В в обратном порядке (сначала Уровень 1 , затем Уровень 2 и т.д.), пока она наконец не достигнет прикладную программу Системы В.
Рис. 1.1.Communication Between Two Systems
Хотя каждый из уровней Системы А может сообщаться со смежными уровнями этой системы, их главной задачей является сообщение с соответствующими уровнями Системы В. Т.е. главной задачей Уровня 1 Системы А является связь с Уровнем 1 Системы В; Уровень 2 Системы А сообщается с Уровнем 2 Системы В и т.д. Это необходимо потому, что каждый уровень Системы имеет свои определенные задачи, которые он должен выполнять. Чтобы выполнить эти задачи, он должен сообщаться с соответствующим уровнем в другой системе.
Уровневая модель OSI исключает прямую связь между соответствующими уровнями других систем. Следовательно, каждый уровень Системы А должен полагаться на услуги, предоставляемые ему смежными уровнями Системы А, чтобы помочь осуществить связь с соответствующим ему уровнем Системы В. Взаимоотношения между смежными уровнями отдельной системы показаны на Рис.1.2.
Рис. 1.2. Relationship Between Adjacent Layers in a Single System
Предположим, что Уровень 4 Системы А должен связаться с Уровнем 4 Системы В. Чтобы выполнить эту задачу, Уровень 4 Системы А должен воспользоваться услугами Уровня 3 Системы А. Уровень 4 называется «пользователем услуг», а Уровень 3 — «источником услуг». Услуги Уровня 3 обеспечиваются Уровню 4 в «точке доступа к услугам» (SAP), которая представляет собой просто местоположение, в котором Уровень 4 может запросить услуги Уровня 3. Как видно из рисунка, Уровень 3 может предоставлять свои услуги множеству объектов Уровня 4.