Метод доступу csma

Кожен вузол мережі має мережевий адаптер - схему, що реалізує метод CSMA / CD на апаратному (або микропрограммном) рівні.

Колізії є нормальним, хоча і небажаним явищем в мережі Ethernet. Метод CSMA / CD добре працює лише при загальній завантаженні каналу (середовища передачі) до 30%. При більшому завантаженні колізії призводять до прогресуючої деградації продуктивності, що є слабким місцем технології Ethernet. Незважаючи на те, що в принципі Ethernet допускає наявність в юдном сегменті сотень (навіть тисяч) вузлів, при їх високої активності розумний розмір домену колізій - групи вузлів, пов'язаних загальним середовищем (кабелями і повторювачами), - обмежений лише декількома десятками вузлів. Протяжність домену колізій обмежується часом поширення сигналу між найбільш віддаленими один від одного вузлами.

Тимчасові співвідношення прийнято вимірювати в бітових інтервалах bt (bit time). Бітовий інтервал - час, необхідний для передачі одного біта, яке при швидкості передачі 10 Мбіт / с становить 0,1 мкс. Суміжні 8-бітові групи називають як байтами, так і октетами.

Двійкова інформація передається в манчестерському коді. В середині кожного бітового інтервалу відбувається зміна стан в лінії: від -V до + V для одиничного біта, від + V до -V - для нульового. На початку бітового інтервалу зміна може бути, а може і не бути. Передавач є джерелом струму 40 мА, приймач - детектором рівня напруги з високим вхідним опором. Вузол, що не передає в даний момент, вносить навантаження з опором більше 100 кОм. Приймач і передавач підключаються до загального коаксіальному кабелю з опором 50 Ом, який з обох кінців закінчується 50-омнимі терминаторами. Т-образні відгалуження кабелю неприпустимі. Два термінатора утворять навантаження з опором постійному струму 25 Ом, з урахуванням опору кабелю це навантаження може доходити і до 30 Ом (найгірший випадок, коли вузол розташований в середині найдовшого сегмента). На номінальному навантаженні струм 40 мА від одного передавача викликає падіння напруги 1 В. Колізія визначається передавальним трансівером за великим рівнем (понад 1,5 В) сигналу в лінії, викликаному одночасною роботою двох і більш передавачів. Прийнятий метод доступу і спосіб передачі сигналів критичний до импедансу кабелю і термінаторів. При використанні іншого (наприклад, 75 Ом) кабелю і порушення термінації (не два термінатора або не 50 Ом) мережу практично непрацездатна - через великий опір навантаження сигнал одиночного передавача буде перевищувати поріг спрацьовування детектора колізій. Поріг спрацьовування детектора колізій (1,5-1,6 В) вибирається з таким розрахунком, щоб сигнал від одного передавача гарантовано не приводив до спрацьовування детектора, а сума сигналів від двох передавачів викликала спрацьовування, причому для найгірших випадків. У розрахунку порогів фігурує розкид вихідних струмів передавачів, максимальний вхідний струм приймача (він викликає зміщення рівня сигналу), вхідний опір приймача, розкид опорів термінаторів, опір сегмента постійному струму (складається з опору кабелю і конекторів). З цими розрахунками пов'язані обмеження на кількість вузлів в сегменті і максимальну довжину сегмента, з урахуванням опору кабелів і конекторів. Колізії можуть виявлятися в двох режимах: в режимі передачі і в режимі прийому. При виявленні колізій в режимі передачі (transmit mode collision detection) детектор зобов'язаний виявити колізію двох (і більше) передавачів, один з яких - його власний. Це більш легкий (в плані тонкощі підбору порогів) випадок. При виявленні колізій в режимі прийому (receive mode collision detection) детектор зобов'язаний виявити колізії будь-яких двох (і більше) передавачів, при цьому «вилка» можливих значень порогів звужується. Стандарт 802.3 для вузлів, які не є повторювачами, допускає обидва режими виявлення. Якщо всі вузли використовують виявлення в режимі передачі, то з'являється можливість збільшення довжини сегмента (до 300 м в «тонкому» варіанті і до 1000 м в «товстому») і числа вузлів (до 100 в «тонкому»). Однак повторювачі повинні забезпечувати виявлення колізій і в режимі прийому, інакше вони не зможуть повідомити про колізії в інший сегмент.

- Довгий кадр (long, oversized) - більш 1518 байт з правильним CRC-кодом. Може породжуватися некоректним драйвером адаптера.

