Способ разделения географически распределённых ip-сетей на подсети для систем балансирования нагрузки сетей cdn

Изобретение относится к вычислительной технике. Технический результат заключается в оптимизации количества добавляемых префиксов. Способ разделения географически распределённых IP-сетей на подсети характеризуется тем, что с узлов сети CDN измеряют сетевые задержки для IP-адресов, входящих в предполагаемые для разделения сетевые префиксы; строят временный список сетей T; для каждой сети из списка T запоминают метрику; создают пустой список R; каждую IP-сеть в списке T заменяют содержащей её IP-сетью с на единицу меньшей маской сети в том случае, если новая IP-сеть содержит только одну IP-сеть из списка T в качестве подсети, а метрику копируют; две IP-сети из списка T, входящие в одну и ту же IP-сеть с на единицу меньшей маской заменяют этой сетью в том случае, если их метрики содержат хотя бы один общий узел; когда замена двух IP-сетей невозможна, рассматриваемую IP-сеть либо пару IP-сетей удаляют из списка T и добавляют в список R; процесс продолжают до тех пор, пока список T не опустеет либо пока в нём не останется IP-сетей с сетевыми масками больше заданной величины, которые переносят в список R; IP-сети из списка R заменяют разделённые сетевые префиксы в подсистеме балансирования нагрузки сети CDN. 5 з.п. ф-лы, 5 ил.

 

Изобретение относится к области компьютерных сетей, более конкретно – к сетям доставки контента (сети CDN), и может быть использовано для разделения сетевых префиксов на подпрефиксы.

Здесь и далее под сетевым префиксом понимается комбинация IP-адреса и маски сети, то есть запись вида x.x.x.x/y, где x.x.x.x – IP-адрес сети, y – маска сети, записанная в виде десятичного числа.

Из уровня техники известен традиционный способ балансирования нагрузки в сетях CDN, в котором для каждого сетевого префикса выбирается оптимальный с точки зрения той или иной метрики сервер сети CDN. Данный способ хорошо работает для IP-сетей, адреса которых назначены географически расположенным близко друг к другу устройствам и, соответственно, имеют один и тот же оптимальный сервер. Вместе с тем для IP-сетей, адреса которых назначены устройствам, находящимся в различных географических областях, выбор единого оптимального сервера может быть невозможен, что приведёт к ухудшению качества обслуживания для части пользователей. В тех случаях, когда балансирование нагрузки в сети CDN осуществляется на основе IP-адреса DNS-сервера, и когда IP-адрес DNS-сервера принадлежит подобной географически распределённой IP-сети, снижение качества обслуживания может наблюдаться у значительной доли пользователей.

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

В соответствие с этим наиболее близким аналогом заявленного изобретения является система и способ повышения степени детализации управления префиксами в компьютерной сети (US 8625420 B2, 09.05.2005), в котором сетевой префикс разделяется на один или более подпрефиксов на основе тех или иных критериев, включая время отклика, с последующим добавлением в таблицу маршрутизации вместо оригинального префикса.

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

Задачей изобретения является создание способа разделения географически распределённых IP-сетей на подсети для систем балансирования нагрузки сетей CDN, лишённого указанных выше недостатков уровня техники.

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

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

Вышеуказанные результаты достигаются за счёт того, что способ разделения географически распределённых IP-сетей на подсети включает в себя этапы, на которых получают список предполагаемых для разделения сетевых префиксов S, список всех прочих префиксов N и список узлов сети CDN L, генерируют список IP-адресов A, включающий все IP-адреса, входящие хотя бы в один из префиксов из списка S, далее список A передают на все узлы сети CDN из списка L для осуществления измерения сетевых задержек.

После получения результатов измерений сетевых задержек от узлов из списка L определяют минимальную сетевую задержку и строят временный список сетей T, состоящий из IP-сетей минимального размера и содержащий все IP-адреса из списка A, сетевая задержка которых была успешно измерена хотя бы с одного узла, при условии, что данная сеть не принадлежит списку N.

Также для каждой сети (i, m) из списка T, где i – IP-адрес сети, а m – маска сети, запоминают метрику, состоящую из списка узлов сети CDN C(i, m) и значением разницы d(e, i, m) между измеренной с узла e сетевой задержкой сети (i, m) и минимальной сетевой задержкой для сети (i, m) среди всех узлов сети CDN, успешно измеривших сетевую задержку данной сети, при этом если сетевая задержка не была успешно измерена с узла e, либо если значение разницы d(e, i, m) превышает заданную величину, узел e и его значение d(e, i, m) не включают в метрику.

Кроме того создают пустой список R, элементами которого являются тройки (e, i, m), далее каждую IP-сеть в списке T заменяют содержащей её IP-сетью с на единицу меньшей маской сети в том случае, если новая IP-сеть содержит только одну IP-сеть из списка T в качестве подсети, при этом метрику копируют.

Также две IP-сети из списка T, входящие в одну и ту же IP-сеть с на единицу меньшей маской сети заменяют этой сетью в том случае, если их метрики содержат хотя бы один общий узел, при этом метрика новой сети состоит из узлов, присутствующих в каждой из заменяемых сетей, со значением d(e, i, m) равным максимальному из значений d(e, i, m) заменяемых сетей.

В случае, когда замена двух IP-сетей по указанному критерию невозможна, либо когда IP-сеть с на единицу меньшей маской сети будет совпадать с не предполагаемым для разделения сетевым префиксом, либо содержать не предполагаемый для разделения сетевой префикс в качестве подсети, рассматриваемую IP-сеть, либо пару IP-сетей удаляют из списка T и добавляют в список R, при этом для каждой добавляемой в список R сети также запоминают узел из её метрики с минимальным значением d(e, i, m).

Этот процесс продолжают до тех пор, пока список T не опустеет, либо пока в нём не останется IP-сетей с сетевыми масками больше заданной величины и в этом случае оставшиеся в списке T сети также переносят в список R. Полученные IP-сети из списка R заменяют разделённые сетевые префиксы в подсистеме балансирования нагрузки сети CDN.

В соответствии с частным случаем выполнения, при объединении двух IP-сетей из списка T значение d(e, i, m) новой сети вычисляют как сумму значений d(e, i, m) заменяемых сетей, а при замене IP-сети из списка T на IP-сеть с на единицу меньшей маской сети значение разницы d(e, i, m) удваивают.

В соответствии с частным случаем выполнения, в случае невозможности объединения двух IP-сетей, одну из них удаляют из списка T и добавляют в список R, а другую – заменяют в списке T на IP-сеть с на единицу меньшей маской сети.

В соответствии с частным случаем выполнения, если узел сети CDN не смог измерить сетевые задержки для IP-адреса, однако такие измерения были успешны ранее, используют результаты последнего успешного измерения.

В соответствии с частным случаем выполнения, измерение сетевых задержек производят только для части входящих в предполагаемый для разделения сетевой префикс IP-адресов.

В соответствии с частным случаем выполнения, если несколько узлов сети CDN обладают схожими сетевыми характеристиками, измерения производят только с одного из этих узлов, а при добавлении IP-сетей в систему балансирования нагрузки сети CDN оптимальный узел заменяют на узел со схожими сетевыми характеристиками.

Оптимизация количества добавляемых префиксов достигается за счёт того, что предложенный способ объединяет префиксы, расположенные на значительном географическом расстоянии друг от друга в том случае, если оптимальным для них является один и тот же сервер сети CDN. На это влияет то, что в качестве разницы d(e, i, m) берётся не значение сетевой задержки, а разница между измеренной с узла e сетевой задержкой сети (i, m) и минимальной сетевой задержкой для сети (i, m) среди всех узлов сети CDN.

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

Изобретение иллюстрируется чертежами.

На фиг. 1 показана схема системы.

На фиг. 2-5 показаны примеры объединения сетей в дополнительном варианте осуществления.

