Комутатори локальних мереж
Комутатори локальних мереж
Технологія комутації сегментів Ethernet була запропонована фірмою Kalpana в 1990 році у відповідь на зростаючі потреби в підвищенні пропускної здатності зв'язків високопродуктивних серверів із сегментами робочих станцій.
Структурна схема комутатора EtherSwitch, запропонованого фірмою Kalpana, представлена на мал. 4.23.
Кожний з 8 портів 10Base-T обслуговується одним процесором пакетів Ethernet - ЕРР (Ethernet Packet Processor). Крім того, комутатор має системний модуль, що координує роботу всіх процесорів ЕРР. Системний модуль веде загальну адресну таблицю комутатора й забезпечує керування комутатором по протоколі SNMP. Для передачі кадрів між портами використається комутаційна матриця, подібна тим, які працюють у телефонних комутаторах або мультипроцесорних комп'ютерах, з'єднуючи кілька процесорів з декількома модулями пам'яті.
Комутаційна матриця працює за принципом комутації каналів. Для 8 портів матриця може забезпечити 8 одночасних внутрішніх каналів при напівдуплексному режимі роботи портів й 16 - при повнодуплексному, коли передавач і приймач кожного порту працюють незалежно друг від друга.
При надходженні кадру в який-небудь порт процесор ЕРР буферизує декілька перших байт кадру, щоб прочитати адресу призначення. Після одержання адреси призначення процесор відразу ж ухвалює рішення щодо передачі пакета, не чекаючи приходу інших байт кадру. Для цього він переглядає свій власний кеш адресної таблиці, а якщо не знаходить там потрібної адреси, звертається до системного модуля, що працює в багатозадачному режимі, паралельно обслуговуючи запити всіх процесорів ЕРР. Системний модуль робить перегляд загальної адресної таблиці й повертає процесору знайдений рядок, що той буферизує у своєму кеші для наступного використання.
Після знаходження адреси призначення процесор ЕРР знає, що потрібно далі робити із приходящим кадром (під час перегляду адресної таблиці процесор продовжує буферизацію приходящих у порт байтів кадру). Якщо кадр потрібно відфільтрувати, процесор просто припиняє записувати в буфер байти кадру, очищає буфер і чекає надходження нового кадру.
Якщо ж кадр потрібно передати на інший порт, то процесор звертається до комутаційної матриці й намагається встановити в ній шлях, що зв'язує його порт із портом, через який іде маршрут до адреси призначення. Комутаційна матриця може це зробити тільки в тому випадку, коли порт адреси призначення в цей момент вільний, тобто не з'єднаний з іншим портом.
Якщо ж порт зайнятий, те, як й у будь-якому пристрої з комутацією каналів, матриця в з'єднанні відмовляє. У цьому випадку кадр повністю буферизується процесором вхідного порту, після чого процесор очікує звільнення вихідного порту й утворення комутаційною матрицею потрібного шляху.
Після того як потрібний шлях установлений, в нього направляються буферизовані байти кадру, які приймаються процесором вихідного порту. Як тільки процесор вихідного порту одержує доступ до підключеного до нього сегменту Ethernet по алгоритму CSMA/CD, байти кадру відразу ж починають передаватися в мережу. Процесор вхідного порту постійно зберігає трохи байт прийнятого кадру у своєму буфері, що дозволяє йому незалежно й асинхронно приймати й передавати байти кадру (мал. 4.24).
При вільному в момент прийому кадру стані вихідного порту затримка між прийомом першого байта кадру комутатором і появою цього ж байта на виході порту адреси призначення становила в комутаторі компанії Kalpana всього 40 мкс, яка була набагато менше затримки кадру при його передачі мостом.
Описаний спосіб передачі кадру без його повної буферизації одержав назву комутації "на льоту" ("on-the-fly") або "безперервно" ("cut-through"). Цей спосіб представляє, по суті, конвеєрну обробку кадру, коли частково сполучаються в часі кілька етапів його передачі (мал. 4.25).
1. Прийом перших байт кадру процесором вхідного порту, включаючи прийом байт адреси призначення.
2. Пошук адреси призначення в адресній таблиці комутатора (у кеші процесора або в загальній таблиці системного модуля).
3. Комутація матриці.
4. Прийом інших байт кадру процесором вхідного порту.
5. Прийом байт кадру (включаючи перші) процесором вихідного порту через комутаційну матрицю.
6. Одержання доступу до середовища процесором вихідного порту.
7. Передача байт кадру процесором вихідного порту в мережу.
Етапи 2 й 3 сполучити в часі не можна, тому що без знання номера вихідного порту операція комутації матриці не має сенсу.
У порівнянні з режимом повної буферизації кадру, також наведено на мал. 4.25, економія від конвеєризації виходить відчутної.
Однак головною причиною підвищення продуктивності мережі при використанні комутатора є паралельна обробка декількох кадрів.
Цей ефект ілюструє мал. 4.26. На малюнку зображена ідеальна відносно підвищення продуктивності ситуація, коли чотири порти з восьми передають дані з максимальною для протоколу Ethernet швидкістю 10 Мб/с, причому вони передають ці дані на інші чотири порти комутатора без конфліктів - потоки даних між вузлами мережі розподілилися так, що для кожного приймаючого кадри порту є свій вихідний порт. Якщо комутатор встигає обробляти вхідний трафік навіть при максимальній інтенсивності надходження кадрів на вхідні порти, то загальна продуктивність комутатора в наведеному прикладі складе 4x10 = 40 Мбіт/с, а при узагальненні приклада для N портів - (N/2)xl0 Мбіт/с. Говорять, що комутатор надає кожній станції або сегменту, підключеним до його портів, виділену пропускну здатність протоколу.
Природно, що в мережі не завжди складається така ситуація, що зображена на мал. 4.26. Якщо двом станціям, наприклад станціям, підключеним до портів 3й 4, одночасно потрібно записувати дані на той самий сервер, підключений до порту 8, то комутатор не зможе виділити кожній станції потік даних по 10 Мбіт/с, тому що порт 5 не може передавати дані зі швидкістю 20 Мбіт/с. Кадри станцій будуть очікувати у внутрішніх чергах вхідних портів 3й 4, коли звільниться порт 8для