Добро пожаловать в захватывающий мир Ethernet — место, где кадры бороздят кабели, а коллизии учат станции быть терпеливыми. В этой статье мы раскроем все тайны метода доступа CSMA/CD — самого известного способа, как компьютеры договариваются, кто и когда может болтать по общему кабелю. Готовы? Тогда вперед!


Что такое CSMA/CD и зачем он нужен?

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

Метод доступа CSMA/CD (Carrier Sense Multiple Access with Collision Detection) — это правила движения на этом мосту. Он позволяет:

  • Carrier Sense — слушать, не занят ли кабель (несущая частота);
  • Multiple Access — всем иметь равное право на доступ;
  • Collision Detection — сразу заметить, если два узла говорят одновременно, и быстро исправить ситуацию.

Применяется CSMA/CD исключительно в сетях с общей шиной, таких как классический Ethernet.


Как происходит передача кадра?

Данные в Ethernet упаковываются в специальные контейнеры — кадры. Каждый кадр содержит:

  • Преамбулу — 7 байт с сигналом 10101010 для синхронизации;
  • Стартовый байт кадра;
  • Адрес получателя;
  • Адрес источника;
  • Поле данных (от 46 до 1500 байт);
  • Контрольную сумму (CRC) для проверки целостности.

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


Коллизии: почему и как они возникают?

Несмотря на прослушивание кабеля, коллизии всё же происходят. Как? Представьте, что два водителя одновременно решили, что мост свободен, и начали ехать навстречу друг другу — бам! На кабеле сигналов с двух станций наложились друг на друга и испортили данные.

Коллизия — нормальное явление в Ethernet. Вот как её распознают:

  • Каждая станция в процессе передачи следит за сигналами на кабеле.
  • Если сигнал, который она отправляет, отличается от того, что принимает — значит, кто-то ещё тоже передает, произошла коллизия.
  • В этот момент станция тут же прекращает передачу и посылает jam-последовательность — специальный 32-битный сигнал, чтобы оповестить всех о конфликте.

Что происходит после коллизии?

Чтобы не устраивать вечные перестрелки на кабеле, после коллизии станции делают паузу, длина которой выбирается случайно по алгоритму с названием «двоичная экспоненциальная отсрочка» (Binary Exponential Backoff).

Принцип такой:

  • После первой коллизии пауза — 0 или 1 интервал отсрочки;
  • После второй — от 0 до 3 интервалов;
  • И так далее, максимум до 10-й попытки;
  • После 16 неудачных попыток кадр считается потерянным.

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


Важные временные параметры: slot time, interframe gap и время двойного оборота

В сети Ethernet тайминги — как светофоры на перекрестке. Рассмотрим основные:

Параметр Значение Описание
Интервал отсрочки 512 битовых интервалов (51,2 мкс при 10 Мбит/с) Минимальное время для обнаружения коллизии
Межкадровый интервал (IPG) 9.6 мкс Пауза между кадрами для подготовки к передаче следующего
Время двойного оборота (PDV) ~57.5 мкс (10 Мбит/с) Время прохождения сигнала до дальнего узла и обратно

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


Минимальная длина кадра и максимальная длина кабеля: почему важна эта связь?

Минимальная длина кадра — 64 байта (512 бит), включая заголовки и контрольную сумму (без преамбулы). Сигнал коллизии должен дойти до самой удаленной станции и вернуться обратно, пока кадр еще передается.

Максимальная длина сети при скорости 10 Мбит/с — 2500 метров (несколько сегментов, соединенных повторителями).

При увеличении скорости до 100 Мбит/с (Fast Ethernet) максимальная длина снижается до ~210 м, а при 1 Гбит/с — до 25 м, если не применять дополнительные хитрости (например, увеличение минимального размера кадра).


Ограничения по числу узлов и длине сети

Стандарт Ethernet накладывает ограничения:

Параметр Значение
Максимальное расстояние между узлами 2500 м (10 Мбит/с)
Максимальное число узлов в сети 1024

Кроме того, физическая среда и оборудование могут наложить свои ограничения.


Как растут скорости — Fast Ethernet и Gigabit Ethernet

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

Стандарт Скорость Максимальная длина сегмента
Ethernet 10Base-T 10 Мбит/с 2500 м
Fast Ethernet 100Base-TX 100 Мбит/с 210 м
Gigabit Ethernet 1000Base-T 1 Гбит/с 25 м (без улучшений)

Для Gigabit Ethernet минимальная длина кадра была увеличена до 512 байт, чтобы компенсировать малую длину кабеля и сохранить работоспособность CSMA/CD.


Форматы кадров Ethernet: не все кадры одинаковы

