Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Соглашения о специальных адресах: broadcast, multicast, loopback




В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов:

  • Если IР-адрес состоит только из двоичных нулей, то он обозначает адрес того узла, который сгенерировал этот пакет.
  • Если в поле номера сети стоят двоичные нули, то по умолчанию считается, что этот узел принадлежит той же самой сети, что и узел, который отправил пакет.
  • Если все двоичные разряды IP-адреса равны 1, то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета. Такая рассылка называется ограниченным широковещательным сообщением (limited broadcast).
  • Если в поле адреса назначения стоят сплошные 1, то пакет, имеющий такой адрес рассылается всем узлам сети с заданным номером. Такая рассылка называется широковещательным сообщением (broadcast).
  • Адрес 127.0.0.1 зарезервирован для организации обратной связи при тестировании работы программного обеспечения узла без реальной отправки пакета по сети. Этот адрес имеет название loopback.

Уже упоминавшаяся форма группового IP-адреса — multicast — означает, что данный пакет должен быть доставлен сразу нескольким узлам, которые образуют группу с номером, указанным в поле адреса. Узлы сами идентифицируют себя, то есть определяют, к какой из групп они относятся. Один и тот же узел может входить в несколько групп. Такие сообщения в отличие от широковещательных называются мультивещательными. Групповой адрес не делится на поля номера сети и узла и обрабатывается маршрутизатором особым образом.

В протоколе IP нет понятия широковещательности в том смысле, в котором оно используется в протоколах канального уровня локальных сетей, когда данные должны быть доставлены абсолютно всем узлам. Как ограниченный широковещательный IP-адрес, так и широковещательный IP-адрес имеют пределы распространения в интерсети — они ограничены либо сетью, к которой принадлежит узел — источник пакета, либо сетью, номер которой указан в адресе назначения. Поэтому деление сети с помощью маршрутизаторов на части локализует широковещательный шторм пределами одной из составляющих общую сеть частей просто потому, что нет способа адресовать пакет одновременно всем узлам всех сетей составной сети.

Фрагментация

Фрагментация Internet датаграммы необходима, когда эта датаграмма возникает в локальной сети, позволяющей работать с пакетами большого размера, и затем должна пройти к получателю через другую локальную сеть, которая ограничивает пакеты меньшим размером.

Internet датаграмма может быть помечена как нефрагментируемая. Любая Internet датаграмма, помеченная таким образом, не может быть фрагментирована модулем Internet ни при каких условиях. Если же Internet датаграмма, помеченная как не фрагментируемая, тем не менее не может достигнуть получателя без фрагментации, то вместо этого она будет разрушена.

Чтобы расчленить большую Internet датаграмму, модуль протокола Internet (например, шлюз), создает две новые Internet датаграммы и копирует содержимое полей Internet заголовка из большой датаграммы в оба новых Internet заголовка. Данные из старой датаграммы делятся на две части. Первая часть данных помещается в первую новую Internet датаграмму, в поле общей длины помещается длина первой датаграммы. Флаг "more fragments" устанавливается в единицу. Вторая часть данных помещается во вторую новообразованную Internet датаграмму, в поле общей длины заносится длина второй датаграммы. В поле смещения фрагмента во второй Internet датаграмме устанавливается значение относительно такого же поля в исходной большой датаграмме.

Эта процедура может быть обобщена на случай многократного расщепления исходной датаграммы.

Чтобы собрать фрагменты Internet датаграммы, модуль протокола Internet объединяет Internet датаграммы, имеющие одинаковые значения в полях идентификатора, отправителя, получателя и протокола. Собственно объединение заключается в помещении данных из каждого фрагмента в позицию, указанную в заголовке Internet пакета в поле "fragment offset". Первый фрагмент будет иметь в поле "fragment offset" нулевое значение, а последний фрагмент будет иметь флаг "more fragments", вновь установленный в нуль.

Формат заголовка IP

Ниже приведена полная схема полей заголовка Internet.

                                                               
Version IHL Type of Service Total Length
Identification Flags Fragment Offset
Time to Live Protocol Header checksum
Source Address
Destination Address
Options Padding

Каждая позиция соответствует одному биту.

Version (версия) 4 бита.

