Коллизия в сети


  Что такое коллизия в сети (collision)? Сегодня мы разберем само понятие коллизий в локальной сети, возможные причины их возникновения и как бороться с подобным явлением? Также узнаем, что такое домен коллизий?

  Наша статья, будет состоять из двух частей: в первой (теоретической) мы рассмотрим основные понятия и термины, которые нам пригодятся в дальнейшем, а во второй части я покажу Вам (на примере), какие могут быть проблемы в реальной сети и к чему нужно быть готовым?

  Итак, разберем само понятие коллизия. Буквально оно означает - столкновение. Что может сталкиваться в компьютерной сети? Правильно, - передаваемые по ней данные, точнее - пакеты (кадры) данных. Помните про принцип коммутации пакетов, о котором мы говорили в одной из наших статей?

  Проиллюстрируем возникновение коллизии в компьютерной сети на простенькой схеме:

Возникновение коллизии в сети
 

  Как видите хост (компьютер) под номером «1» начинает передачу своих пакетов данных в сеть. Точно в это же время другой хост начинает передачу своих данных. В результате, данные "сталкиваются", что приводит к их полной или частичной потере. Как мы понимаем это - недопустимое явление, так как недоставленные данные нужно передавать снова, а это - временные задержки, которые не каждый пользователь будет готов терпеть. Да и Вам самим постоянное нытье "подопечных" скоро надоест:)

  Итак, на основе сказанного выше, давайте дадим краткое определение коллизии в сети: коллизия это - столкновение двух или более кадров в сети, приводящее к их потере или искажению.

  Сами столкновения происходят где? Правильно, - в кабеле! Отсюда следует еще одно определение: сетевой кабель это - разделяемая среда передачи данных для всех компьютеров сети. Разделяемая именно потому, что ее пропускная способность (полоса пропускания) делится между всеми компьютерами, образующими сеть.

  Учитывая скорости движения данных в сети, вряд ли возникновение коллизии возможно в случае соединения только двух компьютеров? НО! Если компьютеров становится больше?

