KR100924088B1 - Method for Controlling flow of Communication between URC Server and Client - Google Patents

Method for Controlling flow of Communication between URC Server and Client Download PDF

Info

Publication number
KR100924088B1
KR100924088B1 KR1020070140801A KR20070140801A KR100924088B1 KR 100924088 B1 KR100924088 B1 KR 100924088B1 KR 1020070140801 A KR1020070140801 A KR 1020070140801A KR 20070140801 A KR20070140801 A KR 20070140801A KR 100924088 B1 KR100924088 B1 KR 100924088B1
Authority
KR
South Korea
Prior art keywords
channel
available space
urc
client
communication
Prior art date
Application number
KR1020070140801A
Other languages
Korean (ko)
Other versions
KR20090072634A (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 KR1020070140801A priority Critical patent/KR100924088B1/en
Publication of KR20090072634A publication Critical patent/KR20090072634A/en
Application granted granted Critical
Publication of KR100924088B1 publication Critical patent/KR100924088B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6285Provisions for avoiding starvation of low priority queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • 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/14Multichannel or multilink protocols

Landscapes

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

Abstract

본 발명은 URC 서버 및 클라이언트 간 통신의 부분 흐름 제어 방법에 관한 것이다. 본 발명에 의하면, URC 서버와 URC 클라이언트 사이의 통신 연결을 복수개의 채널로 구성하고, URC 클라이언트를 구성하는 각각의 컴포넌트에 하나 이상의 채널을 할당하며, 각각의 채널의 수신 측에는 수신 버퍼를 구비한다. 채널의 수신 측에서 상기 수신 버퍼의 가용공간의 변화를 유발하는 상황에 가용공간을 체크하여 가용공간이 일정수준 이하 또는 일정수준 이상인 경우 이를 채널의 송신 측에 알려줌으로써, 각각의 채널에 대해 독립적으로 흐름 제어를 수행한다. 따라서, URC 클라이언트를 구성하는 하나의 컴포넌트로 인해 야기되는 타 컴포넌트에서의 스타베이션 문제를 방지할 수 있다. The present invention relates to a partial flow control method of communication between a URC server and a client. According to the present invention, a communication connection between a URC server and a URC client is composed of a plurality of channels, at least one channel is allocated to each component constituting the URC client, and a receiving buffer is provided at a receiving side of each channel. In the situation where the receiving side of the channel causes a change in the available space of the receiving buffer, the available space is checked, and when the available space is below a certain level or above a certain level, it is notified to the transmitting side of the channel, independently for each channel. Perform flow control. Therefore, it is possible to prevent the problem of stabilization in other components caused by one component constituting the URC client.

네트워크 로봇, URC 서버, URC 클라이언트, 채널, 부분 흐름 제어 Network Robot, URC Server, URC Client, Channel, Partial Flow Control

Description

URC 서버 및 클라이언트 간 통신의 부분 흐름 제어 방법{Method for Controlling flow of Communication between URC Server and Client}Method for controlling flow of communication between URC server and client

본 발명은 URC 서버 및 클라이언트 간 통신의 부분 흐름 제어 방법에 관한 것이다. 본 발명에 의하면, URC 서버와 URC 클라이언트 사이의 통신 연결을 복수개의 채널로 구성하고, URC 클라이언트를 구성하는 각각의 컴포넌트에 하나 이상의 채널을 할당하며, 각각의 채널의 수신 측에는 수신 버퍼를 구비한다. 채널의 수신 측에서 상기 수신 버퍼의 가용공간의 변화를 유발하는 상황에 가용공간을 체크하여 가용공간이 일정수준 이하 또는 일정수준 이상인 경우 이를 채널의 송신 측에 알려줌으로써, 각각의 채널에 대해 독립적으로 흐름 제어를 수행한다. 따라서, URC 클라이언트를 구성하는 하나의 컴포넌트로 인해 야기되는 타 컴포넌트에서의 스타베이션 문제를 방지할 수 있다. The present invention relates to a partial flow control method of communication between a URC server and a client. According to the present invention, a communication connection between a URC server and a URC client is composed of a plurality of channels, at least one channel is allocated to each component constituting the URC client, and a receiving buffer is provided at a receiving side of each channel. In the situation where the receiving side of the channel causes a change in the available space of the receiving buffer, the available space is checked, and when the available space is below a certain level or above a certain level, it is notified to the transmitting side of the channel, independently for each channel. Perform flow control. Therefore, it is possible to prevent the problem of stabilization in other components caused by one component constituting the URC client.

로봇 기술이 발전함에 따라, 종래의 로봇 기술과 네트워크 기술을 결합한 네트워크 로봇에 대한 연구가 활발히 진행되고 있다. 이러한 네트워크 로봇인 URC(Ubiquitous Robotic Companion) 로봇은, 그 주요 기능이 애초부터 만들어져 출 시되는 것이 아니라, 로봇에 필요한 기능을 네트워크를 통해 URC 서버로부터 다운로드 받아 이용하도록 구성된다. URC 로봇을 URC 클라이언트라고도 하며, 이러한 URC 로봇은 사용자의 요구에 따라 다양한 서비스를 제공할 수 있게 된다. As robot technology develops, research on a network robot combining a conventional robot technology and a network technology has been actively conducted. The URC (Ubiquitous Robotic Companion) robot, which is such a network robot, is not configured and released from the beginning, but is configured to download and use functions necessary for the robot from the URC server through the network. The URC robot is also called a URC client, and such a URC robot can provide various services according to a user's request.

URC 서버 및 클라이언트 간의 통신은 RPC(Remote Procedure Call) 모델을 기초로 한다. RPC 모델은 로컬 프로그래밍 모델의 함수 호출 형식을 네트워크 시스템에 적용한 것으로, 클라이언트에서는 서버/클라이언트 간의 통신에 관련된 사항은 고려하지 않고 단순히 함수 호출 방식으로 서버에서 제공하는 서비스를 이용할 수 있도록 한다. 즉, RPC 모델을 이용한 종래의 방식에서는, RPC 모델이 URC 서버 및 클라이언트 사이의 통신을 일률적으로 처리한다. 그러나 URC 로봇의 규모 및 범위가 확대됨에 따라, 하나의 URC 서버가 다양한 종류의 URC 클라이언트와 통신하게 되고, 이에 따라 송수신하는 데이터의 종류와 크기도 다양해졌다. 그 결과, 통신 라인의 적체에 따른 통신상의 지연(latency) 문제가 발생하고 있다. 특히 URC 서버와 통신하는 URC 클라이언트가 다수개의 컴포넌트로 구성되는 경우, 하나의 컴포넌트와의 통신 적체로 인해 상기 서버와 통신하는 타 컴포넌트에서 스타베이션(starvation) 문제가 발생하고 있다.The communication between the URC server and the client is based on the RPC (Remote Procedure Call) model. The RPC model is a function call format of the local programming model applied to a network system, and the client can use the services provided by the server simply by calling the function without considering the server-client communication. That is, in the conventional method using the RPC model, the RPC model uniformly handles communication between the URC server and the client. However, as the scale and range of URC robots are expanded, one URC server communicates with various types of URC clients. Accordingly, the types and sizes of data transmitted and received have also increased. As a result, a communication latency problem occurs due to the accumulation of communication lines. In particular, when the URC client communicating with the URC server is composed of a plurality of components, a starvation problem occurs in another component communicating with the server due to the accumulation of communication with one component.

본 발명은 전술한 바와 같은 문제점을 해결하기 위하여 안출된 것으로, 본 발명에서는, URC 서버와 URC 클라이언트 사이의 통신 연결을 복수개의 채널로 구성하고, URC 클라이언트를 구성하는 각각의 컴포넌트에 하나 이상의 채널을 할당하며, 각각의 채널의 수신 측에는 수신 버퍼를 구비한다. 채널의 수신 측에서 상기 수신 버퍼의 가용공간의 변화를 유발하는 상황에 가용공간을 체크하여 가용공간이 일정수준 이하 또는 일정수준 이상인 경우 이를 채널의 송신 측에 알려줌으로써, 각각의 채널에 대해 독립적으로 흐름 제어를 수행하는 URC 서버 및 클라이언트 간 통신의 부분 흐름 제어 방법을 제공하고자 한다.The present invention has been made to solve the above-described problems, in the present invention, the communication connection between the URC server and the URC client to configure a plurality of channels, one or more channels to each component constituting the URC client The receiving side of each channel is provided with a receiving buffer. In the situation where the receiving side of the channel causes a change in the available space of the receiving buffer, the available space is checked, and when the available space is below a certain level or above a certain level, it is notified to the transmitting side of the channel, independently for each channel. It is intended to provide a partial flow control method of communication between a URC server and a client that performs flow control.

본 발명은 URC 서버 및 클라이언트 간 통신의 부분 흐름 제어 방법에 관한 것이다. 상기 방법은 URC 서버 및 URC 클라이언트 간의 통신 연결이 복수개의 채널로 구성되며, 상기 URC 클라이언트를 구성하는 각각의 컴포넌트에 하나 이상의 채널이 할당되고, 상기 복수개의 채널 각각에 수신 버퍼가 구비된 URC 서버 및 URC 클라이언트 간 통신에서의 흐름 제어 방법으로서, 상기 복수개의 채널 각각의 수신 측에서 상기 수신 버퍼의 가용공간의 변화를 유발하는 상황에 상기 수신 버퍼의 가용공간을 측정하는 단계(a); 상기 측정한 가용공간이 사용자에 의해 지정된 일정 수준 이상인지 체크하는 단계(b); 상기 가용공간이 상기 일정 수준 이하인 경우, 상기 채널의 수신 버퍼에 관련된 정보를 채널의 수신 측에서 송신 측으로 전달하는 단계(c); 및 상기 채널의 송신 측에서 상기 채널을 통한 데이터의 전송을 제한하는 단계(d)를 포함한다. The present invention relates to a partial flow control method of communication between a URC server and a client. The method includes a URC server in which a communication connection between a URC server and a URC client consists of a plurality of channels, one or more channels are allocated to each component constituting the URC client, and a receive buffer is provided in each of the plurality of channels; CLAIMS 1. A flow control method in communication between URC clients, the method comprising: measuring an available space of the receive buffer in a situation of causing a change in the available space of the receive buffer at a receiving side of each of the plurality of channels; (B) checking whether the measured available space is equal to or greater than a predetermined level specified by the user; If the available space is less than or equal to the predetermined level, transferring information related to a reception buffer of the channel from a receiving side of a channel to a transmitting side; And (d) restricting transmission of data over the channel at the transmitting side of the channel.

본 발명에 의하면, URC 서버와 통신하는 URC 클라이언트가 다수개의 컴포넌트로 구성되는 경우, 하나의 컴포넌트로 인해 야기되는 타 컴포넌트에서의 스타베이션 문제를 방지하여 서비스 품질을 향상시킬 수 있다. According to the present invention, when the URC client communicating with the URC server is composed of a plurality of components, it is possible to prevent the problem of stabilization in other components caused by one component to improve the quality of service.

이하에서는, 도면을 참조하여 본 발명의 실시예를 구체적으로 설명한다. 그러나, 본 발명이 하기의 실시예에 의하여 제한되는 것은 아니다. Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. However, the present invention is not limited by the following examples.

도 1은 본 발명에 따른 3 계층의 통신 프로토콜을 도시한 도면으로, 본 발명에서는 URC 서버 및 URC 클라이언트 간의 통신에 3 계층으로 분리된 통신 프로토콜을 도입한다. 1 is a diagram illustrating a three-layer communication protocol according to the present invention. In the present invention, a communication protocol divided into three layers is introduced into a communication between a URC server and a URC client.

본 발명에 따른 통신 프로토콜은, 도 1에 도시된 바와 같이 원격 프로시저 호출(Remote Procedure Call; RPC) 계층, 전송(Transport) 계층 및 하나 이상의 매핑(Mapping) 계층으로 구성된다. 즉, 종래의 RPC 계층에서 일률적으로 처리하던 데이터 전송과 관련된 사항을 별도의 전송 계층으로 분리한다.The communication protocol according to the present invention is composed of a remote procedure call (RPC) layer, a transport layer and one or more mapping layers as shown in FIG. 1. That is, the matters related to data transmission uniformly processed in the conventional RPC layer are separated into separate transport layers.

RPC 계층은 클라이언트에 탑재된 프로그램이 서버에 있는 프로그램에 서비스를 요청하는데 사용되는 프로토콜로서, RPC 계층에서는 하부 네트워크에 대한 상세 정보를 알 필요가 없으며, 상세히 후술하는 전송 계층에 의해 제공되는 주요 명령들을 사용하여 모든 통신을 수행한다.The RPC layer is a protocol used by a client mounted program to request a service from a program on a server. The RPC layer does not need to know detailed information about the underlying network. Perform all communication using

전송 계층은 RPC 계층과 매핑 계층의 사이에 위치하여 메시지의 전송을 담당하는 프로토콜로서, 전송 계층이 RPC 계층으로 제공하는 명령에는, Bind, Unbind, Open, Close, Disconnect, Listen, Accept, Send, Send-Error, Receive, Status 및 Connected가 있다. The transport layer is a protocol located between the RPC layer and the mapping layer that is responsible for the transmission of messages. The commands provided by the transport layer to the RPC layer include Bind, Unbind, Open, Close, Disconnect, Listen, Accept, Send, Send. There are Error, Receive, Status, and Connected.

1> 1> BindBind

Bind는 연결의 로컬 말단(local end-point)을 생성하고, 상기 말단을 통해 이루어지는 발신 연결의 인증에 사용되는 아이덴터티(identity)와 SASL 매커니즘을 사용하기 위한 인자를 받아, 상기 로컬 말단에 대한 액세스 핸들 역할을 하는 로컬 포트 네임을 제공한다. 이때, 아이덴터티는 URC 서버 또는 클라이언트를 유일하게 식별하기 위해 각각의 서버 또는 클라이언트에 할당된 일종의 주소이다. Bind creates a local end-point of the connection, receives an argument to use the identity and SASL mechanism used to authenticate outgoing connections made through the end, and access handle to the local end. Provide a local port name that acts. At this time, the identity is a kind of address assigned to each server or client to uniquely identify the URC server or client.

Bind (local identity, SASL mechanism list) -> local port nameBind (local identity, SASL mechanism list)-> local port name

2> 2> UnbindUnbind

Unbind는 Bind 명령에 의해 제공된 로컬 포트 네임과 연결된 모든 자원을 반납하는 기능을 하며, 다음과 같이 쓰인다.Unbind returns all resources associated with the local port name provided by the Bind command.

Unbind (local port name)Unbind (local port name)

3> 3> OpenOpen

Open은 외부 아이덴터티(foreign identity)와 채널을 개설하기 위한 것으로, 채널에 사용될 프로파일 목록을 인자로 받는다. 아직 로컬 포트 네임을 통한 연결이 존재하지 않는 외부 아이덴터티라면, 새로운 연결을 생성하고, Bind 명령에서 제공된 아이덴터티 및 SASL 메커니즘을 사용하여 인증을 완료한다. Open은 채널에 대한 액세스 핸들 역할을 하는 로컬 채널 네임을 제공한다.Open is for establishing a foreign identity and channel, and takes a list of profiles to be used for the channel. If the external identity does not already have a connection via the local port name, create a new connection and complete the authentication using the identity and SASL mechanism provided by the Bind command. Open provides a local channel name that acts as an access handle to the channel.

Open (local port name, foreign identity, profile list) -> local channel nameOpen (local port name, foreign identity, profile list)-> local channel name

4> 4> CloseClose

Close는 Open 명령에 의해 개설된 로컬 채널 네임과 연결된 모든 자원을 반납한다.Close returns all resources associated with the local channel name opened by the Open command.

Close (local channel name)Close (local channel name)

5>5> DisconnectDisconnect

Disconnect는 로컬 포트 네임을 통한 모든 연결과 채널을 종료시킨다. 이때, 위부 아이덴터티가 제공된다면 해당 외부 아이덴터티와의 연결 및 채널만을 종료시킨다.Disconnect terminates all connections and channels through the local port name. At this time, if the upper identity is provided, only the connection and channel with the corresponding external identity are terminated.

Disconnect (local port name [, foreign identity])Disconnect (local port name [, foreign identity])

6> 6> ListenListen

Listen은 로컬 포트 네임으로의 수신 연결을 허락하는 것으로, 수신 연결의 인증에 사용될 SASL 매커니즘 목록과 프로파일 목록을 인자로 제공한다.Listen allows incoming connections to the local port name, providing as arguments a list of SASL mechanisms and profiles to be used for authenticating incoming connections.

Listen (local port name, SASL mechanism list, profile list)Listen (local port name, SASL mechanism list, profile list)

7> 7> AcceptAccept

Accept는 로컬 포트 네임으로의 수신 채널을 받아들이는 것으로, Listen 명령이 수행되지 않더라도 Accept 명령은 수신 채널을 받아들일 수 있다.Accept accepts the receive channel to the local port name. The Accept command can accept the receive channel even if the Listen command is not performed.

Accept (local port name) -> local channel nameAccept (local port name)-> local channel name

8> 8> SendSend

Send는 채널을 통해 청크를 송신하는 명령으로, 요청/응답을 구분하는 인자(request/response)와 메지시의 끝인지 여부를 가리키는 인자(complete)를 받으며, 경우에 따라 청크 데이터는 생략할 수 있다.Send is a command to send a chunk through a channel, and receives a request / response separating factor and a completion indicating whether the message is at the end.In some cases, the chunk data may be omitted. .

Send (local channel name, request/response, complete [, chunk data])Send (local channel name, request / response, complete [, chunk data])

9> 9> SendSend -- ErrorError

Send-Error는 채널을 통해 에러 청크를 송신하는 명령으로, 요청/응답을 구분하는 인자(request/response)와 에러 코드를 인자로 받으며, 경우에 따라 에러 데이터는 생략할 수 있다. Send-Error is a command for sending an error chunk through a channel, and receives a request / response and error code as arguments. In some cases, error data may be omitted.

Send-Error (local channel name, request/response, error code [, Error data])Send-Error (local channel name, request / response, error code [, Error data])

10> 10> ReceiveReceive

Receive는 채널로부터 청크를 수신하는 명령으로, 요청/응답의 구분, 마지막 청크인지 여부 및 에러인지 여부를 제공하며, 청크 데이터가 포함된 경우 함께 전달한다. Receive is a command to receive a chunk from a channel. It provides a request / response classification, whether it is the last chunk and whether it is an error, and sends the chunk data when it is included.

Receive (local channel name) -> request/response, complete, error [, chunk data])Receive (local channel name)-> request / response, complete, error [, chunk data])

