![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Протокол IP (Internet Protocol, Протокол межсетевого взаимодействия) описан в RFC 791. Основная функция протокола IP – передача пакетов между узлами, принадлежащими к разным подсетям, через промежуточные подсети. Каждый пакет (дейтаграмма – datagram, в терминологии TCP/IP) обрабатывается независимо от других. Доставка дейтаграмм не гарантируется. Возможны потери дейтаграмм, доставка с ошибками, дублирование и нарушение порядка следования. Вторая функция протокола IP – выполнение фрагментации пакетов при передаче их между сетями с разным максимально допустимым размером поля данных кадра (MTU).
Существенное свойство протокола IP состоит в нетрадиционном порядке передачи битов: байт передается, начиная со старшего бита. Кроме того, нумерация битов в байте также начинается со старшего: самый старший бит имеет номер 0, самый младший – номер 7.
Дейтаграмма (IP-пакет) состоит из заголовка и поля данных.
Формат заголовка приведен на рис.13.2.
Номер версии | Длина заголовка | Тип сервиса | Общая длина |
Идентификатор “большого пакета” | Флаги | Смещение фрагмента | |
Время жизни | Протокол | Контрольная сумма заголовка | |
Адрес отправителя | |||
Адрес получателя | |||
Опции (переменная длина) | Выравнивание до 32-битной границы (заполнение нулями) |
Рис.13.2 Формат заголовка IP-пакета
Номер версии (Version) [4 бита] – указывает используемый формат заголовка. В настоящее время основная используемая версия имеет номер 4.
Длина заголовка (Internet Header Length) [4 бита] – длина заголовка в 32-битных словах, минимальное допустимое значение – 5 (соответствует длине заголовка в 20 байт). Максимальная длина заголовка – 60 байт.
Тип сервиса (Type of Service) [8 бит] – указывает на желаемые параметры качества обслуживания. Формат байта Типа сервиса приведен на рис.13.3.
Приоритет | D | T | R |
Рис.13.3 Структура поля “Приоритет” заголовка IP-пакета
Поле Приоритета (Precedence) для обычных пакетов равно 0, остальные значения (от 1 до 7) используются для служебных целей, чем больше значение, тем выше приоритет.
Поля D (Delay – задержка), T (Throughput – пропускная способность) и R (Reliability – надежность) используются для указания наиболее важного для передающего узла параметра качества. Выбор происходит между малой задержкой, большой пропускной способностью и высокой надежностью. Соответствующий бит (биты) устанавливается в 1, остальные – в 0. Как правило, улучшение одного из параметров связано с ухудшением остальных.
Общая длина (Total Length) [16 бит] – длина дейтаграммы (заголовка и данных) в байтах. Хотя размер поля позволяет создавать дейтаграммы длиной до 65535 байт, стандарт требует, чтобы любой узел мог принимать, как минимум, 576-байтные дейтаграммы, а отправлять дейтаграммы большей длины только, будучи уверенным, что получатель может их принять.
Идентификатор “большого пакета” (Identification) [16 бит] – значение, одинаковое для всех дейтаграмм, содержащих фрагменты одного пакета (“большого пакета”).
Флаги (Flags) [3 бита] – флаги, управляющие фрагментированием:
0 бит – зарезервирован, должен быть равен 0
1 бит (DF, Don’t Fragment) – “0” = можно фрагментировать, “1” = нельзя
фрагментировать
2 бит (MF, More Fragments) – “0” = последний фрагмент, “1” = еще
будут фрагменты
Смещение фрагмента (Fragment Offset) [13 бит] – указывает на место в “большом пакете”, с которого начинаются данные текущей дейтаграммы. Измеряется в 64-битных (8-байтных) словах. Например, Смещение фрагмента, равное 2, означает, что данные текущей дейтаграммы должны находиться в “большом пакете”, начиная с 16-го байта. Первый фрагмент имеет нулевое смещение.
Время жизни (Time to Live, TTL) [8 бит] – максимальное время, которое дейтаграмма может находиться в сети. Каждый маршрутизатор должен уменьшать это значение на единицу, и отбрасывать дейтаграммы со значением TTL = 0 (сообщив об этом отправителю). Наличие этого поля обеспечивает уничтожение “зациклившихся” или “заблудившихся” дейтаграмм. Поле TTL также позволяет ограничить дальность распространения дейтаграммы (это удобно, например, при одновременной передаче множеству абонентов) и является основой для работы утилиты traceroute.
Протокол (Protocol) [8 бит] – указывает, данные какого протокола верхнего уровня передаются в дейтаграмме. Возможные значения этого поля стандартизованы (RFC “Assigned Numbers”), приведем некоторые из них: 1 – ICMP, 4 – IP, 6 – TCP, 17 – UDP, 89 – OSPF.
Контрольная сумма заголовка (Header Checksum) [16 бит] – контрольная сумма всех полей заголовка, вычисляемая как дополнение суммы всех 16-битовых слов заголовка (с нулевыми битами в поле контрольной суммы). Поскольку некоторые поля заголовка (например, время жизни) изменяются при передаче дейтаграммы через сеть, контрольная сумма пересчитывается каждым маршрутизатором. Если получена дейтаграмма с неверной контрольной суммой, такая дейтаграмма отбрасывается.
Адрес отправителя (Source Address) [32 бита] – IP-адрес отправителя дейтаграммы.
Адрес получателя (Destination Address) [32 бита] – IP-адрес получателя дейтаграммы.
Опции (Options) [переменная длина] – необязательное поле, может содержать данные о безопасности, маршрут дейтаграммы (при маршрутизации от источника) и т.д. В одной дейтаграмме может быть несколько опций, каждая из которых состоит из кода опции (1 байт), длины опции (1 байт) и байтов данных опции. Если для опции не нужны дополнительные данные, она состоит из одного байта – кода опции.
Код опции состоит из трех полей:
0 бит (“Копировать”) – “0” = копировать опции во все фрагменты, “1” = копировать опции только в первый фрагмент
1-2 биты (“Класс опции”) – 0 = управление дейтаграммами/сетью, 2 = отладка сети, 1 и 3 = зарезервировано
3-7 биты (“Номер опции”) – номер опции внутри класса, так для класса 0 определено 7 номеров опций, несущих маршруты и данные о безопасности, а для класса 2 – только один номер опции 4, несущей временные метки, используемые при протоколировании следования дейтаграммы по маршруту.
Опции в настоящее время практически не используются.
Дата публикования: 2014-11-04; Прочитано: 348 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!