Способ разделения географически распределённых IP-сетей на подсети для систем балансирования нагрузки сетей CDN включает в себя подсистему оптимизации префиксов 1, подсистему балансирования нагрузки сети CDN 2 и узлы сети CDN 3. Подсистема оптимизации префиксов связана с подсистемой балансирования нагрузки сети CDN через канал обмена данных 4 и с узлами сети CDN через канал обмена данных 5. Направление стрелок соответствует направлению передачи данных. Также подсистема балансирования нагрузки сети CDN перенаправляет запросы клиентов на узлы сети CDN, что обозначено стрелкой 6 (фиг.1).

Подсистема оптимизации префиксов 1 предусматривает программный модуль, выполняемый на одном или нескольких либо выделенных серверах, либо серверах сети CDN, либо их комбинации. Данный модуль получает от подсистемы балансирования нагрузки 2 сети CDN список предполагаемых для разделения сетевых префиксов S, список всех прочих префиксов N и список узлов 3 сети CDN L. Подсистема оптимизации префиксов 1 генерирует список IP-адресов A, включающий все IP-адреса, входящие хотя бы в один из префиксов из списка S. Список A передаётся на все узлы 3 сети CDN из списка L для осуществления измерения сетевых задержек.

В дополнительном варианте осуществления список IP-адресов A включает только часть адресов, входящих в префиксы из списка S. Эту часть отбирают по тому или иному критерию. В качестве критериев выбора может использоваться определённое значение некоторого количества последних битов IP-адреса (то есть выборка с шагом 2^x), выбор определённого количества адресов для каждого префикса случайным образом, либо иной критерий выбора.

После того, как подсистема оптимизации префиксов 1 получит результаты измерений сетевых задержек от всех узлов 3 сети CDN из списка L, подсистема строит временный список сетей T, состоящий из IP-сетей минимального размера – с маской /32 для IPv4 и /128 для IPv6, содержащий все IP-адреса из списка A, сетевая задержка которых была успешно измерена хотя бы с одного узла, при условии, что данная сеть не принадлежит списку N.

Для каждой сети (i, m) из списка T, где i – IP-адрес сети, а m – маска сети, также запоминается метрика, состоящая из списка узлов сети CDN C(i, m) и значением разницы d(e, i, m) между измеренной с узла e сетевой задержкой сети (i, m) и минимальной сетевой задержкой для сети (i, m) среди всех узлов сети CDN, успешно измеривших сетевую задержку данной сети.

При этом если сетевая задержка не была успешно измерена с узла e, либо если разница d(e, i, m) превышает заданную величину, которая задаётся административной политикой, узел e и его значение разницы d(e, i, m) не включаются в метрику. Также создаётся пустой список R, элементами которого являются тройки (e, i, m).

Далее выполняется цикл по m со стартовым значением h равным 32 для IPv4 и 128 для IPv6, конечным значением z, которое задаётся административной политикой, и шагом –1, в котором для всех (i, m) из списка T выполняются следующие действия:

1. Если m-ый бит слева адреса i равен 0, сеть (i+2^(h–m), m) не входит ни в список T, ни в список N и сеть (i, m–1) не входит в список N, то (i, m) удаляется из T, а (i, m–1) добавляется в T, причём C(i, m–1) = C(i, m), и d(e, i, m–1) = d(e, i, m) для каждого узла e из C(i, m). Здесь и далее под операциями +, – и ^ понимается сложение, вычитание и возведение в степень при записи IP-адреса и сетевой маски в виде десятичного целого.

2. Если m-ый бит слева адреса i равен 1, сеть (i–2^(h–m), m) не входит ни в список T, ни в список N и сеть (i–2^(h–m), m–1) не входит в список N, то (i, m) удаляется из T, а (i–2^(h–m), m–1) добавляется в T, причём C(i–2^(h–m), m–1) = C(i, m), и d(e, i–2^(h–m), m–1) = d(e, i, m) для каждого узла e из C(i, m).

3. Если m-ый бит слева адреса i равен 0, сеть (i+2^(h–m), m) входит в список T, сеть (i, m–1) не входит в список N и множества узлов из списков C(i, m) и C(i+2^(h–m), m) имеют непустое пересечение, то (i, m) и (i+2^(h–m), m) удаляются из T, а (i, m–1) добавляется в T, причём C(i, m–1) равен пересечению C(i, m) и C(i+2^(h–m), m), а d(e, i, m–1) равен максимуму d(e, i, m) и d(e, i+2^(h–m), m) для всех e из C(i, m–1).

