Тема 03

Физический уровень: сигналы, среды и пределы скорости

Физический уровень: сигналы, среды и пределы скорости

В первых двух темах сеть рассматривалась как система узлов и каналов, а канал — как «труба» с двумя числами: пропускной способностью и задержкой. Многоуровневая модель из темы 2 поместила под всеми протоколами физический уровень (англ. physical layer) и поручила ему единственную обязанность — доставить последовательность битов от одного конца канала к другому. Как именно это делается, оставалось за скобками. Между тем именно здесь возникают ограничения, которые не может обойти ни один протокол верхних уровней: почему по паре медных проводов нельзя передать сколь угодно много битов в секунду, почему оптическая линия длиной 40 км работает, а 120 км без усилителя — нет, почему в принятом кадре иногда оказываются искажённые биты и как приёмник узнаёт об этом.

Задача физического уровня — превратить биты в физическую величину (напряжение, интенсивность света, электромагнитную волну), передать её через среду и восстановить биты на приёмной стороне. Среда искажает сигнал: ослабляет его, сглаживает фронты, добавляет шум и помехи от соседних линий. Поэтому скорость передачи ограничена не изобретательностью инженеров, а свойствами канала — шириной полосы частот, которую он пропускает, и отношением мощности сигнала к мощности шума. Эти ограничения количественно выражаются двумя классическими результатами — теоремами Найквиста и Шеннона.

Изложение построено так. Сначала вводятся понятия сигнала, спектра и полосы пропускания, а также логарифмические единицы — децибелы, без которых невозможно читать технические характеристики. Затем выводятся пределы скорости передачи и разбираются числовые примеры для телефонной линии и Wi-Fi. Третий раздел посвящён тому, как биты превращаются в сигнал: модуляции и линейному кодированию. Четвёртый описывает среды передачи — витую пару, коаксиальный кабель, оптоволокно и радиоканал. Пятый раздел рассматривает ошибки передачи и способы их обнаружения — от контроля чётности до циклического избыточного кода, который используется в каждом кадре Ethernet. Завершает тему обзор физического уровня Ethernet: обозначения стандартов, автосогласование и дуплекс.

Сигнал, спектр и полоса пропускания

Сигнал, символ и скорость передачи

Сигнал (англ. signal) — изменение во времени физической величины, несущее информацию. Передатчик делит время на равные интервалы и в каждом интервале выставляет одно из нескольких допустимых состояний сигнала: уровень напряжения, фазу или амплитуду синусоиды, яркость лазера. Такое состояние на одном интервале называется символом (англ. symbol), а число символов, передаваемых в секунду, — символьной скоростью, или скоростью модуляции (англ. symbol rate, baud rate); единица измерения — бод (Бд), по имени Эмиля Бодо, изобретателя телеграфного кода.

Если символ может принимать M различных состояний, он переносит log₂M битов. Отсюда связь битовой скорости R (бит/с) с символьной скоростью S (Бд):

R = S · log₂ M

При двух уровнях (M = 2) битовая и символьная скорости совпадают, и их часто путают. При четырёх уровнях каждый символ несёт два бита, и линия с символьной скоростью 125 МБд передаёт 250 Мбит/с. Различать эти величины важно: от символьной скорости зависит, какая полоса частот нужна каналу, а от числа уровней — насколько хорошо приёмник должен различать соседние состояния на фоне шума. Именно в этой паре — «чаще» или «больше уровней» — заключены все компромиссы физического уровня, и обе теоремы, рассматриваемые далее, отвечают на вопрос, где проходят границы каждого из путей.

Приёмник должен не только распознавать состояние сигнала, но и знать, где начинается и заканчивается каждый символ. Для этого его генератор тактовой частоты должен работать синхронно с генератором передатчика. Отдельный провод для тактового сигнала в сетях не прокладывают: синхронизация (англ. clock recovery) восстанавливается из самого сигнала по моментам смены уровней. Отсюда требование, которое будет повторяться на протяжении всей темы: сигнал не должен долго оставаться неизменным, иначе приёмник «потеряет счёт» символам.

Спектр сигнала и гармоники

Французский математик Жан-Батист Фурье показал, что любой периодический сигнал можно представить суммой синусоид — гармоник (англ. harmonics) — с частотами, кратными основной частоте f = 1/T, где T — период сигнала. Набор амплитуд гармоник называется спектром (англ. spectrum) сигнала. Для прямоугольного сигнала, переключающегося между уровнями +A и −A со скважностью 2 (меандра), разложение содержит только нечётные гармоники:

x(t) = \frac{4A}{\pi} \left( \sin(2\pi f t) + \frac{\sin(2\pi \cdot 3ft)}{3} + \frac{\sin(2\pi \cdot 5ft)}{5} + \frac{\sin(2\pi \cdot 7ft)}{7} + \dots \right)

Амплитуда n-й гармоники убывает как 1/n. Именно высокие гармоники формируют крутые фронты прямоугольного сигнала; сумма первых нескольких гармоник даёт лишь его сглаженное подобие. Рисунок ниже показывает, как по мере добавления гармоник синусоида превращается в узнаваемую последовательность битов, и как полоса канала «обрезает» спектр.

Последовательность битов 1010 как сумма гармоник; спектр с амплитудами, убывающими как 1/n, и граница полосы канала
Прямоугольный сигнал как сумма нечётных гармоник и его спектр; канал пропускает лишь часть спектра

Рассмотрим, какую основную частоту имеет поток битов. Наихудший с точки зрения спектра случай — чередование 1010…: один период сигнала занимает два битовых интервала, поэтому при скорости R бит/с основная частота равна R/2 Гц. Для 10 Мбит/с это 5 МГц, третья гармоника — 15 МГц, пятая — 25 МГц. Другие последовательности битов содержат более низкие частоты: длинная серия единиц при двухуровневом кодировании вообще превращается в постоянное напряжение — нулевую частоту. Поэтому спектр реального цифрового сигнала занимает полосу от почти нулевых частот до нескольких гармоник от R/2, и все последующие рассуждения о «полосе, нужной для передачи» опираются на это наблюдение 3.

Полоса пропускания канала и затухание

Ни одна физическая среда не пропускает все частоты одинаково. Каждая гармоника ослабляется в среде по-своему, и зависимость ослабления от частоты — амплитудно-частотная характеристика канала — главный его паспорт. Диапазон частот, которые канал пропускает без существенного ослабления, называется полосой пропускания (англ. bandwidth) и измеряется в герцах. Например, телефонный канал аналоговой телефонной сети был ограничен фильтрами диапазоном примерно от 300 до 3400 Гц, то есть полосой около 3,1 кГц; витая пара категории 6 нормирована до 250 МГц.

Здесь важна терминологическая ловушка. В англоязычной литературе по сетям словом bandwidth часто называют и пропускную способность в бит/с — «канал с bandwidth 100 Мбит/с». Физическая полоса в герцах и скорость в бит/с — разные величины, связанные теоремами Найквиста и Шеннона, и в этой теме слово «полоса» всегда означает герцы.

Если канал пропускает гармоники лишь до некоторой частоты, принятый сигнал состоит только из них: фронты сглаживаются, соседние символы «расплываются» и накладываются друг на друга. Это явление называется межсимвольной интерференцией (англ. intersymbol interference, ISI). Пока искажение умеренное, приёмник по-прежнему отличает высокий уровень от низкого в середине интервала; когда символов в секунду становится слишком много для данной полосы, распознавание становится невозможным.

Кроме ограничения полосы, сигнал ослабляется с расстоянием — испытывает затухание (англ. attenuation). В медном кабеле затухание растёт с частотой (из-за поверхностного эффекта и потерь в диэлектрике), поэтому длинный кабель работает как фильтр нижних частот, и предельная длина сегмента для каждого стандарта Ethernet определяется в первую очередь затуханием на верхней рабочей частоте.

Децибелы

Отношения мощностей в технике связи выражаются в логарифмической мере — децибелах (дБ, англ. decibel, dB). Отношение мощностей P₁/P₂ в децибелах равно

L = 10 \cdot \lg\left(\frac{P_1}{P_2}\right) \quad \text{дБ}

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

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

Отношение мощностейДецибелыКомментарий
2+3 дБудвоение мощности
1/2−3 дБполовина мощности
10+10 дБпорядок
100+20 дБдва порядка
1000+30 дБтри порядка
10⁻⁶−60 дБослабление в миллион раз

Если величина пропорциональна не мощности, а напряжению или току, мощность пропорциональна её квадрату, и формула принимает вид 20·lg(U₁/U₂): удвоение напряжения — это +6 дБ. В характеристиках кабелей и оптики встречаются также абсолютные уровни мощности относительно фиксированной опорной величины: дБм (англ. dBm) — относительно 1 мВт. Мощность 1 мВт соответствует 0 дБм, 2 мВт — примерно +3 дБм, 1 мкВт — −30 дБм. Например, стандарт допускает для передатчика 1000BASE-LX мощность от −11,5 до −3 дБм, а чувствительность его приёмника нормирована на уровне −19 дБм 5. Разность двух абсолютных уровней в дБм даёт относительное ослабление в дБ, что и используется при расчёте бюджета линии в разделе о средах передачи.

Пределы скорости передачи

Теорема Найквиста: канал без шума

В 1928 году Гарри Найквист, исследуя телеграфные линии, показал, что через идеальный канал с полосой B Гц (от нуля до B) можно передавать без межсимвольной интерференции не более 2B независимых символов в секунду 2. Интуитивно это объясняется так: самый «быстрый» сигнал, который пропускает канал, — синусоида частоты B, а за её период укладываются два различимых состояния — максимум и минимум. Если символ имеет M уровней, предельная битовая скорость канала без шума

C = 2B \cdot \log_2 M \quad \text{бит/с}

Формула Найквиста не говорит о шуме и, на первый взгляд, разрешает сколь угодно высокую скорость: достаточно увеличить число уровней. Рассмотрим телефонный канал с полосой 3100 Гц. При двух уровнях предел составляет 2 · 3100 · 1 = 6200 бит/с, при 16 уровнях — 24 800 бит/с, при 1024 уровнях — 62 000 бит/с. На практике число уровней ограничено тем, что соседние уровни должны различаться на фоне шума: чем больше уровней при той же мощности сигнала, тем меньше расстояние между ними, и тем легче шум «перебрасывает» символ на соседний уровень.

В реальных системах символьная скорость меньше теоретических 2B: идеальный фильтр с вертикальным срезом нереализуем, и передатчик формирует импульсы с плавным спадом спектра. Для фильтра типа «приподнятый косинус» с коэффициентом скругления α (англ. roll-off factor) полоса, занимаемая сигналом с символьной скоростью S, равна S(1 + α)/2; при α = 0,25 это означает, что на каждый герц полосы приходится не два, а 1,6 символа в секунду (S = 2B/1,25 = 1,6·B) 8.

Шум и отношение сигнал/шум

Любой канал содержит шум (англ. noise) — случайные колебания, накладывающиеся на сигнал. Неустранимый тепловой шум порождается хаотическим движением электронов в проводниках и усилителях; его мощность пропорциональна температуре и ширине полосы. К нему добавляются перекрёстные помехи от соседних пар кабеля, импульсные помехи от электрооборудования, в радиоканале — сигналы чужих передатчиков.

Качество канала характеризует отношение сигнал/шум (англ. signal-to-noise ratio, SNR) — отношение средней мощности сигнала S к средней мощности шума N на входе приёмника, обычно в децибелах: SNR = 10·lg(S/N). Отношение 30 дБ означает, что сигнал мощнее шума в 1000 раз, 10 дБ — в 10 раз, 0 дБ — мощности равны.

Теорема Шеннона: предел для канала с шумом

В 1948 году Клод Шеннон в работе «Математическая теория связи» доказал, что для канала с полосой B и аддитивным белым гауссовским шумом при отношении сигнал/шум S/N (в разах, не в децибелах) существует предельная скорость — пропускная способность канала (англ. channel capacity):

C = B \cdot \log_2\left(1 + \frac{S}{N}\right) \quad \text{бит/с}

Смысл теоремы двусторонний 1. Если скорость передачи меньше C, существуют способы кодирования, при которых вероятность ошибки может быть сделана сколь угодно малой. Если скорость больше C, никакой код не позволит передавать без ошибок. Формула Шеннона не говорит, сколько уровней использовать и как кодировать — она задаёт потолок, к которому системы связи приближаются по мере совершенствования модуляции и помехоустойчивых кодов. Современные системы с кодами LDPC и турбокодами работают в пределах одного-двух децибел от шенноновского предела.

Две теоремы дополняют друг друга. Найквист отвечает на вопрос, сколько символов в секунду пропускает полоса; Шеннон — сколько битов на символ можно извлечь при данном шуме. Объединяя их, получаем оценку разумного числа уровней: C = 2B·log₂M = B·log₂(1 + S/N), откуда M ≈ √(1 + S/N).

Полезно заметить разную зависимость предела от двух ресурсов. Пропускная способность растёт линейно с полосой и лишь логарифмически с отношением сигнал/шум: удвоение мощности передатчика при высоком SNR (+3 дБ) добавляет всего около одного бита в секунду на каждый герц полосы, тогда как удвоение полосы удваивает предел. Поэтому в сотовой связи и Wi-Fi борьба идёт прежде всего за ширину полосы — отсюда каналы шириной 80, 160 и 320 МГц в последних поколениях Wi-Fi (подробно — в теме 20).

Числовые примеры: телефонная линия и Wi-Fi

Рассмотрим подробно аналоговый телефонный канал. Полоса B = 3400 − 300 = 3100 Гц. Отношение сигнал/шум для хорошей линии составляет около 30 дБ, то есть S/N = 10^(30/10) = 1000. По формуле Шеннона