11> 11> StatusStatus

Status는 상태 정보를 제공하는데, 적어도 로컬 포트 네임, 로컬 아이덴터티, 외부 아이덴터티, SASL 매커니즘 및 프로파일을 포함하는 정보를 제공한다. Status provides status information, including at least a local port name, a local identity, an external identity, a SASL mechanism, and a profile.

Status (local channel name) -> status dataStatus (local channel name)-> status data

12> 12> ConnectedConnected

Connected는 포트가 외부 아이덴터티와 연결을 유지하고 있는지 확인하는 명령이다. Connected is a command that checks if the port maintains a connection with an external identity.

Connected (local port name, foreign identity) -> true/falseConnected (local port name, foreign identity)-> true / false

매핑 계층은 네트워크 입출력과 관련된 것으로, 도 1에 도시된 바와 같이, UDP 매핑 계층, TCP 매핑 계층 등 필요에 따라 다양한 종류의 매핑 계층을 사용할 수 있도록 함으로써 이기종 네트워크를 지원한다. The mapping layer is related to network input / output. As shown in FIG. 1, heterogeneous networks are supported by allowing various types of mapping layers to be used as necessary, such as a UDP mapping layer and a TCP mapping layer.

이처럼 통신 프로토콜을 3 계층으로 분리함으로써, 플랫폼의 독립성을 개선하여 플랫폼의 이식성을 향상시킬 수 있다. 또한, 프로토콜 계층화로 인해 각 계층별로 성능을 측정할 수 있게 됨으로써, 통신에서 문제의 원인을 용이하게 파악하고 이를 효과적으로 해결할 수 있게 된다. By separating the communication protocols into three layers in this way, the platform independence can be improved to improve the portability of the platform. In addition, due to protocol layering, performance can be measured for each layer, thereby easily identifying the cause of a problem in communication and effectively solving the problem.