4. Если m-ый бит слева адреса i равен 0, сеть (i+2^(h–m), m) не входит в список T, но сеть (i+2^(h–m), m) и/или сеть (i, m–1) входит в список N, то (i, m) удаляется из T, а (e, i, m) добавляется в список R, где e – узел из C(i, m) с минимальным d(e, i, m).

5. Если m-ый бит слева адреса i равен 1, сеть (i–2^(h–m), m) не входит в список T, но сеть (i–2^(h–m), m) и/или сеть (i–2^(h–m), m–1) входит в список N, то (i, m) удаляется из T, а (e, i, m) добавляется в список R, где e – узел из C(i, m) с минимальным d(e, i, m).

6. Если m-ый бит слева адреса i равен 0, сеть (i+2^(h–m), m) входит в список T, но сеть (i, m–1) входит в список N и/или множества узлов из списков C(i, m) и C(i+2^(h–m), m) имеют пустое пересечение, то (i, m) и (i+2^(h–m), m) удаляются из T, а (e1, i, m) и (e2, i+2^(h–m), m) добавляются в список R, где e1 – узел из C(i, m) с минимальным d(e1, i, m), а e2 – узел из C(i+2^(h–m), m) с минимальным d(e2, i+2^(h–m), m).

После завершения цикла, если список T не пуст, для каждой сети (i, m) из списка T производится добавление (e, i, m) в список R, где e – узел из C(i, m) с минимальным d(e, i, m). Затем список R передаётся подсистеме балансирования нагрузки 2 сети CDN.

В дополнительном варианте осуществления в цикле по m для всех (i, m) из списка T если m-ый бит слева адреса i равен 0, сеть (i+2^(h–m), m) входит в список T, сеть (i, m–1) не входит в список N и множества узлов из списков C(i, m) и C(i+2^(h–m), m) имеют непустое пересечение, то d(e, i, m–1) = d(e, i, m) + d(e, i+2^(h–m), m) для всех e из C(i, m–1). Также если m-ый бит слева адреса i равен 0, сеть (i+2^(h–m), m) не входит ни в список T, ни в список N и сеть (i, m–1) не входит в список N, то d(e, i, m–1) = 2*d(e, i, m) для всех e из C(i, m–1). Также если m-ый бит слева адреса i равен 1, сеть (i–2^(h–m), m) не входит ни в список T, ни в список N и сеть (i–2^(h–m), m–1) не входит в список N, то d(e, i–2^(h–m), m–1) = 2*d(e, i, m) для всех e из C(i–2^(h–m), m–1). Замена максимума на сумму и удвоение может производиться в тех случаях, когда предпочтительна минимизация средней сетевой задержки минимизации наихудшей сетевой задержки.

