Основы сетевого взаимодействия компьютеров (часть 1)

osnovy-setevogo-vzaimodejstvija-kompjuterov-chast-1-300x141-4702680 Курсы и обучение

osnovy-setevogo-vzaimodejstvija-kompjuterov-chast-1-300x141-1244200

Для того, чтобы разрабатывать сети на базе TCP/IP и управлять ими, идентифицировать компоненты сетевой инфраструктуры, осуществлять мониторинг и анализировать производительность сети, нужно понимать основы сетевого взаимодействия компьютеров.

Сеть — это набор устройств и конечных систем, которые соединены друг с другом и могут обмениваться информацией. «Конечные системы» — это, в нашем случае, компьютеры/серверы. А в широком рассмотрении — это, помимо компьютеров/серверов, смартфоны, планшеты, принтеры (сетевые) и т. д.

Как можно охарактеризовать сети?

Использовать можно следующие характеристики:

  • Скорость/цена. Построить более скоростную сеть, как правило, дороже чем менее скоростную.
  • Безопасность. Есть проводные и беспроводные сети. Проводные сети относительно безопаснее беспроводных ввиду более сложного перехвата информации внутри самой сети.
  • Доступность/отказоустойчивость/надежность. Сеть должна работать 24/7/365.
  • Масштабируемость. Сеть не должна претерпевать значительной перестройки, перепланировки и материальных затрат  в случае необходимости добавления  заметно большего числа пользователей.
  • Топология. Существует несколько топологий (структур) сетей: «шина», «кольцо», «звезда». Топология современных сетей ближе всего к «звезде». Комбинирование в одной сети несколько топологий, не только повышает ее надежность но и увеличивает затраты на ее построение (например «звезда» и «кольцо»).

Сетевые стандарты.

Для того, чтобы описать теорию сетевого взаимодействия компьютеров, была придумана теория взаимодействия — модель OSI (описание стандартов, которые позволяют взаимодействовать компьютерам в сети). Модель OSI — это некая абстракция для облегчения понимания как взаимодействуют устройства друг с другом, на каких уровнях и что именно происходит. Модель OSI состоит из 7 уровней. Уровни идут снизу вверх, на каждый уровень возложена своя функция.