Домен коллизий
 

  Или - очень много (несколько сотен) и всем нужно передавать (и принимать) сетевой трафик? Вот именно тогда и возрастает риск возникновения коллизий.

  Здесь возникает необходимость в механизме синхронизации доступа сетевых интерфейсов отдельных компьютеров к общей разделяемой среде. Применимо к технологии Ethernet (не зависимо от скорости передачи) этот принцип доступа называется CSMA/CD (Carrier Sense Multiple Access with Collision Detection, что переводится так: множественный доступ с контролем несущей и обнаружением коллизий). Фактически, это - случайный метод доступа к среде. Иногда метод CSMA/CD называют протоколом, который работает на канальном уровне сетевой модели OSI.

  Примечание: сетевая модель OSI (open systems interconnection basic reference model - базовая модель взаимодействия открытых систем). Это - модель совместной работы сетевых протоколов различных уровней (всего - семь), которая, в полной мере, позволяет реализовать эффективный обмен данными в сети.

  Случайный характер алгоритма доступа к среде передачи данных, принятый в технологии Ethernet, нельзя назвать идеальным. При большом количестве запросов на доступ к среде передачи, генерируемых узлами в случайные моменты времени, вероятность возникновения коллизий также возрастает, что приводит к неэффективному использованию всего канала. Время обнаружения коллизии и время ее обработки составляют дополнительные временные затраты, а интервал в течение которого канал предоставляется в распоряжение каждому узлу, становится все меньше.

  Чтобы понапрасну не впасть в состояние паники скажем, что для стандартной сетевой технологии Ethernet наличие коллизий в сети - нормальное явление! Другое дело, что иногда возникают ситуации, когда коллизионных столкновений становится настолько много, что вся полоса пропускания способность сети буквально "съедается" мусорным трафиком и передавать полезные данные становится просто невозможно!

  Подобный случай мы рассматривали в статье, о возможности образования петли в локальной сети организации. 

  Давайте с Вами рассмотрим, какие же бывают разновидности коллизий?

  1. Коллизия на дальнем конце (в самом кабеле). Возникает из-за одновременной передачи по одной и той же линии данных двумя станциями.
  2. Коллизия на ближнем конце (в сетевой карте). Происходит, когда сбоит сетевой адаптер ПК или его драйвер и второй кадр начинается записываться в буфер карты еще до окончания передачи первого.
  3. Коллизии в активном оборудовании (свитчи, хабы). Возникают из-за перегрузки оборудования передаваемыми кадрами, приводя к ошибкам в адресации и наложению нескольких кадров друг на друга.


  Чтобы покончить с обязательной терминологией, давайте рассмотрим еще одно нужное нам словосочетание: домен коллизий (Collision Domain).

  Что это такое? Ну, грубо говоря, это - коммутатор (свитч) с подключенными к нему компьютерами. Как на схеме выше. Если чуть более академично то - "область сети одновременная передача двух и более станций которой приводит к образованию коллизии". Коммутатор изолирует большую часть трафика одного сегмента сети от трафика другого сегмента (домена коллизий). В результате, пропускная способность каждого отдельного сегмента увеличивается, а значит, - повышается и суммарная пропускная способность сети.

  В идеале, коммутатор должен препятствовать распространению коллизии дальше (не пропускать ее), поэтому им, собственно, и ограничивается этот самый домен коллизий. Другое дело, что на практике это не всегда так и если возникновение коллизии происходит на ближнем конце (причиной является неисправная сетевая карта компьютера), то события могут разворачиваться совсем по другому. Но об этом - во второй (практической) части нашей статьи :)

  Какие же есть методы, позволяющие предотвратить ситуацию, когда коллизия в сети может стать массовым явлением, что (со временем) приведет к полной ее неработоспособности?

  Здесь для нас (как администраторов) есть две новости: одна - хорошая, а вторая - еще лучше! :)

  Первая состоит в том, что механизм арбитража (реагирования) на возникновение коллизии уже встроен в большинство стандартных сетевых технологий! Применимо к наиболее распространенной из них технологии Ethernet, это выглядит следующим образом: один из участников коллизии (при обнаружении, что его передача приводит к столкновению кадров) автоматически генерирует на всю сеть специальную jam-последовательность (jam-signal). Получившие такой сигнал компьютеры знают, что им нужно немедленно прекратить свою передачу данных, сделать случайный временной тайм-аут (backoff time или delay) от 29-ти до 210-ти битовых интервалов, а затем - возобновить работу в штатном режиме. Метод доступа к среде CSMA/CD - в действии!

   Примечание: битовый интервал это время, за которое по сети передается наименьшая единица информации - один бит.

  На что похожа ситуация, которую мы описали выше? Лично мне она напоминает, когда два человека начинают говорить одновременно. Что происходит в такой ситуации при нормальных условиях? Оба говорящих замолкают, немного выжидают и кто-то первым начинает говорить снова, а второй - молчит и слушает. Потом - отвечает или задает свой вопрос.

  Абсолютно идентично и с компьютерами! Их ведь люди создали, вот и "ведут" они себя так же :)

  Вторая из новостей такая: с коллизией в сети можно бороться средствами, которые предоставляет нам сетевое оборудование соответствующего класса. Например: вот - один из центральных коммутаторов нашей сети на работе: D-Link DES-3550