C = 3100 \cdot \log_2(1 + 1000) = 3100 \cdot 9{,}967 \approx 30\,900 \quad \text{бит/с}

Оценим число уровней, необходимое для достижения этой скорости при символьной скорости Найквиста 2B = 6200 Бд: M = 2^(30 900 / 6200) ≈ 2^5 ≈ 32. Результат согласуется с историей: модемы стандарта V.34 (1994 год) достигали 33,6 кбит/с, используя символьную скорость около 3200 Бд, многомерную решётчатую модуляцию и адаптацию к характеристикам линии — то есть подошли к пределу Шеннона вплотную. Модемы V.90 с их 56 кбит/с не опровергают теорему: они использовали то, что на стороне провайдера линия была цифровой, и главным «шумом» служил шум квантования цифро-аналогового преобразования в телефонной станции, а не тепловой шум аналогового участка; отношение сигнал/шум в этой схеме выше 3.

Второй пример — канал Wi-Fi шириной 20 МГц при отношении сигнал/шум 25 дБ (S/N ≈ 316), что соответствует приёму в той же комнате, что и точка доступа:

C = 20 \cdot 10^6 \cdot \log_2(1 + 316) \approx 20 \cdot 10^6 \cdot 8{,}31 \approx 166 \quad \text{Мбит/с}

Реальная канальная скорость одного пространственного потока 802.11n в таком канале при лучшей схеме модуляции и кодирования (64-QAM, скорость кода 5/6) составляет 65 Мбит/с: 52 поднесущих данных по 6 битов на символ, умноженные на 5/6 и делённые на длительность OFDM-символа 4 мкс. Разрыв с пределом Шеннона объясняется защитными интервалами, служебными поднесущими, скоростью кода и запасом по SNR, необходимым для работы без адаптации к каждому изменению канала. Ещё ниже окажется скорость, которую увидит приложение, — из-за накладных расходов доступа к среде (подробно — в теме 20).

Наконец, уместно связать физические пределы с метриками темы 1. Пропускная способность определяет время передачи (англ. transmission delay) кадра L/R, а задержка распространения d/v определяется длиной линии и скоростью распространения сигнала в среде (примерно 2·10⁸ м/с в меди и оптоволокне, то есть 5 мкс на километр). Кадр 1500 байт на линии 1 Гбит/с передаётся за 12 мкс; если та же линия имеет длину 1000 км, первый бит кадра придёт к приёмнику через 5 мс, когда передатчик уже давно закончит передачу. Произведение пропускной способности на задержку (BDP), введённое в теме 1, — это число битов, «находящихся в проводе» одновременно; для 1 Гбит/с и 5 мс оно составляет 5 Мбит, или 625 кБ.

Модуляция и линейное кодирование

Цифровая модуляция несущей

Многие среды пропускают не полосу от нуля, а полосу вокруг некоторой центральной частоты: радиоканал 2,4 ГГц, телефонный канал 300–3400 Гц, оптический канал на длине волны 1550 нм. В таких средах биты передают, изменяя параметры синусоидального колебания — несущей (англ. carrier). Процесс отображения битов в параметры несущей называется модуляцией (англ. modulation), обратный процесс на приёме — демодуляцией; устройство, выполняющее оба преобразования, называют модемом (модулятор-демодулятор).

Несущая A·sin(2πft + φ) имеет три параметра, и каждый можно использовать для передачи данных:

  • амплитудная манипуляция (англ. amplitude shift keying, ASK) — биту 0 и 1 соответствуют разные амплитуды; частный случай — включение и выключение несущей (англ. on-off keying, OOK), на котором до сих пор работают многие оптические линии до 10 Гбит/с, где «несущая» — свет лазера;
  • частотная манипуляция (англ. frequency shift keying, FSK) — разные частоты; применялась в ранних модемах (стандарт Bell 103, 300 бит/с) и в Bluetooth;
  • фазовая манипуляция (англ. phase shift keying, PSK) — разные фазы; двоичная (BPSK) использует фазы 0° и 180°, квадратурная (QPSK) — четыре фазы, по два бита на символ.

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

Квадратурная амплитудная модуляция и созвездия

Синусоиду с произвольными амплитудой и фазой можно представить суммой двух колебаний одной частоты, сдвинутых на 90°: косинусной (синфазной, англ. in-phase, I) и синусной (квадратурной, англ. quadrature, Q) составляющих. Каждому символу соответствует пара чисел (I, Q) — точка на плоскости. Множество допустимых точек называется сигнальным созвездием (англ. constellation). Квадратурная амплитудная модуляция (англ. quadrature amplitude modulation, QAM) использует созвездие в виде квадратной решётки: 16-QAM — 16 точек и 4 бита на символ, 64-QAM — 6 битов, 256-QAM — 8 битов, 1024-QAM в Wi-Fi 6 — 10 битов, 4096-QAM в Wi-Fi 7 — 12 битов.

Созвездия QPSK и 16-QAM с кодом Грея, облако принятых символов при шуме и квадратные области решения
Сигнальные созвездия QPSK и 16-QAM; шум размывает принятые точки, приёмник выбирает ближайшую точку созвездия

Созвездие наглядно показывает связь числа уровней с шумом. Приёмник измеряет пару (I, Q) и выбирает ближайшую точку созвездия; вокруг каждой точки лежит её область решения. Шум размывает принятые символы в облако вокруг точки; пока облако не выходит за границы области, ошибок нет. При переходе от 16-QAM к 64-QAM при той же средней мощности расстояние между соседними точками уменьшается примерно вдвое (на 6 дБ), и для той же вероятности ошибки требуется на 6 дБ большее отношение сигнал/шум. Поэтому современные радиосистемы адаптивно меняют созвездие: вблизи точки доступа используется 1024-QAM, на краю зоны покрытия — BPSK.

Заметим, как подписаны точки на рисунке: соседние точки различаются ровно одним битом. Такое назначение называется кодом Грея (англ. Gray code). Самая вероятная ошибка — принятие символа за соседний — при этом искажает лишь один бит из четырёх, что облегчает работу помехоустойчивого кода.

Линейное кодирование

В кабельных средах Ethernet, работающих в полосе от низких частот, несущая не используется: биты непосредственно отображаются в уровни напряжения. Такое отображение называется линейным кодированием (англ. line coding), или кодированием в основной полосе (англ. baseband). Хороший линейный код должен решать три задачи: обеспечивать синхронизацию приёмника (частые смены уровня), не иметь постоянной составляющей (англ. DC balance, равное в среднем число положительных и отрицательных уровней — это нужно, потому что линии развязаны трансформаторами, которые не пропускают постоянный ток) и занимать как можно более узкую полосу. Рисунок ниже показывает основные коды на одной и той же последовательности битов.

Последовательность 01001110 в кодах NRZ, NRZI, манчестерском и MLT-3
Линейные коды на одной последовательности битов

