Приветствую, коллеги! Меня зовут @ProstoKirReal. Мне бы хотелось с вами обсудить как работает интернет от кабелей на витой паре, соединяющие простые локальные сети до подводных коммуникационных кабелей соединяющие между собой континенты и основные операторские сети.

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

Важно понимать, что разобраться во всех аспектах этой темы сложно, так как существуют узкие специализации и знания, недоступные обычному сетевому инженеру. Я не буду углубляться в историю интернета или рассказывать о классах IP-адресов и других устаревших концепциях. Вместо этого я сосредоточусь на том, как работает интернет в настоящее время.

В этом цикле статей я не стану учить вас настраивать оборудование и проектировать сети. Я расскажу об основных (и не только) принципах построения сети, а также о функционировании сети и сетевых протоколов в стеке TCP/IP.

Я буду часто ссылаться к предыдущим статьям, где уже описывал сетевые протоколы. Это позволит мне сократить объемный текст.

❯ Зачем нужна эта статья?

Данная статья нужна нам для того, чтобы разобраться в базовых знаниях и разобрать:

- что такое коммутатор, маршрутизатор, их основные различия и зачем они нужны;
- примеры работы простых сетей, с помощью сетевых концентраторов (хабов) и коммутаторов.

❯ Что такое коммутатор, маршрутизатор?

Когда мы задаем вопрос в поисковике: «Чем отличается коммутатор от маршрутизатора?», то один из самых распространенных ответов, который можно найти в интернете (например, на Mail.ru), звучит так:

в функционале. маршрутизатор - маршрутизирует, коммутатор - коммутирует. все просто:)))

Это, пожалуй, самый краткий и ёмкий ответ на данный вопрос.

Однако если подойти к вопросу серьезно, необходимо разобраться в понятиях коммутации и маршрутизации.

Коммутация — это процесс перенаправления данных (кадров) в пределах одной сети, основанный на анализе адреса назначения. Она работает на канальном уровне модели OSI (L2), используя MAC-адреса устройств.

Маршрутизация — это процесс определения пути для передачи данных между разными сетями. Работает на сетевом уровне модели OSI (L3), используя IP-адреса.

Коммутаторы (switch) и маршрутизаторы (router) — это два ключевых устройства в сетевых инфраструктурах, которые выполняют разные, хотя и пересекающиеся, задачи. Разберемся в их функциях, особенностях и причинах появления, а также рассмотрим современные реалии, в которых их функциональность все больше пересекается.

Зачем появились маршрутизаторы

Исторически маршрутизаторы появились для соединения сетей с разными технологиями передачи данных. В начале эры сетей существовало множество локальных сетей (LAN) с различными стандартами: Ethernet, Token Ring, модемные пулы и другие. Эти сети были физически и логически разобщены, поскольку каждая из них использовала свои протоколы адресации и методы передачи данных.

Для решения этой проблемы была введена абстракция в виде IP-адреса — универсального протокола, не привязанного к физическому носителю. Маршрутизаторы стали устройствами, способными связывать сети с разными технологиями передачи данных, обеспечивая маршрутизацию на основе IP-адресов.

Основные функции

  1. Коммутаторы:

    • работают преимущественно на уровне 2 модели OSI (канальный уровень);

    • создают таблицы MAC-адресов, которые определяют, через какой физический порт отправлять трафик;

    • обеспечивают коммуникацию внутри одной локальной сети (LAN).

  2. Маршрутизаторы:

    • работают на уровне 3 модели OSI (сетевой уровень);

    • используют таблицы маршрутизации для определения оптимального пути передачи данных;

    • обеспечивают связь между разными сетями, в том числе с разными технологиями (Ethernet, Frame Relay, ATM, DSL);

    • используют протоколы маршрутизации, такие как OSPF, BGP, IS-IS.

Совместная работа коммутаторов и маршрутизаторов

  • Коммутаторы обеспечивают быстрый обмен данными внутри сети.

  • Маршрутизаторы соединяют локальную сеть с другими сетями, например, с интернетом, обеспечивая связь с серверами.

❯ Современные тенденции


Раньше этих различий хватало для определения работы коммутатора и маршрутизатора, но в современных устройствах все эти функции часто объединяются в L3-коммутаторах, которые совмещают преимущества обоих типов устройств.
На данный момент различия между ними размыто, так как коммутаторы L3 и L3+ (Multiplayer switch) могут выполнять часть функционала маршрутизатора и маршрутизатор может иметь дополнительные физические порты для подключения локальных сетей.

❯ Рассмотрим различия между устройствами

L2-коммутаторы (канальный уровень)

❯ Особенности

  • Рабочий уровень: работают на 2 уровне модели OSI (канальный уровень).

  • Функциональность: обеспечивают передачу данных внутри одной локальной сети (LAN), используя таблицу MAC-адресов для маршрутизации кадров Ethernet.

  • Ограничения: не способны маршрутизировать трафик между разными VLAN или подсетями.

❯ Плюсы

❯ Минусы

  • Отсутствие поддержки IP-адресации.

  • Не подходит для сложных сетевых структур с множеством VLAN.

L3-коммутаторы (сетевой уровень)

❯ Особенности

  • Рабочий уровень: работают на 3 уровне модели OSI (сетевой уровень).

  • Функциональность:

    • выполняют функции коммутатора (L2) и маршрутизатора (L3);

    • поддерживают маршрутизацию между VLAN через интерфейсы SVI (Switch Virtual Interface);

    • поддерживают IP-адресацию и статическую маршрутизацию.

❯ Плюсы

  • Универсальность.

  • Встроенная поддержка маршрутизации.

❯ Минусы

  • Ограниченные возможности динамической маршрутизации (по сравнению с маршрутизаторами). Обычно используется «межвлановая» маршрутизация, когда ip-адрес назначается на VLAN, а не на саб-интерфейс.

  • Более сложная настройка по сравнению с L2-коммутаторами.

L3+ коммутаторы (расширенные возможности сетевого уровня)

❯ Особенности

  • Рабочий уровень: также работают на 3 уровне, но с функциями, приближенными к маршрутизаторам.

  • Функциональность:

    • полноценная поддержка динамических протоколов маршрутизации (OSPF, BGP, EIGRP);

    • расширенные функции управления трафиком: ACL, QoS, NAT;

    • некоторые модели поддерживают MPLS для оптимизации передачи данных.

❯ Плюсы

  • Возможности динамической маршрутизации.

  • Более высокий уровень управления сетью.

❯ Минусы

  • Стоимость.

  • Сложность настройки.

Маршрутизаторы (Router)

❯ Особенности

  • Рабочий уровень: работают на 3 уровне модели OSI и выше.

  • Функциональность:

❯ Плюсы

  • Поддержка работы в глобальных сетях (WAN).

  • Высокий уровень безопасности.

❯ Минусы

  • Не предназначены для высокоскоростного L2-коммутирования.

  • Могут вызывать дополнительные задержки в локальных сетях.

❯ Сравнительная таблица

Характеристика

L2 Switch

L3 Switch

L3+ Switch

Router

Уровень OSI

2

2 и 3

2 и 3

3 и выше

Основная задача

Коммутация LAN

Коммутация и маршрутизация VLAN

Расширенная маршрутизация

Межсетевое соединение

Поддержка маршрутизации

Нет

В основном статическая

Динамическая

Динамическая

VLAN

Да

Да

Да

Нет

QoS

Ограниченная

Да

Да

Да

Подключение к интернету

Нет

Нет

Да

Да

  • L2-коммутаторы идеально подходят для небольших сетей, где маршрутизация не требуется.

  • L3-коммутаторы — оптимальное решение для сетей с VLAN и умеренной сложностью.

  • L3+ коммутаторы находят применение в крупных и сложных инфраструктурах с необходимостью динамической маршрутизации.

  • Маршрутизаторы — необходимы для соединения локальных сетей с внешними сетями, но не заменяют коммутаторы внутри LAN.

Каждое устройство имеет свои уникальные сильные стороны и применяется в зависимости от масштабов и требований сети.

Хотя изначально коммутаторы и маршрутизаторы выполняли строго разные задачи, современное развитие сетевых технологий привело к значительному пересечению их функций.

Однако ключевые различия сохраняются: маршрутизаторы лучше подходят для связи между сетями с различными технологиями и для управления сложными топологиями, тогда как коммутаторы оптимизированы для высокой пропускной способности и коммутации в рамках одной сети. Выбор между этими устройствами зависит от конкретных задач и архитектуры сети.

❯ Что такое сеть? 

Что же такое сеть? Если соединить два компьютера между собой, назначить им IP-адреса, будет ли это сетью? Ответ прост: да, это уже локальная сеть.

Сеть — это соединение двух и более компьютеров, устройств или других компонентов для обмена информацией.

Как только мы подключаем устройства к домашнему маршрутизатору, они становятся частью локальной сети. Маршрутизатор служит шлюзом по умолчанию для всех подключенных устройств и направляет пакеты данных для выхода в интернет.

Но пока не будем забегать вперед, начнем с самого простого — с двух соединенных между собой компьютеров.

❯ Рассмотрим самую простую сеть

Предположим, у нас есть два компьютера. Компьютер №1 имеет mac-адрес 00:00:00:00:00:0a, а компьютер №2 — 00:00:00:00:00:0b.

Мы назначаем компьютеру №1 IP-адрес 192.168.0.1, а компьютеру №2 — IP-адрес 192.168.0.2. Затем мы соединяем их сетевые карты «напрямую» с помощью витой пары.

