Кратко

  • RFC 2041 предлагает два разных этапа: сохранить наблюдения конкретного прохода и превратить подходящую запись в упрощённое расписание задержек, потерь и повреждений для испытания программ.
  • Повторяемость требует связи между этапами. Размеры пакетов, источник времени, пропуски при сборе и параметры усреднения ограничивают вывод не меньше, чем возможности самого модулятора.

Сохранённая прогулка и новый опыт

Можно пройти с ноутбуком по прежнему коридору, запустить прежнюю программу и получить другой результат. Условия связи и последовательность событий не обязаны совпасть. Для сравнения программ полезнее перенести некоторые наблюдавшиеся условия на управляемую площадку, где их удастся задавать заново. Но для этого нужно решить, что именно означает «те же условия».

В RFC 2041, раздел 1, мобильный узел проходит маршрут, а известная нагрузка с участием неподвижного узла создаёт пакеты. Записываются сетевые события и характеристики устройства. Несколько проходов с разной нагрузкой составляют семейство записей, характеризующее этот маршрут. Это локальная основа эксперимента: наблюдения относятся к определённому узлу, пути, времени и нагрузке. Добавление проходов расширяет материал, но не делает его автоматически представительным для всех пользователей беспроводных сетей.

Документ «Mobile Network Tracing» опубликован в октябре 1996 года. Brian D. Noble, Giao T. Nguyen, Mahadev Satyanarayanan и Randy H. Katz описывали раннюю исследовательскую работу и предлагали обсудить общий формат. RFC Editor указывает статус Informational; сам документ прямо исключает статус интернет-стандарта. Исторический текст показывает, что авторы разработали и что собирались исследовать. Он не подтверждает широкое внедрение или доступность этих программ сегодня.

Запись должна объяснять себя

Список пакетов недостаточен, если другой исследователь не знает, какие поля он получил. Поэтому в формате RFC 2041 связанные записи объединены в дорожки данных. Заголовок дорожки описывает её последующие элементы; разные дорожки могут чередоваться в файле, если каждый заголовок появляется раньше своих элементов. Пакеты, состояние устройства и положение узла остаются различимыми, хотя относятся к одному эксперименту.

У каждой записи есть 32-битная метка типа, длина и время. Метка и допустимая длина помогают проверить структуру файла. Они не удостоверяют правдивость наблюдения. Заголовки дорожек задают списки свойств: одни значения постоянны для всей дорожки, другие присутствуют в каждом элементе. Для переменных свойств указан занимаемый объём. Благодаря этому инструмент может найти и пропустить незнакомое поле, даже если не понимает его смысла. Раздел 4.1 обеспечивает возможность расширения формата, а не универсальность любого последующего анализа.

Это различие существенно при обмене материалом. Успешное чтение будущей версии файла означает, что структура не сломалась. Если пропущенное свойство необходимо для проверки гипотезы, смысловая пригодность данных всё равно остаётся открытой. Самоописание сокращает зависимость от личных пояснений создателя записи, но не отменяет научного суждения получателя.

Время представляется секундами с начала 1970 года и дополнительной долей секунды — в микросекундах либо наносекундах. В одном файле используется один вариант. Наносекундное поле не доказывает наносекундной точности часов. Оно также не подтверждает синхронизации двух узлов или способности ядра выпускать каждый пакет с такой же точностью.

Начальный заголовок сообщает, получен ли файл от одного узла или объединён из нескольких записей, и допускает текстовое описание условий. Недопустимые адреса класса E используются как условные различители источников при объединении. Их нельзя принимать за установленную маршрутизируемую идентичность. Конечная запись отмечает завершение файла; полноту наблюдений она сама по себе не гарантирует.

Когда теряется не пакет, а свидетельство о нём

В обычном отчёте о сети слово «потеря» легко превращается в единственное число. RFC 2041 вводит отдельный учёт повреждений самого наблюдения. Переполнение буфера и другие причины могут привести к пропуску записей. Специальный элемент считает потерянные заголовки и элементы пакетных и приборных дорожек, а также аннотации. Раздел 4.7 требует не игнорировать такой ущерб и не обязательно выбрасывать всю запись.

Отсутствие элемента о пакете ещё не означает, что пакет не достиг адресата. Счётчик пропусков позволяет заметить проблему, но не восстановить, что именно происходило в неизвестной части. Пропущенная аннотация тоже имеет цену: объяснение смены условий могло исчезнуть, хотя последовательность пакетных чисел выглядит аккуратно.

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

Контекст имеет собственную точность

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

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

Положение узла также не было одной бесспорной координатой. Для открытого пространства авторы рассматривали GPS. Для помещений они разработали графический инструмент: человек отмечал своё место щелчком на плане здания. Связь с определённой базовой станцией давала лишь грубую оценку, иногда вообще недоступную для надёжной записи. Раздел 5.1.2 важно читать с различением разработанного средства и рассматриваемой возможности. Географический контекст полезен даже при такой ограниченности, если его происхождение не скрыто.

Что исполняет PaM

Вторая половина конструкции — Packet Modulator, PaM. Модуль в ядре между IP и интерфейсами перехватывает входящие и исходящие пакеты. Он может не передать пакет дальше, задержать его или изменить биты. Приложение при этом работает без изменения своего исходного текста или исполняемого файла. Управляемая нагрузка создаётся ниже приложения, а не внутри специально переписанного тестового клиента.

Модель задержки складывает время передачи пакета и латентность. Первая часть зависит от размера, делённого на доступную полосу. В более простой модуляционной записи для каждого временного участка задаются латентность, время на байт — величина, обратная полосе, — и доли потерь и повреждений. Разделы 5.2.1 и 5.2.2 описывают компактный профиль для исполнения. Полный контекст местоположения и состояния устройства он не переносит.

Предполагается, что реальная проводная сеть испытательной площадки достаточно быстрее и надёжнее моделируемой, чтобы её вкладом можно было пренебречь. Если основание само добавляет существенные задержки или потери, программа испытывает уже сочетание профиля и этой сети. Кроме того, грубый внутренний системный такт заставлял минимизировать среднюю ошибку планирования. Авторы не обещали идеального времени каждого пакета. Прозрачность для приложения — важное свойство, но она не означает физического восстановления радиообстановки.

Почему преобразование допускает только узкий материал

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

Часы доступных ноутбуков заметно уходили. NTP в этих экспериментах не использовали: служебный трафик менял известную нагрузку, а корректировка скорости часов мешала точному измерению. Авторы опирались на часы одной машины. При отправке ICMP ECHO сохранялось время, затем записывался соответствующий ответ. Изменённая программа ping чередовала маленькие и большие пакеты. Такой обмен даёт свидетельство о круговом прохождении. Он не превращается автоматически в независимое измерение прямой и обратной задержки.

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

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

Повторяемость не расширяет исходную территорию

В разделе 7 остаются будущей работой независимые профили для направлений, несколько интерфейсов и разные параметры для адресатов. Совместное использование полосы несколькими узлами ещё не исследовалось глубоко, хотя инструменты объединения файлов уже существовали. Формат оставался ориентированным на IP. Возможность объединить свидетельства не равна готовой модели разделяемого ресурса.

Практический итог состоит из трёх связанных частей: ограниченного наблюдения, объявленного преобразования и режима исполнения. Успешный запуск подтверждает поведение программы в сконструированных условиях. Он не доказывает, что любой будущий проход по маршруту, любое устройство или любой пользователь встретит именно их. В RFC 2041 граница свидетельства сохраняется даже тогда, когда опыт стало удобно повторять.

Источники