RU2675148C1 - Способ организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения - Google Patents

Способ организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения Download PDF

Info

Publication number
RU2675148C1
RU2675148C1 RU2017122411A RU2017122411A RU2675148C1 RU 2675148 C1 RU2675148 C1 RU 2675148C1 RU 2017122411 A RU2017122411 A RU 2017122411A RU 2017122411 A RU2017122411 A RU 2017122411A RU 2675148 C1 RU2675148 C1 RU 2675148C1
Authority
RU
Russia
Prior art keywords
signature
stream
tcp
key
record
Prior art date
Application number
RU2017122411A
Other languages
English (en)
Inventor
Александр Владиславович Шалимов
Виталий Александрович Антоненко
Руслан Леонидович Смелянский
Евгений Викторович Чемерицкий
Original Assignee
Некоммерческое Партнерство "Центр Прикладных Исследований Компьютерных Сетей"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Некоммерческое Партнерство "Центр Прикладных Исследований Компьютерных Сетей" filed Critical Некоммерческое Партнерство "Центр Прикладных Исследований Компьютерных Сетей"
Priority to RU2017122411A priority Critical patent/RU2675148C1/ru
Application granted granted Critical
Publication of RU2675148C1 publication Critical patent/RU2675148C1/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Изобретение относится к средствам организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах. Технический результат заключается в расширении функциональности коммутационного устройства по детектированию отдельных потоков многопоточных соединений. Получают пакет данных с установленным флагом TCP SYN. Осуществляют анализ опциональных заголовков уровня TCP. При обнаружении среди заголовков опции MP_CAPABLE обновляют таблицу ключей коммутационного устройства. Осуществляют поиск в таблице по сигнатуре TCP потока - совокупности IP адресов и TCP портов для его отправителя и получателя: если в таблице ключей нет записи с соответствующей сигнатурой, формируют новую запись, включающую сигнатуру потока, ключ, содержащийся в опции MP_CAPABLE, и текущую временную метку. Если в таблице уже есть запись с указанной сигнатурой потока, обновляют указанную запись, актуализируя ключ МРТСР отправителя и временную метку, указанные внутри таблицы. Если в таблице есть запись с обратной сигнатурой, которая соответствует сигнатуре перехваченного потока с точностью до перестановки адресов отправителя и получателя, то используя сохраненный в таблице ключ отправителя и ключ получателя, содержащийся в опции перехваченного потока, вычисляют значение НМАР - хэш-функции, используемой для идентификации многопоточного соединения. 3 н. и 4 з.п. ф-лы, 3 ил.

Description