Адресация компьютера №1 и №2
Адресация компьютера №1 и №2

 Чтобы проверить доступность соседнего компьютера, можно использовать утилиту «ping» и отправить запрос на него.

Однако есть проблема: компьютер №1 не сможет сразу отправить ICMP-запрос компьютеру №2, так как он не знает его mac-адрес. Это можно проверить, введя команду «arp -a» в командной строке (для Windows) и убедившись, что таблица ARP пуста.

Формирование ICMP-запроса невозможна
Формирование ICMP-запроса невозможна

 

Как было сказано в предыдущей статье, ARP (Address Resolution Protocol) — это важнейший протокол в компьютерных сетях, который используется для определения MAC-адреса другого компьютера по известному IP-адресу.

Первым делом компьютер №1 отправит широковещательный запрос в сеть, чтобы узнать, кто такой 192.168.0.2.

Пакет будет выглядеть следующим образом:

  • src mac-адрес 00:00:00:00:00:0a;

  • dst mac-адрес ff:ff:ff:ff:ff:ff (широковещательный mac-адрес);

  • IP-адресов не будет, так как ARP работает на уровне L2;

  • в теле пакета будет информация: кто такой 192.168.0.2, спрашивает 192.168.0.1.

ARP-запрос
ARP-запрос

Подробнее о заголовках L3 уровня (ARP, ICMP и др.) я рассказывал в этой статье.

После того как ARP-ответ будет получен компьютером №2, он сохранит в своей ARP-таблице информацию о IP и mac-адресе компьютера №1.

Теперь компьютеру необходимо отправить ARP-ответ.

Пакет будет выглядеть следующим образом:

  • src mac-адрес 00:00:00:00:00:0b;

  • dst mac-адрес 00:00:00:00:00:0a;

  • IP-адресов не будет, так как ARP работает на уровне L2;

  • в теле пакета будет информация: у IP-адреса 192.168.0.2 mac-адрес - 00:00:00:00:00:0b.

ARP-ответ
ARP-ответ

После того как ARP-ответ поступит к компьютеру №1, он сохранит в своей ARP-таблице информацию о IP и mac-адресе компьютера №2.
Теперь для формирования ICMP-запроса известна вся информация, и от компьютера №1 будет сформирован следующий пакет:

  • src mac-адрес 00:00:00:00:00:0a;

  • dst mac-адрес 00:00:00:00:00:0b;

  • src IP-адрес 192.168.0.1;

  • dst IP-адрес 192.168.0.2

  • в теле пакета будет служебная информация для ICMP-протокола (подробнее в этой статье).

ICMP-запрос
ICMP-запрос

После того как ICMP-запрос поступит на компьютер №2, тот отправит ICMP-ответ, так как уже знает mac-адрес соседнего устройства из своей ARP-таблицы.

Ответ будет выглядеть следующим образом: 

  • src mac-адрес 00:00:00:00:00:0b;

  • dst mac-адрес 00:00:00:00:00:0a;

  • src-IP-адрес 192.168.0.2;

  • dst-IP-адрес 192.168.0.1;

  • в теле пакета будет служебная информация для ICMP-протокола.

После того как все эти пакеты прошли свой не долгий путь, в утилите «ping» появится первое сообщение о доступности соседнего устройства.

ICMP-ответ
ICMP-ответ

❯ Три компьютера и сетевой концентратор (Hub)

❯ Что если нам нужно подключить больше компьютеров к одной сети?

Для этого в простых сетях используют сетевой концентратор, он же hub/хаб.

❯ Как работает хаб?

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

❯ Плюсы и минусы использования хаба

Хаб — это недорогое сетевое устройство, которое подходит для соединения небольших локальных сетей. Однако, если в сети используется большое количество устройств, возникают проблемы.

  1. Эффективность: хаб работает на уровне L1 модели OSI, что означает, что он не различает адреса. Все пакеты передаются всем устройствам, кроме отправителя, независимо от их назначения.

  2. Конфликт пакетов: поскольку данные передаются одновременно всем устройствам, в сети могут возникать коллизии. Чем больше устройств подключено, тем выше вероятность коллизий.

  3. Пропускная способность: каждый порт хаба делит общую пропускную способность сети, что приводит к её снижению по мере увеличения числа подключений.

Современные сети используют коммутаторы (switch), которые работают на уровне L2, что позволяет им направлять пакеты только устройствам-адресатам.

❯ Пример работы хаба

Предположим, у нас есть хаб и три компьютера с IP-адресами:

  • компьютер №1: 192.168.0.1;

  • компьютер №2: 192.168.0.2;

  • компьютер №3: 192.168.0.3.

Все три компьютера подключены к хабу. Теперь, если мы с компьютера №1 отправим запрос «ping» на компьютер №2, то процесс будет происходить следующим образом.

Шаг 1. ARP-запрос

Компьютер №1 сначала отправит ARP-запрос в сеть, чтобы узнать MAC-адрес компьютера №2. Этот запрос будет выглядеть так:

  • src MAC-адрес: 00:00:00:00:00:0a;

  • dst MAC-адрес: ff:ff:ff:ff:ff:ff (широковещательный адрес);

  • IP-адреса в пакете отсутствуют, так как ARP работает на уровне L2.

ARP-запрос к компьютеру №2
ARP-запрос к компьютеру №2

Действия хаба

Хаб получит этот пакет через порт, к которому подключен компьютер №1, и передаст его на все остальные порты, кроме порта-отправителя. Таким образом, ARP-запрос поступит как на компьютер №2, так и на компьютер №3. Компьютеры №2 и №3 сохранят в ARP-таблице запись о компьютере №1, так как запрос был широковещательным. Однако ответит на него только компьютер №2, так как IP-адрес в запросе соответствует его собственному.

Сохранение mac-адреса в arp таблицу
Сохранение mac-адреса в arp таблицу

Ответ от компьютера №2

Компьютер №2 отправит ARP-ответ, который пройдет через хаб и будет доставлен компьютеру №1. Компьютер №3 проигнорирует этот ответ, так как он не предназначен ему.

ARP-ответ будет выглядеть следующим образом:

  • src MAC-адрес: 00:00:00:00:00:0b;

  • dst MAC-адрес: 00:00:00:00:00:0a;

  • IP-адреса в пакете отсутствуют, так как ARP работает на уровне L2.

ARP-ответ компьютеру №1
ARP-ответ компьютеру №1

Шаг 2. ICMP-запрос и ответ

После завершения ARP-обмена компьютер №1 сформирует ICMP-запрос и отправит его на компьютер №2. Запрос и последующий ответ будут переданы аналогичным образом через хаб, но пакеты также дойдут до всех устройств в сети, создавая дополнительную нагрузку.

ICMP-запрос/ответ
ICMP-запрос/ответ

❯ Особенности работы ARP в сети с хабом

В такой схеме:

  1. Компьютеры №1 и №2 знают о существовании друг друга;

  2. Компьютер №3 знает о компьютере №1, так как получил его ARP-запрос, но не знает о компьютере №2.

Небольшое пояснение почему

Компьютер №3 знает о Компьютере №1 из своей ARP-таблицы, но не знает о Компьютере №2 по следующим причинам:

  1. Обработка ARP-запросов.

    ARP-запросы обрабатываются операционной системой компьютера, а не сетевой платой. Однако, поскольку ARP-запрос имеет широковещательный MAC-адрес назначения (ff:ff:ff:ff:ff:ff), он достигает всех устройств в локальной сети и принимается сетевой платой;

  2. Сохранение записи в ARP-таблице.

    Хотя Компьютер №3 получает ARP-запрос, адресованный другому IP-адресу (например, Компьютеру №1), он не отвечает на него. Однако информация из тела пакета (IP-адрес и MAC-адрес Компьютера №1) может быть сохранена в ARP-таблице Компьютера №3 как часть пассивного процесса обучения;

  3. Отбрасывание ARP-ответа.

    ARP-ответ, отправленный Компьютером №1, также достигает Компьютера №3. Однако, поскольку MAC-адрес назначения в этом пакете не совпадает с MAC-адресом сетевой карты Компьютера №3, пакет отбрасывается сетевой платой на аппаратном уровне. В результате информация о Компьютере №2 не попадает в ARP-таблицу Компьютера №3.

Если мы попытаемся «пингануть» с компьютера №2 компьютер №3, произойдет ARP-обмен, как в примере выше. Однако если мы попытаемся с компьютера №3 «пингануть» компьютер №1, процесс будет следующим:

  1. Компьютер №3, зная MAC-адрес компьютера №1 из своей ARP-таблицы, сразу отправит ICMP-запрос;

  2. Компьютер №1, не имея записи о компьютере №3, отбросит запрос и отправит широковещательный ARP-запрос;

  3. После получения ARP-ответа от компьютера №3 компьютер №1 сможет ответить на ICMP-запрос;

  4. Компьютер №3 отправит новый ICMP-запрос, на который компьютер №1 успешно ответит.

Когда мы запускаем утилиту «ping», некоторые пакеты теряются. Это происходит из-за того, что требуется ARP-обмен данными между всеми промежуточными устройствами. Именно поэтому возникает необходимость в обмене данными с использованием протокола ARP между всеми устройствами, находящимися между источником и получателем данных.

Обмен между компьютером №3 и №1
Обмен между компьютером №3 и №1

❯ Три компьютера и L2 коммутатор

❯ Как обеспечить стабильность работы сети и исключить коллизии? 

Ответ прост: использовать L2-коммутатор.

❯ Принцип работы L2-коммутатора

