Продолжение. Начало здесь
Пакеты и все что с ними связанно
В сетях вся информация от хоста к хосту передается маленькими порциями названые в разных источниках по разному, но по сути то же самое, а именно – пакетами (packets) или кадрами (frames). Передача кусочками информации или частями связано с тем что бы предоставить всем участникам обмена в сети равноправные условия для обмена. К примеру, представьте, что кто-то решил через сеть скинуть содержимое своего многосотенного гигабайтного диска на другой сетевой диск. Если бы информация не передавалась кусками (пакетами) то тогда получается что данный процесс, целиком захватил бы сеть и другие пользователи пока копирование не кончится, ждали бы доступа к сети. Кстати, одним из важнейших параметром сети это – время доступа(access time). Время доступа следует понимать так – это время а между моментом когда абоненту сети приготовил все что надо послать другому абоненту, то есть готов к передачи и фактически моментом начала передачи. Так как в сети принято общается по очереди, то время доступа и есть время проведенная в очереди пока не получил право на передачу. Почему приходится ждать очередь? Просто в сетях с широковещанием (в нашем случае Ethernet), в сети не могут быть больше одного обмена между именно 2 абонентами. То есть, в сети на данный момент активны только один передатчик и один приемник. Почему это так узнаем дальше. И как написано выше обмен через пакеты, как раз и уравнивает это общение между хостами. То есть передал свою порцию – жди следующей очереди, если не передал все. Отсюда логически возникает вопрос? А какова эта порция? Может быть один передает 100 Мб а другой только 10Мб потому что этот абонент чем то провинился перед СЕТЬЮ! Так вот - пакеты или кадры строго ограничены по размеру.
Давайте рассмотрим вблизи, как выглядят эти кадры. Для успешной доставки информации получателю каждый кадр должен кроме данных содержать служебную информацию : длину поля данных, физические адреса отправителя и получателя, тип сетевого протокола и т.д. Нас в данном случае интересуют кадры Ethernet. На данный момент существуют 4 типов кадров Ethernet. Но все эти кадры построены по общему принципу, который выглядит как на рис. 2.
Рис. 2
Поля в кадре имеют следующие значения : Поля "Преамбула" и "Признак начала кадра" предназначены для синхронизации отправителя и получателя. Преамбула представляет собой 7 - байтовую последовательность единиц и нулей. Поле признака начала кадра имеет размер 1 байт. Эти поля не принимаются в расчёт при вычислении длины кадра. Это поле может вообще отсутствовать или быть размером в 1 бит. Поле "Адрес получателя" состоит из 6 байт и содержит физический адрес устройства в сети (MAC –адрес), которому адресован данный кадр. Значения этого и следующего поля являются уникальными. Каждому производителю адаптеров Ethernet назначаются первые три байта адреса, а оставшиеся три байта определяются непосредственно самим производителем. Например, для адаптеров фирмы 3Com физические адреса будут начинаться с 0020AF. Первый бит адреса получателя имеет специальное значение. Если он равен 0, то это адрес конкретного устройства (только в этом случае первые три байта служат для идентификации производителя сетевой платы), а если 1 - широковещательный. Обычно в широковещательном адресе все оставшиеся биты тоже устанавливаются равными единице (FF FF FF FF FF FF). Поле "Адрес отправителя" состоит из 6 байт и содержит физический адрес устройства в сети, которое отправило данный кадр. Первый бит адреса отправителя всегда равен нулю. Поле "Длина/тип" может содержать длину или тип кадра в зависимости от используемого кадра Ethernet. Если поле задаёт длину, она указывается в двух байтах. Если тип - то содержимое поля указывает на тип протокола верхнего уровня, которому принадлежит данный кадр. Например, при использовании протокола IPX поле имеет значение 8137, а для протокола IP - 0800. Поле "Данные" содержит данные кадра. Чаще всего - это информация, нужная протоколам верхнего уровня. Данное поле не имеет фиксированной длины. Поле "Контрольная сумма" содержит результат вычисления контрольной суммы всех полей, за исключением преамбулы, признака начала кадра и самой контрольной суммы. Вычисление выполняется отправителем и добавляется в кадр. Аналогичная процедура вычисления выполняется и на устройстве получателя. В случае, если результат вычисления не совпадает со значением данного поля, предполагается, что произошла ошибка при передаче. В этом случае кадр считается испорченным и игнорируется.
Следует отметить, что минимальная допустимая длина всех четырёх типов кадров Ethernet составляет 64 байта, а максимальная - 1518 байт. Так как на служебную информацию в кадре отводится 18 байт, то поле "Данных" может иметь длину от 46 до 1500 байт. Если передаваемые по сети данные меньше допустимой минимальной длины, кадр будет автоматически дополняться до 46 байт. Столь жёсткие ограничения на минимальную длину кадра введены для обеспечения нормальной работы механизма обнаружения коллизий.
Существуют специальные управляющие кадры, которые не имеют поля данных. Их можно рассматривать как сетевые команды. Управляющие кадры могут выполнять функцию - начала и конца сеанса связи,
- подтверждения приема информационного пакета,
- запроса информационного пакета и т.д.
Пакеты, включающие поле данных, называются информационными пакетами.
В сетях Ethernet каждый хост должен иметь свой уникальный адрес (идентификатор или MAC-адрес), для того чтобы ему можно было адресовать пакеты. Мы рассмотрим адресацию хостов, предложенную международной организацией IEEE. Данный метод адресации заключается в том, что каждому адаптеру сети присваивается уникальный адрес еще на этапе изготовления. Был выбран 48-битный формат адреса, что соответствует примерно 280 триллионам различных адресов. Понятно, что столько сетевых адаптеров никогда не будет выпущено.
С тем чтобы распределить возможные диапазоны адресов между многочисленными изготовителями сетевых адаптеров, была предложена следующая структура адреса (рис. 4): Младшие 24 разряда кода адреса называются OUA (Organizationally Unique Address) – организационно уникальный адрес. Именно их присваивает каждый из зарегистрированных производителей сетевых адаптеров. Всего возможно свыше 16 миллионов комбинаций, то есть каждый изготовитель может выпустить 16 миллионов сетевых адаптеров. Следующие 22 разряда кода называются OUI (Organizationally Unique Identifier) – организационно уникальный идентификатор. IEEE присваивает один или несколько OUI каждому производителю сетевых адаптеров. Это позволяет исключить совпадения адресов адаптеров от разных производителей. Всего возможно свыше 4 миллионов разных OUI, это означает, что теоретически может быть зарегистрировано 4 миллиона производителей. Вместе OUA и OUI называются UAA (Universally Administered Address) – универсально управляемый адрес или IEEE-адрес. Два старших разряда адреса управляющие, они определяют тип адреса, способ интерпретации остальных 46 разрядов. Старший бит I/G (Individual/Group) указывает на тип адреса.
- если в 0, - индивидуальный,
- если в 1, - групповой.
Пакеты с групповым адресом получат все имеющие этот групповой адрес сетевые адаптеры. Причем групповой адрес определяется 46 младшими разрядами. Второй управляющий бит U/L (Universal/Local) называется флажком универсального/местного управления и определяет, как был присвоен адрес данному сетевому адаптеру. Обычно он установлен в 0. Установка бита U/L в 1 означает, что адрес задан не производителем сетевого адаптера, а организацией, использующей данную сеть. Это случается довольно редко.
Для широковещательной передачи (то есть передачи всем абонентам сети одновременно) применяется специально выделенный сетевой адрес, все 48 битов которого установлены в единицу. Его принимают все абоненты сети независимо от их индивидуальных и групповых адресов.
Продолжение здесь
|