Nothing Special   »   [go: up one dir, main page]

RU2541118C2 - Connection processing system and method using temporary port - Google Patents

Connection processing system and method using temporary port Download PDF

Info

Publication number
RU2541118C2
RU2541118C2 RU2013111282/08A RU2013111282A RU2541118C2 RU 2541118 C2 RU2541118 C2 RU 2541118C2 RU 2013111282/08 A RU2013111282/08 A RU 2013111282/08A RU 2013111282 A RU2013111282 A RU 2013111282A RU 2541118 C2 RU2541118 C2 RU 2541118C2
Authority
RU
Russia
Prior art keywords
connection
remote server
port
server
application
Prior art date
Application number
RU2013111282/08A
Other languages
Russian (ru)
Other versions
RU2013111282A (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 RU2013111282/08A priority Critical patent/RU2541118C2/en
Publication of RU2013111282A publication Critical patent/RU2013111282A/en
Application granted granted Critical
Publication of RU2541118C2 publication Critical patent/RU2541118C2/en

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

FIELD: physics, computer engineering.
SUBSTANCE: invention relates to connection processing systems and methods using a temporary port. The technical result is achieved using a proxy server which imitates a status from the server through changes in the states of the temporary port. The connection processing system using a temporary port comprises an application, an interception means, a connection establishing means and a remote server. The application initiates connection establishment with the remote server by sending network requests. The interception means intercepts network requests from the application to the remote server and initiates creation of a temporary port. The connection establishing means establishes a connection with the remote server after interception, creates a temporary port and imitates the status from the server by changing the state of the created temporary port. The remote server establishes a connection in response to the network requests.
EFFECT: enabling establishment or termination of a connection between an application and a remote server.
8 cl, 5 dwg

Description

Область техникиTechnical field

Изобретение относится к системам и способам обработки соединения с использованием временного порта.The invention relates to systems and methods for processing a connection using a temporary port.

Уровень техникиState of the art

В настоящее время пользователи персональных компьютеров часто сталкиваются с необходимостью иметь соединение с глобальной сетью Интернет. Также неуклонно растет список программ, для которых соединение с сетью Интернет является обязательным условием для работы, при этом растут объемы данных, передаваемых через сеть. Вместе с тем организация сетевого соединения становится сложнее и масштабнее, что, в свою очередь, влияет на качество и скорость передачи данных.Currently, personal computer users are often faced with the need to have a connection to the global Internet. The list of programs for which Internet connection is a prerequisite for work is also steadily growing, while the volume of data transmitted through the network is growing. At the same time, the organization of a network connection becomes more complex and larger, which, in turn, affects the quality and speed of data transfer.

Для обеспечения доступа компьютеров локальной сети в Интернет часто используют прокси-сервер. В самой простой реализации прокси-сервер представляет собой сетевую службу, которая необходима для организации соединения между приложением и удаленным сервером в сети Интернет. Основой работы прокси-сервера является механизм перехвата и перенаправления соединений. Разработка вышеупомянутого механизма осуществляется при помощи различных интерфейсов программирования приложений API (Application Programming Interface), которые имеют функции по работе с сетевыми портами и соединениями.To ensure access of computers on the local network to the Internet, a proxy server is often used. In its simplest implementation, a proxy server is a network service that is necessary to establish a connection between an application and a remote server on the Internet. The basis of the proxy server is a mechanism for intercepting and redirecting connections. The development of the aforementioned mechanism is carried out using various Application Programming Interface (API), which have functions for working with network ports and connections.

Основной проблемой при использовании прокси-серверов для TCP соединений является имитация статуса соединения, передаваемого от сервера. Важно, чтобы прокси-сервер не разрешал соединение с портом, который он предоставил приложению, до тех пор, пока он не проверит статус соединения, передаваемого от удаленного сервера, и не установит с ним соединение. Прокси-серверы, в которых некорректно реализован механизм перехвата и перенаправления соединения, нередко являются замедляющим фактором при передаче данных, а в некоторых случаях могут вызывать потерю соединения между узлами.The main problem when using proxies for TCP connections is the imitation of the connection status transmitted from the server. It is important that the proxy server does not allow the connection to the port that it provided to the application until it checks the status of the connection sent from the remote server and establishes a connection with it. Proxy servers that incorrectly implement the mechanism for intercepting and redirecting connections are often a slowing factor in data transfer, and in some cases can cause loss of connection between nodes.

Фиг.1 отображает установку соединения приложения 110 с удаленным сервером 130 с использованием прокси-сервера 120, который имеет проблему имитации статуса соединения от сервера. Соединение устанавливается в рамках стека протоколов TCP/IP. Все состояния соединения и портов по протоколу TCP описаны в RFC 793. Приложение 110, например браузер, инициирует обращение к удаленному серверу 130. В ответ DNS-сервер предоставляет список адресов, которые соответствуют удаленному серверу 130. Приложение 110 инициирует установку соединения и посылает запрос TCP SYN по адресу из списка от DNS-сервера. Прокси-сервер 120 производит перехват запроса, создает порт и открывает его вызовом команды passive OPEN, одновременно посылает запрос по адресу, полученному от приложения 110, на установку соединения с удаленным сервером 130 и сообщает приложению 110, что запрос по текущему адресу будет перенаправлен. Для начала установки соединения по протоколу TCP согласно RFC 793 необходимо выполнить команду OPEN. На прокси-сервере вызов команды OPEN происходит в режиме passive. Результатом выполнения вызова passive OPEN является открытие порта и переход соединения в состояние LISTEN. В этом состоянии порт открыт, но не выполняет никаких действий по установке соединения, а ожидает входящего соединения. Приложение 110 при повторном обращении по адресу из списка от DNS-сервера перенаправляется прокси-сервером на открытый порт. Порт прокси-сервера 120 принимает ожидаемое входящее подключение. Между приложением 110 и прокси-сервером 120 начинается обмен запросами, соединение устанавливается. Так как соединение было установлено успешно, приложение 110 завершает опрос адресов из списка от DNS-сервера и начинает опрос удаленного сервера 130 для передачи данных. Если прокси-сервер 120 не имеет возможности установить соединение с удаленным сервером 130, порт, через который приложение 110 установило соединение с прокси-сервером 120, закрывается. Приложение 110 получает сообщение о том, что сервер неожиданно разорвал соединение.Figure 1 shows the connection setup of an application 110 with a remote server 130 using a proxy server 120, which has the problem of simulating the connection status from the server. The connection is established within the TCP / IP protocol stack. All connection and port states via TCP are described in RFC 793. Application 110, such as a browser, initiates a call to the remote server 130. In response, the DNS server provides a list of addresses that correspond to the remote server 130. Application 110 initiates a connection and sends a TCP request SYN at the address from the list from the DNS server. The proxy server 120 intercepts the request, creates the port and opens it by calling the passive OPEN command, simultaneously sends the request to the address received from application 110 to establish a connection with the remote server 130 and informs application 110 that the request to the current address will be redirected. To start establishing a TCP connection according to RFC 793, you must run the OPEN command. On the proxy server, the OPEN command is called in passive mode. The result of making a passive OPEN call is to open the port and put the connection into LISTEN state. In this state, the port is open, but does not take any action to establish a connection, but expects an incoming connection. Application 110, when re-accessing the address from the list from the DNS server, is redirected by the proxy server to the open port. The proxy port 120 accepts the expected incoming connection. Between the application 110 and the proxy server 120, the exchange of requests begins, the connection is established. Since the connection was successful, the application 110 completes the polling of addresses from the list from the DNS server and starts polling the remote server 130 for data transfer. If the proxy server 120 is unable to establish a connection with the remote server 130, the port through which the application 110 has established a connection with the proxy server 120 is closed. Application 110 receives a message stating that the server unexpectedly disconnected.

Таким образом, приложение 110 не возобновляет опрос адресов из списка от DNS-сервера, но и не имеет установленного соединения с удаленным сервером 130.Thus, the application 110 does not resume polling addresses from the list from the DNS server, but also does not have an established connection with the remote server 130.

В одном из вариантов реализации при программировании прокси-сервера используется библиотека Berkeley sockets стандарта Posix, которая содержит API-функции управления соединением. Для большинства операционных систем такой способ реализации прокси-серверов является предпочтительным. В реализациях с использованием API для выполнения вышеописанных действий применяют функции bind() и listen(). Функция bind() используется для связывания порта и процесса, а функция listen() для вызова команды passive OPEN и перехода соединения в состояние LISTEN. Не следует путать функцию listen() с состоянием соединения LISTEN.In one embodiment, when programming a proxy server, the Posix standard Berkeley sockets library is used, which contains connection management APIs. For most operating systems, this method of implementing proxy servers is preferred. In implementations using the API, the bind () and listen () functions are used to perform the above actions. The bind () function is used to bind the port and the process, and the listen () function is used to call the passive OPEN command and put the connection into the LISTEN state. The listen () function should not be confused with the state of the LISTEN connection.

На сегодняшний день известны системы и способы для организации соединения с использованием прокси-сервера. В большинстве такие системы основаны на использовании API-функций bind() и listen().To date, systems and methods for organizing a connection using a proxy server are known. Most of these systems are based on the use of the bind () and listen () API functions.

Публикация US7161947 В1 описывает алгоритм перехвата без потери соединения с созданием динамического (промежуточного) порта. В том числе, описан способ пассивного соединения, когда в работе алгоритма участвуют пользователь, перехватчик, прокси-сервер, удаленный сервер. При этом следует учесть, что проблема имитации статуса от сервера при установке соединения через прокси-сервер в данной публикации не освещена.Publication US7161947 B1 describes an interception algorithm without loss of connection with the creation of a dynamic (intermediate) port. In particular, a passive connection method is described when a user, an interceptor, a proxy server, and a remote server participate in the operation of the algorithm. It should be noted that the problem of simulating the status from the server when establishing a connection through a proxy server is not covered in this publication.

В публикации «The Remote Socket Architecture)) (http://vv4vw.tkn.tu- 12/TKN-dissertations/schlaeger_morten.pdf) описан примерный сценарий организации соединения. Происходит создание сокетов на обеих сторонах, их связывание с конечным адресом и введение сокета сервера в режим прослушивания с использованием функций bind() и listen(). Но в данной публикации информации о решении проблемы имитации статуса от удаленного сервера при установке соединения через прокси-сервер нет.The publication “The Remote Socket Architecture))) (http: //vv4vw.tkn.tu- 12 / TKN-dissertations / schlaeger_morten.pdf) describes an example connection organization scenario. Sockets are created on both sides, they are associated with the final address and the server socket is put into listening mode using the bind () and listen () functions. But in this publication, there is no information on solving the problem of simulating the status from a remote server when establishing a connection through a proxy server.

Предложенные и описанные далее система и способ обработки соединения с использованием временного порта обходят описанную выше проблему.The proposed and described further system and method for processing a connection using a temporary port circumvents the problem described above.

Анализ предшествующего уровня техники и возможностей, которые появляются при комбинировании существующих решений в одной системе, позволяет получить новый результат, а именно систему и способ обработки соединения с использованием временного порта.An analysis of the prior art and the possibilities that arise when combining existing solutions in one system allows you to get a new result, namely the system and method of processing the connection using a temporary port.

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

Настоящее изобретение предназначено для обработки соединения с использованием временного порта.The present invention is intended to process a connection using a temporary port.

Технический результат настоящего изобретения заключается в установке либо закрытии соединения между приложением и удаленным сервером. Указанный технический результат достигается за счет использования прокси-сервера, который имитирует статус от сервера.The technical result of the present invention is to establish or close the connection between the application and the remote server. The specified technical result is achieved through the use of a proxy server that simulates the status from the server.

Система обработки соединения с использованием временного порта содержит приложение, которое инициирует установку соединения с удаленным сервером путем отправки сетевых запросов; средство перехвата, предназначенное для перехвата сетевых запросов от приложения к удаленному серверу, инициации создания временного порта; средство установки соединения, предназначенное для установки соединения с удаленным сервером после перехвата средством перехвата, создания временного порта, имитации статуса от сервера при помощи изменения состояния созданного временного порта; удаленный сервер, который устанавливает соединение в ответ на сетевые запросы.The connection processing system using a temporary port contains an application that initiates the establishment of a connection to a remote server by sending network requests; interception tool designed to intercept network requests from an application to a remote server, initiate the creation of a temporary port; connection setup tool designed to establish a connection with a remote server after being intercepted by an interception tool, creating a temporary port, simulating the status from the server by changing the state of the created temporary port; A remote server that establishes a connection in response to network requests.

В частном случае реализации системы перед началом отправки сетевых запросов для установки соединения приложение получает список адресов от DNS сервера.In the particular case of system implementation, before starting sending network requests to establish a connection, the application receives a list of addresses from the DNS server.

В другом частном случае реализации системы средство перехвата передает адрес удаленного сервера, полученного от приложения, средству установки соединения.In another particular case of the system implementation, the interception tool transfers the address of the remote server received from the application to the connection setup tool.

Еще в одном частном случае реализации системы средство установки соединения изменяет состояние созданного временного порта, а именно открывает порт, когда соединение с удаленным сервером установлено; закрывает порта, когда соединение с удаленным сервером не установлено; когда удаленный сервер не отвечает, ожидает ответа от удаленного сервера и закрывает порт по истечении периода времени на установку соединения.In another particular case of the system implementation, the connection setup tool changes the state of the created temporary port, namely, it opens the port when the connection with the remote server is established; closes ports when a connection to a remote server is not established; when the remote server does not respond, it waits for a response from the remote server and closes the port after a period of time to establish a connection.

Способ обработки соединения с использованием временного порта, в котором инициируют установку соединения с удаленным сервером путем отправки сетевых запросов; перехватывают сетевые запросы; устанавливают соединение с удаленным сервером после перехвата; создают временный порт; имитируют статус от сервера путем изменения состояния временного порта.A method for processing a connection using a temporary port in which a connection to a remote server is initiated by sending network requests; intercept network requests; establish a connection with a remote server after interception; create a temporary port; simulate the status from the server by changing the status of the temporary port.

В частном случае реализации способа для соединения с удаленным сервером получают его адреса от DNS сервера с помощью приложения.In the particular case of the implementation of the method for connecting to a remote server, its addresses are obtained from the DNS server using the application.

В другом частном случае реализации способа адрес удаленного сервера, полученный от приложения, передается средству установки соединения с помощью средства перехвата.In another particular case of implementing the method, the remote server address received from the application is transmitted to the connection setup tool using the interception tool.

Еще в одном частном случае реализации способа изменяют состояние временного порта: когда соединение с удаленным сервером установлено, открывают порт; когда соединение с удаленным сервером не установлено, закрывают порт; когда удаленный сервер не отвечает, ожидают установки соединения и закрывают порт по истечении периода времени на установку соединения.In another particular case of the implementation of the method, the state of the temporary port is changed: when the connection with the remote server is established, open the port; when the connection to the remote server is not established, close the port; when the remote server does not respond, wait for the connection to be established and close the port after a period of time to establish the connection.

Краткое описание чертежейBrief Description of the Drawings

Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:Additional objectives, features and advantages of the present invention will be apparent from reading the following description of an embodiment of the invention with reference to the accompanying drawings, in which:

Фиг.1 отображает диаграмму установки соединения приложения с удаленным сервером с использованием прокси-сервера, который имеет проблему имитации статуса от сервера в случае, когда сервер недоступен;Figure 1 shows a diagram of the connection between the application and the remote server using a proxy server, which has the problem of simulating status from the server in the case when the server is unavailable;

Фиг.2 иллюстрирует схему работы системы обработки соединения с использованием временного порта в случае, когда сервер недоступен;Figure 2 illustrates the operation of the connection processing system using the temporary port in the case when the server is unavailable;

Фиг.3 показывает схему работы системы обработки соединения с использованием временного порта в случае, когда сервер доступен;Figure 3 shows the operation of the connection processing system using the temporary port in the case when the server is available;

Фиг.4 отображает схему алгоритма обработки соединения с использованием временного порта;Figure 4 shows a diagram of a connection processing algorithm using a temporary port;

Фиг.5 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер.5 is an example of a general purpose computer system, personal computer, or server.

Хотя изобретение может иметь различные модификации и альтернативные формы, характерные признаки, показанные в качестве примера на чертежах, будут описаны подробно. Следует понимать, однако, что цель описания заключается не в ограничении изобретения конкретным его воплощением. Наоборот, целью описания является охват всех изменений, модификаций, входящих в рамки данного изобретения, как это определено в приложенной формуле.Although the invention may have various modifications and alternative forms, the characteristic features shown by way of example in the drawings will be described in detail. It should be understood, however, that the purpose of the description is not to limit the invention to its specific embodiment. On the contrary, the purpose of the description is to cover all changes, modifications that are within the scope of this invention, as defined in the attached formula.

Описание вариантов осуществления изобретенияDescription of Embodiments

Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, необходимыми для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.The objects and features of the present invention, methods for achieving these objects and features will become apparent by reference to exemplary embodiments. However, the present invention is not limited to the exemplary embodiments disclosed below, it can be embodied in various forms. The essence described in the description is nothing more than the specific details necessary to assist the specialist in the field of technology in a comprehensive understanding of the invention, and the present invention is defined in the scope of the attached claims.

Для начала установки соединения по протоколу TCP согласно RFC 793 необходимо выполнить команду OPEN. На прокси-сервере вызов команды OPEN происходит в режиме passive. Результатом выполнения вызова passive OPEN является открытие порта и переход соединения в состояние LISTEN. В этом состоянии порт не выполняет никаких действий по установке соединения, а ожидает входящего соединения.To start establishing a TCP connection according to RFC 793, you must run the OPEN command. On the proxy server, the OPEN command is called in passive mode. The result of making a passive OPEN call is to open the port and put the connection into LISTEN state. In this state, the port does not take any action to establish a connection, but expects an incoming connection.

В одном из вариантов реализации при программировании прокси-сервера используется библиотека Berkeley sockets стандарта Posix, которая содержит API-функции управления соединением. В реализациях с использованием API для выполнения вышеописанных действий применяют функции bind() и listen(). Функция bind() используется для связывания порта и процесса, а функция listen() для вызова команды passive OPEN и перехода соединения в состояние LISTEN. Не следует путать функцию listen() с состоянием соединения LISTEN.In one embodiment, when programming a proxy server, the Posix standard Berkeley sockets library is used, which contains connection management APIs. In implementations using the API, the bind () and listen () functions are used to perform the above actions. The bind () function is used to bind the port and the process, and the listen () function is used to call the passive OPEN command and put the connection into the LISTEN state. The listen () function should not be confused with the state of the LISTEN connection.

Статусом соединения, передаваемым от сервера, является информация о состоянии сетевого соединения после отправки сетевых запросов. В общем случае для корректной работы прокси-сервера необходимо имитировать три статуса соединения, передаваемых от сервера, хотя общее количество статусов соединения может быть больше. Сервер может быть доступен, не отвечать и быть недоступным. Когда сервер доступен, при получении сетевых запросов на соединение происходит установка соединения. В случае если сервер не отвечает, все сетевые запросы на соединение не доходят до сервера. Запросы повторяются в течение ограниченного периода времени. Когда сервер не доступен, в ответ на сетевые запросы на соединение приходит сообщение об ошибке установки соединения.The connection status transmitted from the server is information about the status of the network connection after sending network requests. In general, for the proxy server to work correctly, it is necessary to simulate three connection statuses transmitted from the server, although the total number of connection statuses may be greater. The server may be available, not responding, and unavailable. When the server is available, upon receipt of network connection requests, a connection is established. If the server does not respond, all network connection requests do not reach the server. Requests are repeated for a limited period of time. When the server is not available, in response to network connection requests, a connection setup error message is received.

В общем случае структурная схема работы системы обработки соединения с использованием временного порта 205 между приложением 210 и удаленным сервером 240 в случае, когда удаленный сервер 240 недоступен, имеет вид, показанный на Фиг.2. Система обработки соединения с использованием временного порта 205 состоит из средства перехвата 220 и средства установки соединения 230. Средство перехвата 220 предназначено для перехвата и перенаправления сетевых запросов от приложения 210, передачи адреса удаленного сервера 240 и выполнения запроса на создание временного порта средству установки соединения 230. Средство установки соединения 230 предназначено для создания временного порта и передачи информации о порте средству перехвата 220, установки соединения с удаленным сервером 240 и сопровождения перенаправления успешного соединения между приложением 210 и удаленным сервером 240. Приложение 210, например браузер, инициирует обращение к удаленному серверу 240. В ответ DNS-сервер предоставляет список адресов, которые соответствуют удаленному серверу 240. Приложение 210 инициирует установку соединения по адресу из списка от DNS-сервера и посылает запрос TCP SYN. Средство перехвата 220 производит перехват соединения, посылает запрос средству установки соединения 230 на создание временного порта и сообщает адрес удаленного сервера, с которым нужно установить соединение, затем после создания временного порта начинает перенаправление запросов на соединение от приложения 210 на временный порт. Средство установки соединения 230 начинает установку соединения по адресу, полученному из запроса, создает временный порт, вызвав API-функцию bind() и сообщает информацию о порте средству перехвата 220. Результатом выполнения вышеупомянутой функции является резервирование временного порта в стеке протокола TCP. Соединение через порт не устанавливается, поскольку он не открыт, но в ответ не приходит никаких ICMP сообщений, поскольку порт создан. ICMP (Internet Control Message Protocol - протокол межсетевых управляющих сообщений) используется для передачи сообщений об ошибках и других исключительных ситуациях, возникающих при передаче данных, например запрашиваемая услуга недоступна, сервер или маршрутизатор не отвечают. Таким образом, имитируется статус от сервера, к которому начата, но не закончена, процедура установки соединения. Попытки приложения 210 установить соединение с портом, на который осуществляется перенаправление, будут безуспешными, но не приведут к завершению установки соединения, приложение 210 продолжит посылать TCP SYN запросы. В случае если средство установки соединения 230 не установит соединение с удаленным сервером, временный порт будет закрыт. При очередном запросе TCP SYN приложения 210 будет возвращено ICMP сообщение о недоступности порта, что является имитацией статуса от сервера при его недоступности. В случае если средство установки соединения 230 не установит соединение с удаленным сервером 240 по истечении периода времени на установку соединения (time out), порт будет существовать до тех пор, пока со стороны приложения 210 не истечет период времени на установку соединения. Таким образом, имитируется статус от сервера, соединение с которым не удалось установить по причине истечения периода времени на установку соединения (time out). Поскольку соединение с удаленным сервером 240 так и не было установлено, приложение 210 продолжит опрос адресов из списка от DNS-сервера.In general, the block diagram of the operation of the connection processing system using the temporary port 205 between the application 210 and the remote server 240 in the case where the remote server 240 is unavailable has the form shown in FIG. 2. The connection processing system using temporary port 205 consists of interception means 220 and connection establishment means 230. Interception means 220 is designed to intercept and redirect network requests from application 210, transmit the address of remote server 240, and execute a request to create a temporary port to connection establishment 230. Connection setup tool 230 is designed to create a temporary port and transmit port information to interception tool 220, establish a connection to remote server 240, and After a successful connection is redirected between the application 210 and the remote server 240. The application 210, for example, a browser, initiates a call to the remote server 240. In response, the DNS server provides a list of addresses that correspond to the remote server 240. The application 210 initiates a connection to the address from the list from DNS server and sends a TCP SYN request. The interception tool 220 intercepts the connection, sends a request to the connection setup tool 230 to create a temporary port and reports the address of the remote server with which it needs to establish a connection, then after creating the temporary port, it starts redirecting connection requests from application 210 to the temporary port. Connection setup tool 230 starts establishing a connection at the address received from the request, creates a temporary port by calling the bind () API function and reports port information to interception tool 220. The result of the above function is to reserve a temporary port in the TCP protocol stack. The connection through the port is not established because it is not open, but no ICMP messages are returned in response to the port being created. ICMP (Internet Control Message Protocol) is used to send error messages and other exceptional situations that occur during data transfer, for example, the requested service is unavailable, the server or router is not responding. Thus, the status from the server to which the connection establishment procedure is started but not completed is simulated. Attempts by application 210 to establish a connection with the port being redirected will be unsuccessful, but will not lead to the completion of the connection, application 210 will continue to send TCP SYN requests. If the connection setup tool 230 fails to establish a connection with the remote server, the temporary port will be closed. At the next TCP SYN request of application 210, an ICMP port unavailability message will be returned, which is a simulation of the status from the server when it is unavailable. If the connection setup tool 230 does not establish a connection with the remote server 240 after a time period for establishing a connection (time out) has elapsed, the port will exist until the time period for establishing the connection has expired on the application 210 side. Thus, the status from the server is simulated, the connection to which could not be established due to the expiration of the time period for establishing the connection (time out). Since the connection to the remote server 240 was never established, application 210 will continue to poll addresses from the list from the DNS server.

В общем случае структурная схема работы системы обработки соединения с использованием временного порта 205 между приложением 210 и удаленным сервером 240 в случае, когда удаленный сервер 240 недоступен, имеет вид, показанный на Фиг.3. Приложение 210, например браузер, инициирует обращение к удаленному серверу 240. В ответ DNS-сервер предоставляет список адресов, которые соответствуют удаленному серверу 240. Приложение 210 инициирует установку соединения по адресу из списка от DNS-сервера и посылает запрос TCP SYN. Средство перехвата 220 производит перехват соединения, посылает запрос средству установки соединения 230 на создание временного порта и сообщает адрес удаленного сервера 240, с которым нужно установить соединение, затем начинает перенаправление запросов на соединение от приложения 210 на временный порт. Средство установки соединения 230 начинает установку соединения по адресу, полученному из запроса, создает временный порт, вызвав API-функцию bind(), и сообщает информацию о порте средству перехвата 220. В случае, когда удаленный сервер 240 доступен и средство установки соединения 230 установит соединение, порт будет открыт при помощи вызова функции HstenQ. Впоследствии, после успешной установки соединения приложения 210 с удаленным сервером 240, временный порт будет закрыт. Таким образом, имитируется статус от сервера, который доступен.In the General case, the block diagram of the operation of the connection processing system using the temporary port 205 between the application 210 and the remote server 240 in the case when the remote server 240 is unavailable, has the form shown in Fig.3. Application 210, such as a browser, initiates a call to the remote server 240. In response, the DNS server provides a list of addresses that correspond to the remote server 240. Application 210 initiates a connection to the address from the list from the DNS server and sends a TCP SYN request. The interception tool 220 intercepts the connection, sends a request to the connection setup tool 230 to create a temporary port and reports the address of the remote server 240 with which it is necessary to establish a connection, then starts redirecting connection requests from the application 210 to the temporary port. The connection setup tool 230 starts the connection at the address received from the request, creates a temporary port by calling the bind () API function, and reports the port information to the interception tool 220. In case the remote server 240 is available and the connection setup tool 230 establishes a connection , the port will be opened by calling the HstenQ function. Subsequently, after successfully connecting the application 210 to the remote server 240, the temporary port will be closed. Thus, the status of the server that is available is simulated.

На Фиг.4 показана схема алгоритма установки соединения с использованием прокси-сервера. На этапе 410 приложение 210, например браузер, инициирует обращение к удаленному серверу 240. В ответ DNS-сервер предоставляет список адресов, которые соответствуют удаленному серверу 240. На этапе 420 приложение 210 инициирует установку соединения по адресу из списка от DNS-сервера и посылает запрос TCP SYN. В случае неудачной попытки установки соединения с удаленным сервером 240, приложение 210 будет переходить к установке соединения с другим адресом из списка от DNS-сервера до тех пор, пока не закончится список. На этапе 430 система обработки соединения с использованием временного порта 205, используя средство перехвата 220, перехватывает запрос на соединение с удаленным сервером 240 и пересылает адрес, по которому нужно установить соединение, и запрос на создание порта средству установки соединения 230. На этапе 440 средство установки соединения 230 инициирует установку соединения с удаленным сервером 240 по адресу, полученному от средства перехвата 220. На этапе 450 средство установки соединения 230 создает временный порт, используя функцию bind(), сообщает информацию о порте средству перехвата 220, имитируется статус от сервера, с которым начата, но не окончена, процедура установки соединения. На этапе 460 все запросы от приложения 210 перенаправляются на созданный порт. На этапе 470 средство установки соединения 230, если с удаленным сервером 240 не удалось установить соединение, закрывает порт. Таким образом, имитируется статус от сервера, с которым не удалось установить соединение. Если соединение с удаленным сервером 140 установлено, то средство установки соединения 230, вызвав функцию listen(), открывает порт и начинает отвечать на запросы приложения 210. Имитируется статус от сервера, с которым удалось установить соединение. На этапе 480 приложение 210 посылает очередной запрос на установку соединения по текущему адресу из списка от DNS-сервера. В случае, когда порт открыт, этап 490, приложение начинает обмен данными с удаленным сервером 240. В противном случае приложение 210 переходит на этап 420 и инициирует установку соединения со следующим адресом из списка от DNS-сервера.Figure 4 shows a diagram of the algorithm for establishing a connection using a proxy server. At step 410, the application 210, such as a browser, initiates a call to the remote server 240. In response, the DNS server provides a list of addresses that correspond to the remote server 240. At step 420, the application 210 initiates a connection to the address from the list from the DNS server and sends a request TCP SYN. In the event of an unsuccessful attempt to establish a connection with the remote server 240, application 210 will proceed to establish a connection with a different address from the list from the DNS server until the list ends. At step 430, the connection processing system using the temporary port 205, using interception tool 220, intercepts the connection request to the remote server 240 and forwards the address to which the connection is to be established, and the port creation request to the connection setup tool 230. At step 440, the installation tool connection 230 initiates a connection with the remote server 240 at the address received from the interception tool 220. At step 450, the connection setup tool 230 creates a temporary port using the bind () function, informs inf rmatsiyu the port interception means 220 simulates the status of the server that is started, but not finished, a connection procedure. At 460, all requests from application 210 are redirected to the created port. At step 470, the connection setup tool 230, if the connection to the remote server 240 failed, closes the port. Thus, the status from the server with which it was not possible to establish a connection is simulated. If a connection to the remote server 140 is established, then the connection setup tool 230, by calling the listen () function, opens the port and starts responding to the application 210. The status from the server with which it was able to establish a connection is simulated. At step 480, application 210 sends another request to establish a connection to the current address from the list from the DNS server. In the case when the port is open, step 490, the application starts exchanging data with the remote server 240. Otherwise, the application 210 proceeds to step 420 and initiates a connection with the next address from the list from the DNS server.

Фиг.5 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26 содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24.5 is an example of a general purpose computer system, a personal computer or server 20 comprising a central processor 21, a system memory 22, and a system bus 23 that contains various system components, including memory associated with the central processor 21. The system bus 23 is implemented like any bus structure known in the art, which in turn contains a bus memory or a bus memory controller, a peripheral bus and a local bus that is capable of interacting with any other bus architecture. The system memory contains read-only memory (ROM) 24, random access memory (RAM) 25. The main input / output system (BIOS) 26 contains the basic procedures that ensure the transfer of information between the elements of the personal computer 20, for example, at the time of loading the operating system using ROM 24.

Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.The personal computer 20 in turn contains a hard disk 27 for reading and writing data, a magnetic disk drive 28 for reading and writing to removable magnetic disks 29, and an optical drive 30 for reading and writing to removable optical disks 31, such as a CD-ROM, DVD -ROM and other optical information carriers. The hard disk 27, the magnetic disk drive 28, the optical drive 30 are connected to the system bus 23 through the interface of the hard disk 32, the interface of the magnetic disks 33 and the interface of the optical drive 34, respectively. Drives and associated computer storage media are non-volatile means of storing computer instructions, data structures, software modules and other data of a personal computer 20.

Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.The present description discloses an implementation of a system that uses a hard disk 27, a removable magnetic disk 29, and a removable optical disk 31, but it should be understood that other types of computer storage media 56 that can store data in a form readable by a computer (solid state drives, flash memory cards, digital disks, random access memory (RAM), etc.) that are connected to the system bus 23 through the controller 55.

Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканнер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например колонками, принтером и т.п.Computer 20 has a file system 36 where the recorded operating system 35 is stored, as well as additional software applications 37, other program modules 38, and program data 39. The user is able to enter commands and information into personal computer 20 via input devices (keyboard 40, keypad “ the mouse "42). Other input devices (not displayed) can be used: microphone, joystick, game console, scanner, etc. Such input devices are, as usual, connected to the computer system 20 via a serial port 46, which in turn is connected to the system bus, but can be connected in another way, for example, using a parallel port, a game port, or a universal serial bus (USB). A monitor 47 or other type of display device is also connected to the system bus 23 via an interface such as a video adapter 48. In addition to the monitor 47, the personal computer may be equipped with other peripheral output devices (not displayed), such as speakers, a printer, and the like.

Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг.5. В вычислительной сети могут присутствовать также и другие устройства, например маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.The personal computer 20 is capable of operating in a networked environment, using a network connection with another or more remote computers 49. The remote computer (or computers) 49 are the same personal computers or servers that have most or all of the elements mentioned earlier in the description of the creature the personal computer 20 of FIG. 5. Other devices, such as routers, network stations, peer-to-peer devices, or other network nodes may also be present on the computer network.

Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях, внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.Network connections can form a local area network (LAN) 50 and a wide area network (WAN). Such networks are used in corporate computer networks, internal networks of companies and, as a rule, have access to the Internet. In LAN or WAN networks, the personal computer 20 is connected to the local area network 50 via a network adapter or network interface 51. When using the networks, the personal computer 20 may use a modem 54 or other means of providing communication with a global computer network such as the Internet. The modem 54, which is an internal or external device, is connected to the system bus 23 via the serial port 46. It should be clarified that the network connections are only exemplary and are not required to display the exact network configuration, i.e. in reality, there are other ways to establish a technical connection between one computer and another.

В заключение следует отметить, что приведенные в описании сведения являются только примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.In conclusion, it should be noted that the information provided in the description are only examples that do not limit the scope of the present invention defined by the claims.

Claims (8)

1. Система обработки соединения с использованием временного порта, которая содержит:
а) приложение, которое инициирует установку соединения с удаленным сервером путем отправки сетевых запросов;
б) средство перехвата, предназначенное для перехвата сетевых запросов от приложения к удаленному серверу и инициации создания временного порта;
в) средство установки соединения, предназначенное для установки соединения с удаленным сервером после перехвата средством перехвата, создания временного порта и имитации статуса от сервера при помощи изменения состояния созданного временного порта;
г) удаленный сервер, который устанавливает соединение в ответ на сетевые запросы.
1. A connection processing system using a temporary port, which contains:
a) an application that initiates a connection to a remote server by sending network requests;
b) an interception tool designed to intercept network requests from an application to a remote server and initiate the creation of a temporary port;
c) a connection setup tool designed to establish a connection with a remote server after being intercepted by a capture tool, creating a temporary port and simulating the status from the server by changing the state of the created temporary port;
d) a remote server that establishes a connection in response to network requests.
2. Система по п.1, в которой перед началом отправки сетевых запросов для установки соединения приложение получает список адресов от DNS сервера.2. The system according to claim 1, in which before sending network requests to establish a connection, the application receives a list of addresses from the DNS server. 3. Система по п.1, в которой средство перехвата передает адрес удаленного сервера, полученный от приложения, средству установки соединения.3. The system according to claim 1, in which the means of interception transmits the address of the remote server received from the application to the connection setup tool. 4. Система по п.1, в которой средство установки соединения изменяет состояние созданного временного порта:
A) открывает порт, когда соединение с удаленным сервером установлено;
Б) закрывает порт, когда соединение с удаленным сервером не установлено;
B) когда удаленный сервер не отвечает, ожидает ответа от удаленного сервера и закрывает порт по истечении периода времени на установку соединения.
4. The system according to claim 1, in which the connection setup tool changes the state of the created temporary port:
A) opens the port when a connection to the remote server is established;
B) closes the port when the connection to the remote server is not established;
B) when the remote server does not respond, it waits for a response from the remote server and closes the port after a period of time to establish a connection.
5. Способ обработки соединения с использованием временного порта, в котором:
а) инициируют установку соединения с удаленным сервером путем отправки сетевых запросов;
б) перехватывают сетевые запросы;
в) устанавливают соединение с удаленным сервером после перехвата;
г) создают временный порт;
д) имитируют статус от сервера путем изменения состояния временного порта.
5. A method for processing a connection using a temporary port in which:
a) initiate a connection with a remote server by sending network requests;
b) intercept network requests;
c) establish a connection with a remote server after interception;
d) create a temporary port;
d) simulate the status from the server by changing the status of the temporary port.
6. Способ по п.5, в котором для соединения с удаленным сервером получают его адреса от DNS сервера с помощью приложения.6. The method according to claim 5, in which to connect to a remote server receive its address from the DNS server using the application. 7. Способ по п.5, в котором адрес удаленного сервера, полученный от приложения, передается средству установки соединения с помощью средства перехвата.7. The method according to claim 5, in which the address of the remote server received from the application is transmitted to the connection setup tool using the interception tool. 8. Способ по п.5, в котором изменяют состояние временного порта:
A) когда соединение с удаленным сервером установлено, открывают порт;
Б) когда соединение с удаленным сервером не установлено, закрывают порт;
B) когда удаленный сервер не отвечает, ожидают установки соединения и закрывают порт по истечении периода времени на установку соединения.
8. The method according to claim 5, in which the state of the temporary port is changed:
A) when the connection with the remote server is established, open the port;
B) when the connection to the remote server is not established, close the port;
B) when the remote server does not respond, wait for the connection to be established and close the port after a period of time to establish the connection.
RU2013111282/08A 2013-03-14 2013-03-14 Connection processing system and method using temporary port RU2541118C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2013111282/08A RU2541118C2 (en) 2013-03-14 2013-03-14 Connection processing system and method using temporary port

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2013111282/08A RU2541118C2 (en) 2013-03-14 2013-03-14 Connection processing system and method using temporary port

