способ передачи данных в цифровых сетях передачи данных по протоколу тср/ip через нттр

Классы МПК:H04L29/00 Устройства, установки, цепи или системы, не отнесенные ни к одной из групп  1/00
H04L9/00 Устройство для секретной или скрытой связи
H04J3/00 Многоканальные системы с временным разделением каналов
Автор(ы):
Патентообладатель(и):Открытое акционерное общество "Информационные технологии и коммуникационные системы" (RU)
Приоритеты:
подача заявки:
2012-11-16
публикация патента:

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

Формула изобретения

Способ передачи данных в цифровых сетях передачи данных по протоколу TCP/IP через HTTP, реализуемый с помощью системы, включающей сетевые модули, встроенные в компьютер-клиент и компьютер-сервер и обеспечивающие

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

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

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

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

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

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

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

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

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

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

устанавливают интервал изменения времени T и шаг по времени;

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

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

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

способ передачи данных в цифровых сетях передачи данных по протоколу   тср/ip через нттр, патент № 2530663 ,

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

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

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

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

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

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

Описание изобретения к патенту

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

Предлагаемое изобретение относится к сетевым технологиям, в частности к способам передачи данных в цифровых сетях передачи данных по протоколу 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 по формуле

способ передачи данных в цифровых сетях передачи данных по протоколу   тср/ip через нттр, патент № 2530663

где 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 пакета с фиктивными данными по формуле

способ передачи данных в цифровых сетях передачи данных по протоколу   тср/ip через нттр, патент № 2530663 ,

где 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.

Класс H04L29/00 Устройства, установки, цепи или системы, не отнесенные ни к одной из групп  1/00

устройство передачи данных, программа генерирования данных передачи и способ генерирования данных передачи -  патент 2529106 (27.09.2014)
способ, устройство и система для параллельного монтажа рекламы -  патент 2528146 (10.09.2014)
блок управления и способ для приведения в действие средств безопасности, а также датчик для выдачи сигнала аварийной ситуации -  патент 2527742 (10.09.2014)
способ и система диспетчеризации восходящего сообщения в гигабитных пассивных оптических сетях -  патент 2527739 (10.09.2014)
управление ключами безопасности в основанных на ims услугах широковещания и многоадресного вещания мультимедиа (mbms) -  патент 2527730 (10.09.2014)
устройство и способ установления и использования резервных каналов связи -  патент 2527200 (27.08.2014)
способ и система передачи вызова по протоколу sip с помощью абонентской приставки -  патент 2526710 (27.08.2014)
способ и устройство для осуществления синхронизации часов между устройствами -  патент 2526278 (20.08.2014)
способ работы подстанции системы электроснабжения -  патент 2524857 (10.08.2014)
устройство и способ управления вызовом -  патент 2524842 (10.08.2014)

Класс H04L9/00 Устройство для секретной или скрытой связи

способ защищенной связи в сети, устройство связи, сеть и компьютерная программа для этого -  патент 2528078 (10.09.2014)
способ защиты информации -  патент 2527734 (10.09.2014)
способ формирования электронного документа -  патент 2527731 (10.09.2014)
способ многоканального приема и передачи информации по безопасности мореплавания -  патент 2527189 (27.08.2014)
система и способ защиты беспроводной передачи -  патент 2524565 (27.07.2014)
способ и устройство для получения ключа безопасности в ретрансляционной системе -  патент 2523954 (27.07.2014)
способ защиты данных безопасности, передаваемых устройством передатчика в устройство приемника -  патент 2523952 (27.07.2014)
криптография на эллиптической кривой -  патент 2520379 (27.06.2014)
способ управления доступом к набору каналов для приемного или декодирующего устройства (варианты) -  патент 2519395 (10.06.2014)
способ трехмерного нелинейного преобразования замены -  патент 2519004 (10.06.2014)

Класс H04J3/00 Многоканальные системы с временным разделением каналов

узел и система для синхронной сети -  патент 2529015 (27.09.2014)
способ многоканального приема и передачи информации по безопасности мореплавания -  патент 2527189 (27.08.2014)
устройство и способ для передачи множества информационных сигналов с разделенным по времени мультиплексированием -  патент 2526370 (20.08.2014)
способ и устройство для оперативного обнаружения неисправностей оборудования обработки сигналов и платы оптического интерфейса -  патент 2523331 (20.07.2014)
синхронизация ldp и igp для широковещательных сетей -  патент 2521092 (27.06.2014)
способ и устройство для защиты канала в виртуальной частной локальной сети -  патент 2520387 (27.06.2014)
способ и устройство синхронизации и демультиплексирования компонентных сигналов в цифровых потоках -  патент 2514092 (27.04.2014)
способ формирования цифрового вещательного сигнала -  патент 2513116 (20.04.2014)
способ и устройство для уменьшения системных издержек -  патент 2504087 (10.01.2014)
конфигурация сети синхронизации -  патент 2504086 (10.01.2014)
Наверх