Сетевые модели и протоколы
Если ты хочешь работать сетевым инженером или разработчиком софта, то тебе 100% нужно разбираться в теме сетевых моделей. Если ты хочешь успешно сдать ЕНТ и в будущем иметь зарплату IT отрасли — ты должен понимать OSI. Но что такое OSI? И вообще тема кажется супер сложной и непонятной, но прочитав эту статью ты откроешь для себя новый мир и начнешь лучше понимать как работает Интернет.
Определение сетевой модели
Сначала разберемся с тем, что существует две основные сетевые модели. Это OSI и TCP/IP. Очень часто сравнивают именно структуры этих моделей. Но об этом немного позже.
Сетевая модель — это абстрактное представление о том, как устроена компьютерная сеть и каким образом данные могут передаваться между узлами этой сети. Она определяет структуру и различные протоколы, которые применяются для обмена данными.
Модель OSI
Давайте теперь более детально изучим структуру модели OSI(Open System Interconnection), которая описывает взаимодействие сетевых устройств и компьютерных сетей. Хотя данная модель считается основной и теоретической, на практике она не используется.
Говоря простыми словами, процесс передачи информации разделили на 7 уровней. От простого к сложному. Где каждый из уровней отвечает за выполнение определенного списка функций. Давайте разберем каждый отдельно.
На первом уровне живут добрые гномы, которые передают единицы и нули по проводам и радиоволнам. В роли добрых гномов здесь выступает например такое сетевое устройство как: концентратор. Это устройство способно передавать только физические сигналы без анализа их содержания, просто направляя трафик дальше. На уровне OSI это называется физическим уровнем, где происходит передача физических сигналов через кабели и преобразование сигналов. Ethernet, Bluetooth, Wi-Fi и инфракрасный порт работают на этом уровне. Для дальнейшей обработки сигнала сначала нужно закодировать его в биты, чтобы компьютер мог его понять.
На канальном уровне данных проверяются информация и исправляются возможные ошибки, возникшие при передаче. Здесь данные разделены на кадры, которые содержат полезную информацию, а также служебные данные, такие как адрес отправителя и адрес получателя. Это подобно письму, которое помещено в конверт: само письмо — это полезная информация, а конверт — служебные данные с адресами. На канальном уровне используется понятие MAC-адреса, который идентифицирует устройства в сети. MAC-адрес состоит из 6 байт и представляет собой уникальный идентификатор устройства на канальном уровне. Здесь работают коммутаторы и мосты, которые направляют фреймы нужному адресату. Основные протоколы на канальном уровне включают PPP, CDP, MPLS и DSL.
Выше сетевой уровень, при котором используется термин “маршрутизация” и соответственно IP-адрес. Именно на этом уровне осуществляется перенаправление пришедшего трафика. Здесь используется понятие “пакет” для определения данных. Вспомним пример с конвертом. Представьте, что теперь внутри конверта лежит не письмо, а еще один конверт, прям как матрешка. Мы достаем внутренний конверт и видим, что в полях отправителя и получателя вписаны адреса сетевого уровня.
Процесс при котором данные передаются с верхних уровней на нижние называется инкапсуляцией. А когда наоборот – декапсуляция данных. Самый верхний уровень – это 7, а нижний – 1 соответственно. То есть когда данные приходят с верхних уровней, на каждом уровне при спуске они как бы кладутся в новый конверт с полезной информацией и в конце мы имеем матрешку из конвертов. И когда устройство этого уровня получает конверт, оно знает что с ним делать благодаря переданной информации в нужном формате. Из устройств на этом уровне живет маршрутизатор и протоколы маршрутизации – RIP, OSPF, EIGRP, BGP. Данные протоколы занимаются передачей данных, только уже на уровень выше – между разными сетями.
Следующий уровень – транспортный. Следуя из названия мы можем понять, что он определяет способы доставки данных, то есть сам механизм передачи. Предназначен он, для того чтобы обеспечивать надежность передачи от отправителя до получателя. Здесь располагаются две главные фигуры – TCP и UDP. Это протоколы принадлежат транспортному уровню. Смысл такой, что различные протоколы применяются в зависимости от конкретных задач. Например, если есть риск потери информации в процессе передачи, рекомендуется использовать протокол TCP. А если потерять часть документа при передаче не страшно, то можно использовать UDP.
Вернемся к нашим сетевым инженерам. В основном они работают лишь с первыми четырьмя уровнями. Когда разработчик софта в своей работе больше пользуется “верхними уровнями”. Теперь нам стоит изучить эти самые “верхние уровни”. На всех трех тип данных “поток”.
Сеансовый уровень занимается тем, что управляет соединениями, или так сказать, сессиями. А что именно он с ними делает? Он их безжалостно разрывает. Примером могут послужить аудио и видео звонки. То есть когда один пользователь завершает вызов, сеансовый уровень может инициировать разрыв сеанса.
На шестом уровне происходит процесс преобразования формата сообщений. Тут живут JPEG и GIF. Например, когда ты отправляешь своему другу очередную GIF или важные материалы по ЕНТ, они сначала приходят ему в виде нулей и единиц. А уже на этом уровне представления они преобразуются в необходимый формат, который можно будет спокойно открыть в мессенджере или другой программе.
Седьмой этаж предназначен для приложений(прикладной уровень). Здесь находятся сетевые службы, которые позволяют пользователям, то есть нам с вами исследовать просторы Интернета. Например, Youtube у вас открыт по протоколу HTTPS. Еще здесь обитают HTTP, FTP и SMTP. Уровень нужен для того чтобы разные приложения имели доступ к службам такие, как доступ к файлам, пересылка электронной почты и запрос к базам данных.
Уровень | Единица данных | Протоколы | Устройства |
Прикладной | Данные | HTTP, HTTPS, SMTP, POP3, FTP | Шлюз |
Представления | SSL, TLS | ||
Сеансовый | PPTP, L2TP | ||
Транспортный | Сегменты | TCP, UDP | Шлюз |
Сетевой | Пакеты | IP, ICMP, OSPF | Маршрутизатор |
Канальный | Фреймы/кадры | CDP, PPP, MPLS, DSL | Коммутатор |
Физический | Биты | Ethernet | Провода, концентратор |
Эта таблица предоставляет информацию о каждом уровне модели OSI, а также об устройствах и протоколах, которые используются на каждом уровне. Сейчас мы рассмотрели сетевую модель OSI, а теперь давайте перейдем к TCP/IP.
Модель TCP/IP
Эта аббревиатура означает “Transmission Control Protocol/Internet Protocol”. Эта модель также описывает способ передачи информации от источника к получателю. Но в отличие от OSI модели, TCP/IP применяется на практике. Еще одно отличие в том, что у данной модели не 7 уровней, а всего 4. Здесь присутствуют уровень приложения, транспортный, сетевой и канальный. Название сетевой модели происходит и важнейших протоколов семейства.
Ниже представлена таблица, показывающая, как различные уровни в сетевых моделях соотносятся друг с другом.
Модель OSI | TCP/IP |
Прикладной | Приложения |
Представления | |
Сеансовый | |
Транспортный | Транспортный |
Сетевой | Сетевой |
Канальный | Канальный |
Физический |
Основные протоколы
Вам должно быть известно, что когда мы рассматривали каждый уровень в модели OSI, мы показывали вам пример того, какие протоколы могут существовать на этом уровне. Именно протоколы определяют правила, по которым компьютеры взаимодействую между собой в сети.
Протокол – это совокупность правил и соглашений, которые используются для передачи данных. Например: какие именно данные должны быть упакованы для передачи, как они перемещаются и как устройства в целом взаимодействуют друг с другом при транспортировке данных.
Мы рассмотрим основные протоколы, которые могут вам понадобиться при подготовке к ЕНТ.
Начнем с самых известных – HTTP и HTTPS.
Сейчас вы читаете эту статью и если поднимете глаза выше к адресной строке, то увидите вначале такую штуку: https://. Это означает, что страница была открыта по протоколу HTTPS.
Но начинать стоит с его брата HTTP, который означает “hypertext transfer protocol” или “протокол передачи гипертекста”.
Гипертекст – это текст, который содержит ссылки, позволяющие переходить с одного места на другое в документе или в Интернете, нажимая на определенные места. Это как книга, где можно перелистывать страницы, но не только вперед и назад, но и на любую другую страницу или даже книгу.
Почти любая веб-страница считается гипертекстом, потому что щелкнете вы по какой-то ссылке или картинке, как сразу попадете на другую страницу в Интернете.
Протокол HTTP передает гипертекст с гиперссылками, которые представляют собой конкретный путь до другого файла в Интернете. С помощью HTTP вы получили эту страницу со статьей, а сама страница была написана на языке разметки гипертекста HTML, подробнее о нем можно прочитать в статье Основы HTML.
HTTP – это клиент-серверный протокол. Это значит, что есть клиент(например вы), который хочет получить полезную информацию. И сервер, у которого эта информация хранится. Проще говоря, когда вы увидели эту статью и решили прочитать, вы кликнули на нее тем самым отправили HTTP запрос на сервер и в ответ получили от него HTML страничку с этой статьей.
Минус данного протокола заключается в том, что все данные он передает в открытом виде как обычный текст. То есть если кто-то решит перехватить эту передачу где-то на пути до сервера, то легко сможет прочитать всю информацию. Выглядит это все не очень безопасно, особенно в наше время. Поэтому появилось расширение протокола под названием HTTPS, где S означает secure(безопасный). Данный протокол шифрует все данные при передаче и делает невозможным их чтение при перехвате. Напомню, что эта статья открылась по протоколу HTTPS.
Следующие важные протоколы – это TCP и UDP. Мы немного их затронули, когда говорили про транспортный уровень. Эти протоколы применяются для обмена данными между устройствами.
TCP(Transmission control protocol) или протокол управления передачей данных. Его цель – гарантировать, что наши данные достигнут получателя в целостности, без искажений и в правильной последовательности. Перед началом обмена TCP должен установить соединение между двумя компьютерами в сети. После установления соединения, один компьютер начинает частями отправлять данные, а второй каждый раз подтверждает, что все данные пришли и ты можешь отправлять дальше. Недостатком
этого протокола является то, что его скорость передачи данных относительна невысока. Из-за необходимости обеспечить надежную и структурированную передачу данных, процесс передачи занимает больше времени по сравнению с протоколом UDP, который не гарантирует надежности данных.
Протокол UDP (User Datagram Protocol) является простым и быстрым способом передачи данных, так как он не требует установления соединения между отправителем и получателем. Однако из-за этого протокол менее надежен, и часть данных может потеряться в процессе передачи. Несмотря на это, в некоторых случаях потеря данных не является критичной проблемой. Помимо этого, данные приходят неупорядоченными. Скорость передачи данных по протоколу UDP выше, чем у TCP.
Протокол TCP используется в случаях, когда необходимо обеспечить надежную и подтвержденную передачу данных, например, при отправке фотографий или ведении переписки с друзьями.
UDP обеспечивает быструю передачу данных, идеально подходящую для передачи голосовых сообщений или потокового видео. Он обеспечивает высокую скорость и эффективность передачи данных, что делает его идеальным выбором для реального времени коммуникации(например стримы). Не страшно если 1 кадр из видео потеряется.
Есть хорошая шутка про UDP, но есть шанс, что она до вас не дойдет. Также UDP сравнивают с пулеметчиком, потому что он без какого либо соединения и предупреждения начинает бросаться данными. А TCP в свою очередь – снайпер. Так как ему необходимо настроить соединение перед отправкой.
IP-адрес — это уникальный идентификационный номер, который присваивается компьютеру, серверу или другому сетевому устройству для обеспечения их взаимодействия в сети. Каждый IP-адрес состоит из четырех чисел, разделенных точками, в диапазоне от 0 до 255. Таким образом, IP-адрес позволяет отправлять данные в нужное место и получать обратно необходимую информацию. Кроме того, существует иной тип IP-адресов, в которых могут использоваться и буквы, что обеспечивает дополнительную уникальность и идентификацию в сети.
Вывод
Таким образом мы рассмотрели две основные сетевые модели, их сходства и отличия. Рассмотрели малую, но важную часть всех существующих протоколов. На самом деле это очень интересная тема, потому что изучая детали вы начинаете понимать что стоит за ширмой всех процессов. Начинаешь лучше понимать как работает Интернет.
Фактчек
- Основная сетевая модель OSI состоит из семи уровней, где на каждом из них выполняются определенные функции.
- TCP/IP является более простой и широко применяемой моделью, состоящей из четырех уровней.
- Протоколы играют ключевую роль в обеспечении передачи данных между устройствами.
Задания для самопроверки:
Задание 1
Что такое инкапсуляция?
- Процесс, когда данные передаются с уровня приложений к нижним.
- Процесс передачи данных от физического уровня к верхним.
- Процесс расшифровки данных.
- Процесс удаления ненужных файлов из пакета данных перед его отправкой.
Задание 2
Определи какое из суждений ниже является верным?
- UDP – требует установки соединения между устройствами перед отправкой данных.
- TCP – обеспечивает надежную передачу данных.
- TCP – более быстрый, чем UDP.
- UDP доставляет файлы в упорядоченном виде.
Задание 3
Какую единицу измерения данных используют на сетевом уровне?
- Фрейм
- Кадр
- Бит
- Пакет
Задание 4
Какое из устройств относится к канальному уровню в модели OSI?
- Маршрутизатор
- Коммутатор
- Шлюз
- Провода
Ответы: 1. – 1; 2. – 2; 3. – 4; 4 – 2.