19
правок
Изменения
Ethernet
,*
'''Ethernet''' -- доминирующая технология проводных локальных сетей. Изобрел её в 1973году Роберт Метклаф в Xerox, когда нужно было к одному лазерному принтеру подключить как можно больше компьютеров.<br>
В последствии Xerox, DEC, Intel решают использовать Ethernet в качестве стандартного сетевого решения (Ethernet II).<br>
В 1982 выходит спецификация IEEE 802.3 для стандартизации Ethernet.
'''Место Ethernet в модели OSI'''
[[Файл:ethosi.png]]
{| class="wikitable" style="text-align:center"
|+ Типы Ethernet
|-
! Название !! Скорость !! Кабель !! Стандарт
|-
| Ethernet || 10Mb/s || Толстый, тонкий коаксиал, <br>Витая пара, оптика || 802.3
|-
| Fast Ethernet || 100Mb/s || Витая пара, оптика || 802.3u
|-
| Gigabit Ethernet || 1Gb/s || Витая пара, оптика || 802.3z,<br>802.3ab
|-
| 10G Ethernet || 10Gb/s || Витая пара, оптика || 802.3ae,<br>802.3an
|}
Есть 2 технологии Ethernet:
1. Классический Ethernet
* Разделяемая среда
* Ethernet - Gigabit Ethernet
2. Коммутируемый Ethernet
* Точка-точка
* Появился в Fast Ethernet
* Единственный вариант в 10G Ethernet
== Классический Ethernet ==
В качестве общей шины использовался коаксиальный кабель. В дальнешем такая схема была заменена на концентраторы Ethernet (hub).<br>
* Физическая топология – звезда<br>
* Логическая топология – общая шина<br>
Компьютеры подключаются к концентратору с помощью витых пар, но внутри – общая шина, то есть все данные, которые приходят на один порт, передаются на все остальные порты.<br>
Для идентификации сетевых интерфейсов узлов внутри сети Ethernet используются [http://neerc.ifmo.ru/wiki/index.php?title=Data_link_layer_-_MAC_-_Aloha,_CSMA#MAC_-_.D0.B0.D0.B4.D1.80.D0.B5.D1.81 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]]<br>
'''Ether Types:'''
* 0800 – IPv4
* 86DD – IPv6
* 0806 – ARP<br>
'''Поле данных:'''
* Максимальная длина в 1500байт была выбрана разработчиками достаточно произвольно. В то время память была дорогая и этого оптимально хватало. Существуют различные расширения (JumboFrame позволяет перадавать до 9000байт)
* Минимальная длина в 46байт -- ограничение стандарта, об этом будет сказано ниже
== Коллизии ==
{{Определение
|definition=
'''Коллизия''' наложение двух и более кадров, передающихся компьютерами в один и тот же момент времени
}}
[[Файл:ethcollis.jpg]]<br>
Необходимо обеспечить использование канала только одним отправителем
<br>
Классический Ethernet использует для этого метод CSMA/CD (Carrier Sense Multiple Access with Collision Detection, Множественный доступ с прослушиванием несущей частоты и распознаванием коллизий). Компьютеры прослушивают несущую частоту и передают данные только если среда свободна. Классический Ethernet использует манчестерское кодирование. Несущаяя частота 10-20MHz
[[Файл:manchester.png]]<br>
<br>
'''Обнаружение коллизий'''
<br>
Компьютер передает и принимает сигналы одновременно и если принятый сигнал отличается от переданного – значит, возникла коллизия.
<br>
Если обнаружилась коллизия, то компьютеры останавливают передачу данных и передают в среду так называемую Jam-последовательностью – специальный сигнал, который очень сильно искажает данные в сети и гарантирует, что все остальные компьютеры распознают коллизию и прекратят передачу данных.<br>
[[Файл:CSMA-CD.jpg]] <br>
Если в среде нет несущей частоты, то компьютер может начинать передачу данных. При передачи перед данными следует преамбула. Она состоит из 8 байт и служит для синхронизации источника и передатчика. Первые 7 байт – 10101010, последний, 8ой байт – 10101011(последние 2 единицы – ограничитель между преамбулой и данными). После самого кадра следет межкадровый интервал (9.6мкс). Он нужен для предотвращения монопольного захвата канала и приведения сетевых адаптеров в исходное состояние.
<br>
'''Передача кадра'''
<br>
Компьютер передает кадр в общую среду и каждый компьютер, к ней подключенный начинает принимать его и записывать в буффер.
<br>
Первые 6 байт – это адрес получателя. Если очередной компьютер узнает в нем свой, то продолжает записывать кадр, остальные – удаляют его из буффера. Но есть специальный режим сетевого адаптера – promiscuous mode (неразборчиый режим), в котором адаптер принимает все кадры в сети, независимо от MAC-адреса назначения. Он используется для мониторинга или диагностики сети.
'''Период конуцренции'''
<br>
Если компьютер начал передавать данные и обнаружил коллизию, то он делает паузу длительностью L * 512 битовых интервалов (время, необходимое для передачи одного бита, которое при скорости передачи 10 Мбит/с составляет 0,1 мкс). L случайно выбирается из диапазона [0, 2**N – 1], где N – номер попытки. После 10 попыток интервал не увеличивается, а после 16 передача прекращается.
Такой алгоритм хорошо работает при низкой загрузке:
* В сети мало компьютеров
* Компьютеры редко передают данные <br>
Если же нагрузка высокая, то очевидные проблемы:
* Растет число попыток передачи
* Растет интервал, сз которого выбирается L, и следовательно длительность пауз
* Экспоненциально увеличивается задержка <br>
{{Определение
|definition=
'''Время оборота (Round trip time, RTT)''' время, за которое сигнал успевает дойти от одного конца сети в другой и вернуться назад.
}}
Существует классическое ограничение – время оборота должно быть меньше времени передачи самого короткого кадра. Иначе произойдет коллизия, которую не заметит отправитель. (Сигнал о коллизии может прийти уже после того, как компьютер завершил передачу кадра и он будет считать, что кадр передан, а на самом деле произошла коллизия).
<br>
Параметры Ethernet подобраны таким образом, чтобы коллизии гарантированно распозновались:
* Минимальная длина – 46 байт (иначе – выравнивание)
* Максимлаьная длина сети 2500м
Недостатки классического Ethernet:
* Плохая масштабируемость:
** Сеть становится неработоспособной при загрузке разделяемой среды больше, чем на 30%
** Работоспособное количество компьютеров – 30
* При увеличении скорости передачи уменьшается длина сети (для снижения RTT)
* Разное время передачи кадра (из-за коллизий, для real-time трафика – это плохо)
* Низкая безопасность – данные в разделяемой среде доступны всем.
==Коммутируемый Ethernet==
Это новая усовершенственная технология, появилась в 1995году, спецификация IEEE 802.3u.<br>
В ней нет разделяемой среды и используется топология “точка-точка”. Для этого придумали новый тип сетевых устройств – коммутаторы.<br>
Внешне концентратор(для классического Ethernet) и коммутатор почти не отличаются, но внутренее отличие очень большое: концентратор использует топологию “общая шина”, коммутатор же – полносвязную топологию. Концентратор работает на физическом уровне, он передает электрические сигналы, которые поступают на один порт, на все порты. Коммутатор работает на канальном уровне: он анализирует заголовок канального уровня, извлекает адрес получателя и передает данные только на тот порт, к которому подключен получатель.<br>
'''Особенности работы коммутаторов'''<br>
В нем хранится таблица коммутации: соответствие порта и MAC-адреса. Для ее заполнения используется алгоритм обратного обучения. Коммутатор анализирует заголовки канального уровня, извлекает адрес отправителя и заполняет таблицу.
{| class="wikitable" style="text-align:center"
|+ Таблица коммутации
|-
! Номер порта !! MAC-адрес
|-
| 1 || A1-B2-C3-D4-C5-F6
|-
| 2 || 1A-2B-3C-4D-5C-6F
|-
| 3 || AA-BB-CC-DD-EE-FF
|}
''В реальности в этой таблице может хранится еще другая мета-информация (например, состояние порта, номер vlan и т.п.)''<br>
Для передачи кадров внутри коммутатора используется '''алгоритм прозрачного моста'''.<br>
{{Определение
|definition=
'''Мост''' устройство для объединения нескольких сетей.
}}
Использовались они в классическом Ethernet-e для уменьшения числа коллизий для больших сетей. Принцип был таков: мост подключается к двум сегментам сети и пропускает данные через себя, только если они передаются из одного сегмента сети в другой.
<br>[[Файл:ethbridge.png]]<br>
В коммутаторах для передачи данных используется так называемый алгоритм прозрачного моста (мост, который незаметен для сетевых устройств(у него нет своего MAC-адреса) и не требует настройки). По сути, коммутатор и есть некий большой прозрачный мост с множеством портов.<br>
Сам алгоритм предельно прост: на какой-то порт приходят данные, мы извлекаем адрес получателя из заголовка, смотрим в таблицу коммутации:<br>
1. В таблице есть соответствие порту для этого MAC-адреса – передаем даные на него.<br>
2. В таблице нет соответствия порту для этого MAC-адреса (например, с соответствующего компьютера еще не поступало данных) – передаем данные на все порты – по такой же схеме, как работает концентратор.<br>
С такой технологией, очевидно, безлпасность выше, так как данные передаются только непосредственно получателю.
В последствии Xerox, DEC, Intel решают использовать Ethernet в качестве стандартного сетевого решения (Ethernet II).<br>
В 1982 выходит спецификация IEEE 802.3 для стандартизации Ethernet.
'''Место Ethernet в модели OSI'''
[[Файл:ethosi.png]]
{| class="wikitable" style="text-align:center"
|+ Типы Ethernet
|-
! Название !! Скорость !! Кабель !! Стандарт
|-
| Ethernet || 10Mb/s || Толстый, тонкий коаксиал, <br>Витая пара, оптика || 802.3
|-
| Fast Ethernet || 100Mb/s || Витая пара, оптика || 802.3u
|-
| Gigabit Ethernet || 1Gb/s || Витая пара, оптика || 802.3z,<br>802.3ab
|-
| 10G Ethernet || 10Gb/s || Витая пара, оптика || 802.3ae,<br>802.3an
|}
Есть 2 технологии Ethernet:
1. Классический Ethernet
* Разделяемая среда
* Ethernet - Gigabit Ethernet
2. Коммутируемый Ethernet
* Точка-точка
* Появился в Fast Ethernet
* Единственный вариант в 10G Ethernet
== Классический Ethernet ==
В качестве общей шины использовался коаксиальный кабель. В дальнешем такая схема была заменена на концентраторы Ethernet (hub).<br>
* Физическая топология – звезда<br>
* Логическая топология – общая шина<br>
Компьютеры подключаются к концентратору с помощью витых пар, но внутри – общая шина, то есть все данные, которые приходят на один порт, передаются на все остальные порты.<br>
Для идентификации сетевых интерфейсов узлов внутри сети Ethernet используются [http://neerc.ifmo.ru/wiki/index.php?title=Data_link_layer_-_MAC_-_Aloha,_CSMA#MAC_-_.D0.B0.D0.B4.D1.80.D0.B5.D1.81 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]]<br>
'''Ether Types:'''
* 0800 – IPv4
* 86DD – IPv6
* 0806 – ARP<br>
'''Поле данных:'''
* Максимальная длина в 1500байт была выбрана разработчиками достаточно произвольно. В то время память была дорогая и этого оптимально хватало. Существуют различные расширения (JumboFrame позволяет перадавать до 9000байт)
* Минимальная длина в 46байт -- ограничение стандарта, об этом будет сказано ниже
== Коллизии ==
{{Определение
|definition=
'''Коллизия''' наложение двух и более кадров, передающихся компьютерами в один и тот же момент времени
}}
[[Файл:ethcollis.jpg]]<br>
Необходимо обеспечить использование канала только одним отправителем
<br>
Классический Ethernet использует для этого метод CSMA/CD (Carrier Sense Multiple Access with Collision Detection, Множественный доступ с прослушиванием несущей частоты и распознаванием коллизий). Компьютеры прослушивают несущую частоту и передают данные только если среда свободна. Классический Ethernet использует манчестерское кодирование. Несущаяя частота 10-20MHz
[[Файл:manchester.png]]<br>
<br>
'''Обнаружение коллизий'''
<br>
Компьютер передает и принимает сигналы одновременно и если принятый сигнал отличается от переданного – значит, возникла коллизия.
<br>
Если обнаружилась коллизия, то компьютеры останавливают передачу данных и передают в среду так называемую Jam-последовательностью – специальный сигнал, который очень сильно искажает данные в сети и гарантирует, что все остальные компьютеры распознают коллизию и прекратят передачу данных.<br>
[[Файл:CSMA-CD.jpg]] <br>
Если в среде нет несущей частоты, то компьютер может начинать передачу данных. При передачи перед данными следует преамбула. Она состоит из 8 байт и служит для синхронизации источника и передатчика. Первые 7 байт – 10101010, последний, 8ой байт – 10101011(последние 2 единицы – ограничитель между преамбулой и данными). После самого кадра следет межкадровый интервал (9.6мкс). Он нужен для предотвращения монопольного захвата канала и приведения сетевых адаптеров в исходное состояние.
<br>
'''Передача кадра'''
<br>
Компьютер передает кадр в общую среду и каждый компьютер, к ней подключенный начинает принимать его и записывать в буффер.
<br>
Первые 6 байт – это адрес получателя. Если очередной компьютер узнает в нем свой, то продолжает записывать кадр, остальные – удаляют его из буффера. Но есть специальный режим сетевого адаптера – promiscuous mode (неразборчиый режим), в котором адаптер принимает все кадры в сети, независимо от MAC-адреса назначения. Он используется для мониторинга или диагностики сети.
'''Период конуцренции'''
<br>
Если компьютер начал передавать данные и обнаружил коллизию, то он делает паузу длительностью L * 512 битовых интервалов (время, необходимое для передачи одного бита, которое при скорости передачи 10 Мбит/с составляет 0,1 мкс). L случайно выбирается из диапазона [0, 2**N – 1], где N – номер попытки. После 10 попыток интервал не увеличивается, а после 16 передача прекращается.
Такой алгоритм хорошо работает при низкой загрузке:
* В сети мало компьютеров
* Компьютеры редко передают данные <br>
Если же нагрузка высокая, то очевидные проблемы:
* Растет число попыток передачи
* Растет интервал, сз которого выбирается L, и следовательно длительность пауз
* Экспоненциально увеличивается задержка <br>
{{Определение
|definition=
'''Время оборота (Round trip time, RTT)''' время, за которое сигнал успевает дойти от одного конца сети в другой и вернуться назад.
}}
Существует классическое ограничение – время оборота должно быть меньше времени передачи самого короткого кадра. Иначе произойдет коллизия, которую не заметит отправитель. (Сигнал о коллизии может прийти уже после того, как компьютер завершил передачу кадра и он будет считать, что кадр передан, а на самом деле произошла коллизия).
<br>
Параметры Ethernet подобраны таким образом, чтобы коллизии гарантированно распозновались:
* Минимальная длина – 46 байт (иначе – выравнивание)
* Максимлаьная длина сети 2500м
Недостатки классического Ethernet:
* Плохая масштабируемость:
** Сеть становится неработоспособной при загрузке разделяемой среды больше, чем на 30%
** Работоспособное количество компьютеров – 30
* При увеличении скорости передачи уменьшается длина сети (для снижения RTT)
* Разное время передачи кадра (из-за коллизий, для real-time трафика – это плохо)
* Низкая безопасность – данные в разделяемой среде доступны всем.
==Коммутируемый Ethernet==
Это новая усовершенственная технология, появилась в 1995году, спецификация IEEE 802.3u.<br>
В ней нет разделяемой среды и используется топология “точка-точка”. Для этого придумали новый тип сетевых устройств – коммутаторы.<br>
Внешне концентратор(для классического Ethernet) и коммутатор почти не отличаются, но внутренее отличие очень большое: концентратор использует топологию “общая шина”, коммутатор же – полносвязную топологию. Концентратор работает на физическом уровне, он передает электрические сигналы, которые поступают на один порт, на все порты. Коммутатор работает на канальном уровне: он анализирует заголовок канального уровня, извлекает адрес получателя и передает данные только на тот порт, к которому подключен получатель.<br>
'''Особенности работы коммутаторов'''<br>
В нем хранится таблица коммутации: соответствие порта и MAC-адреса. Для ее заполнения используется алгоритм обратного обучения. Коммутатор анализирует заголовки канального уровня, извлекает адрес отправителя и заполняет таблицу.
{| class="wikitable" style="text-align:center"
|+ Таблица коммутации
|-
! Номер порта !! MAC-адрес
|-
| 1 || A1-B2-C3-D4-C5-F6
|-
| 2 || 1A-2B-3C-4D-5C-6F
|-
| 3 || AA-BB-CC-DD-EE-FF
|}
''В реальности в этой таблице может хранится еще другая мета-информация (например, состояние порта, номер vlan и т.п.)''<br>
Для передачи кадров внутри коммутатора используется '''алгоритм прозрачного моста'''.<br>
{{Определение
|definition=
'''Мост''' устройство для объединения нескольких сетей.
}}
Использовались они в классическом Ethernet-e для уменьшения числа коллизий для больших сетей. Принцип был таков: мост подключается к двум сегментам сети и пропускает данные через себя, только если они передаются из одного сегмента сети в другой.
<br>[[Файл:ethbridge.png]]<br>
В коммутаторах для передачи данных используется так называемый алгоритм прозрачного моста (мост, который незаметен для сетевых устройств(у него нет своего MAC-адреса) и не требует настройки). По сути, коммутатор и есть некий большой прозрачный мост с множеством портов.<br>
Сам алгоритм предельно прост: на какой-то порт приходят данные, мы извлекаем адрес получателя из заголовка, смотрим в таблицу коммутации:<br>
1. В таблице есть соответствие порту для этого MAC-адреса – передаем даные на него.<br>
2. В таблице нет соответствия порту для этого MAC-адреса (например, с соответствующего компьютера еще не поступало данных) – передаем данные на все порты – по такой же схеме, как работает концентратор.<br>
С такой технологией, очевидно, безлпасность выше, так как данные передаются только непосредственно получателю.