RU2635220C2 - Система двухсторонней связи в реальном времени с использованием протокола НТТР - Google Patents

Система двухсторонней связи в реальном времени с использованием протокола НТТР Download PDF

Info

Publication number
RU2635220C2
RU2635220C2 RU2015143010A RU2015143010A RU2635220C2 RU 2635220 C2 RU2635220 C2 RU 2635220C2 RU 2015143010 A RU2015143010 A RU 2015143010A RU 2015143010 A RU2015143010 A RU 2015143010A RU 2635220 C2 RU2635220 C2 RU 2635220C2
Authority
RU
Russia
Prior art keywords
data
communication
communication channel
channel
http protocol
Prior art date
Application number
RU2015143010A
Other languages
English (en)
Other versions
RU2015143010A (ru
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 Гурулоджик Микросистемс Ой
Publication of RU2015143010A publication Critical patent/RU2015143010A/ru
Application granted granted Critical
Publication of RU2635220C2 publication Critical patent/RU2635220C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

Изобретение относится к средствам установления канала связи посредством системы связи, выполненной с возможностью поддержки связи в соответствии с протоколом HTTP. Технический результат заключается в обеспечении двухсторонней связи в реальном времени с уменьшенным временем ожидания передачи данных. Используют систему связи для установления двухстороннего канала связи в реальном времени между двумя узлами системы посредством использования комбинации методов GET и POST, связанных с протоколом HTTP. Обменивают данные по каналу связи в форме порций и/или последовательности составных блоков данных. Устанавливают максимальный размер сегмента (MSS) для порций данных и/или составных блоков данных, передаваемых по каналу связи, равным максимальному размеру сегмента (MSS) для самого слабого канала передачи данных в сети связи, поддерживающей канал связи, при этом обмен данными по каналу (40) связи осуществляют с использованием кодирования передачи в виде порций данных и/или последовательности составных блоков данных. 3 н. и 9 з.п. ф-лы, 3 ил., 1 табл.

Description

Область техники
Настоящее изобретение относится к системам связи, например к системам связи, которые используют протокол HTTP реального времени (Real-Time Hypertext Transfer Protocol) для обмена данными различного типа, например графическими данными, данными изображений, видеоданными, аудиоданными и т.п. Настоящее изобретение относится также к способам функционирования указанных систем связи для обмена различными видами данных. Настоящее изобретение относится также к программным продуктам, хранящимся на машиночитаемых носителях информации, при этом программные продукты исполняются на компьютерном оборудовании для осуществления указанных способов.
Предпосылки создания изобретения
Протокол HTTP широко используется для реализации современной сети Интернет. Этот протокол является протоколом уровня приложения для распределенных совместных информационных гипермедиа-систем. На практике протокол HTTP представляет собой многолинейный набор объектов, обеспечивающих построение сети с использованием логических ссылок для задания сети. Эти ссылки, часто называемые гиперссылками, определяют сетевую взаимосвязь между узлами.
Протокол HTTP функционирует как протокол типа «запрос-ответ», например в модели клиент-сервер, как реализовано для сети Интернет. В этой модели может использоваться веб-браузер для реализации клиента, при этом программное приложение, исполняемое на сервере, размещает веб-сайт. В процессе работы конкретный клиент посылает сообщение с запросом HTTP на сервер, который отвечает, обеспечивая ресурсы, такие как файлы HTML и другой контент, или выполняет функции обработки данных от имени клиента, или возвращает клиенту ответное сообщение. Указанный веб-браузер может быть реализован различными способами, например как агент пользователя, поисковый агент или любая другая программа, исполняемая на компьютерном оборудовании, которая получает доступ, потребляет или отображает контент, полученный из сети Интернет.
Протокол HTTP разработан для того, чтобы разрешить промежуточным сетевым элементам осуществлять связь между клиентами и серверами. Веб-сайты сети Интернет с большим трафиком часто используют кэшевые веб-серверы, которые способны доставлять контент от имени верхних серверов для сокращения времени отклика для данных и/или доставки сервисов. Помимо этого, предпочтительно используются прокси-серверы HTTP на границах частных сетей для улучшения связи для клиентов без глобального IP адреса, в частности путем пересылки сообщений через внешние серверы.
Ресурсы HTTP идентифицируются и размещаются в конкретной сети с использованием универсальных идентификаторов ресурсов (URI, uniform resource identifier), называемых также универсальными указателями ресурса (URL, uniform resource locator). Помимо этого, идентификаторы URI и гиперссылки выражены на языке разметки гипертекста (HTML, hypertext markup language), с помощью которого можно создавать веб-страницы из взаимосвязанных гипертекстовых документов.
Сеанс HTTP осуществляется путем последовательности сетевых транзакций запросов-ответов. Например, клиент HTTP инициирует запрос путем установления соединения протокола управления передачей (TCP, transmission control protocol) с конкретным портом сервера. Сервер HTTP прослушивает сообщение с запросом клиента и отвечает, посылая строку состояния, например НТТР/1.1 200 OK, вместе с соответствующим сообщением. Телом этого сообщения обычно является запрашиваемый ресурс, хотя может быть возвращено сообщение об ошибке.
Протокол HTTP определяет методы, условно называемые «глаголами», для указания требуемой операции, которую нужно выполнить в отношении указанного ресурса. Ресурс может представлять собой, например, файл данных или вывод из исполняемого объекта, размещаемого на одном или более серверах. Примеры методов HTTP, называемых также «глаголами» HTTP, приводятся в таблице 1.
Figure 00000001
Таким образом, основным протоколом передачи, используемым современными веб-браузерами, является протокол HTTP; при этом несколько связанных «экосистем» и программное обеспечение, которое они используют, в частности программные приложения браузера, не способны функционировать без использования протокола HTTP. Как указано выше, протокол HTTP основан на передаваемых запросах (см. Таблицу 1) и на ответах на эти запросы, при этом страницы HTML или двоичные данные, такие как изображения или аудиопотоки/файлы обычно предоставляются в ответ на получение этих запросов.
Вследствие сложности сети Интернет могут возникать запаздывания при передаче, то есть задержки. Такие задержки могут вызывать проблемы в ситуациях, когда требуется обмен данными, например когда требуется двухсторонняя (полнодуплексная) связь или когда требуется ответ в реальном времени, например передача и прием видеоизображений и/или звука с очень малой задержкой. Двунаправленная передача через Интернет является известной из протокола передачи речи по сети Интернет (VoIP, Voice-over-Internet-Protocol) и видеоконференцсвязи на основе сети Интернет, например, как обеспечивается современным программным обеспечением Skype. Skype является зарегистрированным товарным знаком.
Известно использование протоколов, называемых WebSocket и описанных на сайте http://tools.ietf.org/html/rfc6455. для обращения к услугам связи определенного типа. Могут быть достигнуты следующие свойства связи:
(i) WebSocket используется внутри туннеля HTTP/HTTPS, в таком случае межсетевые экраны уже открыты для портов 80/443, поскольку в настоящее время они обычно используются в веб-браузерах;
(ii) WebSocket используется в режиме полнодуплексного соединения, при этом только одно соединение TCP способно осуществлять связь в двух направлениях в реальном времени, а именно способно передавать и принимать данные по одному соединению путем изменения направления передачи данных.
Однако протоколы WebSocket могут зависеть от порта, что является нежелательным ограничением.
Сущность изобретения
В настоящей заявке предлагается система связи, которая способна обеспечивать улучшенную двухстороннюю передачу данных по сети связи HTTP.
Кроме того, в настоящей заявке предлагается усовершенствованный способ функционирования системы связи для обеспечения двухсторонней передачи данных по сети связи HTTP.
Согласно первому аспекту настоящего изобретения, предлагается система связи, выполненная с возможностью поддержки связи в соответствии с протоколом HTTP и с возможностью установления двухстороннего канала связи в реальном времени между двумя узлами системы путем использования комбинации методов GET и POST, связанных с протоколом HTTP, причем обмен данными по каналу связи осуществляется порциями и/или в виде последовательности составных блоков данных, отличающаяся тем, что максимальный размер сегмента (MSS, maximum segment size) для порций данных и/или составных блоков данных, передаваемых по каналу связи, оптимизируется в зависимости от способности сети связи поддерживать канал связи, при этом обмен данными по каналу связи осуществляется с использованием кодирования передачи в виде порций данных и/или последовательности составных блоков данных.
Такая система связи имеет преимущество, заключающееся в способности обеспечивать двухстороннюю связь в реальном времени с уменьшенным временем ожидания.
Дополнительно, метод CONNECT может использоваться в трех различных типах сценариев:
(i) соединение туннелируется к объекту назначения, что является сценарием по умолчанию;
(ii) соединение туннелируется через локальный хост к объекту назначения, в результате чего данные передаются из процесса передачи в локальной службе в пересылающий прокси-процесс, откуда данные передаются в объект назначения; такой способ является предпочтительным, поскольку способен предотвратить анализ данных антивирусной программой и непреднамеренное блокирование, или другое вмешательство в данные;
(iii) соединение туннелируется к пересылающему прокси-серверу, который затем перенаправляет данные в объект назначения; такой подход предпочтительно используется в системах с балансированием нагрузки, в частности в системах, где нагрузка сети, вызванная клиентами, оптимально распределяется до объекта назначения. Например, данные быстрее передаются по магистральной сети, чем по прямому соединению.
Дополнительно, в системе связи канал связи включает соединение для приема и соединение для передачи для обеспечения двухсторонней связи, причем эти соединения остаются открытыми до тех пор, пока не будут приняты пустая порция данных и/или пустой составной блок данных.
Дополнительно, в системе связи канал связи выполнен с возможностью использования шифрования передаваемых по нему данных.
Дополнительно, в системе связи канал связи выполнен с возможностью обеспечения передачи по меньшей мере одного из следующего: графических данных, данных изображения, видеоданных, аудиоданных, неструктурированных данных.
Согласно второму аспекту настоящего изобретения, предлагается способ установления канала связи посредством системы связи, выполненной с возможностью поддержки связи в соответствии с протоколом HTTP, отличающийся тем, что данный способ включает:
(a) использование системы связи для установления двухстороннего канала связи в реальном времени между двумя узлами системы путем использования комбинации методов GET и POST, связанных с протоколом HTTP;
(b) обмен данными по каналу связи в виде порций данных и/или последовательности составных блоков данных и
(c) оптимизацию размера MMS для порций данных и/или блоков данных, передаваемых по каналу связи, в зависимости от способности сети связи поддерживать канал связи;
при этом обмен данными по каналу связи осуществляют с использованием кодирования передачи в виде порций данных и/или последовательности составных блоков данных.
Дополнительно, в данном способе канал связи включает соединение для приема и соединение для передачи для обеспечения двухсторонней связи, причем эти соединения остаются открытыми до тех пор, пока не будут приняты пустая порция данных и/или пустой составной блок данных.
Дополнительно, в данном способе канал связи выполнен с возможностью использования шифрования передаваемых по нему данных.
Дополнительно, в данном способе канал связи выполнен с возможностью обеспечения передачи по меньшей мере одного из следующего: графических данных, данных изображения, видеоданных, аудиоданных, текстовых данных, неструктурированных данных.
Согласно третьему аспекту настоящего изобретения, предлагается программный продут, хранящийся на машиночитаемом носителе информации и отличающийся тем, что он исполняется посредством компьютерного аппаратного обеспечения для осуществления способа в соответствии со вторым аспектом настоящего изобретения.
Дополнительно, программный продукт выполнен в соответствии с протоколами HTTP и исполняется на сервере сети связи, работающей по протоколу HTTP.
Настоящее изобретение имеет преимущество в том, что данная система связи способна обеспечивать двухстороннюю полнодуплексную связь, с шифрованием или без шифрования, посредством использования известного протокола передачи HTTP, так что не требуется дополнительная конфигурация программных или аппаратных межсетевых экранов и/или антивирусных программных приложений, исполняемых в системе связи.
Помимо этого, настоящее изобретение имеет преимущество, которое заключается в улучшении функциональности и надежности приложений связи, и, таким образом, в упрощении технического обслуживания системы, например настройки безопасности данных.
Следует понимать, что технические признаки изобретения могут комбинироваться различным образом в пределах сущности изобретения, определяемой прилагаемой формулой изобретения.
Краткое описание чертежей
Далее варианты осуществления настоящего изобретения описываются посредством примеров со ссылкой на приложенные чертежи.
На фиг. 1 показана сеть связи, работающая по протоколу HTTP
На фиг. 2 показан набор шагов способа согласно изобретению.
На фиг. 3 показан другой набор шагов способа согласно изобретению.
На приложенных чертежах подчеркнутое число используется для представления элемента, на котором это подчеркнутое число располагается, или элемента, рядом с которым располагается это подчеркнутое число. Неподчеркнутое число относится к элементу, определяемому линией, которая связывает это неподчеркнутое число с элементом. Если число не подчеркнуто и сопровождается стрелкой, это неподчеркнутое число используется для обозначения общего объекта, на который указывает стрелка.
Подробное описание изобретения
Далее со ссылкой на фиг. 1 описывается система, часть которой обозначена цифрой 5, а также соответствующий способ, который способен уменьшить задержки, а именно «время ожидания» в отношении протокола HTTP для двухсторонней связи в реальном времени таким образом, что описание используемого протокола HTTP соответствует стандартам, таким как RFC2621, RFC2068 и RFC1945. В общем, протокол HTTP не предназначен для осуществления двухсторонней связи в реальном времени между первым и вторым узлами 10А, 10В, при этом конкретный клиент способен одновременно передавать и принимать данные в реальном времени, так что:
(i) соединение 20 связи, используемое между двумя узлами 10А, 10В, сконфигурировано для поддержки двухсторонней связи в шифрованном формате;
(ii) программа 30 защиты от вирусов не влияет на контент 40, передаваемый и принимаемый по соединению 20 связи;
(iii) межсетевые экраны 60 не способны препятствовать сетевому трафику, пока не будет полного блокирования трафика сети Интернет, в частности блокируется «WWW трафик», например в случае соединения между банками, используемого для защищенных финансовых операций;
(iv) сетевые устройства, например мосты и маршрутизаторы, не способны анализировать и вмешиваться в данные, подлежащие передаче по соединению 20 связи.
Варианты осуществления настоящего изобретения способны воплощать функциональные возможности от (i) до (iv) посредством следующего:
(а) используются разные виды методов, GET и POST (см. Таблицу 1), при этом метод GET устанавливает соединение для приема по соединению 20, а метод POST устанавливает соединение для передачи по соединению 20;
(b) оба соединения туннелируются с использованием метода CONNECT, как используется в современном протоколе HTTP;
(c) применяется механизм кодирования «порциями» или составной передачи, как подробно описано ниже.
Традиционно протокол HTTP используется для сеансов сети Интернет, при этом методы GET и POST используются независимо друг от друга. Например, метод GET используется для запроса контента HTML от веб-сервера, который работает в качестве хоста для веб-браузера клиента, при этом соединения для метода GET остаются открытыми, пока все ответные данные не будут доставлены от хоста клиенту. Кроме того, используется процедура соединения, которая является такой же, как в методе POST (см. Таблицу 1), за исключением того, что данные доставляются от клиента в хост.
В вариантах осуществления изобретения, раскрываемых далее, связь осуществляется так, что сокет используется в полудуплексном режиме, что отличает изобретение от известных подходов, например от вышеуказанной технологии WebSocket. В вариантах осуществления изобретения передача и/или прием данных являются более эффективными, чем при полнодуплексном соединении, поскольку сетевым интерфейсным картам не требуется переключать состояния ввода/вывода (I/O) между приемом и передачей. Такое переключение, используемое в известном уровне техники, потребляет системные ресурсы и соответственно уменьшает потенциальную скорость связи.
В вариантах осуществления изобретения, раскрываемых далее, сокет используется только после инициализации методов HTTP GET и POST, в режиме приема или в режиме передачи. Вследствие этого, используемому сетевому адаптеру требуется работать только в полудуплексном режиме, и, таким образом, экономятся ресурсы устройства и инфраструктуры сети, поскольку соединение работает исключительно либо в режиме передачи, либо в режиме приема после согласования заголовков методов HTTP GET и/или POST и до завершения соединения. Помимо этого, имеются также другие преимущества, например межсетевые экраны и маршрутизаторы, а именно концентраторы и коммутаторы, получают меньше нагрузки, связанной с переключениями, и поэтому не отказывают так быстро, как в известных современных полнодуплексных способах связи, в которых используется только одно полнодуплексное соединение. Таким образом, раскрываемые здесь варианты осуществления изобретения являются гораздо более эффективными в отношении ресурсов, чем, например, протокол WebSocket.
Известный протокол WebSocket может быть легко проанализирован межсетевыми экранами, отнесен к неопознанному типу соединения и отключен, что затрудняет или ограничивает его использование, независимо от того, туннелируется или нет соответствующее соединение. В вариантах осуществления изобретения, описываемых далее, соединение GET или POST функционирует в соответствии с протоколом HTTP, поэтому межсетевые экраны не могут ограничивать или прекращать связь, использующую эти методы.
В вариантах осуществления изобретения, как описано ниже, предпочтительно используется протокол UDP, который практически в три раза быстрее, чем протокол TCP. Опционально, варианты осуществления изобретения могут использовать одноранговые соединения (Р2Р, pear-to-pear), которые позволяют осуществлять связь на уровне приложения.
Раскрываемые варианты осуществления изобретения отличаются от общеизвестных реализаций HTTP тем, что известные реализации HTTP не имеют связи между способами GET и POST, а раскрываемые варианты осуществления изобретения, наоборот, используют способы GET и POST, соединенные вместе новым способом для обеспечения передачи данных в полнодуплексном режиме в реальном времени. Указанная полнодуплексная передача данных осуществляется путем использования одного соединения для приема и одного соединения для передачи. Соединение для приема и соединение для передачи могут использовать полудуплексный режим соединения или полнодуплексный режим соединения.
Хотя варианты осуществления изобретения описываются далее на основе протокола TCP, необходимо отметить, что в качестве альтернативы может использоваться протокол UDP (User Datagram Protocol). Несмотря на то что оба протокола UDP и TCP опираются на лежащий в их основе протокол IP (Internet Protocol), и датаграмма UDP, и фрагмент TCP передаются в IP-пакете, протокол UDP отличается тем, что он представляет собой протокол без установления соединения, что позволяет осуществлять одноранговые соединения между приложениями не только в локальной сети (LAN, local area network), но также во внешней сети Интернет посредством технологии преобразования сетевых адресов NAT (Network Address Translation). При использовании такого подхода можно избежать необходимости передавать данные через серверы в системе 5, что приводит к значительной экономии ресурсов сети связи. Дополнительным преимуществом при использовании протокола UDP в системе 5 является то, что он практически в три раза эффективнее в использовании ресурсов сети связи, чем протокол TCP, поскольку протокол UDP не является управляемым протоколом. Кроме того, размер MSS, измеряемый в байтах в сетях IPv4 и IPv6, например используемых для реализации системы 5, больше, поскольку заголовки UDP меньше, чем соответствующие заголовки TCP.
Хотя далее описывается использование протокола TCP для обоих соединений GET и POST, следует отметить, что в некоторых случаях только одно из этих соединений использует протокол TCP, а другие соединения используют протокол UDP Кроме того, следует отметить, что оба соединения GET и POST могут использовать протокол UDP.
Следует отметить, что согласно настоящему изобретению данные на передающем или приемном конце также могут изменяться с данных с коммутацией каналов на IP-данные и соответственно с IP-данных на данные с коммутацией каналов.
В первом варианте осуществления изобретения выполняют ряд шагов, как показано на фиг. 2.
Шаг 1 (S1): клиент для соединения передачи данных формирует уникальный идентификатор потока (ID), который используется для сочетания методов GET и POST таким образом, чтобы сервер, используемый для осуществления соединения, знал, что эта пара методов GET и POST принадлежит одному клиенту. Используемый идентификатор ID будет далее рассмотрен более подробно. Однако следует отметить, что методы GET и POST не ограничивают настоящее изобретение, когда используется уникальная идентификация потока для объединения соединения для передачи и соединения для приема. Несмотря на то, что основной целью идентификатора ID потока является объединение клиентских соединений для передачи и для приема на сервере, он может одновременно использоваться для аутентификации и идентификации клиента. Это означает, что сервер может отбрасывать вредоносные, ошибочные или неопознанные соединения прежде, чем продолжится их обработка. Такие функциональные возможности позволяют защитить сервер и снизить/сократить нагрузку на сервер, вызванную неопознанными запросами на соединение и ненужными вычислениями. Другими словами, это позволяет системе экономить ресурсы, что обеспечивает экономию энергии и уменьшение числа серверов, которые требуются для серверного оборудования, особенно в системах с балансированием нагрузки.
Шаг 2 (S2): клиент устанавливает два соединения TCP/IP с сервером, например с его портом по умолчанию «80», после чего клиент передает заголовок, связанный с методом CONNECT. В процессе работы метод CONNECT преобразовывает требуемое соединение передачи данных в прозрачный туннель TCP/IP, обычно, например, для того, чтобы обеспечить связь (HTTP) с шифрованием TLS и SSL через нешифрованный прокси-сервер, как упоминалось ранее.
При осуществлении шагов 1 и 2 опционально используются различные виды шифрования, например SSL 1.0, SSL 2.0, SSL 3.0, TLS 1.0, TLS 1.1, TLS 1.2, или шифрование аналогичного типа. При этом указанный туннель предпочтительно является прозрачным для обеспечения безопасной связи между различными «экосистемами». Помимо этого, предпочтительно также использовать аппаратные средства, защищенные от вредоносных атак или вмешательства. Такое прозрачное туннельное соединение, используемое для реализации вариантов осуществления настоящего изобретения, способно предотвратить вмешательство хакеров, вредоносного программного обеспечения, антивирусного программного обеспечения, программного обеспечения межсетевых экранов и других устройств и/или программного обеспечения, которые контролируют и анализируют трафик данных, в данные, передаваемые по туннельному соединению.
Шаг 3 (S3): в зависимости от соединения для приема или для передачи, используемого для туннеля связи, заголовок метода GET или метода POST по-прежнему передается и принимается. Заголовок содержит необходимую информацию для данного сеанса связи, обеспечиваемого туннелем связи. Кроме того, в заголовке предпочтительно используется принятая форма структуры данных, несмотря на то, что заголовок включает следующие параметры:
(i) вид ID потока информации для сцепленных/связанных соединений;
(ii) кодирование передачи в форме порций или составного формата.
Информация, включенная в заголовок, гарантирует, что передача и прием данных происходит в виде отдельных блоков данных. Предпочтительно, максимальный размер сегмента данных (MSS) оптимизируется согласно производительности сети, поддерживающей туннель связи, с учетом количества байтов, используемых для заголовка порций или составных блоков, так что байты не теряются при передаче и приеме данных, в результате чего обеспечивается надежный и безопасный обмен данными.
Такая оптимизация сети осуществляется, например, путем запроса значения максимального блока передаваемых данных (MTU, Maximum Transfer Unit) от сетей, связывающих подключенные клиентские устройства с сервером. Таким образом, возможно определить самый слабый канал связи в сети связи и затем установить размер MSS для передачи данных в клиентское устройство, связанное с самым слабым каналом, в соответствии со скоростью самого слабого канала. Опционально, сервер может сообщать размер MSS другим клиентским устройствам системы. Такая оптимизация сети предпочтительно осуществляется посредством способа, включающего следующие шаги:
Шаг А: система определяет самый слабый канал передачи данных, связывающий сервер с клиентскими устройствами, например, размер MTU для конкретного канала данных составляет 1500 байтов. Если из значения MTU вычесть число байтов заголовка TCP, а именно 40 байтов, останется доступными 1460 байтов. Эти 1460 байтов соответствуют размеру MSS.
Шаг В: система определяет размер MSS для данного сеанса путем использования MSS самого слабого обнаруженного канала.
Шаг С: алгоритм Нейгла, используемый в системе, отключается, чтобы предотвратить управление перегрузкой в системе, а именно посредством установки для сокета системы параметра TCP_NODELAY, который отключает алгоритм Нейгла. Отключение алгоритма Нейгла требуется, поскольку алгоритм Нейгла ждет, пока определенное число байтов данных добавится в очередь передачи, прежде чем будет отправлен соответствующий пакет данных. Когда алгоритм Нейгла отключен, система способна передавать пакеты данных с размером, определяемым исключительно системой, как указано выше.
Шаг 4 (S4): как только передан заголовок запроса HTTP и успешно получен соответствующий ответ от сервера, начинается передача и прием данных в дуплексном режиме. Таким образом, успешно создается два соединения с сервером, а именно соединение для передачи и соединение для приема; эти соединения остаются в открытом состоянии, пока не будут приняты пустая порция данных или пустой составной блок данных.
Далее два варианта осуществления изобретения поясняются с помощью кода HTTP.
Пример 1: представлен код HTTP, который при исполнении создает простое туннельное соединение для приема данных между клиентом и сервером, при этом одноранговый узел с IP-адресом 192.168.0.101 подключается к хосту с IP-адресом 192.168.0.100. В коде HTTP используются методы GET и CONNECT совместно с кодированием порций данных при передаче (chunked transfer-coding).
<connect>
<send> CONNECT 192.168.0.100:80 HTTP/1.0 \r\n
<send> Mozilla/5.0 (Windows NT 5.0) Gurulogic \r\n
<send> \r\n
<send> GET
/readstream?streamid=12345&param1=value1&param2=value2 HTTP/1.1 \r\n
<send> Host: 192.168.0.100 \r\n
<send> Transfer-Coding: chunked \r\n
<send> User-Agent: Mozilla/5.0 (Windows NT 5.0) Gurulogic \r\n
<send> \r\n
<recv> HTTP/1.1 200 OK \r\n
<recv> 5AD\r\n
<recv> 1453 bytes of data… \r\n
<recv> 5AD\r\n
<recv> 1453 bytes of data… \r\n
<recv> 5AD\r\n
<recv> 1453 bytes of data… \r\n
<recv> 0 \r\n
<disconnect from 192.168.0.100>
Пример 2: представлен код HTTP, который при исполнении создает простое туннельное соединение для передачи данных между клиентом и сервером, при этом одноранговый узел с IP-адресом 192.168.0.101 подключается к хосту, который имеет соответствующий IP-адрес 192.168.0.100. В коде HTTP используются методы POST и CONNECT совместно с кодированием порций данных при передаче (chunked transfer-coding).
<connect to 192.168.0.100>
<send> CONNECT 192.168.0.100:80 HTTP/1.0 \r\n
<send> Mozilla/5.0 (Windows NT 5.0) Gurulogic \r\n
<send> \r\n
<send> POST /writestream?streamid=12345&param1=value1&param2=value2 HTTP/1.1 \r\n
<send> Host: 192.168.0.100 \r\n
<send> Transfer-Coding: chunked \r\n
<send> User-Agent: Mozilla/5.0 (Windows NT 5.0) Gurulogic \r\n
<send> \r\n
<send> 5AD\r\n
<send> 1453 bytes of data… \r\n
<send> 5AD\r\n
<send> 1453 bytes of data… \r\n
<send> 5AD\r\n
<send> 1453 bytes of data… \r\n
<send> 0 \r\n
<recv> HTTP/1.1 200 OK \r\n
В примерах 1 и 2 предполагается, что размер MSS равен 1460 байтов, поэтому фактически размер данных для оптимизированной порции данных составляет 1453 байта. Размер оптимизированной порции данных в системе вычисляется по формуле (1).
Figure 00000002
Начало заголовка порции состоит из длины фактических данных порции, например в шестнадцатеричном формате, и конца из одного или более символов строки, которые обычно представляют собой возврат каретки (CR) и перевод строки (LF). Конец порции является аналогичным концу символов строки, которые заканчивают эту порцию.
Как показано на фиг. 2, шаг 3 (S3), а именно создание туннеля соединения посредством метода CONNECT, может быть опционально пропущен, как показано на фиг. 3. Туннель соединения не создается, если нет необходимости в туннеле. Таким образом, когда связь не используется, применяются только шаги 1, 2 и 4. Кроме того, в отношении фиг. 2 следует отметить, что туннель соединения может быть создан только для соединения GET или соединения POST, а именно создается асимметричная туннельная конфигурация связи между множеством узлов; опционально, туннель связи используется только для соединений GET или POST.
Пример 3: оптимизация MSS зависит исключительно от конкретной полезной нагрузки, переносимой конкретной порцией данных, поскольку соответствующие HTTP-заголовки порций в этот момент уже удалены при обработке, при этом полезная нагрузка блока данных составляет 100%. Такая оптимизация MSS главным образом базируется на следующем принципе. Блок MTU представляет собой отдельный передаваемый пакет и соответственно самый большой блок данных протокола, который данный уровень может передать дальше, например 1500 байтов, при этом MSS имеет размер, который равен размеру MTU минус заголовки протокола. В вариантах осуществления данной технологии в соответствии с настоящим изобретением в MSS передается точное количество данных в байтах, которое способен пересылать самый слабый канал в данной сети. Поэтому при использовании технологии, раскрываемой в данной заявке, разбиение данных на меньшие пакеты не производится, в результате увеличивается скорость и надежность передачи данных, что, в свою очередь, приводит к меньшему количеству конфликтов и потерь пакетов, например в сети WiFi.
Ниже приведен пример оптимизации MSS.
Figure 00000003
Начало создания соединения:
Для тестирования сети посылаются пакеты ICMP, при этом обнаруживают, что связь между клиентом 1 и клиентом 2 прекращается, если MTU>600. Поэтому размер MTU устанавливается равным 600 байтов, что означает, что MSS равен 560 байтов, поскольку 40 байтов отпускаются на заголовок TCP, то есть учитываются. Следует отметить, что заголовки в протоколе UDP меньше, поэтому полезная нагрузка будет больше при использовании протокола UDP
Клиент 1 посылает клиенту 2 пакет размером 3000 байтов, который разделяется на 6 частей. Такое разделение является простым и предпочтительно производится по следующей формуле: полная величина в байтах делится на самый меньший размер MTU в сети минус начальный и конечный заголовки порций, а именно 3000/(560-(5+2))=5,42 пакета, при этом результат округляется до ближайшего целого числа пакетов, если нет других данных в очереди для передачи.
Пакет 1: передается 560 байтов, из которых полезная нагрузка составляет 553 байта.
Пакет 2: передается 560 байтов, из которых полезная нагрузка составляет 553 байта.
Пакет 3: передается 560 байтов, из которых полезная нагрузка составляет 553 байта.
Пакет 4: передается 560 байтов, из которых полезная нагрузка составляет 553 байта.
Пакет 5: передается 560 байтов, из которых полезная нагрузка составляет 553 байта.
Пакет 6: передается 560 байтов, из которых полезная нагрузка составляет 235 байтов.
Если бы пакет был передан непосредственно без разделения, то есть как один пакет в 3000 байтов, то он был бы разделен, то есть фрагментирован, устройствами операторов в сети, что занимает время и потенциально может вызвать проблемы, при этом, возможно, потребуется повторная передача потерянных пакетов, из-за чего передатчик должен ждать, прежде чем передавать новые пакеты по причине задержки, вызванной нестабильной сетью получателя.
Возможны модификации вариантов осуществления изобретения, рассмотренных в данной заявке, в пределах сущности изобретения, определяемой приложенной формулой изобретения.
Такие выражения как «включает», «содержит», «объединяет», «состоит», «имеет» и «является», используемые для описания изобретения, не исключают объекты, компоненты или элементы, явно не упомянутые, хотя и присутствующие. Использование единственного числа не исключает множественного. Числа, заключенные в круглые скобки в прилагаемой формуле изобретения, указаны для обеспечения понимания формулы изобретения и не ограничивают заявленное изобретение.

Claims (17)

1. Система (5) связи, выполненная с возможностью поддержки связи в соответствии с протоколом HTTP и с возможностью установления двухстороннего канала (40) связи в реальном времени между двумя узлами (10А, 10В) системы (5) посредством использования комбинации методов GET и POST, связанных с протоколом HTTP, причем обмен данными по каналу (40) связи осуществляется в виде порций и/или последовательности составных блоков данных,
отличающаяся тем, что максимальный размер сегмента (MSS) для порций данных и/или составных блоков данных, передаваемых по каналу (40) связи, устанавливается равным максимальному размеру сегмента для самого слабого канала передачи данных в сети связи, поддерживающей канал (40) связи, при этом обмен данными по каналу (40) связи осуществляется с использованием кодирования передачи в виде порций данных и/или последовательности составных блоков данных.
2. Система (5) связи по п. 1, отличающаяся тем, что двухсторонний канал (40) связи туннелируется в соответствии с протоколами TCP/IP и/или UDP путем использования метода CONNECT, связанного с протоколом HTTP.
3. Система (5) связи по п. 1, отличающаяся тем, что канал (40) связи включает соединение для приема и соединение для передачи для обеспечения двухсторонней связи, причем эти соединения остаются открытыми до тех пор, пока не будут получены пустая порция данных и/или пустой составной блок данных.
4. Система (5) связи по п. 1, отличающаяся тем, что канал (40) связи выполнен с возможностью использования шифрования передаваемых по нему данных.
5. Система (5) связи по п. 1, отличающаяся тем, что канал (40) связи выполнен с возможностью обеспечения передачи по меньшей мере одного из следующего: графических данных, данных изображения, видеоданных, аудиоданных, текстовых данных, неструктурированных данных.
6. Способ установления канала (40) связи посредством системы (5) связи, выполненной с возможностью поддержки связи в соответствии с протоколом HTTP, отличающийся тем, что он включает:
(a) использование системы (5) связи для установления двухстороннего канала (40) связи в реальном времени между двумя узлами (10А, 10В) системы (5) посредством использования комбинации методов GET и POST, связанных с протоколом HTTP;
(b) обмен данными по каналу (40) связи в форме порций и/или последовательности составных блоков данных и
(c) установку максимального размера сегмента (MSS) для порций данных и/или составных блоков данных, передаваемых по каналу (40) связи, равным максимальному размеру сегмента (MSS) для самого слабого канала передачи данных в сети связи, поддерживающей канал (40) связи,
при этом обмен данными по каналу (40) связи осуществляют с использованием кодирования передачи в виде порций данных и/или последовательности составных блоков данных.
7. Способ по п. 6, отличающийся тем, что он включает туннелирование двухстороннего канала (40) связи в соответствии с протоколами TCP/IP и/или UDP путем использования метода CONNECT, связанного с протоколом HTTP.
8. Способ по п. 6, отличающийся тем, что канал (40) связи включает соединение для приема и соединение для передачи для обеспечения двухсторонней связи, причем эти соединения остаются открытыми до тех пор, пока не будут получены пустая порция и/или пустой составной блок данных.
9. Способ по п. 6, отличающийся тем, что канал (40) связи выполнен с возможностью использования шифрования передаваемых по нему данных.
10. Способ по п. 6, отличающийся тем, что канал (40) связи выполнен с возможностью обеспечения передачи по меньшей мере одного из следующего: графических данных, данных изображения, видеоданных, аудиоданных, текстовых данных, неструктурированных данных.
11. Машиночитаемый носитель информации, содержащий программный продукт и отличающийся тем, что программный продукт исполняется посредством компьютерного аппаратного обеспечения для осуществления способа по п. 6.
12. Машиночитаемый носитель информации по п. 11, отличающийся тем, что указанный программный продукт выполнен в соответствии с протоколом HTTP и исполняется на сервере сети связи, работающей по протоколу HTTP.
RU2015143010A 2013-04-23 2014-04-21 Система двухсторонней связи в реальном времени с использованием протокола НТТР RU2635220C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1307340.8A GB2513344B (en) 2013-04-23 2013-04-23 Communication system utilizing HTTP
GB1307340.8 2013-04-23
PCT/EP2014/001052 WO2014173521A1 (en) 2013-04-23 2014-04-21 Two-way real-time communication system utilizing http

Publications (2)

Publication Number Publication Date
RU2015143010A RU2015143010A (ru) 2017-05-26
RU2635220C2 true RU2635220C2 (ru) 2017-11-09

Family

ID=48537693

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2015143010A RU2635220C2 (ru) 2013-04-23 2014-04-21 Система двухсторонней связи в реальном времени с использованием протокола НТТР

Country Status (9)

Country Link
US (2) US20150200997A1 (ru)
EP (1) EP2989774B1 (ru)
JP (2) JP6444988B2 (ru)
KR (1) KR101655715B1 (ru)
CN (1) CN105340242B (ru)
BR (1) BR112015026903A2 (ru)
GB (1) GB2513344B (ru)
RU (1) RU2635220C2 (ru)
WO (1) WO2014173521A1 (ru)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107294913B (zh) * 2016-03-31 2021-08-27 阿里巴巴集团控股有限公司 基于http的安全通信方法、服务端及客户端
US10334052B2 (en) 2016-10-28 2019-06-25 Caterpillar Inc. System and method for communicating negotiated groups of parameters
WO2019027480A1 (en) * 2017-08-04 2019-02-07 Nokia Technologies Oy TRANSPORT METHOD SELECTION FOR DISTRIBUTING SERVER NOTIFICATIONS
JP7203297B2 (ja) * 2017-09-27 2023-01-13 有限会社シモウサ・システムズ エンドツーエンド暗号化通信システム
CN108011850B (zh) * 2017-12-18 2021-08-17 北京百度网讯科技有限公司 数据包的重组方法及装置、计算机设备及可读介质
WO2021201305A1 (ko) * 2020-03-30 2021-10-07 엘지전자 주식회사 차량을 위한 통신 프로토콜을 변경하는 방법 및 장치
CN113285931B (zh) * 2021-05-12 2022-10-11 阿波罗智联(北京)科技有限公司 流媒体的传输方法、流媒体服务器及流媒体***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020156901A1 (en) * 1999-03-15 2002-10-24 Wall Data Incorporated Method and system for providing a persistent HTTP tunnel
US6892240B1 (en) * 1999-09-17 2005-05-10 Nec Corporation Bidirectional communication system and method
US20050246442A1 (en) * 2002-12-20 2005-11-03 Bernd Gutjahr Communication method and system
US20100042677A1 (en) * 2006-10-26 2010-02-18 Kazushige Ishikawa Two-way communication system, server unit, repeater, two-way communication method and program
RU2417532C2 (ru) * 2005-07-12 2011-04-27 Майкрософт Корпорейшн Доставка обновлений политик для защищенного содержимого

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7522631B1 (en) * 1999-10-26 2009-04-21 Qualcomm, Incorporated Method and apparatus for efficient data transmission control in a wireless voice-over-data communication system
US7324228B2 (en) * 2000-02-25 2008-01-29 Hewlett-Packard Development Company, L.P. System and method for downloading and for printing data from an external content source
US20020184383A1 (en) 2001-05-29 2002-12-05 Docomo Communications Laboratories Usa, Inc. Live mobile camera system with a communication protocol and a server cluster
WO2003019390A1 (en) * 2001-08-24 2003-03-06 Reality Fusion, Inc. In the united states patent and trademark office
JP2003244194A (ja) * 2002-02-18 2003-08-29 Mitsubishi Electric Corp データ暗号装置及び暗号通信処理方法及びデータ中継装置
JP2003304248A (ja) * 2002-04-09 2003-10-24 Nippon Telegr & Teleph Corp <Ntt> データ転送方法及び装置
US7447369B2 (en) 2003-03-07 2008-11-04 Ricoh Co., Ltd. Communication of compressed digital images
US20050071485A1 (en) * 2003-09-26 2005-03-31 Arun Ramagopal System and method for identifying a network resource
FR2869490B1 (fr) * 2004-04-26 2006-06-23 Michel Gouget Procede d'acces a un syteme informatique protege, application a la tele-administration et a la realisation de proxies
US8151323B2 (en) * 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
BRPI0807398A2 (pt) * 2007-03-22 2014-05-27 Ericsson Telefon Ab L M Método para configurar a unidade de transmissão máxima de enlace em um equipamento de usuário, equipamento de usuário, e, nó em uma rede de rádio de evolução de arquitetura de sistema/evolução de longa duração.
JP4864792B2 (ja) * 2007-03-29 2012-02-01 京セラ株式会社 無線通信端末の制御方法および無線通信端末
US7995478B2 (en) * 2007-05-30 2011-08-09 Sony Computer Entertainment Inc. Network communication with path MTU size discovery
KR20090010416A (ko) * 2007-07-23 2009-01-30 삼성전자주식회사 Ppp 연결의 패킷 크기 최적화 시스템 및 그 방법
US8782772B2 (en) * 2007-09-28 2014-07-15 Microsoft Corporation Multi-session secure tunnel
KR101405952B1 (ko) * 2007-12-05 2014-06-12 엘지전자 주식회사 데이터 블록 전송방법
JP2010004416A (ja) * 2008-06-23 2010-01-07 Fujitsu Ltd 移動無線装置
KR101010409B1 (ko) 2008-09-01 2011-01-24 주식회사 세아네트웍스 터널링 기반 네트워크에서 ip 패킷 전송 방법 및 장치
KR101636258B1 (ko) * 2009-03-20 2016-07-05 삼성전자 주식회사 이동통신시스템에서 네트워크의 rach 관련 시스템 자원자동적 최적화 방법
US9178648B2 (en) * 2010-01-06 2015-11-03 Alcatel Lucent Method to improve voice over IP capacity for user equipment employing variable rate vocoders
WO2012161652A1 (en) * 2011-05-26 2012-11-29 Agency For Science, Technology And Research Methods for transmitting and receiving a digital signal, transmitter and receiver
CN102594826B (zh) * 2012-02-24 2014-12-10 清华大学 一种适用于电力***终端设备的实时数据压缩通信方法
US8755404B2 (en) * 2012-04-25 2014-06-17 Gainspan Corporation Facilitating communication between resource-constrained devices and wireless communication terminals
US9268651B1 (en) * 2012-10-31 2016-02-23 Amazon Technologies, Inc. Efficient recovery of storage gateway cached volumes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020156901A1 (en) * 1999-03-15 2002-10-24 Wall Data Incorporated Method and system for providing a persistent HTTP tunnel
US6892240B1 (en) * 1999-09-17 2005-05-10 Nec Corporation Bidirectional communication system and method
US20050246442A1 (en) * 2002-12-20 2005-11-03 Bernd Gutjahr Communication method and system
RU2417532C2 (ru) * 2005-07-12 2011-04-27 Майкрософт Корпорейшн Доставка обновлений политик для защищенного содержимого
US20100042677A1 (en) * 2006-10-26 2010-02-18 Kazushige Ishikawa Two-way communication system, server unit, repeater, two-way communication method and program

Also Published As

Publication number Publication date
GB2513344B (en) 2017-03-15
JP2017118545A (ja) 2017-06-29
US9787770B2 (en) 2017-10-10
CN105340242A (zh) 2016-02-17
JP6444988B2 (ja) 2018-12-26
GB2513344A (en) 2014-10-29
GB201307340D0 (en) 2013-05-29
WO2014173521A1 (en) 2014-10-30
EP2989774B1 (en) 2018-04-04
US20150200997A1 (en) 2015-07-16
US20150222703A1 (en) 2015-08-06
RU2015143010A (ru) 2017-05-26
CN105340242B (zh) 2019-08-16
KR20150136141A (ko) 2015-12-04
KR101655715B1 (ko) 2016-09-07
JP2016522478A (ja) 2016-07-28
EP2989774A1 (en) 2016-03-02
BR112015026903A2 (pt) 2017-07-25

Similar Documents

Publication Publication Date Title
RU2635220C2 (ru) Система двухсторонней связи в реальном времени с использованием протокола НТТР
US10694005B2 (en) Hardware-based packet forwarding for the transport layer
US9590821B2 (en) Communication system for transmitting data under a tunnel protocol between at least two data computers via a wide area network and a method for running such a communication system
US9027129B1 (en) Techniques for protecting against denial of service attacks
US7826487B1 (en) Coalescing acknowledgement responses to improve network communications
EP1892887B1 (en) Communication method between communication devices and communication apparatus
US11425216B2 (en) Virtual private network (VPN) whose traffic is intelligently routed
JP2017118545A5 (ru)
US9516114B2 (en) Data packet transmission method and related device and system
EP3780440A1 (en) Transmission control method and apparatus
CN112954001B (zh) 一种http转https双向透明代理的方法和装置
WO2013102335A1 (zh) 一种网关握手、通信方法、网关及Web通信***
Thornburgh Adobe's Secure Real-Time Media Flow Protocol
WO2011020397A1 (zh) 网络代理实现方法及装置
Thomson et al. HTTP/2
WO2014198229A1 (zh) 报文处理方法、设备和***
CN114465744A (zh) 一种安全访问方法及网络防火墙***
Rajput et al. Comparing stream control and datagram congestion control with traditional transmission control protocol
CN114978643B (zh) 一种通信方法、网络设备及存储介质
KR102263755B1 (ko) 엔드포인트의 트래픽에 대한 포워딩 시스템 및 방법
CN115603994A (zh) 一种可信通信方法、装置、设备及存储介质
Wang et al. A Dual-Channel Approach to Protocol Design in the Presence of Middleboxes
WO2014187406A1 (zh) 并联模式p2p扰码方法、装置及***