У каждого уровня есть ряд неких функций, которые он выполняет и не перекладывает их на плечи других уровней. Стандарты описывают взаимодействие между уровнями. Таким образом, если один уровень реализован одним производителем, а другой уровень — другим, то благодаря стандартизации разные уровни разных производителей будут прекрасно работать друг с другом. Кратко рассмотрим уровни:

  1. Physical (Физический уровень). Суть этого уровня в том, что бы охарактеризовать, описать, определить электрические, механические, оптические и вообще любые спецификации что бы поднять, поддерживать, когда нужно — прекратить работу по определенному соединению  в той или иной среде. Например: в обычном патч-корде (кабель который вставлен в сетевую плату) необходимо описать, каким образом кодируется передача информации в виде единицы, а каким образом кодируется передача информации в виде ноля. Информация на физическом уровне присутствует в виде потока «единичек» и «нолей». Тут нет никакой логической структуры. Просто поток информации, закодированной в двоичном виде. Сред для физического уровня может быть несколько: это может быть витая пара, может быть оптика, это может быть беспроводное соединение и для каждого вида из этих типов сред мы будем иметь разные способы передачи информации в виде разной кодировки «единичек» и «ноликов». Иными словами способы передачи бинарной информации и являются сутью функционирования физического уровня.
  2. Data-Link (Канальный уровень). Суть этого уровня заключается в предоставлении доступа к среде. Здесь уже есть некая идеология по форматированию данных, то есть здесь у нас есть структура (фрейм), здесь есть адресация (мак адреса). Мак адрес нужен что бы доставить фрейм (структурную единицу передачи информации) от одного сетевого устройства к другому сетевому устройству напрямую в рамках сегмента (участка сети где два или более устройств взаимодействуют друг с другом напрямую). Данный уровень должен быть способен определить, кому адресована поступающая информация, «мне» или кому-нибудь другому? Уникальной вещью на этом уровне является алгоритм нахождения контрольной суммы, предназначенный для проверки целостности данных (CRC) который позволяет устройствам сети проверять что передача  конкретно этого фрейма прошла без ошибок и данные не были повреждены. Иными словами второй уровень отвечает за доступ к среде, за доставку данных в среде, за адресацию и за безошибочную доставку данных (не гарантированную) путем подсчета контрольной суммы каждого фрейма для проверки его целостности.
  3. Network (сетевой уровень). Сетевой уровень отвечает за доставку пакетов от одной конечной системы до другой конечной системы через промежуточные устройства третьего уровня (маршрутизатор). Здесь появляется адресация третьего уровня такая как IP адресация которая предназначена обеспечить доступность каждого узла через всю инфрастуктуру сети через промежуточные узлы. IP пакеты не хранят информацию обо всех промежуточных узлах. В пакетах хранятся IP адреса источника и получателя только как конечные. Каждый пакет доставляется независимо от других пакетов.
  4. Transport (транспортный уровень). С 4 уровня и выше начинается описание взаимодействия end to end (установка соединения от начала до конца). Это означает, что сегменты (структурные единицы 4 уровня) на транспортном уровне доставляются от одного устройства к другому устройству в сети. На этом уровне появляется понятие соединения (socket)  между устройствами. Есть тип соединения с гарантированной доставкой (протокол TCP), а есть тип соединения с не гарантированной доставкой (протокол UDP).
  5. Session (сеансовый уровень). На этом уровне при подключении к серверу, сервер должен отслеживать целостность сессии. На примере посещения интернет-магазина, сессия — это когда вы через браузер зашли на сайт, то есть подключились к серверу, и те действия как: какие кнопки вы нажимали, какие товары добавляли в корзину и когда в конце решили нажать на кнопку «оплатить». Если бы сессии эти не отслеживались на уровне session, то перейдя к оплате вы бы обнаружили в своей корзине другие товары. Поэтому в данном примере сессия — это ваше перемещение по интернет-магазину.
  6. Presentation (презентационный уровень). Это уровень представления данных, вся суть которого заключается в том, что бы серверный софт передавал данные клиенту в том виде, в котором они гарантированно будут поняты браузером пользователя. Самый простой пример — это кодировка символов. Этот уровень должен решать проблемы корректной передачи данных не только в текстовом формате, но и аудио, видео или например, шифрации и аутентификации.
  7. Application (уровень приложений). Это софт, который на стороне браузера отвечает за отображение контента, работу кнопок и т. д., а на стороне сервера это тот софт, который обслуживает действия клиента.

Нужно отметить что семиуровневая модель OSI  не единственное теоретизирование, которое мы можем использовать для общего, абстрактного понимания взаимодействия устройств друг с другом в сети. Из наиболее употребимых существует так же модель TCP/IP. По первым четырем уровням она совпадает с моделью OSI, а пятый, шестой и седьмой в модели OSI, в модели TCP/IP объединены в один уровень Application.

Инкапсуляция и деинкапсуляция.

Инкапсуляция — это когда пользователь собирается отправить какие-то данные через сеть получателю, то он как бы «отдает» эти данные сетевому стеку и каждый уровень (на примере модели OSI сверху вниз) добавляет к ним свои заголовки.

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

Деинкапсуляция — это обратный процесс инкапсуляции. То есть это когда устройство принимает данные и нужно принять данный в виде нолей и единиц и отдать их приложению. Деинкапсуляция заключается в последовательном отбрасывании заголовков соответствующего уровня и передачи того что осталось вышестоящим уровням до полной «распаковки».

Деинкапсуляция на примере модели OSI

Полную инкапсуляцию и полную деинкапсуляцию производят только оконечные устройства. Свитчи (устройства второго уровня) вообще никак не влияют на передаваемые данные, то есть не изменяют их. Маршрутизаторы (устройства третьего уровня) производят частичную деинкапсуляцию до третьего уровня для того, чтобы «посмотреть» куда, на какой IP адрес должен попасть этот пакет данных. И когда маршрутизатор «понимает» куда, он производит инкапсуляцию до 2 уровня и отправляет пакет в виде потока единиц и нолей.

Прямое взаимодействие между конечными устройствами начинается с четвертого уровня. Структурные единицы информации которыми обмениваются существующие уровни между конечными устройствами имеют свои названия. То, чем обмениваются устройства на втором уровне, называются фреймами. На третьем уровне пакетами, на четвертом — сегментами. Так же, есть универсальное название этих структурных единиц — PDU (Protocol Data Unit). PDU — любая структурная единица информации на любом уровне.


Основы сетевого взаимодействия компьютеров (часть 2)

Оцените автора
( Пока оценок нет )
Инфо бизнес