Кратко
- RFC 9693 включает подготовку в измерение: фаза 1 создаёт ограниченный набор соединений в DUT и записывает преобразованные четыре кортежа у Responder; фаза 2 измеряет трафик по этому известному состоянию.
- Прогон без потерь подтверждает один заявленный эксперимент чёрного ящика. Он не раскрывает внутреннюю таблицу, не воспроизводит Интернет или TCP и не доказывает производственный запас либо непрерывность приложения.
Обратный путь нельзя придумать
Initiator может предложить новый четырёхкомпонентный кортеж в направлении клиент–сервер. DUT создаёт запись, преобразует и пересылает пакет. Responder не может сделать то же в обратном направлении: пакет, не относящийся к существующему соединению, stateful-шлюз отбросит.
Поэтому в стенде две памяти. Connection tracking table внутри DUT непрозрачна; Tester не знает её размер, содержимое и политику. State table у Responder содержит только преобразованные кортежи реально полученных кадров. Предложенные кортежи, прямые доставки, записанные отображения и соединения, проверенные обратно, — разные свидетельства.
Фраза «миллион сессий» без этой цепочки не объясняет, были ли они лишь предложены, пропущены, сохранены или доступны в обе стороны.
Псевдослучайность может создать миллиарды запросов состояния
RFC 4814 рекомендует равномерные псевдослучайные порты, чтобы удобный шаблон не льстил хешированию устройства. Но для stateful NAT каждый неизвестный кортеж способен потребовать новую запись.
Даже одна пара IP с широкими диапазонами RFC 4814 даёт 3 170 829 312 комбинаций портов. Диапазоны адресов умножают пространство. Генератор может исчерпать таблицу раньше, чем начнёт измерять выбранное свойство.
RFC 9693 сохраняет случайность, но ограничивает диапазоны: исходных портов может быть несколько десятков тысяч, целевых — меньше, в соответствии с различием между эфемерными клиентскими портами и популярными сервисами. Размеры диапазонов входят в результат. «Случайный трафик» недостаточен для воспроизводимости.
Фаза 1 создаёт население фазы 2
В фазе 1 отправляет только Initiator. DUT выполняет преобразование и создаёт соединения; Responder получает кортежи, записывает их и молчит. Так одновременно наполняются скрытая таблица устройства и наблюдаемый список обратного пути.
Эта подготовка обязательна до throughput, latency, loss и PDV. Её скорость должна быть безопасно ниже заранее измеренной максимальной скорости установления, иначе подготовка сама станет нагрузочным ограничением.
Для измерения создания каждый кадр использует новый кортеж, а UDP timeout длиннее фазы 1: старые записи не успевают исчезнуть. Для steady-state forwarding фаза 1 перечисляет весь набор, а timeout покрывает обе фазы и промежуток: в измерительном окне записи не должны создаваться или удаляться.
Это не модель всего Интернета. Это контролируемое разделение цены создания состояния и цены пересылки по готовому состоянию.
Прямая доставка не подтверждает наличие записи
Tester не читает внутреннюю таблицу. Даже если все кадры фазы 1 дошли, часть соединений могла не сохраниться: скорость была чрезмерной, ёмкость исчерпалась или сработало замещение.
Responder берёт каждый сохранённый кортеж и отправляет один обратный кадр на пониженной скорости с коэффициентом безопасности. Полный приём у Initiator подтверждает существование ограниченного набора и пригодность обеих скоростей.
Потеря в обратном направлении не имеет единственной причины. R или r могли быть высокими; таблица могла заполниться; DUT мог отвергать новые записи, вытеснять по LRU или удалять пакет записей. Наблюдение не равно внутреннему диагнозу.
Ёмкость сначала является интервалом
Метод начинается с безопасного C0 и проверенной скорости R0. Экспоненциальный поиск удваивает число соединений до collapse DUT или резкого падения скорости. Затем бинарный поиск сужает интервал до объявленной ошибки E.
Политика влияет на выжившие записи. Отказ от новых сохраняет ранние; LRU — поздние; пакетная очистка может дать меньше успешных проверок, чем физическая ёмкость. Точное N′ не всегда является размером таблицы.
Удаление измеряется отдельно: загружают N соединений, засекают реализационно-зависимое внеполосное удаление и делят N на время. Очистка целиком и удаление по одной записи могут стоить по-разному.
Порядок, время и CPU входят в число
Round-robin запись поддерживает свежесть таблицы Responder. Псевдослучайное чтение следует RFC 4814; round robin дешевле. Возрастающий и убывающий порядок могут быть отдельными опытами, потому что hash, cache и замещение зависят от последовательности.
Timeout, длительности и пауза, активные ядра, hashsize, nf_conntrack_max, аппаратная платформа, NIC, ОС, kernel и версия реализации должны сопровождать результат. Нужны повторы; медиана, первый и 99-й процентили, число прогонов и ошибка поиска описывают точность.
UDP задаёт границу утверждения
UDP позволяет задавать постоянную скорость без нарушения congestion и flow control TCP и без handshake. Реализация всё равно может иметь разные пути и таймеры для TCP. RFC 9693 предупреждает об этом и указывает на RFC 9411 для HTTP/HTTPS.
Следовательно, нулевая потеря доказывает одну комбинацию DUT, сборки, настройки, кортежей, порядка, timeout, направления, скорости и CPU. Она не доказывает скрытое содержимое, реальное распределение, TCP, операционный резерв или завершение пользовательской операции.
Спецификация даёт общий язык, работающий код — наблюдение. Число становится пригодным для решения, когда сохранены квитанции между ними.
Источники
- https://www.rfc-editor.org/rfc/rfc9693.html
- https://www.rfc-editor.org/info/rfc9693
- https://www.rfc-editor.org/rfc/rfc4814.html
- https://www.rfc-editor.org/rfc/rfc8219.html
- https://www.rfc-editor.org/rfc/rfc2544.html
- https://www.rfc-editor.org/rfc/rfc3511.html
- https://www.rfc-editor.org/rfc/rfc9411.html
- https://www.rfc-editor.org/rfc/rfc6146.html
- https://heng.lu/running-code-primary-the-patch-needed-to-preserve-the-internet-original-design/
- https://heng.lu/minimum-initial-specification-localized-future-decision-voluntary-adoption-internet-coordination-system/
- https://heng.lu/on-reality-layers-symbolic-power-and-why-clarity-feels-so-hostile/
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров

