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