- Короткий кадр (runt, undersized) - менше 64 байт з правильним CRC-кодом. Може породжуватися некоректним драйвером адаптера.

- «Балакучий» кадр (jabber) - більш 1518 байт з неправильним CRC-кодом. Може породжуватися несправним трансівером (адаптером).

- Помилка вирівнювання (alignment error) - кадр, довжина якого не кратна байту. Може породжуватися несправним адаптером, трансівером, кабелем.

- Помилка контрольного коду (CRC error) - кадр правильної довжини, але з неправильним CRC-кодом. Може породжуватися перешкодами, занадто великою довжиною кабелю.

На вищі протокольні рівні передаються тільки кадри, які не мають перерахованих помилок. Кадр, відсічений колізією (менше 64 байт і з неправильним CRC-кодом), помилковим формально не вважається, але і на обробку в вищі рівні не передається.

Між кадрами повинен забезпечуватися часовий проміжок IPG (Inter Packet Gap) тривалістю 9,6 мкс - вузол не має права почати передачу раніше, ніж через інтервал IPG після визначення моменту зникнення несучої. Через 0,6 мкс після закінчення передачі починається 1,4-мкс вікно тестування ланцюгів детектора колізій SQE window. В цей час трансивер, який передав кадр, фор-мірует спеціальний тестовий сигнал SQE (Signal Quality Error), він же heartbit, за яким адаптер визначає працездатність детектора колізій. Сигнал SQE в загальну середу передачі не надходить, він передається тільки між трансивером і адаптером одного і того ж вузла мережі. Цей сигнал з'явився тільки починаючи з версії 2.0, і якщо трансивер 802.3 або v2.0 підключити до адаптера v1.0, він може сприйняти його як сигнал колізії і послати jam-послідовність, що призведе до неможливості нормальної передачі даних.

Трансівер, як відносно незалежний вузол, може (і повинен) контролювати роботу адаптера. Якщо він виявив «балакучість» адаптера (занадто довгий формування сигналів передачі), він припиняє передачу в лінію і блокується до тих пір, поки адаптер не "мовчить» певний час. Таким чином забезпечується захист середовища передачі від її монопольного захоплення несправним вузлом.

Адаптер може вважати, що йому вдалося отримати доступ до середовища передачі, якщо він не виявив колізій при передачі перших 64 байт кадру, і рапортувати про це на більш високий протокольний рівень. Якщо він виявив колізію, то зобов'язаний замість продовження пакету послати коротку (32-48-бітову) ланцюжок затор (Jam)> після чого припинити передачу. Мета посилки затору - дати можливість всім передавачів, залученим в колізію, її помітити. Посилкою затору забезпечується оповіщення про колізії вузлів, розділених повторителями. Ситуація, коли колізія виявлена ​​пізніше 64-байтного вікна (collision window), називається пізньої колізією (later collision) і є ненормальною для мережі Ethernet.

Інтервал часу до повторної спроби доступу t RT визначається через ін-інтервал відстрочки TS і випадкове число t, що залежить від номера спроби п:

Інтервал відстрочки TS називається також тайм-слотом (time slot) і становить 512 bt. Число t є випадковим цілим, рівномірно розподіленим в діапазоні 0-2 в ступеня n для n = 1, 2. 10 і в діапазоні 0-2 в ступеня 10 для п> 10. Після 16 невдалих спроб передачі адаптер відмовляється від подальших спроб доступу, повідомляючи про невдачу на вищі рівні. Максимальний час між двома повторними спробами може доходити до 2 певною мірою 10 х TS = 524 288 bt

52,4 мс, мінімальне - 0 (відразу після зазору).

З механізмом виявлення колізії пов'язані просторові обмеження на розмір домену колізій, обумовлені кінцівкою швидкості розповсюдження сигналу в середовищі передачі і затримками, що вносяться повторювачами. Нижче наведена тимчасова діаграма дій двох вузлів, помітно віддалених один від одного. Нехай вузол А почав передавати кадр в момент t 0A. і незабаром з'явилася потреба в передачі у вузла В. Вузол В бачитиме лінію вільної аж до моменту t 0B. і в момент t 1B йому ніщо не заважає почати передачу. Незабаром його передавач виявить колізію, і він замість продовження кадру почне передавати сигнал затору. Передавач А виявить колізію тільки в момент t 1A і теж припинить передачу кадру. Максимальний час, протягом якого передавач А буде «безтурботно» передавати пакет, складе час t TRAmax = t AB + t BA так зване час подвійного обороту по мережі (round trip time). Це час плюс час на передачу затору має бути менше, ніж час передачі самого короткого кадру, інакше кадри, обірвані колізією, приймач буде намагатися трактувати як нормальні. Таким чином, час подвійного обороту не повинно перевищувати час передачі кадру мінімальної довжини. Для надійності беруть ще й запас, з урахуванням якого час подвійного обороту не повинно перевищувати 45 мкс. Оскільки мережа симетрична, для визначення обмежень досить визначити час проходження сигналу між двома найбільш віддаленими один від одного вузлами домену колізій. У цей час входить затримка поширення сигналу в кабелі, затримки, що вносяться повторювачами (якщо вони зустрічаються на шляху), і час реакції адаптера на виявлення колізії. Цей час не повинен перевищувати 25,6 мкс, а для надійності слід ще залишити запас в 1-5 мкс. Відстань між максимально віддаленими вузлами називається діаметром домену колізій. Швидкісні технології - Fast Ethernet і Gigabit Ethernet - мають той же механізм виявлення колізій, і через більш високої частоти передачі (bt = 10 нс в Fast і bt = 1нc в Gigabit Ethernet) обмеження на діаметр домену колізій жорсткіше. Для їх пом'якшення в Gigabit Ethernet пішли на збільшення мінімального розміру кадру.

Алгоритм двійкового експоненціального відкоту

Розглянемо, як здійснюється рандомизация періоду очікування після зіткнення кадрів. Після виникнення колізії час ділиться на дискретні інтервали, тривалість яких дорівнює максимальному часу кругового обігу сигналу (тобто його проходження по кабелю в прямому і зворотному напрямках), 2т. Для задоволення потреб Ethernet при максимальному розмірі мережі необхідно, щоб один інтервал становив 512 бітових інтервалів, або 51,2 мкс.

Після першого зіткнення кожна станція чекає або 0 або 1 інтервал, перш ніж спробувати передавати знову. Якщо дві станції зіткнуться і виберуть один і той же псевдовипадкове число, то вони зіткнуться знову. Після другого зіткнення кожна станція вибирає випадковим чином 0, 1, 2 або 3 інтервалу з набору і чекає знову. При третьому зіткненні (ймовірність такої події після подвійного зіткнення дорівнює 1/4) інтервали будуть вибиратися в діапазоні від 0 до (2 в 3 ступеня) - 1.

У загальному випадку після i зіткнень випадковий номер вибирається в діапазоні від 0 до (2 певною мірою i) - 1, і ця кількість інтервалів станція пропускає. Однак після 10 зіткнень поспіль інтервал рандомізації фіксується на позначці 1023. Після 16 зіткнень поспіль контролер визнає свою поразку і повертає комп'ютера помилку. Подальшим відновленням займаються вищі рівні.

Цей алгоритм, званий двійковим експоненціальним алгоритмом відкату, був обраний для динамічного обліку кількості станцій, які намагаються здійснити передачу. Якщо вибрати інтервал рандомізації рівним тисячу двадцять три, то ймовірність повторного зіткнення буде дуже мала, проте середній час очікування складе сотні тактів, в результаті чого середній час затримки буде занадто велике. З іншого боку, якщо кожна станція буде вибирати час очікування всього з двох варіантів, 0 і 1, то в разі зіткнення сотні станцій вони будуть продовжувати стикатися знову і знову до тих пір, поки 99 з них не виберуть 1, а одна станція - 0 . Такого події можна буде чекати роками. Експоненціально збільшуючи інтервал рандомізації в міру виникнення повторних зіткнень, алгоритм забезпечує невеликий час затримки при зіткненні невеликої кількості станцій і одночасно гарантує, що при зіткненні великої кількості станцій конфлікт буде вирішений за розумний час.

Як випливає з наведеного опису, в системі CSMA / CD немає підтверджень. Оскільки просте відсутність зіткнень ще не гарантує, що біти були спотворені сплесками шуму в кабелі, для надійного зв'язку необхідно перевіряти контрольну суму і, якщо вона правильна, посилати відправнику кадр підтвердження. З точки зору протоколу це буде ще один звичайний кадр, якому так само доведеться боротися за канал, як і інформаційного кадру. Однак нескладна модифікація алгоритму боротьби за канал дозволить прискорити пересилання підтвердження успішного прийому кадру. Все, що для цього потрібно, - зарезервувати перший часовий інтервал після успішної передачі кадру за що отримала цей кадр станцією. На жаль, стандарт не передбачає такої можливості.