Данные выравнивания (Padding)
не имеющие смысла данные, включаемые в заголовок только для выравнивания его длины до границы четырехбайтового слова. 3.2. IP-адрес IP-адрес представляет собой четырехбайтовое число, старшие (крайние левые) биты которого определяют класс IP-адреса. Для классов А, В и С четыре байта адреса делятся между идентификатором (номером) сети и идентификатором (номером) узла в сети как это показано на рис. 3.2.
Сети классов А, В и С абсолютно равноправны и отличаются лишь допустимым количеством узлов в них. Идентификаторы узлов, состоящие из одних нулевых или единичных битов имеют специальный смысл: · IP-адрес с нулевым идентификатором узла используется для обозначения сети в целом; · IP-адрес с идентификатор узла в виде единичных битов является широковещательным (broadcast) адресом.
IP-адреса принято записывать в так называемой "точечной нотации" - в виде последовательности разделенных точками четырех десятичных (или шестнадцатиричных с префиксом Ох) чисел, представляющих значения отдельных байтов. Каждый узел в сети имеет, по крайней мере, один уникальный IP-адрес. Кроме классов А, В и С существуют еще два класса IP-адресов - D и Е (см. рис. 3.3).
Класс D используется для организации многопунктового (multicast) режима посылки сообщений: IP-сегмент, посылаемый по по IP-адресу класса D, доставляется всем узлам сети, имеющим указанный идентификатор группы узлов. Описание данного режима дано в RFC 1112.
Примечание. Не все современные реализации протоколов TCP/IP поддерживают многопунктовое вещание.
Для обеспечения гибкости при создании и администрировании сетей различного размера в 1985 г. было введено понятие "подсеть" (RFC 950), позволяющее использовать один и тот же IP-адрес классов А,В или С для разных подсетей.
Такая возможность обеспечивается специальной битовой маской (netmask), ассоциированной с IP-адресом и определяющей распределение битов IP-адреса между идентификатором подсети и идентификатором узла. Пусть, например, IP-адрес класса С 194.85.36.0 планируется использовать для организации четырех подсетей. Это потребует выделения двух битов из части IP-адреса, относящейся к идентификатору узла. Такое "перепланирование" структуры IP-адреса реализуется сетевой маской 255.255.255.192, где десятичное 192 - это двоичное 11000000. Эта сетевая маска формирует IP-адрес не из двух, а из трех компонент: · идентификатор сети (24 бита); · идентификатор подсети (2 бита); · идентификатор узла (6 бит).
Каждая из четырех образованных подсетей может иметь до 62 узлов с идентификаторами от 1 до 62, идентификатор узла с номером 63 является широковещательным идентификатором для подсети. Примечание. Для идентификатора подсети можно выделять только старшие (самые левые) биты из части IP-адреса, отводимой под идентификатор узла. Примечание. Возможность разбиения сетей на подсети обусловливается, в первую очередь, средствами маршрутизации IP-сегментов, а не средствами IP-модулей, формирующих и обрабатывающих IP-сегменты. Примечание. Некоторые современные реализации протоколов маршрутизации для TCP/IP позволяют выделять "подподсети" в подсетях.
3.3. Фрагментация IP-сегментов Для того, чтобы существовала возможность передачи IP-сегментов через сети различного типа, межсетевой протокол обеспечивает адаптацию их размера к требованиям каждой сети. Это дает возможность, например, IP-сегментам, порожденным в сети на базе Ethernet (максимальный размер кадра - 1526 байт), беспрепятственно перемещаться до адресата по сети на базе Х.25 (максимальный размер кадра - 128 байт). Изменение размера IP-сегмента в процессе перемещения по сети может быть связано и с соображениями эффективности передачи.
Изменение размера IP-сегмента реализуется механизмом, называемым фрагментацией. IP-модуль на любом узле сети должен иметь возможность: 1. разбивать полученный им IP-сегмент на IP-фрагменты необходимого размера перед их передачей через конкретную сеть; 2. восстанавливать исходный IP-сегмент из получаемых им IP-фрагментов.
Каждый IP-фрагмент представляет собой полноценный IP-сегмент со своим собственным IP-заголовком. Однако заголовки всех IP-фрагментов содержат одинаковый идентификатор, совпадающий с идентификатором исходного IP-сегмента. Это позволяет распознавать все IP-фрагменты, относящиеся к одному исходному IP-сегменту. IP-фрагменты в своих заголовках содержат поле "Смещение фрагмента", описывающее смещение данных IP-фрагмента в данных исходного IP-сегмента. Это поле позволяет корректно восстановить данные исходного IP-сегмента в принимающем IP-фрагменты узле даже в ситуации, когда IP-фрагменты приходят в порядке, от порядка их посылки (такое вполне возможно, т.к. IP-фрагменты могут следовать от источника к адресату по разным маршрутам). Рассмотрим процесс фрагментации более подробно на следующем примере. IP-модуль на некотором узле получил IP-сегмент с идентификатором 9876 и данными длиной 300 байт (при этом бит запрета фрагментации DF установлен в 0). Этот IP-сегмент должен быть передан дальше к адресату через сеть, максимальный размер кадра которой равен 128 байтам. Рис. 3.4 схематично представляет разбиение исходного IP-сегмента на 3 IP-фрагмента. Рис. 3.4
IP-фрагмент 1 содержит в своем заголовке следующую информацию: 1. 1. идентификатор - 9876; 2. длина заголовка - 5 (четырехбайтных слов); 3. длина сегмента - 124 (байт); 4. бит МР - 1; 5. смещение фрагмента - 0 (восьмибайтных единиц).
IP-фрагмент 2 содержит в своем заголовке следующую информацию: 1. 1. идентификатор - 9876; 2. длина заголовка - 5 (четырехбайтных слов); 3. длина сегмента - 124 (байт); 4. бит МР- 1; 5. смещение фрагмента - 13 (восьмибайтных единиц).
IP-фрагмент 3 содержит в своем заголовке следующую информацию: 1. 1. идентификатор - 9876; 2. длина заголовка - 5 (четырехбайтных слов);
3. длина сегмента - 1 12 (байт); 4. битМР-0; 5. смещение фрагмента - 26 (восьмибайтных единиц).
Заметим, что т.к. смещение фрагмента измеряется в восьмибайтных единицах, то длина данных в каждом IP-фрагменте (кроме последнего в цепочке) обязательно должна быть кратна 8. Вот почему в нашем примере это 104 байта (13 восьмибайтных единиц), а не 108, как допускает максимальная длина кадра в 128 байт (128 - 20 - 108, где 20 – длина заголовка). IP-модуль на принимающем IP-фрагменты узле в ситуации, когда он должен транслировать IP-сегмент далее по сети, имеет три варианта действий с фрагментами; 1. переслать IP-фрагменты далее неизменными; 2. разбить (если в этом есть необходимость) полученные IP-фрагменты на более 3. восстановить исходный IP-сегмент из фрагментов.
В работе с IP-фрагментами на принимающей стороне используется специальный таймер, который с приходом первого фрагмента IP-сегмента устанавливается в исходное состояние (для UNIX-реализаций это, обычно, 30 сек) и начинает обратный счет. До момента обнуления таймера должны прийти все IP-фрагменты, относящиеся к этому сегменту. Если этого не произойдет, то все частично полученные данные IP-сегмента сбрасываются, а сам IP-сегмент считается утерянным. 3.4. Дополнительные данные IP-заголовка Ниже кратко описываются дополнительные данные, которые могут включаться в IP-заголовок в случае необходимости.
Предписываемый маршрут список IP-адресов узлов сети, через которые должен следовать до адресата IP-сегмент. Предписываемый маршрут может быть "строгим" или "мягким". В первом случае IP-сегмент должен следовать строго только по указанным в списке узлам сети, во втором - допустимо прохождение через любые промежуточные узлы, не указанные в списке.
Пройденный маршрут список IP-адресов узлов сети, которые посетил IP-сегмент по пути к адресату. Каждый транзитный узел, через который следует IP-сегмент, помещает в этот список свой IP-адрес.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|