Publications (2)

Publication Number Publication Date
RU2013111282A RU2013111282A (en) 2014-09-20
RU2541118C2 true RU2541118C2 (en) 2015-02-10

Family

ID=51583523

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2013111282/08A RU2541118C2 (en) 2013-03-14 2013-03-14 Connection processing system and method using temporary port

Country Status (1)

Country Link
RU (1) RU2541118C2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2289886C2 (en) * 2002-08-30 2006-12-20 Эррикос ПИТСОС Method, bridge, and system for data transfer between public data network device and intercom network device
US7161947B1 (en) * 2002-07-30 2007-01-09 Cisco Technology, Inc. Methods and apparatus for intercepting control and data connections
US8295277B2 (en) * 2007-06-29 2012-10-23 Cisco Technology, Inc. Analyzing a network with a cache advance proxy

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7161947B1 (en) * 2002-07-30 2007-01-09 Cisco Technology, Inc. Methods and apparatus for intercepting control and data connections
RU2289886C2 (en) * 2002-08-30 2006-12-20 Эррикос ПИТСОС Method, bridge, and system for data transfer between public data network device and intercom network device
US8295277B2 (en) * 2007-06-29 2012-10-23 Cisco Technology, Inc. Analyzing a network with a cache advance proxy

Also Published As

