основи ethernet

Це продовження циклу статей про основи Ethernet. Ми вже розглянули тему про фізичному середовищі передачі даних Ethernet (мідь), познайомилися зі стандартами T568A і T568B.
Сьогодні постараємося розібратися в Ethernet кадрі.

У мережевих технологіях, розрізняють такі поняття як фрейм (frame) і пакет packet. Новачки мережевих технологій, часто роблять помилки у використанні цих термінів і вважають що ці терміни є синонімами, але це не так.

Давайте визначимося, що ж називають фреймами, а що називають пакетами.

Пакетами в свою чергу часто описують Layer 3 заголовок разом з даними. (Так само вміщені можуть бути заголовки вищих рівнів), але вже без заголовка Layer 2 і кінцівки (trailer).

Отже, специфікація Ethernet.

Давайте поговоримо про неї. Які вони були, які вони зараз.

Першим засновником Ethernet специфікації стала така компанія як DIX. насправді це група компаній: Digital Equipment Corp, Intel. Xerox.
На початку 1980х років, IEEE стандартизувала технологію Ethernet. Ця технологія поділялася на дві частини:

  1. 802.3 Media Access Control (MAC)

Існує кілька версій Ethernet фрейму, давайте розглянемо їх.

  • IEEE 802.3 з SNAP заголовком.
  • Тепер розберемо поля детальніше.

    1. Preamble - преамбула, існує у всіх версіях Ethernet кадру. Але є деякі відмінності.

    Ці відмінності є між DIX версією і іншими. У DIX версії, це поле займало 8 байт.
    Взагалі, що таке преамбула взагалі? Це якась сукупність 0 і 1, яка використовується для синхронізації. Тобто говорить ресивера, що буде прийнятий ethernet кадр.

    У DIX преамбула була 8 байт, сім перших байтів містило послідовність 10101010 і так сім разів (7 байт), останній 8-ий байт виглядав так: 10101011.
    У 802.3 преамбула стала 7 байт, які так містило послідовність 10101010 (7 разів, 7 байт) і було додано ще одне поле, яке назвали SD (Start of Frame Delimiter), що означає. початок ethernet кадру.

    Ці поля відносяться до першої частини 802.3 Ethernet - MAC.
    Так само присутній як ми пам'ятаємо і друга частина LLC, давайте розглянемо її поля.

    Як же може пристрій визначити, який тип ethernet кадру приймається?

    Адже існує DIX формат (Ethernet II), 802.3 і 802_3 з SNAP?

    Все дуже просто. Давайте розглянемо алгоритм визначення.

    1. Пристрій отримує фрейм. Дивиться на поле Lenght / Type (пам'ятаємо, воно займає 2 байта). Якщо значення більше ніж 1518 байт (розмір всього фрейму з заголовками), то це вже не Ethernet II. а 802.3 або 802.3 SNAP, тому як тільки в Ethernet II вказується розмір в зазначеному полі.
    2. Припустимо Lenght / Type у нас більше 1518 (0x5FE).
      Тут нам потрібно визначити, який фрейм 802.3 або 802.3 SNAP. Це робиться на основі заголовка LLC (802.2), таких як DSAP, SSAP і SNAP. Зауважимо, що SNAP це розширення заголовків DSAP і SSAP (Сервісів стало настільки багато, що в 1 байті не вдавалося закодувати той чи інший сервіс і довелося створювати ще одну реалізацію, яка називається 802.3 SNAP).
      SSAP і DSAP зазвичай приймають одне і теж значення. Поле Control приймає зазвичай значення 0x03, що означає, що немає необхідності встановлювати з'єднання на канальному рівні (Layer 2).

    Якщо передається кадр з SNAP, то значення першого і другого байта даних (по суті це наші SSAP і DSAP) рівні 0xAA, а третього (по суті нашого Control) дорівнює 0x03.

    Ось такий алгоритм працює при тому, як визначити який формат кадру передається на приймач.