На этом занятии мы рассмотрим, как строятся сети на основе эталонной модели TCP/IP: какое оборудование используется, какие технологии и какая адресация применяются на каждом уровне. Затем познакомимся с анализатором сети Wireshark - вы научитесь смотреть, как данные передаются по сети, и увидите на практике инкапсуляцию протоколов.
Теория опирается на движение снизу вверх по модели: от уровня сетевых интерфейсов к прикладному. В конце - интерактивные задания, короткий тест и пошаговая практика за компьютером: установка Wireshark, захват трафика и разбор пакетов. Файл для сдачи не требуется.
Модель TCP/IP не вдаётся в детали того, как устроено сетевое оборудование. Уровень сетевых интерфейсов используется для того, чтобы подключиться к уже существующим технологиям передачи данных. Сейчас одна из самых популярных технологий - Wi‑Fi для беспроводной передачи; устройства, которые раздают Wi‑Fi, называются точками доступа, к ним по беспроводной среде подключаются компьютеры, планшеты и смартфоны.
Самая популярная технология для проводной сети - Ethernet. В такой сети используются коммутаторы, к которым по проводам (медным или оптическим) подключаются компьютеры и другие устройства.
В сети несколько устройств, и при передаче данных нужно понимать, для какого устройства они предназначены. Для этого на уровне сетевых интерфейсов используется физическая (аппаратная) адресация. В сетях Wi‑Fi и Ethernet применяются так называемые MAC-адреса (Media Access Control - управление доступом к среде). Формат таких адресов регламентируется стандартами рабочей группы IEEE 802.
MAC-адрес имеет длину 6 байт (48 бит) и обычно записывается в виде шести шестнадцатеричных
чисел. Два распространённых формата: числа, разделённые тире (формат IEEE), или
двоеточием (формат IETF в документах). Оба формата эквивалентны, например:
00-1A-2B-3C-4D-5E или 00:1a:2b:3c:4d:5e.
Каждый сетевой адаптер (Wi‑Fi или Ethernet) имеет встроенный MAC-адрес. Чтобы устройство могло работать с сетью, в нём должен быть адаптер, и в этом адаптере - MAC-адрес. Адреса записываются в адаптеры производителями; как правило, ничего дополнительно настраивать не нужно (хотя возможность сменить MAC-адрес в настройках есть).
Важная особенность: MAC-адреса в сети должны быть уникальны. Иначе мы не сможем понять, какому именно устройству нужно доставлять данные - коммутатор или точка доступа не смогут однозначно определить получателя кадра.
На уровне интернет модели TCP/IP происходит объединение сетей, построенных по разным технологиям. Предположим: одна подсеть на основе Ethernet (коммутатор и компьютеры по проводам), вторая - на основе Wi‑Fi (точка доступа и беспроводные устройства). Чтобы объединить эти сети, на уровне интернет используется устройство маршрутизатор (router).
Крупные составные сети объединяют много подсетей и включают несколько маршрутизаторов. Одна из важных задач уровня интернет - поиск маршрута в составной сети: пакет может пройти разными путями через промежуточные маршрутизаторы. Задача уровня - находить рабочий путь даже если какой-то маршрутизатор вышел из строя.
На уровне интернет используется глобальная адресация - адреса, не привязанные к конкретной сетевой технологии, а служащие для идентификации узла в крупной составной сети. В сетях TCP/IP для этого применяются IP-адреса (по названию протокола уровня интернет - IP, Internet Protocol, протокол межсетевого взаимодействия).
IP-адреса записываются в виде четырёх десятичных чисел, разделённых точками, например
192.168.1.1. Это формат IPv4 (четвёртая версия протокола IP); существует также
IPv6 - шестая версия с более длинным адресом и другим форматом записи. Отличия IPv4 и IPv6 мы
рассмотрим далее в курсе. Глобальную координацию пулов адресов ведёт организация IANA
(Internet Assigned Numbers Authority) - подразделение ICANN; штаб-квартира ICANN находится в Лос-Анджелесе
(США). IANA не выдаёт адреса конечным пользователям и не «выдаёт по одному на человека». Она выделяет крупные
блоки региональным интернет-регистраторам (RIR): для Европы, Ближнего Востока и части
Центральной Азии - RIPE NCC (офис в Амстердаме), для Северной Америки - ARIN, для Азии и
Тихоокеанского региона - APNIC и др. Регистраторы выдают блоки уже провайдерам (LIR/ISP), а провайдеры
назначают адреса абонентам - в том числе «Билайн», «Ростелеком» и другим. За Россию в зоне ответственности
RIPE NCC; провайдер получает пул адресов и раздаёт их клиентам (домашний интернет, офисы, серверы). Количество
адресов у страны или провайдера не привязано к числу жителей - учитываются заявки, планирование и исчерпание
пулов IPv4.
Мы уже научились строить локальные сети и объединять их в крупные составные сети с помощью маршрутизаторов - по такой сети можно передавать данные с одного конца света на другой. Зачем же нужен транспортный уровень?
Рассмотрим пример: на клиенте с одним IP-адресом пользователь открывает браузер и подключается к веб-серверу; сервер отправляет ответ. Всё работает. Но если пользователь на том же компьютере откроет ещё один браузер и запросит ту же страницу, ответ дойдёт до клиента - а какому браузеру его отправить? Для решения этой проблемы и используется транспортный уровень, который обеспечивает связь между отдельными процессами, а не между компьютерами.
На транспортном уровне используется своя адресация - порты. Порт - это число в диапазоне от 1 до 65535; каждое сетевое приложение (каждый процесс) может использовать свой порт. Номера портов у приложений на одном узле не должны повторяться - иначе нельзя будет понять, какому приложению предназначены пришедшие данные.
Порт обычно записывают после IP-адреса через двоеточие, например 192.168.1.1:80. Веб-сервер по
умолчанию слушает порт 80; в запросе виден и IP отправителя, и номер порта - по нему можно определить, какому
именно браузеру (или вкладке) предназначен ответ.
Следующий уровень модели TCP/IP - прикладной. Здесь используются протоколы, которые делают что-то полезное ради чего и строятся сети. HTTP - для передачи гипертекста (веб-страницы). HTTPS (HTTP Secure) - защищённый HTTP, шифрует данные при передаче. DNS (Domain Name System, система доменных имён) преобразует IP-адреса в доменные имена, понятные человеку.
Есть и другие протоколы, например SMTP (Simple Mail Transfer Protocol) - простой протокол передачи почты. В курсе мы подробнее разберём устройство каждого уровня и протоколы прикладного уровня.
Итак, в сетях TCP/IP используется два типа оборудования на уровне сетевых интерфейсов: точки доступа Wi‑Fi для беспроводных сетей и коммутаторы Ethernet для проводных. На уровне интернет - маршрутизаторы для объединения отдельных сетей в составную.
Адресация трёх типов: на уровне сетевых интерфейсов - MAC-адреса (физические, в адаптерах); на уровне интернет - IP-адреса (глобальные, идентифицируют узел в составной сети); на транспортном уровне - порты (идентификатор процесса, которому предназначены данные).
Уровни в модели TCP/IP описывают что делают с данными (функции), а не «в каком здании стоит оборудование». Один и тот же пакет на пути от вашего компьютера до сервера обрабатывается разными устройствами; в каждом устройстве пакет проходит свои уровни. Важно: одно устройство может реализовывать несколько уровней сразу.
Ноутбук - прикладной, транспортный, интернет (на нём уровень интернет формирует пакет; маршрутизацию «куда отправить дальше» первым выполняет уже роутер), сетевые интерфейсы (Wi‑Fi). Домашний роутер - уровень интернет (решение по IP: куда отправить пакет) и уровень сетевых интерфейсов (Wi‑Fi, Ethernet - приём и передача кадров). Маршрутизатор провайдера - то же: интернет плюс свои каналы. То есть уровень интернет реализован во всех устройствах, которые принимают решение по IP-адресу и маршруту - в том числе у вас дома.
Обычный домашний «Wi‑Fi роутер» - это по сути маршрутизатор с точкой доступа. Он раздаёт Wi‑Fi и разводит Ethernet (уровень сетевых интерфейсов - кадры, MAC) и одновременно смотрит на IP-заголовок пакета и решает: если пакет во внешнюю сеть - отправить на порт к провайдеру, если внутрь дома - отдать в свою подсеть. Это и есть уровень интернет - маршрутизация.
Поэтому первое устройство уровня интернет на пути вашего пакета - ваш домашний роутер. Он не «после» уровня интернет - он и есть первая точка, где выполняется выбор маршрута по IP. Дальше пакет идёт к оборудованию провайдера - там следующие маршрутизаторы, тоже уровень интернет.
Путаница возникает из-за двух разных смыслов. Порядок уровней в пакете (инкапсуляция): при отправке сначала приложение, потом транспорт, потом IP, потом кадр Wi‑Fi/Ethernet - «снаружи» пакета канальный уровень, «внутри» - IP. Это про структуру пакета, а не про географию. Кто обрабатывает пакет по пути: первый, кто видит кадр и передаёт дальше - ваш роутер; он реализует и сетевые интерфейсы, и уровень интернет.
Итог: «низкий» уровень (сетевые интерфейсы) и «высокий» (интернет) одновременно есть в одном домашнем роутере. Уровень интернет не «начинается» у провайдера - он уже у вас дома.
Wireshark - это программное обеспечение-анализатор сети, которое распространяется бесплатно (сайт wireshark.org, ссылка есть в описании видео). С его помощью можно посмотреть, как данные передаются по сети: какие пакеты проходят через ваш компьютер, что в них содержится, по каким протоколам они идут.
На первом этапе нужно установить Wireshark на компьютер: перейдите на страницу загрузки wireshark.org/download.html, выберите установщик для своей ОС (например Windows x64 Installer), загрузите и установите (при установке не забудьте поставить дополнительные компоненты, которые Wireshark предложит, например Npcap). После установки запускаем программу.
Первое, что нужно сделать после запуска Wireshark - выбрать сетевой адаптер, через который будет идти захват трафика. Сетевой адаптер - устройство, с помощью которого компьютер подключается к сети (Ethernet, Wi‑Fi, виртуальные интерфейсы). На компьютере может быть несколько адаптеров; используется обычно один - например беспроводной, если вы в Wi‑Fi.
Выберите тот интерфейс, через который вы реально выходите в интернет (часто он помечен как «Wi‑Fi» или «Ethernet» с активным трафиком). Захват на чужом интерфейсе даст пустой или нерелевантный набор пакетов.
Окно Wireshark состоит из трёх частей. В верхней части показываются пакеты, передаваемые по сети. Компьютерные сети относятся к сетям коммутации пакетов: данные делятся на небольшие части (пакеты), и каждый пакет передаётся по сети независимо от других.
Внизу справа - цифровое представление данных в виде шестнадцатеричных чисел (так данные реально передаются по цифровой сети). В левой части - расшифровка пакета по протоколам: что означает та или иная часть пакета (заголовки Ethernet, IP, TCP, HTTP и т.д.).
Даже без активных действий с вашей стороны по сети передаётся много пакетов (служебные, обновления, фоновые
приложения). Чтобы найти нужные данные, в Wireshark используется фильтр - он вводится в поле
в левой верхней части интерфейса. Например, фильтр http покажет только пакеты протокола HTTP;
можно отфильтровать ответы HTTP, в которых приходит веб-страница.
Разбор конкретного пакета делается в левой нижней части: раскрывая дерево по уровням (Ethernet, IP, TCP, HTTP), вы видите заголовки и данные. В правой части - те же байты в шестнадцатеричном виде; при выделении поля в дереве соответствующие байты подсвечиваются в hex-дампе.
В одном пакете с веб-страницей видны протоколы всех уровней. На прикладном - HTTP (передаётся документ HTML - сама страница). На транспортном - TCP (Transmission Control Protocol): в заголовке видны порт отправителя (например 80 - порт веб-сервера) и порт получателя (порт браузера на вашем компьютере). На уровне интернет - IP: адрес отправителя (сервера) и адрес получателя (ваш компьютер). На уровне сетевых интерфейсов - Ethernet (или Wi‑Fi, но для ОС это часто отображается как Ethernet): MAC-адрес отправителя и получателя.
Так наглядно видна инкапсуляция: данные прикладного уровня вложены в сегмент TCP, тот - в пакет IP, пакет - в кадр канального уровня.
При выделении в дереве уровня сетевых интерфейсов в правой части подсвечивается заголовок этого уровня; всё, что дальше - данные для уровня интерфейсов, но по сути там уже идёт заголовок IP. Если выделить IP - подсвечивается заголовок уровня интернет; «данные» IP - это заголовок транспортного уровня (TCP). Выделив TCP, видим его заголовок, а «данные» TCP - это уже прикладной протокол (например HTTP с телом страницы).
Так в Wireshark на практике видна инкапсуляция: данные одного протокола вкладываются в протокол уровня ниже, и при разборе пакета мы последовательно «снимаем» уровни сверху вниз.
То, что вы видите в Wireshark без фильтров - множество пакетов, даже когда не открываете сайты и не качаете файлы - абсолютно нормальная ситуация. Это называется «сетевым шумом» (network noise) или фоновым трафиком (background traffic). Любое устройство, подключённое к сети (интернет или локальная сеть), постоянно обменивается служебными данными.
Ниже - краткий разбор того, откуда берутся эти запросы и зачем они нужны. Знание этого поможет не пугаться «кучи пакетов» и правильно настраивать фильтры.
Самый частый источник «шума» - ваша локальная сеть. Компьютер, роутер, принтеры, смартфоны постоянно обмениваются служебными сообщениями.
ARP (Address Resolution Protocol) - один из самых частых протоколов в захвате. Устройства рассылают широковещательные запросы: «У кого такой-то IP? Сообщите свой MAC-адрес». Это нужно, чтобы доставить кадр нужному устройству в сети.
DHCP - запрос или продление аренды IP-адреса у роутера. mDNS и LLMNR - обнаружение соседей в сети (сетевое окружение, принтеры, AirPlay). ICMP - эхо-запросы (ping); роутер может пинговать ваше устройство, чтобы проверить, что оно в сети.
Операционная система (например Windows) сама обращается к серверам: проверка обновлений (windowsupdate.com, delivery.mp.microsoft.com), телеметрия, магазин приложений, метаданные для USB-устройств. Включённая «Оптимизация доставки» создаёт трафик на порт 7680 (TCP) - обмен обновлениями с другими компьютерами.
Установленные программы и браузеры тоже создают фоновый трафик: проверка обновлений (Adobe, Zoom, антивирус), префетч DNS в Chrome и Edge, DNS-запросы перед каждым выходом в сеть. При включённом DNS over HTTPS (DoH) запросы идут как HTTPS на cloudflare-dns.com или dns.google.
Часть трафика приходит к вам извне, хотя вы его не запрашивали. Это явление называют Internet Background Radiation (IBR) - фоновое излучение интернета. У вашего компьютера есть публичный или выданный провайдером IP; весь интернет постоянно сканируют.
Сканируют исследовательские проекты (Shodan, Censys, вузы) - для карт интернета и поиска уязвимостей; злоумышленники и боты - в поисках открытых портов (SSH, RDP) и уязвимых устройств. При DDoS с подменой IP ответы жертвы могут случайно прилетать на ваш адрес (backscatter). В захвате это часто выглядит как TCP SYN на разные порты, UDP на случайные порты; по статистике около 95% такого трафика - TCP.
Чтобы скрыть большую часть служебного трафика и оставить только интересующее, в строке Display Filter можно ввести:
Этот фильтр убирает ARP, mDNS, SSDP, LLMNR, DHCP и ICMP - основной «белый шум» локальной сети. Чтобы оставить только трафик к определённому сайту (например example.com), используйте dns.qry.name contains "example.com" или по известному IP: ip.addr == 93.184.216.34.
Итог: ничего страшного не происходит. Компьютер «разговаривает» с роутером, провайдером и серверами производителей ПО, плюс получает фоновый шум от сканеров интернета. Wireshark просто показывает ту жизнь сетевого адаптера, о которой вы раньше не задумывались.
Сопоставьте тип оборудования с уровнем модели TCP/IP.
На каком уровне модели TCP/IP используется указанный тип адреса?
Расставьте уровни в порядке «сверху вниз» - как они добавляются при отправке пакета (первый - прикладной, последний - перед передачей по среде).
Выберите верные утверждения (можно несколько).
Для доступа к практике нужно набрать не менее 80% (минимум 7 из 8 правильных ответов).
1. MAC-адрес имеет длину:
2. Устройство для объединения сетей разной технологии (Ethernet, Wi‑Fi):
3. Порт - это идентификатор:
4. Диапазон номеров портов:
5. Wireshark распространяется:
6. Перед захватом трафика в Wireshark нужно:
7. В одном пакете с веб-страницей видны протоколы:
8. Инкапсуляция - это:
Выполните пошаговые действия на своём компьютере: установите Wireshark (если ещё не установлен), выберите интерфейс, запустите захват, откройте в браузере сайт по HTTP, остановите захват, примените фильтр и разберите пакет. Файл для сдачи не требуется - только выполнение шагов и самопроверка по результату на экране.
Запустите установщик и пройдите шаги установки.
Если интерфейсов несколько - ориентируйтесь на название (например «Wi‑Fi», «Ethernet») и на график активности: у активного интерфейса видны «всплески» трафика.
Даже без ваших действий по сети уже идёт обмен - служебные запросы, обновления. После открытия веб-страницы среди пакетов появятся HTTP-запросы и ответы.
Введите адрес в адресной строке и дождитесь загрузки страницы. После этого вернитесь в Wireshark.
В списке должны быть пакеты, в том числе с протоколом HTTP - запрос к серверу и ответ с веб-страницей.
http и
нажмите Enter или кнопку применения фильтра.
В списке останутся только пакеты, относящиеся к протоколу HTTP. Найдите пакет с ответом HTTP (например в колонке «Info» может быть «HTTP/1.1 200 OK» или «Line-based text data» - это тело ответа с HTML-страницей). Щёлкните по нему.
Если таких пакетов несколько - выберите любой с телом ответа (HTML). Двойной щелчок по пакету откроет его в отдельном окне - можно закрыть окно и продолжать в основном.
В правой нижней части (панель «Packet Bytes») отображаются те же данные в шестнадцатеричном виде; при клике на поле в дереве соответствующие байты подсвечиваются.
Так вы закрепите связь «уровень - тип адресации»: уровень интерфейсов - MAC, уровень интернет - IP, транспортный - порты.
http и нажмите Enter или кнопку применения). В списке снова
появятся все захваченные пакеты - DNS, TCP, ICMP и др. Убедитесь, что среди них есть и ваши HTTP-пакеты - они
идут рядом с установкой TCP-соединения (SYN, ACK) и другими протоколами.
В реальном трафике один «заход» на сайт порождает много пакетов: DNS (если по имени), TCP handshake, HTTP-запрос, HTTP-ответ, возможно дополнительные запросы за ресурсами страницы.
tcp.port == 80 и примените его. Отобразятся все пакеты, в
которых порт источника или назначения равен 80 (стандартный порт HTTP). Среди них - и ваш обмен с
веб-сервером. Сравните с фильтром http: tcp.port == 80 показывает и служебные
TCP-пакеты (установка/завершение соединения), а http - только пакеты с данными протокола HTTP.
Это и есть инкапсуляция: данные прикладного уровня упакованы в TCP, TCP - в IP, IP - в кадр канального уровня.
Сохранять захват полезно, когда нужно разобрать трафик позже или показать коллеге/преподавателю конкретный обмен.
Ответьте себе (без отправки куда-либо):
Практика завершена. Попробуйте при желании повторить захват с другим сайтом или применить другой фильтр
(например tcp.port == 80). Дальше в курсе мы подробнее разберём протокол HTTP и использование
Wireshark для анализа.