Рассмотрим следующий сценарий:
У меня есть 2 ПК (ПК1 и ПК2), которые хотят одновременно передавать данные на ПК3 в полнодуплексном коммутаторе Ethernet. Давайте рассмотрим, что все порты находятся в одной VLAN, так что происходит внутри коммутатора? Кто первым передает на PC3?
Я читал ранее, что использовался CSMA / CD , но только он использовался в более ранних версиях Ethernet, которые работали в полудуплексном режиме, и каждый порт коммутатора был областью коллизий, и если 2 машины пытались передавать одновременно, Алгоритм был выполнен, чтобы дать каждому компьютеру случайное время для передачи и решения проблемы коллизий. Тем не менее, в полнодуплексном коммутаторе я прочитал, что исключена возможность коллизии, поэтому, если два компьютера пытаются одновременно передавать данные, что происходит внутри коммутатора? Коммутатор выполняет алгоритм, чтобы выбрать, кто передает первым?
источник
Очень интересный вопрос, на который, к сожалению, нет однозначного правильного ответа, поскольку точное решение варьируется от аппаратного к аппаратному.
Однако эта проблема явно обсуждается в « Компьютерные сети - системный аппарох» на стр. 231-232.
Суть решения для дизайна под названием «Переключатель солнечного света» заключается в том, что у вас есть входы диаграммы - дозатор - ловушка - селектор == banyan === выходы, и есть поле задержки, которое соединяет селектор с дозатором. И я цитирую:
И далее:
источник
Всегда будет НЕКОТОРЫЕ различия в том, что когда два компьютера отправляют на третий, если вы не делаете что-то особенное на коммутаторе, он будет передаваться на основе FIFO, поэтому любой кадр, который поступит первым, будет передан первым.
источник
Коммутаторы пересылают по одному пакету за раз при входе в коммутатор, чтобы не было конфликтов. Затем ПК3 будет обрабатывать пакеты от ПК1 и ПК2, разделяя время своего процессора. Оконное управление и буферизация будут контролировать поток связи.
источник