14.2. Структура ip-пакета
IP-пакет состоит из заголовка и поля данных. Заголовок, как правило, имеющий длину 20 байт, имеет следующую структуру (рис. 14.1).
Рис. 14.1. Структура заголовка IP-пакета
Поле Номер версии (Version), занимающее 4 бит, указывает версию протокола IP. Сейчас повсеместно используется версия 4 (IPv4), и готовится переход на версию 6 (IPv6).
Поле Длина заголовка (IHL) IP-пакета занимает 4 бит и указывает значение длины заголовка, измеренное в 32-битовых словах. Обычно заголовок имеет длину в 20 байт (пять 32-битовых слов), но при увеличении объема служебной информации эта длина может быть увеличена за счет использования дополнительных байт в поле Опции (IP Options). Наибольший заголовок занимает 60 октетов.
Поле Тип сервиса (Type of Service) занимает один байт и задает приоритетность пакета и вид критерия выбора маршрута. Первые три бита этого поля образуют подполе приоритета пакета (Precedence). Приоритет может иметь значения от самого низкого - 0 (нормальный пакет) до самого высокого - 7 (пакет управляющей информации). Маршрутизаторы и компьютеры могут принимать во внимание приоритет пакета и обрабатывать более важные пакеты в первую очередь. Поле Тип сервиса содержит также три бита, определяющие критерий выбора маршрута. Реально выбор осуществляется между тремя альтернативами: малой задержкой, высокой достоверностью и высокой пропускной способностью. Установленный бит D (delay) говорит о том, что маршрут должен выбираться для минимизации задержки доставки данного пакета, бит Т - для максимизации пропускной способности, а бит R - для максимизации надежности доставки. Во многих сетях улучшение одного из этих параметров связано с ухудшением другого, кроме того, обработка каждого из них требует дополнительных вычислительных затрат. Поэтому редко, когда имеет смысл устанавливать одновременно хотя бы два из этих трех критериев выбора маршрута. Зарезервированные биты имеют нулевое значение.
Поле Общая длина (Total Length) занимает 2 байта и означает общую длину пакета с учетом заголовка и поля данных. Максимальная длина пакета ограничена разрядностью поля, определяющего эту величину, и составляет 65 535 байт, однако в большинстве хост-компьютеров и сетей столь большие пакеты не используются. При передаче по сетям различного типа длина пакета выбирается с учетом максимальной длины пакета протокола нижнего уровня, несущего IP-пакеты. Если это кадры Ethernet, то выбираются пакеты с максимальной длиной в 1500 байт, умещающиеся в поле данных кадра Ethernet. В стандарте предусматривается, что все хосты должны быть готовы принимать пакеты вплоть до 576 байт длиной (приходят ли они целиком или по фрагментам). Хостам рекомендуется отправлять пакеты размером более чем 576 байт, только если они уверены, что принимающий хост или промежуточная сеть готовы обслуживать пакеты такого размера.
Поле Идентификатор пакета (Identification) занимает 2 байта и используется для распознавания пакетов, образовавшихся путем фрагментации исходного пакета. Все фрагменты должны иметь одинаковое значение этого поля.
Поле Флаги (Flags) занимает 3 бита и содержит признаки, связанные с фрагментацией. Установленный бит DF (Do not Fragment) запрещает маршрутизатору фрагментировать данный пакет, а установленный бит MF (More Fragments) говорит о том, что данный пакет является промежуточным (не последним) фрагментом. Оставшийся бит зарезервирован.
Поле Смещение фрагмента (Fragment Offset) занимает 13 бит и задает смещение в байтах поля данных этого пакета от начала общего поля данных исходного пакета, подвергнутого фрагментации. Используется при сборке/разборке фрагментов пакетов при передачах их между сетями с различными величинами MTU. Смещение должно быть кратно 8 байт.
Поле Время жизни (Time to Live) занимает один байт и означает предельный срок, в течение которого пакет может перемещаться по сети. Время жизни данного пакета измеряется в секундах и задается источником передачи. На маршрутизаторах и в других узлах сети по истечении каждой секунды из текущего времени жизни вычитается единица; единица вычитается и в том случае, когда время задержки меньше секунды. Поскольку современные маршрутизаторы редко обрабатывают пакет дольше, чем за одну секунду, то время жизни можно считать равным максимальному числу узлов, которые разрешено пройти данному пакету до того сак он достигнет места назначения. Если параметр времени жизни станет нулевым до того, как пакет достигнет получателя, этот пакет будет уничтожен. Время жизни можно рассматривать как часовой механизм самоуничтожения. Значение этого поля изменяется при обработке заголовка IP-пакета.
Идентификатор Протокол верхнего уровня (Protocol) занимает один байт и указывает, какому протоколу верхнего уровня принадлежит информация, размещения в поле данных пакета (например, это могут быть сегменты протокола TCP (дейтаграммы UDP, пакеты ICMP или OSPF). Значения идентификаторов для различных протоколов приводятся в документе RFC “Assigned Numbers”.
Контрольная сумма (Header Checksum)занимает 2 байта и рассчитывается только по заголовку. Поскольку некоторые поля заголовка меняют свое значение в процессе передачи пакета по сети (например, время жизни), контрольная сумма проверяется и повторно рассчитывается при каждой обработке IP-заголовка. Контрольная сумма - 16 бит - подсчитывается как дополнение к сумме всех 16-битовых слов заголовка. При вычислении контрольной суммы значение самого поля “контрольная сумма” устанавливается в нуль. Если контрольная сумма неверна, о пакет будет отброшен, как только ошибка будет обнаружена.
Поля IP-адрес источника (Source IP Address) и IP-адрес назначения (Destination Address) имеют одинаковую длину - 32 бита - и одинаковую структуру.
Поле Опции (IP Options) является необязательным и используется обычно только при отладке сети. Механизм опций предоставляет функции управления, которые необходимы или просто полезны при определенных ситуациях, однако он не нужен при обычных коммуникациях. Это поле состоит из нескольких подполей, каждое из которых может быть одного из восьми предопределенных типов. В этих подполях можно указывать точный маршрут прохождения маршрутизаторов, регистрировать проходимые пакетом маршрутизаторы, помещать данные системы безопасности, а также временные отметки. Так как число подполей может быть произвольным, то в конце поля Опции должно быть добавлено несколько байт для выравнивания заголовка пакета по 32-битной границе.
Поле Выравнивание (Padding) используется для того, чтобы убедиться в том, то IP-заголовок заканчивается на 32-битной границе. Выравнивание осуществляется нулями.
Ниже приведена распечатка значений полей заголовка одного из реальных IP-пакетов, захваченных в сети Ethernet средствами анализатора протоколов Microsoft Network Monitor.
IP: Version = 4 (0х4)
IP: Header Length = 20 (0х14)
IP: Service Type = 0 (0х0)
IP: Precedence = Routine
IP: ...0.... = Normal Delay
IP: ....0... = Normal Throughput
IP: .....0.. = Normal Reliability
IP: Total Length = 54 (0х36)
IP: Identification = 31746 (0x7C02)
IP: Flags Summary = 2 (0х2)
IP: .......0 = Last fragment in datagram
IP: ......1. = Cannot fragment datagram
IP: Fragment Offset = 0 (0х0) bytes
IP: Time to Live = 128 (0х80)
IP: Protocol = TCP - Transmission Control
IP: Checksum = OxEB86
IP: Source Address = 194.85.135.75
IP: Destination Address = 194.85.135.66
IP: Data: Number of data bytes remaining = 34 (0х0022)
- Раздел I. Общие принципы построения вычислительных сетей 3
- Многотерминальные системы – прообраз сети
- Появление глобальных сетей
- Первые локальные сети
- Создание стандартных технологий локальных сетей
- Современные тенденции
- 1.2. Вычислительные сети - частный случай распределенных систем
- Мультипроцессорные компьютеры
- Многомашинные системы
- Вычислительные сети
- Распределенные программы
- 1.3. Что дает предприятию использование сетей
- 2. Основные проблемы построения сетей
- 2.1. Проблемы физической передачи данных по линиям связи
- 2.2. Проблемы объединения нескольких компьютеров
- Топология физических связей
- Организация совместного использования линий связи
- Адресация компьютеров
- 2.3. Ethernet - пример стандартного решения сетевых проблем
- 2.4. Структуризация как средство построения больших сетей
- Физическая структуризация сети
- Логическая структуризация сети
- 2.5. Сетевые службы
- 3. Модель взаимодействия открытых систем и проблемы стандартизации
- 3.1. Многоуровневый подход. Протокол. Интерфейс. Стек протоколов
- 3.2. Модель osi
- 3.3. Уровни модели osi Физический уровень
- Канальный уровень
- Сетевой уровень
- Транспортный уровень
- Сеансовый уровень
- Представительный уровень
- Прикладной уровень
- Сетезависимые и сетенезависимые уровни
- 3.4. Стандартные стеки коммуникационных протоколов
- Стек tcp/ip
- Стек ipx/spx
- Стек NetBios/smb
- 4. Локальные и глобальные сети. Требования, предъявляемые к современным вычислительным сетям
- 4.1. Локальные и глобальные сети
- 4.2 Требования, предъявляемые к современным вычислительным сетям
- Производительность
- Надежность и безопасность
- Расширяемость и масштабируемость
- Прозрачность
- Поддержка разных видов трафика
- Управляемость
- Совместимость
- Раздел II. Основы передачи дискретных данных
- 5. Линии связи
- 5.1. Типы линий связи
- 5.2. Аппаратура линий связи
- 5.3. Характеристики линий связи
- Амплитудно-частотная характеристика, полоса пропускания и затухание
- Пропускная способность линии
- Связь между пропускной способностью линии и ее полосой пропускания
- Помехоустойчивость и достоверность
- 10 Log Рвых/Рнав ,
- 5.4. Стандарты кабелей
- Кабели на основе неэкранированной витой пары
- Кабели на основе экранированной витой пары
- Коаксиальные кабели
- Волоконно-оптические кабели
- 6. Методы передачи дискретных данных на физическом уровне
- 6.1. Аналоговая модуляция
- Методы аналоговой модуляции
- Спектр модулированного сигнала
- 6.2. Цифровое кодирование
- Требования к методам цифрового кодирования
- Потенциальный код без возвращения к нулю
- Метод биполярного кодирования с альтернативной инверсией
- Потенциальный код с инверсией при единице
- Биполярный импульсный код
- Манчестерский код
- Потенциальный код 2b1q
- 6.3. Логическое кодирование
- Избыточные коды
- Скрэмблирование
- 6.4. Дискретная модуляция аналоговых сигналов
- 6.5. Асинхронная и синхронная передачи
- 7. Методы передачи данных канального уровня. Методы коммутации
- 7.1. Методы передачи данных канального уровня
- Асинхронные протоколы
- Синхронные символьно-ориентированные и бит-ориентированные протоколы
- Символьно-ориентированные протоколы
- Бит-ориентированные протоколы
- Протоколы с гибким форматом кадра
- Передача с установлением соединения и без установления соединения
- Обнаружение и коррекция ошибок
- Методы обнаружения ошибок
- Методы восстановления искаженных и потерянных кадров
- Компрессия данных
- 7.2. Методы коммутации
- Коммутация каналов
- Коммутация каналов на основе частотного мультиплексирования
- Коммутация каналов на основе разделения времени
- Общие свойства сетей с коммутацией каналов
- Обеспечение дуплексного режима работы на основе технологий fdm, tdm и wdm
- Коммутация пакетов. Принципы коммутации пакетов
- Виртуальные каналы в сетях с коммутацией пакетов
- Пропускная способность сетей с коммутацией пакетов
- Коммутация сообщений
- Раздел III. Базовые технологии локальных сетей
- 10. Технологии Token Ring, fddi, Fast Ethernet
- 10.1. Технология Token Ring (802.5) Основные характеристики технологии
- Маркерный метод доступа к разделяемой среде
- Форматы кадров Token Ring
- Кадр данных и прерывающая последовательность
- Приоритетный доступ к кольцу
- Физический уровень технологии Token Ring
- Раздел IV. Построение локальных сетей по стандартам физического и канального уровней
- 11. Кабельная система. Концентраторы и сетевые адаптеры
- 11.1. Структурированная кабельная система
- Иерархия в кабельной системе
- Выбор типа кабеля для горизонтальных подсистем
- Выбор типа кабеля для вертикальных подсистем
- Выбор типа кабеля для подсистемы кампуса
- 11.2. Концентраторы и сетевые адаптеры
- Сетевые адаптеры
- Классификация сетевых адаптеров
- Концентраторы
- Поддержка резервных связей
- Защита от несанкционированного доступа
- Многосегментные концентраторы
- Управление концентратором по протоколу snmp
- Конструктивное исполнение концентраторов
- Раздел V. Сетевой уровень как средство построения больших сетей
- 13.Ip-сети. Адресация в ip-сетях
- 13.1. Принципы объединения сетей на основе протоколов сетевого уровня
- Ограничения мостов и коммутаторов
- Понятие internetworking
- Функции маршрутизатора
- Реализация межсетевого взаимодействия средствами tcp/ip
- Многоуровневая структура стека tcp/ip
- Уровень межсетевого взаимодействия
- Основной уровень
- Прикладной уровень
- Уровень сетевых интерфейсов
- Соответствие уровней стека tcp/ip семиуровневой модели iso/osi
- 13.2. Адресация в ip-сетях Типы адресов стека tcp/ip
- Классы ip-адресов
- Особые ip-адреса
- Использование масок в ip-адресации
- Порядок распределения ip-адресов
- Автоматизация процесса назначения ip-адресов
- Отображение ip-адресов на локальные адреса
- Отображение доменных имен на ip-адреса
- Система доменных имен dns
- 14. Протокол ip
- 14.1. Основные функции протокола ip
- 14.2. Структура ip-пакета
- 14.3. Таблицы маршрутизации в ip-сетях
- Примеры таблиц различных типов маршрутизаторов
- Назначение полей таблицы маршрутизации
- Источники и типы записей в таблице маршрутизации
- 14.4. Маршрутизация без использования масок
- 14.5. Маршрутизация с использованием масок Использование масок для структуризации сети
- Использование масок переменной длины
- Технология бесклассовой междоменной маршрутизации cidr
- 14.6. Фрагментация ip-пакетов
- 14.7. Протокол надежной доставки tcp-сообщений
- Сегменты и потоки
- Соединения
- Реализация скользящего окна в протоколе tcp