СПОСОБ ПЕРЕДАЧИ ДАННЫХ В ЦИФРОВЫХ СЕТЯХ ПЕРЕДАЧИ ДАННЫХ ПО ПРОТОКОЛУ ТСР/IP ЧЕРЕЗ НТТР Российский патент 2014 года по МПК H04L29/00 H04L9/00 H04J3/00 

Описание патента на изобретение RU2530663C2

Область техники, к которой относится изобретение

Предлагаемое изобретение относится к сетевым технологиям, в частности к способам передачи данных в цифровых сетях передачи данных по протоколу TCP/IP через HTTP.

Уровень техники

При передаче цифровых данных в форме пакетов по протоколу TCP/IP через HTTP соединение часто возникает задача повышения скорости передачи. Проблема низкой скорости передачи возникает при передаче TCP трафика через HTTP соединение, которое также использует TCP, а снижение скорости обусловлено тем, что происходит наложение TCP задержек двух соединений, это приводит к падению скорости TCP соединения, передаваемого через HTTP соединение. Это относится как к обычным соединениям, так и к соединениям, в которых применяется шифрование исходных пакетов данных и формирование зашифрованных данных в стандартном виде согласно параметрам используемых протоколов перед последующей их передачей по сети (инкапсуляция).

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

Известен способ обнаружения в установленном соединении использования алгоритма Нэйгла (Nagle algorithm) [l], реализуемый с помощью системы, включающей

сетевой модуль, встроенный в компьютер-отправитель и обеспечивающий

- формирование соединения между компьютером-отправителем и компьютером-приемником сообщений;

- прием и передачу сетевых пакетов в соединении между клиентом и сервером;

- определение размера и формирование совокупности пакетов (сегментов) для передачи через установленное соединение;

- обнаружение использования алгоритма Нэйгла в установленном соединении;

- отключение использования алгоритма Нэйгла в установленном соединении.

Способ включает:

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

- создание сетевым модулем одного или более сегментов, которые будут переданы в компьютерную систему-приемник через сетевое соединение;

- определение сетевым модулем, является ли один или более сегментов, которые будут переданы, малыми сегментами, и подтвержден ли прием ранее переданного малого сегмента компьютером-приемником;

- если прием ранее переданного малого сегмента не подтвержден компьютером-приемником, и, по крайней мере, один из сегментов, которые будут переданы, является малым сегментом, обнаружение с помощью датчика алгоритма Нэйгла в компьютерной системе-отправителе использования алгоритма Нэйгла в сетевом соединении; и

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

Способ также предусматривает, в частных случаях реализации

- создание компьютерной системой-отправителем одного или более сегментов, которые будут переданы к компьютерную систему-приемник в ответ на полученный запрос о передаче данных;

- определение компьютерной системой-отправителем, является ли один или более сегментов, которые будут переданы, малыми сегментами, включает определение компьютерной системой-отправителем, является ли один или более сегментов меньше, чем максимальный объем сегмента (maximum segment size, MSS) для сетевого соединения;

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

В известном способе не предложено какого-либо решения для повышения скорости передачи при инкапсуляции пакетов протокола TCP/IP в HTTP.

Известен способ обеспечения максимальной передаваемой величины сетевых пакетов [2], реализуемый с помощью системы, включающей

сетевой модуль, встроенный в компьютер-клиент и обеспечивающий

- формирование соединения между компьютером-клиентом и компьютером-сервером;

- прием и передачу сетевых пакетов в соединении между клиентом и сервером;

- шифрование сетевых пакетов для установленного соединения;

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

способ включает

- формирование сетевым модулем соединения между клиентом и сервером, причем сетевой модуль выполняет шифрование множества сетевых пакетов для соединения;

- получение сетевым модулем от сервера через соединение множества сетевых пакетов, предназначенных для клиента, причем множество сетевых пакетов передаются серверу с максимальным значением величины;

- определение превышения размера пакета в результате шифрования для каждого из множества сетевых пакетов;

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

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

При реализации способа предусматривается также возможность формирования соединения, включающего SSL (secure socket layer) или защищенного туннеля транспортного уровня.

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

Описанный способ принимается за прототип.

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

Раскрытие изобретения

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

Для этого предлагается способ повышения быстродействия, реализуемый с помощью системы, включающей сетевые модули, встроенные в компьютер-клиент и компьютер-сервер, и обеспечивающие

- формирование соединения между компьютером-клиентом и компьютером-сервером;

- прием и передачу сетевых пакетов в соединении между клиентом и сервером;

- туннелирование сетевых пакетов;

причем между клиентом и сервером имеется, по крайней мере, два прокси-сервера, связанных с клиентом и сервером,