Управляемый коммутатор D-Link DES-3550

  Это - 50-ти портовый управляемый свитч стоимостью около 600 долларов. Управляемый означает, что он имеет в сети свой выделенный IP адрес и к нему можно подключиться удаленно (введя пароль доступа). Можно по сети производить конфигурацию устройства, включать или отключать отдельные порты, менять режим их работы, мониторить нагрузку на устройство, управлять скоростью каждого порта (подобным образом провайдеры выдумывают свои тарифные планы) и т.д.

  Это - управляемый коммутатор второго уровня. Это значит, что он эффективно работает на втором уровне сетевой модели OSI. Сейчас все более популярными становятся устройства третьего уровня (могут работать уже на сетевом IP уровне). Упрощенно это уже - очень быстро передающие пакеты маршрутизаторы, к тому же - простые в использовании.

  Давайте, о самом коммутаторе мы еще поговорим во второй части данной статьи (я покажу Вам подробные скриншоты его админ-зоны, покажу что там к чему), здесь я привел его фотографию для того, чтобы показать с помощью каких устройств можно бороться с коллизиями в сети. Коммутатор D-Link DES-3550 позволяет администратору видеть загрузку каждого из портов в режиме реального времени и если какой-либо из портов перегружен или на нем много коллизий - принять соответствующие меры.

  Давайте еще немного поговорим на тему разделяемой среды передачи данных. Это, фактически, -  и есть наш сетевой кабель, помните? При таком его кооперативном использовании, возникает задача утилизации среды передачи таким образом, чтобы в каждый отдельный момент времени по кабелю передавались данные только одного передатчика (компьютера).

  Пропускная способность кабеля делится между всеми компьютерами сети. Например: если у нас 100 компьютеров и сеть работающая на скорости 100 мегабит в секунду, то в среднем на каждый ПК приходится 1Мбит/с пропускной способности. А если компьютеров становится больше? Время для передачи данных, выделяемое каждому из них, сокращается и, как следствие, - коллизия в сети гарантирована! Добавьте к этому все возрастающее время отклика сети, недовольство пользователей и Вы поймете, что возникновение коллизии - неприятная вещь, с которой надо бороться, а еще лучше - сводить возможность ее возникновения к минимуму еще на этапе планирования сети.

  Также нужно четко понимать, что некоторую часть доступной пропускной способности сети отнимает у пользовательских данных широковещательный служебный трафик, который является неотъемлемой частью практически всех стеков протоколов, работающих в локальных сетях.

  Несмотря на все эти сложности, принцип разделяемой среды используется достаточно часто. Такой подход, реализован в широко распространенных стандартных технологиях локальных сетей, например: Ethernet, Token Ring, FDDI. Почему? Наверное, из за простоты и дешевизны его конечной реализации (дешево и сердито) :)

  Продолжение темы - во второй части статьи.



Понравилась статья?
Нажмите на кнопки ниже или оставьте комментарий !


Никита
Спасибо! за статью доступно объяснено удачи вам.  :)

[Ответить]
Андрей
Рад что пригодилось! Спасибо за пожелания   !;)

[Ответить]
Влад
В первую очередь хотелось бы сказать спасибо за статью, все очень интересно и понятно. Вот только возник один вопрос, современные коммутаторы и концентраторы которые используют для передачи данных витые пары (UTP-5 категории), т.е. от коммутаторы идет провод к каждому ПК, в таких сетях с использованием витой пары тоже могут возникнуть коллизии и тоже используется метод доступа к среде CSMA/CD? Заранее благодарен!  :)

[Ответить]
Андрей
Метод доступа в сетях стандарта Ethernet пока не меняется: CSMA/CD - доступ с контролем ("прослушиванием") несущей и обнаружением коллизий ("столкновений" пакетов).

[Ответить]
John
Тема коллизий в локальных сетях понемногу отходит в прошлое вместе с концентраторами (хабами).
Современные коммутаторы (свитчи) на аппаратном уровне работают по принципу точка-точка, то есть сегмент коллизий ограничен портом свитча и подключенным к нему компьютером. В такой схеме вероятность коллизий невысока.

Метод доступа точно не помню, но убеждён, что найти эту информацию в интернете несложно.

