Ethernet: топология сети
Рассмотрим стандартный сетевой коммутатор GigE. Для выполнения переключения, по-видимому, необходимо поддерживать карту MAC-адресов всех вещей, которые существуют в сети, с номерами портов (коммутатора).
- Как он поддерживает такую карту?
- Какие протоколы задействованы?
- Если я изменю топологию одной части сети, получит ли уведомление всю сеть или что-то обнаружится "лениво" (т.е. при первой необходимости)?
3 ответа
Коммутатор изучает сопоставление MAC-порта, просматривая MAC-адрес источника каждого входящего пакета. Таким образом, коммутатор может строить таблицу Mac постепенно.
Когда ему нужно переслать пакет, он смотрит на MAC-адрес назначения и перенаправляет его на соответствующий порт в соответствии с таблицей Mac. Если он не обнаружил ни одной записи, он отправит пакет на все порты (кроме порта отправки).
Чтобы сохранить только допустимые записи в таблице mac, коммутатор сбрасывает неиспользуемые записи после определенного времени ожидания.
При изменении топологии сети коммутатор может узнать новое местоположение MAC-адреса при получении нового пакета. Это перезапишет старое отображение этого mac-адреса.
Для получения дополнительной информации, посмотрите на эту ссылку.
Он называется таблицей MAC-адресов и содержит port
, MAC address
и timestamp
, Если вы измените топологию, потому что вы отсоедините некоторые кабели, в это время все записи, которые содержат соответствующие порты, будут удалены из таблицы MAC-адресов. Новые записи изучаются после получения каждого первого пакета от оборудования. Некоторые записи останутся для неправильного порта, если оборудование не подключено напрямую, но, как правило, оно будет изучено в ближайшее время из-за широковещательных рассылок. Если от оборудования нет трафика, то оно должно пройти тайм-аут, пока его вход не будет отброшен. Время ожидания обычно составляет 120 секунд.
Взял этот сценарий:
host_a - порт 1 host_b - порт 2
когда host_a хочет отправить пакет на host_b, он нажмет на коммутатор, который запишет mac-адрес host_a, а поскольку host_b еще ничего не отправил, будет транслировать кадр на все порты - host_b заметит, что ему отправлено, и ответит в порту б.
в этот момент коммутатор знает, что host_a имеет mac1 на порту 1, а host_b имеет mac2 на порту 2. любая дальнейшая связь будет осуществляться только через эти порты вместо широковещательной передачи.
- Как поддерживать карту, зависит от поставщика, но это сводится к списку Mac и связанных с ними портов.
- в самой простой модели нет протокола на самом деле, за исключением того, что все это происходит на уровне 2 OSI
- если вы измените топологию, коммутатор удалит старую запись и обновит ее новой (так как host_1 mac1 находится на порте 10 вместо 1).
То, что я сказал, применимо к неуправляемым коммутаторам и может также применяться к управляемым коммутаторам, но там все усложняется. например, cisco может настроить, какой mac приходит на какой порт, они запускают проприетарные протоколы как ISL или открытый текст ссылки dot1q http://en.wikipedia.org/wiki/IEEE_802.1Q