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-адреса (например, с соответствующего компьютера еще не поступало данных) – передаем данные на все порты – по такой же схеме, как работает концентратор.
С такой технологией, очевидно, безлпасность выше, так как данные передаются только непосредственно получателю.