Известия РАН. Теория и системы управления, 2019, № 1, стр. 13-30

УПРАВЛЯЕМЫЕ МАРКОВСКИЕ СКАЧКООБРАЗНЫЕ ПРОЦЕССЫ. II. МОНИТОРИНГ И ОПТИМИЗАЦИЯ ФУНКЦИОНИРОВАНИЯ TCP-СОЕДИНЕНИЙ

А. В. Борисов a*, Г. Б. Миллер a**, А. И. Стефанович a***

a ИПИ ФИЦ ИУ РАН
Москва, Россия

* E-mail: aborisov@frccsc.ru
** E-mail: gmiller@frccsc.ru
*** E-mail: astefanovich@frccsc.ru

Поступила в редакцию 26.03.2018
После доработки 11.09.2018

Полный текст (PDF)

Аннотация

Статья посвящена практическому применению результатов анализа и оценивания состояний управляемых марковских скачкообразных процессов по непрерывным, дискретным и считающим наблюдениям в разработке алгоритмов мониторинга состояния сетевых соединений, функционирующих под управлением протокола Transmission Control Protocol (TCP). Особенностью решаемой прикладной задачи является физическая разнородность канала, обеспечивающего исследуемое TCP-соединение: наряду с проводным участком в канале присутствует беспроводная “последняя миля”. Текущее состояние всего соединения недоступно прямому наблюдению, а имеется лишь косвенная статистическая информация в виде потока подтверждений об успешной передаче пакетов, а также процессов, считающих потери пакетов и тайм-ауты. В данной части работы для математического описания функционирования TCP-соединения версии New Reno удалось не только применить управляемую стохастическую динамическую систему наблюдения, но и создать высокоточный алгоритм слежения за состоянием данного соединения по имеющейся статистической информации. На численных примерах показано, что результаты мониторинга позволяют определить причины потерь в канале: перегрузки на проводном участке или затухание сигнала на беспроводном участке, и в конечном счете модифицировать алгоритм TCP так, чтобы существенно повысить пропускную способность соединения.

Введение. Одной из актуальных областей приложения теоретических результатов первой части статьи в области анализа и оценивания управляемых марковских процессов является разработка алгоритмического обеспечения протоколов передачи данных транспортного уровня [1]. Их создание и модернизация происходит обычно на основе эмпирических доводов, в основном реактивно, в качестве ответа на существенные объективные изменения аппаратной платформы (например, появление и широкое внедрение беспроводных сетей) или характера пользовательских запросов (например, развитие вредоносной активности типа DOS/DDoS атак).

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

марковские и скрытые марковские модели [26],

модели систем массового обслуживания [79],

модели, основанные на жидкостной и/или диффузионной аппроксимации скачкообразных процессов [1013],

модели, основанные на самоподобных процессах [1417],

конкурентные модели и игры [1820]

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

Объекты исследования данной работы – транспортные протоколы TCP [1], осуществляющие последовательную передачу данных, разделенных на отдельные сегменты (пакеты). Главная особенность протоколов семейства TCP состоит в гарантированной доставке данных по каналам связи, допускающим потери пакетов. Характеристики канала связи не известны, и стратегия управления передачей данных основывается на обработке статистической информации о результатах передачи предыдущих пакетов, источником которой служит случайный поток подтверждений об успешной передаче пакетов (acknowledgement, ACK). Отправитель соблюдает очередность отправки пакетов, потерянные пакеты подлежат повторной пересылке вне очереди. При стабильной работе канала отправитель постепенно наращивает скорость отправки, тестируя возможности канала, а адресат получает пакеты в том же порядке, в котором они отправлены. В случае успешной доставки очередного пакета k получатель возвращает отправителю подтверждение, содержащее номер данного пакета ${\text{ACK}}\left( k \right)$. Получение пакета с номером, превосходящим ожидаемый по очереди (например, k + 2, когда ожидается k + 1), может означать потерю пакета, на которую получатель реагирует отправкой подтверждения, содержащего номер последнего не нарушающего очередности полученного пакета ${\text{ACK}}\left( k \right)$. Получение четырех подтверждений с одинаковым номером трактуется отправителем как потеря пакета (loss), произошедшая по какой-либо причине. Кроме того, на потерю пакета также указывает отсутствие подтверждения в течение долгого времени (timeout), и такая ситуация считается признаком серьезного снижения качества связи, поскольку свидетельствует о нарушении обратной связи между отправителем и получателем. Обе описанные ситуации требуют от отправителя снижения скорости передачи данных с целью устранения возможной перегрузки и адаптации к изменившимся характеристикам канала. За скорость передачи данных в протоколе TCP отвечает величина окна перегрузки – объема неподтвержденной порции отправленных данных, т.е. числа пакетов, отправленных получателю из узла-отправителя, на которые еще нет подтверждения о доставке. Второй управляемый параметр – тайм-аут повторной передачи – предельное значение времени ожидания ACK, превышение которого трактуется как потеря пакета. Стратегия управления заключается в выборе закона изменения окна перегрузки в зависимости от потоков подтверждений передачи пакетов и их потерь, а также определения тайм-аута повторной передачи, от которого также зависит учет потерянных пакетов.

Ранние версии протокола TCP использовали стратегию AIMD (additive-increase/multiplicative-decrease) линейного роста окна перегрузки на интервалах успешной передачи данных, его мультипликативного уменьшения с каждым фактом потери пакетов и отката к минимальному значению при тайм-ауте. Такая стратегия доказала свою эффективность для проводных каналов связи, отличающихся высокими скоростью и надежностью передачи, где любой факт потери пакета естественно трактовать как признак перегрузки – потери пакета в канале из-за переполнения буфера передачи в каком-либо коммуникационном устройстве в составе канала, а тайм-аут – как динамическое изменение маршрута передачи данных или даже отказ оборудования и временную потерю связи.

Получившие широкое распространение гетерогенные сети, включающие в себя как проводные, так и беспроводные участки, отличаются большими емкостью канала и вероятностью потерь пакетов, а также наличием случайных периодов снижения скорости передачи данных. В таких условиях потеря пакета или превышение тайм-аута повторной передачи не являются однозначным признаком сбоя или перегрузки канала, а могут быть порождены снижением качества связи на беспроводном участке соединения. Поэтому базовые версии протокола TCP, снижающие скорость при любом из указанных событий, склонны недостаточно загружать канал связи и в итоге обеспечивают меньшую, чем возможно, пропускную способность. Кроме того, развитие проводных технологий передачи данных привело к появлению высокоскоростных каналов связи, в которых линейного роста скорости передачи на интервалах успешной передачи данных недостаточно для достижения максимума пропускной способности за разумное время: окно перегрузки растет слишком медленно, и реальная пропускная способность ниже технически доступной. Для учета этих фактов алгоритм управления TCP многократно модернизировался: были предложены версии протокола Illinois [21], Westwood+ [22], Hybla [23], CUBIC [24], BBR [25] и некоторые другие. При этом все авторы отмечают, что знание или достаточно точная оценка текущего состояния соединения позволит повысить его пропускную способность.

Первая часть данной статьи [26] предоставляет математическое обеспечение решения задач анализа и оценивания в стохастических системах наблюдения с марковским скачкообразным процессом (МСП) в роли состояния. Цель второй части состоит в развитии на основе полученных теоретических результатов алгоритмического обеспечения сетевых протоколов TCP для повышения эффективности и устойчивости их работы.

Статья организована следующим образом. Раздел 1 содержит подробное неформальное описание работы сетевого соединения, функционирующего под управлением протокола TCP. В разд. 2 представлена формальная математическая модель функционирования TCP-соединения версии New Reno в виде некоторой управляемой стохастической системы наблюдения с состоянием в форме марковских скачкообразных процессов (МСП). В разд. 3 собраны результаты комплекса проведенных численных экспериментов. Их целями являются:

анализ соответствия свойств предложенной математической модели свойствам реального TCP New Reno,

проверка возможности высокоточного оценивания текущего состояния канала по косвенным статистическим данным потоков ACK, потерь пакетов и тайм-аутов,

демонстрация возможности оптимизации имеющегося протокола TCP New Reno путем учета оценок текущего состояния канала.

Выводы и заключительные замечания даны в разд. 4.

Описание функционирования TCP-соединения. Имеется компьютерное соединение (см. рис. 1), функционирующее по протоколу семейства TCP [1].

Рис. 1.

Схема исследуемого TCP соединения

Канал, обеспечивающий соединение, состоит из проводного и беспроводного участков. Одно из коммуникационных устройств обладает минимальной производительностью, образуя в канале так называемое “бутылочное горло”. Размер буфера “бутылочного горла” равен $\bar {Q}$.