Простейший код — без возврата к нулю (англ. non-return-to-zero, NRZ): единица передаётся высоким уровнем, ноль — низким. Он экономен по полосе (основная частота R/2), но длинная серия одинаковых битов превращается в постоянный уровень: приёмник теряет синхронизацию, а сигнал приобретает постоянную составляющую. Разновидность NRZI (англ. NRZ inverted) кодирует единицу сменой уровня, а ноль — его сохранением; серии единиц перестают быть проблемой, но серии нулей остаются.

Манчестерский код (англ. Manchester encoding) переносит информацию не в уровень, а в направление перехода в середине битового интервала. В соглашении IEEE 802.3 ноль передаётся спадом (переходом от высокого уровня к низкому), а единица — подъёмом 5. Переход в каждом интервале гарантирует синхронизацию, постоянной составляющей нет. Плата за это — удвоенная частота смены уровней: для 10 Мбит/с требуется символьная скорость 20 МБд. Манчестерский код использовался в классическом Ethernet 10 Мбит/с (10BASE5, 10BASE2, 10BASE-T), а при переходе к 100 Мбит/с от него отказались именно из-за расточительного использования полосы.

Код MLT-3 (англ. multi-level transmit, три уровня) циклически перебирает уровни 0, +, 0, − и делает шаг по циклу при каждой единице, оставаясь на месте при нуле. Полный цикл занимает четыре единицы, поэтому основная частота при сплошных единицах равна R/4 — вдвое ниже, чем у NRZ. Это позволило передавать 100 Мбит/с (125 МБд после блочного кодирования) по кабелю категории 5 с полосой 100 МГц в стандарте 100BASE-TX.

Блочные коды и многоуровневая амплитудная модуляция

NRZI и MLT-3 не защищают от длинных серий нулей. Эту задачу решают блочные коды: каждая группа из m битов данных заменяется кодовым словом из n > m битов, причём из 2ⁿ возможных слов выбираются только «хорошие» — с достаточным числом переходов и сбалансированные.

Код 4B/5B, применяемый в 100BASE-TX и FDDI, заменяет каждые 4 бита пятью так, чтобы в кодовом слове было не более одного ведущего и не более двух завершающих нулей; в потоке тогда не встречается более трёх нулей подряд. Из 32 пятибитовых слов 16 используются для данных, часть оставшихся — для служебных символов (начало и конец потока, простой линии), а остальные запрещены, и их появление сигнализирует об ошибке. Избыточность кода — 25 %: для 100 Мбит/с данных линия работает на 125 МБд.

Код 8b/10b, предложенный Видмером и Францашеком в IBM в 1983 году 14, заменяет байт десятибитовым словом; он обеспечивает строгий баланс постоянной составляющей за счёт отслеживания так называемой текущей несбалансированности (англ. running disparity) и использовался в Gigabit Ethernet по оптике (1000BASE-X: 1,25 ГБд), Fibre Channel, PCI Express версий 1 и 2, SATA и USB 3.0. Избыточность та же — 25 %.

При 10 Гбит/с потеря четверти скорости на кодирование стала неприемлемой, и в 10GBASE-R введён код 64b/66b: 64 бита данных снабжаются двухбитовым заголовком синхронизации (01 — блок данных, 10 — управляющий блок), а затем перемешиваются скремблером (англ. scrambler) — устройством, складывающим поток по модулю 2 с псевдослучайной последовательностью. Скремблер делает поток статистически похожим на случайный, а значит, богатым переходами и сбалансированным, а заголовок 01/10 гарантирует хотя бы один переход на 66 битов и служит для поиска границ блоков. Избыточность — 3,125 %: линия 10GBASE-R работает на 10,3125 ГБд.

Наконец, чтобы поднять скорость, не повышая символьную скорость сверх возможностей электроники и оптики, Ethernet высоких скоростей вернулся к многоуровневой амплитудной модуляции в основной полосе (англ. pulse amplitude modulation, PAM). PAM4 использует четыре уровня и передаёт два бита на символ; на ней построены линии 50 и 100 Гбит/с на одну полосу (англ. lane) и, следовательно, интерфейсы 200G, 400G и 800G. Плата за удвоение битов на символ — уменьшение расстояния между уровнями втрое (примерно на 9,5 дБ) и, как следствие, высокая вероятность ошибок на символ, которую компенсирует обязательная прямая коррекция ошибок (см. раздел об ошибках). Таблица сводит линейные коды основных вариантов Ethernet.

СтандартСкорость данныхКодированиеСимвольная скоростьСреда
10BASE-T10 Мбит/сманчестерское20 МБд2 пары, кат. 3
100BASE-TX100 Мбит/с4B/5B + MLT-3125 МБд2 пары, кат. 5
1000BASE-T1 Гбит/сPAM5, решётчатое кодирование125 МБд на пару4 пары, кат. 5e
1000BASE-SX/LX1 Гбит/с8b/10b, NRZ1,25 ГБдоптика
10GBASE-SR/LR10 Гбит/с64b/66b, NRZ10,3125 ГБдоптика
10GBASE-T10 Гбит/сPAM16 (DSQ128), LDPC800 МБд на пару4 пары, кат. 6A
400GBASE-DR4400 Гбит/с64b/66b → 256b/257b, RS-FEC, PAM453,125 ГБд на полосу4 одномодовых волокна в каждую сторону

Среды передачи

Витая пара

Среда передачи (англ. transmission medium) — физическое вещество или пространство, в котором распространяется сигнал. Самая массовая проводная среда локальных сетей — витая пара (англ. twisted pair): два изолированных медных проводника, свитых друг с другом. Сигнал передаётся дифференциально — как разность напряжений между проводниками пары. Внешняя помеха наводит на оба проводника почти одинаковое напряжение, которое при вычитании взаимно уничтожается, а скрутка с постоянным шагом выравнивает условия для обоих проводников по всей длине. По той же причине пара сама излучает мало: поля двух проводников с противоположными токами компенсируют друг друга.

Кабель локальной сети содержит четыре пары с разным шагом скрутки. Главная помеха в нём — перекрёстная наводка (англ. crosstalk) между парами одного кабеля. Различают наводку на ближнем конце (англ. near-end crosstalk, NEXT) — помеху от собственного передатчика на соседнюю пару, по которой ведётся приём, и наводку на дальнем конце (англ. far-end crosstalk, FEXT). В 1000BASE-T и 10GBASE-T все четыре пары работают одновременно в обоих направлениях, и приёмник цифровыми фильтрами вычитает из принятого сигнала эхо собственного передатчика и наводки от трёх соседних пар; без такой обработки сигналов эти стандарты были бы невозможны 5.

Кабели классифицируются по категориям (стандарт ANSI/TIA-568), каждая из которых нормирует характеристики до определённой частоты 12. Таблица перечисляет категории, встречающиеся на практике.