Коммутатор работает на канальном уровне модели OSI и использует MAC-адреса для пересылки данных. Рассмотрим на примере, как это происходит.

Устройства в сети:

  • компьютер №1: 192.168.0.1;

  • компьютер №2: 192.168.0.2;

  • компьютер №3: 192.168.0.3;

  • коммутатор №1: MAC-таблица изначально пуста.

Шаг 1. ARP-запрос

Когда компьютер №1 отправляет запрос «ping» на компьютер №2, он сначала формирует ARP-запрос для определения MAC-адреса получателя. Этот запрос поступает на коммутатор, который, не имея записей в MAC-таблице, рассылает его на все активные порты, кроме порта-отправителя.

Пустая MAC-таблица на коммутаторе
Пустая MAC-таблица на коммутаторе

Действия коммутатора:

  • Коммутатор добавляет в свою MAC-таблицу запись о компьютере №1, связав его MAC-адрес с портом, через который пришел запрос;

  • ARP-запрос доставляется компьютерам №2 и №3.

Первая запись в MAC-таблицу
Первая запись в MAC-таблицу

Ответы компьютеров:

  • Компьютер №2, распознав свой IP-адрес, отправляет ARP-ответ;

  • Компьютер №3 игнорирует запрос, но сохраняет запись о MAC-адресе компьютера №1 в своей ARP-таблице.

Коммутатор, получив ARP-ответ от компьютера №2, обновляет свою MAC-таблицу, добавляя запись о MAC-адресе компьютера №2.

Вторая запись в MAC-таблицу
Вторая запись в MAC-таблицу

Шаг 2. ICMP-запрос и ответ

После завершения ARP-обмена компьютер №1 отправляет ICMP-запрос компьютеру №2. Благодаря MAC-таблице, коммутатор направляет пакеты только в порт, подключенный к компьютеру №2, избегая лишней нагрузки на другие устройства.

ICMP-запрос/ответ через коммутатор
ICMP-запрос/ответ через коммутатор

❯ Особенности работы ARP в сети с коммутатором

  1. Компьютеры №1 и №2 знают о существовании друг друга;

  2. Компьютер №3 знает MAC-адрес компьютера №1, но не знает о существовании компьютера №2;

  3. В MAC-таблице коммутатора нет записи о компьютере №3.

Если компьютер №3 отправит запрос «ping» на компьютер №1, процесс будет следующий:

  1. Компьютер №3 сразу формирует ICMP-запрос, используя MAC-адрес из своей ARP-таблицы;

  2. Коммутатор передает пакет на порт компьютера №1;

  3. компьютер №1, не имея записи о компьютере №3, отправляет ARP-запрос;

  4. после завершения ARP-обмена компьютер №1 отвечает на ICMP-запрос.

Третья запись в MAC-таблице
Третья запись в MAC-таблице

❯ Что будет если во время работы коммутатор перезагрузится?

Если коммутатор перезагрузится или его MAC-таблица очистится, он начнет временно работать как хаб, передавая пакеты на все порты, пока MAC-таблица не будет заполнена.

Очистка MAC-таблицы
Очистка MAC-таблицы

В этой ситуации происходит следующее:

  1. Пакет, адресованный компьютеру №2, поступает на коммутатор. Поскольку MAC-таблица коммутатора пуста, чтобы обеспечить корректную работу сети, коммутатор передает эти пакеты на все порты, кроме того порта, через который они были получены. Затем в MAC-таблицу коммутатора добавляется первая запись о компьютере №1;

Первая запись в MAC-таблицу
Первая запись в MAC-таблицу
  1. Затем коммутатор получит пакет, предназначенный для компьютера №2. Поскольку в MAC-таблице нет записи об этом компьютере, чтобы обеспечить корректную работу сети, коммутатор передаст эти пакеты на все порты, кроме того порта, через который они были получены. После этого в MAC-таблицу коммутатора будет добавлена первая запись о компьютере №2;

  2. Далее сеть будет работать так же, как и до перезагрузки или очистки MAC-таблицы. 

Вторая запись в MAC-таблицу
Вторая запись в MAC-таблицу

Ключевое отличие коммутатора от концентратора (хаба) заключается в следующем: хаб, независимо от обстоятельств, всегда будет пересылать пакеты во все порты, кроме того, из которого этот пакет был получен. В свою очередь, коммутатор передает пакеты на все порты до тех пор, пока в его MAC-таблице не появятся записи. Как только в таблице появляются записи, коммутатор направляет пакеты в соответствующие порты.

❯ Три компьютера и несколько L2 коммутаторов

Рассмотрим, как работает сеть с несколькими коммутаторами.

Устройства в сети:

  • компьютер №1: 192.168.0.1;

  • компьютер №2: 192.168.0.2;

  • компьютер №3: 192.168.0.3;

  • коммутатор №1 и №2: MAC-таблица изначально пуста.