Информация по каналу передается в форме управляемого потока TCP-пакетов, при этом максимальное число пакетов, которое может одновременно находиться в канале без учета буфера “бутылочного горла”, равно B. Управление передачей данных осуществляется путем выбора окна перегрузки, т.е. числа пакетов Ut, переданных из узла-отправителя, но еще не подтвержденных на момент времени t. Устройства, образующие канал, включая “бутылочное горло”, могут использоваться другими пользователями для передачи данных, что порождает неопределенность и нестационарность характеристик канала. Но основным фактором, влияющим на состояние канала, является, разумеется, управление ${{U}_{t}}$. Текущее состояние канала полностью определяется числом пакетов, передающихся в настоящий момент по его различным участкам, а также ожидающих передачи в буферах коммуникационных устройств. Однако вся эта информация недоступна на передающем узле и не может быть оперативно обработана, поэтому для описания состояния канала связи естественно использовать доступные для оценки косвенные характеристики, такие, как время кругового обращения сегмента данных (round-trip time, RTT), вероятности потери пакета (loss probability, ${{P}_{l}}$) и тайм-аута доставки подтверждения (timeout probability, ${{P}_{{to}}}$) одного TCP-пакета. Предполагается, что в каждый момент времени канал может находиться только в одном из четырех качественно различных состояниях, каждое из которых характеризуется следующим набором параметров $(RT{{T}^{i}},P_{l}^{i},P_{{to}}^{i})$, $i = \overline {1,4} $:

${{{\mathbf{X}}}_{t}} = {{e}_{1}}$ – канал свободен,

${{{\mathbf{X}}}_{t}} = {{e}_{2}}$ – умеренная загрузка канала,

${{{\mathbf{X}}}_{t}} = {{e}_{3}}$ – перегрузка проводного участка,

${{{\mathbf{X}}}_{t}} = {{e}_{4}}$ – деградация сигнала на беспроводном участке.

Время кругового обращения для каждого индивидуального пакета случайно и варьируется во времени. Важным его свойством является то, что при отсутствии проблем на беспроводном участке, т.е. в состояниях ei, $i = \overline {1,3} $, его моментные характеристики – среднее ${\mathbf{E}}\{ {\text{RT}}{{{\text{T}}}^{{\text{i}}}}\} $ и дисперсия ${\mathbf{D}}\{ {\text{RT}}{{{\text{T}}}^{i}}\} $ – зависят от текущего размера окна перегрузки Ut, т.е. от управления. Вероятность потери TCP-пакета в таком случае также зависит от Ut. Вид этих зависимостей представлен на графиках рис. 2. Вероятность тайм-аута доставки подтверждения $P_{{to}}^{i}$, напротив, не зависит ни от управления, ни от общей загрузки канала, поскольку связана с возникновением технических проблем или сбоем коммуникационного оборудования, таким образом, $P_{{to}}^{1} = P_{{to}}^{2} = P_{{to}}^{3} = {\text{const}}$. Следует отметить, что в силу высокой надежности проводных линий передачи данных эта величина является достаточно малой.

Рис. 2.

Функции вероятности ${{P}_{l}}\left( u \right)$ потерь отдельных пакетов, среднего ${\mathbf{E}}\left\{ {{\text{RTT}}} \right\}\left( u \right)$ и дисперсии ${\mathbf{D}}\left\{ {{\text{RTT}}} \right\}\left( u \right)$ для различных состояний ei

Причины нахождения канала в состояниях e1, e2 и e3 связаны с загрузкой канала потоком данных исследуемого соединения, в то время как пропадание и восстановление сигнала на беспроводном участке происходят независимо от текущей загрузки. Необходимо подчеркнуть, что загрузка канала исследуемым потоком влияет на состояние не однозначно из-за наличия потоков данных других пользователей, одновременно использующих ресурсы канала.