본 발명에 따른 URC 서버 및 클라이언트 간 통신의 부분 흐름 제어 방법은 상기한 3 계층의 통신 프로토콜 중에서도 메시지의 전송을 담당하는 전송 계층에 관한 것이다. The partial flow control method of communication between the URC server and the client according to the present invention relates to a transport layer that is responsible for transmitting a message among the above-described three-layer communication protocols.

전송 계층에서 메시지 전송의 기본 단위는 프레임이다. 즉, 상위 계층인 RPC 계층이 전송 계층으로 전송 요청한 청크(Chunk)는 전송 계층에서 여러 개의 프레임으로 분할되어 전송된다. 도 2는 본 발명에 따른 메시지 전송의 기본 단위인 프레임의 형식을 도시한 도면이다. The basic unit of message transmission in the transport layer is a frame. That is, the chunk requested by the upper layer RPC layer to the transport layer is divided into several frames in the transport layer and transmitted. 2 is a diagram illustrating a format of a frame that is a basic unit of message transmission according to the present invention.

본 발명에 따른 URC 서버 및 클라이언트 간 통신에서는, 하나의 연결이 복수개의 채널로 구성된다. 도 2에 도시된 프레임 형식에서, 채널 넘버는 프레임이 속하는 채널을 나타내는 것이다. 채널 넘버가 본 발명의 일 실시예에 따라 16 비트로 표현될 경우, 각 연결에는 최대 65535개의 독립된 채널이 포함될 수 있다. In the communication between the URC server and the client according to the present invention, one connection is composed of a plurality of channels. In the frame format shown in FIG. 2, the channel number indicates the channel to which the frame belongs. When the channel number is represented by 16 bits according to an embodiment of the present invention, each connection may include up to 65535 independent channels.

