Ethernet

Материал из Викиконспекты
Перейти к: навигация, поиск

Ethernet

Ethernet — доминирующая технология проводных локальных сетей. Изобрел её в 1973году Роберт Метклаф в Xerox, когда нужно было к одному лазерному принтеру подключить как можно больше компьютеров.
В последствии Xerox, DEC, Intel решают использовать Ethernet в качестве стандартного сетевого решения (Ethernet II).
В 1982 выходит спецификация IEEE 802.3 для стандартизации Ethernet.

Место Ethernet в модели OSI
Ethosi.png

Типы 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 вместо него передавалась длина поля данных) Ethtypes.png
Ether Types:

  • 0800 — IPv4
  • 86DD — IPv6
  • 0806 — ARP

Поле данных:

  • Максимальная длина в 1500байт была выбрана разработчиками достаточно произвольно. В то время память была дорогая и этого оптимально хватало. Существуют различные расширения (JumboFrame позволяет перадавать до 9000байт)
  • Минимальная длина в 46байт — ограничение стандарта, об этом будет сказано ниже

Коллизии

Определение:
Коллизия наложение двух и более кадров, передающихся компьютерами в один и тот же момент времени

Ethcollis.jpg
Необходимо обеспечить использование канала только одним отправителем
Классический Ethernet использует для этого метод CSMA/CD (Carrier Sense Multiple Access with Collision Detection, Множественный доступ с прослушиванием несущей частоты и распознаванием коллизий). Компьютеры прослушивают несущую частоту и передают данные только если среда свободна. Классический Ethernet использует манчестерское кодирование. Несущаяя частота 10-20MHz Manchester.png

Обнаружение коллизий
CSMA-CD.jpg
Компьютер передает и принимает сигналы одновременно и если принятый сигнал отличается от переданного – значит, возникла коллизия. В таком случае компьютеры останавливают передачу данных и передают в среду так называемую 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 для уменьшения числа коллизий для больших сетей. Принцип был таков: мост подключается к двум сегментам сети и пропускает данные через себя, только если они передаются из одного сегмента сети в другой.
Ethbridge.png
В коммутаторах для передачи данных используется так называемый алгоритм прозрачного моста (мост, который незаметен для сетевых устройств(у него нет своего MAC-адреса) и не требует настройки). По сути, коммутатор и есть некий большой прозрачный мост с множеством портов.
Сам алгоритм предельно прост: на какой-то порт приходят данные, мы извлекаем адрес получателя из заголовка, смотрим в таблицу коммутации:
1. В таблице есть соответствие порту для этого MAC-адреса – передаем даные на него.
2. В таблице нет соответствия порту для этого MAC-адреса (например, с соответствующего компьютера еще не поступало данных) – передаем данные на все порты – по такой же схеме, как работает концентратор.
С такой технологией, очевидно, безлпасность выше, так как данные передаются только непосредственно получателю.