Поле версии показывает формат заголовка Internet. В работе используется IP версии 4.

IHL (длина Internet заголовка) 4 бита.

Длина Internet заголовка измеряется в словах по 32 бита каждый и указывает на начало поля данных. Корректный заголовок может иметь минимальный размер 5 слов.

Type of Service (тип обслуживания) 8 бит.

Тип обслуживания определяет с помощью неких абстрактных параметров тип требуемого обслуживания. Эти параметры должны использоваться для управления выбором реальных рабочих характеристик при передаче датаграммы через конкретную сеть. екоторые сети осуществляют обслуживание с приоритетом, которое неким образом дает преимущество для продвижения данной датаграммы по сравнению со всеми остальными.

Реально выбор осуществляется между тремя альтернативами: малой задержкой, высокой достоверностью и высокой пропускной способностью.

Total Length (общая длина) 16 бит.

Общая длина — это длина датаграммы, измеренная в октетах, включая Internet заголовок и поле данных. Это поле может задавать длину датаграммы вплоть до 65535 октетов. В большинстве случаев столь большие датаграммы не используются. Все узлы должны быть готовы принимать датаграммы вплоть до 576 октетов длиной (приходят ли они целиком или по фрагментам). Узлам рекомендуется отправлять датаграммы размером более чем 576 октетов, только если они уверены, что принимающий узел готов обслуживать датаграммы повышенного размера.

Identification (идентификатор) 16 бит.

Идентификатор устанавливается отправителем для сборки фрагментов какой-либо датаграммы.

Flags (контрольные биты) 3 бита.

Ниже приведена таблица значений контрольных битов.

Смещение Значение
  Зарезервирован, всегда должен быть ноль
  0 — возможно фрагментирование 1 — запрет фрагментации
  0 — последний фрагмент или нет фрагментации 1 — будут еще фрагменты

Fragment Offset (смещение фрагмента) 13 бит.

Это поле показывает, где в датаграмме находится этот фрагмент. Смещение фрагмента изменяется порциями по 8 октет (64 бита). Первый фрагмент имеет смещение ноль.

Time to Live (Время жизни) 8 бит.

Это поле показывает максимальное время, в течении которого датаграмме позволено находиться в системе Internet. Если это поле имеет значение нуль, то датаграмма должна быть разрушена. Значение этого поля изменяется при обработке заголовка Internet. Время измеряется в секундах. Однако, поскольку каждый модуль, обрабатывающий датаграмму, должен уменьшать значение поля TTL по крайней мере на единицу, даже если он обрабатывает эту датаграмму менее, чем за секунду, то поле TTL следует понимать как максимальный интервал времени, в течении которого датаграмма может существовать.

Protocol (Протокол) 8 бит.

Это поле показывает, какой протокол следующего уровня использует данные из Internet датаграммы. Например, при использовании TCP данное поле будет принимать значение 6.

Header Checksum (Контрольная сумма заголовка) 16 бит.

Поскольку некоторые поля заголовка меняют свое значение (например, время жизни), это значение проверяется и повторно рассчитывается при каждой обработке Internet заголовка.

Source Address (адрес отправителя) 32 бита.

Destination Address (адрес получателя) 32 бита.

Options (опции) поле переменной длины.

Опции могут появиться в датаграммах, а могут и не появляться. Они должны поддерживаться всеми Internet модулями. Не обязательно каждая конкретная датаграмма несет опции, но нести их все же может.

Октет — форма представления восьми бит данных в виде двух шестнадцатиричных цифр.

Для того, чтобы преобразовать в октет восемь двоичных разрядов, нужно перевести двоичное число, которое они образуют, в шестнадцатиричное и, если результат меньше 0x10, дополнить его нулем слева. Например, при преобразовании 00000000, получим 00; 11111111 — FF; 00001111 — 0F.

Стоит подчеркнуть, что один октет всегда содержит восемь бит данных, но далеко не всегда — восьмиразрядное двоичное число.

Чтобы из октета восстановить битовые данные, значение октета следует перевести в двоичное число и дополнить его нулями слева до получения восьми бит данных.

Узел — активный аппаратный элемент сети, на котором выполняется IP модуль. Например, компьютер или брэндмауер.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...