Що відбувається, коли 2 комп’ютери передають одночасно третьому в повному дуплексному комутаторі?


14

Розглянемо наступний сценарій:

У мене є 2 ПК (PC1 та PC2), які хочуть одночасно передати PC3 в повному дуплексному комутаторі Ethernet. Розглянемо, що всі порти знаходяться в одній VLAN, і що відбувається всередині комутатора? Хто першим передає ПК3?

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

Відповіді:


14

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

Проблеми з кадрами "не натикаються один на одного". Справжня проблема полягає в тому, чи може кінцевий порт / сегмент приймати кадри досить швидко. (І, звичайно, чи може комутатор обробляти свій буфер / черги досить швидко.)


9
Так, відбувається перерізання та безперервне перемикання. В основному використовується у високошвидкісних торгових умовах. Вирізання почне починати передачу, як тільки DST MAC буде відомий. Вільний фрагмент переконайтесь, що кадр не є зіткненням фрагмента, тому йому потрібно отримати 64 байти перед передачею.
Даніель Діб

2
Так, я думаю, що це називатиметься пересічним переадресацією, на відміну від зберігання та передачі. У підхідному режимі перемикач може почати переадресацію, як тільки він отримає та перегляне MAC призначення, але гібридні підходи існують там, де він чекає трохи довше, наприклад, щоб можна було подивитися на IP для перевірки вихідного ACL . (Поле Ethertype скаже, що в кадрі присутня IP-адреса).
Гербен

1
^^^ Це. Ось чому NE гірські породи.
Крейг Костянтин

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

2
Більшість комутаторів є лише в магазині і вперед, прорив був повернений кілька років тому, тому що його легко продати фінансовому світу. Переміщення вперед і 10 вперед спричиняє затримку 1,2у, тобто 235м. Також вхід і вихід не можуть бути різною швидкістю при прорізанні.
ytti

6

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

Однак ця проблема прямо обговорюється в Комп'ютерних мережах - системному апараті на сторінці 231-232.

Суть рішення для дизайну під назвою "Sunshine Switch" полягає в тому, що у вас є діаграми вводу - batcher - trap - selector == banyan === та є поле затримки, яке підключає селектор до дозатора. І я цитую:

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

І далі:

Мережа пасток ідентифікує ті пакети, які зможуть вийти з комутатора через баньян (до l з них на вихідний порт) і відмічає решту для рециркуляції.


3

Завжди буде ДЕЯКА різниця в тому, коли два комп’ютери надсилають на третій, якщо ви не робите нічого особливого на комутаторі, він передаватиметься на основі FIFO, тому залежно від того, який кадр прийде першим, буде передано першим.


1
Оскільки ПК [23] є власними проводами, нічого не заважає кадру прийти точно в той самий час для точності роботи "моменту" (частоти) HW. Думаю, що до перемикача ASIC дизайнер вирішить, що саме робити в цьому випадку, але я б здогадався, що він буде читати кадри портів у кругообіг.
ytti

2
Добре, що я мав більше на увазі те, що шанс появи двох кадрів точно в той самий час був досить низьким. Як ви вже згадували, це, ймовірно, зводиться до дизайну ASIC, і я впевнений, що він ніде не буде задокументований, якщо ви не перейдете через серію обручів з командою акаунтів.
Девід Ротера

Той, хто перебиває перший, виграє, вважаючи всі інші рівними.
generalnetworkerror

0

Перемикає вперед один пакет одночасно, коли вони входять до комутатора, щоб не виникало колізій. Тоді PC3 буде обробляти пакети з PC1 та PC2, поділяючи його процесорний час. Вікно та буферизація контролюватимуть потік зв'язку.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.