Колізія в мережах Ethernet

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку
Приклад колізії

Колізія (англ. collision — помилка накладання, зіштовхування) — в термінології інформаційних технологій, накладання двох та більше кадрів від станцій, що намагаються передати кадр в один і той же момент часу.

Причини виникнення

[ред. | ред. код]

У мережах Ethernet використовується метод доступу до середовища передачі даних, який називається методом колективного доступу з виявленням колізій (carrier sense multiple access with collision detection, CSMA/CD. Цей метод застосовується виключно в мережах з логічною загальною шиною (до яких відносяться і радіомережі, що породили цей метод). Всі комп'ютери такої мережі мають безпосередній доступ до загальної шини, тому вона може бути використана для передачі даних між будь-якими двома вузлами мережі. Одночасно всі комп'ютери мережі мають можливість негайно (з урахуванням затримки поширення сигналу по фізичному середовищі) отримати дані, які будь-який з комп'ютерів почав передавати на загальну шину. Простота схеми підключення — це один з факторів, що визначили успіх стандарту Ethernet.

Етапи доступу до середовища

[ред. | ред. код]

Всі дані, передані по мережі, поміщаються в кадри певної структури та забезпечуються унікальною адресою станції призначення. Щоб отримати можливість передавати кадр, станція повинна переконатися, що колективне середовище вільне. Це досягається прослуховуванням основної гармоніки сигналу, яка також називається несучою частотою (carrier-sense). Ознакою незайнятості середовища є відсутність на ній несучої частоти, яка при манчестерському способі кодування дорівнює 5-10 МГц, залежно від послідовності одиниць і нулів, переданих в даний момент. Якщо середовище вільне, то вузол має право почати передачу кадру. Усі станції, підключені до кабелю, можуть розпізнати факт передачі кадру, і та станція, яка дізнається власну адресу в заголовках кадру, записує його вміст у внутрішній буфер, обробляє отримані дані, передає їх нагору по своєму стеку, а потім посилає по кабелю кадр — відповідь. Адреса станції джерела міститься у вихідному кадрі, тому станція-одержувач знає, кому потрібно послати відповідь. Після закінчення передачі кадру всі вузли мережі повинні витримати технологічну паузу (Inter Packet Gap) у 9,6 мкс. Ця пауза, звана також міжкадровим інтервалом, потрібна для приведення мережних адаптерів у початковий стан, а також для запобігання монопольного захоплення середовища однією станцією. Після закінчення технологічної паузи вузли мають право почати передачу свого кадру, оскільки середовище вільне.

Виникнення колізій

[ред. | ред. код]

При описаному підході можлива ситуація, коли дві станції одночасно намагаються передати кадр даних по загальному середовищу. Механізм прослуховування середовища і пауза між кадрами не гарантують захисту від виникнення такої ситуації, коли дві або більше станції одночасно вирішують, що середовище вільне, і починають передавати свої кадри. Кажуть, що при цьому відбувається колізія (зіткнення), адже вміст обох кадрів зіштовхується на загальному кабелі і відбувається спотворення інформації — методи кодування, використовувані в Ethernet, не дозволяють виділяти сигнали кожної станції із загального сигналу.

Колізія — це нормальна ситуація в роботі мереж Ethernet. Для виникнення колізії не обов'язково, щоб кілька станцій почали передачу абсолютно одночасно, така ситуація малоймовірна. Набагато ймовірніше, що колізія виникає через те, що один вузол починає передачу раніше іншого, але до другого вузла сигнали першого просто не встигають дійти до того часу, коли другий вузол вирішує почати передачу свого кадру.

Тобто колізії — це наслідок розподіленого характеру мережі. Щоб коректно обробити колізію, усі станції одночасно спостерігають за виникаючими на кабелі сигналами. Якщо передані і спостережувані сигнали відрізняються, то фіксується виявлення колізії (collision detection, CD). Для збільшення ймовірності якнайшвидшого виявлення колізії всіма станціями мережі, станція, яка виявила колізію, перериває передачу свого кадру (у довільному місці, можливо, і не на кордоні байта) і підсилює ситуацію колізії посилкою в мережу спеціальної послідовності з 32 біт, яка називається jam-послідовністю.

Джерела

[ред. | ред. код]