КатегорияНормированная полосаТипичные применения
316 МГцтелефония, 10BASE-T
5e100 МГц100BASE-TX, 1000BASE-T, 2.5GBASE-T
6250 МГц1000BASE-T, 5GBASE-T, 10GBASE-T до 37–55 м
6A500 МГц10GBASE-T на 100 м
82000 МГц25GBASE-T и 40GBASE-T на 30 м в ЦОД

Для всех стандартов Ethernet по витой паре до 10 Гбит/с включительно предельная длина канала равна 100 м: 90 м стационарной проводки и до 10 м коммутационных шнуров. Распространённая ошибка понимания — считать, что категория кабеля сама по себе определяет скорость: полоса кабеля лишь задаёт верхнюю частоту, на которой гарантированы затухание и уровень перекрёстных помех, а скорость получается из этой полосы применением конкретного кода. 1000BASE-T передаёт 1 Гбит/с по кабелю 100 МГц именно потому, что использует четыре пары одновременно, пять уровней сигнала и полный дуплекс на каждой паре: 4 пары × 125 МБд × 2 бита = 1000 Мбит/с; пятый уровень сигнала PAM5 даёт избыточность для решётчатого кода 4.

Существуют экранированные варианты (с фольгой вокруг каждой пары или всего кабеля, обозначения F/UTP, U/FTP, S/FTP), которые снижают внешние помехи и перекрёстные наводки между соседними кабелями. Неэкранированная пара обозначается UTP (англ. unshielded twisted pair).

Коаксиальный кабель

Коаксиальный кабель (англ. coaxial cable) состоит из центрального проводника, диэлектрика, внешнего проводника-оплётки и защитной оболочки. Электромагнитное поле сосредоточено внутри кабеля, поэтому коаксиал хорошо экранирован и пропускает широкую полосу — до гигагерц. Первые стандарты Ethernet использовали «толстый» коаксиал 10BASE5 (сегмент до 500 м) и «тонкий» 10BASE2 (до 185 м): все станции подключались к одному кабелю, образуя общую шину — среду коллективного доступа, к которой вернётся тема 4 11. В локальных сетях коаксиал полностью вытеснен витой парой, но остаётся основной средой кабельного телевидения и доступа в Интернет по стандарту DOCSIS, где в общей полосе кабеля передаются сотни мегагерц модулированных сигналов QAM. Короткие медные соединения внутри стоек ЦОД (кабели прямого подключения, англ. direct attach copper, DAC) по конструкции близки к коаксиальным парам с двойным экраном.

Оптоволокно

Оптическое волокно (англ. optical fiber) — стеклянная нить из сердцевины (англ. core) и оболочки (англ. cladding) с немного меньшим показателем преломления. Свет, падающий на границу сердцевины и оболочки под углом, большим критического, испытывает полное внутреннее отражение и удерживается в сердцевине. Внешний диаметр оболочки стандартных волокон — 125 мкм. Данные передаются, как правило, модуляцией интенсивности света лазера или светодиода, а приёмником служит фотодиод.

Свет распространяется в сердцевине одним или несколькими способами — модами (англ. modes), каждой из которых соответствует свой путь. В многомодовом волокне (англ. multimode fiber, MMF) с сердцевиной 50 или 62,5 мкм мод много, и они проходят разные пути: короткий осевой и длинные зигзагообразные. Импульс, введённый в волокно, приходит размытым, потому что его части, переносимые разными модами, приходят в разное время. Это явление — модовая (межмодовая) дисперсия (англ. modal dispersion) — ограничивает произведение скорости на расстояние. Многомодовое волокно используется на коротких дистанциях: 10GBASE-SR работает на 300 м по волокну OM3 и на 400 м по OM4 на длине волны 850 нм. Его достоинство — дешёвые источники света (лазеры VCSEL) и простая стыковка.

В одномодовом волокне (англ. single-mode fiber, SMF) сердцевина около 9 мкм настолько тонкая, что распространяется лишь одна мода, и модовой дисперсии нет. Остаётся хроматическая дисперсия (англ. chromatic dispersion): излучение любого лазера занимает конечную полосу длин волн, а скорость света в стекле зависит от длины волны. Её влияние растёт с расстоянием и скоростью передачи и для линий в десятки и сотни километров компенсируется специальными волокнами или цифровой обработкой в когерентных приёмниках. Рисунок ниже сопоставляет два типа волокна.

Многомодовое волокно с несколькими путями лучей и расширенным импульсом на выходе; одномодовое волокно с одной модой
Распространение света в многомодовом и одномодовом волокне и модовая дисперсия

Затухание в кварцевом волокне зависит от длины волны. Оптические линии используют «окна прозрачности» около 850 нм (многомодовые системы, около 2,5–3,5 дБ/км), 1310 нм (около 0,35 дБ/км в одномодовом волокне) и 1550 нм (около 0,2 дБ/км) 9. Для сравнения: витая пара категории 6 на частоте 250 МГц ослабляет сигнал примерно на 33 дБ на 100 м. Малое затухание и нечувствительность к электромагнитным помехам делают оптоволокно единственной средой магистральных, междугородних и подводных линий.

Расчёт бюджета оптической линии (англ. optical power budget) — типовая инженерная задача, и её стоит разобрать на числах. Пусть передатчик выдаёт −3 дБм, чувствительность приёмника −24 дБм, а линия длиной 40 км по одномодовому волокну на 1310 нм (0,35 дБ/км) содержит два разъёмных соединения по 0,5 дБ и четыре сварных соединения по 0,1 дБ; кроме того, закладывается эксплуатационный запас 3 дБ на старение и будущие ремонты. Суммарные потери: 40·0,35 + 2·0,5 + 4·0,1 + 3 = 14 + 1 + 0,4 + 3 = 18,4 дБ. Мощность на входе приёмника: −3 − 18,4 = −21,4 дБм, что на 2,6 дБ выше чувствительности: линия работоспособна. При длине 60 км потери в волокне составили бы 21 дБ, мощность на приёмнике −28,4 дБм, и линия работать не будет — потребуется модуль с большей мощностью, переход на 1550 нм или оптический усилитель. Слишком сильный сигнал тоже вреден: у приёмника есть порог перегрузки, и на коротких линиях с мощными модулями ставят аттенюаторы.

Одно волокно может переносить несколько независимых каналов на разных длинах волн. Этот приём — спектральное уплотнение (англ. wavelength division multiplexing, WDM) — является оптическим аналогом частотного разделения. Грубое уплотнение (CWDM, ITU-T G.694.2) использует до 18 каналов с шагом 20 нм; плотное (DWDM, ITU-T G.694.1) — сетку частот с шагом 100 или 50 ГГц и десятки каналов в диапазоне около 1550 нм, где их все одновременно усиливают эрбиевые волоконные усилители. Магистральная линия DWDM с 80 каналами по 400 Гбит/с переносит по одной паре волокон 32 Тбит/с.

Радиоканал

