Коммутация 2-го и 3-го уровней
Существуют два метода коммутации фреймов данных — коммутация 2-го уровня и коммутация 3-го уровня. Коммутация состоит в получении приходящего фрейма на одном интерфейсе и отправке его через другой интерфейс. Для отправки пакета маршрутизаторы используют коммутацию 3-го уровня, в то время как коммутаторы используют для этого коммутацию 2-го уровня.
Различие между коммутацией 2-го и 3-го уровней состоит в типе информации, содержащейся внутри фрейма и используемой для определения нужного выходного интерфейса. При коммутации 2-го уровня фреймы коммутируются на основе МАС-адресов, а при коммутации 3-го уровня фреймы коммутируются на основе информации сетевого уровня.
В отличие от коммутации 3-го уровня, коммутация 2-го уровня не использует содержащуюся в пакете информацию сетевого уровня, а использует МАС-адрес пункта назначения, содержащийся внутри фрейма. Если он известен, то информация посылается по МАС-адресу пункта назначения. Коммутация 2-го уровня создает и поддерживает таблицу коммутации, в которой фиксируются МАС-адреса каждого порта или интерфейса.
Если коммутатору 2-го уровня не известен МАС-адрес пункта назначения, то производится широковещательная рассылка фрейма по всем портам сети для выяснения этого адреса. Если в результате такой рассылки фрейм достигает пункта назначения, то соответствующее устройство отсылает его обратно с указанием своего МАС-адреса, который добавляется коммутатором в его таблицу коммутации.
Адреса 2-го уровня задается производителем коммуникационного устройства. Эти уникальные адреса состоят из двух частей — кода производителя (manufacturing code, MFG) и уникального идентификатора. Каждому производителю его MFG-код назначается Институтом инженеров по электротехнике и электронике (Institute of Electrical and Electronic Engineers, IEEE). Уникальный идентификатор устройства задается производителем. Во всех сетях, кроме сетей системной сетевой архитектуры (Systems Network Architecture, SNA), пользователь не имеет или имеет мало возможностей влиять на адресацию 2-го уровня, потому что адреса 2-го уровня для конкретного устройства являются фиксированными, в то время как адреса 3-го уровня могут быть изменены. Адреса 2-го уровня образуют плоское (с отсутствием иерархии) адресное пространство, в котором каждый адрес уникален.
МАС-адресация
МАС-адреса в сети Ethernet используются для уникальной идентификации отдельных устройств. Каждое устройство (ПК, маршрутизатор, коммутатор и т.д.), имеющее Ethernet-интерфейс к сети LAN, должно иметь МАС-адрес, в противном случае другие устройства не смогут обмениваться с ним данными. МАС-адрес имеет длину 48 битов и записывается в виде 12-ти шестнадцатеричных цифр. Первые шесть шестнадцатеричных цифр, задаваемых IEEE, идентифицируют производителя или продавца устройства и, таким образом, включают в себя уникальный идентификатор организации (Organizationally Unique Identifier — OUT). Остальные шесть шестнадцатеричных цифр включают в себя серийный номер интерфейса или другое значение, задаваемое конкретным производителем. МАС-адреса иногда называют прошитыми (Burned-In Address — BIA), поскольку они записаны в постоянной памяти (Read-Only Memory — ROM) интерфейса или устройства и копируются в оперативную память (Random-Access Memory — RAM) при инициализации сетевого адаптера NIC. На рис. показан формат МАС-адреса.
Рис. 10.
Без МАС-адресов сеть LAN представляла бы собой лишь группу изолированных компьютеров, и доставка Ethernet-фреймов была бы невозможной. Вследствие этого на канальном уровне к данным верхних уровней добавляются заголовок (header), содержащий МАС-адрес устройства, и концевик (trailer). Заголовок и концевик содержат
управляющую информацию, предназначенную для канального уровня устройства, которому направляется фрейм. Данные верхних уровней инкапсулируются в заголовок и концевик канального уровня.
LAN-сети спецификаций Ethernet и 802.3 являются широковещательными. Это означает, что все станции сети видят все проходящие по сети фреймы, и каждая станция должна исследовать каждый фрейм, для того чтобы выяснить, не является ли она требуемым пунктом назначения этого фрейма.
В сети Ethernet в случае, когда устройству требуется отправить данные другому устройству, оно может открыть маршрут коммуникации к другому устройству, используя свой МАС-адрес. Когда устройство-отправитель посылает данные в сеть, эти данные включают в себя МАС-адрес требуемого пункта назначения. По мере того, как эти данные перемещаются по сетевой среде, адаптер NIC каждого устройства, к которому они поступают, проверяет, не совпадает ли его МАС-адрес с адресом пункта назначения, содержащимся во фрейме данных. Если такого соответствия нет, то адаптер отбрасывает этот фрейм. Если же такое соответствие имеется, то адаптер NIC проверяет адрес получателя в заголовке фрейма, для того чтобы удостовериться в правильности адресации пакета. При поступлении данных на требуемую станцию ее адаптер делает их копию, удаляет заголовок и концевик и передает их компьютеру для обработки протоколами более высокого уровня, такими, как IP и TCP.
Формат кадра Ethernet
Рис. 11
На рис. 11 показан формат кадра Ethernet. Поля имеют следующие назначения:
• Преамбула: 7 байт, каждый из которых представляет чередование единиц и нулей 10101010. Преамбула позволяет установить битовую синхронизацию на приемной стороне.
• Ограничитель начала кадра (SFD, start frame delimiter): 1 байт, последовательность 10101011, указывает, что далее последуют информационные поля кадра. Этот байт можно относить к преамбуле.
• Адрес назначения (DA, destination address): 6 байт, указывает МАС-адрес станции (МАС-адреса станций), для которой (которых) предназначен этот кадр. Это может быть единственный физический адрес (unicast), групповой адрес (multicast) или широковещательный адрес (broadcast).
• Адрес отправителя (SA, source address): 6 байт, указывает МАС-адрес станции, которая посылает кадр.
• Поле типа или длины кадра (Т or L, type or length): 2 байта. Существуют два базовых формата кадра Ethernet (в английской терминологии raw formats - сырые форматы) – Ethernet II и IEEE 802.3 (рис. 6), причем различное назначение у них имеет именно рассматриваемое поле. Для кадра Ethernet II в этом поле содержится информация о типе кадра. Ниже приведены значения в шестнадцатеричной системе этого поля для некоторых распространенных сетевых протоколов: 0x0800 для IP, 0x0806 для ARP, 0х809В для AppleTalk, 0x0600 для XNS, и 0x8137 для IPX/SPX. С указанием в этом поле конкретного значения (одного из перечисленных) кадр приобретает реальный формат, и в таком формате кадр уже может распространяться по сети [1].
Для кадра IEEE 802.3 в этом поле содержится выраженный в байтах размер следующего поля - поля данных (LLC Data). Если эта цифра приводит к общей длине кадра меньше 64 байт, то за полем LLC Data добавляется поле Pad. Для протокола более высокого уровня не возникает путаницы с определением типа кадра, так как для кадра IEEE 802.3 значение этого поля не может быть больше 1500 (0x05DC). Поэтому, в одной сети могут свободно сосуществовать оба формата кадров, более того, один сетевой адаптер может взаимодействовать с обоими типами посредством стека протоколов.
• Данные (LLC Data): поле данных, которое обрабатывается подуровнем LLC. Сам по себе кадр IEEE 802.3 еще не окончательный. В зависимости от значений первых нескольких байт этого поля, могут быть три окончательных формата этого кадра IEEE 802.3.
• Дополнительное поле (pad - наполнитель) - заполняется только в том случае, когда поле данных невелико, с целью удлинения длины кадра до минимального размера 64 байта - преамбула не учитывается. Ограничение снизу на минимальную длину кадра необходимо для правильного разрешения коллизий.
• Контрольная последовательность кадра (FCS, frame check sequence): 4-байтовое поле, в котором указывается контрольная сумма, вычисленная с использованием циклического избыточного кода по полям кадра, за исключением преамбул SDF и FCS.