[Ответить]
Satiriazis
Столкнулся сегодня с коллизиами в сети. Экранированный кабель который прокладывал еще месяц назад, дал сбой и собирал наводку, Каждый час перезагружался коммутатор cisco 2980g ; путем рук и глаз искал петлю, неисправные сетевушки, отматывал мысленно свои действия, грешил на ИБП пока не посидел в позе мыслителя отмахиваясь салазками от гневных пользователей начал поочереди перетыкать каждый кабель пока меня не осенило не плохим разрядом, ну думаю статика, как проверить?

[Ответить]
Satiriazis
правильно) просветление наступило с утроенной силой и пошел вытаскивать кабель из короба где текло электричество. Ну и чтобы исключить вариант неисправной сетевушки я также одной рукой до металического коммутатора другой до медной оплетки кабеля и спокойствие посетило мою душу, так что любите свои свитчи руками когда они перезагружаются а у вас компьютерный парк на 75 машин

[Ответить]
Андрей
Да, хорошая история! Статью для наших читателей написать не хотите?   !;)

[Ответить]
Андрей
огромный вам респект за инфу!!!!!!! у нас таже проблема, "штормит" не по детски ))) и при том в одно и тоже время. есть мысь перейти на zyxel gs2200, но по его настройке нет адекватной инструкции на русском языке. в нем есть фунция фильтра brodcast storm, но я не знаю какое количество пакетов в секунду поставить в фильтр. помогите пожалуйста.

[Ответить]
Андрей
Пожалуйста, тезка!   !;) По поводу количества пакетов: посмотрите вот эту нашу статью.

[Ответить]
Дима
Спасибо Вам за сайт, очень полезный для начинающих админов!

[Ответить]
Андрей
Спасибо и Вам, Дмитрий, за комментарий. Коллектив авторов будет и дальше стараться писать в том же духе!

[Ответить]
Андрей
Здравствуйте, Андрей. Может мой вопрос связан с коллизией ( ?) . Вопрос такой: ноутбук (с Wi-Fi адаптером типа N), смартфон (тоже N) и стац.ПК (адаптер типа G). Всё это хозяйство подключено к Wi-Fi-роутеру. Качество связи с роутером на всех устройствах хорошее. Но!!! Когда на стац.ПК смотрю web-странички, то на ноутбуке и смартфоне странички загружаются очень медленно или совсем не загружаются. Чем можно объяснить такой сепаратизм и как его искоренить? Спасибо.

[Ответить]
Никита
Роутер работает в максимально выгодном режиме (если иное не указано в настройках), т.е. когда к нему подключены устройства только с 802.11n он работает в этом режиме, когда подключается устройство с 802.11g роутер автоматически переходит в этот режим работы - соответственно снижается скорость.
P.S. одновременно передавать в разных режимах роутер не может и режим(а с ним и скорость) меняется на максимально "лучший" для всех подключенных устройств.

[Ответить]
Андрей
Попробуйте задать Ваш вопрос на нашем форуме.

[Ответить]
Самуил
Спасибо.Очень полезные статьи.
Успехов.

[Ответить]
Андрей
Спасибо, Самуил, что оценили труд авторов. Вам - также всего хорошего!

[Ответить]
Roman
полезная статья  :like:

[Ответить]
Андрей
Хорошо, что материал, Вам пригодился, Роман  :)

[Ответить]
Артем
Статья для новичков,-очень полезно прочитать,темболее автор доступно все описывает.Жду вторую часть.  :like:

[Ответить]
Андрей
Да я вот сам жду, жду, а она - не появляется   !;)

[Ответить]
Юрий
огромное Вам СПАСИБО за ваш Колоссальный труд и долгих лет жизни :-)

[Ответить]
Андрей
Спасибо, Юрий на добром слове!  =)

[Ответить]

Страницы: [1] | [2] [Следующая] | [Последняя]

Оставить комментарий

Ваше имя:

Комментарий:
Введите символы: *
captcha
Обновить


Поиск по сайту
ФОРУМ нашего сайта !




Ресурсы по теме !