Что такое пакеты данных
Пакет (сетевые технологии)
В компьютерных сетях пакет — это определённым образом оформленный блок данных, передаваемый по сети в пакетном режиме. Компьютерные линии связи, которые не поддерживают пакетный режим, как, например, традиционная телекоммуникационная связь точка-точка, передают данные просто в виде последовательности байтов, символов или битов поодиночке. Если данные сформированы в пакеты, битрейт коммуникационной среды можно более эффективно распределить между пользователями, чем в сети с коммутацией каналов. При использовании сетей с коммутацией пакетов можно надёжно гарантировать пороговый битрейт, ниже которого он опускаться не будет.
Содержание
Разметка пакета
Пакет состоит из двух типов данных: управляющей информации и данных пользователя (называемых также полезной нагрузкой). Управляющая информация содержит данные, необходимые для доставки данных пользователя: адреса отправителя и получателя, коды обнаружения ошибок (типа контрольных сумм) и информацию об очерёдности. Как правило, управляющая информация содержится в заголовке и хвосте пакета, а между ними размещаются пользовательские данные.
Различные коммуникационные протоколы используют разные соглашения для разделения элементов и для форматирования данных. В протоколе «двоичной синхронной передачи» пакет отформатирован в 8-битных байтах, а для разделения элементов используются специальные символы. В других протоколах, таких как Ethernet, зафиксировано начало заголовка и элементов данных, их расположение относительно начала пакета. Некоторые протоколы форматируют информацию на уровне битов, а не байтов.
Хорошей аналогией является рассмотрение пакета как письма: заголовок является конвертом, а область данных — это то, что человек вкладывает внутрь конверта. Разница, однако, состоит в том, что некоторые сети могут в случае необходимости разбивать больше пакеты на более мелкие (заметим, что эти меньшие элементы данных также форматируются как пакеты).
При проектировании сети с применением пакетов можно достичь двух важных результатов: обнаружение ошибок и многохостовая адресация.
Обнаружение ошибок
Более эффективным и надёжным методом обнаружения ошибок является расчёт контрольной суммы или циклического избыточного кода над содержимым пакета, чем проверка каждого символа с помощью бита чётности.
Хвостовая часть пакета часто содержит данные проверки ошибок, возникших во время передачи пакета по сети.
Адрес хоста
Современные сети обычно соединяют между собой три или более хоста. В таких случаях заголовок пакета обычно содержит информацию, в которой записан фактический адрес хоста. В сложных сетях, построеннных из нескольких узлов коммутации и маршрутизации, такие как ARPANET или современный интернет, ряд пакетов, отправленных с одного компьютера на другой, может следовать разными маршрутами. Эта технология называется пакетной коммутацией.
Сравнение пакетов и дейтаграмм
Вообще говоря, термин пакет распространяется на любое сообщение, форматированное как пакет, тогда как термин дейтаграмма обычно используется для пакетов «ненадёжных» служб. [1] «Надёжной» является служба, которая уведомляет пользователя, если доставка не удалась, тогда как «ненадёжная» такого уведомления пользователя не делает. Например, IP не обеспечивает надёжный сервис, а TCP и IP вместе его обеспечивают, тогда как UDP с IP надёжный сервис не обеспечивают. Все эти протоколы используют пакеты, но UDP-пакеты, как правило, называют дейтаграммами. [1]
Когда сеть ARPANET впервые выступила с коммутацией пакетов, она обеспечивала надёжную процедуру доставки пакетов к серверам через свой интерфейс 1822. Сервер сети организует данные в пакет нужного формата, вставляет туда адрес компьютера назначения и посылает сообщение через интерфейс процессору передачи сообщений. Как только сообщение доставлено к серверу назначения, на посылающий сервер доставляется подтверждение. Если сеть не может доставить сообщение, на посылающий сервер будет послано извещение об ошибке.
Разработчики CYCLADES и ALOHAnet продемонстрировали, что можно построить эффективную компьютерную сеть, не обеспечивая надёжную передачу пакетов. Этот опыт позже был использован конструкторами Ethernet.
Если сеть не гарантирует доставку пакетов, то сервер становится ответственным за обеспечение надёжности и повторную передачу потерянных пакетов. Последующий опыт показал, что ARPANET сама по себе не может надёжно определить все неудачные доставки пакетов, и это подтолкнуло возложить во всех случаях ответственность за обнаружение ошибок на хост-отправитель. Это привело к появлению принципа сквозной связи, который является одной из фундаментальных основ интернета.
Пример: IP пакет
IP-пакеты состоят из заголовка и полезной нагрузки. Заголовок пакета IPv4 состоит из:
После этих данных могут быть добавлены разное количество необязательных флагов, меняющиеся в зависимости от используемого протокола, затем идут данные, которые переносит пакет. IP-пакет не имеет хвостового прицепа. Однако, IP-пакетов часто переносятся как полезная нагрузка внутри фрейма Ethernet, который имеет свой собственный заголовок и хвост.
Доставка не гарантируется
Многие сети не гарантируют доставку, отсутствие дубликатов пакетов и порядок их доставки, как например, протокол UDP в сети Интернет. Тем не менее, это можно сделать в верхней части пакета услуг транспортного уровня, который может обеспечить такую защиту. TCP и UDP являются лучшими примерами 4 транспортного уровня, одного из семи уровней сетевой модели OSI.
Заголовок пакета определяет тип данных, номер пакета, общее количество пакетов и IP-адреса отправителя и получателя.
Иногда используется термин «кадр» для обозначения пакетов в точности так, как он используется при передаче сигнала по проводам или радио.
Пакетная передача данных
Чаще пользователей интересуют сотовые сети. Второе поколение 2G существенно ускорило пакетную передачу данных. Ключом явилось использование технологии GPRS. Последующие стандарты, включая поколения 5G, считают исключительно надстройками. Сети предпочитают работать со структурированной информацией, добиваясь весомых преимуществ: повышение скорости, возможность коррекции ошибок, оптимизация логистики, постдоставка. Современный интернет – услуга сугубо пакетированная.
Пакет
Пакет – определённым образом сформированный объем данных, передаваемых сетью.
Почему использование упорядоченной структуры позволяет ускорить отправку? Информация будет передаваться небольшими порциями. Вместо частотной, временной коммутации каналов начинают применять пакетную. Аппаратура располагает большими возможностями автоматизации, оптимизации распределения ресурсов меж абонентами. Становится доступным назначить каждому устройству скорость, реализуя заявленные операторами тарифные планы.
Простейшее определение даёт журнал Наука и жизнь (№11, 2000):
Направление в сети интернете выбирает IP-маршрутизатор. Мобильной связью заведуют базовые вышки. Сменяющиеся поколения пакетной передачи заставляют провайдеров модернизировать оборудование. Относиться легкомысленно нельзя – клиенты заклюют. Так Билайн, имевший подавляющее преимущество, отдал ветку первенства МТС. Мегафон идёт вдогонку. Сегодня выигрывает правильно избравший дорогу.
Структура
Преамбулу, формат определяет протокол. Последовательный порт RS-232 предусматривает наличие стартовых битов. Заголовок иногда содержит адрес абонента, обязательно присутствует полезная информация, опционально – контрольная. Длина пакета (MTU), измеряемая байтами, строго фиксирована. Меж посылками соблюдают интервал молчания. Антонимом называют непрерывную передачу информации последовательностью битов.
Структура слоёв OSI:
TCP-сегмент, являющийся составной частью датаграммы IP-протокола, содержит несколько пакетов, разбитых кадрами. Представление данных определено стандартом. PPP использует 8-битные байты, специальные элементы выступают разделителями. Эксперты, объясняя новичкам понятие пакета, предлагают модель письма:
Заголовок IP-пакета содержит следующие набор сведений:
Адрес
Сетевые пакеты снабжены двумя адресами:
Выявление/коррекция ошибок
Поддерживается различными слоями протокола. Распространённые методики контроля:
Иногда возможна модификация битых пакетов промежуточными звеньями передачи.
Счётчик прыжков
Встретив ошибку сети, пакет должен перестать бесцельно грузить сеть. Посланию назначают время жизни. Величина снижается каждой промежуточной точкой. Увидев нулевое время жизни, устройства уничтожают информацию. Сети Ethernet, лишённые возможности контролировать процесс аннулирования, подвергаются широковещательным штормам. Часть вызвана намеренной атакой хакеров.
Длина
Иногда размер указывают прямо, отдельные сети эксплуатируют принцип временного деления канала.
Приоритет
QoS стал притчей во языцех, отнимая 20% полосы пропускания сети, используемой для передачи приоритетных пакетов «срочно».
Полезная нагрузка
Непосредственно информационное сообщение, контрольная информация.
Примеры
Структурированные данные помогли увеличить производительность отдельных областей науки/техники.
Пакетный поток MPEG
Спецификация пакетированной передачи (PES) определена стандартом MPEG-2. Любопытный нюанс: использующие технологию программы ПК выполняют аналогичную работу, минуя сеть.
Заголовок
Опциональный заголовок
Технология призвана ускорить сети второго поколения сотовой связи. Пакетную передачу считают европейским ответом развитию концепции цифровой передачи CDPD (начало 90-х) и режиму i-mode. Основу GPRS составил разработанный ранее (1991-1993) стандарт CELLPAC. Пакетную передачу внедрили в 2000 году, окончив эпоху второго поколения сотовых сетей, создав пристройки:
Стандарт предполагает передачу IP-пакетов, реализуя туннельный протокол.
Функции
Туннельный протокол
Группа протоколов специально предназначена доставлять пакеты посредством беспроводной связи. Используется сетями GSM, UMTS, LTE. LTE существенно увеличивает скорость, благодаря модернизации ядра сети, использованию сигнальных процессоров, структура пакетов наследуется от GPRS и HSPA. Система запрос-ответ блокирует лишний расход ресурсов. Предваряя отправку сообщения, точка оценивает доступность получателя, создаёт туннель – канал передачи информации. Словами 3GPP, туннельный протокол означает – вариант IPv6-интерфейса. Структурно образован тремя составляющими:
Заголовок идентичен TCP/UDP. Пример версии 1:
Туннель позволяет менять абоненту местоположение, заведуя непрерывной передачей информации.
Туннель наводится меж узлами – точками, поддерживающими GPRS. Каждая снабжена входным Gn-интерфейсом. Имеются 2 глобальные разновидности:
Точка доступа
Имеет несколько определений:
После формирования телефоном PDP-пакета выбирается APN (имя точки доступа). Настройки вводят вручную, либо заказывают автоматические. Точка доступа заведует отправкой адресов ДНС-серверу, получением адреса IP ресурса. Затем начинается передача контента:
PDP-контекст
Контекст пакетированного протокола данных (IP, X.25, FrameRelay) – структура, передаваемая участникам связи. Содержит информацию о сессии абонента. Мобильный телефон, запрашивающий информацию, формирует структуру, направляя ближайшему звену цепи:
Опорные точки и интерфейсы
Некоторые экземпляры рассматриваемых структур упоминались выше. Интерфейсы:
GPRS расширял функционал GSM, HSPA выполняет аналогичную роль касательно UMTS. Различаются два подвида:
Потоки разнесены ввиду разных техник, скоростей. Протоколы пакетной передачи удваивают скорости оригинального стандарта.
HSDPA
Усовершенствованный вариант протокола третьего поколения. Чаще называют 3G+, 3.5 G, Turbo G. Представлен пятым релизом 3GPP. Седьмой выпуск ввёл понятие HSPA+, предоставляющий преимущества благодаря:
Наконец, релиз 11 достиг планки 337,5 Мбит/с.
HSUPA
Добавляет новый транспортный канал. Последовали улучшения, дублирующие HSDPA:
Пакетная передача дополнена принципом гарантированного запроса. Оболочка выбирает количество абонентов, устанавливает время связи. Разрешается передача данных без авторизации, используется VoIP. Скорость устанавливается по факту соединения. Контролируемый оболочкой звонок получается заданные характеристики.
Пакет
Пакет также известен как датаграмма. Он состоит из контрольной информации и данных пользователя. С помощью этой контрольной информации, он помогает предоставить данные для доставки полезной нагрузки. Как правило, эта контрольная информация содержится в заголовках пакетов и трейлерах. Модуль данных маршрутизируется между пунктом отправления и пунктом назначения через Интернет или даже к любой другой сети с пакетной коммутацией. [1] Это контейнер или ящик, который передает данные по TCP или IP-сети и внутренним сетям.
Пакет также рассматривается как наиболее фундаментальный логический арбитраж данных, передаваемых по защищенной сети. Кроме того, он представляет собой наименьший объем данных, который может проходить через систему за один раз. Пакет TCP или IP-сети содержит несколько частей информации, которая включает в себя данные, которые он несет, источник назначения IP-адресов, и любые другие ограничения, которые необходимы для качества обслуживания и обработки пакетов. [2]
Cодержание
Функциональность
Когда узел в определенной сети отправляет данные через Интернет, он передает кадр пакетной передачи данных через коммутатор до того, как достигнет маршрутизатора. После просмотра IP-адресов получателя маршрутизатор инкапсулирует данные и направляет их к получателю. Данные, которые будут инкапсулированы в пакет, который будет передаваться по сети. Пакеты содержат два разных типа информации для достижения цели полностью и правильно. Это контрольная информация и информация, которую он будет носить с собой. Управляющая информация имеет адреса назначения источника, формат секвенирования, обнаружение ошибок и механизмы исправления, все это помогает обеспечить оптимальную доставку данных. Обычно он расположен в заголовке и трейлере, который инкапсулирует данные пользователя между ними.
Кроме того, пакет обычно содержит источник, назначение, данные, размер и любую другую полезную информацию, которая поможет пакету добраться до нужного места и собраться заново. Данные, которые будут переданы через Интернет, будут отправлены в виде одного или нескольких пакетов. Наиболее распространенным посылаемым пакетом является пакет TCP. Размер пакета просто ограничен, поэтому большая часть данных, которые будут отправлены по сети, будет разбита на несколько пакетов перед отправкой, и они будут собраны обратно вместе при получении. Когда пакет уже передан по сети, маршрутизаторы и сетевые коммутаторы исследуют пакет и его источник, чтобы помочь направить его в нужное место. [3] Во время передачи сетевые пакеты могут быть сброшены. Если пакет не будет принят или возникнет ошибка, он будет отправлен снова.
Структура пакета
Точная структура пакета зависит от протоколов; обычный пакет обычно включает в себя две секции, заголовок и полезную нагрузку. Раздел полезной нагрузки пакета содержит фактические данные, которые передаются; [4] иногда это небольшая часть файла, страницы веб-сайта или других передач, поскольку отдельные пакеты также относительно малы. Основная функция этих пакетов заключается в том, чтобы эффективно осуществлять передачу данных по сети. Разбиение большого файла на более мелкие пакеты поможет обеспечить успешную передачу каждой секции. Если пакет не будет получен или будет сброшен, необходимо повторно отправить только те пакеты, которые были сброшены. Если при передаче данных возникнет перегрузка сети из-за одновременной передачи нескольких пакетов, оставшиеся пакеты могут быть перенаправлены по менее загруженному пути.
Пакеты различаются в зависимости от структуры и функциональности в зависимости от протоколов, которые будут их реализовывать. Часть коммутации пакетов пропускает пакеты в интернет, и каждый из них находит свой путь к месту назначения более эффективным для отправки пакетов. [5] Этот механизм использует базовую структуру Интернета бесплатно, что считается основной причиной того, что VoIP-вызовы и интернет-вызовы являются наиболее бесплатными или очень дешевыми. Суть в том, что данные передаются в пакетах по цифровым сетям, и все данные, которые мы потребляем, будь то текст, аудио, изображения или видео, разбиваются на пакеты, которые собираются в наших устройствах или компьютерах. По этой причине в некоторых случаях, когда картинка загружается при длительном соединении, кусочки появляются один за другим.
Если какой-либо файл отправляется из одного места в другое в интернете, TCP разделит данные на куски эффективного размера для маршрутизации. Эта схема пакетной коммутации является одним из наиболее эффективных способов обработки передачи данных по беспроводной сети, такой как Интернет.
Компоненты
История
Дональд Дэвис впервые придумал термин «пакет» в 1965 году. Он используется для описания сегмента данных, который передается с одного компьютера или устройства на другой по сети. [6] Он используется, потому что разделяет данные на фрагменты, что помогает более эффективно использовать информацию и предотвращает привязку сетевых ресурсов к одному, большему файлу.
Что такое пакеты данных
Ключевой термин: пакет.
информацию, синхронизирующую передачу.
Данные обычно содержатся в больших по размерам файлах. Однако сети не будут нормально работать, если компьютер посылает этот блок данных целиком. Существует две причины, замедляющие работу сети при передаче по кабелю больших блоков данных.
Во-первых, такой блок, посылаемый одним компьютером, заполняет кабель и «связывает» работу всей сети, т.е. препятствует взаимодействию остальных сетевых компонентов.
Во-вторых, возникновение ошибок при передаче крупных блоков приводит к повторной передаче всего блока. А если поврежден небольшой блок данных, то требуется повторная передача именно этого небольшого блока, что значительно экономит время.
Чтобы быстро и легко, не тратя времени на ожидания, передавать по сети данные, надо разбить их на небольшие управляемые блоки. Эти блоки называются пакетами или кадрами. Хотя термины «пакет» и «кадр» синонимичны, полными синонимами они все-таки не являются. Существуют различия между этими терминами в компьютерных сетях некоторых типов.
При разбиении данных на пакеты сетевая операционная система добавляет к каждому пакету специальную управляющую информацию. Она обеспечивает:
передачу исходных данных небольшими блоками;
сбор данных в надлежащем порядке (при их получении);
проверку данных на наличие ошибок (после сборки).
Пакеты могут содержать несколько типов данных:
информацию (например, сообщения или файлы);
определенные виды данных и команд, управляющих компьютером (например, запросы к службам);
коды управления сеансом (например, запрос на повторную передачу для исправления ошибки).
Некоторые компоненты являются обязательными для всех типов пакетов:
адрес источника (source), идентифицирующий компьютер-отправитель;
адрес местоназначения (destination), идентифицирующий компьютер-получатель;
инструкции сетевым компонентам о дальнейшем маршруте данных;
информация компьютеру-получателю о том, как объединить передаваемый пакет с остальными, чтобы получить данные в исходном виде;
информация для проверки ошибок, обеспечивающая корректность передачи.
Компоненты пакета группируются в три раздела: заголовок, данные и трейлер.
Рисунок 3.3.3. Компоненты пакета
сигнал, «говорящий» о том, что передается пакет;
информацию, синхронизирующую передачу.
Так как обычно размер исходных данных гораздо больше 4 Кб, для помещения в пакет их необходимо разбивать на меньшие блоки. При передаче объемного файла может потребоваться много пакетов.
Рисунок 3.3.4. Сформированный пакет
Формат и размер пакета зависят от типа сети. А максимальный размер пакета определяет, в свою очередь, количество пакетов, которое будет создано сетевой операционной системой для передачи большого блока данных.
Процесс формирования пакета начинается на Прикладном уровне модели OSI, т.е. там, где «рождаются» данные. Информация, которую надо переслать по сети, проходит сверху вниз все семь уровней, начиная с Прикладного.
На каждом уровне компьютера-отправителя к блоку данных добавляется информация, предназначенная для соответствующего уровня компьютера-получателя. Например, информация, добавленная на Канальном уровне компьютера-отправителя, будет прочитана Канальным уровнем компьютера-получателя.
Рисунок 3.3.5. Формирование пакета
Большинство пакетов в сети адресуется конкретному компьютеру, и, как результат, только он один реагирует на них. Каждая плата сетевого адаптера «видит» все пакеты, передаваемые по сегменту кабеля, но только при совпадении адреса пакета с адресом компьютера она прерывает его работу. Используется также и широковещательная адресация (broadcast addressing). На пакет с таким типом адреса одновременно реагирует множество компьютеров в сети.
В крупномасштабных сетях, покрывающих огромные территории (или государства), предлагается несколько возможных маршрутов для передачи данных. Коммутирующие и соединяющие сетевые компоненты используют адресную информацию пакетов для определения наилучшего из маршрутов.
Сетевые компоненты используют адресную информацию пакетов и для других целей: чтобы направлять пакеты по местоназначению и не допускать их в те области сети, к которым они не относятся. В правильной рассылке пакетов ключевую роль играют две функции.
Компьютер может отправить пакет на следующий подходящий сетевой компонент, основываясь на адресе из заголовка пакета.
Компьютер может отбирать определенные пакеты на основе некоторых критериев, например адреса.
При разбиении данных на пакеты сетевая операционная система добавляет к каждому пакету специальную управляющую информацию.
Компоненты пакета группируются в три раздела: заголовок, данные и трейлер.
Формат и размер пакета зависят от типа сети.
Процесс формирования пакета начинается на Прикладном уровне модели OSI.
Информация, которую надо переслать по сети, проходит сверху вниз все семь уровней, начиная с Прикладного.
На каждом уровне компьютера-отправителя к блоку данных добавляется информация, предназначенная для соответствующего уровня компьютера-получателя.
Большинство пакетов в сети адресуется конкретному компьютеру, и, как результат, только он один реагирует на них.
Используется также и широковещательная адресация (broadcast addressing). На пакет с таким типом адреса одновременно реагирует множество компьютеров в сети.
В правильной рассылке пакетов ключевую роль играют две функции: продвижение пакетов и фильтрация пакетов.
Вопросы для самоконтроля
Объясните термин: «пакет».
Для чего данные, передаваемые по компьютерной сети, разбивают на пакеты?
Какую функцию играет специальная управляющая информация, которую сетевая операционная система добавляет к каждому пакету?
Какова структура пакета?
Какие функции в правильной рассылке пакетов играют ключевую роль?
Что означает термин «продвижение» пакетов?
Что означает термин «фильтрация» пакетов?
IP-пакет состоит из заголовка и поля данных. Заголовок, как правило, имеющий длину 20 байт, имеет следующую структуру (рис. 3.3.7).
Поле Номер версии (Version), занимающее 4 бит, указывает версию протокола IP. Сейчас повсеместно используется версия 4 (IPv4), и готовится переход на версию 6 (IPv6).
Поле Длина заголовка (IHL) IP-пакета занимает 4 бит и указывает значение длины заголовка, измеренное в 32-битовых словах. Обычно заголовок имеет длину в 20 байт (пять 32-битовых слов), но при увеличении объема служебной информации эта длина может быть увеличена за счет использования дополнительных байт в поле Опции (IP Options). Наибольший заголовок занимает 60 октетов.
Рисунок 3.3.6. Структура заголовка IP-пакета
Поле Общая длина (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».
Поле Опции (IP Options) является необязательным и используется обычно только при отладке сети. Механизм опций предоставляет функции управления, которые необходимы или просто полезны при определенных ситуациях, однако он не нужен при обычных коммуникациях. Это поле состоит из нескольких подполей, каждое из которых может быть одного из восьми предопределенных типов. В этих подполях можно указывать точный маршрут прохождения маршрутизаторов, регистрировать проходимые пакетом маршрутизаторы, помещать данные системы безопасности, а также временные отметки. Так как число подполей может быть произвольным, то в конце поля Опции должно быть добавлено несколько байт для выравнивания заголовка пакета по 32-битной границе.
Поле Выравнивание (Padding) используется для того, чтобы убедиться в том, что IP-заголовок заканчивается на 32-битной границе. Выравнивание осуществляется нулями.
Формат пакета протокола IPX
Пакет протокола IPX имеет гораздо более простую структуру по сравнению с пакетом IP, что, собственно, и отражает меньшие функциональные возможности протокола IPX.
IPX-пакет имеет следующие поля.
Управление транспортом (Transport control) имеет длину 8 бит. Это поле определяет время жизни пакета в хопах. IPX-пакет может пересечь до 15 маршрутизаторов. Протокол IPX устанавливает это однобайтовое поле в 0 до начала передачи, а затем увеличивает его на 1 каждый раз, когда пакет проходит через маршрутизатор. Eu,ui счетчик превысит 15, то пакет аннулируется.
Поле данных (Data). Может занимать от 0 до 546 байт. Поле данных нулевой длины может использоваться в служебных пакетах, например, для подтверждения получения предыдущего пакета.
Из анализа формата пакета можно сделать некоторые выводы об ограничениях протокола IPX.
Отсутствует возможность динамической фрагментации на сетевом уровне. В IPX-пакете нет полей, с помощью которых маршрутизатор может разбить слишком большой пакет на части. При передаче пакета в сеть с меньшим значением MTU IPX-маршрутизатор отбрасывает пакет. Протокол верхнего уровня, например NCP, должен последовательно уменьшать размер пакета до тех пор, пока не получит на него положительную квитанцию.
Большие накладные расхдды на служебную информацию. Сравнительно небольшая максимальная длина поля данных IPX-пакета (546 байт при длине заголовка 30 байт) приводит к тому, что как минимум 5 % данных являются служебными.
Время жизни пакета ограничено числом 15, что может оказаться недостаточным для большой сети (для сравнения, в IP-сетях пакет может пройти до 255 промежуточных маршрутизаторов).
Отсутствует поле качества сервиса, что не позволяет маршрутизаторам автоматически подстраиваться к требованиям приложения к качеству передачи трафика.
Кроме того, некоторые недостатки сетей Novell связаны не с протоколом IPX, a со свойствами других протоколов стека IPX/SPX. Многие недостатки проявляются при работе стека IPX/SPX на медленных глобальных линиях связи, и это закономерно, так как ОС NetWare оптимизировалась для работы в локальной сети.
Например, неэффективная работа по восстановлению потерянных и искаженных пакетов на низкоскоростных глобальных каналах обусловлена тем, что протокол NCP, который выполняет эту работу, использует метод получения квитанций с простоями. В локальных сетях со скоростью 10 Мбит/с такой метод работал вполне эффективно, а на медленных каналах время ожидания квитанции заметно тормозит работу передающего узла.
В версиях ОС NetWare до 4.0 соответствие символьных имен серверов их сетевым адресам устанавливалось только с помощью широковещательного протокола Service Advertising Protocol (SAP). Однако широковещательные рассылки заметно засоряют медленные глобальные каналы. Модернизируя свой стек для применения в крупных корпоративных сетях, компания Novell использует теперь справочную службу NDS (NetWare Directory Services) для нахождения разнообразной информации об имеющихся в сети ресурсах и службах, в том числе и о соответствии имени сервера его сетевому адресу. Так как служба NDS поддерживается только серверами с версией NetWare 4.x и выше, то для работы с версиями NetWare 3.x маршрутизаторы распознают SAP-пакеты по номеру их сокета и передают их на все порты, имитируя широковещательные рассылки локальной сети, на что тратится значительная часть пропускной способности медленных глобальных линий. Кроме того, такая «псевдошироковещательность» сводит на нет изоляцию сетей от некорректных SAP-пакетов.
В последних версиях своей операционной системы NetWare компания Novell значительно модифицировала свой стек для того, чтобы он мог более эффективно использоваться в крупных составных сетях.
Служба NDS позволяет отказаться от широковещательного протокола SAP. Служба NDS основана на иерархической распределенной базе данных, хранящей информацию о пользователях и разделяемых ресурсах сети. Приложения обращаются к этой службе по протоколу прикладного уровня NDS.
Кроме того, постоянное повышение быстродействия глобальных служб уменьшает недостатки оригинальных протоколов стека IPX/SPX, что позволяет некоторым обозревателям говорить об успешной работе операционной системы NetWare в глобальных сетях и без указанных нововведений.