또한, SEQ는 본 발명에 따른 부분 흐름 제어를 위해 사용되는 것으로, SEQ가 1이면, 애크 넘버와 윈도우 사이즈 필드가 존재함을 나타낸다. 각 채널은 부분 흐름 제어를 위한 수신 버퍼를 가진다. 상기 수신 버퍼의 일부에는 특정 시점을 기준으로 하여 수신되었으나 아직 처리되지 않은 데이터가 채워져 있고, 수신 버퍼의 나머지 영역은 추후 도착할 데이터를 위한 가용공간이 된다. 이러한 수신 버퍼의 가용공간을 송신 측에 알려주기 위해 SEQ를 1로 설정하고, 특정 시점의 가용공간의 크기는 윈도우 사이즈 필드에, 상기 특정 시점까지 해당 채널로 수신된 페이로드의 총 바이트 수를 232로 나눈 나머지는 애크 넘버 필드에 포함된다. In addition, SEQ is used for partial flow control according to the present invention. If SEQ is 1, it indicates that an arc number and a window size field exist. Each channel has a receive buffer for partial flow control. Part of the reception buffer is filled with data that has been received based on a specific time point but has not yet been processed, and the remaining area of the reception buffer becomes available space for data to be arrived later. In order to inform the sender of the available space of the receiving buffer, SEQ is set to 1, and the size of the available space at a specific time is 2 in the window size field, and the total number of bytes of payload received in the corresponding channel until the specific time is 2 The remainder divided by 32 is included in the arc number field.

