Ethernet
Ethernet
Ethernet — доминирующая технология проводных локальных сетей. Роберт Метклаф изобрел её в 1973году в Xerox для того, чтобы к одному лазерному принтеру подключить как можно больше компьютеров.
В последствии Xerox, DEC, Intel решают использовать Ethernet в качестве стандартного сетевого решения (Ethernet II).
В 1982 выходит спецификация IEEE 802.3 для стандартизации Ethernet.
Название | Скорость | Кабель | Стандарт |
---|---|---|---|
Ethernet | 10Mb/s | Толстый, тонкий коаксиал, Витая пара, оптика |
802.3 |
Fast Ethernet | 100Mb/s | Витая пара, оптика | 802.3u |
Gigabit Ethernet | 1Gb/s | Витая пара, оптика | 802.3z, 802.3ab |
10G Ethernet | 10Gb/s | Витая пара, оптика | 802.3ae, 802.3an |
Есть 2 технологии Ethernet:
1. Классический Ethernet
- Разделяемая среда
- Ethernet - Gigabit Ethernet
2. Коммутируемый Ethernet
- Точка-точка
- Появился в Fast Ethernet
- Единственный вариант в 10G Ethernet
Классический Ethernet
В качестве общей шины использовался коаксиальный кабель. В дальнешем такая схема была заменена на концентраторы Ethernet (hub).
- Физическая топология – звезда
- Логическая топология – общая шина
Компьютеры подключаются к концентратору с помощью витых пар, но внутри – общая шина, то есть все данные, которые приходят на один порт, передаются на все остальные порты.
Для идентификации сетевых интерфейсов узлов внутри сети Ethernet используются MAC-адреса. Очевидно, что они должны быть уникальны в одном сегменте сети. Если несколько имеют один и тот же MAC, то один из них работать не будет и какой именно не регламентировано.
Стандарты Ethernet
- Первый вариант – экспериментальная реализация в Xerox
- Ethernet II (Ethernet DIX) – фирменный стандарт Ethernet компани Xerox, Intel, DEC
- IEEE 802.3 – юридический стандарт Ethernet
Ethernet II и IEEE 802.3 незначительно отличаются. Первый из них исторически раньше появился и при появлении второго много оборудования было на Ethernet II. Сейчас поддерживаются оба.
(Различие в том, что в Ethernet II передавался тип протокола, а по IEEE 802.3 вместо него передавалась длина поля данных)
Ether Types:
- 0800 — IPv4
- 86DD — IPv6
- 0806 — ARP
Поле данных:
- Максимальная длина в 1500байт была выбрана разработчиками достаточно произвольно. В то время память была дорогая и этого оптимально хватало. Существуют различные расширения (JumboFrame позволяет перадавать до 9000байт)
- Минимальная длина в 46байт — ограничение стандарта, об этом будет сказано ниже
Коллизии
Определение: |
Коллизия наложение двух и более кадров, передающихся компьютерами в один и тот же момент времени |
Необходимо обеспечить использование канала только одним отправителем
Классический Ethernet использует для этого метод CSMA/CD (Carrier Sense Multiple Access with Collision Detection, Множественный доступ с прослушиванием несущей частоты и распознаванием коллизий). Компьютеры прослушивают несущую частоту и передают данные только если среда свободна. Классический Ethernet использует манчестерское кодирование. Несущаяя частота 10-20MHz
Обнаружение коллизий
Компьютер передает и принимает сигналы одновременно и если принятый сигнал отличается от переданного – значит, возникла коллизия. В таком случае компьютеры останавливают передачу данных и передают в среду так называемую Jam-последовательность – специальный сигнал, который очень сильно искажает данные в сети и гарантирует, что все остальные компьютеры распознают коллизию и прекратят передачу данных.
Если в среде нет несущей частоты, то компьютер может начинать передачу данных. При передаче перед данными следует преамбула. Она состоит из 8 байт и служит для синхронизации источника и передатчика. Первые 7 байт – 10101010, последний, 8ой байт – 10101011(последние 2 единицы – ограничитель между преамбулой и данными). После самого кадра следет межкадровый интервал (9.6мкс). Он нужен для предотвращения монопольного захвата канала и приведения сетевых адаптеров в исходное состояние.
Передача кадра
Компьютер передает кадр в общую среду и каждый компьютер, к ней подключенный начинает принимать его и записывать в буффер.
Первые 6 байт – это адрес получателя. Если очередной компьютер узнает в нем свой, то продолжает записывать кадр, остальные – удаляют его из буффера. Но есть специальный режим сетевого адаптера – promiscuous mode (неразборчиый режим), в котором адаптер принимает все кадры в сети, независимо от MAC-адреса назначения. Он используется для мониторинга или диагностики сети.
Период конкуренции
Если компьютер начал передавать данные и обнаружил коллизию, то он делает паузу длительностью L * 512 битовых интервалов (время, необходимое для передачи одного бита, которое при скорости передачи 10 Мбит/с составляет 0,1 мкс). L случайно выбирается из диапазона [0, 2**N – 1], где N – номер попытки. После 10 попыток интервал не увеличивается, а после 16 передача прекращается.
Такой алгоритм хорошо работает при низкой загрузке:
- В сети мало компьютеров
- Компьютеры редко передают данные
Если же нагрузка высокая, то очевидные проблемы:
- Растет число попыток передачи
- Растет интервал, сз которого выбирается L, и следовательно длительность пауз
- Экспоненциально увеличивается задержка
Определение: |
Время оборота (Round trip time, RTT) время, за которое сигнал успевает дойти от одного конца сети в другой и вернуться назад. |
Существует классическое ограничение – время оборота должно быть меньше времени передачи самого короткого кадра. Иначе произойдет коллизия, которую не заметит отправитель. (Сигнал о коллизии может прийти уже после того, как компьютер завершил передачу кадра и он будет считать, что кадр передан, а на самом деле произошла коллизия).
Параметры Ethernet подобраны таким образом, чтобы коллизии гарантированно распозновались:
- Минимальная длина – 46 байт (иначе – выравнивание)
- Максимлаьная длина сети 2500м
Недостатки классического Ethernet:
- Плохая масштабируемость:
- Сеть становится неработоспособной при загрузке разделяемой среды больше, чем на 30%
- Работоспособное количество компьютеров – 30
- При увеличении скорости передачи уменьшается длина сети (для снижения RTT)
- Разное время передачи кадра (из-за коллизий, для real-time трафика – это плохо)
- Низкая безопасность – данные в разделяемой среде доступны всем.
Коммутируемый Ethernet
Это новая усовершенственная технология, появилась в 1995году, спецификация IEEE 802.3u.
В ней нет разделяемой среды и используется топология “точка-точка”. Для этого придумали новый тип сетевых устройств – коммутаторы.
Внешне концентратор(для классического Ethernet) и коммутатор почти не отличаются, но внутренее отличие очень большое: концентратор использует топологию “общая шина”, коммутатор же – полносвязную топологию. Концентратор работает на физическом уровне, он передает электрические сигналы, которые поступают на один порт, на все порты. Коммутатор работает на канальном уровне: он анализирует заголовок канального уровня, извлекает адрес получателя и передает данные только на тот порт, к которому подключен получатель.
Особенности работы коммутаторов
В нем хранится таблица коммутации: соответствие порта и MAC-адреса. Для ее заполнения используется алгоритм обратного обучения. Коммутатор анализирует заголовки канального уровня, извлекает адрес отправителя и заполняет таблицу.
Номер порта | MAC-адрес |
---|---|
1 | A1-B2-C3-D4-C5-F6 |
2 | 1A-2B-3C-4D-5C-6F |
3 | AA-BB-CC-DD-EE-FF |
В реальности в этой таблице может хранится еще другая мета-информация (например, состояние порта, номер vlan и т.п.)
Для передачи кадров внутри коммутатора используется алгоритм прозрачного моста.
Определение: |
Мост устройство для объединения нескольких сетей. |
Использовались они в классическом Ethernet-e для уменьшения числа коллизий для больших сетей. Принцип был таков: мост подключается к двум сегментам сети и пропускает данные через себя, только если они передаются из одного сегмента сети в другой.
В коммутаторах для передачи данных используется так называемый алгоритм прозрачного моста (мост, который незаметен для сетевых устройств(у него нет своего MAC-адреса) и не требует настройки). По сути, коммутатор и есть некий большой прозрачный мост с множеством портов.
Сам алгоритм предельно прост: на какой-то порт приходят данные, мы извлекаем адрес получателя из заголовка, смотрим в таблицу коммутации:
1. В таблице есть соответствие порту для этого MAC-адреса – передаем даные на него.
2. В таблице нет соответствия порту для этого MAC-адреса (например, с соответствующего компьютера еще не поступало данных) – передаем данные на все порты – по такой же схеме, как работает концентратор.
С такой технологией, очевидно, безлпасность выше, так как данные передаются только непосредственно получателю.
Simplex, Half Duplex, Full Duplex
Определение: |
Симплексная передача передача, которая происходит только в одном направлении. |
Определение: |
Полудуплексная передача передача, которая возможна в двух направлениях, но в один момент времени только в одном из них. |
Определение: |
Полнодуплексная передача передача, которая возможна в двух направлениях в любой момент времени. |
Симплексное соединение используют многие, если не все оптоволоконные соединения. Или, например, dial-up модемы.
Полудуплексный режим используется в некоммутируемом Ethernet и описан в IEEE 802.3. Вообще, это довольно распространенный режим для соединений с какой-то разделяемой средой (общей шиной в Ethernet).
Полнодуплексный режим используется в коммутируемом Ethernet и описан в IEEE 802.3u. При полнодуплексной передаче используется топология "точка-точка". Коллизии в этом случае не происходят, так как отправка и получение данных происходит по разным проводам.
Коллизия возникает, когда передатчики порта коммутатора и сетевого адаптера одновременно или почти одновременно начинают передачу своих кадров, считая, что изображенный на рисунке сегмент свободен. В результате строгого соблюдения правил разделения среды по протоколу Ethernet порт коммутатора и сетевой адаптер используют соединяющий их кабель в полудуплексном режиме, то есть по очереди - сначала кадр или кадры передаются в одном направлении, а затем в другом. При этом максимальная производительность сегмента Ethernet в 14880 кадров в секунду при минимальной длине кадра делится между передатчиком порта коммутатора и передатчиком сетевого адаптера. Если считать, что она делится пополам, то каждому предоставляется возможность передавать примерно по 7440 кадров в секунду.
Способность оборудования работать с максимальной скоростью в каждом направлении использовали разработчики коммутаторов в своих нестандартных реализациях технологий, получивших название полнодуплексных версий Ethernet.
После опробования полнодуплексной технологии на соединениях коммутатор-коммутатор разработчики реализовали ее и в сетевых адаптерах, в основном адаптерах Ethernet и Fast Ethernet. Многие сетевые адаптеры сейчас могут поддерживать оба режима работы, отрабатывая логику алгоритма доступа CSMA/CD при подключении к порту концентратора и работая в полнодуплексном режиме при подключении к порту коммутатора.
Однако, необходимо осознавать, что отказ от поддержки алгоритма доступа к разделяемой среде без какой-либо модификации протокола ведет к повышению вероятности потерь кадров коммутаторами, а, следовательно, к возможному снижению полезной пропускной способности сети (по отношению к переданным данным приложений) вместо ее повышения.