ОБЛАСТЬ ТЕХНИКИ
Техническое решение относится к области компьютерных сетей, а именно к технологиям повышения эффективности их работы с помощью реализации принципа многопоточной маршрутизации транспортных соединений. Указанный принцип подразумевает прозрачное для приложений разделение транспортных соединений на множество независимых с точки зрения сети потоков данных и балансировку этих потоков сразу по нескольким маршрутам между отправителем и получателем.
УРОВЕНЬ ТЕХНИКИ
Хотя из уровня техники известно множество различных способов балансировки трафика по нескольким разным маршрутам на графе топологии сети, большинство из них не предназначено для балансировки транспортных соединений.
Протокол Link Aggregation Control Protocol (LACP) позволяет объединять несколько параллельных линий связи между двумя коммутационными устройствами воедино, представляя эти связи в виде группы Link Aggregation Group (LAG). При этом возникает задача балансировки пакетов данных между линиями связи, объединенными в рамках одной группы. Однако выбор маршрута для каждого пакета здесь обычно происходит на основании заголовков протоколов канального (Ethernet) и сетевого (IP) уровня сетевого стека TCP/IP. Таким образом, LACP не только не способен балансировать трафик внутри одного и того же транспортного соединения, но и не способен балансировать соединения, установленные между одной и той же парой сетевых интерфейсов.
Технология Equal Cost Multi Path (ECMP) широко используется для балансировки трафика между альтернативными маршрутами с одинаковыми метриками качества многими современными протоколами маршрутизации (например, OSPF, EIGRP и другими). Данная технология обладает лучшей гранулярностью, нежели LACP - при выборе маршрута для отправки каждого конкретного пакета ЕСМР учитывает адреса не только сетевого (IP), но и транспортного (TCP, UDP и другие) уровней. Таким образом, сетевые устройства с ЕСМР не способны балансировать трафик одного и того же соединения - все пакеты соединения всегда будут отправляться по одному из доступных маршрутов.
Необходимо отметить, что LACP и ЕСМР не пытаются балансировать пакеты внутри одного соединения не столько из-за сложности построения надлежащего механизма перераспределения пакетов, сколько из-за технических ограничений протокола TCP. Поскольку данный протокол предназначен для надежной передачи пакетов данных через сеть, то он должен детектировать возможные потери пакетов при передаче, переотправляя потерянные пакеты повторно, пока они не будут доставлены получателю. Протокол TCP предполагает, что пакет с номером N потерян, если он все еще не был доставлен получателю на тот момент, когда тот получил уже несколько пакетов с большими номерами. При отправке пакетов одного и того же соединения разными маршрутами, пусть даже с одинаковыми метриками качества, время передачи этих пакетов может сильно варьироваться. Пакеты будут доставляться получателю не по порядку, и протокол TCP будет необоснованно детектировать потери пакетов там, где их не было. В то же время, при потере пакета протокол TCP предполагает, что сеть была перегружена, и снижает скорость передачи данных, что пагубно сказывается на общей производительности сети. Исследования показывают, что потери в скорости передачи данных вследствие неупорядоченной доставки пакетов значительно превышает выгоду от балансировки трафика соединения между несколькими маршрутами.
Протокол многопоточной маршрутизации МРТСР предлагает обойти указанную проблему, перенеся задачу переупорядочивания пакетов на конечные хосты. Отправитель МРТСР соединения самостоятельно разделяет пакеты каждого транспортного соединения на несколько самодостаточных TCP потоков, которые передают через сеть независимо друг от друга. Получатель МРТСР, в свою очередь, восстанавливает оригинальный порядок пакетов без снижения скорости передачи.
Совмещение технологий МРТСР и ЕСМР в ряде случаев может позволить балансировать пакеты одного транспортного соединения без снижения скорости передачи. Однако коммутатор с поддержкой ЕСМР не сможет выявлять зависимости между потоками: по воле случая ЕСМР может распределить на один маршрут сразу несколько потоков одного и того же МРТСР соединения. Таким образом, балансировка будет некорректной.
Еще одним недостатков связки МРТСР-ЕСМР является тот факт, что ЕСМР предлагает балансировать трафик между маршрутами лишь в том случае, если эти маршруты обладают одинаковыми (реже, близкими) метриками качества. В то же время критерии выбора маршрутов для соединений МРТСР могут быть несколько иными. Поскольку МРТСР соединения самостоятельно балансируют количество данных переданных по каждому потоку, то они могут увеличить эффективность работы сети и в том случае, когда задействованные ими потоки имеют разные метрики. Обычно основным критерием выбора альтернативных маршрутов для МРТСР является количество пересекающихся ребер в соответствующих им путях. Чем меньше это количество, тем больше вероятность того, что соединение сможет обойти узкое место и обеспечить большую скорость передачи данных.
Из уровня техники известен ряд работ, предлагающих обойти ограничения, которые возникают при облуживании многопоточных соединений МРСР с помощью технологии ЕСМР, в рамках программно-конфигурируемых сетей (ПКС). Протокол FDMP предлагает использовать контроллер ПКС для перехвата всех пакетов, передающиеся между отправителем и получателем на этапе установки каждого TCP потока, и определять принадлежность TCP потока к тому или иному соединению на основании анализа заголовков перехваченных пакетов. Обладая информацией о том, что несколько потоков относятся к одному и тому же МРТСР соединению, контроллер ПКС сможет маршрутизировать их таким образом, чтобы обеспечить каждый из них своим собственным маршрутом, имеющим минимальное пересечение с остальными маршрутами того же соединения.
Одной из основных проблем предложенного подхода к реализации маршрутизации многопоточных соединений в рамках ПКС является чрезмерная интенсивность обращения коммутаторов к контроллеру. Необходимость вовлечения контроллера для перехвата пакетов на этапе установки каждого TCP соединения накладывает серьезные ограничения на масштаб и интенсивность обмена данными внутри сети.
Одной из основных проблем при реализации указанной концепции на практике является сложность реализации привязки разных потоков данных к разным маршрутам. Представленное далее техническое решение предлагает одно из возможных решений указанной проблемы.
СУЩНОСТЬ ТЕХНИЧЕСКОГО РЕШЕНИЯ
Данное техническое решение направлено на устранение недостатков, присущих существующим аналогам.
Технический результат от использования данного технического решения заключается в расширении функциональности коммутационного устройства по детектированию отдельных потоков многопоточных соединений, определению связей между этими потоками и выбору надлежащих инструкций по обработке потоков на основании установленных связей.
Данный технический результат достигается за счет добавления двух новых таблиц - таблицы ключей и таблицы потоков, а так же изменений правил сопоставления пакетов с записями в таблице маршрутизации.
В одном из предпочтительных вариантов реализации предложен способ организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения, характеризующийся тем что: получают пакет данных с установленным флагом TCP SYN; осуществляют анализ опциональных заголовков уровня TCP; при обнаружении среди заголовков опции MP_CAPABLE обновляют таблицу ключей коммутационного устройства; осуществляют поиск в таблице по сигнатуре TCP потока - совокупности IP адресов и TCP портов для его отправителя и получателя: если в таблице ключей нет записи с соответствующей сигнатурой, формируют новую запись, включающую сигнатуру потока, ключ, содержащийся в опции MP_CAPABLE и текущую временную метку; если в таблице уже есть запись с указанной сигнатурой потока, обновляют указанную запись, актуализируя ключ МРТСР отправителя и временную метку, указанные внутри таблицы; если в таблице есть запись с обратной сигнатурой, которая соответствует сигнатуре перехваченного потока с точностью до перестановки адресов отправителя и получателя, то используя сохраненный в таблице ключ отправителя и ключ получателя, содержащийся в опции перехваченного потока, вычисляют значение НМАР - хэш-функции, используемой для идентификации многопоточного соединения; если в таблице потоков уже есть запись с указанной сигнатурой, то ее удаляют и создают запись о первом потоке нового соединения.
В случае обнаружения TCP SYN пакета с опцией MP_JOIN производят обновление таблицы потоков коммутационного устройства.
Проводят углубленный анализ заголовков так же и при перехвате пакетов с выставленными флагами TCP FIN и TCP RST.
При перехвате всякого TCP пакета осуществляют поиск соответствующей ему записи в таблице потоков по его сигнатуре, при ее нахождении обновляют значение ее временной метки.
Если в таблице коммутационного устройства не осталось свободного места, удаляют запись с самой старой временной меткой.
Данное техническое решение может быть выполнено в виде системы организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения, содержащую: по крайней мере, одно устройство обработки команд; по крайней мере, одно устройство хранения данных; одну или более компьютерных программ, загружаемых в, по крайней мере, одно вышеупомянутое устройство хранения данных и выполняемых на, по крайне мере, одном из вышеупомянутых устройств обработки команд, при этом одна или более компьютерных программ содержат следующие инструкции: получают пакет данных с установленным флагом TCP SYN; осуществляют анализ опциональных заголовков уровня TCP; при обнаружении среди заголовков опции MP_CAPABLE обновляют таблицу ключей коммутационного устройства; осуществляют поиск в таблице по сигнатуре TCP потока - совокупности IP адресов и TCP портов для его отправителя и получателя: если в таблице ключей нет записи с соответствующей сигнатурой, формируют новую запись, включающую сигнатуру потока, ключ, содержащийся в опции MP_CAPABLE и текущую временную метку; если в таблице уже есть запись с указанной сигнатурой потока, обновляют указанную запись, актуализируя ключ МРТСР отправителя и временную метку, указанные внутри таблицы; если в таблице есть запись с обратной сигнатурой, которая соответствует сигнатуре перехваченного потока с точностью до перестановки адресов отправителя и получателя, то используя сохраненный в таблице ключ отправителя и ключ получателя, содержащийся в опции перехваченного потока, вычисляют значение НМАР - хэш-функции, используемой для идентификации многопоточного соединения; если в таблице потоков уже есть запись с указанной сигнатурой, то ее удаляют и создают запись о первом потоке нового соединения.
В случае обнаружения TCP SYN пакета с опцией MP_JOIN производят обновление таблицы потоков коммутационного устройства.
Проводят углубленный анализ заголовков так же и при перехвате пакетов с выставленными флагами TCP FIN и TCP RST.
При перехвате всякого TCP пакета осуществляют поиск соответствующей ему записи в таблице потоков по его сигнатуре, при ее нахождении обновляют значение ее временной метки.
Если в таблице коммутационного устройства не осталось свободного места, удаляют запись с самой старой временной меткой.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 - фазы алгоритма дополнительной обработки пакетов многопоточных соединений;
Фиг. 2 - блок-схема способа организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения;
Фиг. 3 - система для реализации способа организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения.
ПОДРОБНОЕ ОПИСАНИЕ ТЕХНИЧЕСКОГО РЕШЕНИЯ
В данном устройстве под системой подразумевается компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций).
Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).
Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных. В роли устройства хранения данных могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, ПЗУ (постоянное запоминающее устройство), твердотельные накопители (SSD), оптические накопители информации (CD, DVD, Blue-Ray диски).
Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.
Данное техническое решение обеспечивает расширение функциональности коммутационного устройства по детектированию отдельных потоков многопоточных соединений, определению связей между этими потоками и выбору надлежащих инструкций по обработке потоков на основании установленных связей за счет добавления двух новых таблиц - таблицы ключей и таблицы потоков, а так же изменений правил сопоставления пакетов с записями в таблице маршрутизации.
Согласно предлагаемому техническому решению, предложен способ организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения, характеризующийся тем что: получают пакет данных с установленным флагом TCP SYN; осуществляют анализ опциональных заголовков уровня TCP; при обнаружении среди заголовков опции MP_CAPABLE обновляют таблицу ключей коммутационного устройства; осуществляют поиск в таблице по сигнатуре TCP потока - совокупности IP адресов и TCP портов для его отправителя и получателя: если в таблице ключей нет записи с соответствующей сигнатурой, формируют новую запись, включающую сигнатуру потока, ключ, содержащийся в опции MP_CAPABLE и текущую временную метку; если в таблице уже есть запись с указанной сигнатурой потока, обновляют указанную запись, актуализируя ключ МРТСР отправителя и временную метку, указанные внутри таблицы; если в таблице есть запись с обратной сигнатурой, которая соответствует сигнатуре перехваченного потока с точностью до перестановки адресов отправителя и получателя, то используя сохраненный в таблице ключ отправителя и ключ получателя, содержащийся в опции перехваченного потока, вычисляют значение НМАР - хэш-функции, используемой для идентификации многопоточного соединения; если в таблице потоков уже есть запись с указанной сигнатурой, то ее удаляют и создают запись о первом потоке нового соединения.
На Фиг. 1 изображены фазы алгоритма дополнительной обработки пакетов многопоточных соединений.
Предлагаемое техническое решение дополняет алгоритм обработки поступающих на коммутационные устройства пакеты данных с тем, чтобы направлять разные потоки многопоточных соединений по разным маршрутам через сеть. В процессе разбора и анализа заголовков пакетов коммутационное устройство, реализующее предложенный способ маршрутизации многопоточных соединений, должно опираться не только адреса второго и третьего (например, MAC и IP) уровней стека TCP/IP, но и учитывать некоторую информацию, передающуюся в заголовках протокола TCP.
В случае перехвата пакета с установленным флагом TCP SYN, коммутационное устройство должно осуществить анализ опциональных заголовков уровня TCP. При обнаружении среди заголовков опции MP_CAPABLE коммутатор должен обновить свою таблицу ключей. Для этого коммутатор осуществляет поиск в таблице по сигнатуре TCP потока - совокупности IP адресов и TCP портов для его отправителя и получателя. Действия коммутатора определяются одним из следующих сценариев:
В таблице ключей нет записи с соответствующей сигнатурой. Коммутатор формирует новую запись, включающую сигнатуру потока, ключ, содержащийся в опции MP_CAPABLE и текущую временную метку;
В таблице уже есть запись с указанной сигнатурой потока. Коммутатор обновляет указанную запись, актуализируя ключ МРТСР отправителя и временную метку, указанные внутри таблицы;
В таблице есть запись с обратной сигнатурой, которая соответствует сигнатуре перехваченного потока с точностью до перестановки адресов отправителя и получателя. Используя сохраненный в таблице ключ отправителя и ключ получателя, содержащийся в опции перехваченного потока, коммутатор вычисляет значение НМАР - хэш-функции, используемой для идентификации многопоточного соединения. Найденная в таблице ключей запись удаляется, а значения хэш-функции используется для формирования соответствующей записи в таблице потоков. Если в таблице потоков уже есть запись с указанной сигнатурой, то она удаляется, и коммутатор создает запись о первом потоке нового соединения;
В случае обнаружения TCP SYN пакета с опцией MP_JOIN - она используется многопоточным соединением при открытии дополнительного потока к уже существующим, коммутатор производит обновление своей таблицу потоков:
Содержащееся в опции значение НМАР используется для поиска записей, соответствующих ранее открытым потокам многопоточного соединения. Если таких потоков в таблице не найдено, то коммутатор сбрасывает пакет - он некорректен, поскольку пакет с выставленной опцией MP_JOIN не может быть первым. Многопоточное соединение обязано было начать свою работу с передачи пакетов с выставленной опцией MP_JOIN, которая бы использовалась коммутатором для формирования записи первого потока;
Если таблицу потоков содержит одну или несколько записей с указанным значением НМАР, то коммутатор добавляет к ним новую запись. При этом в качестве индекса потока используется значение, превышающее максимум среди индексов существующих потоков на единицу;
При формировании всякой новой записи в таблице значений коммутатор проверяет, используются ли пары адресов из сигнатуры потока в других записях таблицы. Если пара адресов задействуется в соединении с другим значением НМАР, то соответствующая запись из таблицы удаляется - тем самым гарантируется своевременное удаление устаревших записей, которые могут привести к нарушению консистентности таблицы потоков;
Коммутатор проводит углубленный анализ заголовков так же и при перехвате пакетов с выставленными флагами TCP FIN и TCP RST. Если указанные пакеты несут в себе опции многопоточного соединения, коммутатор удаляет соответствующие записи из содержащейся в нем таблицы потоков. В том случае, если заголовки пакета несут в себе опцию МРТСР FIN или МРТСР RST, коммутатор удаляет так же и другие записи, относящиеся к тому же многопоточному соединению.
Необходимо отметить, что как отдельные потоки, так и целые многопоточные соединения могут завершаться без пересылки пакетов с выставленными флагами FIN или RST. Поэтому таблица потоков может содержать в себе устаревшие и неактуальные записи. В результате, при достаточно продолжительной работе коммутатора, его таблица потоков неизбежно окажется переполненной. Для решения указанной проблемы коммутатор реализует механизм старения записей:
При перехвате всякого TCP пакета коммутатор осуществляет поиск соответствующей ему записи в таблице потоков по его сигнатуре. Если указанная запись была найдена, коммутатор обновляет значение ее временной метки;
Впоследствии, если на каком-то этапе своей работы коммутатор пытается сформировать новую запись, а в таблице коммутатора не осталось свободного места, он удаляет запись с самой старой временной меткой.
В результате сопоставления поступившего на коммутатор пакета с записями из таблицы потоков, коммутационное устройство получает порядковый номер соответствующего потока внутри многопоточного соединения, к которому он относится. В дальнейшем этот номер используется для того, чтобы дифференцировать маршрутизацию указанных потоков несмотря на то, что они направляются к одному и тому же абоненту сети. Существует несколько способов реализовать эту идею на практике:
Коммутационное устройство может иметь несколько таблиц маршрутизации, каждая из которых функционирует независимо от других таблиц. При обслуживании пакета, относящегося к k-му потоку многопоточного соединения, коммутатор использует таблицу k-м номером. Если номер потока превышает количество таблиц n, то маршрутизация пакета производится по правилам таблицы с номером k mod n;
Поскольку многие правила в таблицах могут совпадать, то более эффективным методом реализации указанного подхода, может оказаться использование единственной таблицы маршрутизации, роль ключа в которой будет играть совокупность маски для IP адреса назначения и номера потока. При этом появится возможность совместить многие правила, которые не могли быть объединены при представлении в виде множества таблиц.
Необходимо отметить, что оба приведенных способа могут быть реализованы на современных коммутационных устройствах с поддержкой протокола OpenFlow без необходимости дополнения их функциональных возможностей. Указанный протокол предоставляет как возможности для построения конвейеров обработки пакетов, состоящих из множества таблиц, так и выбирать наборы атрибутов пакетов, по которым осуществляется сопоставление в той или иной таблице. Например, если коммутатор запишет в атрибут METADATA порядковый номер пакета, вычисленный на начальном этапе его обработки, то его смогут использовать все последующие таблицы конвейера OpenFlow.
На Фиг. 2 изображена блок-схема способа организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения.
Согласно Фиг. 3, примерная система для реализации технического решения включает в себя устройство обработки данных 300. Устройство обработки данных 300 может быть сконфигурировано как клиент, сервер, мобильное устройство или любое другое вычислительное устройство, которое взаимодействует с данными в системе совместной работы, основанной на сети. В самой базовой конфигурации устройство обработки данных 300, как правило, включает в себя, по меньшей мере, один процессор 301 и устройство хранения данных 302. В зависимости от точной конфигурации и типа вычислительного устройства системная память 302 может быть энергозависимой (например, оперативное запоминающее устройство (ОЗУ, RAM)), энергонезависимой (например, постоянное запоминающее устройство (ПЗУ, ROM)) или некоторой их комбинацией. Устройство хранения данных 302, как правило, включает в себя одну или более прикладных программ 303 и может включать в себя данные 304 программ. Настоящее техническое решение как способ, описанное в деталях выше, реализовано в прикладных программах 303.
Устройство обработки данных 300 может иметь дополнительные особенности или функциональные возможности. Например, устройство обработки данных 300 может также включать в себя дополнительные устройства хранения данных (съемные и несъемные), такие как, например, магнитные диски, оптические диски или лента. Такие дополнительные хранилища проиллюстрированы на Фиг. 3 посредством несъемного хранилища 307 и съемного хранилища 308. Компьютерные носители данных могут включать в себя энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или при помощи любой технологии для хранения информации. Устройство хранения данных 302, несъемное хранилище 307 и съемное хранилище 308 являются примерами компьютерных носителей данных. Компьютерные носители данных включают в себя, но не в ограничительном смысле, оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ), электрически стираемое программируемое ПЗУ (EEPROM), флэш-память или память, выполненную по другой технологии, ПЗУ на компакт-диске (CD-ROM), универсальные цифровые диски (DVD) или другие оптические запоминающие устройства, магнитные кассеты, магнитные ленты, хранилища на магнитных дисках или другие магнитные запоминающие устройства, или любую другую среду, которая может быть использована для хранения желаемой информации и к которой может получить доступ устройство обработки данных 300. Любой такой компьютерный носитель данных может быть частью устройства 300. Устройство обработки данных 300 может также включать в себя устройство(а) 305 ввода, такие как клавиатура, мышь, перо, устройство с речевым вводом, устройство сенсорного ввода, и так далее. Устройство (а) 306 вывода, такие как дисплей, динамики, принтер и тому подобное, также могут быть включены в состав устройства.
Устройство обработки данных 300 содержит коммуникационные соединения, которые позволяют устройству связываться с другими вычислительными устройствами, например по сети. Сети включают в себя локальные сети и глобальные сети наряду с другими большими масштабируемыми сетями, включая, но не в ограничительном смысле, корпоративные сети и экстрасети. Коммуникационное соединение является примером коммуникационной среды. Как правило, коммуникационная среда может быть реализована при помощи машиночитаемых инструкций, структур данных, программных модулей или других данных в модулированном информационном сигнале, таком как несущая волна, или в другом транспортном механизме, и включает в себя любую среду доставки информации. Термин «модулированный информационный сигнал» означает сигнал, одна или более из его характеристик изменены или установлены таким образом, чтобы закодировать информацию в этом сигнале. Для примера, но без ограничения, коммуникационные среды включают в себя проводные среды, такие как проводная сеть или прямое проводное соединение, и беспроводные среды, такие как акустические, радиочастотные, инфракрасные и другие беспроводные среды. Термин «машиночитаемый носитель», как употребляется в этом документе, включает в себя как носители данных, так и коммуникационные среды.
Специалисту в данной области, очевидно, что конкретные варианты осуществления способа и системы организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения описаны здесь в целях иллюстрации, допустимы различные модификации, не выходящие за рамки и сущности объема изобретения.

Claims (18)

1. Способ организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения, характеризующийся тем, что:
• получают пакет данных с установленным флагом TCP SYN;
• осуществляют анализ опциональных заголовков уровня TCP;
• при обнаружении среди заголовков опции MP_CAPABLE обновляют таблицу ключей коммутационного устройства;
• осуществляют поиск в таблице по сигнатуре TCP потока - совокупности IP адресов и TCP портов для его отправителя и получателя:
Figure 00000001
если в таблице ключей нет записи с соответствующей сигнатурой, формируют новую запись, включающую сигнатуру потока, ключ, содержащийся в опции MP_CAPABLE, и текущую временную метку;
Figure 00000002
если в таблице уже есть запись с указанной сигнатурой потока, обновляют указанную запись, актуализируя ключ МРТСР отправителя и временную метку, указанные внутри таблицы;
Figure 00000003
если в таблице есть запись с обратной сигнатурой, которая соответствует сигнатуре перехваченного потока с точностью до перестановки адресов отправителя и получателя, то используя сохраненный в таблице ключ отправителя и ключ получателя, содержащийся в опции перехваченного потока, вычисляют значение НМАР - хэш-функции, используемой для идентификации многопоточного соединения;
Figure 00000004
если в таблице потоков уже есть запись с указанной сигнатурой, то ее удаляют и создают запись о первом потоке нового соединения.
2. Способ по п. 1, характеризующийся тем, что в случае обнаружения TCP SYN пакета с опцией MP_JOIN производят обновление таблицы потоков коммутационного устройства.
3. Способ по п. 1, характеризующийся тем, что проводят углубленный анализ заголовков так же и при перехвате пакетов с выставленными флагами TCP FIN и TCP RST.
4. Способ по п. 1, характеризующийся тем, что при перехвате всякого TCP пакета осуществляют поиск соответствующей ему записи в таблице потоков по его сигнатуре, при ее нахождении обновляют значение ее временной метки.
5. Способ по п. 1, характеризующийся тем, что если в таблице коммутационного устройства не осталось свободного места, удаляют запись с самой старой временной меткой.
6. Система организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения, содержащая:
• по крайней мере, одно устройство обработки команд;
• по крайней мере, одно устройство хранения данных;
• одну или более компьютерных программ, загружаемых в, по крайней мере, одно вышеупомянутое устройство хранения данных и выполняемых на, по крайне мере, одном из вышеупомянутых устройств обработки команд, при этом одна или более компьютерных программ содержат инструкции для выполнения способа по любому из пп. 1-5.
7. Машиночитаемый носитель данных, содержащий исполняемые одним или более процессором машиночитаемые инструкции, которые при их исполнении реализуют выполнение способа организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения по любому из пп. 1-5.
RU2017122411A 2017-09-11 2017-09-11 Способ организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения RU2675148C1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2017122411A RU2675148C1 (ru) 2017-09-11 2017-09-11 Способ организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2017122411A RU2675148C1 (ru) 2017-09-11 2017-09-11 Способ организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения

Publications (1)

Publication Number Publication Date
RU2675148C1 true RU2675148C1 (ru) 2018-12-17

Family

ID=64753467

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2017122411A RU2675148C1 (ru) 2017-09-11 2017-09-11 Способ организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения

Country Status (1)

Country Link
RU (1) RU2675148C1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2778082C1 (ru) * 2021-06-11 2022-08-15 федеральное государственное казенное военное образовательное учреждение высшего образования "Военная орденов Жукова и Ленина Краснознаменная академия связи имени Маршала Советского Союза С.М. Буденного" Министерства обороны Российской Федерации Способ и устройство балансировки нагрузки в программно-конфигурируемой сети

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2387002C2 (ru) * 2003-06-30 2010-04-20 Майкрософт Корпорейшн Выравнивание сетевой нагрузки с помощью управления соединением
WO2015094043A1 (en) * 2013-12-18 2015-06-25 Telefonaktiebolaget L M Ericsson (Publ) Multipath tcp subflow establishing on single ip connection
WO2016049933A1 (zh) * 2014-09-30 2016-04-07 华为技术有限公司 多路径传输控制协议通信的地址管理装置、系统及方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2387002C2 (ru) * 2003-06-30 2010-04-20 Майкрософт Корпорейшн Выравнивание сетевой нагрузки с помощью управления соединением
WO2015094043A1 (en) * 2013-12-18 2015-06-25 Telefonaktiebolaget L M Ericsson (Publ) Multipath tcp subflow establishing on single ip connection
US20160309534A1 (en) * 2013-12-18 2016-10-20 Telefonaktiebolaget Lm Ericsson (Publ) Multipath tcp subflow establishing on single ip connection
WO2016049933A1 (zh) * 2014-09-30 2016-04-07 华为技术有限公司 多路径传输控制协议通信的地址管理装置、系统及方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2778082C1 (ru) * 2021-06-11 2022-08-15 федеральное государственное казенное военное образовательное учреждение высшего образования "Военная орденов Жукова и Ленина Краснознаменная академия связи имени Маршала Советского Союза С.М. Буденного" Министерства обороны Российской Федерации Способ и устройство балансировки нагрузки в программно-конфигурируемой сети

