Существует два вида технологий Ethernet, которые мы подробно разберем в этой статье, классический и коммутируемый Ethernet.
Виды Ethernet
Первым появился классический Ethernet в 1973 г. Он применял разделяемую среду в виде коаксиального кабеля, который прокладывали от одного ПК к другому. Впоследствии, коаксиал заменили на концентратор. В сетях данного типа, есть вероятность возникновения коллизий. Для устранения коллизий, применяется метод CSMA/CD.
Плохая масштабируемость это изъян сети. Если в сети чересчур много ПК или им часто приходится передать данные, то основная часть времени затрачивается на коллизии и борьбу за доступ к среде, а не на передачу информации.
Информация, которая передаётся по разделяемой среде, доступна и другим ПК. Следовательно, безопасность классического изернет достаточно низкая.
Концентратор и коммутатор
Технология которая появилась в 1995 году и используется до сих пор это коммутируемый Ethernet. Чтобы искоренить недостатки классического изернета, приняли решение абсолютно отказаться от разделяемой среды. Вместо неё применять соединение “точка-точка”, так чтобы не возникало коллизий. И для этого придумали и создали новый вид сетевых устройств коммутаторы.
Внешне концентратор похож на коммутатор. Говоря простым языком, это коробочки, у которых есть порты для подключения сетевых кабелей. Однако внутренне, коммутаторы и концентраторы глобально различаются.
Топологию “общая шина” использует концентратор, где внутри, все порты соединены друг с другом. Концентратор трудится на физическом уровне. Он отправляет электрические сигналы, поступающие на один порт, на все оставшиеся порты.
Внутри коммутатора полносвязная топология, обеспечивающая объединение всех портов напрямую, с помощью технологии “точка-точка”. Коммутатор действует на канальном уровне, а это значит, что он, проводит анализ заголовка канального уровня, получает оттуда адрес принимающей стороны и передает информацию только на тот порт, к которому подключен получатель, в отличии от концентратора, который передаёт данные на все порты.
Особенности работы коммутаторов
Чтобы нам понять, как работает коммутатор, разберем три понятия.
- Таблица коммутации, встроенная во все коммутаторы. Описывает, к какому именно порту коммутатора, какие ПК подключены.
- Применяется алгоритм обратного обучения чтобы узнать mac адреса компьютеров, подключённых к его портам.
- Алгоритм прозрачного моста применяется после заполнения таблицы коммутации, для передачи данных.
Таблицы коммутации
В простом виде таблица коммутации (ТК) состоит из 2-х столбцов. Столбец №1 это порт коммутатора, а 2-ой это МАК-адрес ПК, который подключен к данному порту.
В действительности, таблица выглядит намного сложнее, но чтобы понять принцип действия коммутатора, хватит этих 2-х полей.
Чтобы узнать, как коммутатор узнает mac адреса компьютеров, которые подключены к его портам, применяется алгоритм обратного обучения.
Например, есть коммутатор, у него 8 портов. Его только что включили и не знает ничего про ПК, подключенные к нему. Ячейки в таблице коммутации пока пустые, коммутатор принимает все кадры, которые приходят на его порты и проводит анализ заголовка канального уровня. Из заголовка он извлекает адрес отправителя. Коммутатор определяет, что к порту №3 подключен ПК с таким же mac-адресом. И следовательно, записывает этот mac-адрес в ТК.
И так далее, пока вся таблица коммутации не заполнится и коммутатор не будет знать МАК-адреса всех ПК, подключенные к его портам.
Чтобы отправить кадры внутри коммутаторов, применяется алгоритм прозрачного моста. Мост был до коммутаторов, это спец устройство, используется для объединения нескольких сетей классического ethernet. Если в сети классического интернета будет подключено большое количество ПК, то возникнут коллизии и данные будут передаваться с низкой скоростью.
Мосты нужны для того, чтобы разделить крупные сети на несколько маленьких, внутри которых намного меньше возникало коллизий и информация передавались с большей скоростью. Мост был подсоединен к 2-м или нескольким сегментам классического изернет, принимал все кадры, которые передаются, но передавал их в другую сеть только в том случае, есть они предназначались для компьютера из другой сети.
Есть несколько видов мостов, но для коммутаторов выбрали режим работы прозрачного моста. Прозрачный мост, он незаметен для сетевых устройств. У него нет своего макадреса и ему не нужна настройка. Вы можете подключать к нему ПК и информация будет немедленно передаваться в отличие от коммутатора. Маршрутизатору нужны конфигурации для каждого порта. В маршрутизаторах необходимо прописать ip адрес, и настроить таблицу маршрутизации.
Например, таблица коммутации заполнена и коммутатор знает мак адреса компьютеров, подключённые к его портам. Коммутатор принимает кадры, проводит анализ заголовка канального уровня и извлекает оттуда адрес получателя. Он ищет этот мак-адрес в таблице коммутации, в нашем случае на картинке ниже, компьютер с таким мак адресом подключен к порту № 2.
Следовательно, кадр передается на порт №2, где и есть получатель, а не на все порты, как это делает концентратор.
Если пришел кадр с адресом получателя, а этого адреса нет в таблице коммутации. То коммутатор работает по такой же схеме, как и концентратор.
Передает кадр на все порты, кроме того порта откуда этот кадр поступил, надеясь, что к какому-нибудь из этих портов подключен компьютер получателя, просто по каким-то причинам он еще не передавал данные и поэтому его мак адреса нет в ТК.
Коммутатор и коллизии
Применяя сеть состоящую только из коммутаторов, коллизий не возникает. Исключением является полудуплексное соединение ПК к коммутатору, при котором передача данных в одно и то же время, возможна только в одну сторону. На данный момент, полудуплексное соединение применяется очень и обычно возникает в случае ошибок работы оборудования.
Если к какому-либо порту коммутатора подключить концентратор, то этот порт подключится к общей среде и на нем появятся коллизии, также как и в классическом ethernet.
Необходимо, чтобы данные передавал один ПК, если информацию будут передавать несколько компьютеров, то произойдет коллизия и информация будет потеряна.
Рассмотрим вариант сети с разделяемой средой, к ней подключено 4 компьютера и первый ПК начал передавать данные.
Он продолжает передавать данные, при этом сигнал пока не дошел до остальных компьютеров. Второй ПК тоже решил отправлять данные и передает сигнал в разделяемую среду.
Спустя время сигналы столкнутся, наложатся друг на друга и будет невозможно прочитать сообщение ни от первого компьютера, ни от второго.
Именно такая ситуация и называется коллизией. Когда сигналы от нескольких устройств накладываются и нельзя прочитать данные.
Доступ к среде
Чтобы избежать коллизий и информация передавались успешно в сетях, где применяется разделяемая среда необходимо использовать, какой-то метод управления доступом к среде. Этот метод должен сделать так, чтобы в одно и то же время данные по разделяемой среде передавал только один компьютер.
В классическом Ethernet используется метод доступа к разделяемой среде CSMA/CD. Сокращение от английского Carrier Sense Multiple Access with Collision Detection. По-русски множественный доступ с прослушиванием несущей частоты и обнаружением коллизий.
Множественный доступ означает, что у нас есть какая-то разделяемая среда, которую используют несколько компьютеров.
Для того, чтобы избежать коллизий, ПК передают информацию только тогда, когда среда свободна. И прослушивание это и есть способ определить свободна среда в данный момент времени или сейчас, какой-то другой ПК передает данные, через разделяемую среду.
Несущая частота это основная гармоника сигнала, применяемая для передачи информации на физическом уровне.
Например, в Ethernet при манчестерском кодировании происходит смена сигнала в середине каждого такта. Также дополнительно может происходить смена сигнала в конце каждого такта. Поэтому, все компьютеры смотрят изменяется ли сигнал с заданной частотой. И если сигнал изменяется, то значит, какой-то другой компьютер передает данные, поэтому сейчас передавать данные нельзя. Если же в сети нет несущей частоты, то можно передавать данные не опасаясь, что помешаешь какому-то другому устройству. Также возможен вариант, когда в сети есть какой-то сигнал. но в нем нет явно выраженной несущей частоты. Это говорит о том, что это не сигнал передачи данных, а просто помехи.
Если два компьютера начали передавать данные одновременно, то происходит коллизия. Как в Ethernet компьютера обнаруживают коллизию? Для этого они передают и принимают данные одновременно и сравнивают эти данные между собой. Если тот сигнал, который компьютер передает в сеть отличается от того, который он принимает, это значит произошла коллизия. Входной сигнал меняется из-за того, что какой-то другой компьютер передает свой сигнал в сеть.
В Ethernet если компьютер обнаружил коллизию, он останавливает передачу и передает в сеть Jam последовательность. Это сигнал, который существенным образом искажает все данные, которые передаются по сети, усиливает коллизию, чтобы все компьютеры, которые подключены к разделяемой среде, гарантированно поняли, что коллизия произошла и остановили передачу.
Модель CSMA/CD
Работа по этому методу состоит из трех периодов, периода передачи, периода конкуренции и периода простоя. В период передачи, какому-то ПК удалось захватить доступ к разделяемой среде и он передает свои данные. В периоде простоя никому передавать данные не нужно и среда свободна.
Период конкуренции возникает, когда несколько компьютеров пытаются начать передавать данные, из-за того, что данные передают несколько компьютеров, возникает коллизия, передача данных останавливается и так продолжается некоторое время, пока одному компьютеру не удастся захватить разделяемую среду себе в монопольное использование, после этого начинается период передачи.
Передавать какие-то кадры компьютер может, только если в среде нет несущей частоты. Компьютер проверил, что в среде несущая частота отсутствует, значит он может начинать передачу кадр.
Передача состоит из преамбулы, кадра и межкадрового интервала.
Сначала передается преамбула, которая позволяет отправителю и получателю синхронизироваться и выделить кадр, затем передается сам кадр. А после этого выдерживается пауза, которая называется межкадровый интервал.
Преамбула в первом варианте Ethernet имеет следующий формат. Длина преамбулы 8 байт. Первые 7 байт это последовательность чередующихся нулей и единиц, именно за счет этого обеспечивается синхронизация отправителя и получателя. В восьмом байте в конце идет две единицы подряд (все последовательности на картинке сверху) это говорит о том, что преамбула закончиась и дальше идут данные кадры.
Передача кадров в классическом Ethernet. Компьютер подключенный к разделяемой среде сначала передает преамбулу, а потом начинает передавать кадр.
Все компьютеры, которые подключены к этой разделяемой среде, начинают читать кадр и записывать данные в буфер. Все ПК читаю первые 6 байт кадра, в которых находится МАК-адрес получателя.
После этого компьютеры сравнивают мак адрес получателя со своим мак-адресом. И тот компьютер, который опознал свой мак-адрес продолжает записывать этот кадр в свой буфер. Все остальные ПК информацию из буфера стирают и не продолжают принимать данные.
Есть специальные режимы работы сетевого адаптера, неразборчивый в котором адаптер принимает все кадры, которые передаются по разделяемой среде независимо от того для какого mac адреса они предназначены. Такой режим работы удобно использовать для диагностики работы сети.
После того, как передача кадра закончилась, компьютер отправитель выдерживает межкадровый интервал. В классическом Ethernet его длина 9,6 мкс. Это нужно, чтобы один компьютер не захватил канал монопольно и не начал передавать кадр за кадром при этом не давая ничего передавать другим компьютерам, а также, чтобы привести адаптеры в исходное положение и подготовить их для принятия и передачи следующего кадра.
После того, как передача кадра завершена и выдержан межкадровый интервал другие компьютеры могут попытаться начать передавать данные. Если в это время данные захочет передавать несколько компьютеров, то происходит период конкуренции. Компьютеры пытаются захватить канал для передачи данных.
Компьютер, когда начинает передавать данные он также и принимает данные, чтобы понять произошла коллизия или нет. В период конкуренции, когда данные передают одновременно на несколько компьютеров, происходит коллизия, поэтому компьютеру необходимо сделать паузу и продолжить передачу через некоторое время. Однако, если все компьютеры будут ждать одинаковое время, то период конкуренции никогда не закончится. ПК обнаружат коллизию, подождут заданное время, снова начнут передавать данные, снова обнаружат коллизию и снова будут ждать одинаковое время. Поэтому, время для ожидания конкуренции выбирается случайным образом, по алгоритму.
L*512 битовых интервалов
Битовый интервал это время между появлениями двух последовательных битов данных. В классическом Ethernet это 0,1 мкс, но длительность битового интервала может быть любой, главное, что она фиксирована для конкретной сетевой технологии. Число L выбирается случайным образом из диапазона [0, 2 в степени N 1], где N номер попытки передачи данных.
Этот алгоритм называется экспоненциальным двоичным алгоритмом отсрочки. Экспоненциальным, потому что при каждой попытке передачи данных, диапазон из которого выбирается случайное число для задержки увеличивается по экспоненте.
Когда компьютеры начали передавать данные и обнаружили коллизию, число L выбирается из диапазона [0,1]. Если компьютеров много и они работают активно, то велика вероятность, что два компьютера выберут одинаковое число L и снова произойдет коллизия. На втором этапе число L будет выбираться из диапазона [0,3], если еще коллизия, то [0,7] и тд.
Со временем диапазон из которого выбирается L становится достаточно большим и вероятность, что несколько компьютеров выберут одно и то же значение, снижается. При этом в классическом Ethernet используется ограничение, после 10 попыток, интервал из которого выбираются значение L не увеличивается, а после 16 попыток передача данных прекращается. Компьютер считает, что среда передачи данных неработоспособна.
Экспоненциальный двоичный алгоритм отсрочки хорошо работает если в сети мало компьютеров и когда компьютеры передают данные редко. В этом случае маленькая вероятность, что два или больше компьютеров выберут одно и тоже число L для времени ожидания. Однако, если нагрузка высокая, т.е. компьютеров много и они передают данные активно, то коллизии возникают гораздо чаще, число попыток передачи растет, увеличивается диапазон из которого выбирается значение L для задержки и время задержки для передачи каждого кадра увеличивается экспоненциально. В результате скорость передачи данных по сети существенно снижается.
Недостатки классического Ethernet
Классический Ethernet, который использует разделяемую среду для передачи данных обладает существенными недостатками.
Первый недостаток, когда в сети много ПК и они активно передают данные, то сеть работает очень медленно или становится неработоспособной. ПК большую часть времени тратят на борьбу за доступ к разделяемой среде, чем на передачу данных.
Некоторые оценки работоспособности, которые были проведены для классического Ethernet показали, что он может работать если в сети не более 30 компьютеров и они создают нагрузку на разделяемую среду не более 30%.
Безопасность в классическом изернет низкая, все данные, которые поступают в разделяемую среду доступны всем ПК в сети, потому любой, кто подключился к разделяемой среде, может перехватить ваши данные и посмотреть все что в них находится.
И третий недостаток это разное время доставки кадра. Если компьютеру повезло и коллизий не возникло, то он может отправить кадр сразу, но для передачи другого кадра может понадобится 5-6 попыток. Разное время задержки при передачи кадров очень неудобно для трафика реального времени, такого как голосовой трафик или стриминг видео.