logo
Лекції_networks

Комутатори локальних мереж

Технологія комутації сегментів Ethernet була запропонована фірмою Kalpana в 1990 році у відповідь на зростаючі потреби в підвищенні пропускної здатності зв'язків високопродуктивних серверів із сегментами робочих станцій.

Структурна схема комутатора EtherSwіtch, запропонованого фірмою Kalpana, представлена на рис.8.9.

Кожний з 8 портів 10Base-T обслуговується одним процесором пакетів Ethernet — ЕРР (Ethernet Packet Processor). Крім того, комутатор має системний модуль, що координує роботу всіх процесорів ЕРР. Системний модуль веде загальну адресну таблицю комутатора й забезпечує керування комутатором по протоколу SNMP. Для передачі кадрів між портами використовується комутаційна матриця, подібна тим, які працюють у телефонних комутаторах або мультипроцесорних комп'ютерах, з'єднуючи кілька процесорів з декількома модулями пам'яті.

Рис. 8.9. Структура комутатора EtherSwіtch компанії Ка1ропа

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

При надходженні кадру в який-небудь порт процесор ЕРР буферизує декілька перших байт кадру, щоб прочитати адресу призначення. Після одержання адреси призначення процесор відразу ж приймає рішення щодо передачі пакета, не чекаючи приходу інших байт кадру. Для цього він переглядає свій власний кэш адресної таблиці, і якщо не знаходить там потрібної адреси, звертається до системного модуля, що працює в багатозадачному режимі, паралельно обслуговуючи запити всіх процесорів ЕРР. Системний модуль робить перегляд загальної адресної таблиці й повертає процесору знайдений рядок, що той буферизує у своєму кэші для наступного використання.

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

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

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

Після того як потрібний шлях встановлений, у нього направляються буферизовані байти кадру, які приймаються процесором вихідного порту. Як тільки процесор вихідного порту одержує доступ до підключеного до нього сегменту Ethernet по алгоритму CSMA/CD, байти кадру відразу ж починають передаватися в мережу. Процесор вхідного порту постійно зберігає трохи байт прийнятого кадру у своєму буфері, що дозволяє йому незалежно й асинхронно приймати й передавати байти кадру (рис.8.10).

Рис.8.10. Передача кадру через комутаційну матрицю

При вільному в момент прийому кадру стані вихідного порту затримка між прийомом першого байта кадру комутатором і появою цього ж байта на виході порту адреси призначення становила в комутатора з Kalpana усього 40 мкс, що було набагато менше затримки кадру при його передачі мостом.

Описаний спосіб передачі кадру без його повної буферизації одержав назву комутації "на льоту" ("on-the-fly"). Цей спосіб представляє, по суті, конвеєрну обробку кадру, коли частково сполучаються в часі кілька етапів його передачі (рис.8.11):

  1. Прийом перших байт кадру процесором вхідного порту, включаючи прийом байт адреси призначення.

  2. Пошук адреси призначення в адресній таблиці комутатора (у кэші процесора або в загальній таблиці системного модуля).

  3. Комутація матриці.

  4. Прийом інших байт кадру процесором вхідного порту.

  5. Прийом байт кадру (включаючи перші) процесором вихідного порту через комутаційну матрицю.

  6. Одержання доступу до середовища процесором вихідного порту.

  7. Передача байт кадру процесором вихідного порту в мережу.

Рис.8.11 Економія часу при конвеєрній обробці кадру:

а — конвеєрна обробка; б — звичайна обробка з повною буферизацією

Етапи 2 і 3 сполучити в часі не можна, тому що без знання номера вихідного порту операція комутації матриці неможлива.

У порівнянні з режимом повної буферизації кадру економія від конвеєризації виходить відчутною.

Однак головною причиною підвищення продуктивності мережі при ви­користанні комутатора є паралельна обробка декількох кадрів.

Цей ефект ілюструє рис.8.12. На рисунку зображена ідеальна відносно підвищення продуктивності ситуація, коли чотири порти з восьми передають дані з максимальною для протоколу Ethernet швидкістю 10 Мбіт/с, причому вони передають ці дані на інші чотири порти комутатора не конфліктуючи — потоки даних між вузлами мережі розподілилися так, що для кожного приймаючого кадри порту є свій вихідний порт. Якщо комутатор устигає обробляти вхідний трафік навіть при максимальній інтенсивності надходження кадрів на вхідні порти, то загальна продуктивність комутатора в наведеному прикладі складе 4*10=40 Мбіт/с, а при узагальненні приклада для N портів — (N/2)*l0 Мбіт/с. Говорять, що комутатор надає кожній станції або сегменту, підключеним до його портів, виділену пропускну здатність протоколу.

