Возможны ли ethernet коллизии между портом свитча и устройством half duplex
Кто-то считает, что это очевидные вещи, другие скажут, что скучная и ненужная теория. Тем не менее на собеседованиях периодически можно услышать подобные вопросы. Мое мнение: о том, о чем ниже пойдет речь, нужно знать всем, кому приходится брать в руки «обжимку» 8P8C (этот разъем обычно ошибочно называют RJ-45). На академическую глубину не претендую, воздержусь от формул и таблиц, так же за бортом оставим линейное кодирование. Речь пойдет в основном о медных проводах, не об оптике, т.к. они шире распространены в быту.
Технология Ethernet описывает сразу два нижних уровня модели OSI. Физический и канальный. Дальше будем говорить только о физическом, т.е. о том, как передаются биты между двумя соседними устройствами.
Технология Ethernet — часть богатого наследия исследовательского центра Xerox PARC. Ранние версии Ethernet использовали в качестве среды передачи коаксиальный кабель, но со временем он был полностью вытеснен оптоволокном и витой парой. Однако важно понимать, что применение коаксиального кабеля во многом определило принципы работы Ethernet. Дело в том, что коаксиальный кабель — разделяемая среда передачи. Важная особенность разделяемой среды: ее могут использовать одновременно несколько интерфейсов, но передавать в каждый момент времени должен только один. С помощью коаксиального кабеля можно соединит не только 2 компьютера между собой, но и более двух, без применения активного оборудования. Такая топология называется шина. Однако если хотябы два узла на одной шине начнут одновременно передавать информацию, то их сигналы наложатся друг на друга и приемники других узлов ничего не разберут. Такая ситуация называется коллизией, а часть сети, узлы в которой конкурируют за общую среду передачи — доменом коллизий. Для того чтоб распознать коллизию, передающий узел постоянно наблюдает за сигналов в среде и если собственный передаваемый сигнал отличается от наблюдаемого — фиксируется коллизия. В этом случае все узлы перестают передавать и возобновляют передачу через случайный промежуток времени.
Диаметр коллизионного домена и минимальный размер кадра
Таким образом чем больше потенциальный размер сегмента сети, тем больше накладных расходов уходит на передачу порций данных маленького размера. Разработчикам технологии Ethernet пришлось искать золотую середину между двумя этими параметрами, и минимальным размером кадра была установлена величина 64 байта.
Витая пара и дуплексный режим рабты
Витая пара в качестве среды передачи отличается от коаксиального кабеля тем, что может соединять только два узла и использует разделенные среды для передачи информации в разных направлениях. Одна пара используется для передачи (1,2 контакты, как правило оранжевый и бело-оранжевый провода) и одна пара для приема (3,6 контакты, как правило зеленый и бело-зеленый провода). На активном сетевом оборудовании наоборот. Не трудно заметить, что пропущена центральная пара контактов: 4, 5. Эту пару специально оставили свободной, если в ту же розетку вставить RJ11, то он займет как раз свободные контакты. Таким образом можно использовать один кабели и одну розетку, для LAN и, например, телефона. Пары в кабеле выбраны таким образом, чтоб свести к минимуму взаимное влияние сигналов друг на друга и улучшить качество связи. Провода одной пару свиты между собой для того, чтоб влияние внешних помех на оба провода в паре было примерно одинаковым.
Для соединения двух однотипных устройств, к примеру двух компьютеров, используется так называемый кроссовер-кабель(crossover), в котором одна пара соединяет контакты 1,2 одной стороны и 3,6 другой, а вторая наоборот: 3,6 контакты одной стороны и 1,2 другой. Это нужно для того, чтоб соединить приемник с передатчиком, если использовать прямой кабель, то получится приемник-приемник, передатчик-передатчик. Хотя сейчас это имеет значение только если работать с каким-то архаичным оборудованием, т.к. почти всё современное оборудование поддерживает Auto-MDIX — технология позволяющая интерфейсу автоматически определять на какой паре прием, а на какой передача.
Возникает вопрос: откуда берется ограничение на длину сегмента у Ethernet по витой паре, если нет разделяемой среды? Всё дело в том, первые сети построенные на витой паре использовали концентраторы. Концентратор (иначе говоря многовходовый повторитель) — устройство имеющее несколько портов Ethernet и транслирующее полученный пакет во все порты кроме того, с которого этот пакет пришел. Таким образом если концентратор начинал принимать сигналы сразу с двух портов, то он не знал, что транслировать в остальные порты, это была коллизия. То же касалось и первых Ethernet-сетей использующих оптику (10Base-FL).
Зачем же тогда использовать 4х-парный кабель, если из 4х пар используются только две? Резонный вопрос, и вот несколько причин для того, чтобы делать это:
- 4х-парный кабель механически более надежен чем 2х-парный.
- 4х-парный кабель не придется менять при переходе на Gigabit Ethernet или 100BaseT4, использующие уже все 4 пары
- Если перебита одна пара, можно вместо нее использовать свободную и не перекладывать кабель
- Возможность использовать технологию Power over ethernet
Не смотря на это на практике часто используют 2х-парный кабель, подключают сразу 2 компьютера по одному 4х-парному, либо используют свободные пары для подключения телефона.
Gigabit Ethernet
В отличии от своих предшественников Gigabit Ethernet всегда использует для передачи одновременно все 4 пары. Причем сразу в двух направлениях. Кроме того информация кодируется не двумя уровнями как обычно (0 и 1), а четырьмя (00,01,10,11). Т.е. уровень напряжения в каждый конкретный момент кодирует не один, а сразу два бита. Это сделано для того, чтоб снизить частоту модуляции с 250 МГц до 125 МГц. Кроме того добавлен пятый уровень, для создания избыточности кода. Он делает возможной коррекцию ошибок на приеме. Такой вид кодирования называется пятиуровневым импульсно-амплитудным кодированием (PAM-5). Кроме того, для того, чтоб использовать все пары одновременно для приема и передачи сетевой адаптер вычитает из общего сигнала собственный переданный сигнал, чтоб получить сигнал переданный другой стороной. Таким образом реализуется полнодуплексный режим по одному каналу.
Дальше — больше
10 Gigabit Ethernet уже во всю используется провайдерами, но в SOHO сегменте не применяется, т.к. судя по всему там вполне хватает Gigabit Ethernet. 10GBE качестве среды распространения использует одно- и многомодовое волокно, с или без уплотнением по длине волны, медные кабели с разъемом InfiniBand а так же витую пару в стандарте 10GBASE-T или IEEE 802.3an-2006.
40-гигабитный Ethernet (или 40GbE) и 100-гигабитный Ethernet (или 100GbE). Разработка этих стандартов была закончена в июле 2010 года. В настоящий момент ведущие производители сетевого оборудования, такие как Cisco, Juniper Networks и Huawei уже заняты разработкой и выпуском первых маршрутизаторов поддерживающих эти технологии.
В заключении стоит упомянуть о перспективной технологии Terabit Ethernet. Боб Меткалф, создатель предположил, что технология будет разработана к 2015 году, и так же сказал:
Чтобы реализовать Ethernet 1 ТБит/с, необходимо преодолеть множество ограничений, включая 1550-нанометровые лазеры и модуляцию с частотой 15 ГГц. Для будущей сети нужны новые схемы модуляции, а также новое оптоволокно, новые лазеры, в общем, все новое
UPD: Спасибо хабраюзеру Nickel3000, что подсказал, про то что разъем, который я всю жизнь называл RJ45 на самом деле 8P8C.
UPD2:: Спасибо пользователю Wott, что объяснил, почему используются контакты 1,2,3 и 6.
Сегодня мы рассмотрим, что же такое домен коллизий, чем он характеризуется, как его уменьшить, на что он влияет. А так же рассмотрим такое понятие как буфер коммутатора, для чего он нужен и с чем борится. О коллизиях мы говорили с вами в прошлой статье.
Итак, домен коллизий это группа устройств, которые объединены в единую сеть, с помощью разделяемой среды, например по технологии 10BASE2 и 10BASE5 (топология шина, когда к общей кабельной системе подключается множество сетевых устройств) или с помощью устройств, которые работают на Layer 1 OSI (Open System Interconnection), например концентраторы (Hub) или повторители (Repeater).
Основные понятия Ethernet Hub:
- Работа на уровне 1 OSI.
- Повторяет (регенерирует )электрический сигнал для увеличения радиуса работы сети.
- Переправляет полученный сигнал на все порты концентратора (сразу, без всякой задержки, т.е. буферизации, не смотря на то, передаются ли сейчас данные или нет.)
Теперь давайте графически рассмотрим домен коллизий:
Один домен коллизий
В данной топологии в центре находится HUB (не обращайте внимание, что графически он выглядит как свитч, рисовал в GNS3, там нет hub устройств 🙂 ), к которому подключены устройства (роутеры), которые у нас будут работать в роли хостов.
Как же это работает?
Например, PC1 передает данные для PC2, сигнал доходит до центрального устройства (HUB), которое рассылает во все свои порты этот сигнал, и далее сетевые устройства слушают трафик и «смотрят» внутрь, его ли это данные или нет. Таким образом если одновременно передают несколько устройств свои сигналы происходит коллизия. Так мы можем с вами отметить, что вся эта топология представляет собой один домен коллизий.
Hub, в отличии от коммутатора (Switch) создает 1 домен коллизий.
Теперь рассмотрим, такую же топологию, только в центре у нас будет устройство другого уровня — Switch или коммутатор (Устройство работающее на Layer 2 OSI).
3 домена коллизий
Коммутатор, так же как и концентратор, получает сигнал от того или иного хоста (например от PC1 к PC2), а вот дальше все немного по другому. Коммутатор не сразу переправляет фрейм во все порты, с буферизирует его, и смотрит, передаются ли данные в данный момент, если нет, то отправляет. И отправляет не на все порты, а лишь на необходимый (дело в том, что коммутатор «смотрит» MAC адрес получателя в фрейме, и если этот MAC «привязан» к какому-либо порту то отправляет только на него. Если такой привязи не удалось найти, вступают в работу другие технологии, которые мы рассмотрим в следующих статьях.)
Таким образом у нас получается что каждый порт представляет собой отдельный домен коллизий.
Так же можно описать так: коммутатор состоит из множества концентраторов (по кол-ву портов) и имеет столько же доменов коллизий, сколько портов имеет устройство.
Если вам по каким-то причинам, необходимо к коммутатору (Switch) подключить концентратор (Hub), то данный порт коммутатора необходимо перевести в Half-Duplex режим, потому как на таком соединении могут возникать коллизии.
В предыдущей статье, я коротко упомянул о том, какие стандарты для обжимки медного (витой пары) кабеля существует — T568A, T568B .
Сейчас мы ознакомимся с согласованием параметров между устройствами, а так же скорости и режима работы (full-duplex или half-duplex).
По умолчанию, каждый порт Cisco настроен таким образом, что устройство само определяет какие настройки на этом порту использовать, какую скорость выбрать, какой режим передачи данных. Такая технология называется Auto-negotiation (Автоопределение). Так же эти параметры можно задать «вручную», на каждом порту устройства.
Коммутаторы Cisco определяют автоматически скорость между сетевыми устройствами (например между портом коммутатора и сетевой картой компьютера), используя некоторые методы. Cisco коммутаторы используют для определния скорости Fast Link Pulse (FLP), это некоторый электрический импульс, по которому устройства могут понять на каких оптимальных скоростях может установиться соединение между данными сетевыми устройствами.
Если скорости выставлены вручную и они совпадают, то устройства смогут установить соединение используя электрические сигналы.
Если на коммутаторе и на сетевом устройстве компьютера (для примера), установлены вручную скорости и они не совпадают, то соединение не будет установлено.
Примерно так же проходит и определение режима работы соединения: half-duplex или full-duplex.
Если оба устройства работают в режиме автоопределения, и устройства могут работать в duplex режиме, то этот режим и установится.
Если на устройствах автоопределение выключено, то режим будет присвоен по некоторым правилам «по умолчанию». Для 10 и 100 мегабитных интерфейсов установится режим half-duplex, для 1000 мегабитных установится Full-Duplex.
Для отключения автоопределения дуплексности необходимо вручную указать настройки режима.
Ethernet устройства могут работать в режиме Full-Duplex (FDX), только тогда, когда нет коллизий в передающей среде.
Современные Ethernet технологии говорят что коллизии не происходят. Коллизии происходят только там где есть разделяемая среда передача данных, например при топологии шина, или при использовании такого устройства как hub (хотя сейчас увидеть такого «динозавтра» достаточно сложно 🙂 ).
Все же необходимо представлять какие технологии есть и как они борятся с коллизиями в таких разделяемых ресурсах.
Алгоритм, по борьбе с коллизиями называется CSMA/CD (Carrier Sense Multiple Access Collision Detection ), что означает множественный доступ с контроллем несущей и обнаружением коллизий.
Что такое коллизия вобще?
Коллизия это наложение сигнала, т.е, когда одновременно несколько сетевых устройств начинают передачу данных по разделяемой среде, два этих сигнала встречаются, накладываются друг на друга, и происходит коллизия (тоесть данные искажены, и не несут в себе никакой полезной нагрузки.
В материалах по функционалу speed, duplex, auto-negotiation были частые случаи и описание их использования. Этот пост ответит на частые вопросы на тему:
Как настроить ту или иную характеристику порта
Cisco коммутаторы по умолчанию на всех портах «выставляют» режим автоопределения (auto-negotiation). Мы можем изменить эти параметры вручную:
- скорость — speed , эта команда задается непосредственно на интерфейсе (т.е. на порту коммутатора).
- дуплексность — duplex , так же задается на интерфейсе.
Давайте рассмотрим пример. Допустим есть у нас некий коммутатор, например Cisco Catalyst 2960 (в общем то не суть важно). Посмотрим информацию об интерфейсе, с помощью команды show int f0/1
FastEthernet0/1 is is up, line protocol is up (connected)
Hardware is Fast Ethernet, address is 0018.ba0d.0903 (bia 0018.ba0d.0903)
Description: NONE
MTU 1500 bytes, BW 100000 Kbit, DLY 100 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive set (10 sec)
Auto-duplex, Auto-speed, media type is 10/100BaseTX
Здесь мы можем видеть в каком режиме работает порт коммутатора:
- дуплексность в режиме auto
- скорость в режиме auto
Как работает коммутатор в общем можно прочитать тут. Теперь изменим эти значения вручную, например выставим дуплексность в режим Half-Duplex, скорость принудительно выставим в 100мб/сек.
Для этого в режиме глобальной конфигурации (conf t) и в режиме конфигурации интерфейса (int f0/1) вводим команды:
Хочу напомнить, что данные настройки нужно делать на «обоих концах». После этого так же можно посмотреть информацию об интерфейсе, sh int f0/1 и вы увидите те изменения в режимах, которые сделали.
Если вы забыли изменить режимы на «обоих концах», в консоле у вас должно появиться нечто следующее:
%CDP-4-DUPLEX_MISMATCH: duplex mismatch discovered on FastEthernet0/1 (not full duplex), with Switch1 FastEthernet0/1 (full duplex).
Так же, для просмотра статистики по интерфейсу (о переданных пакетах, о ошибках, коллизиях и многом другом), так же пользуемся командой sh int f0/1 и получаем нечто похожее:
пропущено…
5 minute output rate 2000 bits/sec, 3 packets/sec
1983351 packets input, 1064588985 bytes, 0 no buffer
Received 74157 broadcasts (0 multicast)
0 runts, 0 giants, 0 throttles
1 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
0 watchdog, 66633 multicast, 0 pause input
0 input packets with dribble condition detected
12351080 packets output, 4114387001 bytes, 0 underruns
0 output errors, 0 collisions, 1 interface resets
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier, 0 PAUSE output
0 output buffer failures, 0 output buffers swapped out
Так как это коммутатор, порт которово подключен к обычному компьютеру, таким образом этот компьютер и порт коммутатора это единый домен коллизий, и соответственно им неоткуда взяться. Что мы и видим исходя из статистики интерфейса: 0 collisions
- Вопрос задан более трёх лет назад
- 3873 просмотра
Так и есть. Для 10 и 100 достаточно двух пар (О, БО, З, БЗ), а под гигабит задействованы все четыре. Если порвать один из проводников основной сигнальной пары то сигнал будет идти по второму, но у этого сигнала не будет зеркально отраженной копии, из-за этого он получит большие наводки и будет трудно восстановим при распознавании отсюда и потери. Все оборудование, в том числе и сетевое изначально работает на минимально возможных скоростях, для ethernet это 10mb/s, уже потом после установления связи устройства, при наличии возможности, договариваются перейти на другие режимы и скорости.
соответственно он пытается на 100 и 10, но разорвана жила которая учавствует в передаче данных по этим стандартам.
Повреждена одна из двух сред передачи. Т.к. для 100 и 10 используются только 2 пары.
Номера жил: 1,2,3,6 или 4,5,7,8.
При повреждении ОДНОВРЕМЕННО двух каналов - передача данных станет невозможной.
То есть при повреждении 6-й жилы коммутатор и сетевая перестроятся на 4,5,7,8? Честно говоря ни разу подобного не видела. Если так, тогда откуда потери?
Вероника Сержантова: А вот в следующем посте как раз и написано, откуда. Отсутствие параллельной передачи сигнала позволяет возникать интерференциям мощности, которой достаточно для возникновения серьезных неполадок. Вот и потери.
Откуда, как вы думаете, у витой пары такое название? Усиление передачи сигнала за счет взаимодействия электромагнитных полей разных потоков. Когда один поток пропадает, взаимодействия не происходит, падает скорость и появляются потери. Витуха становится такой себе коаксиалкой. Вот по этому коаксиал и делали/-ют с встроенным экраном. Там одна (чаще всего) жила, которая принимает на себя интерференции так, как буд-то они для него близкие родственники.
Кстати, на сколько я помню 2960, там два гигабитных порта, обычно использующихся для:
а. Заворота трафика (от этого этот свитч, дедушка всех свитчей зачастую встает раком).
б. Уплинк/даунлинк.
Я сомневаюсь, что у вас там настроен заворот трафика в силу низкой производительности железа свитча. Вопрос. Зачем вы туда ПК подключаете?
Вы не подумаете, вопрос исключительно праздный))
Откуда - я поняла, ответ был написан чуть позже моего комментария.
Подключаю как раз затем чтобы проверить что будет, интересно стало :) а ближайший к моему ПК гигабитный порт оказался только на циске, он был настроен обычным акцессом, никаких заворотов и прочего ))
Василий вы хоть википедию откройте, что ли. Нет там никаких наводок. Витая пара на то и витая, чтобы исключить взаимное влияние пар
Мдя.. Цитирую: "позволяет возникать интерференциям". Т.е. наводки там снижены при полном функционировании пары. При нарушенном функционировании, они поднимаются.
Далее. Если там нет наводок вообще, то три вопроса:
1. Зачем делают экраны на витухах?
2. Замеряли-ли вы разницу между нормально проложенной парой и парой, намотанной на силовой кабель под нагрузкой?
3. Почему до сих пор используют клетку Фарадэя, если можно просто витухой обмотаться?
А вы в курсе, что стандарт Ethernet изначально разрабатывался как беспроводной интерфейс? В Википедии об этом не сказано. А вы знаете разницу между RJ-45 и 8P8C? Об этом на википедии написано, кстати.
Паралелльная передача, наводки. Вы хоть смотрели, как работают сети?
При повреждении 6-го проводника сеть опускается на уровень 10 мбит халф дуплекс.
В обычном режиме - по одной паре прием, по второй - передача. Почему и фулл дуплекс.
Одна пара разомкнута - опускаемся на халфдуплекс - прием и передача по одной паре по очереди.
Кстати вполне вероятно, что если при разомкнутом проводнике выключить-включить коннектор - линия вообще не поднимется ;) Согласование начинается со 100 мбит, а оно невозможно. А вот уже на согласованном соединении, когда переданы capabilities - тогда возможно опуститься. Но при этом, если оба устройства перевести вручную на 10 мбит халф дуплекс - соединение поднимется.
Рабочий халф-дуплекс на одной единственной паре, я верно вас поняла?
Фуллдуплекс означает одновременную передачу данных в обе стороны, а не фактическое использование обоих пар. В жестком халф-дуплексе в описанном мною случае, насколько я понимаю, улучшиться качество связи, потому что на единственную жилу принимающей пары как раз уменьшаться наводки от 1-2 жилы потому что по ним не будет ничего идти в этот момент. Если оставить только одну пару никакого последовательного приема/передачи на ней не будет т.к. 10Base-T по стандарту использует обе пары.
Итак, Разберем детально.
10 мбит стандарт использует 1,2,3,6 проводники. Из них организуется два канала, условно TX и RX. Один канал используется для передачи информации в одном направлении. Так как каналов два - то по умолчанию работаем в режиме full duplex. Т.е. прием и передача информации выполняется одновременно и независимо друг от друга.
100 мбит стандарт использует теже проводники, работает также. Разница в скорости за счет использования других частот, длительностей сигналов и т.п. За подробностями - в стандарты ethernet.
Гигабит стандарт использует все 8 проводников, организуется 4 канала по 250 мбит, работа идет так - передаем, принимаем, передаем, принимаем. Фулл и халф дуплексы организуются режимами работы контроллера ethernet.
10 мбит в принципе способен переключиться в режим халф дуплекс по одной паре, когда существует только один канал, и работаем по нему в режиме передаем, принимаем, передаем, принимаем.
100 мбит не способен существовать без двух пар.
Теперь смотрим, что получается. На этапе установки связи ethernet контроллеры обмениваются так называемыми capabilities - это специальные служебные байты, в которых описано какие режимы поддерживают обе стороны. Сейчас по умолчанию устройства 100 мбитные, поэтому согласование начинается со 100 мбит. Если есть две пары, по ним передаются и принимаются капабилити, находится общее и контроллеры переключаются в соответствующий режим. Если существуют все 4 пары и устройства заявляют о поддержке гигабита - согласуется гигабит, организуются 4 канала и начинается работа сети дальше. Теперь, если происходит обрыв например 5 проводника - то 4 канала существовать не могут, гигабитный линк разрывается, начинается согласование заново. Так как 5-й проводник не задействован в 100 мбит стандарте - то произойдет согласование на 100 мбит. В логах системы будет записано - 1000 Мбит link down, 100 мбит link up.
Если на 100 мбит линке рвется 6 проводник - разрушается один из двух каналов. Но в имеющихся капабилити есть поддержка 10 мбит half duplex - контроллеры опустятся на 10 мбит халф дуплекс, разрыва линка не будет. Если восстановить 6 проводник - то линк вернтся на 100 мбит тоже без разрыва. Но если при разорванном 6 проводнике разорвать линию полностью, а потом включить - согласования на 10 мбит не будет, оно начинается на 100. Для того, чтобы в таких условиях работать дальше надо одно устройство принудительно опустить на 10 мбит, тогда линия согласуется.
Кстати, отсюда же растут прямая и перевернутая обжимка 100 мбит кабеля и современные Auto MDI\MDIX - автодетект обжима кабеля. Старые 100 мбит устройства требовали, чтобы RX и TX каналы были включены правильно. Для этого и переворачивались пары местами на одной из сторон. Сейчас определение RX и TX на 100 мбит линке выполняется автоматически, контроллер на одной из сторон переназначает использование соответствующих контактов.
Подытожим. Обрыв одного проводника в гигабите - обрыв линка, возможно установление линка на меньшей скорости ( если оборвана пара, не входящая в 100 мбит стандарт, если оборвана пара в 100 мбит стандарте - то согласования не произойдет), обрыв одного проводника в 100 мбит - возможно изменение режима работы на лету. Но при стандартных настройках оборванная линия будет работать до ближайшей перезагрузки.
Никакого влияния пар друг на друга нет, собственно ради этого пара и витая.
Читайте также: