- Сетевая модель OSI¶
- Уровни модели OSI¶
- 7. Прикладной уровень (application layer)¶
- 6. Уровень представления (presentation layer)¶
- 5. Сеансовый уровень (session layer)¶
- 4. Транспортный уровень (transport layer)¶
- 3. Сетевой уровень (network layer)¶
- 2. Канальный уровень (data link layer)¶
- 1. Физический уровень (physical layer)¶
- Инкапсуляция и декапсуляция¶
- Работа сетевых устройств¶
- Повторитель. Концентратор.¶
- Сетевой мост. Коммутатор.¶
- Маршрутизатор.¶
- Сетевая модель TCP/IP¶
Сетевая модель OSI¶
The Open Systems Interconnection model — определяет уровни (выполняющие определённые функции обмена данными), посредством которых различные сетевые устройства могут взаимодействовать друг с другом.
На каждом уровне модели есть собственный набор сетевых протоколов (стандартов передачи данных), с помощью которых устройства в сети обмениваются данными.
Уровни модели OSI¶
6. Уровень представления (presentation layer) —
Трансляция данных между сетевым сервисом и приложением
5. Сеансовый уровень (session layer) —
Организация сеанса связи между устройствами
4. Транспортный уровень (transport layer) —
Обеспечение надёжности передачи данных от отправителя к получателю
3. Сетевой уровень (network layer) —
Определение маршрута и логическая адресация
1. Физический уровень (physical layer) —
Работа со средой передачи, сигналами и двоичными данными
7. Прикладной уровень (application layer)¶
Самый верхний уровень модели, предоставляет набор интерфейсов для взаимодействия пользовательских процессов с сетью (например: просмотр веб-страниц (HTTP), передача и приём почты (SMTP, POP3), приём и получение файлов (FTP, TFTP), удаленный доступ (Telnet) и т.д.).
Единицу информации, которой оперируют три верхних уровня модели OSI, принято называть сообщение (англ. message).
Пример с браузером (инкапсуляция)
После того, как адресс сайта был введен — браузер должен отправить запрос на сервер (на котором хранится ожидаемая веб-страничка). На данном этапе введённый адрес сайта является данными, которые должны передаться на сервер в виде запроса.
6. Уровень представления (presentation layer)¶
Преобразует данные передаваемые прикладными процессами в нужную форму (например: преобразование изображений в бинарную структуру для последующей отправки, кодирование символов, конвертация структур данных, сжатие данных, шифрование/дешифрование и т.д.).
На этом уровне компьютер преобразует строку введенного текста (адреса) в формат удобный для передачи далее на нижний уровень.
5. Сеансовый уровень (session layer)¶
Управление сеансами связи, то есть непрерывный обмен информацией в форме множественных передач вперед и назад между двумя узлами (например, на этом уровне устанавливается, каким кодеком будет кодироваться сигнал, причем этот кодек должен присутствовать на обеих машинах).
Занимается установкой, поддержанием и прерыванием сеансов, фиксирует, какая из сторон является активной в данный момент, осуществляет синхронизацию обмена информацией между пользователями, что также позволяет устанавливать контрольные точки (что при сбое позвоялет откатываться в одну из них).
Данные (уже не текст) поступают на сеансовый уровень, (~ устанавливается дескриптор текущего сеанса, например для возможности востановления сеанса), но в данном случае — нет необходимости использовать протоколы (этого уровня), и поэтому данные передаются далее.
4. Транспортный уровень (transport layer)¶
Контролирует передачу сегментов данных между точками в сети, включая сегментацию, подтверждение и мультиплексирование.
UDP протокол (User Datagram Protocol) передает данные без установления соединения, не подтверждает доставку данных и не делает повторы.
TCP протокол (Transmission Control Protocol), который перед передачей устанавливает соединение, подтверждает доставку данных, при необходимости делает повтор, гарантирует целостность и правильную последовательность загружаемых данных.
SCTP (Stream Control Transmission Protocol)
Транспортный уровень получает данные и определяет, что дальше они должны быть переданы используя протокол TCP.
Перед передачей транспортный уровень разбивает данные на кусочки данных и добавляет к каждому кусочку заголовок, в котором содержится информация о логических портах компьютеров (с какого данные были посланы (например 1223) и для какого предназначаются (в данном случае 80)). На транспортном уровне эти кусочки данных с заголовком называются сегментами. Сегменты передаются дальше вниз к сетевому уровню.
3. Сетевой уровень (network layer)¶
Определяет путь, по которому данные будут переданы (Логическая адресация). Осуществляет протокол IP (Internet Protocol; IP-адрес – это логический адрес в сети).
На данном уровне решается проблема маршрутизации (выбора оптимального пути передачи данных), трансляцией логических адресов в физические, отслеживанием неполадок в сети.
В рамках сетевого надежность доставки сообщений не гарантируется; сетевой уровень может реализовывать соответствующий функционал, но не обязан это делать.
Сетевой уровень, получая каждый сегмент, разделяет его на еще более маленькие части и к каждой части добавляет свой заголовок. В заголовке сетевого уровня указываются логические сетевые адреса (IP-адреса) отправителя (Ваш компьютер) и получателя (Сервер).
Эти кусочки данных на сетевом уровне называются пакетами, которые в свою очередь передаются на канальный уровень.
2. Канальный уровень (data link layer)¶
Канальный уровень предназначен для передачи данных между двумя узлами, находящихся в одной локальной сети. Фреймы канального уровня не пересекают границ локальной сети, что позволяет данному уровню сосредоточиться на локальной доставке (фактически межсетевой доставкой занимаются более высокие уровни).
Обеспечивает взаимодействие сетей на физическом уровне (Физическая адресация). Заголовок фрейма формируется из аппаратных адресов отправителя и получателя.
LLC – управление логическим каналом (Logical Link Control), создан для взаимодействия с верхним уровнем.
MAC – управление доступом к передающей среде (Media Access Control), создан для взаимодействия с нижним уровнем. Является физическим адресом.
Пример подуровней канального уровня
В компьютере (ноутбуке, коммуникаторе) имеется сетевая карта (или какой-то другой адаптер). Для взаимодействия с ней (с картой) существует драйвер. Драйвер – это некоторая программа — верхний подуровень канального уровня, через которую как раз и можно связаться с нижними уровнями, а точнее с микропроцессором (железо) – нижний подуровень канального уровня.|
На канальном уровне пакеты разделяются на еще более маленькие кусочки данных, и к ним помимо опять добавляемого заголовка, только уже канального уровня, добавляется еще и трейлер. На этом уровне в заголовках содержатся физические адреса устройств – передающего и для кого они предназначаются, а в трейлере находится вычисленная контрольная сумма, некий код (информация), который используется для определения целостности данных.
Физические адреса устройств – это MAC-адреса.
Теперь сконструированные фреймы передаются на физический уровень.
1. Физический уровень (physical layer)¶
Самый нижний уровень, непосредственно осуществляющий передачу потока данных (Bluetooth, IRDA (Инфракрасная связь), медные провода (витая пара, телефонная линия), Wi-Fi, и т.д.). Работа со средой передачи, сигналами и двоичными данными.
На физический уровень кадры передаются уже в виде сигналов битов и следуют через другие сетевые устройства в пункт назначения.
Инкапсуляция и декапсуляция¶
Инкапсуляция (англ. encapsulation) – метод проектирования протоколов в которой логически независимые функции сети не зависят от реализации нижележащих механизмов с помощью включения этих механизмов в более высокоуровневые объекты.
Физический уровень ответственен за физическую передачу данных. IP предоставляет глобальный способ адресации устройств. TCP добавляет возможность выбора приложения (порт).
Во время инкапсуляции каждый уровень собирает свой собственный PDU (Protocol Data Unit), добавляя некоторый заголовок с контрольной информацией к PDU с более высокого уровня.
Весь процесс преобразования данных (с верхнего уровня) в сигналы (на нижний уровень) называется инкапсуляцией ( Пример с браузером (инкапсуляция) ).
Процесс преобразования сигналов из провода в данные называется процессом декапсуляции.
Сетевая карта принимает биты (на физическом уровне) и преобразует их в кадры (для канального уровня).
Канальный уровень в обратной последовательности должен преобразовать кадры в пакеты (для сетевого уровня), только перед преобразованием уровень сначала смотрит на МАС-адрес (физический адрес) получателя, он должен совпадать с MAC-адресом сетевой карты, иначе кадр будет уничтожен
Затем канальный уровень (в случае совпадения MAC-адреса) высчитывает сумму полученных данных и сравнивает полученное значение со значением трейлера. Если они совпадают, далее кадр преобразуется в пакет. Если проверочный код целостности данных рознится – кадр незамедлительно уничтожается.
На сетевом уровне происходит проверка логического адреса (IP-адреса), в случае успешной проверки пакет преобразуется в сегмент, попадая на транспортный уровень.
На транспортном уровне проверяется информация из заголовка, что это за сегмент, какой используется протокол, для какого логического порта предназначается и т.п. Если использовался протокол TCP — тогда назад (откуда пришлел запрос) посылается уведомление о прибытии сегмента. С транспортного уровня данные передаются на указанный в сегменте порт.
На верхних уровнях запрос (например, введенный адрес сайта) обрабатывается веб-сервером (проверяется, доступна-ли запрашиваемая веб-страничка).
Работа сетевых устройств¶
Передача данных между двумя соединенными компьютерами:
Приложение на компьютере PC1 отправляет данные другому приложению находящемуся на другом компьютере PC2.
Начиная с верхнего уровня (уровень приложений) данные направляются к сетевой карте на канальный уровень. На нём сетевая карта преобразует фреймы в биты и отправляет в физическую среду (например, кабель витую пару).
На другой стороне кабеля поступает сигнал, и сетевая карта компьютера PC2 принимает эти сигналы, распознавая их в биты и формируя из них фреймы.
Данные (содержащиеся в фреймах) декапсулируются к верхнему уровню, и когда доходят до уровня приложений, соответствующая программа на компьютере PC2 получает их.
Повторитель. Концентратор.¶
Репитер и концентратор устройства первого (физического) уровня. Они принимают сигнал, распознают его, и пересылают сигнал далее во все активные порты.
Сетевой мост. Коммутатор.¶
Оба устройства уже второго уровня, поэтому помимо распознавания сигнала (подобно концентраторам на первом уровне) они декапсулируют его (сигнал) в фреймы.
На втором уровне сравнивается контрольная сумма трейлера (прицепа) фрейма. Затем из заголовка фрейма узнаётся MAC-адрес получателя, и проверяется его наличие в коммутируемой таблице. Если адрес присутствует, то фрейм обратно инкапсулируется в биты и отправляется (уже в виде сигнала) на соответствующий порт. Если адрес не найден, происходит процесс поиска этого адреса в подключенных сетях.
Маршрутизатор.¶
Маршрутизатор (или роутер) – это устройство третьего уровня.
На порт поступает сигнал, и роутер распознаёт его. Распознанный сигнал (биты) формируют фреймы (кадры). Сверяется контрольная сумма в трейлере и MAC-адрес получателя. Если все проверки прошли успешно, фреймы формируют пакет.
На третьем уровне маршрутизатор исследует заголовок пакета. В нем присутствует IP адрес пункта назначения (получателя). На основе IP-адреса и собственной таблицы маршрутизации роутер выбирает наилучший путь следования пакеты к получателю.
Выбрав путь, роутер инкапсулирует пакет в фреймы, а затем в биты и отправляет их в виде сигналов на соответствующий порт (выбранный в таблице маршрутизации).
Сетевая модель TCP/IP¶
От сетевой модели OSI, модель DOD (Department of Defense — Министерство обороны США) (или TCP/IP) отличается количеством уровней.