Publication number Publication date
RU2013111282A (en) 2014-09-20

Similar Documents

Publication Publication Date Title
JP4965574B2 (en) Port sharing among multiple processes
JP7522323B2 (en) Data transmission method, device, equipment and computer program for service integration
US11936638B2 (en) Link protocol agents for inter-application communications
US20240069977A1 (en) Data transmission method and data transmission server
Rhodes et al. Foundations of Python network programming
WO2012129468A1 (en) System and method for sharing data from a local network to a remote device
CN101364976B (en) Method and apparatus for establishing communication channel and data communication system
TWI632465B (en) Method for use with a public cloud network, private cloud routing server and smart device client
US20130117437A1 (en) Method for establising tcp connecting according to nat behaviors
US20180198870A1 (en) Information processing apparatus, method for controlling the same, non-transitory computer-readable storage medium, and information processing system
WO2009093308A1 (en) Connection control method, connection control server device, connection control client device, and program
US20120173740A1 (en) Method and apparatus of performing peer-to-peer communication establishment
CN108882262B (en) Equipment state synchronization method and system, intelligent terminal and readable storage medium
Zato et al. Platform for building large-scale agent-based systems
US11659012B2 (en) Relayed communication channel establishment
RU2541118C2 (en) Connection processing system and method using temporary port
CN1917512B (en) Method for establishing direct connected peer-to-peer channel
WO2016161774A1 (en) Method and apparatus for terminal application accessing nas
KR20090071542A (en) Host posing network device and method thereof
WO2019045828A1 (en) Bidirectional data exchange
WO2016188172A1 (en) Method and system for implementing remote terminal tool
TW202233007A (en) Connection method and computer-readable medium for use in a private communication architecture
KR102187301B1 (en) The multiple virtual network communication system and method using virtual router
CN115509435A (en) Data reading and writing method, device, equipment and medium
CN113709163A (en) Method and system for realizing remote operation of computer based on wireless terminal