В дополнительном варианте осуществления в цикле по m для всех (i, m) из списка T если m-ый бит слева адреса i равен 0, сеть (i+2^(h–m), m) входит в список T, сеть (i, m–1) не входит в список N и множества узлов из списков C(i, m) и C(i+2^(h–m), m) имеют пустое пересечение, то (i, m) и (i+2^(h–m), m) удаляются из T, (i, m–1) добавляется в T, и либо C(i, m–1) = C(i, m), d(e, i, m–1) = d(e, i, m) и (e, i+2^(h–m), m) добавляется в список R, где e – узел из C(i+2^(h–m), m) с минимальным d(e, i+2^(h–m), m), либо C(i, m–1) = C(i+2^(h–m), m), d(e, i, m–1) = d(e, i+2^(h–m), m) и (e, i, m) добавляется в список R, где e – узел из C(i, m) с минимальным d(e, i, m). Иными словами, одна из сетей заменяется сетью с на единицу меньшей маской, а другая переносится в список R. Выбор сети, которая будет заменена на сеть с на единицу меньшей маской, осуществляется таким образом, чтобы обеспечить объединение с другими сетями из списка T на как можно большем количестве последующих итераций цикла в пределах заданной глубины поиска. В том случае, если в пределах заданной глубины поиска количество объединений совпадает, выбор осуществляется так, чтобы минимизировать наименьшее значение d(e, i, m) после этих объединений, а в случае совпадения значений d(e, i, m) – случайным образом. Например, если нам необходимо осуществить выбор между сетью (i1, m) с C(i1, m) = {e1, e2} и сетью (i2, m) с C(i2, m) = {e3, e4}, при этом на следующем шаге предстоит объединение с сетью (i3, m–1) с C(i3, m–1) = {e1, e3, e4}, а через шаг после этого с сетью (i4, m–2) с C(i4, m–2) = {e1, e5} (фиг. 2), то для сохранения в списке T будет выбрана сеть (i1, m), т.к. хотя обе рассматриваемые сети могут участвовать в объединении на следующем шаге, через один шаг объединение возможно только в случае выбора сети (i1, m) (фиг. 3). В том случае, когда возможны различные варианты списка C на следующем шаге, рассматриваются все возможные комбинации. Например, если нам необходимо заменить на (i1, m–1) либо сеть (i1, m) с C(i1, m) = {e1, e2}, либо сеть (i2, m) с C(i2, m) = {e3, e4}, а также заменить на (i3, m–1) либо сеть (i3, m) с C(i3, m) = {e2, e5}, либо сеть (i4, m) с C(i4, m) = {e6, e7}, причём на следующем шаге предстоит объединение сетей (i1, m–1) и (i3, m–1) (фиг. 4), то будут выбраны сети (i1, m) и (i3, m), т.к. эта единственная пара, которая может объединиться на следующем шаге (на основе узла e2) (фиг. 5).

Подсистема балансирования нагрузки 2 сети CDN осуществляет выбор оптимального узла сети CDN на основе IP-адреса пользователя. При выявлении префиксов, которые могут нуждаться в разделении, подсистема передаёт их список S, а также список всех прочих префиксов N и список узлов 3 сети CDN L подсистеме 1 оптимизации префиксов. Выявление предполагаемых к разделению префиксов может осуществляться на основе статистических данных, результатов измерений, административной конфигурации, либо иным образом.

При получении списка R от подсистемы 1 оптимизации префиксов подсистема балансирования нагрузки 2 сети CDN удаляет все предполагавшиеся для разделения сетевые префиксы (список S), и добавляет префиксы (i, m) с оптимальным узлом e, где (e, i, m) – элемент списка R.

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

Узлы 3 сети CDN предоставляют данные в ответ на запросы клиентов сети CDN. При получении списка A от подсистемы 1 оптимизации префиксов производится попытка измерения сетевых задержек для каждого IP-адреса из списка путём отправки ICMP Echo запросов, попытки установки TCP-соединения, или иным образом. Результаты измерений, состоящие из списка адресов, для которых удалось измерить сетевую задержку, и величины задержки для каждого из них, передаются подсистеме оптимизации префиксов.

В дополнительном варианте осуществления если узел 3 сети CDN не смог измерить сетевую задержку для IP-адреса, однако ранее сетевая задержка для данного адреса была успешно измерена, данный адрес и результат его последнего успешного измерения могут быть переданы подсистеме оптимизации префиксов 1.

Ниже приведён пример осуществления предложенного способа.

Пусть сеть CDN состоит из узлов L = {node1, node2, node3}

Пусть список предполагаемых для разделения сетевых префиксов S = {10.0.0.0/24, 10.0.1.0/24, 10.0.2.0/24}

Пусть список всех прочих префиксов N = {10.0.0.0/23, 10.0.2.18/32, 10.0.3.0/24}

Тогда список A, включающий все IP-адреса, входящие хотя бы в один из префиксов из списка S, будет содержать все IP-адреса в диапазоне 10.0.0.0-10.0.2.255 (768 адресов).

Пусть среди этих 768 адресов были успешно измерены следующие задержки:

• На node1 - 10.0.0.1 (25мс), 10.0.0.2 (25мс), 10.0.0.10 (30мс), 10.0.2.17 (10мс).

• На node2 - 10.0.0.1 (30мс), 10.0.0.10 (10мс), 10.0.2.16 (10мс).

• На node3 - 10.0.0.2 (20мс), 10.0.0.10 (15мс), 10.0.2.18 (10мс).

Пусть максимально допустимая разница задержек составляет 5мс.

Тогда список T будет содержать IP-адреса {10.0.0.1/32, 10.0.0.2/32, 10.0.0.10/32, 10.0.2.16/32, 10.0.2.17/32}, причём:

• С(10.0.0.1, 32) = {node1, node2}, d(node1, 10.0.0.1, 32) = 0, d(node2, 10.0.0.1, 32) = 5

• С(10.0.0.2, 32) = {node1, node3}, d(node1, 10.0.0.2, 32) = 5, d(node3, 10.0.0.2, 32) = 0

• С(10.0.0.10, 32) = {node2, node3}, d(node2, 10.0.0.10, 32) = 0, d(node3, 10.0.0.10, 32) = 5

• С(10.0.2.16, 32) = {node2}, d(node2, 10.0.2.16, 32) = 0

• С(10.0.2.17, 32) = {node1}, d(node1, 10.0.2.17, 32) = 0

В список T не входит адрес 10.0.2.18/32, т.к. он входит в список N. С(10.0.0.10, 32) не включает node1, т.к. время отклика с этого узла отличается от наилучшего больше чем на 5мс.

В этот момент список R пуст.

Далее выполняется цикл по маске m:

• m = 32:

• Для 10.0.0.1/32. Сеть 10.0.0.0/32 не входит ни в список T, ни в список N и сеть 10.0.0.0/31 не входит в список N, поэтому 10.0.0.1/32 заменяется на 10.0.0.0/31

• Для 10.0.0.2/32. Сеть 10.0.0.3/32 не входит ни в список T, ни в список N и сеть 10.0.0.2/31 не входит в список N, поэтому 10.0.0.2/32 заменяется на 10.0.0.2/31

• Для 10.0.0.10/32. Сеть 10.0.0.11/32 не входит ни в список T, ни в список N и сеть 10.0.0.10/31 не входит в список N, поэтому 10.0.0.10/32 заменяется на 10.0.0.10/31

• Для 10.0.2.16/32. Сеть 10.0.2.17/32 входит в список T, но С(10.0.2.16, 32) и С(10.0.2.17, 32) имеют пустое пересечение, поэтому 10.0.2.16/32 и 10.0.2.17/32 удаляются из списка T и добавляются в список R.

• Итог шага: T = {10.0.0.0/31, 10.0.0.2/31, 10.0.0.10/31} С(10.0.0.0, 31) = {node1, node2}, d(node1, 10.0.0.0, 31) = 0, d(node2, 10.0.0.0, 31) = 5

С(10.0.0.2, 31) = {node1, node3}, d(node1, 10.0.0.2, 31) = 5, d(node3, 10.0.0.2, 31) = 0

С(10.0.0.10, 31) = {node2, node3}, d(node2, 10.0.0.10, 31) = 0, d(node3, 10.0.0.10, 31) = 5

R = {(node2, 10.0.2.16, 32), (node1, 10.0.2.17, 32)}

• m = 31:

• Для 10.0.0.0/31. Сеть 10.0.0.2/31 входит ни в список T, не входи в список N и С(10.0.0.0, 31) и С(10.0.0.2, 31) имеют непустое пересечение, поэтому 10.0.0.0/31 и 10.0.0.2/31 заменяется на 10.0.0.0/30, С(10.0.0.0, 30) = {node1}, а d(node1, 10.0.0.0, 31) = 5.

• Для 10.0.0.10/31. Сеть 10.0.0.8/31 не входит ни в список T, ни в список N и сеть 10.0.0.8/30 не входит в список N, поэтому 10.0.0.10/31 заменяется на 10.0.0.8/30

• Итог шага: T = {10.0.0.0/30, 10.0.0.8/30} С(10.0.0.0, 30) = {node1}, d(node1, 10.0.0.0, 30) = 5

С(10.0.0.8, 30) = {node2, node3}, d(node2, 10.0.0.8, 30) = 0, d(node3, 10.0.0.8, 30) = 5
R = {(node2, 10.0.2.16, 32), (node1, 10.0.2.17, 32)}