Радиоканал не требует проводки, но обладает рядом свойств, которые делают его самой сложной средой. Мощность сигнала в свободном пространстве убывает пропорционально квадрату расстояния, а в помещении — ещё быстрее из-за стен и людей. Сигнал приходит к приёмнику несколькими путями с разными задержками (многолучёвость, англ. multipath), и их сложение в одних точках усиливает, а в других ослабляет сигнал. Среда разделяется всеми передатчиками в диапазоне, поэтому возможны помехи и коллизии. Скорость в радиоканале в соответствии с теоремой Шеннона определяется шириной выделенной полосы и достижимым отношением сигнал/шум, а частотные диапазоны регулируются государством. Устройство беспроводных сетей, включая модуляцию OFDM, доступ к среде и безопасность, рассматривается в теме 20.

Ошибки передачи и их обнаружение

Вероятность битовой ошибки

Шум и помехи время от времени приводят к тому, что приёмник принимает символ неверно. Качество цифрового канала характеризуют коэффициентом битовых ошибок (англ. bit error rate, BER) — долей неверно принятых битов. Для большинства современных физических уровней Ethernet стандарт требует BER не хуже 10⁻¹² 5. Даже такая малая величина на высоких скоростях означает регулярные ошибки: на линии 10 Гбит/с при BER = 10⁻¹² ожидается в среднем одна ошибка в 1/(10⁻¹²·10¹⁰) = 100 с.

Вероятность того, что кадр из n битов будет принят без ошибок, при независимых ошибках равна (1 − p)ⁿ. Для кадра 1500 байт (12 000 битов) и BER = 10⁻⁶, что характерно для плохого радиоканала, вероятность искажения кадра составит 1 − (1 − 10⁻⁶)¹²⁰⁰⁰ ≈ 1,2 %. Отсюда два следствия. Во-первых, чем длиннее кадр, тем чаще он искажается, поэтому в зашумлённых средах кадры делают короче. Во-вторых, ошибки на практике часто не независимы: импульсная помеха искажает сразу пакет (англ. burst) соседних битов, и коды обнаружения ошибок проектируются с расчётом на такие пакеты.

Канальный уровень должен обнаружить искажение, прежде чем передать данные выше. Для этого передатчик добавляет к данным избыточные биты, вычисленные по данным, а приёмник повторяет вычисление и сравнивает. Различают обнаружение ошибок (англ. error detection), после которого искажённый кадр отбрасывается, и исправление ошибок (англ. error correction), когда избыточности достаточно, чтобы восстановить исходные биты.

Контроль чётности и контрольные суммы

Простейший код обнаружения — бит чётности (англ. parity bit): к блоку данных добавляется один бит так, чтобы общее число единиц было чётным. Приёмник пересчитывает чётность; если она нарушена, произошла ошибка. Код обнаруживает любое нечётное число искажённых битов, но пропускает любое чётное — в том числе самые вероятные двукратные ошибки внутри пакета ошибок. Двумерная чётность — бит чётности для каждой строки и каждого столбца блока, записанного в виде таблицы, — обнаруживает все одно-, двух- и трёхбитовые ошибки и позволяет исправить одиночную ошибку, поскольку её положение указывает пересечение «неверной» строки и «неверного» столбца 3.

Контрольная сумма (англ. checksum) Интернета, используемая в заголовках IPv4, UDP и TCP, складывает данные как последовательность 16-битовых слов в арифметике с обратным кодом (с циклическим переносом старшего разряда) и передаёт инверсию результата 7. Она вычисляется быстро и просто, допускает инкрементное обновление при изменении одного поля (что важно для маршрутизаторов, уменьшающих TTL), но слаба: не замечает перестановки слов и многих сочетаний ошибок. Подробно её применение рассматривается в темах 7 и 12; на канальном уровне используется более сильный метод.

Циклический избыточный код

Циклический избыточный код (англ. cyclic redundancy check, CRC) рассматривает последовательность битов как многочлен с коэффициентами 0 и 1: последовательность 110101 соответствует многочлену x⁵ + x⁴ + x² + 1. Арифметика ведётся по модулю 2: сложение и вычитание совпадают и выполняются как исключающее ИЛИ (XOR), переносов нет 6.

Отправитель и получатель заранее договариваются о порождающем многочлене (англ. generator polynomial) G(x) степени r. Чтобы вычислить CRC сообщения M(x), к нему справа приписывают r нулей (что соответствует умножению на xʳ) и делят результат на G(x) по модулю 2. Остаток R(x) степени меньше r — это и есть r контрольных битов; их приписывают к сообщению вместо нулей. Переданная последовательность T(x) = M(x)·xʳ + R(x) делится на G(x) без остатка. Приёмник делит принятую последовательность на G(x): ненулевой остаток означает ошибку.

Разберём пример подробно. Сообщение M = 110101, порождающий многочлен G(x) = x³ + x + 1, то есть 1011, r = 3. Приписываем три нуля и выполняем деление столбиком; на каждом шаге, если старший бит текущего остатка равен 1, под ним подписывается делитель и выполняется XOR, иначе делитель пропускается:

110101000   ← сообщение и три нуля
1011
----
 1100
 1011
 ----
  1111
  1011
  ----
   1000
   1011
   ----
     1100   ← старший бит очередной группы равен 0, делитель пропущен на одну позицию
     1011
     ----
      111   ← остаток R = 111

Передаётся 110101 111. Проверим на приёме: деление 110101111 на 1011 даёт нулевой остаток. Если же в линии исказится, например, третий бит и придёт 111101111, остаток окажется равным 101, и ошибка будет обнаружена. Те же вычисления удобно воспроизвести на Python, что и делается в практическом занятии.

Чем объясняется сила CRC? Искажение описывается многочленом ошибок E(x): принятая последовательность равна T(x) + E(x). Поскольку T(x) делится на G(x), ошибка останется незамеченной тогда и только тогда, когда E(x) делится на G(x). Правильный выбор G(x) исключает делимость для всех практически важных классов ошибок. Одиночная ошибка E(x) = xⁱ не делится на G(x), если в G(x) больше одного члена. Любое нечётное число ошибок обнаруживается, если G(x) делится на (x + 1). Любой пакет ошибок длиной не более r битов обнаруживается, если G(x) содержит свободный член 1: такой E(x) = xⁱ·B(x) со степенью B меньше r не может делиться на G(x) 63.

В Ethernet используется 32-битовый CRC (CRC-32) с порождающим многочленом

G(x) = x³² + x²⁶ + x²³ + x²² + x¹⁶ + x¹² + x¹¹ + x¹⁰ + x⁸ + x⁷ + x⁵ + x⁴ + x² + x + 1
     = 0x04C11DB7 (без старшего члена)