В Ethernet существует несколько форматов кадров, различающихся по полям и структурам:

Тип кадра Особенности
Ethernet II (DIX) Стандартный кадр с 16-битным полем типа (Ethertype)
IEEE 802.3 + LLC Использует поле длины и заголовок LLC (IEEE 802.2)
Raw 802.3 Версия с полем длины, используемая, например, в Novell
Ethernet SNAP Расширение 802.3/LLC с дополнительным заголовком SNAP

Все кадры начинаются с преамбулы для синхронизации.


Физические среды и топологии Ethernet

Сеть Ethernet может строиться на разных кабелях и топологиях:

Стандарт Кабель Максимальная длина сегмента Топология
10Base5 Коаксиальный (толстый) RG-11 500 м Шина
10Base2 Коаксиальный (тонкий) RG-58 185 м Шина
10Base-T Витая пара (UTP) 250 м Звезда
10Base-F Оптоволокно многомодовое 1800 м Звезда/шина

Fast Ethernet переходит на витую пару и оптику, полностью отказавшись от коаксиала.


Производительность Ethernet: сколько кадров в секунду?

Максимальная теоретическая производительность зависит от длины кадра и пауз между кадрами. Рассчитаем на примере 10 Мбит/с Ethernet:

Параметр Значение
Минимальный кадр (с преамбулой) 72 байта (576 бит)
Время передачи кадра 57.6 мкс
Межкадровый интервал 9.6 мкс
Полный период кадра 67.2 мкс
Максимальное число кадров в секунду 14 880 п/с

Полезная пропускная способность зависит от длины поля данных:

Длина данных в кадре Полезная скорость (Мбит/с)
46 байт (мин.) 5.48
1500 байт (макс.) 9.76

Jam-последовательность — сигнал бедствия для коллизий

Jam-сигнал — это 32-битная последовательность, которую станция посылает сразу после обнаружения коллизии, чтобы усилить сигнал конфликта. Это как громкий гудок в автомобиле — чтобы все поняли: "Стоп, авария! Никто не говорит!"


Двоичная экспоненциальная отсрочка — игра в жмурки с коллизиями

Чтобы не начинать передачу одновременно после коллизии, станции выбирают паузу случайно в диапазоне, который удваивается после каждой попытки (до 10 раз). Это снижает шанс повторной аварии.


Метод CSMA/CD: простота — это цена свободы

CSMA/CD — очень простой, но вероятностный метод. Он не гарантирует, что станция обязательно передаст данные, особенно при загруженной сети. Однако благодаря своей дешевизне и эффективности в малонагруженных сетях Ethernet стал повсеместным.


Часто задаваемые вопросы (FAQ)

Что произойдет, если коллизии будут нераспознанными?
Данные испортятся, кадр будет отбракован, и протоколы верхних уровней (TCP) повторят передачу, но это займет намного больше времени и снизит пропускную способность.

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

Почему длина сети уменьшается при увеличении скорости?
Потому что время передачи кадра сокращается, и коллизии сложнее обнаружить вовремя.

Можно ли использовать CSMA/CD в Wi-Fi?
В Wi-Fi используют похожий, но другой метод — CSMA/CA (с избеганием коллизий), так как радиосреда сложнее.


Чек-лист для понимания CSMA/CD в Ethernet

  • [x] Все узлы слушают несущую частоту перед передачей
  • [x] Если кабель занят — ждем
  • [x] При коллизии — посылаем jam-сигнал и прекращаем передачу
  • [x] Ждем случайное время (экспоненциально увеличивающееся) и пробуем снова
  • [x] Минимальная длина кадра 64 байта — чтобы успеть обнаружить коллизию
  • [x] Максимальная длина сети зависит от скорости передачи
  • [x] При 10 Мбит/с — длина до 2500 м, при 100 Мбит/с — до 210 м, при 1 Гбит/с — до 25 м (с коррекциями)

Советы для сетевого инженера новичка

  • Подбирайте длину сегментов сети с запасом по времени двойного оборота.
  • Используйте коммутаторы для разделения сетей и снижения коллизий.
  • При проектировании быстрых сетей учитывайте ограничение длины кабеля.
  • Не пытайтесь передавать слишком короткие кадры — это чревато потерями.
  • Мониторьте количество коллизий — если их слишком много, сеть перегружена.

Ethernet и его метод CSMA/CD — это классика, которая работает, когда все играют по правилам. А когда кто-то пытается нарушить порядок, коллизии напоминают всем: "Стоп! Ждем и договариваемся!" Так сеть держит баланс между скоростью и порядком, позволяя миллионам устройств общаться без хаоса.