Вот такой алгоритм работает при том, как определить какой формат кадра передается на приемник.
По формату кадров пока все.
Сейчас немного поговорим о адресации на канальном уровне, так же называемой Mac – адресацией.
На канальном уровне, адресация проходит по MAC адресам (помните, когда рассматривали ethernet кадр, первые поля были Destination Address и Source Address, которые занимали 6 байт). Эти адреса имеют 48 битный формат и записываются в 16-ом виде.
Тут стоит отметить тот факт, что, существуют юникастовые рассылки (грубо говоря точка-точка), а существуют множественные рассылки (от одного к нескольким). Это определяется по первому биту MAC адреса, если этот бит равен 1, то это значит что осуществляется множественная рассылка (например широковещательная рассылка, такой адрес имеет все единицы), если первый бит равен “0″, юникастовая рассылка.
Mac адрес состоит как бы из двух частей. Первые три байта прикреплены к той или иной компании, которая производит сетевые устройства, тоесть например устройства Cisco имеет определнные 3 байта одинаковые (некоторые компании имеют не один такой адрес, а целый пул адресов), а вторые 3 байта, это непосредственно уникальный адрес сетевого устройства.
Поля имеют следующие назначения:
· Преамбула: 7 байт, каждый из которых представляет чередование единиц и нулей 10101010. Преамбула позволяет установить битовую синхронизацию на приемной стороне.
· Ограничитель начала кадра (SFD, start frame delimiter): 1 байт, последовательность 10101011, указывает, что далее последуют информационные поля кадра. Этот байт можно относить к преамбуле.
· Адрес назначения (DA, destination address): 6 байт, указывает MAC-адрес станции (MAC-адреса станций), для которой (которых) предназначен этот кадр. Это может быть единственный физический адрес (unicast), групповой адрес (multicast) или широковещательный адрес (broadcast).
· Адрес отправителя (SA, source address): 6 байт, указывает MAC-адрес станции, которая посылает кадр.
· Поле типа или длины кадра (T or L, type or length): 2 байта. Существуют два базовых формата кадра Ethernet (в английской терминологии raw formats - сырые форматы) - Ethernet_II и IEEE 802.3 (рис.1), причем различное назначение у них имеет именно рассматриваемое поле. Для кадра Ethernet_II в этом поле содержится информация о типе кадра. Ниже приведены значения в шестнадцатеричной системе этого поля для некоторых распространенных сетевых протоколов: 0x0800 для IP, 0x0806 для ARP, 0x809B для AppleTalk, 0x0600 для XNS, и 0x8137 для IPX/SPX. С указанием в этом поле конкретного значения (одного из перечисленных) кадр приобретает реальный формат, и в таком формате кадр уже может распространяться по сети.
Для кадра IEEE 802.3 в этом поле содержится выраженный в байтах размер следующего поля - поля данных (LLC Data). Если эта цифра приводит к общей длине кадра меньше 64 байт, то за полем LLC Data добавляется поле Pad. Для протокола более высокого уровня не возникает путаницы с определением типа кадра, так как для кадра IEEE 802.3 значение этого поля не может быть больше 1500 (0x05DC). По этому, в одной сети могут свободно сосуществовать оба формата кадров, более того один сетевой адаптер может взаимодействовать с обоими типами посредством стека протоколов.
· Данные (LLC Data): поле данных, которое обрабатывается подуровнем LLC. Сам по себе кадр IEEE 802.3 еще не окончательный. В зависимости от значений первых нескольких байт этого поля, могут быть три окончательных формата этого кадра IEEE 802.3:
· Ethernet_802.3 (не стандартный, в настоящее время устаревающий формат, используемый Novell) - первые два байта LLC Data равны 0xFFFF;
· Ethernet_SNAP (стандартный IEEE 802.2 SNAP формат, которому отдается наибольшее предпочтение в современных сетях, особенно для протокола TCP/IP) - первый байт LLC Data равен 0xAA;
· Ethernet_802.2 (стандартный IEEE 802.2 формат, взят на вооружение Novell в NetWare 4.0) - первый байт LLC Data не равен ни 0xFF (11111111), ни 0xAA (10101010).
· Дополнительное поле (pad - наполнитель) - заполняется только в том случае, когда поле данных невелико, с целью удлинения длины кадра до минимального размера 64 байта -преамбула не учитывается. Ограничение снизу на минимальную длину кадра необходимо для правильного разрешения коллизий.
· Контрольная последовательность кадра (FCS, frame check sequence): 4-х байтовое поле, в котором указывается контрольная сумма, вычисленная с использованием циклического избыточного кода по полям кадра за исключением преамбулы, SDF и FCS.