Результат передаётся в поле FCS кадра (подробно — в теме 4). CRC-32 обнаруживает все пакеты ошибок длиной до 32 битов, а для кадров максимального размера Ethernet — и любые сочетания до трёх искажённых битов; вероятность пропустить случайное искажение составляет около 2⁻³² 10. Тот же многочлен используется в zlib, PNG и многих других форматах, поэтому функция zlib.crc32 в Python вычисляет ровно контрольную сумму кадра Ethernet:

import zlib
frame = bytes.fromhex("ffffffffffff020000000401" "88b5") + b"lab4 test frame".ljust(46, b"\x00")
print(hex(zlib.crc32(frame)))
0xbb1baabc

Вычисление CRC аппаратно реализуется сдвиговым регистром с обратными связями через элементы XOR, обрабатывающим поток бит за битом с той же скоростью, с какой он идёт в линию; на высоких скоростях используются параллельные схемы, обрабатывающие десятки байтов за такт. Важно помнить и ограничение: CRC защищает только от случайных искажений. Злоумышленник, изменивший кадр, легко пересчитает CRC; для защиты от преднамеренных изменений нужны криптографические коды аутентичности сообщений (тема 17).

Прямая коррекция ошибок

Обнаружение с последующим отбрасыванием кадра хорошо работает, когда ошибки редки: потерянный кадр восстановят протоколы верхних уровней (TCP — тема 13). Если же ошибки часты, а задержка повторной передачи велика или повтор невозможен (спутниковый канал, радиовещание, оптические линии 100–400 Гбит/с с PAM4), применяют прямую коррекцию ошибок (англ. forward error correction, FEC): избыточности добавляют столько, чтобы приёмник мог сам исправить ошибки.

Классический пример — код Хэмминга (7,4), предложенный Ричардом Хэммингом в 1950 году 13: к четырём битам данных добавляются три проверочных бита, каждый из которых контролирует чётность своего подмножества позиций. Синдром — номер нарушенных проверок, прочитанный как двоичное число, — прямо указывает позицию одиночной ошибки. Минимальное кодовое расстояние Хэмминга (англ. Hamming distance) кода равно 3: любые два кодовых слова различаются не менее чем в трёх позициях, поэтому одиночная ошибка оставляет принятое слово ближе к исходному, чем к любому другому.

В Ethernet высоких скоростей применяются коды Рида — Соломона, работающие с 10-битовыми символами. Код RS(528,514), используемый в 100GBASE-SR4 и 25GBASE-R, добавляет 14 проверочных символов к 514 символам данных и исправляет до 7 искажённых символов в блоке; код RS(544,514) для 200G и 400G с PAM4 исправляет до 15. Благодаря FEC линия, у которой BER до коррекции составляет порядка 10⁻⁵…10⁻⁴, после коррекции удовлетворяет требованию 10⁻¹³ и лучше. Избыточность FEC (около 3–6 %) скомпенсирована тем, что 64b/66b-блоки перед кодированием перекодируются в более компактные 256b/257b, и итоговая символьная скорость остаётся той же, что без FEC 5.

Физический уровень Ethernet

Обозначения и семейство стандартов

Ethernet описан стандартом IEEE 802.3, который сводит в единый документ более сотни физических уровней, появлявшихся с 1983 года как отдельные дополнения (802.3u — Fast Ethernet, 802.3ab — 1000BASE-T, 802.3ae — 10 Гбит/с, 802.3bs — 200 и 400 Гбит/с и т. д.) 5. Обозначение физического уровня строится по схеме «скорость — BASE — среда»: число — скорость в Мбит/с или Гбит/с, BASE — передача в основной полосе (англ. baseband), суффикс — среда и вариант кодирования. Суффикс T означает витую пару, S (англ. short) — многомодовое волокно на 850 нм, L (long) — одномодовое на 1310 нм, E (extended) — одномодовое на 1550 нм, C — медный кабель прямого подключения, K — соединение по объединительной плате (англ. backplane), R — кодирование 64b/66b, X — 8b/10b; цифра в конце (SR4, LR4) — число полос или длин волн.

ОбозначениеСкоростьСреда и дальность
100BASE-TX100 Мбит/свитая пара кат. 5, 100 м
1000BASE-T1 Гбит/свитая пара кат. 5e, 100 м
1000BASE-SX1 Гбит/смногомодовое волокно, 850 нм, до 550 м
1000BASE-LX1 Гбит/содномодовое волокно, 1310 нм, 5 км (на практике до 10 км)
2.5GBASE-T, 5GBASE-T2,5 и 5 Гбит/свитая пара кат. 5e/6, 100 м
10GBASE-T10 Гбит/свитая пара кат. 6A, 100 м
10GBASE-SR / LR / ER10 Гбит/сMMF 300–400 м / SMF 10 км / SMF 40 км
25GBASE-SR25 Гбит/сMMF OM4, 100 м
100GBASE-SR4100 Гбит/с4 пары MMF по 25 Гбит/с, 100 м
100GBASE-LR4100 Гбит/с4 длины волны около 1310 нм в одном SMF, 10 км
400GBASE-DR4400 Гбит/с4 пары SMF по 100 Гбит/с (PAM4), 500 м

Физический уровень Ethernet внутри себя многоуровнев: подуровень кодирования (англ. physical coding sublayer, PCS) выполняет 64b/66b или 8b/10b и скремблирование, подуровень физического подключения к среде (англ. physical medium attachment, PMA) — сериализацию и восстановление тактовой частоты, подуровень, зависимый от среды (англ. physical medium dependent, PMD), — преобразование в оптический или электрический сигнал. Между MAC-подуровнем канального уровня и PHY проходит стандартный интерфейс (MII, GMII, XGMII и их варианты), что позволяет одной микросхеме MAC работать с разными средами. На практике физический уровень оптических интерфейсов часто вынесен в сменный модуль — трансивер форм-фактора SFP, SFP+, SFP28, QSFP28, QSFP-DD, — и одна и та же порт-клетка коммутатора принимает модуль для многомодового или одномодового волокна или медный кабель DAC.

Автосогласование и дуплекс

Сетевая карта 1 Гбит/с умеет работать и на 100, и на 10 Мбит/с, а подключаться её могут к оборудованию любого поколения. Выбор общего режима выполняет автосогласование (англ. auto-negotiation), определённое в стандарте 802.3 (раздел 28) для витой пары. Каждое устройство в паузах между передачей посылает пачки коротких импульсов (англ. fast link pulses, FLP), кодирующие 16-битовое слово возможностей: поддерживаемые скорости, режимы дуплекса, управление потоком. Обе стороны выбирают наилучший общий режим по фиксированному списку приоритетов 5. Для 1000BASE-T и более быстрых стандартов по витой паре автосогласование обязательно — с его помощью, кроме прочего, устройства договариваются, кто из них задаёт тактовую частоту (англ. master/slave).

Режим дуплекса (англ. duplex) определяет, может ли устройство передавать и принимать одновременно. В полудуплексном режиме (англ. half duplex) среда используется поочерёдно, и одновременная передача обеими сторонами означает коллизию; в полнодуплексном (англ. full duplex) передача и приём независимы. Почему исторический Ethernet был полудуплексным и почему современный — полнодуплексный, подробно объясняется в теме 4.