NUL은 페이로드의 존재 여부를 나타내는 것으로, NUL이 1이면, 페이로드 사이즈 및 페이로드 필드가 존재하지 않음을 나타낸다. 페이로드 사이즈는 페이로드 의 크기를 바이트로 표현한 것이며, 페이로드에는 전송하고자 하는 데이터가 실린다. 본 발명의 일 실시예에 따르면, 페이로드 사이즈는 32 비트로 표현되며, 각 프레임은 최대 4294967295 바이트의 길이의 페이로드를 포함할 수 있다. NUL indicates whether payload is present. If NUL is 1, it indicates that the payload size and payload fields do not exist. The payload size represents the size of the payload in bytes, and the payload contains data to be transmitted. According to an embodiment of the present invention, the payload size is represented by 32 bits, and each frame may include a payload having a length of up to 4294967295 bytes.

EOM이 1이면, 프레임이 하나의 메시지를 구성하는 마지막 청크를 이루는 프레임임을 나타내고, EOC가 1이면, 프레임이 하나의 청크를 구성하는 마지막 프레임임을 나타낸다. ERR가 1이면, 프레임이 에러 메시지임을 나타낸다. If EOM is 1, it indicates that the frame constitutes the last chunk constituting one message. If EOC is 1, it indicates that the frame is the last frame constituting one chunk. If ERR is 1, it indicates that the frame is an error message.

