Close Menu
Український телекомунікаційний портал
    Facebook X (Twitter) Instagram Threads
    Український телекомунікаційний портал
    • Новини
    • Мобільна техніка
    • Технології
    • ПЗ
    • Наука
    • Транспорт
    • Дім
    • Обладнання
    • Здоров’я
    Facebook X (Twitter) YouTube Telegram
    Український телекомунікаційний портал
    Home»Статті»Протоколи та стандарти»IP-протокол
    Протоколи та стандарти

    IP-протокол

    ВолодимирBy Володимир04.06.20107 коментарів12 Mins Read
    Facebook Twitter Email Telegram Copy Link

    В Интернет используется много различных типов пакетов, но один из основных – IP-пакет (RFC-791), именно он вкладывается в кадр Ethernet и именно в него вкладываются пакеты UDP, TCP. IP-протокол предлагает ненадежную транспортную среду. Ненадежную в том смысле, что не существует гарантии благополучной доставки IP-дейтаграммы.

    Алгоритм доставки в рамках данного протокола предельно прост: при ошибке дейтаграмма выбрасывается, а отправителю посылается соответствующее ICMP-сообщение (или не посылается ничего). Обеспечение же надежности возлагается на более высокий уровень (UDP или TCP). Формат IP-пакетов показан на рисунке 4.4.1.1.

    Рис. 4.4.1.1. Формат дейтаграммы Интернет

    Поле версия характеризует версию IP-протокола (например, 4 или 6). Формат пакета определяется программой и, вообще говоря, может быть разным для разных значений поля версия. Только размер и положение этого поля незыблемы. Поэтому в случае изменений длины IP-адреса слишком тяжелых последствий это не вызовет. Понятно также, что значение поля версия во избежании непредсказуемых последствий должно контролироваться программой. HLEN – длина заголовка, измеряемая в 32-разрядных словах, обычно заголовок содержит 20 октетов (HLEN=5, без опций и заполнителя). Поле полная длина определяет полную длину IP-дейтаграммы (до 65535 октетов), включая заголовок и данные. Одно-октетное поле тип сервиса (TOS – type of service) характеризует то, как должна обрабатываться дейтаграмма. Это поле делится на 6 субполей:

    Субполе Приоритет предоставляет возможность присвоить код приоритета каждой дейтаграмме. Значения приоритетов приведены в таблице (в настоящее время это поле не используется).

    0   Обычный уровень
    1   Приоритетный
    2   Немедленный
    3   Срочный
    4   Экстренный
    5   ceitic/ecp
    6   Межсетевое управление
    7   Сетевое управление

    Формат поля TOS определен в документе RFC-1349. Биты C, D, T и R характеризуют пожелание относительно способа доставки дейтаграммы. Так D=1 требует минимальной задержки, T=1 – высокую пропускную способность, R=1 – высокую надежность, а C=1 – низкую стоимость. TOS играет важную роль в маршрутизации пакетов. Интернет не гарантирует запрашиваемый TOS, но многие маршрутизаторы учитывают эти запросы при выборе маршрута (протоколы OSPF и IGRP). В таблице 4.4.1.1 приведены рекомендуемые значения TOS.

    Табл. 4.4.1.1. Значения TOS для разных протоколов

    Процедура Минимал. задержка Максим. пропускная способность Максим. надежность Минимал. стоимость Код TOS

    FTP управление FTP данные

    1 0 0 0 0x10
    0 1 0 0 0x08
    TFTP 1 0 0 0 0x10
    DNS

    UDP

    TCP

    1 0 0 0
    0 0 0 0 0x10
    0 0 0 0 0x00
    telnet 1 0 0 0 0x10
    ICMP 0 0 0 0 0x00
    IGP 0 0 1 0 0x04

    SMTP управление

    SMTP данные

    1 0 0 0 0x10
    0 1 0 0 0x08
    SNMP 0 0 1 0 0x04
    NNTP 0 0 0 1 0x02

    Только один бит из четырех в TOS может принимать значение 1. Значения по умолчанию равны нулю. Большинство из рекомендаций самоочевидны. Так при telnet наибольшую важность имеет время отклика, а для SNMP (управление сетью) – надежность.

    До середины 90-х годов поле TOS в большинстве реализаций игнорировалось. Но после начала разработок средств обеспечения качества обслуживания (QoS) внимание к этому возрасло. Появилось предложение замены поля TOS на поле DSCP (Differenciated Services Code Point), которое также имеет 8 бит (см. RFC-2474). Смотри рис. 4.4.1.1a. Биты CU пока не определены. Иногда это поле называется байтом DS (Differentiated Services).


    Рис. 4.4.1.1a. Формат поля DSCP.

    Биты DS0-DS5 определяют селектор класса. Значения этого кода представлены в таблице ниже. Стандартным значением DSCP по умолчанию является 000000.

    Селектор класса DSCP
    Приоритет 1 001000
    Приоритет 2 010000
    Приоритет 3 011000
    Приоритет 4 100000
    Приоритет 5 101000
    Приоритет 6 110000
    Приоритет 7 111000

    На базе DSCP разработана технология “пошагового поведения” PHB (per Hop Behavior). В рамках этой политики определяются коды DSCP внутри классов. Например, для политики немедленной переадресации EF рекомендуемое значение DSCP=101110. Эта политика соответствует наиболее высокому уровню обслуживания.

    Маршрут транспортировки IP-дейтаграммы нельзя знать заранее, это связано с поэтапным (по-шаговом) принятием решения о пути каждого пакета. Это свойство маршрутизации обусловлено тем, что IP является протоколом передачи данных без установления соединения.

    Поля идентификатор, флаги (3 бита) и указатель фрагмента (fragment offset) управляют процессом фрагментации и последующей “сборки” дейтаграммы. Идентификатор представляет собой уникальный код дейтаграммы, позволяющий идентифицировать принадлежность фрагментов и исключить ошибки при “сборке” дейтаграмм. Бит 0 поля флаги является резервным, бит 1 служит для управления фрагментацией пакетов (0 – фрагментация разрешена; 1 – запрещена), бит 2 определяет, является ли данный фрагмент последним (0 – последний фрагмент; 1 – следует ожидать продолжения). Поле время жизни (TTL – time to live) задает время жизни дейтаграммы в секундах, т.е. предельно допустимое время пребывания дейтаграммы в системе. При каждой обработке дейтаграммы, например в маршрутизаторе, это время уменьшается в соответствии со временем пребывания в данном устройстве или согласно протоколу обработки. Если TTL=0, дейтаграмма из системы удаляется. Во многих реализациях TTL измеряется в числе шагов, в этом случае каждый маршрутизатор выполняет операцию TTL=TTL-1. TTL помогает предотвратить зацикливание пакетов. Поле протокол аналогично полю тип в Ethernet-кадре и определяет структуру поля данные (см. табл. 4.4.1.2).

    Поле контрольная сумма заголовка вычисляется с использованием операций сложения 16-разрядных слов заголовка по модулю 1. Сама контрольная сумма является дополнением по модулю один полученного результата сложения. Обратите внимание, здесь осуществляется контрольное суммирование заголовка, а не всей дейтаграммы. Поле опции не обязательно присутствует в каждой дейтаграмме. Размер поля опции зависит от того, какие опции применены. Если используется несколько опций, они записываются подряд без каких-либо разделителей. Каждая опция содержит один октет кода опции, за которым может следовать октет длины и серия октетов данных. Если место, занятое опциями, не кратно 4 октетам, используется заполнитель. Структура октета кода опции отражена на рис. 4.4.1.2.

    Таблица 4.4.1.2. Коды протоколов Интернет

    Код протокола Интернет Сокращенное название протокола Описание
    0 – Зарезервировано
    1 ICMP Протокол контрольных сообщений [rfc792]
    2 IGMP Групповой протокол управления [rfc1112]
    3 GGP Протокол маршрутизатор-маршрутизатор [RFC-823]
    4 IP IP поверх IP (инкапсуляция/туннели)
    5 ST Поток [rfc1190]
    6 TCP

    Протокол управления передачей [RFC-793]

    7 UCL UCL
    8 EGP Протокол внешней маршрутизации [RFC-888]
    9 IGP Протокол внутренней маршрутизации
    10 BBN-MON BBN-RCC мониторирование
    11 NVP-II Сетевой протокол для голосовой связи [RFC-741]
    12 PUP PUP
    13 ARGUS argus
    14 Emcon emcon
    15 Xnet Перекрестный сетевой отладчик [IEN158]
    16 Chaos Chaos
    17 UDP Протокол дейтаграмм пользователя [RFC-768]
    18 MUX Мультиплексирование [IEN90]
    19 DCN-MEAS DCN измерительные субсистемы
    20 HMP Протокол мониторирования ЭВМ (host [RFC-869])
    21 PRM Мониторирование при передаче пакетов по радио
    22 XNS-IDP Xerox NS IDP
    23 Trunk-1 Trunk-1
    24 Trank-2 Trunk-2
    25 Leaf-1 Leaf-1
    26 Leaf-2 Leaf-2
    27 RDP Протокол для надежной передачи данных [RFC-908]
    28 IRTP Надежный TP для Интернет [RFC-938]
    29 ISO-TP4 iso транспортный класс 4 [RFC-905]
    30 Netblt Массовая передача данных [RFC-969]
    31 MFE-NSP Сетевая служба MFE
    32 Merit-INP Межузловой протокол Merit
    33 SEP Последовательный обмен
    34 не определен
    35 IDRP Междоменный протокол маршрутизации
    36 XTP Xpress транспортный протокол
    37 DDP Протокол доставки дейтаграмм
    38 IDPR-CMTP IDPR передача управляющих сообщений
    39 TP++ TP++ транспортный протокол
    40 IL IL-транспортный протокол
    41 SIP Простой Интернет-протокол
    42 SDRP Протокол маршрутных запросов для отправителя
    43 SIP-SR SIP исходный маршрут
    44 SIP-Frag SIP-фрагмент
    45 IDRP Интер-доменный маршрутный протокол
    46 RSVP Протокол резервирования ресурсов канала
    47 GRE Общая инкапсуляция маршрутов
    49 BNA BNA
    50 SIPP-ESP SIPP ESЗ
    52 I-NLSP

    Интегрированная система безопасности сетевого уровня

    53 Swipe IP с кодированием
    54 NHRP nbma протокол определения следующего шага
    55-60 не определены
    61 Любой внутренний протокол ЭВМ
    62 CFTP CFTP
    63 Любая локальная сеть
    64 Sat-Expak Satnet и Expak
    65 MIT-Subn Поддержка субсетей MIT
    66 RVD Удаленный виртуальный диск MIT
    67 IPPC IPPC
    68 Любая распределенная файловая система
    69 Sat-Mon Мониторирование Satnet
    70 не определен
    71 IPCV Базовая пакетная утилита
    75 PVP Пакетный видео-протокол
    76 BRsat-Mon Резервное мониторирование Satnet
    78 Wb-mon Мониторирование Expak
    79 Wb-expak Широкополосная версия Expak
    80 ISO-IP iso Интернет протокол
    88 IGRP IGRP (Cisco) – внутренний протокол маршрутизации
    89 OSPFIGP OSPFIGP – внутренний протокол маршрутизации
    92 MTP Транспортный протокол мультикастинга
    101-254 не определены
    255 зарезервировано

    Рис. 4.4.1.2. Формат описания опций

    Флаг копия равный 1 говорит о том, что опция должна быть скопирована во все фрагменты дейтаграммы. При равенстве этого флага 0 опция копируется только в первый фрагмент. Ниже приведены значения разрядов 2-битового поля класс опции:

    Значение поля класс опции Описание
    0 Дейтограмма пользователя или сетевое управление
    1 Зарезервировано для будущего использования
    2 Отладка и измерения (диагностика)
    3 Зарезервировано для будущего использования

    В таблице, которую вы найдете ниже, приведены значения классов и номеров опций.

    Класс опции Номер опции Длина описания Назначение
    0 0 – Конец списка опций. Используется, если опции не укладываются в поле заголовка (смотри также поле “заполнитель”)
    0 1 – Никаких операций (используется для выравнивания октетов в списке опций)
    0 2 11 Ограничения,связанные с секретностью (для военных приложений)
    0 3 *

    Свободная маршрутизация. Используется для того, чтобы направить дейтаграмму по заданному маршруту

    0 7 * Запись маршрута. Используется для трассировки
    0 8 4 Идентификатор потока. Устарело.
    0 9 *

    Жесткая маршрутизация. Используется, чтобы направить дейтаграмму по заданному маршруту

    2 4 * Временная метка Интернет

    * в колонке “длина” – означает – переменная.

    Наибольший интерес представляют собой опции временные метки и маршрутизация. Опция записать маршрут создает дейтаграмму, где зарезервировано место, куда каждый маршрутизатор по дороге должен записать свой IP-адрес (например, утилита traceroute). Формат опции записать маршрут в дейтаграмме представлен ниже на рис. 4.4.1.3 (предусмотрено место для записи 9 IP-адресов, к сожаления, реализация RR не является обязательной):

    Рис. 4.4.1.3 Формат опций записать маршрут

    Поле код содержит номер опции (7 в данном случае). Поле длина определяет размер записи для опций, включая первые 3 октета. Указатель отмечает первую свободную позицию в списке IP-адресов (куда можно произвести запись очередного адреса). Интересную возможность представляет опция маршрут отправителя, которая открывает возможность посылать дейтаграммы по заданному отправителем маршруту. Это позволяет исследовать различные маршруты, в том числе те, которые недоступны через узловые маршрутизаторы. Существует две формы такой маршрутизации: Свободная маршрутизация и Жесткая маршрутизация (маршрутизация отправителя). Форматы для этих опций показаны ниже:

    Рис. 4.4.1.3а. Формат опций маршрутизации

    Жесткая маршрутизация означает, что адреса определяют точный маршрут дейтаграммы. Проход от одного адреса к другому может включать только одну сеть. Свободная маршрутизация отличается от предшествующей возможностью прохода между двумя адресами списка более чем через одну сеть. Поле длина задает размер списка адресов, а указатель отмечает адрес очередного маршрутизатора на пути дейтаграммы.

    IP-слой имеет маршрутные таблицы, которые просматриваются каждый раз, когда IP получает дейтаграмму для отправки. Когда дейтаграмма получается от сетевого интерфейса, IP первым делом проверяет, принадлежит ли IP-адрес места назначения к списку локальных адресов, или является широковещательным адресом. Если имеет место один из этих вариантов, дейтаграмма передается программному модулю в соответствии с кодом в поле протокола. IP-процессор может быть сконфигурирован как маршрутизатор, в этом случае дейтаграмма может быть переадресована в другой узел сети. Маршрутизация на IP-уровне носит пошаговый характер. IP не знает всего пути, он владеет лишь информацией – какому маршрутизатору послать дейтаграмму с конкретным адресом места назначения.

    Просмотр маршрутной таблицы происходит в три этапа:

    1. Ищется полное соответствие адресу места назначения. В случае успеха, пакет посылается соответствующему маршрутизатору или непосредственно интерфейсу адресата. Связи точка-точка выявляются именно на этом этапе.

    2. Ищется соответствие адресу сети места назначения. В случае успеха система действует также как и в предшествующем пункте. Одна запись в таблице маршрутизации соответствует всем ЭВМ, входящим в данную сеть.

    3. Осуществляется поиск маршрута по умолчанию и, если он найден, дейтаграмма посылается в соответствующий маршрутизатор.

    Для того чтобы посмотреть, как выглядит простая маршрутная таблица, воспользуемся командой netstat –rn (ЭВМ Sun. Флаг -r выводит на экран маршрутную таблицу, а -n отображает IP-адреса в цифровой форме. С целью экономии места таблица в несколько раз сокращена).

    routing tables destination gateway flags refcnt use interface
    193.124.225.72 193.124.224.60 ughd 0 61 le0
    192.148.166.1 193.124.224.60 ughd 0 409 le0
    193.124.226.81 193.124.224.37 ughd 0 464 le0
    192.160.233.201 193.124.224.33 ughd 0 222 le0
    192.148.166.234 193.124.224.60 ughd 1 3248 le0
    193.124.225.66 193.124.224.60 ughd 0 774 le0
    192.148.166.10 193.124.224.60 ughd 0 621 le0
    192.148.166.250 193.124.224.60 ughd 0 371 le0
    192.148.166.4 193.124.224.60 ughd 0 119 le0
    145.249.16.20 193.124.224.60 ughd 0 130478 le0
    192.102.229.14 193.124.224.33 ughd 0 13206 le0
    default 193.124.224.33 ug 9 5802624 le0
    193.124.224.32 193.124.224.35 u 6 1920046 le0
    193.124.134.0 193.124.224.50 ugd 1 291672 le0

    Колонка destination – место назначение, Default – отмечает маршрут по умолчанию; Gateway – IP-адреса портов подключения (маршрутизаторов); REFCNT (reference count) – число активных пользователей маршрута; USE – число пакетов, посланных по этому маршруту; interface – условные имена сетевых интерфейсов. Расшифровка поля FLAGS приведено ниже:

    u Маршрут работает (up).
    g

    Путь к маршрутизатору (gateway), если этот флаг отсутствует, адресат доступен непосредственно.

    h

    Маршрут к ЭВМ (host), адрес места назначения является полным адресом этой ЭВМ (адрес сети + адрес ЭВМ). Если флаг отсутствует, маршрут ведет к сети, а адрес места назначения является адресом сети.

    d Маршрут возник в результате переадресации.
    m Маршрут был модифицирован с помощью переадресации.

    Опция временные метки работает также как и опция запись маршрута. Каждый маршрутизатор на пути дейтаграммы делает запись в одном из полей дейтаграммы (два слова по 32 разряда; смотри раздел 4.4.15). Формат этой опции отображен на рисунке 4.4.1.4.

    Рис. 4.4.1.4 Формат опции “временные метки”

    Смысл полей длина и указатель идентичен тому, что сказано о предыдущих опциях. 4-битовое поле переполнение содержит число маршрутизаторов, которые не смогли записать временные метки из-за ограничений выделенного места в дейтаграмме. Значения поля флаги задают порядок записи временных меток маршрутизаторами:

    Таблица 4.4.1.3.

    Значение флага Назначение
    0

    Записать только временные метки; опустить ip-адреса.

    1

    Записать перед каждой временной меткой ip-адрес (как в формате на предыдущем рисунке).

    3

    ip-адреса задаются отправителем; маршрутизатор записывает только временные метки, если очередной IP-адрес совпадает с адресом маршрутизатора

    Временные метки должны содержать время в миллисекундах, отсчитанное от начала суток. Если маршрутизатору некуда положить свою временную метку (число меток превысило 9), он инкрементирует счетчик переполнение.

    Взаимодействие других протоколов с IP можно представить из схемы на рис. 4.4.1.5. В основании лежат протоколы, обеспечивающие обмен информацией на физическом уровне, далее следуют протоколы IP, ICMP, ARP, RARP, IGMP и протоколы маршрутизаторов. Чем выше расположен протокол, тем более высокому уровню он соответствует. Протоколы, имена которых записаны в одной и той же строке, соответствуют одному и тому же уровню. Но все разложить аккуратно по слоям невозможно – некоторые протоколы занимают промежуточное положение, что и отражено на схеме, (области таких протоколов захватывают два уровня. Здесь протоколы IP, ICMP и IGMP помещены на один уровень, для чего имеется не мало причин. Но иногда последние два протокола помещают над IP, так как их пакеты вкладываются в IP-дейтаграммы. Так что деление протоколов по уровням довольно условно. На самом верху пирамиды находятся прикладные программы, хотя пользователю доступны и более низкие уровни (например, ICMP), что также отражено на приведенном рисунке (4.4.1.5).

    Рис. 4.4.1.5. Распределение протоколов Интернет по уровням

    Интернет – это инструмент общения, средство доступа к информации и как всякий инструмент требует практики. Из вашего собственного опыта вы знаете, что можно прочесть ворох инструкций о том, как забивать гвозди, но научиться этому можно лишь на практике. Поэтому рекомендую с самого начала, читая данные тексты, чаще садитесь за терминал.

    Взято с citforum.ru

    Читайте також

    Вплив 5G: розроблено новий протокол вимірювання радіації

    03.01.2025

    Стандарт Wi-Fi 7 офіційно сертифіковано

    09.01.2024

    Apple, Google, Samsung створять стандарт розумних замків та цифрових ключів Aliro

    10.11.2023

    Останні

    Вчені знайшли нову імунну підказку щодо тривалих симптомів COVID

    04.02.2026

    У шахті Південної Дакоти будують детектор для розгадки таємниць антиматерії

    04.02.2026

    Вчені з’ясували, як річка могла текти «вгору»

    04.02.2026

    У Windows 11 з’явилася функція виявлення кіберзагроз

    04.02.2026
    Facebook X (Twitter) YouTube Telegram RSS
    • Контакти/Contacts
    © 2026 Portaltele.com.ua. Усі права захищено. Копіювання матеріалів дозволено лише з активним гіперпосиланням на джерело.

    Type above and press Enter to search. Press Esc to cancel.

    Go to mobile version