Природно, що в мережі не завжди складається така ситуація, що зображена на рис.8.12. Якщо двом станціям, наприклад станціям, підключеним до портів 3 і 4, одночасно потрібно записувати дані на той самий сервер, підключений до порту 8, то комутатор не зможе виділити кожній станції потік даних по 10 Мбіт/с, тому що порт 8 не може передавати дані зі швидкістю 20 Мбіт/с. Кадри станцій будуть очікувати у внутрішніх чергах вхідних портів 3 і 4, коли звільниться порт 8 для передачі чергового кадру. Очевидно, гарним рішенням для такого розподілу потоків даних було б підключення сервера до більш високошвидкісного порту, наприклад Fast Ethernet.

Рис. 8.12. Паралельна передача кадрів комутатором

Головна перевага комутатора, завдяки якій він завоював дуже гарні позиції в локальних мережах, це його висока продуктивність, тому розроблювачі комутаторів намагаються випускати так звані неблокуючі (non-blockіng) моделі комутаторів.

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

Звичайно мають на увазі стійкий неблокуючий режим роботи комутатора, коли комутатор передає кадри зі швидкістю їхнього надходження протягом довільного проміжку часу. Для забезпечення такого режиму потрібно, природно, такий розподіл потоків кадрів по вихідних портах, щоб вони справлялися з навантаженням і комутатор міг би завжди в середньому передати на виходи стільки кадрів, скільки їх надійшло на входи. Якщо ж вхідний потік кадрів (просумований по всіх портах) у середньому буде перевищувати вихідний потік кадрів (також просумований по всіх портах), то кадри будуть накопичуватися в буферній пам'яті комутатора, а при перевищенні її обсягу — просто відкидатися. Для забезпечення неблокуючого режиму комутатора необхідне виконання достатньо простої умови:

Cк=(C)/2,

де Ck — продуктивність комутатора, C — максимальна продуктивність протоколу, підтримуваного і-м портом комутатора. Сумарна продуктивність портів ураховує кожний минаючий кадр двічі — як вхідний кадр і як вихідний, а враховуючи, що в стійкому режимі вхідний трафік дорівнює вихідному, то мінімально достатня продуктивність комутатора для підтримки неблокуючого режиму дорівнює половині сумарної продуктивності портів. Якщо порт працює в напівдуплексному режимі, наприклад Ethernet 10 Мбіт/с, то продуктивність порту C дорівнює 10 Мбіт/с, а якщо в повнодуплексному, те його C буде становити 20 Мбіт/с.

Іноді говорять, що комутатор підтримує миттєвий неблокуючий режим. Це означає, що він може приймати й обробляти кадри від всіх своїх портів на максимальній швидкості протоколів, незалежно від того, чи забезпечуються умови стійкої рівноваги між вхідним і вихідним трафіком. Правда, обробка деяких кадрів при цьому може бути неповною —- при зайнятості вихідного порту кадр міститься в буфер комутатора. Для підтримки миттєвого неблокуючого режиму, комутатор повинен мати більшу власну продуктивність, а саме, вона повинна дорівнювати сумарній продуктивності його портів:

Cк=C.

Широкому застосуванню комутаторів, безумовно, сприяло та обставина, що впровадження технології комутації не вимагало заміни встановленого в мережах устаткування — мережних адаптерів, концентраторів, кабельної системи. Порти комутаторів працювали у звичайному напівдуплексному режимі, тому до них прозоро можна було підключити як кінцевий вузол, так і концентратор, що організує цілий логічний сегмент.

В зв’язку з тим, що комутатори й мости прозорі для протоколів мережного рівня, то їхня поява в мережі не зробила ніякого впливу на маршрутизатори мережі, якщо вони там були.

Зручність використання комутатора складається ще й у тому, що це пристрій, що самонавчається, і, якщо адміністратор не навантажує його додатковими функціями, конфігурувати його не обов'язково — потрібно тільки правильно підключити роз’єми кабелів до портів комутатора, а далі він буде працювати самостійно й ефективно виконувати поставлене перед ним завдання підвищення продуктивності мережі.