TOM은 프레임이 이루는 메시지의 타입을 나타내는 것으로, TOM 값은 미리 정의된다. 예를 들어, 제어메시지(CTL) = 0, 요청메시지(REQ) = 1 및 응답메시지(RES) = 2 와 같이 정의될 수 있다. The TOM indicates the type of message formed by the frame, and the TOM value is predefined. For example, the control message (CTL) = 0, the request message (REQ) = 1 and the response message (RES) = 2 can be defined as.

도 3은 본 발명에 따른 통신의 부분 흐름 제어 과정을 도시한 순서도이다. 상기한 바와 같이, 본 발명에 따른 흐름 제어를 위해서는, URC 서버 및 URC 클라이언트 사이의 통신 연결은 복수개의 채널로 구성되며, 상기 URC 클라이언트는 하나 이상의 컴포넌트로 구성되고, 상기 각각의 컴포넌트에는 하나 이상의 채널이 할당된 것을 가정한다. 또한, 각각의 채널의 수신 측에는 수신 버퍼가 구비되는데, 상기 수신 버퍼에는 수신되었으나 아직 처리되지 않은 데이터가 채워진다. 3 is a flowchart illustrating a partial flow control process of communication according to the present invention. As described above, for the flow control according to the present invention, the communication connection between the URC server and the URC client is composed of a plurality of channels, the URC client is composed of one or more components, each of the one or more channels Assume this is allocated. In addition, a receiving buffer is provided at a receiving side of each channel, and the receiving buffer is filled with data received but not yet processed.

우선, 각각의 채널의 수신 측, 예를 들어 URC 클라이언트에서는 수신 버퍼의 가용공간의 변화를 유발하는 상황, 즉 새로운 데이터가 수신되거나 또는 수신 버퍼에 저장된 데이터가 제거되는 경우에 채널의 수신 버퍼의 가용공간을 측정한다(S10). 이 때, 측정된 채널의 가용공간이 사용자에 의해 지정된 일정 수준 이상 인지를 체크하여(S20), 가용공간이 상기 일정 수준 이하인 경우 수신 버퍼에 관련된 정보를 채널의 수신 측에서 송신 측으로 전달한다(S30). 이 경우, 상기 수신 버퍼에 관련된 정보는 가용공간의 크기 및 가용공간 측정 시점까지 해당 채널로 수신된 페이로드의 총 바이트 수를 232로 나눈 나머지에 대한 정보를 포함한다. 그 후, 채널의 송신 측에서 가용공간이 일정 수준 이하로 내려간 채널로의 데이터 전송을 제한한다(S40).First, the receiving side of each channel, e.g., a URC client, makes available the receiving buffer of the channel in a situation that causes a change in the available space of the receiving buffer, i.e. when new data is received or data stored in the receiving buffer is removed. The space is measured (S10). At this time, it is checked whether the measured available space of the channel is above a predetermined level specified by the user (S20), and when the available space is below the predetermined level, information related to the reception buffer is transmitted from the receiving side of the channel to the transmitting side (S30). ). In this case, the information related to the reception buffer includes information on the size of the available space and the remainder obtained by dividing the total number of payloads received on the channel by 2 32 until the available space measurement time. Thereafter, data transmission to the channel where the available space is lowered below a predetermined level is restricted at the transmitting side of the channel (S40).