Все три компьютера подключены к нескольким коммутаторам. Если с компьютера №1 отправить запрос «ping» на компьютер №2, ARP-запрос попадет на коммутатор и будет направлен во все активные порты, поскольку это широковещательный запрос.

MAC-таблица пустая у обоих коммутаторов
MAC-таблица пустая у обоих коммутаторов

Шаг 1. ARP-запрос

Когда компьютер №1 отправляет ARP-запрос компьютеру №2:

  1. Коммутатор №1:

    • передает запрос на все порты, кроме порта-отправителя;

    • сохраняет в MAC-таблицу запись о компьютере №1.

Первая запись в MAC-таблицу коммутатора №1
Первая запись в MAC-таблицу коммутатора №1
  1. Коммутатор №2:

    • получает запрос от коммутатора №1 и передает его на свои порты;

    • добавляет в MAC-таблицу запись о MAC-адресе компьютера №1.

Компьютеры №2 и №3 сохраняют запись о MAC-адресе компьютера №1.

Первая запись в MAC-таблицу коммутатора №2
Первая запись в MAC-таблицу коммутатора №2

Шаг 2. ICMP-запрос и ответ

Когда компьютеры начинают обмениваться ICMP-пакетами, каждый коммутатор использует свои MAC-таблицы для передачи пакетов только на целевые порты.

Вторая запись в MAC-таблицу коммутатора №1 и №2
Вторая запись в MAC-таблицу коммутатора №1 и №2

Если с компьютера №3 отправить запрос «ping» на компьютер №2, произойдет ARP-обмен данными между устройствами. Коммутаторы сохранят необходимые записи в своих MAC-таблицах, и ICMP-пакеты будут передаваться в соответствии с этими таблицами.

Третья запись в MAC-таблицу коммутатора №1 и №2
Третья запись в MAC-таблицу коммутатора №1 и №2

❯ Особенности работы с несколькими коммутаторами

  • У каждого коммутатора своя уникальная MAC-таблица.

  • Коммутатор №2 может иметь одну запись для порта с несколькими устройствами, подключенными через другой коммутатор.

Каждый коммутатор формирует свою MAC-таблицу, основываясь на трафике, проходящем через его порты. Чем больше устройств подключено за одним портом, тем больше записей будет ассоциировано с этим портом. Однако даже в сложных сетях коммутаторы эффективно справляются с передачей пакетов, минимизируя нагрузку на сеть.

❯ Заключение

Подводя итоги, мы рассмотрели ключевые устройства и их функции в сетях, такие как коммутаторы и маршрутизаторы, их различия и области применения. Также мы разобрали базовые принципы работы сетей на примере нескольких подключенных устройств, ARP-запросов, ICMP-протокола и их взаимодействия.

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

Эти знания помогут глубже понять основы проектирования сетей и взаимодействия их компонентов.


Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud  в нашем Telegram-канале 

Перейти ↩

? Читайте также:

