Протокол ip
Протокол IP (InternetProtocol, Протокол межсетевого взаимодействия) описан в RFC 791. Основная функция протокола IP – передача пакетов между узлами, принадлежащими к разным подсетям, через промежуточные подсети. Каждый пакет (дейтаграмма –datagram, в терминологии TCP/IP) обрабатывается независимо от других. Доставка дейтаграмм не гарантируется. Возможны потери дейтаграмм, доставка с ошибками, дублирование и нарушение порядка следования. Вторая функция протокола IP – выполнение фрагментации пакетов при передаче их между сетями с разным максимально допустимым размером поля данных кадра (MTU).
Существенное свойство протокола IP состоит в нетрадиционном порядке передачи битов: байт передается, начиная со старшего бита. Кроме того, нумерация битов в байте также начинается со старшего: самый старший бит имеет номер 0, самый младший – номер 7.
Дейтаграмма (IP-пакет) состоит из заголовка и поля данных.
Формат заголовка приведен на рис.13.2.
Номер версии | Длина заголовка | Тип сервиса | Общая длина | |
Идентификатор “большого пакета” | Флаги | Смещение фрагмента | ||
Время жизни | Протокол | Контрольная сумма заголовка | ||
Адрес отправителя | ||||
Адрес получателя | ||||
Опции (переменная длина) | Выравнивание до 32-битной границы (заполнение нулями) |
Рис.13.2 Формат заголовка IP-пакета
Номер версии (Version) [4 бита] – указывает используемый формат заголовка. В настоящее время основная используемая версия имеет номер 4.
Длина заголовка (InternetHeaderLength) [4 бита] – длина заголовка в 32-битных словах, минимальное допустимое значение – 5 (соответствует длине заголовка в 20 байт). Максимальная длина заголовка – 60 байт.
Тип сервиса (Type of Service) [8 бит] – указывает на желаемые параметры качества обслуживания. Формат байта Типа сервиса приведен на рис.13.3.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Приоритет | D | T | R | 0 | 0 |
Рис.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’tFragment) – “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“AssignedNumbers”), приведем некоторые из них: 1 – ICMP, 4 – IP, 6 – TCP, 17 – UDP, 89 – OSPF.
Контрольная сумма заголовка (HeaderChecksum) [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, несущей временные метки, используемые при протоколировании следования дейтаграммы по маршруту.
Опции в настоящее время практически не используются.
- Содержание
- Раздел III. Глобальные сети
- Организация составных сетей
- Составные сети
- Принципы маршрутизации
- Стек протоколов tcp/ip
- Система адресации в tcp/ip
- Протокол ip
- ФрагментацияIp-пакетов
- Протокол arp
- Протокол icmp
- Базовые утилиты для тестирования сетейTcp/ip
- Протоколы транспортного уровня
- ПротоколUdp
- ПротоколTcp
- Протоколы и службы на основе tcp/ip
- СлужбаDns
- Протокол сетевого управленияSnmp
- Технологии X.25, frame relay, pdh, sdh
- ТехнологияX.25
- Технология Frame Relay
- Структура кадраFrame Relay
- Плезиохронная цифровая иерархия
- Синхронная цифровая иерархия
- Технологии isdn и atm
- Технология isdn
- Интерфейсы isdn
- Технология atm
- Основные принципы технологии atm
- Стек протоколов atm
- Уровень адаптацииAal
- Технологии распределенных вычислений
- Удаленный вызов процедур