Если коллизии не произошло, отправитель предполагает, что фрейм успешно доставлен. Таким образом, ни в CSMA/CD, ни в Ethernet подтверждения не применяются. Такой вариант подходит для кабельных и оптоволоконных каналов с низким числом ошибок. Они распознаются с помощью кода CRC и исправляются более высокими уровнями. Как мы увидим далее, в зашумленных беспроводных каналах подтверждения используются.
4.3.3. Производительность Ethernet
Оценим производительность классического Ethernet в условиях большой постоянной загрузки, то есть когда k станций постоянно готовы к передаче. Строгий анализ алгоритма двоичной экспоненциальной выдержки довольно сложен. В качестве альтернативы мы предположим (согласно Меткалфу и Боггсу (Metcalfe and Boggs, 1976)), что вероятность повторной передачи в каждом слоте постоянна. Если каждая станция осуществляет передачу в слоте конкуренции с вероятностью p, то вероятность того, что одной из них удастся завладеть каналом (A), равна
A = kp(1 – p)k – 1.
Значение A будет максимальным, когда p = 1/k. При k, стремящемся к бесконечности, A будет стремиться к 1/e. Вероятность того, что период соревнования за канал будет состоять ровно из j слотов, равна A(1 – A) j – 1, следовательно, среднее число слотов за период конкуренции равно
Так как длительность каждого слота равна 2τ, средняя продолжительность периода конкуренции w составит 2τ/A. При оптимальном значении вероятности p среднее количество слотов конкуренции никогда не превысит e; таким образом, w будет равна 2τ e ≈ 5,4τ.
Если среднее время передачи фрейма составляет P секунд, то эффективность канала при его сильной загруженности будет равна:
Эффективность канала = . (4.2)
Из этой формулы мы видим, как максимальная длина кабеля влияет на производительность. Чем длиннее кабель, тем дольше период конкуренции за канал. Становится понятно, почему стандарт Ethernet накладывает ограничение на максимальное расстояние между станциями.
Будет полезно переформулировать уравнение (4.2) в терминах длины фрейма F, пропускной способности сети B, длины кабеля L и скорости распространения сигнала c для оптимального случая: e слотов конкуренции на фрейм. При P = F/B уравнение (4.2) примет вид:
Эффективность канала = . (4.3)
Если второе слагаемое делителя велико, эффективность сети будет низкой. В частности, увеличение пропускной способности или размеров сети (произведение BL) уменьшит эффективность при заданном размере фрейма. К сожалению, основные исследования в области сетевого оборудования нацелены как раз на увеличение этого произведения. Пользователи хотят высокой скорости при больших расстояниях (что обеспечивают, например, оптоволоконные MAN), следовательно, в таких случаях стандарт Ethernet будет не лучшим решением. Другие реализации Ethernet мы увидим в следующем разделе.
На илл. 4.16 показана зависимость эффективности канала от числа готовых станций при 2τ = 51,2 мкс и скорости передачи данных 10 Мбит/с. Для расчетов используется уравнение (4.3). При 64-байтном временном слоте 64-байтные фреймы оказываются неэффективными, и это неудивительно. С другой стороны, при длине фреймов 1024 байта и при асимптотическом значении e 64-байтных слотов на период конкуренции этот период равен 174 байтам, а эффективность канала составит 85 %. Этот результат намного лучше, чем 37 % в дискретной системе ALOHA.
Илл. 4.16. Эффективность Ethernet на скорости 10 Мбит/с, 512-битные временные слоты
Теоретическому анализу производительности Ethernet (и других стандартов) было посвящено много работ. Большинство результатов следует воспринимать с долей (или даже тонной) скептицизма по двум причинам. Прежде всего, практически во всех этих теоретических исследованиях предполагается, что трафик подчиняется пуассоновскому распределению. Когда же ученые рассмотрели реальные потоки данных, они обнаружили, что сетевой трафик редко распределен по Пуассону и часто включает множество пиков; см. Паксон и Флойд (Paxson and Floyd, 1995); Фонтюнь и др. (Fontugne et al., 2017). Это означает, что при увеличении периода усреднения трафик не сглаживается. Помимо использования сомнительных моделей, многие из этих работ фокусируются на «интересных» случаях невероятно высокой загрузки канала. Боггс и др. (Boggs et al., 1988) на практике доказали, что Ethernet хорошо работает в реальных условиях, даже когда загрузка относительно высока.
4.3.4. Коммутируемый Ethernet
Очень скоро Ethernet стал отходить от архитектуры с одним длинным кабелем, которая использовалась в классическом варианте. Проблема поиска обрывов или ведущих в пустоту соединений привела к новому способу подключения, в котором каждая станция соединяется с центральным концентратором (hub) отдельным кабелем. Концентратор просто соединяет все провода в электрическую схему, как если бы они были спаяны вместе. Такая конфигурация показана на илл. 4.17 (а).
Илл. 4.17. Конфигурация Ethernet. (а) Концентратор; (б) Коммутатор
Для соединения применялись витые пары — они и так уже были проложены телефонными компаниями в большинстве офисных зданий. Повторное использование было весьма выгодным, но максимальная длина кабеля между компьютером и концентратором была ограничена до 100 м (или 200 м при условии качественной витой пары категории 5). В подобной конфигурации было легко удалять и добавлять станции, а также находить разрывы кабеля. Благодаря преимуществам использования существующей кабельной разводки и простоте обслуживания концентраторы на витой паре вскоре стали ведущей формой реализации сетей Ethernet.
Однако концентраторы не увеличивают пропускную способность, так как логически они эквивалентны одному длинному кабелю классической сети Ethernet. При добавлении станций доля каждой из них в общей фиксированной емкости канала уменьшается. Рано или поздно локальная сеть переполнится. Чтобы этого избежать, можно увеличить скорость передачи данных — например, с 10 на 100 Мбит/с, 1 Гбит/с или даже больше. Однако с ростом объемов мультимедийных данных и мощности серверов даже гигабитные версии Ethernet перестанут справляться.
К счастью, существует другой способ решения проблемы высокой загрузки — коммутируемая сеть Ethernet. Основой системы является коммутатор (switch), который включает высокоскоростную плату, объединяющую все порты (илл. 4.17 (б)). Внешне коммутатор ничем не отличается от концентратора. Оба представляют собой обычные коробки, оборудованные несколькими (от 4 до 48) стандартными разъемами RJ-45 для подключения витой пары. Каждый кабель соединяет коммутатор или концентратор с одним компьютером, как показано на илл. 4.18. У коммутатора есть все преимущества концентратора. Новую станцию легко добавить или удалить, подключив или отключив один провод. Большинство сбоев кабеля или портов легко выявляется по неправильной работе всего лишь одной станции. Общий компонент все же может подвести систему — речь идет о самом коммутаторе, — но если сеть пропадет на всех станциях, инженеры сразу поймут, в чем дело, и заменят устройство.
Однако внутри коммутатор и концентратор существенно различаются. Коммутаторы отдают фреймы только на порты, для которых те предназначены. Когда со станции на порт коммутатора приходит фрейм Ethernet, коммутатор проверяет адреса Ethernet и узнает, на какой порт этот фрейм нужно отдать. Для данного шага требуется, чтобы устройство могло сопоставлять номера портов и адреса. Этот процесс мы обсудим в разделе 4.8, где будет рассматриваться общий случай соединения нескольких коммутаторов друг с другом. Пока что предположим, что коммутатор знает порт получателя фрейма. Он пересылает фрейм на порт получателя через высокоскоростную плату. Скорость платы составляет несколько гигабит в секунду, а используемый протокол стандартизировать не требуется, так как он не выходит за пределы коммутатора. Затем порт получателя отправляет фрейм станции назначения по соединяющему их проводу. Другие порты об этом фрейме даже не подозревают.
Илл. 4.18. Коммутатор Ethernet
Что произойдет, если два компьютера или два порта станут передавать фреймы одновременно? Как мы помним, поведение коммутаторов отличается от концентраторов. Внутри концентратора все станции находятся в одной и той же области коллизий (collision domain). Для планирования пересылки фреймов требуется алгоритм CSMA/CD. У коммутатора каждый порт находится в своей области коллизий. Обычно передача по кабелю осуществляется в дуплексном режиме, а значит, и станция, и порт могут одновременно отправлять фреймы, не беспокоясь о других станциях и портах. Коллизии при этом невозможны, и CSMA/CD не нужен. Однако если кабель полудуплексный, то станция и порт должны договариваться о передаче с помощью обычного CSMA/CD.
Что касается производительности, у коммутатора два преимущества перед концентратором. Во-первых, поскольку коллизии отсутствуют, пропускная способность используется более эффективно. Во-вторых, что еще более важно, благодаря коммутатору разные станции могут посылать фреймы одновременно. Достигнув портов коммутатора, они перейдут по внутренней плате устройства на правильные выходные порты. Но так как на один выходной порт может быть одновременно отправлено два фрейма, внутри коммутатора должен быть буфер для их временного хранения, если моментальная доставка на выходной порт невозможна. В целом эти усовершенствования дают большое преимущество в производительности по сравнению с концентратором. Общую пропускную способность системы можно увеличить на порядок, в зависимости от числа портов и схем пересылки трафика.
Изменения в технологии портов, на которые пересылаются фреймы, также дают преимущества, связанные с безопасностью. Большинство интерфейсов LAN (сетевых адаптеров) могут работать в «неразборчивом режиме» (promiscuous mode), когда все фреймы передаются на все компьютеры, а не только адресату. При использовании концентратора каждый подключенный к нему компьютер может видеть трафик между всеми остальными устройствами (что очень радует мошенников). Коммутатор передает трафик только на порты адресатов. Это обеспечивает лучшую изоляцию и защиту от утечки данных: траф