Представленная на рис. 2 зависимость вероятности потери пакета ${{P}_{l}}\left( u \right)$ соответствует применению на коммуникационном оборудовании узла, являющегося “бутылочном горлом” канала, централизованного алгоритма предотвращения перегрузки (переполнения буфера) Random Early Detection (RED) [27]. Начиная с некоторого уровня загрузки $W{\text{'}}$, устройство случайным образом отклоняет или помечает с помощью отметки ECN (explicit congestion notification, явное уведомление о перегрузке), если такая технология доступна, часть пакетов. При этом вероятность отклонения линейно растет с ростом загрузки u. Достигая некоторого порогового значения вероятности отклонения P1 при уровне загрузки $W{\text{''}}$, устройство начинает отклонять все поступающие пакеты. Подобный алгоритм обеспечивает справедливый равноправный доступ всех пользователей к ресурсам канала.

Кусочно-линейная зависимость среднего ${\mathbf{E}}\left\{ {{\text{RTT}}} \right\}$ и дисперсии ${\mathbf{D}}\left\{ {{\text{RTT}}} \right\}$ времени кругового обращения сегмента данных от загрузки объясняется следующим образом. Пока загрузка u меньше порога B, величина ${\text{RTT}}$ складывается из неслучайного времени распространения сигнала и суммарного случайного времени его обработки на всех коммуникационных устройствах канала. С превышением этого порога к RTT прибавляется случайное время ожидания пакета в очереди “бутылочного горла”. При этом все пакеты обрабатываются независимо друг от друга, и времена обработки пакетов имеют одинаковое распределение. Этот факт объясняет линейный рост среднего и дисперсии в зависимости от u при u > B. Параметры этих функций: сдвиги (${{\delta }_{0}} + {{\xi }_{i}}$ и ϕi) и коэффициенты наклона (${{\upsilon }_{i}}$ и ${{\psi }_{i}}$), различаются для разных состояний канала ${{e}_{i}}$.

Состояние e4 соответствует наличию проблем передачи данных на беспроводном участке канала, появление которых может быть связано с деградацией сигнала вследствие увеличения расстояния между устройством и базовой станцией, появлению препятствий на пути распространения сигнала и прочими причинами, не связанными непосредственно с загрузкой канала Ut. Поэтому для этого состояния среднее ${\mathbf{E}}\{ {\text{RT}}{{{\text{T}}}^{4}}\} $ и дисперсия ${\mathbf{D}}\{ {\text{RT}}{{{\text{T}}}^{4}}\} $, так же как и вероятности потери $P_{l}^{4}$ и тайм-аута пакета $P_{{to}}^{4}$, полагаются постоянными, но заметно более высокими, чем для состояний ${{e}_{i}}$, $i = \overline {1,3} $.

Алгоритм управления большинства версий TCP подразумевает различное поведение при тестировании возможностей канала в начале передачи или при восстановлении после сбоя и на промежутках стабильной передачи данных. Для этого выделяются две фазы функционирования протокола: медленного старта (slow start) и предотвращения перегрузки (congestion avoidance). В фазе предотвращения перегрузки алгоритм управления New Reno использует описанную выше схему аддитивного роста и мультипликативного снижения окна перегрузки, тогда как в фазе медленного старта рост окна перегрузки подчиняется более агрессивной экспоненциальной зависимости. Принцип работы алгоритма управления окном перегрузки New Reno в указанных фазах изображен на рис. 3.

Рис. 3.

Иллюстрация работы алгоритма New Reno

Пусть $\overline {{\text{RTT}}} $ – среднее значение параметра ${\text{RTT}}$, вычисленное по ретроспективным статистическим данным за время, прошедшее с момента последней потери пакета или тайм-аута. Фаза медленного старта начинается с минимального окна перегрузки, равного $\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{W} $. При поступлении стабильного потока подтверждений (при отсутствии потерь и тайм-аутов) окно перегрузки увеличивается на единицу за каждое полученное подтверждение. В среднем это соответствует двукратному увеличению окна за промежуток времени ${\text{RTT}}$. При достижении окном некоторого фиксированного порога ${{W}^{{th}}}$ (порог медленного старта) алгоритм переходит в фазу предотвращения перегрузки. В этой фазе окно Ut растет линейно с коэффициентом, равным $\frac{1}{{\overline {{\text{RTT}}} }}$. При регистрации потери пакета в любой из фаз окно уменьшается вдвое, при тайм-ауте – возвращается к минимальному значению $\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{W} $. При тайм-ауте также происходит корректировка порога медленного старта ${{W}^{{th}}}$, который устанавливается равным половине окна перегрузки на момент регистрации тайм-аута. В любой момент времени, если значение окна перегрузки Ut становится меньше порога ${{W}^{{th}}}$, алгоритм переходит в фазу медленного старта.

Текущее состояние канала неизвестно, в качестве наблюдений доступны поток случайных значений времени кругового обращения сегментов данных ${\text{RTT}}$, а также случайные потоки потерь пакетов и тайм-аутов. Управление формируется на основании только этой статистической информации: в частности, параметр $\overline {{\text{RTT}}} $, характеризующий скорость роста окна Ut в фазе предотвращения перегрузки, является результатом экспоненциального осреднения потока измеренных ${\text{RTT}}$.

Изначально протокол New Reno предназначался для передачи данных по проводным сетям. Вероятность потери пакета, не связанной с переполнением буфера в каком-либо каналообразующем коммуникационном устройстве, в этой ситуации крайне низкая. Поэтому потеря пакета являлась практически несомненным индикатором перегрузки канала, и оптимальным поведением в данном случае было кратное уменьшение окна перегрузки. Однако для рассматриваемой модели, включающей в себя беспроводной участок, причина потери пакета не так однозначна: например, она может быть результатом ухудшения сигнала на беспроводном участке канала. Кроме того, одинаково большой коэффициент мультипликативного уменьшения окна перегрузки как в случае реального переполнения буфера коммуникационного устройства при высокой загрузке, так и вследствие раннего срабатывания алгоритма RED в “бутылочном горле” при умеренной загрузке очевидным образом приводит к недостаточному использованию пропускной способности канала и слишком низкой скорости передачи данных по сравнению с технически достижимой.

Оптимальная стратегия в каждом случае будет разной, поэтому актуальной задачей является оценка текущего состояния канала по имеющимся наблюдениям. В [28] оценка состояния канала была построена только по потоку потерь пакетов. В данном исследуемом случае дополнительно доступны также потоки подтверждений о доставке пакетов ACK и тайм-аутов, которые позволят значительно повысить качество оценивания, основываясь на теоретических результатах из области оптимальной фильтрации [26]. Для того, чтобы это сделать, необходимо формализовать описание функционирования TCP-соединения в виде математической модели частично наблюдаемой управляемой системы с состоянием в форме МСП. Этому посвящен следующий подраздел.

2. Математическая модель протокола TCP New Reno. 2.1. Модель состояния соединения. Построим управляемую стохастическую систему наблюдения, определяющую функционирование TCP-соединения. Из приведенного выше описания алгоритма TCP New Reno следует, что процесс Xt (ненаблюдаемое состояние соединения) принимает четыре возможных состояния. Текущее состояние Xt определяется совокупной нагрузкой всех коммуникационных устройств, участвующих в образовании физического канала, обеспечивающего исследуемое соединение, а также уровнем сигнала на беспроводном участке. Поскольку устройства, образующие канал, являются разделяемыми ресурсами, используемыми большим числом независимых пользователей, то наличие марковского свойства у процесса Xt представляется вполне естественным. Отсюда следует, что процесс состояния Xt есть МСП:

(2.1)
${{{\mathbf{X}}}_{t}} = {{{\mathbf{X}}}_{0}} + \mathop \smallint \limits_0^t \Lambda \left( {{{U}_{s}}} \right){{{\mathbf{X}}}_{s}}ds + {{{\mathbf{M}}}_{t}},\quad {{{\mathbf{X}}}_{0}} \sim {{p}_{0}} = {{\left( {\frac{1}{4},\frac{1}{4},\frac{1}{4},\frac{1}{4}} \right)}^{{\text{T}}}},$
где Xt – текущее состояние системы: ${{{\mathbf{X}}}_{t}} \in {{\mathbb{S}}^{4}}$ (${{\mathbb{S}}^{4}} \triangleq \left\{ {{{e}_{1}}, \ldots ,{{e}_{4}}} \right\}$ – множество единичных векторов в ${{\mathbb{R}}^{4}}$),Mt – мартингал, $\Lambda ( \cdot ) \in {{\mathbb{R}}^{{4 \times 4}}}$ – управляемая матрица интенсивностей переходов состояния Xt, ${{U}_{t}} \geqslant \underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{W} $ – управление, представляющее собой текущее значение окна перегрузки. При этом факт, что Mt – мартингал, служит прямым следствием формулы Дынкина для процесса Xt [29] для МСП и леммы 2 из [26] для управляемого МСП. Распределение начального условия выбрано равномерным, исходя из того соображения, что оно обладает наибольшей неопределенностью.

Матрица интенсивностей переходов $\Lambda \left( u \right) \triangleq {\text{||}}{{\lambda }^{{ji}}}\left( u \right){\text{|}}{{{\text{|}}}_{{j,i = \overline {1,4} }}}$ ограничена и имеет следующий вероятностный смысл:

$\left\| {{\mathbf{E}}\{ {{{\mathbf{X}}}_{{t + \Delta }}}|{{{\mathbf{X}}}_{{\left[ {0,t} \right]}}},u\} - {{{\mathbf{X}}}_{t}} - \Delta \times \Lambda \left( u \right){{{\mathbf{X}}}_{t}}} \right\| = o\left( \Delta \right)\quad \mathcal{P} - {п о ч т и \;\;н а в е р н о е }\;\quad\left( {{\text{п }}.{\text{н }}.} \right),$
где o(Δ) – функция, бесконечно малая по сравнению с Δ. Предполагается, что матрица Λ(u) удовлетворяет обычным условиям, накладываемым на матрицы интенсивностей переходов: ее внедиагональные элементы неотрицательные, а сумма элементов по строкам тождественно равна 0. Матрица имеет вид (громоздкие выражения для диагональных элементов заменены точками)

(2.2)
$\Lambda \left( u \right) = \left[ {\begin{array}{*{20}{c}} \cdot &{{{\lambda }^{{12}}}\left( u \right)}&0&{{{\lambda }^{{14}}}} \\ {{{\lambda }^{{21}}}\left( u \right)}& \cdot &{{{\lambda }^{{23}}}\left( u \right)}&{{{\lambda }^{{24}}}} \\ 0&{{{\lambda }^{{32}}}\left( u \right)}& \cdot &{{{\lambda }^{{34}}}} \\ {{{\lambda }^{{41}}}}&{{{\lambda }^{{42}}}}&0& \cdot \end{array}} \right]\quad.$

Компоненты ${{\lambda }^{{14}}}$, ${{\lambda }^{{24}}}$, ${{\lambda }^{{34}}}$, ${{\lambda }^{{41}}}$ и ${{\lambda }^{{42}}}$ не зависят от управления потому, что качество связи беспроводного участка соединения не зависит от характеристик потока данных, передаваемых по каналу. При этом интенсивность λ34 полагается нулевой, поскольку сразу после восстановления качества беспроводной передачи данных высокая загрузка проводного участка канала невозможна в силу вынужденно низкого потока данных от источника во время нестабильной работы беспроводного соединения. Непосредственные переходы между состояниями e1 и e3, минуя промежуточное состояние e2, полагаются невозможными, поэтому соответствующие интенсивности также равны нулю.

Управляемые компоненты матрицы $\Lambda $ имеют вид

(2.3)
$\begin{gathered} {{\lambda }^{{21}}}(u) \triangleq \left\{ \begin{gathered} \lambda _{0}^{{21}} + \frac{{{{C}^{{21}}}}}{{B - u}},\quad {\text{е с л и }}\quad u < B, \hfill \\ \bar {\lambda },\quad {\text{е с л и }}\quad u \geqslant B, \hfill \\ \end{gathered} \right. \\ {{\lambda }^{{12}}}(u) \triangleq \lambda _{0}^{{12}} + {{C}^{{12}}}{\text{max}}\left( {B - u,0} \right), \\ {{\lambda }^{{32}}}(u) \triangleq \left\{ \begin{gathered} \lambda _{0}^{{32}} + \frac{{{{C}^{{32}}}}}{{W{\text{''}} - u}},\quad {\text{е с л и }}\quad u < W'', \hfill \\ \bar {\lambda },\quad {\text{е с л и }}\quad u \geqslant W'', \hfill \\ \end{gathered} \right. \\ {{\lambda }^{{23}}}(u) \triangleq \lambda _{0}^{{23}} + {{C}^{{23}}}{\text{max}}\left( {W'' - u,0} \right), \\ \end{gathered} $
где B – емкость канала (максимальное число пакетов в канале при пустом буфере “бутылочного горла”), $W{\text{''}}$ – порог гарантированного отклонения пакета алгоритмом RED, $\bar {\lambda }$ – интенсивность, достаточно высокая для гарантированного перехода из одного состояния в другое за время ${\text{RTT}}$, $\lambda _{0}^{{ij}}$, ${{C}^{{ij}}}$ – экспериментально подбираемые константы.

Предлагаемая выше зависимость компонентов ${{\lambda }^{{ji}}}$ от управления u объясняется следующими обстоятельствами. Канал свободен, пока количество пакетов в нем не достигло значения B, соответствующего его емкости. По мере приближения управления u к этому значению вероятность перехода из состояния e1 в состояние e2 должна расти, а при достижении B переход в состояние умеренной загрузки, когда начинает заполняться буфер “бутылочного горла”, должен быть гарантирован. Такое поведение обеспечивает обратнопропорциональная зависимость интенсивности ${{\lambda }^{{21}}}\left( u \right)$ от управления $u$ и гарантирующая интенсивность $\bar {\lambda }$. При этом даже при низких значениях собственного управления ${{U}_{t}} < B$, переход e1e2 возможен и за счет потоков передачи других пользователей канала связи. Для учета этого обстоятельства в закон изменения интенсивности перехода ${{\lambda }^{{21}}}\left( u \right)$ введен постоянный аддитивный член $\lambda _{0}^{{21}}$. При снижении собственного управления до значений, не превышающих порог B, вероятность обратного перехода в состояние, соответствующее свободному каналу, должна повышаться. Линейная зависимость в формуле для ${{\lambda }^{{12}}}\left( u \right)$ объясняется тем, что скорость обработки данных в телекоммуникационных устройствах не зависит от входящего потока. Иными словами, интенсивность обработки пакетов в буфере “бутылочного горла” постоянна. Интенсивности переходов между состояниями e2 и e3 подчиняются законам, аналогичным описанным выше для состояний e1 и e2, разница заключается лишь в том, что граничным значением управления здесь является $W{\text{''}}$, соответствующее порогу гарантированного отклонения пакета алгоритмом предотвращения переполнения буфера “бутылочного горла”. Очевидно, превышение этого значения приводит к потерям в канале, т.е. означает переход от состояния умеренной загрузки к перегрузке канала.

2.2. Модель доступных наблюдений. Статистическая информация о состоянии доступна в форме наблюдений, описываемых следующей моделью:

(2.4)
$\begin{gathered} {{\ell }_{t}} = \mathop \smallint \limits_0^t \theta \left( {{{U}_{s}}} \right){{{\mathbf{X}}}_{s}}ds + M_{t}^{\ell }, \\ {{h}_{t}} = \mathop \smallint \limits_0^t \nu \left( {{{U}_{s}}} \right){{{\mathbf{X}}}_{s}}ds + M_{t}^{h}, \\ {{{\mathbf{Z}}}_{t}} = \mathop \smallint \limits_0^t f\left( {{{U}_{s}}} \right){{{\mathbf{X}}}_{s}}ds + \mathop \smallint \limits_0^t g\left( {{{U}_{s}}} \right){{{\mathbf{X}}}_{s}}d{{W}_{s}}, \\ \end{gathered} $
где ${{\ell }_{t}}$ – поток потерь пакетов, ht – поток тайм-аутов, Zt – поток подтверждений об успешной передаче пакетов.

Поток Zt является высокочастотным и не есть, в общем случае, процесс Кокса [30] – неоднородный пуассоновский процесс, интенсивность которого зависит от ненаблюдаемого состояния Xt. Поэтому в качестве его модели используется диффузионная аппроксимация, в которой f(⋅) и g(⋅) представляют собой управляемые снос и диффузию, а Wt – стандартный броуновский процесс.

Модель Zt  устроена следующим образом. Согласно аргументации, приведенной в подразд. 2.1, время кругового обращения $\tau $ отдельного пакета является случайной величиной, условные моменты которого в зависимости от текущих состояния канала Xt и окна перегрузки ${{U}_{t}}$ задаются следующими формулами:

$\begin{gathered} {\mathbf{E}}\left\{ {\tau |{{{\mathbf{X}}}_{t}},{{U}_{t}}} \right\} = {{\delta }_{0}} + \Xi {{{\mathbf{X}}}_{t}} + {{U}_{t}}\Upsilon {{{\mathbf{X}}}_{t}}, \\ {\mathbf{D}}\{ \tau |{{{\mathbf{X}}}_{t}},{{U}_{t}}\} = \Phi {{{\mathbf{X}}}_{t}} + {{U}_{t}}\Psi {{{\mathbf{X}}}_{t}}, \\ \end{gathered} $
где ${{\delta }_{0}}$ – время распространения сигнала по каналу, $\Xi \triangleq row\left( {{{\xi }_{1}},\; \ldots ,\;{{\xi }_{4}}} \right)$ – вектор-строка, определяющая для разных состояний канала Xt среднее время ожидания отправленного пакета в очередях, связанное с обработкой пакетов других пользователей, $\Upsilon \triangleq row\left( {{{\upsilon }_{1}},\; \ldots ,\;{{\upsilon }_{4}}} \right)$ – вектор-строка, определяющая для разных состояний канала Xt среднее время ожидания отправленного пакета в очередях, связанное с обработкой порции “своих” пакетов объема ${{U}_{t}}$, $\Phi \triangleq row(\phi _{1}^{2}, \ldots ,\phi _{4}^{2})$ – вектор-строка, определяющая для разных состояний канала Xt дисперсию части времени ожидания в очередях отправленного пакета, связанной с обработкой пакетов других пользователей, $\Psi \triangleq row(\psi _{1}^{2}, \ldots ,\psi _{4}^{2})$ – вектор-строка, определяющая для разных состояний канала Xt дисперсию части времени ожидания в очередях отправленного пакета, связанной с обработкой порции “своих” пакетов объема Ut.

Исходя из центральной предельной теоремы для процессов восстановления [31] и учитывая то, что время кругового обращения одного пакета $\tau $ соответствует доставке Ut подтверждений об успешной передаче, получаем, что

$f\left( {{{U}_{t}}} \right) = row\left( {\frac{{{{U}_{t}}}}{{{{\delta }_{0}} + {{\xi }_{1}} + {{U}_{t}}{{\upsilon }_{1}}}},\; \ldots ,\;\frac{{{{U}_{t}}}}{{{{\delta }_{0}} + {{\xi }_{4}} + {{U}_{t}}{{\upsilon }_{4}}}}} \right)$
и

$g\left( {{{U}_{t}}} \right) = row\left( {\frac{{U_{t}^{{1/2}}{{{(\phi _{1}^{2} + {{U}_{t}}\psi _{1}^{2})}}^{{1/2}}}}}{{{{{({{\delta }_{0}} + {{\xi }_{1}} + {{U}_{t}}{{\upsilon }_{1}})}}^{{3/2}}}}}, \ldots ,\frac{{U_{t}^{{1/2}}{{{(\phi _{4}^{2} + {{U}_{t}}\psi _{4}^{2})}}^{{1/2}}}}}{{{{{({{\delta }_{0}} + {{\xi }_{4}} + {{U}_{t}}{{\upsilon }_{4}})}}^{{3/2}}}}}} \right).$

Процессы ${{\ell }_{t}}$ и ht в (2.4) являются считающими с управляемыми интенсивностями

(2.5)
$\begin{gathered} \theta \left( u \right) \triangleq {{\theta }_{0}} + row(P_{l}^{1}\left( u \right){{f}^{1}}\left( u \right),\; \ldots ,\;P_{l}^{4}\left( u \right){{f}^{4}}\left( u \right)), \\ \nu \left( u \right) \triangleq row(P_{{to}}^{1}{{f}^{1}}\left( u \right),\; \ldots ,\;P_{{to}}^{4}{{f}^{4}}\left( u \right)), \\ \end{gathered} $
а процессы $M_{t}^{\ell }$ и $M_{t}^{h}$ – мартингалами. Предлагаемая выше зависимость компонентов $\theta \left( \cdot \right)$ и $\nu \left( \cdot \right)$ от управления объясняется тем, что потоки потерь и тайм-аутов представляют собой поток подтверждений, прореженный с соответствующими вероятностями ${{P}_{l}}\left( {{{U}_{t}}} \right)$ и ${{P}_{{to}}}$, а функции
${{f}^{i}}\left( {{{U}_{t}}} \right) = \frac{{{{U}_{t}}}}{{{\mathbf{E}}\left\{ {\tau |{{{\mathbf{X}}}_{t}} = {{e}_{i}},{{U}_{t}}} \right\}}}$
имеют также смысл интенсивности получения подтверждений об успешной доставке пакетов в каждом из состояний. Интенсивность потока потерь также содержит аддитивный член ${{\theta }_{0}} = row(\theta _{0}^{1}, \ldots ,\theta _{0}^{4})$, отвечающий за потери, вызванные потоками данных других пользователей канала. Интенсивность потока тайм-аутов при этом такого члена не содержит, поскольку сбои оборудования проводного участка канала или деградация сигнала на беспроводном участке от действий пользователей не зависят. Вероятности потерь пакетов в силу соображений, изложенных в подразд. 2.1, имеют вид

$\begin{gathered} {{P}_{l}}(u) = \left\{ \begin{gathered} row\left( {{{P}_{0}},{{P}_{0}} + {\text{max}}\left( {\frac{{u - W{\text{'}}}}{{W{\text{''}} - W{\text{'}}}}\left( {{{P}_{1}} - {{P}_{0}}} \right),0} \right),1,P_{l}^{4}} \right), \hfill \\ {\text{е с л и }}\quad u < W{\text{''}}, \hfill \\ row\left( {1,1,1,1} \right),\quad {\text{е с л и }}\quad u \geqslant W{\text{''}}, \hfill \\ \end{gathered} \right. \\ {{P}_{{to}}} = row(P_{{to}}^{1},\; \ldots ,\;P_{{to}}^{4}). \\ \end{gathered} $

Известно, что признаками наступления перегрузки и падения качества канала выступают потеря пакета или появление тайм-аута. Одновременно два эти события произойти не могут, поэтому ${{\langle {{M}^{\ell }},{{M}^{h}}\rangle }_{t}} \equiv 0$. В то же время моменты потерь пакетов или появления тайм-аутов могут совпадать с моментом перехода канала в состояние e3 или e4. Однако не все переходы подобного рода, т.е. смены состояний канала, наблюдаемы как моменты потерь пакетов или тайм-ауты: некоторые из них могут быть порождены потоками других пользователей. Пусть сетевые устройства, включая “бутылочное горло”, используются N + 1 независимым потоком вместе с рассматриваемым потоком. Пусть $n_{t}^{{14}}$ – считающий процесс переходов e1e4 процесса Xt. Будем полагать, что

$\pi _{t}^{{14}} \triangleq \frac{{d{{{\langle {{n}^{{14}}},\ell \rangle }}_{t}}}}{{dt}} = \left\{ \begin{gathered} \frac{{\theta _{t}^{1}}}{N},\quad {\text{е с л и }}\quad \frac{{\theta _{t}^{1} + \nu _{t}^{1}}}{N} \leqslant \lambda _{t}^{{41}}, \hfill \\ \frac{{\theta _{t}^{1}\lambda _{t}^{{41}}}}{{N(\theta _{t}^{1} + \nu _{t}^{1})}},\quad {\text{е с л и }}\quad \frac{{\theta _{t}^{1} + \nu _{t}^{1}}}{N} > \lambda _{t}^{{41}}, \hfill \\ \end{gathered} \right.$
$\sigma _{t}^{{14}} \triangleq \frac{{d{{{\langle {{n}^{{14}}},h\rangle }}_{t}}}}{{dt}} = \left\{ \begin{gathered} \frac{{\nu _{t}^{1}}}{N},\quad {\text{е с л и }}\quad \frac{{\theta _{t}^{1} + \nu _{t}^{1}}}{N} \leqslant \lambda _{t}^{{41}}, \hfill \\ \frac{{\nu _{t}^{1}\lambda _{t}^{{41}}}}{{N(\theta _{t}^{1} + \nu _{t}^{1})}},\quad {\text{е с л и }}\quad \frac{{\theta _{t}^{1} + \nu _{t}^{1}}}{N} > \lambda _{t}^{{41}}. \hfill \\ \end{gathered} \right.$

Аналогичным образом описывается зависимость наблюдаемых скачкообразных процессов $\ell $, h и процессов переходов n23 и n24. Остальные процессы сильно ортогональны, т.е. их скачки с вероятностью 1 не совпадают.

2.3. Модель протокола управления New Reno. Для синтеза управления Ut в протоколе New Reno используется оценка rt текущего значения ${\text{RTT}}$, полученная из Zt с помощью алгоритма экспоненциального сглаживания:

(2.6)
$\begin{gathered} {{r}_{t}} = \frac{{{{U}_{t}}}}{{{{m}_{t}}}}, \\ {{m}_{t}} = {{m}_{0}} - \frac{{1 - \gamma }}{\gamma }\mathop \smallint \limits_0^t {{m}_{s}}ds + \frac{{1 - \gamma }}{\gamma }\mathop \smallint \limits_0^t d{{{\mathbf{Z}}}_{s}}, \\ {{m}_{0}} = {{\delta }_{0}} + {{\xi }_{1}}, \\ \end{gathered} $
где $0 < \gamma < 1$ – некоторый известный параметр сглаживания. В (2.6) используется соотношение $d{\mathbf{Z}} = {{U}_{t}}dt{\text{/RTT}}$, которое основано на следующем соображении. В каждый момент времени в канале находится набор неподтвержденных пакетов, размер которого равен окну перегрузки Ut. При стабильной работе канала (без потерь и тайм-аутов) для получения подтверждений об успешной доставке всех пакетов из указанного набора потребуется время, равное RTT. Таким образом, если за время dt приходят подтверждения для df пакетов, простейшей оценкой времени кругового обращения пакетов ${\text{RTT}}$ является величина ${{U}_{t}}dt{\text{/}}d{{{\mathbf{Z}}}_{t}}$. Использование алгоритма экспоненциального сглаживания нивелирует осцилляционный характер ${\text{RTT}}$ каждого индивидуального пакета.

Управление Ut, выработанное по алгоритму New Reno, определяется следующим уравнением:

(2.7)
$\begin{gathered} {{U}_{t}} = {{U}_{0}} + \mathop \smallint \limits_0^t {{{\mathbf{I}}}_{{[\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{W} ,W_{t}^{{th}})}}}\left( {{{U}_{{s - }}}} \right)\frac{{{{U}_{{s - }}}}}{{{{r}_{{s - }}}}}ds + \mathop \smallint \limits_0^t {{{\mathbf{I}}}_{{[W_{t}^{{th}}, + \infty )}}}\left( {{{U}_{{s - }}}} \right)\frac{\alpha }{{{{r}_{{s - }}}}}ds - \beta \mathop \smallint \limits_0^t {{U}_{{s - }}}d{{h}_{s}} + \mathop \smallint \limits_0^t (\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{W} - {{U}_{{s - }}})d{{\ell }_{s}}, \\ W_{t}^{{th}} = W_{0}^{{th}} + \frac{1}{2}\mathop \smallint \limits_0^t {{U}_{{s - }}}d{{\ell }_{s}}, \\ \end{gathered} $
где $\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{W} $ – минимальный размер окна, $W_{t}^{{th}}$ – пороговый размер окна, при котором начинается фаза предотвращения перегрузки, rt – текущее сглаженное значение RTT, оцененное пользователем по данным Zt, $\alpha $ и $\beta $ – коэффициенты линейного роста и мультипликативного уменьшения, параметры схемы управления AIMD, в стандарте TCP равные $\alpha = 1$, $\beta = 0.5$.

Первый интеграл в уравнении для Ut (2.7) соответствует фазе медленного старта, второй – фазе предотвращения перегрузки, третий – уменьшению окна вдвое при потере пакета, четвертый – уменьшению окна до $\underset{\raise0.3em\hbox{$\smash{\scriptscriptstyle-}$}}{W} $ при возникновении тайм-аута.

Таким образом, уравнения (2.1), (2.4), (2.6) и (2.7) образуют замкнутую управляемую систему наблюдения с состоянием в форме МСП:

(2.8)
$\left\{ {\begin{array}{*{20}{l}} {{{{\mathbf{X}}}_{t}} = {{{\mathbf{X}}}_{0}} + \mathop \smallint \limits_0^t \Lambda \left( {{{U}_{s}}} \right){{{\mathbf{X}}}_{s}}ds + {{{\mathbf{M}}}_{t}},\quad {{{\mathbf{X}}}_{0}} \sim {{{\mathbf{p}}}_{0}},} \\ {{{{\mathbf{Y}}}_{t}} = {{{({{l}_{t}},{{h}_{t}})}}^{{\text{Т }}}} = \mathop \smallint \limits_0^t \mu \left( {{{U}_{s}}} \right){{{\mathbf{X}}}_{s}}ds + {{{\mathbf{H}}}_{t}},} \\ {{{{\mathbf{Z}}}_{t}} = \mathop \smallint \limits_0^t f\left( {{{U}_{s}}} \right){{{\mathbf{X}}}_{s}}ds + \mathop \smallint \limits_0^t g\left( {{{U}_{s}}} \right){{{\mathbf{X}}}_{s}}d{{{\mathbf{W}}}_{s}},} \end{array}} \right.$
по виду близкую к системе (0.2) из первой части работы [26]. При этом непрерывные наблюдения представляют собой диффузионную аппроксимацию потока подтверждений об успешной передаче пакетов, а скачкообразные наблюдения складываются из потока потерь пакетов и тайм-аутов: $\mu \left( {{{U}_{s}}} \right) = {{(\theta \left( {{{U}_{s}}} \right),\nu \left( {{{U}_{s}}} \right))}^{{\text{Т }}}}$, ${{{\mathbf{H}}}_{t}} = {{(M_{t}^{l},M_{t}^{h})}^{{\text{Т }}}}$.

Уравнения оптимальной фильтрации состояния МСП, представленные в [26], не могут быть непосредственно применены для оценивания состояния Xt по наблюдениям $\left( {{{{\mathbf{Y}}}_{t}},{{{\mathbf{Z}}}_{t}}} \right)$. Во-первых, интенсивность шумов в наблюдениях Zt зависит от Xt, а такие системы наблюдения не входят в исследованные в [26]. Во-вторых, уравнение для Zt является лишь аппроксимацией истинного потока ACK, поэтому использовать Zt в виде непрерывных наблюдений некорректно: данная аппроксимация будет давать удовлетворительную точность только при дискретизации Zt с достаточным временным шагом. Поэтому для применения статистической информации, содержащейся в Zt, правомерно использовать их дискретизованную версию:

(2.9)
${{{\mathbf{D}}}_{r}} \triangleq {{{\mathbf{Z}}}_{{{{t}_{{r - 1}}}}}} - {{{\mathbf{Z}}}_{{{{t}_{r}}}}} = \mathop \smallint \limits_{{{t}_{{r - 1}}}}^{{{t}_{r}}} f\left( {{{U}_{s}}} \right){{{\mathbf{X}}}_{s}}ds + \mathop \smallint \limits_{{{t}_{{r - 1}}}}^{{{t}_{r}}} g\left( {{{U}_{s}}} \right){{{\mathbf{X}}}_{s}}d{{W}_{s}},\quad r \in \mathbb{N},\quad {{t}_{r}} \triangleq r\Delta ,$
где $\Delta > 0$ – шаг по времени, на порядок больший среднего значения RTT, но на несколько порядков меньше, чем компоненты Λ.

Таким образом, непрерывные наблюдения с зависящей от состояния диффузией Zt заменяются в (2.8) на дискретные наблюдения, доступные в неслучайные известные моменты времени Dr (2.9), и тогда использование уравнения оптимальной фильтрации МСП становится правомерным.

Пусть

(2.10)
– условная плотность распределения наблюдения Dr относительно ${{\mathcal{F}}^{{X,U}}}$. В этом случае уравнение оптимальной фильтрации состояния Xt по считающим $\left( {{{h}_{t}},{{\ell }_{t}}} \right)$ и дискретным наблюдениям Dr имеет вид
(2.11)
$\begin{gathered} {{{{\mathbf{\hat {X}}}}}_{t}} = {{p}_{0}} + \int\limits_0^t {\Lambda ({{U}_{s}})} {{{{\mathbf{\hat {X}}}}}_{{s - }}}ds + \int\limits_0^t {({{{\hat {k}}}_{{s - }}}{{\theta }^{ \top }}({{U}_{s}}) + \Pi ({{U}_{s}}){{{{\mathbf{\hat {X}}}}}_{{s - }}}){{{(\theta ({{U}_{s}}){{{{\mathbf{\hat {X}}}}}_{{s - }}})}}^{{ - 1}}}(d{{\ell }_{s}} - \,\theta ({{U}_{s}}){{{{\mathbf{\hat {X}}}}}_{{s - }}}ds)} + \\ \, + \int\limits_0^t {({{{\hat {k}}}_{{s - }}}{{\text{v}}^{ \top }}({{U}_{s}}) + \Sigma ({{U}_{s}}){{{{\mathbf{\hat {X}}}}}_{{s - }}}){{{(\text{v}({{U}_{s}}){{{{\mathbf{\hat {X}}}}}_{{s - }}})}}^{{ - 1}}}(d{{h}_{s}} - \,\text{v}({{U}_{s}}){{{{\mathbf{\hat {X}}}}}_{{s - }}}ds)} + \\ + \sum\limits_{{{t}_{r}} \leqslant t}^{} {\left[ {{{{\left( {\sum\limits_{n = 1}^N {e_{n}^{ \top }{{{{\mathbf{\hat {X}}}}}_{{{{t}_{r}} - }}}{{\rho }_{r}}({{{\mathbf{D}}}_{r}}|{{U}_{{{{t}_{r}} - }}},{{e}_{n}})} } \right)}}^{{ - 1}}}\sum\limits_{m = 1}^N {{\text{diag}}({{e}_{m}}){{{{\mathbf{\hat {X}}}}}_{{{{t}_{r}} - }}}{{\rho }_{r}}({{{\mathbf{D}}}_{r}}|{{U}_{{{{t}_{r}} - }}},{{e}_{m}}) - {{{{\mathbf{\hat {X}}}}}_{{{{t}_{r}} - }}}} } \right]} , \\ \end{gathered} $
где ${{\hat {k}}_{t}} \triangleq {\text{diag}}{{{\mathbf{\hat {X}}}}_{t}} - {{{\mathbf{\hat {X}}}}_{t}}{\mathbf{\hat {X}}}_{t}^{ \top }$,

$\Pi \left( {{{U}_{t}}} \right) \triangleq \left( {\begin{array}{*{20}{c}} { - {{\pi }^{{14}}}\left( {{{U}_{t}}} \right)}&0&0&0 \\ 0&{ - ({{\pi }^{{23}}}\left( {{{U}_{t}}} \right) + {{\pi }^{{24}}}\left( {{{U}_{t}}} \right))}&0&0 \\ 0&{{{\pi }^{{23}}}\left( {{{U}_{t}}} \right)}&0&0 \\ {{{\pi }^{{14}}}\left( {{{U}_{t}}} \right)}&{{{\pi }^{{24}}}\left( {{{U}_{t}}} \right)}&0&0 \end{array}} \right),$
$\Sigma \left( {{{U}_{t}}} \right) \triangleq \left( {\begin{array}{*{20}{c}} { - {{\sigma }^{{14}}}\left( {{{U}_{t}}} \right)}&0&0&0 \\ 0&{ - ({{\sigma }^{{23}}}\left( {{{U}_{t}}} \right) + {{\sigma }^{{24}}}\left( {{{U}_{t}}} \right))}&0&0 \\ 0&{{{\sigma }^{{23}}}\left( {{{U}_{t}}} \right)}&0&0 \\ {{{\sigma }^{{14}}}\left( {{{U}_{t}}} \right)}&{{{\sigma }^{{24}}}\left( {{{U}_{t}}} \right)}&0&0 \end{array}} \right).$

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

3. Численные эксперименты. 3.1. Функционирование New Reno на проводном канале связи. Предлагаемая математическая модель (2.1), (2.4), (2.6), (2.7) при своей относительной простоте обладает достаточной гибкостью для описания функционирования TCP-соединения и позволяет учитывать большое число внутренних и внешних факторов, влияющих на его качество: наличие/отсутствие беспроводного участка в канале, коммуникационных устройств, использующих алгоритм RED, внешних пользователей, разделяющих коммуникационные ресурсы канала и пр. Помимо этого соответствующая корректировка закона управления (2.6), (2.7) позволит исследовать не только версию New Reno протокола TCP, но и другие версии: Illinois, CUBIC, BBR и пр. Использование диффузионной аппроксимации для описания потока ACK обеспечивает предлагаемой модели некоторую робастность по отношению к неопределенности вероятностного распределения потока подтверждений: характеристики процесса Zt зависят только от двух моментных характеристик RTT отдельного пакета и не зависят от всего распределения RTT.

Рассмотрим модель (2.1), (2.4), (2.6), (2.7) со следующими параметрами:

$\begin{array}{*{20}{l}} {\Lambda \left( u \right) = \left[ {\begin{array}{*{20}{c}} \cdot &{{{\lambda }^{{12}}}\left( u \right)}&0&0 \\ {{{\lambda }^{{21}}}\left( u \right)}& \cdot &{{{\lambda }^{{23}}}\left( u \right)}&0 \\ 0&{{{\lambda }^{{32}}}\left( u \right)}& \cdot &0 \\ 0&0&0& \cdot \end{array}} \right]}&{\begin{array}{*{20}{l}} {{{\lambda }^{{12}}}\left( u \right) = \bar {\lambda }{\mathbf{I}}\left( {B - u} \right),} \\ {{{\lambda }^{{21}}}\left( u \right) = \bar {\lambda }{\mathbf{I}}\left( {u - B} \right),} \\ {{{\lambda }^{{23}}}\left( u \right) = \bar {\lambda }{\mathbf{I}}\left( {W{\text{''}} - u} \right),} \\ {{{\lambda }^{{32}}}\left( u \right) = \bar {\lambda }{\mathbf{I}}\left( {u - W{\text{''}}} \right),} \end{array}} \end{array}$
$\begin{gathered} f(u) = row\left( {\frac{u}{{{{\delta }_{0}} + u\upsilon }},\;\frac{u}{{{{\delta }_{0}} + u\upsilon }},\;\frac{u}{{{{\delta }_{0}} + u\upsilon }},0} \right), \\ g(w) = row\left( {0,\;0,\;0,\;0} \right), \\ \end{gathered} $
$\begin{gathered} \theta \left( u \right) = \left\{ \begin{gathered} row\left( {0,\;0,\;0,\;0} \right),\quad {\text{е с л и }}\quad u < W{\text{''}}, \hfill \\ row\left( {1,\;1,\;1,\;0} \right),\quad {\text{е с л и }}\quad u \geqslant W{\text{''}}, \hfill \\ \end{gathered} \right. \\ \nu \left( u \right) = row\left( {0,\;0,\;0,\;0} \right), \\ \end{gathered} $
где параметры B, $W{\text{''}}$, ${{\delta }_{0}}$ и $\upsilon $ соответствуют каналу передачи данных с пропускной способностью C = 100 Мбит/c, временем распространения сигнала, равным ${{\delta }_{0}} = 0.1$ с, размером буфера устройства “бутылочного горла” в $Q = 100$ пакетов и размером полезной части самого пакета в $MSS$ = 1000 байт: $B = ({{10}^{6}}C{{\delta }_{0}}){\text{/}}(8MSS)$ = 1250, $W{\text{''}} = B + Q = 1350$, $\upsilon = (8MSS){\text{/}}({{10}^{6}}C)$ = 8 × 10–5. Выбранные параметры вполне соответствуют характеристикам реально существующих сетевых соединений.

Модель с данными параметрами описывает функционирование New Reno на стабильном проводном канале, где тайм-ауты отсутствуют, а потери пакетов связаны только с переполнением буфера “бутылочного горла”. При этом канал используется монопольно: потоки данных от других пользователей полностью исключены. В таких условиях модель канала в целом и, как следствие, управление New Reno в таком случае ведет себя “детерминированным” образом, демонстрируя линейный рост и мультипликативный спад (AIMD). Соответствующие пилообразные графики, полученные путем анализа реального сетевого трафика, а также с помощью имитационного моделирования на симуляторе NS2 [32], приведены в [21].

На рис. 4 представлено поведение управления New Reno для соединения с выбранными параметрами.

Рис. 4.

Траектория управления New Reno в проводном канале

График абсолютно соответствует предсказанному теоретическому поведению алгоритма New Reno. В самом начале наблюдается фаза медленного старта, во время которой окно перегрузки растет экспоненциально. Затем алгоритм переходит в фазу предотвращения перегрузки, во время которой окно растет линейно. При превышении окном порога B + Q происходит потеря пакета, приводящая к скачкообразному уменьшению окна перегрузки вдвое. После этого характерное поведение окна повторяется.

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

3.2. Мониторинг состояния соединения гетерогенного канала связи. Рассмотрим модель (2.1), (2.4), (2.6), (2.7) с исходными параметрами для канала передачи данных пропускной способности C = 100 Мбит/c, временем распространения сигнала ${{\delta }_{0}} = 0.1$ с, размером буфера Q = 100 и $MSS = 1000$ байт.

Она описывает работу протокола New Reno на гетерогенном (проводном–беспроводном) канале при наличии “бутылочного горла”, функционирующему по алгоритму RED. В этих условиях потери пакетов не гарантируют факта перегрузки: возможно, что в состоянии умеренной загрузки срабатывает алгоритм RED или на беспроводном участке произошло пропадание сигнала.

Решение задачи фильтрации состояния соединения по имеющейся информации является ключевым для последующей оптимизации передачи данных. Задача оптимальной фильтрации была решена в [28] для случая, когда в качестве доступной информации выступал только поток потерь пакетов. В предлагаемой работе наблюдению также доступен поток подтверждений об успешной доставке подтверждений ACK, использование которого позволяет кардинально улучшить качество оценивания состояния. Результаты фильтрации состояния по комплексным наблюдениям ACK, потерь и тайм-аутов приведены на рис. 5 в сравнении с результатами фильтрации только по потокам потерь и тайм-аутов. На рис. 6 представлены соответствующее управление и сглаженное значение RTT. На обоих рисунках моменты потерь пакетов обозначены черными точками, а моменты тайм-аутов – косыми крестами.

Рис. 5.

Оценки фильтрации по комплексным (черная линия) и считающим (серая линия) наблюдениям: алгоритм New Reno в гетерогенном канале

Рис. 6.

Управление Ut (сплошная линия) и сглаженное RTT rt (пунктирная линия) для алгоритма New Reno в гетерогенном канале

Необходимо отметить, что в данном примере шаг Δ дискретизации непрерывных наблюдений ${{{\mathbf{Z}}}_{t}}$ по времени был выбран равным 0.5 с, что обеспечивало корректность применения центральной предельной теоремы для процессов восстановления и рассмотрения соответствующих приращений ${{{\mathbf{Z}}}_{t}}$ как гауссовских величин.

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

Рассмотрим модель стабильного проводного канала из подразд. 3.1. Модифицируем алгоритм New Reno так, чтобы учитывать информацию о текущем состоянии канала. Пусть в (2.7) параметры схемы AIMD зависят от оценки состояния следующим образом:

${{\alpha }_{t}} = \alpha _{0}^{ \top }{{{\mathbf{\hat {X}}}}_{t}},\quad {{\beta }_{t}} = \beta _{0}^{ \top }{{{\mathbf{\hat {X}}}}_{t}},$
где ${{\alpha }_{0}}$ и ${{\beta }_{0}}$ – некоторые постоянные векторы. Идея состоит в том, чтобы для состояний, соответствующих низкой загрузке канала, использовать больший коэффициент линейного роста по сравнению с состояниями перегрузки сети или плохой беспроводной связи. Коэффициент мультипликативного уменьшения окна перегрузки, напротив, следует уменьшить для состояний, где потеря пакета может не означать перегрузку сети. Линейная зависимость, с одной стороны, достаточно проста, а с другой – позволяет добиться того, чтобы окно перегрузки стало вогнутой функцией времени на участках стабильного функционирования канала связи. Вогнутая зависимость позволяет добиться более рационального использования доступной пропускной способности канала, не допуская периодов долгого роста окна перегрузки, и вместе с тем положительно сказывается на работе сети в целом, поскольку не ведет к серьезным перегрузкам, предполагая гораздо более аккуратное поведение при больших размерах окна, чем стандартный New Reno. Вогнутым характером обладает и оптимальное управление, полученное в [28], и алгоритм управления TCP Illinois [21], авторы которого предлагают соответственно обратно пропорциональную и линейную зависимость параметров $\alpha $ и $\beta $ от времени кругового обращения сегмента данных.

На рис. 7 представлено модифицированное управление для α0 = $row\left( {{{\alpha }_{{{\text{max}}}}},{{\alpha }_{{{\text{min}}}}},{{\alpha }_{{{\text{min}}}}},{{\alpha }_{{{\text{min}}}}}} \right)$, ${{\beta }_{0}} = row\left( {{{\beta }_{{{\text{min}}}}},{{\beta }_{{{\text{min}}}}},{{\beta }_{{{\text{max}}}}},{{\beta }_{{{\text{max}}}}}} \right)$. Состояние канала здесь предполагается доступным наблюдению явно, а параметры ${{\alpha }_{{{\text{min}}}}} = 0.1$, ${{\alpha }_{{{\text{max}}}}} = 10$, ${{\beta }_{{{\text{min}}}}} = 0.125$, ${{\beta }_{{{\text{max}}}}} = 0.5$ выбраны в соответствии с рекомендациями из [21]. Очевидным отличием модифицированного алгоритма является его более агрессивное поведение на свободном канале, обеспечивающее быстрое достижение окном перегрузки значений, близких к максимальным и, как следствие, приводящее к более эффективному использованию пропускной способности. Кроме того, более осторожное поведение модифицированного алгоритма при загруженном канале дает возможность поддерживать высокие значения управления в течение значительного времени, не приводя к перегрузке.

Рис. 7.

Траектория модифицированного управления в проводном канале

Сравнение характеристик исходной и модифицированной версий New Reno было проведено для модели с параметрами, заданными в подразд. 3.2. Графики оценки состояния соединения приведены на рис. 8, а соответствующее управление и сглаженные значения RTT – на рис. 9. Здесь также моменты потерь пакетов обозначены черными точками, а моменты тайм-аутов – косыми крестами.

Рис. 8.

Управление Ut (сплошная линия) и сглаженное RTT rt (пунктирная линия) для модифицированного алгоритма в гетерогенном канале

Рис. 9.

Оценки фильтрации по комплексным (черная линия) и считающим (серая линия) наблюдениям: модифицированный алгоритм в гетерогенном канале

Несмотря на осцилляцию состояния, предлагаемая оценка фильтрации демонстрирует весьма высокую точность: собственное среднеквадратическое отклонение (СКО) процесса Xt равно ${{\sigma }_{X}} = 0.84$, СКО ошибки оценки фильтра по комплексным наблюдениям, вычисленное при моделировании на длительном временном отрезке, составляет ${{\sigma }_{{z,l,to}}} = 0.12$, для фильтра только по считающим наблюдениям ${{\sigma }_{{l,to}}} = 0.30$.

Характеристики эффективности исходной и модифицированной версий New Reno были вычислены путем моделирования их функционирования на длительном временном интервале ($T$ = 100 000 с) с последующим статистическим анализом. Выбор в пользу моделирования одного интервала большой длины вместо осреднения по пучку коротких траекторий объясняется необходимостью нивелировать влияние переходных процессов на начальном этапе передачи данных, связанных с режимом slow start, и тестированием возможностей канала с постепенным наращиванием скорости отправки. Адекватность результатов такого моделирования обуславливается ограниченностью интенсивностей переходов скачкообразного процесса состояния канала связи и интенсивностей считающих процессов потерь пакетов и тайм-аутов. Выбранная длина интервала моделирования оказалась достаточной для обеспечения примерно равной доли пребывания в состоянии e4 (деградация сигнала на беспроводном участке), интенсивность переходов в/из которого не зависит от управления.

Результаты моделирования, представленные в таблице, позволяют говорить о том, что применение оценки состояния канала при управлении окном перегрузки повышает его эффективность и приводит к серьезному выигрышу в пропускной способности канала при том же уровне потерь. Действительно, реальная скорость передачи данных возрастает при использовании модифицированной версии протокола более чем в 2 раза. При этом данный параметр по сути является единственным критерием качества управления, поскольку он учитывает в себе и время, затрачиваемое на передачу всех пакeтов, включая потерянные, опоздавшие и переданные повторно, как бы ни была велика их доля. Выигрыш производительности достигается за счет невысокой агрессивности модифицированной версии протокола в состоянии e2, которая позволяет системе сравнительно большое время балансировать в этом состоянии, в котором, с одной стороны, имеется возможность поддерживать высокую скорость передачи, а с другой – вероятность перегрузки сети сравнительно невысока. Действительно, исходный алгоритм управления New Reno склонен к неэффективному использованию ресурсов, и канал находится в состоянии e1, т.е. свободен, большую часть времени (>76%), тогда как модифицированный алгоритм более производителен и умеренно загружает канал более 55% от общего времени моделирования.

Заключение. Предложена математическая модель функционирования канала связи под управлением протокола семейства TCP на основе управляемого марковского скачкообразного процесса. Модель учитывает основные черты реальных соединений: разнородность линий передачи данных и нестабильность их беспроводных участков, случайные потери пакетов и вспышечный характер их поступления, колебания времени кругового обращения сегментов данных (в том числе джиттер), вызванные как потоком данных отправителя, так и трафиком других пользователей. На основе результатов по оптимальной фильтрации управляемой стохастической динамической системы наблюдения, представленных в первой части статьи, разработан алгоритм мониторинга состояния соединения по комплексу наблюдений, включающему поток подтверждений об успешной передаче пакетов, считающих процессов потерь пакетов и тайм-аутов. Эффективность алгоритма продемонстрирована с помощью численного моделирования канала связи под управлением протокола TCP версии New Reno и его модификации, учитывающей оценку состояния канала. Результаты моделирования позволяют заключить, что даже простейший учет оценки состояния ведет к серьезному приросту реальной скорости передачи данных. Проведенные эксперименты подтверждают вывод о перспективности использования предложенной модели при решении задач оптимального управления потоками данных по гетерогенным каналам связи.

Таблица 1.

Средние характеристики алгоритмов управления

Алгоритм New Reno Модифицированный
Пропускная способность (Mbps) 28.4679 67.9299
Доля потерь 9.0575 × 10–5 7.2275 × 10–5
Доля тайм-аутов 1.7536 × 10–6 1.9820 × 10–6
Доля времени в e1 0.7640 0.2002
Доля времени в e2 0.0259 0.5537
Доля времени в e3 0.0023 0.0314
Доля времени в e4 0.2078 0.2147

Список литературы

  1. Куроуз Д., Росс К. Компьютерные сети: нисходящий подход. М.: Эксмо, 2016.

  2. Altman E., Avrachenkov K., Barakat C. TCP in Presence of Bursty Losses // Performance Evaluation. 2000. V. 42. P. 129–147.

  3. Yariv E., Merhav N. Hidden Markov Processes // IEEE Transactions on Information Theory. 2002. V. 48. № 6. P. 1518–1569.

  4. Борисов А.В., Миллер Г.Б. Анализ и фильтрация специальных марковских процессов в дискретном времени. II. Оптимальная фильтрация // АиТ. 2005. № 7. С. 112–125.

  5. Борисов А.В., Босов А.В., Миллер Г.Б. Моделирование и мониторинг состояния VoIP-соединения // Информатика и ее применения. 2016. Т. 10. № 2. С. 2–13.

  6. Haßlinger G., Hohlfeld O. The Gilbert-Elliott Model for Packet Loss in Real Time Services on the Internet // Proc. 14th GI/ITG Conf. on Measurement, Modelling and Evaluation of Computer and Communication Systems (MMB). Dortmund, Germany, 2008. P. 269–283.

  7. Kleinrock L. Queueing Systems II: Computer Applications. N.Y.: Wiley Interscience, 1976.

  8. Bertsekas D.P., Gallager. R.G. Data Networks. New Jersey: Prentice-Hall, 1992.

  9. Башарин Г.П. Лекции по математической теории телетрафика. М.: РУДН, 2004.

  10. Misra V., Gong W., Towsley D.F. Fluid-Based Analysis of Network of AQM Routers Supporting TCP Flows with an Application to RED // ACM SIGCOMM Computer Communication Review. 2000. V. 30. № 4. P. 151–160.

  11. Whitt W. Stochastic-Process Limits. An Introduction to Stochastic-Process Limits and their Application to Queues. N.Y.: Springer, 2002.

  12. Domanska J., Domanski A., Czachorski T., Klamka J. Fluid Flow Approximation of Time-Limited TCP/UDP/XCP Streams // Bulletin of the Polish Academy of Sciences. Technical Sciences. 2014. V. 62. № 2. P. 217–225.

  13. Kushner H. Heavy Traffic Analysis of Controlled Queueing and Communication Networks. N.Y.: Springer, 2001.

  14. Leland W.E., Taqqu M.S., Willinger W., Wilson D.V. On the Self-Similar Nature of Ethernet Traffic // IEEE/ACM Transactions on Networking. 1994. V. 2. № 1. P. 1–15.

  15. Crovella M.E., Bestavros A. Self-Similarity in World Wide Web traffic: Evidence and Possible Causes // IEEE/ACM Transactions on Networking. 1997. V. 5. № 6. P. 835–846.

  16. Tsybakov B., Georganas N. Overflow and Losses in a Network Queue with a Selfsimilar Input // Queueing Systems. 2000. V. 35. № 1–4. P. 201–235.

  17. Mikosch T., Resnick S., Rootzen H., Stegeman A. Is Network Traffic Appriximated by Stable Levy Motion or Fractional Brownian Motion? // Annals of Applied Probability. 2002. V. 12. № 1. P. 23–68.

  18. Altman E., Boulogne T., El Azouzi R., Jimenez T., Wynter L. A Survey on Networking Games // Computers and Operations Research. 2006. V. 33. № 2. P. 286–311.

  19. Liu K.J.R., Wang B. Cognitive Radio Networking and Security: A Game-Theoretic View. Cambridge: Cambridge University Press, 2010.

  20. Habachi O., El-Azouzi R., Hayel Y.A. Stackelberg Model for Opportunistic Sensing in Cognitive Radio Networks // IEEE Transactions on Wireless Communications. 2013. V. 12. № 5. P. 2148–2159.

  21. Liu S., Basar T., Srikant R. TCP-Illinois: A Loss and Delay-Based Congestion Control Algorithm for High-Speed Networks // Performance Evaluation. 2008. V. 65. № 6–7. P. 417–440.

  22. Mascolo S., Racanelli G. Testing TCP Westwood+ over Transatlantic Links at10 Gigabit/Second Rate // Third International Workshop on Protocols for Fast Long-Distance Networks (PFLDNET05). Lyon, France, 2005.

  23. Caini C., Firrincieli R. TCP Hybla: a TCP Enhancement for Heterogeneous Networks // International J. Satellite Communications and Networking. 2004. V. 22. № 5. P. 547–566.

  24. Ha S., Rhee I., Xu L. CUBIC: a New TCP-Friendly High-Speed TCP Variant // ACM SIGOPS Operating Systems Review. 2008. V. 42. № 5. P. 64–74.

  25. Cardwell N., Cheng Y., Gunn C.S., Yeganeh S.H., Jacobson V. BBR: Congestion-Based Congestion Control // ACM Queue. 2016. V. 14. № 5. P. 20–53.

  26. Борисов А.В., Миллер Г.Б., Стефанович А.И. Управляемые марковские скачкообразные процессы. I. Мартингальная проблема и оптимальная фильтрация по комплексным наблюдениям // Изв. РАН. ТиСУ. 2018. № 6.

  27. Floyd S., Jacobson V. Random Early Detection Gateways for Congestion Avoidance // IEEE/ACM Transactions on Networking. 1993. V. 1. № 4. P. 397–413.

  28. Миллер Б.М., Авраченков К.Е., Степанян К.В., Миллер Г.Б. Задача оптимального стохастического управления потоком данных по неполной информации // ППИ. 2005. Т. 41. № 2. С. 89–110.

  29. Дынкин Е.Б. Марковские процессы. М.: Физматгиз, 1959.

  30. Кокс Д., Смит В. Теория восстановления. М.: Сов. радио, 1967.

  31. Боровков А.А. Асимптотические методы в теории массового обслуживания. М.: Физматлит, 1980.

  32. https://www.isi.edu/nsnam/ns/.

Дополнительные материалы отсутствуют.