그 후, 채널의 수신 측에서는 상기와 같은 수신 버퍼의 가용공간의 변화를 유발하는 상황에 수신 버퍼의 가용공간 측정을 계속한다(S50). 이 때, 상기 측정된 가용공간이 사용자에 의해 지정된 일정 수준 이하인지를 체크하여(S60), 가용공간이 상기 일정 수준 이상인 경우 상기와 같은 수신 버퍼에 관련된 정보를 채널의 수신 측에서 송신 측으로 전달한다(S70). 그 후, 채널의 송신 측에서 상기 단계(S40)에서 데이터 전송이 제한된 채널을 통한 데이터 전송 제한을 해제함으로써(S80) 각 채널 별로 통신의 흐름을 제어한다. Thereafter, the receiving side of the channel continues to measure the available space of the receiving buffer in a situation in which the available space of the receiving buffer is changed as described above (S50). At this time, it is checked whether the measured available space is less than or equal to a predetermined level specified by the user (S60), and when the available space is greater than or equal to the predetermined level, information related to the reception buffer is transferred from the receiving side of the channel to the transmitting side. (S70). Thereafter, at the transmitting side of the channel, the flow of communication is controlled for each channel by releasing the data transmission restriction through the channel in which data transmission is restricted in step S40 (S80).

본 발명에 따른 실시예는 상술한 것으로 한정되지 않고, 본 발명과 관련하여 통상의 지식을 가진 자에게 자명한 범위 내에서 여러 가지의 대안, 수정 및 변경하여 실시할 수 있다.The embodiment according to the present invention is not limited to the above-described embodiments, and various alternatives, modifications, and changes can be made without departing from the scope of the present invention.

본 발명에 의하면, URC 서버와 통신하는 URC 클라이언트가 다수개의 컴포넌트로 구성되는 경우, 하나의 컴포넌트로 인해 야기되는 타 컴포넌트에서의 스타베이션 문제를 방지하여 서비스 품질을 향상시킬 수 있다. According to the present invention, when the URC client communicating with the URC server is composed of a plurality of components, it is possible to prevent the problem of stabilization in other components caused by one component to improve the quality of service.

도 1은 본 발명에 따른 3 계층의 통신 프로토콜을 도시한 도면.1 illustrates a three-layer communication protocol in accordance with the present invention.

도 2는 본 발명에 따른 메시지 전송의 기본 단위인 프레임의 형식을 도시한 도면.2 is a diagram illustrating a format of a frame that is a basic unit of message transmission according to the present invention.

도 3은 본 발명에 따른 통신의 부분 흐름 제어 과정을 도시한 순서도.3 is a flow chart illustrating a partial flow control process of communication in accordance with the present invention.

Claims (3)

URC 서버 및 URC 클라이언트 간의 통신 연결이 복수개의 채널로 구성되며, 상기 URC 클라이언트를 구성하는 각각의 컴포넌트에 하나 이상의 채널이 할당되고, 상기 복수개의 채널 각각에 수신 버퍼가 구비된 URC 서버 및 URC 클라이언트 간 통신에서의 흐름 제어 방법으로서,The communication connection between the URC server and the URC client is composed of a plurality of channels, at least one channel is allocated to each component constituting the URC client, and between the URC server and the URC client provided with a receiving buffer in each of the plurality of channels. As a flow control method in communication, 상기 복수개의 채널 각각의 수신 측에서 상기 수신 버퍼의 가용공간의 변화를 유발하는 상황에 상기 수신 버퍼의 가용공간을 측정하는 단계(a);(A) measuring the available space of the receive buffer in a situation that causes a change in the available space of the receive buffer at the receiving side of each of the plurality of channels; 상기 측정한 가용공간이 사용자에 의해 지정된 일정 수준 이상인지 체크하는 단계(b);(B) checking whether the measured available space is equal to or greater than a predetermined level specified by the user; 상기 가용공간이 상기 일정 수준 이하인 경우, 상기 채널의 수신 버퍼에 관련된 정보를 채널의 수신 측에서 송신 측으로 전달하는 단계(c); 및If the available space is less than or equal to the predetermined level, transferring information related to a reception buffer of the channel from a receiving side of a channel to a transmitting side; And 상기 채널의 송신 측에서 상기 채널을 통한 데이터의 전송을 제한하는 단계(d)를 포함하되,Limiting transmission of data over the channel at the transmitting side of the channel; 상기 수신 버퍼에 관련된 정보는, Information related to the reception buffer, 상기 수신 버퍼의 가용공간 정보 및 가용공간의 측정 시점까지 상기 채널로 수신된 페이로드의 총 바이트 수를 232로 나눈 나머지 정보를 포함하는 것을 특징으로 하는 부분 흐름 제어 방법.And the remaining information obtained by dividing the total number of bytes of the payload received by the channel by 2 32 until the available space information of the reception buffer and the available space are measured. 제 1 항에 있어서, The method of claim 1, 상기 단계(d) 이후에,After step (d), 상기 수신 측에서 상기 수신 버퍼의 가용공간의 변화를 유발하는 상황에 상기 수신 버퍼의 가용공간을 측정하는 단계(e);(E) measuring the available space of the receive buffer in a situation in which the receiving side causes a change in the available space of the receive buffer; 상기 측정한 가용공간이 상기 일정 수준 이하인지 체크하는 단계(f);(F) checking whether the measured available space is equal to or less than the predetermined level; 상기 가용공간이 상기 일정 수준 이상인 경우, 상기 채널의 수신 버퍼에 관련된 정보를 채널의 수신 측에서 송신 측으로 전달하는 단계(g); 및(G) transmitting information related to the reception buffer of the channel from the receiving side of the channel to the transmitting side when the available space is above the predetermined level; And 상기 채널의 송신 측에서 상기 채널을 통한 데이터의 전송 제한을 해제하는 단계(h)를 더 포함하는 것을 특징으로 하는 부분 흐름 제어 방법.And (h) releasing the restriction of transmission of data through the channel at the transmitting side of the channel. 삭제delete
KR1020070140801A 2007-12-28 2007-12-28 Method for Controlling flow of Communication between URC Server and Client KR100924088B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070140801A KR100924088B1 (en) 2007-12-28 2007-12-28 Method for Controlling flow of Communication between URC Server and Client

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070140801A KR100924088B1 (en) 2007-12-28 2007-12-28 Method for Controlling flow of Communication between URC Server and Client

Publications (2)

Publication Number Publication Date
KR20090072634A KR20090072634A (en) 2009-07-02
KR100924088B1 true KR100924088B1 (en) 2009-11-02

Family

ID=41329832

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070140801A KR100924088B1 (en) 2007-12-28 2007-12-28 Method for Controlling flow of Communication between URC Server and Client

Country Status (1)

Country Link
KR (1) KR100924088B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100497310B1 (en) 2005-01-10 2005-06-23 주식회사 아이오. 테크 Selection and playback method of multimedia content having motion information in network based robot system
KR20060079092A (en) * 2004-12-30 2006-07-05 삼성전자주식회사 Terminal data format, communication control system using the terminal data format, and method thereof
KR20070061075A (en) * 2005-12-08 2007-06-13 한국전자통신연구원 Apparatus for controlling robot by network-based robot control system and method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060079092A (en) * 2004-12-30 2006-07-05 삼성전자주식회사 Terminal data format, communication control system using the terminal data format, and method thereof
KR100497310B1 (en) 2005-01-10 2005-06-23 주식회사 아이오. 테크 Selection and playback method of multimedia content having motion information in network based robot system
KR20070061075A (en) * 2005-12-08 2007-06-13 한국전자통신연구원 Apparatus for controlling robot by network-based robot control system and method thereof

Also Published As

Publication number Publication date
KR20090072634A (en) 2009-07-02

Similar Documents

Publication Publication Date Title
US7930446B2 (en) Methods and apparatuses for wireless network communication wherein a universal serial bus request block (URB) is generated that will vary parameters that controls wireless transmission commands between devices
KR100889977B1 (en) Media session framework using protocol independent control module to direct and manage application and service servers
US8971339B2 (en) Contents base switching system and contents base switching method
JP3419627B2 (en) Router device
US7761588B2 (en) System and article of manufacture for enabling communication between nodes
US7966380B2 (en) Method, system, and program for forwarding messages between nodes
US20090103530A1 (en) Method and communication system for selecting a transmission mode for transmitting payload data
CN103907327A (en) Unobtrusive content compression in a telecommunications network
JP4786354B2 (en) iSCSI communication control method and storage system using the same
US8838782B2 (en) Network protocol processing system and network protocol processing method
EP3678332B1 (en) Method and system for determining quality of service
CN110771117B (en) Session layer communication using ID-oriented network
US20160316022A1 (en) Communication device, communication processing method, and storage medium
EP1575236B1 (en) Connectivity confirmation method for network storage device and host computer
KR100924088B1 (en) Method for Controlling flow of Communication between URC Server and Client
CN112104591B (en) Communication device of controller and communication method thereof
KR100667732B1 (en) Internet protocol apparatus for communicating with private network from outsidenetwork
KR101790192B1 (en) Method and device for application management
KR100785112B1 (en) Apparatus and method for providing quality of service to a wireless access point accomodating session initiaition protocol(sip) based multimedia over internet protocol(moip) service
JP4413121B2 (en) Data communication apparatus and data communication method using TCP / IP socket
JP3693594B2 (en) Router device
KR20240078930A (en) Method for guaranteeing 6g end-to-end application-level latency using network transport api and electronic device
JP4082112B2 (en) Semiconductor circuit device and packet processing method
US20070223447A1 (en) Gateway device and control method thereof
JP4493247B2 (en) Terminal device and connection processing method

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120829

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131022

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141023

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151020

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161024

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20171023

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20181022

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20191021

Year of fee payment: 11