способ, заключающийся в том, что

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

- создают туннельное сообщение в сетевом модуле клиента;

- передают туннельное сообщение серверу;

- подбирают величину задержки Т по признаку максимальной скорости передачи туннельного сообщения;

- определяют объем пакета с фиктивными данными Q по формуле

Q = i = 1 N 1 M S S i , ( 1 )

где MSSi - значение максимального объема сегмента в TCP соединениях между i прокси-сервером и i+1 прокси сервером;

N - количество прокси-серверов;

- отправляет из клиента пакет с фиктивными данными объемом Q через Т секунд с момента последней передачи нефиктивных данных через НТТР-туннель,

- принимают на сервере туннельное сообщение;

- отключают алгоритм Нэйгла для TCP соединения в сетевых модулях клиента и сервера;

- отключают алгоритм TCP delayed acknowledge в сетевых модулях клиента и сервера.

Отключение алгоритмов Нэйгла и TCP delayed acknowledge в сетевых модулях клиента и сервера для TCP соединения позволяет увеличить скорость передачи на участке клиент - прокси-сервер и сервер - прокси-сервер. Это происходит за счет того, что передача через TCP туннель будет происходить без задержек, которые вносят алгоритмы Нэйгла и TCP delayed acknowledge.

Для того чтобы предотвратить задержки на участках между прокси-серверами и, соответственно, повысить скорость передачи, достаточно чтобы на прокси-серверах не срабатывал алгоритм Нэйгла. Поскольку алгоритм Нэйгла задерживает отправку пакета, если размер их меньше MSS, то для предотвращения задержки передачи данных достаточно отправить пакет с фиктивными данными, объем которого равен сумме объемов MSS на всех участках между прокси-серверами. Отправка пакета с фиктивными данными заставит прокси-серверы передать все данные, которые были задержаны алгоритмом Нэйгла, дальше по цепочке.

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

Осуществление изобретения

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

В качестве ПО, обеспечивающего выполнение обычных функций прокси-сервера, на компьютеры, выполняющие функции прокси-серверов, может быть, например, установлен бесплатный программный пакет Squid.

Компьютер клиент и сервер могут работать под управлением операционной системы (ОС) общего назначения, например Microsoft Windows 7. Для реализации программного модуля ОС должна предоставлять:

- программный интерфейс для работы с транспортным протоколом TCP (в Windows 7 это - API сокетов);

- программный интерфейс, позволяющий управлять сетевым протоколом IP (в ОС Windows 7 это - API Windows Filtering Platform);

- возможность отключения алгоритмов Нэйгла и TCP delayed acknowledge (в ОС Windows 7 такая возможность может быть реализована путем редактирования реестра).

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

- отключение алгоритмов Нэйгла и TCP delayed acknowledge;

- формирование соединения с сервером через два прокси-сервера (НТТР-туннель) с помощью запроса к серверу;

- перенаправление исходящего IP трафика в НТТР-туннель;

- формирует входящий IP трафик, принятый из НТТР-туннеля;

- формирование пакета с фиктивными данными объемом Q через Т секунд с момента последней передачи нефиктивных (полезных) данных через НТТР-туннель.

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

- отключение алгоритмов Нэйгла и TCP delayed acknowledge;

- формирование соединения с клиентом через два прокси-сервера (НТТР-туннель) после получения запроса от клиента;

- перенаправление исходящего IP трафика в НТТР-туннель;

- формирует входящий IP трафик, принятый из HTTP туннеля;

- формирование пакета с фиктивными данными объемом Q через Т секунд с момента последней передачи нефиктивных (полезных) данных через НТТР-туннель.

На компьютере-клиенте и сервере загружаются соответствующие программные модули, с заданием следующих параметров для каждого программного модуля:

- количество прокси-серверов и значение MSS на участках между прокси-серверами;

- значение T;

- параметры для идентификации IP трафика, который будет перенаправляться в туннель (например, IP адреса, номер прикладного протокола и др.).

Значение параметра T определяется путем последовательного перебора значений T с определенным шагом в заранее установленном интервале времени (практически можно принять интервал 0-500 мс с шагом 5-10 мс). Для каждого значения T запускается ПО сетевого модуля и определяется пропускная способность соединения с помощью протокола TCP. Тестирование пропускной способности можно выполнить, например, с помощью бесплатного программного пакета Iperf. Искомое значение T определяется по максимальной величине пропускной способности соединения при посылке пакетов объемом, не превышающим MSS на участке между двумя прокси-серверами.

Затем в ПО сетевых модулей клиента и сервера определяют объем Q пакета с фиктивными данными по формуле

Q = i = 1 N 1 M S S i ,

где MSSi - значение максимального объем сегмента в TCP соединениях между i прокси-сервером и i+1 прокси-сервером;

N - количество прокси-серверов.

После этого из клиента отправляют фиктивные данные объемом Q через T секунд с момента последней передачи нефиктивных данных через НТТР-туннель, принимают на сервере туннельное сообщение и отключают алгоритм Нэйгла и TCP delayed acknowledge для TCP соединения в сетевых модулях клиента и сервера.

В случае, если заранее точно неизвестно количество прокси-серверов, для расчета объема Q пакета с фиктивными данными по формуле (1) количество прокси-серверов N принимается минимально возможным и равным 2. Однако в этом случае максимальная скорость передачи не достигается.

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

Источники информации

1. Патент США №7970864, приоритет от 02.04.2009 г., МКИ G06F 15/16.

2. Патент США №8014421, приоритет от 15.09.2009 г., МКИ H04J 3/16.

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

название год авторы номер документа
СПОСОБ УСТАНОВЛЕНИЯ СОЕДИНЕНИЯ (ВАРИАНТЫ), СПОСОБ ПЕРЕДАЧИ ПАКЕТА ДАННЫХ И СИСТЕМА УДАЛЕННОГО ДОСТУПА 2009
  • Садасиван Биджу
RU2533063C2
Система двухсторонней связи в реальном времени с использованием протокола НТТР 2014
  • Карккаинен Туомас Микаел
  • Хаккарайнен Валттери
  • Калево Осси
RU2635220C2
УПРАВЛЯЮЩЕЕ УСТРОЙСТВО И СПОСОБ УПРАВЛЕНИЯ ПЕРЕДАЧЕЙ ПОТОКА ВИДЕОДАННЫХ ПО СЕТИ НА СЕТЕВОЕ ПОЛЬЗОВАТЕЛЬСКОЕ УСТРОЙСТВО 2013
  • Купсин Евгений Вениаминович
  • Крук Евгений Аврамович
  • Сергеев Михаил Борисович
RU2571732C2
СИСТЕМЫ И СПОСОБЫ ИСПОЛЬЗОВАНИЯ СООБЩЕНИЙ DNS ДЛЯ СЕЛЕКТИВНОГО СБОРА КОМПЬЮТЕРНЫХ КРИМИНАЛИСТИЧЕСКИХ ДАННЫХ 2020
  • Мирческу Даньел-Александру
RU2776349C1
Способ и устройство пересылки пакетов для гетерогенной сети 2020
  • Цзинь, Хао
  • Ту, Яофэн
  • Го, Бинь
  • Хань, Иньцзюнь
  • Сюй, Цзюньнин
RU2822609C1
УСТРОЙСТВО СВЯЗИ И СПОСОБ ОБХОДА БРАНДМАУЭРА ШЛЮЗА УРОВНЯ ПРИЛОЖЕНИЯ ПРИ УСТАНОВЛЕНИИ RTC-СОЕДИНЕНИЯ СВЯЗИ МЕЖДУ RTC-КЛИЕНТОМ И RTC-СЕРВЕРОМ 2015
  • Штах Томас
  • Тотцке Юрген
  • Клагхофер Карл
RU2660620C1
СИСТЕМА АГРЕГАЦИИ СЕТЕВЫХ ДАННЫХ В КОМПЬЮТЕРНЫХ СЕТЯХ 2019
  • Марченков Алексей Александрович
  • Есин Антон Анатольевич
RU2694025C1
СПОСОБ ИЗОЛЯЦИИ ПАКЕТОВ ДАННЫХ, ПЕРЕДАВАЕМЫХ ПО СЕТЯМ ОБЩЕГО ПОЛЬЗОВАНИЯ В ФОРМАТЕ ПРОТОКОЛОВ СЕМЕЙСТВА TCP/IP, С ПОМОЩЬЮ КОМБИНАЦИИ СПОСОБОВ МАСКИРОВАНИЯ, ШИФРОВАНИЯ И КОНТРОЛЯ ПОЛУЧАЕМЫХ ДАННЫХ 2021
  • Кочанов Вячеслав Германович
  • Федоров Серафим Игоревич
  • Фролов Антон Владимирович
RU2762157C1
БЕСПРОВОДНОЕ УСТРОЙСТВО ИНИЦИАЛИЗАЦИИ 2001
  • Спирман Энтони К.(Us)
  • Томпкинс Эндрю Э.(Us)
RU2269873C2
Способ работы межсетевого экрана 2017
  • Оладько Алексей Юрьевич
RU2667805C1