Similar Documents

Publication Publication Date Title
US8630294B1 (en) Dynamic bypass mechanism to alleviate bloom filter bank contention
US10735325B1 (en) Congestion avoidance in multipath routed flows
US8799507B2 (en) Longest prefix match searches with variable numbers of prefixes
US10693790B1 (en) Load balancing for multipath group routed flows by re-routing the congested route
US9106443B2 (en) Forwarding table optimization with flow data
US10778588B1 (en) Load balancing for multipath groups routed flows by re-associating routes to multipath groups
US9614930B2 (en) Virtual machine mobility using OpenFlow
US9363180B2 (en) Service chaining in a cloud environment using Software Defined Networking
US9049131B2 (en) Network system and load balancing method
RU2612599C1 (ru) Устройство управления, система связи, способ управления коммутаторами и программа
US20150215236A1 (en) Method and apparatus for locality sensitive hash-based load balancing
US9590922B2 (en) Programmable and high performance switch for data center networks
US20160006663A1 (en) Method and system for compressing forward state of a data network
US20170310594A1 (en) Expedited fabric paths in switch fabrics
US10104000B2 (en) Reducing control plane overload of a network device
EP1836808A2 (en) Fibre channel forwarding information base
EP3512165B1 (en) Individual network device forwarding plane reset
US20150341267A1 (en) Control apparatus, communication apparatus, communication system, switch control method, and program
JPWO2014098114A1 (ja) パケット処理装置、フローエントリの配置方法及びプログラム
Miguel-Alonso A research review of OpenFlow for datacenter networking
US20230246940A1 (en) Selecting and deduplicating forwarding equivalence classes
RU2675148C1 (ru) Способ организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения
US9590897B1 (en) Methods and systems for network devices and associated network transmissions
US10218612B2 (en) Method and a device for defining implementation of a look-up table for a network element of a software-defined network
US10862801B1 (en) Selective media access control (MAC) learning and purging to reduce flooding and replication in a network

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20200912