Комментарии (33)


  1. surarus
    13.01.2025 09:17

    ого! Круто!
    Очень развернуто!
    За одно только старание над статьей, большое спасибо!
    Текст, картинки и подробный разбой!


    1. ProstoKirReal Автор
      13.01.2025 09:17

      Спасибо)


  1. MasterIT75
    13.01.2025 09:17

    Спасибо. Почитал. Все просто и подробно.


    1. ProstoKirReal Автор
      13.01.2025 09:17

      Спасибо, стараемся)


  1. Mi11er
    13.01.2025 09:17

    Это же не цикл статей, дубль СДСМ ?


    1. ProstoKirReal Автор
      13.01.2025 09:17

      Сдсм больше для того как это все настроить, я же хочу рассказать как это работает.


  1. Tihron
    13.01.2025 09:17

    А если мы подключим третий коммутатор и, с его помощью, соединим первый и второй?


    1. Tihron
      13.01.2025 09:17

      По-сути, тогда должен записаться вход первый среди входящих. А если мы отключим устройство №1 от коммутатора №1 и подключим к коммутатору №3? Нужно как-то удалить данные об компьютере №1 и, когда он будет подключен к коммутатору №3, то записать информацию о нём, пусть он будет компьютер №1.1, тогда надо перезаписать его в таблице


      1. Tihron
        13.01.2025 09:17

        То есть, откуда пришел первый ARP-запрос, то мы и записываем как местонахождение этого устройства. А если память будет переполняться? Удаляем самые старые записи?


    1. ProstoKirReal Автор
      13.01.2025 09:17

      Имеете в виду если к 2м коммутаторам подключены конечные устройства и один коммутатор промежуточный?


      1. Tihron
        13.01.2025 09:17

        Нет, треугольником


        1. Tihron
          13.01.2025 09:17

          Грубо говоря, когда есть несколько путей, по которым можно отправить пакет. Таких маршрутов, в которых путь между двумя узлами используется не более одного раза


        1. Akina
          13.01.2025 09:17

          В случае кольца работают дополнительные протоколы (STP, ERPS и т.п.), которые отключают часть портов, преобразуя кольцо в дерево. Или всё ложится из-за бродкастового шторма.


  1. lerdo
    13.01.2025 09:17

    Немного удивила подача материала, как будто пропущена первая глава. Коммутатор - L2, маршрутизатор - L3, в первых же строчках. Но простите, если это материал для новичков - объясните что такое L2 и L3 в OSI и чем OSI отличается от TCP/IP, а уже потом объясняйте их взаимодействие с железками. А если это рассчитано на людей знакомых с сетевыми моделями, то наверное им уже не будет интересен этот материал.


    1. Tihron
      13.01.2025 09:17

      В самом начале же есть гиперссылка


    1. ProstoKirReal Автор
      13.01.2025 09:17

      В предыдущих статьях я уже затрагивал эти темы, в данной статье не хотел еще раз повторяться. Старался дать на все темы ссылки.

      Можете написать в каких именно местах есть вопросы ?


      1. Ivanii
        13.01.2025 09:17

        Практически все управляемое современное(и не очень) оборудование работает примерно как коммутатор но аппаратно по хеш таблице(таблицам), то чего нет в таблице идет на обработку процу и он добавляет новые записи в таблицу.


  1. Akina
    13.01.2025 09:17

    Для решения этой проблемы была введена абстракция в виде IP-адреса — универсального протокола, не привязанного к физическому носителю.

    Эммм... а можно не согласиться? IP - не единственный, и уж тем более не первый, маршрутизируемый протокол. И если описанное было одной из целей создания, то уж точно не единственной.

    Маршрутизаторы стали устройствами, способными связывать сети с разными технологиями передачи данных

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

    Сеть — это соединение двух и более компьютеров, устройств или других компонентов для обмена информацией.

    Вот скажите, если у меня ОДИН компьютер, на котором клиент с адреса 127.0.0.3 общается с сервером 127.0.0.2 - это что, не сеть?

    Как только мы подключаем устройства к домашнему маршрутизатору, они становятся частью локальной сети.

    А если мы подключаем домашние устройства к домашнему коммутатору - они что, не становятся частью локальной сети?


    1. Tihron
      13.01.2025 09:17

      Насчёт одного компьютера: один IP-адрес присваивается одному компьютеру. То есть, если компьютер не подключен к сети (к порту не подключен кабель/к порту подключен кабель, который не подключен к другому устройству), то компьютер это обнаружит и поймет, что он не подключен ни к какой сети. Адреса 127.0.0.х — это, скорее всего, адреса локального хоста. В итоге работает программная эмуляция сети, не сеть между устройствами, а сеть между программами внутри устройства. Вообще, интересный вопрос, я задумался, поразмышляв на досуге. (Я не автор поста, если что)


      1. Akina
        13.01.2025 09:17

        Адреса 127.0.0.х — это, скорее всего, адреса локального хоста.

        Так и есть, вы совершенно правы.

        В итоге работает программная эмуляция сети, не сеть между устройствами, а сеть между программами внутри устройства.

        Сеть - это необязательно между устройствами, сеть - она между узлами сети, даже если эти узлы есть два разных входа в один и тот же сетевой стек. Иначе получается парадокс - сервер есть, клиент есть, сетевой обмен есть, а сети нет.

        Насчёт одного компьютера: один IP-адрес присваивается одному компьютеру.

        Я бы сказал, что адрес - это именованная точка входа в сетевой стек. У одного экземпляра сетевого стека их может быть несколько. Да собственно их всегда несколько. Даже если есть один комп с одной сетевой картой и одним IP-адресом на ней, и мы не смотрим на адреса подсети локалхоста, всё равно у сетевого стека минимум две точки входа, связанные с сетевой картой, одна "именуется" по МАС-адресу, вторая по IP-адресу.


        1. max1960
          13.01.2025 09:17

          Сетевые устройства также являются узлами сети (см DTE и DCE). Сетевой адрес это всего лишь идентификатор устройства в сети, по которому его могут найти и к нему могут обращаться другие устройства. Терминов типа "входа в сетевой стек" не слышал ни разу за 20+ лет работы в телекоме.


          1. Akina
            13.01.2025 09:17

            Сетевой адрес это всего лишь идентификатор устройства в сети, по которому его могут найти и к нему могут обращаться другие устройства.

            Это что есть адрес снаружи. Но что он есть с точки зрения самого устройства?

            И описанный мной случай - формально устройство-то обращается само к себе, оба адреса - локалхост.

            Терминов типа "входа в сетевой стек" не слышал ни разу за 20+ лет работы в телекоме.

            Вы знаете термин, который определяет IP-адрес именно как именованный интерфейс с точки зрения самого узла, а не того, кто к нему обращается? Скажите его (или их), буду признателен. Или считаете, что такая формулировка неудачна? Сформулируйте лучше.


      1. Aelliari
        13.01.2025 09:17

        один IP-адрес присваивается одному компьютеру

        Может ли, один и тот же глобально-маршрутизируемый IP-адрес быть присвоен нескольким компьютерам?


        1. ProstoKirReal Автор
          13.01.2025 09:17

          Это я расскажу в следующих статьях. При использовании NAT, один глобальный "Белый адрес" присваивает нескольким локальным компьютерам "Серий адрес"


    1. ProstoKirReal Автор
      13.01.2025 09:17

      Эммм... а можно не согласиться? IP - не единственный, и уж тем более не первый,

      Я не говорил о том, что он единственный и первый протокол, просто стал универсальным.

      Вы явно путаете маршрутизаторы и конверторы интерфейса.

      Как раз маршрутизатор это и обеспечивает. Примеры - WiFi, где маршрутизируется беспроводная и проводная технология. А также различные технологии передачи данных, включая DSL (цифровая абонентская линия).

      Вот скажите, если у меня ОДИН компьютер, на котором клиент с адреса 127.0.0.3 общается с сервером 127.0.0.2 - это что, не сеть?

      Это все еще 2 устройства. Сервер и клиент. Сеть — это соединение ДВУХ и более компьютеров, УСТРОЙСТВ или других компонентов для обмена информацией.
      Приведу пример гипервизора. Когда мы создаем несколько виртуальных машин на одном физическом устройстве и пробрасываем их между собой, то это 2 и более устройств, просто виртуальных.

      А если мы подключаем домашние устройства к домашнему коммутатору - они что, не становятся частью локальной сети?

      Отвечая на Ваш вопрос, да становится.


  1. TheMrWhite
    13.01.2025 09:17

    сам коммутатор имеет свой IP/MAC адрес? он как-то используется при коммутации?


    1. Akina
      13.01.2025 09:17

      Сам коммутатор - нет, не имеет. А вот его интерфейс управления (если это управляемый коммутатор) - да, имеет. Но интерфейс управления - это, считай, подключенный к коммутатору компьютер, только компьютер специализированный и подключенный через отдельный интерфейс.


  1. Marsel323
    13.01.2025 09:17

    Очень полезная статья. Освежил память со времён университета.


  1. itGuevara
    13.01.2025 09:17

    Как то думал про такую идею. Со своего компа Вова отправляет Мaше по почте "Hello" и смотрит через net-VR-шлем на провод и видит свое сообщение в разрезе всех протоколов. Начать можно просто с визуализации сообщения на разных уровнях. А потом в привязке к шлему - назвать это "Цифровым двойником сети", который при наведении на конкретный кабель показывает передаваемые по нему сообщения (фильтром можно оставить только прикладного уровня и только интересующего приложения).

    Т.е. сетевой сканер (sniffers), но для виртуального обозрения передаваемых по сети (конкретному проводу) данных с упрощением, т.е. часть служебной информации скрывать (настраиваемым фильтром), а для какой-то части давать подсказку, чтобы для обычного юзера было адаптировано (не Wireshark -ом же его пугать). Может есть уже такие?


  1. Vest
    13.01.2025 09:17

    Я правильно понимаю, что потерянный первый ICMP-пакет (что-то с превышением времени ожидания) — это нормально для ситуаций, когда мы пингуем устройство, которое нас ещё не знает?

    Почему сообщение тогда так сформулировано, а не, скажем, «вы нам незнакомы»?

    И почему сторонние сервера (типа Гугла) пингуются с первой попытки? Это потому, что в качестве MAC-адреса выступает мой провайдер или кто-нибудь, кого Гугл уже видел и содержит информацию в ARP-таблице?

    Я понимаю, что вы не автор статьи, но быть может знаете ответ. Спасибо заранее.


    1. outlingo
      13.01.2025 09:17

      что в качестве MAC-адреса выступает мой

      ... маршрутизатор


    1. Akina
      13.01.2025 09:17

      ICMP пингует по IP. И вашей станции не нужен МАС конечного, пингуемого, устройства. Вам нужен только МАС следующего по маршруту узла - т.е. обычно вашего дефолтного шлюза, который почти наверняка вам известен. То же будет и со следующим узлом (ближайшим коммутатором или маршрутизатором), и с последующим... то есть ситуация, когда нужно выяснять, на каком порте находится МАС назначения, крайне редкая. Грубо говоря, она возникает один раз при включении устройства, и больше не возникнет до его выключения/перезагрузки.


  1. NekitGeek
    13.01.2025 09:17

    Понятнейшая статья и комменты, проясняющие суть! Жалко, её не было пару месяцев назад, когда я писал курсовую.