Реферат патента 2014 года СПОСОБ ПЕРЕДАЧИ ДАННЫХ В ЦИФРОВЫХ СЕТЯХ ПЕРЕДАЧИ ДАННЫХ ПО ПРОТОКОЛУ ТСР/IP ЧЕРЕЗ НТТР

Изобретение относится к области передачи данных в цифровых сетях передачи данных по протоколу TCP/IP через HTTP. Техническим результатом является повышение скорости передачи данных между клиентом и сервером. Способ передачи данных в цифровых сетях передачи данных по протоколу TCP/IP через HTTP реализуется с помощью системы, включающей сетевые модули, встроенные в компьютер-клиент и компьютер-сервер и обеспечивающие формирование соединения между компьютером-клиентом и компьютером-сервером; прием и передачу сетевых пакетов в соединении между клиентом и сервером; шифрование сетевых пакетов для установленного соединения: туннелирование сетевых пакетов; причем между клиентом и сервером имеется, по крайней мере, два прокси-сервера, связанных с клиентом и сервером, способ заключается в том, что формируют с помощью сетевых модулей соединение между клиентом и сервером, причем соединение устанавливается, по крайней мере, через два прокси-сервера; создают туннельное сообщение в сетевом модуле клиента; передают туннельное сообщение серверу; подбирают величину задержки T по признаку максимальной скорости передачи туннельного сообщения между клиентом и сервером, выполняя следующие действия: устанавливают интервал изменения времени T и шаг по времени; выполняют измерение скорости передачи туннельного сообщения для каждого значения T в интервале; выбирают значение T, соответствующее максимальной скорости передачи; определяют объем пакета с фиктивными данными Q; отправляют из клиента пакет с фиктивными данными объемом Q через T секунд с момента последней передачи нефиктивных данных через НТТР-туннель, принимают на сервере туннельное сообщение; отключают алгоритм Нэйгла для TCP соединения в сетевых модулях клиента и сервера; отключают алгоритм TCP delayed acknowledgment в сетевых модулях клиента и сервера.

Формула изобретения RU 2 530 663 C2

Способ передачи данных в цифровых сетях передачи данных по протоколу TCP/IP через HTTP, реализуемый с помощью системы, включающей сетевые модули, встроенные в компьютер-клиент и компьютер-сервер и обеспечивающие
формирование соединения между компьютером-клиентом и компьютером-сервером;
прием и передачу сетевых пакетов в соединении между клиентом и сервером;
шифрование сетевых пакетов для установленного соединения:
туннелирование сетевых пакетов;
причем между клиентом и сервером имеется, по крайней мере, два прокси-сервера, связанных с клиентом и сервером,
способ, заключающийся в том, что
формируют с помощью сетевых модулей соединение между клиентом и сервером, причем соединение устанавливается, по крайней мере, через два прокси-сервера;
создают туннельное сообщение в сетевом модуле клиента;
передают туннельное сообщение серверу;
подбирают величину задержки T по признаку максимальной скорости передачи туннельного сообщения между клиентом и сервером, выполняя следующие действия:
устанавливают интервал изменения времени T и шаг по времени;
выполняют измерение скорости передачи туннельного сообщения для каждого значения T в интервале;
выбирают значение T, соответствующее максимальной скорости передачи;
определяют объем пакета с фиктивными данными Q по формуле
,
где MSSi - значение максимального объем сегмента в TCP соединениях между i прокси-сервером и i+1 прокси-сервером;
N - количество прокси-серверов;
отправляют из клиента пакет с фиктивными данными объемом Q через T секунд с момента последней передачи нефиктивных данных через НТТР-туннель,
принимают на сервере туннельное сообщение;
отключают алгоритм Нэйгла для TCP соединения в сетевых модулях клиента и сервера;
отключают алгоритм TCP delayed acknowledgment в сетевых модулях клиента и сервера.

Документы, цитированные в отчете о поиске Патент 2014 года RU2530663C2

US 7970864 B2, 28.06.2011
US 8014421 B2, 06.09.2011
Изложница с суживающимся книзу сечением и с вертикально перемещающимся днищем 1924
  • Волынский С.В.
SU2012A1
US 7873065 B1, 18.01.2011
ВЫРАВНИВАНИЕ СЕТЕВОЙ НАГРУЗКИ С ПОМОЩЬЮ УПРАВЛЕНИЯ СОЕДИНЕНИЕМ 2004
  • Гбадегесин Аболаде
  • Хаус Шон Б.
  • Хайдри Аамер
  • Джой Джозеф М.
  • Канийар Санджай Н.
  • Велланд Роберт В.
RU2387002C2

RU 2 530 663 C2

Авторы

Тычина Леонид Анатольевич

Даты

2014-10-10Публикация

2012-11-16Подача