Классическая неисправность физического уровня — несовпадение дуплекса (англ. duplex mismatch). Если на одной стороне режим зафиксирован вручную (например, 100 Мбит/с, полный дуплекс), автосогласование на этой стороне выключается. Вторая сторона, оставшаяся в автоматическом режиме, не получает пачек FLP и определяет скорость по виду сигнала (так называемое параллельное обнаружение, англ. parallel detection), а дуплекс определить не может и по стандарту выбирает полудуплекс. Линия поднимается, ping проходит, но под нагрузкой полудуплексная сторона фиксирует коллизии и поздние коллизии, а полнодуплексная — ошибки CRC в обрезанных кадрах; скорость передачи падает до долей номинальной. Правило эксплуатации простое: либо автосогласование на обеих сторонах, либо ручная настройка на обеих.

Наблюдение физического уровня в Linux

Параметры физического уровня реального интерфейса в Linux показывает утилита ethtool 11. Ниже приведён типичный вывод для встроенной сетевой карты 1 Гбит/с, подключённой к коммутатору (вывод сокращён):

ethtool enp3s0
Settings for enp3s0:
        Supported ports: [ TP MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Full
        Speed: 1000Mb/s
        Duplex: Full
        Auto-negotiation: on
        Port: Twisted Pair
        MDI-X: off (auto)
        Link detected: yes

Строки Advertised link modes и Link partner advertised link modes — это содержимое слов возможностей, которыми обменялись стороны при автосогласовании, а Speed и Duplex — результат. Счётчики ошибок физического и канального уровня выводит ethtool -S (имена счётчиков зависят от драйвера) и ip -s link, где ошибки CRC попадают в столбец errors приёма. Растущий счётчик ошибок CRC на одном порту — признак проблемы физического уровня: повреждённого кабеля, плохого разъёма, грязного оптического коннектора или несовпадения дуплекса. Для оптических модулей команда ethtool -m показывает мощность передатчика и принятого сигнала в дБм, что позволяет проверить бюджет линии на работающем оборудовании. Виртуальные интерфейсы veth, используемые в лабораторных работах курса, физического уровня не имеют: их «скорость» условна, ошибок CRC в них не бывает, а для эмуляции свойств реального канала служит дисциплина очереди netem, которой посвящена лабораторная работа к этой теме.

Итоги темы

Физический уровень превращает биты в сигнал и обратно, и скорость, которую он может обеспечить, ограничена свойствами среды. Канал пропускает конечную полосу частот, и по теореме Найквиста она ограничивает символьную скорость величиной 2B; шум ограничивает число различимых уровней символа, и теорема Шеннона связывает обе величины в предел C = B·log₂(1 + S/N), который нельзя превзойти никаким кодированием. Расчёт для телефонной линии даёт около 31 кбит/с — и модемы действительно остановились на 33,6 кбит/с. Децибелы позволяют работать с отношениями мощностей, охватывающими много порядков, и сводят расчёт бюджета линии к сложению.

Биты превращаются в сигнал модуляцией несущей — амплитудной, частотной, фазовой или квадратурной, — либо линейным кодированием в основной полосе. Выбор кода — всегда компромисс между полосой, синхронизацией и балансом постоянной составляющей: манчестерский код прост, но расточителен, блочные коды 4B/5B и 8b/10b тратят четверть скорости на гарантию переходов, 64b/66b со скремблером — около 3 %, а многоуровневые сигналы PAM4 и QAM удваивают число битов на символ ценой требований к отношению сигнал/шум и обязательной коррекции ошибок.

Среды различаются полосой, затуханием и устойчивостью к помехам. Витая пара за счёт дифференциальной передачи и цифрового подавления наводок несёт до 10 Гбит/с на 100 м, коаксиал остался в кабельном доступе, оптоволокно с затуханием 0,2 дБ/км и спектральным уплотнением образует основу всех магистралей, радиоканал даёт мобильность ценой самой сложной физики.

Ошибки неизбежны, и их обнаружение — общая забота физического и канального уровней. Чётность и контрольная сумма Интернета просты, но слабы; циклический избыточный код, основанный на делении многочленов по модулю 2, гарантированно обнаруживает пакеты ошибок длиной до своей степени и именно поэтому используется в каждом кадре Ethernet. Там, где повторная передача слишком дорога, применяется прямая коррекция ошибок.

Следующая тема поднимается на канальный уровень: как из потока битов выделяются кадры, как в них используется CRC-32, как узлы делят общую среду и как коммутатор Ethernet узнаёт, куда отправить каждый кадр.

Литература

  1. Shannon C. E. A Mathematical Theory of Communication. — Bell System Technical Journal, 1948, Vol. 27, No. 3, P. 379–423; No. 4, P. 623–656.
  2. Nyquist H. Certain Topics in Telegraph Transmission Theory. — Transactions of the American Institute of Electrical Engineers, 1928, Vol. 47, No. 2, P. 617–644.
  3. Tanenbaum A. S., Feamster N., Wetherall D. J. Computer Networks. 6th ed. — Pearson, 2021.
  4. Олифер В. Г., Олифер Н. А. Компьютерные сети. Принципы, технологии, протоколы. 5-е изд. — СПб.: Питер, 2016.
  5. IEEE Std 802.3-2022. IEEE Standard for Ethernet. — IEEE, 2022.
  6. Peterson W. W., Brown D. T. Cyclic Codes for Error Detection. — Proceedings of the IRE, 1961, Vol. 49, No. 1, P. 228–235.
  7. Braden R., Borman D., Partridge C. Computing the Internet Checksum. — RFC 1071, IETF, 1988. https://www.rfc-editor.org/rfc/rfc1071
  8. Sklar B. Digital Communications: Fundamentals and Applications. 2nd ed. — Prentice Hall, 2001.
  9. ITU-T Recommendation G.652. Characteristics of a single-mode optical fibre and cable. — ITU, 2016.
  10. Koopman P. 32-Bit Cyclic Redundancy Codes for Internet Applications. — Proceedings of the International Conference on Dependable Systems and Networks (DSN 2002). — IEEE, 2002.
  11. Spurgeon C. E., Zimmerman J. Ethernet: The Definitive Guide. 2nd ed. — O'Reilly Media, 2014.
  12. ANSI/TIA-568.2-D. Balanced Twisted-Pair Telecommunications Cabling and Components Standard. — TIA, 2018.
  13. Hamming R. W. Error Detecting and Error Correcting Codes. — Bell System Technical Journal, 1950, Vol. 29, No. 2, P. 147–160.
  14. Widmer A. X., Franaszek P. A. A DC-Balanced, Partitioned-Block, 8B/10B Transmission Code. — IBM Journal of Research and Development, 1983, Vol. 27, No. 5, P. 440–451.