• m = 30:

• Для 10.0.0.0/30. Сеть 10.0.0.4/30 не входит ни в список T, ни в список N и сеть 10.0.0.0/29 не входит в список N, поэтому 10.0.0.0/30 заменяется на 10.0.0.0/29

• Для 10.0.0.8/30. Сеть 10.0.0.12/30 не входит ни в список T, ни в список N и сеть 10.0.0.8/29 не входит в список N, поэтому 10.0.0.8/30 заменяется на 10.0.0.8/29

• Итог шага: T = {10.0.0.0/29, 10.0.0.8/29} С(10.0.0.0, 29) = {node1}, d(node1, 10.0.0.0, 29) = 5

С(10.0.0.8, 29) = {node2, node3}, d(node2, 10.0.0.8, 29) = 0, d(node3, 10.0.0.8, 29) = 5
R = {(node2, 10.0.2.16, 32), (node1, 10.0.2.17, 32)}

• m = 29:

• Для 10.0.0.0/29. Сеть 10.0.0.4/30 не входит ни в список T, ни в список N и сеть 10.0.0.0/29 не входит в список N, поэтому 10.0.0.0/30 заменяется на 10.0.0.0/29

• Для 10.0.0.8/30. Сеть 10.0.0.12/30 не входит ни в список T, ни в список N и сеть 10.0.0.8/29 не входит в список N, поэтому 10.0.0.8/30 заменяется на 10.0.0.8/29

• Итог шага: T = {10.0.0.0/29, 10.0.0.8/29} С(10.0.0.0, 29) = {node1}, d(node1, 10.0.0.0, 29) = 5

С(10.0.0.8, 29) = {node2, node3}, d(node2, 10.0.0.8, 29) = 0, d(node3, 10.0.0.8, 29) = 5
R = {(node2, 10.0.2.16, 32), (node1, 10.0.2.17, 32)}

• m = 28:

• Для 10.0.0.0/29. Сеть 10.0.0.8/29 входит в список T, но С(10.0.0.0, 29) и С(10.0.0.8, 29) имеют пустое пересечение, поэтому 10.0.0.0/29 и 10.0.0.8/29 удаляются из списка T и добавляются в список R.

• Итог шага: T = {}

R = {(node1, 10.0.0.0, 29), (node2, 10.0.0.8, 29), (node2, 10.0.2.16, 32), (node1, 10.0.2.17, 32)}

Список T опустел, поэтому цикл завершён.

Сети 10.0.0.0/24, 10.0.1.0/24 и 10.0.2.0/24 были успешно разделены на 10.0.0.0/29, 10.0.0.8/29, 10.0.2.16/32 и 10.0.2.17/32.

Итоговая таблица балансировки будет следующей:

• 10.0.0.0/23 => some_node

• 10.0.0.0/29 => node1

• 10.0.0.8/29 => node2

• 10.0.2.16/32 => node2

• 10.0.2.17/32 => node1

• 10.0.2.18/32 => some_node

• 10.0.3.0/24 => some_node

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

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

1. Способ разделения географически распределённых IP-сетей на подсети, характеризующийся тем, что

получают список предполагаемых для разделения сетевых префиксов S, список всех прочих префиксов N и список узлов сети CDN L,

затем генерируют список IP-адресов A, включающий все IP-адреса, входящие хотя бы в один из префиксов из списка S, далее список A передают на все узлы сети CDN из списка L для осуществления измерения сетевых задержек,

после получения результатов измерений сетевых задержек от узлов из списка L определяют минимальную сетевую задержку и строят временный список сетей T, состоящий из IP-сетей минимального размера и содержащий все IP-адреса из списка A, сетевая задержка которых была успешно измерена хотя бы с одного узла, при условии, что данная сеть не принадлежит списку N,

также для каждой сети (i, m) из списка T, где i – IP-адрес сети, а m – маска сети, запоминают метрику, состоящую из списка узлов сети CDN C(i, m) и значения разницы d(e, i, m) между измеренной с узла e сетевой задержкой сети (i, m) и минимальной сетевой задержкой для сети (i, m) среди всех узлов сети CDN, успешно измеривших сетевую задержку данной сети,

