Давайте поэтапно спустимся и поднимемся по уровням модели OSI.
Представим, что пользователь набирает в строке поиска наш сайт haknem.com
Итак, структура доменных имён DNS работает на самом высоком, прикладном уровне. Хост посылает запрос к DNS-серверу для определения ip-адреса сайта
(этот процесс называется resolve — преобразование dns-имени хоста в ip-адрес).
На уровне представления данные зашифровываются.
На сеансовом уровне создаёт сеанс связи и данные готовы к передаче.
На транспортном уровне данные делятся на сегменты нужного размера и создаётся исходящий программный порт TCP socket
(его подробнее рассмотрим в следующем посте).
На сетевом уровне сегменты упаковываются в пакеты. На пакетах, как на почте, поставляются ip-адрес отправителя и ip-адрес получателя (полученный из ответа dns-сервера), а также уточняет свою таблицу маршрутизации, для определения за каким шлюзом (помните менеджера-маршрутизатора из статьи про ip-адресацию?) находится нужная сеть, к которой принадлежит получатель.
Теперь задержимся более детально на канальном уровне.
Здесь компьютер пользователя отправляет запрос своему ближайшему сетевому соседу (обычно это домашний Wi-Fi роутер, к которому компьютер подключен по Ethernet кабелю, а беспроводные устройства подключаются по сети Wi-Fi, либо подъездный коммутотор провайдера Интернет, к которому компьютер также подключают по Ethernet кабелю) по протоколу ARP
(Address resolution protocol — протокол определения физического адреса).
ARP-запрос сопоставляет ip-адрес шлюза (маршрутизатора для выхода из локальной подсети в глобальную сеть) с его MAC-адресом
MAC-адрес
(Media Access Control address — адрес физического устройства управления доступом к среде) — это адрес, зарезервированный производителем сетевого оборудования для конкретного физического коннектора (это "гнездо" сетевой платы компьютера со стороны пользователя и "гнездо" платы коммутатора провайдера типа "мама", соединённые Ethernet кабелем типа "папа-папа").
Выглядит MAC-адрес как 6 парных цифр в шестнадцатеричной системе счисления, разделённых двоеточием ":"
(в шестнадцатеричной системе счисления цифры начинаются с 0 и заканчиваются буквами "A" — 10, "B" — 11, "C" — 12, "D" — 13, "E" — 14 и "F" — 15).
Вот пример MAC-адрреса:
00:A0:B8:FE:44:C3:D5
Именно на канальном уровне между каждыми миниатюрными (в глобальном плане) сегментами маршрута создаются каналы связи, по которым уже передаются фреймы (контейнеры канального уровня).
Это можно сравнить с цепочкой людей, передающих коробки из пункта A в пункт B из рук в руки конвейером.
Ну, а на физическом уровне электрончики электрического сигнала пробегают по всем медным проводам и дорожкам печатных плат всех соединительных узлов на пути от компьютера пользователя до "железяки" web-сервера.
На стороне web-сервера все эти "коробки" разбираются, "пакеты" распечатываются, направляются на 80й (по умолчанию) tcp-сокет, расщифроввываются и дают команду web-серверу отправить в ответ нужную html-страничку.
Автор: Михаил Белкин, 32 года. Работаю в сфере ИТ более 11 лет.
• Предыдущая статья автора • — Структура маски подсети.
Если вы нашли что-то ценное в этой статье, поставьте "лайк" и подпишитесь на канал «Хакнем ИТ».