OSI
Открытая сетевая модель OSI (Open Systems Interconnection model) состоит из семи уровней. Это набор инструкций (протоколов), которые помогают компьютерам обмениваться данными внутри локальных сетей и всего интернета.
На седьмом уровне информация представляется в виде данных, на первом — в виде бит. Процесс, когда информация отправляется и переходит из данных в биты, называется инкапсуляцией. Обратный процесс, когда информация, полученная в битах на первом уровне, переходит в данные на седьмом, называется декапсуляцией. На каждом из семи уровней информация представляется в виде блоков данных протокола — PDU (Protocol Data Unit).

physical layer, L1
Первый, физический уровень (physical layer, L1). На физическом уровне происходит передача информации между "железом" клиента и сервера, информация передается на "языке железа" с помощью нулей и единиц (бит данных). Биты передаются через установленную среду передачи: витая пара, оптика, wi-fi, bluetooth, 4G. Этот слой работает с кабелями, контактами в разъёмах, модуляцией сигнала, кодированием единиц и нулей и другими низкоуровневыми штуками. По сути, первый уровень — это уровень проводов и физических способов передачи сигнала.
data link layer, L2
Второй уровень, канальный (data link layer, L2). На канальном уровне происходит упаковка/распаковка данных в кадры для передачи между сетевыми картами устройств обменивающихся информацией. Задача здесь — сформировать кадры с адресом отправителя и получателя, после чего отправить их по сети.
У канального уровня есть два подуровня — это MAC и LLC. MAC (Media Access Control, контроль доступа к среде) отвечает за присвоение физических MAC-адресов, а LLC (Logical Link Control, контроль логической связи) занимается проверкой и исправлением данных, управляет их передачей. На втором уровне OSI работают коммутаторы, их задача — передать сформированные кадры от одного устройства к другому, используя в качестве адресов только физические MAC-адреса.
network layer, L3
Третий уровень, сетевой (network layer, L3). Этот уровень отвечает за маршрутизацию данных внутри сети между компьютерами. Здесь уже появляются такие термины, как «маршрутизаторы» и «IP-адреса». Маршрутизаторы позволяют разным сетям общаться друг с другом: они используют MAC-адреса, чтобы построить путь от одного устройства к другому. Данные на сетевом уровне представляются в виде пакетов. Такие пакеты похожи на фреймы из канального уровня, но используют другие адреса получателя и отправителя — IP-адреса. Чтобы получить IP-адрес обоих устройств (отправителя и получателя), используется протокол ARP (Address Resolution Protocol). Он умеет конвертировать MAC- в IP-адрес и наоборот.
transport layer, L4
Четвертый уровень, транспортный (transport layer, L4). Этот уровень отвечает за формирование и транспортирование пакетов из уровней среды на уровни приложений. В зависимости от того насколько передаваемые данные чувствительны к потерям, пакеты могут быть переданы двумя способами TCP и UDP. При передаче по протоколу TCP данные делятся на сегменты. Сегмент — это часть пакета. Когда приходит пакет данных, который превышает пропускную способность сети, пакет делится на сегменты допустимого размера. Сегментация пакетов также требуется в ненадежных сетях, когда существует большая вероятность того, что большой пакет будет потерян. При передаче данных по протоколу UDP пакеты данных делятся уже на датаграммы. Датаграмма (datagram) — это тоже часть пакета, но ее нельзя путать с сегментом. Главное отличие датаграмм — в автономности. Каждая датаграмма содержит все необходимые заголовки, чтобы дойти до конечного адресата, поэтому они не зависят от сети, могут доставляться разными маршрутами и в разном порядке. При потере датаграмм или сегментов получаются «битые» куски данных, которые не получится корректно обработать.
session layer, L5
Пятый уровень, сеансовый (session layer, L5). Этот уровень предназначен для установления, поддержания и завершения соединения между приложениями участников соединения. В задачи пятого уровня входит периодическая проверка соединения, восстановление соединения в случае его разрушения, либо рестарт, если восстановление не возможно. На сеансовом уровне очень важно, чтобы соединение правильно установилось и поддерживалось. То есть механизмы протоколов должны проверить, что у обоих собеседников есть нужные кодеки и сигнал между устройствами присутствует.
presentation layer, L6
Шестой уровень, представления данных (presentation layer, L6). Этот уровень отвечает за преобразование протоколов и кодирование/декодирование данных. Шестой уровень также занимается представлением картинок (в JPEG, GIF и т.д.), а также видео-аудио (в MPEG, QuickTime). А помимо этого → шифрованием данных, когда при передаче их необходимо защитить.
application layer, L7
Седьмой уровень, прикладной данных (application layer, L7). На этом уровне располагаются приложения с которыми взаимодействует пользователь, своего рода графический интерфейс всей модели OSI. Все услуги, получаемые седьмым уровнем от других, используются для доставки данных до пользователя. Задача седьмого уровня — использовать свои протоколы, чтобы пользователь увидел данные в понятном ему виде.
Как это все работает?
Чтобы информация могла быть передана по сети от устройства к устройству, данные должны пройти семь уровней по модели OSI. Информация передается с уровня 7 вниз на уровень 1 от отправителя, а затем передается с уровня 1 на уровень 7 на устройстве получателя.
Примером передачи данных по модели OSI является приложение электронной почты. Когда пользователь отправляет письмо, оно приходит на уровень представления с использованием определенного протокола (SMTP для исходящей электронной почты). Уровень представления сжимает информацию и отправляет сообщение на сеансовый, который открывает сессию для связи между устройством отправителя и исходящим сервером.
Далее вступает в силу транспортный уровень, где сегментируются полученные данные. Затем сетевой уровень разбивает сегменты на пакеты и отправляет их на канальный уровень, где они разбиваются на фреймы. Фреймы переходят на физический уровень, где информация преобразуется в биты и передается через физическую среду, беспроводные соединения или кабели.
Когда сообщение доходит до получателя, происходит обратный процесс, где информация переходит из битовых единиц и нулей в сообщение на почте получателя.
Модель OSI служит инструментом при диагностике сетей. Если в сети что-то не работает, то гораздо проще определить уровень, на котором произошла неполадка, чем пытаться перестроить всю сеть заново.
encapsulation
Инкапсуляция и декапсуляция данных
В контексте передачи данных по сети, инкапсуляция данных означает включение данных в определенный формат или структуру, чтобы они могли быть переданы по сети с помощью сетевых протоколов.
Процесс инкапсуляции данных включает следующие шаги:
- Разделение данных: Исходные данные разделяются на более маленькие блоки или пакеты для более эффективной передачи. Это особенно важно при передаче больших объемов данных, таких как файлы или потоки медиа.
- Добавление заголовков: Каждый пакет данных получает заголовок, который содержит информацию о передаче данных, такую как адрес отправителя и получателя, информация о протоколе и другие метаданные. Заголовки играют важную роль в маршрутизации и обработке данных на промежуточных узлах сети.
- Добавление подвалов и контрольных сумм: Кроме заголовков, в пакет данных может быть добавлен подвал, который содержит служебную информацию, такую как контрольные суммы для обеспечения целостности данных или другую дополнительную информацию, необходимую для обработки пакетов.
- Упаковка данных: Инкапсулированные пакеты данных упаковываются в более высокоуровневые протоколы, такие как IP (Internet Protocol) или TCP (Transmission Control Protocol), в зависимости от используемого сетевого стека и протоколов передачи данных.
- Передача по сети: Инкапсулированные данные передаются по сети от отправителя к получателю. Это включает передачу через различные узлы, маршрутизацию и возможное разделение и объединение пакетов данных на пути от отправителя к получателю.
- Распаковка данных: При достижении получателя пакеты данных распаковываются, заголовки и подвалы извлекаются, и исходные данные восстанавливаются в исходном формате.
Инкапсуляция данных в сетевой передаче помогает обеспечить надежную и эффективную доставку данных, а также позволяет использовать различные протоколы и службы в сетях для обработки, маршрутизации и управления данными.