при этом если сетевая задержка не была успешно измерена с узла e либо если значение разницы d(e, i, m) превышает заданную величину, узел e и его d(e, i, m) не включают в метрику,

также создают пустой список R, элементами которого являются тройки (e, i, m),

далее каждую IP-сеть в списке T заменяют содержащей её IP-сетью с на единицу меньшей маской сети в том случае, если новая IP-сеть содержит только одну IP-сеть из списка T в качестве подсети, при этом метрику копируют,

также две IP-сети из списка T, входящие в одну и ту же IP-сеть с на единицу меньшей маской сети, заменяют этой сетью в том случае, если их метрики содержат хотя бы один общий узел, при этом метрика новой сети состоит из узлов, присутствующих в каждой из заменяемых сетей, со значением d(e, i, m), равным максимальному из значений d(e, i, m) заменяемых сетей,

в случае, когда замена двух IP-сетей по указанному критерию невозможна либо когда IP-сеть с на единицу меньшей маской сети будет совпадать с не предполагаемым для разделения сетевым префиксом либо содержать не предполагаемый для разделения сетевой префикс в качестве подсети, рассматриваемую IP-сеть либо пару IP-сетей удаляют из списка T и добавляют в список R, при этом для каждой добавляемой в список R сети также запоминают узел из её метрики с минимальным значением d(e, i, m),

этот процесс продолжают до тех пор, пока список T не опустеет либо пока в нём не останется IP-сетей с сетевыми масками больше заданной величины, и в этом случае оставшиеся в списке T сети также переносят в список R,

полученные IP-сети из списка R заменяют разделённые сетевые префиксы в подсистеме балансирования нагрузки сети CDN.

2. Способ по п.1, в котором при объединении двух IP-сетей из списка T значение d(e, i, m) новой сети вычисляют как сумму значений d(e, i, m) заменяемых сетей, а при замене IP-сети из списка T на IP-сеть с на единицу меньшей маской сети значение разницы d(e, i, m) удваивают.

3. Способ по п.1, в котором в случае невозможности объединения двух IP-сетей, одну из них удаляют из списка T и добавляют в список R, а другую – заменяют в списке T на IP-сеть с на единицу меньшей маской сети.

4. Способ по п.1, в котором если узел сети CDN не смог измерить сетевые задержки для IP-адреса, однако такие измерения были успешны ранее, используют результаты последнего успешного измерения.

5. Способ по п.1, в котором измерение сетевых задержек производят только для части входящих в предполагаемый для разделения сетевой префикс IP-адресов.

6. Способ по п.1, в котором если несколько узлов сети CDN обладают схожими сетевыми характеристиками, измерения производят только с одного из этих узлов, а при добавлении IP-сетей в систему балансирования нагрузки сети CDN оптимальный узел заменяют на узел со схожими сетевыми характеристиками.



 

Похожие патенты:

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

Изобретение относится к средствам для диспетчеризации пакетов. Технический результат - обеспечение тактовой синхронизации между терминалами за счет взаимодействия чувствительной ко времени сети и поддерживаемой проводной сети посредством сети беспроводной связи.

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

Изобретение относится к области информационной безопасности. Техническим результатом является повышение точности выявления скомпрометированных устройств на основе обнаружения DNS-туннелирования.

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

Изобретения относится к способу справедливого обслуживания очередей в маршрутизаторах транспортной сети связи. Технический результат - уменьшение сложность вычислений при поддержки большого количества классов или потоков обслуживания.

Изобретение относится к области защиты информации и, в частности, может быть использовано для исключения несанкционированного доступа к информации абонентов сотовых телефонов, поддерживающих стандарты GSM, DCS, UMTS, LTE. Техническим результатом изобретения является восстановление конфиденциальности информации абонента сотового телефона за счет изменения обслуживающей базовой станции.

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

Изобретение относится к вычислительной технике. Технический результат заключается в обеспечении достижения консенсуса распределенной базы данных без лидера.

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

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