Вход/Регистрация
Linux: Полное руководство
вернуться

Аллен Питер В.

Шрифт:

Таблица 27.3 показывает соответствие уровней стека протокола TCP/IP семиуровневой модели OSI.

Соответствие уровней стека TCP/IP модели OSI Таблица 27.3

Уровень модели OSI Протокол Уровень стека TCP/IP
7, 6 WWW (HTTP), FTP, TFTP, SMTP, POP, telnet, WAIS, SNMP 1
5, 4 TCP, UDP 2
3 IP, ICMP, RIP, OSPF, ARP 3
2, 1 Ethernet, PPP, SLIP 4

27.1.2. Структура пакетов IP и TCP

Протокол IP не ориентирован на соединение, поэтому не обеспечивает надежную доставку данных. Поля, описание которых приведено в таблице 27.4, представляют собой IP-заголовок и добавляются к пакету при его получении с транспортного уровня.

Структура заголовка IP-пакета Таблица 27.4

Поле Описание
Source IP-address IP-адрес отправителя пакета
Destination IP-address IP-адрес получателя пакета
Protocol Протокол: TCP или UDP
Checksum Контрольная сумма для проверки целостности пакета
TTL (Time to Live) Время жизни пакета: определяет, сколько секунд дейтаграмма может находиться в сети. Предотвращает бесконечное блуждание пакетов в сети. Значение TTL автоматически уменьшается на одну или более секунд при проходе через каждый маршрутизатор сети
Version Версии протокола IP — 4 или 6 (4 бита)
Header Length Длина заголовка пакета (4 бита). Минимальный размер заголовка — 20 байтов
Type of Service Тип обслуживания; обозначение требуемого для этого пакета качества обслуживания при доставке через маршрутизаторы IP-сети. Здесь определяются приоритет, задержки, пропускная способность (8 битов)
Total Length Длина дейтаграммы IP-протокола (16 битов)
Identification Идентификатор пакета. Если пакет фрагментирован (разбит на части), то все фрагменты имеют одинаковый идентификатор (15 битов)
Fragmentation Rags 3 бита для флагов фрагментации и 2 бита для текущего использования
Fragmentation Offset Смещение фрагмента: указывает на положение фрагментов относительно начала поля данных IP-пакета. Если фрагментации нет, смещение равно 0x0 (13 битов)
Options and Padding Опции

Протокол TCP в отличие от протокола IP ориентирован на установление соединения и обеспечивает надежную доставку данных. Структура TCP-пакета описана в таблице 27.5.

Структура заголовка TCP-пакета Таблица 27.5

Поле Описание
Source port Порт TCP узла-отправителя
Destination Port Порт TCP узла-получателя
Sequence Number Номер последовательности пакетов
Acknowledgement Number Номер подтверждения: порядковый номер байта, который локальный узел рассчитывает получить следующим
Data Length Длина TCP-пакета
Reserved Зарезервировано для будущего использования
Hags Флаги: описание содержимого сегмента
Window Показывает доступное место в окне протокола TCP
Checksum Контрольная сумма для проверки целостности пакета
Urgent Pointer Указатель срочности: при отправке срочных данных (поле Flags) в этом поле задается граница области срочных данных

27.2 Протокол ICMP

27.2.1. Для чего используется протокол ICMP

Протокол межсетевых управляющих сообщений используется для диагностических целей. Например, система А передала системе Б неверный пакет. Система Б с помощью протокола ICMP может «сказать» системе А, что посланный ею пакет некорректен. Также по этому протоколу производится диагностика сети. Многие из вас используют утилиту ping, чтобы определить, доходят ли отправленные вами пакеты до какой-то определенной машины, даже не подозревая о том, что ping использует как раз протокол ICMP.

С помощью протокола ICMP можно определить не только тип неисправности, но и максимально уточнить ее причину. Например, тип сообщения 3 («Адресат недостижим») свидетельствует о том, что посланный нам пакет не может «добраться» до адресата. Кроме типа сообщения, возвращается его код, позволяющий детализировать неисправность. Например, код 0 означает, что сеть недоступна, 1 — узел недоступен. 2 — протокол недоступен и т.д. В таблице 27.8 ниже перечислены типы и коды сообщений ICMP.

Обязательно ли посылать сообщение об ошибке, получив некорректный пакет? Нет, из главы 19 вы узнали, что такие пакеты (например, отправленные на запрещенный для доступа извне порт) можно просто игнорировать. Первый подход «вежливее», второй безопаснее. Представьте, что злоумышленник отправляет с 1000 машин 1000 пакетов с указанием неверного порта на вашу систему. Тогда ваша система только тем и будет заниматься, что отправлять сообщения об ошибках. Это называется атакой на отказ. Конечно, современные брандмауэры позволяют избавиться от этого неприятного явления, но не у всех они установлены и настроены должным образом.

27.2.2. Структура ICMP-пакета

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

Структуры различных ICMP-пакетов отличаются друг от друга в зависимости от типа пакета. Например, пакет, сообщающий о недоступности адресата (Destination Unreachable Message), выглядит так:

Сообщение Destination Unreachable Message Таблица 27.6

Тип Код Контрольная сумма
Не используется
Интернет-заголовок плюс первые 64 бита оригинального сообщения (пакета)

Что такое тип и код, вы уже знаете, с контрольной суммой тоже все ясно. А последнее поле необходимо, поскольку оно поможет идентифицировать процесс, вызвавший ошибку.

Точно такую же структуру имеют сообщение об истечении лимита времени (Time Exceeded Message) и сообщение об обрыве источника Source Quench Message (тип 4).

А вот сообщение о неверном параметре (например, указан неверный номер порта) выглядит уже по-другому (таблица 27.7).

Сообщение Parameter Problem Message Таблица 27.7

Тип Код Контрольная сумма
Указатель Не используется
Интернет-заголовок плюс первые 64 бита оригинального сообщения (пакета)

Поле Указатель в сообщении о неверном параметре (Parameter Problem Message) указывает на то место в заголовке, которое вызвало ошибку.

  • Читать дальше
  • 1
  • ...
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: