KR20210098056A - Network application server and operation method thereof - Google Patents

Network application server and operation method thereof Download PDF

Info

Publication number
KR20210098056A
KR20210098056A KR1020200011772A KR20200011772A KR20210098056A KR 20210098056 A KR20210098056 A KR 20210098056A KR 1020200011772 A KR1020200011772 A KR 1020200011772A KR 20200011772 A KR20200011772 A KR 20200011772A KR 20210098056 A KR20210098056 A KR 20210098056A
Authority
KR
South Korea
Prior art keywords
data
user terminal
layer
session
management table
Prior art date
Application number
KR1020200011772A
Other languages
Korean (ko)
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 KR1020200011772A priority Critical patent/KR20210098056A/en
Publication of KR20210098056A publication Critical patent/KR20210098056A/en

Links

Images

Classifications

    • H04L67/322
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • H04L67/327
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • 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/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions

Abstract

The present invention relates to a network application server disposed between a content provider and a user terminal, comprising: a network device equivalent to a physical layer that provides a communication interface with the content provider and the user terminal; a kernel module that ramifies and dualizes a data flow received from the network device based on a pre-registered session management table to provide a data-transmitting flow from a transmitting layer to an application layer and the data-transmitting flow from the transmitting layer to the physical layer; and an application module equivalent to the application layer.

Description

네트워크 애플리케이션 서버 및 그 동작방법{NETWORK APPLICATION SERVER AND OPERATION METHOD THEREOF}NETWORK APPLICATION SERVER AND OPERATION METHOD THEREOF

본 발명은 네트워크 애플리케이션 서버 및 그 동작방법에 관한 것으로서, 보다 구체적으로는 초저지연(ultra-low latency) 데이터 전송을 지원하기 위한 네트워크 애플리케이션 서버 및 그 동작방법에 관한 것이다.The present invention relates to a network application server and an operating method thereof, and more particularly, to a network application server for supporting ultra-low latency data transmission and an operating method thereof.

초저지연 인프라 기술은 인터넷 및 멀티미디어 정보 교환을 목적으로 만들어져 대역폭 증대에 힘써온 범용 통신망의 한계를 초월하여 실시간 시민감형(시간 민감형, Time-Sensitive) 통신 및 산업 공정 제어 계측 정보 교환을 위하여 지연을 극소화하고 지연 시간을 확정할 수 있는 통신 인프라를 구축하기 위한 기술이다. 산업 융합 서비스 및 5G 통신 서비스 지원을 위하여 초저지연 기술의 필요성에 대한 공감대가 생기면서 무선 인프라뿐만 아니라 유선 인프라에서의 초저지연 네트워크 기술에 대한 중요성이 날로 커지고 있다.The ultra-low latency infrastructure technology is created for the purpose of exchanging Internet and multimedia information, transcending the limitations of the general-purpose communication network that has been striving to increase bandwidth, and reduces delay for real-time citizen-sensitive (time-sensitive) communication and industrial process control measurement information exchange. It is a technology to build a communication infrastructure that can minimize and determine latency. As there is a consensus on the need for ultra-low latency technology to support industrial convergence services and 5G communication services, the importance of ultra-low latency network technology in wired infrastructure as well as wireless infrastructure is increasing day by day.

스마트 폰, 스마트 TV 등 다양한 디바이스를 통한 실시간 영상, 인터랙티브 통신, 게임 등 전통 산업뿐만 아니라 자율 주행, 스마트 팩토리 등 새로운 산업에서 네트워크에 대한 요구가 저지연을 넘어 초저지연 수준에까지 이르고 있다. 초저지연 네트워크가 제공되어야 상대방이 송신한 컨텐츠에 대한 즉각적인 처리와 그에 따른 데이터를 상대방에게 피드백할 수 있다. 통상, 실시간 영상, 인터랙티브 통신, 게임 등에서는 컨텐츠 제공자와 사용자 단말간 대략 100ms 이내의 양방향 지연 시간이 허용된다. 이를 넘어 자율 주행, 스마트 팩토리 등 정밀한 작업이 필요한 산업 분야에서는 수십 ms 이내의 양방향 지연 시간이 허용된다.In traditional industries such as real-time video, interactive communication, and games through various devices such as smartphones and smart TVs, as well as in new industries such as autonomous driving and smart factories, the demand for networks is reaching the level of ultra-low latency beyond low latency. When an ultra-low latency network is provided, immediate processing of the content transmitted by the other party and the resulting data can be fed back to the other party. In general, in real-time video, interactive communication, and games, a bidirectional delay time of about 100 ms or less between a content provider and a user terminal is allowed. Beyond this, in industries that require precise work, such as autonomous driving and smart factories, bi-directional latency of less than tens of ms is allowed.

도 1은 일반적인 네트워크 서비스 제공 시스템의 구성을 나타내는 도면이다. 도 1에 도시된 바와 같이, 네트워크 서비스 제공 시스템(10)은 컨텐츠 제공자(Content Provider, 11), 제1 통신 네트워크(12), 네트워크 애플리케이션 서버(Network Application Server, 13), 제2 통신 네트워크(14) 및 사용자 단말(또는 클라이언트 단말, 15)을 포함한다. 여기서, 네트워크 애플리케이션 서버(13)는 물리 계층(physical layer)에 해당하는 네트워크 디바이스와, 전송 계층(transport layer)에 해당하는 커널(Kernel) 모듈과, 응용 계층(application layer)에 해당하는 애플리케이션 모듈을 포함한다. 1 is a diagram showing the configuration of a general network service providing system. As shown in FIG. 1 , the network service providing system 10 includes a content provider 11 , a first communication network 12 , a network application server 13 , and a second communication network 14 . ) and a user terminal (or client terminal, 15). Here, the network application server 13 includes a network device corresponding to a physical layer, a kernel module corresponding to a transport layer, and an application module corresponding to an application layer. include

컨텐츠 제공자(11)는 제1 통신 네트워크를 통해 데이터를 네트워크 어플리케이션 서버(12)로 전송한다. 네트워크 애플리케이션 서버(13)는 물리 계층을 통해 컨텐츠 제공자(11)로부터 데이터를 수신하고, 상기 수신된 데이터를 상위 계층인 전송 계층 및 응용 계층으로 중계(전달)한다.The content provider 11 transmits data to the network application server 12 via the first communication network. The network application server 13 receives data from the content provider 11 through the physical layer, and relays (transfers) the received data to the transport layer and the application layer, which are upper layers.

네트워크 애플리케이션 서버(13)의 응용 계층은 해당 네트워크 서비스의 목적에 따라 일련의 동작들(가령, 암호화 해제(Decryption), 디코딩(Decoding), 인코딩(Encoding), 암호화(Encryption), 데이터 저장, 데이터 가공 및 데이터 분석 등)을 순차적으로 수행한다. 이러한 네트워크 애플리케이션 서버(13)에 데이터 전송을 요청하는 사용자 단말(15)이 존재하는 경우, 해당 서버(13)의 응용 계층은 컨텐츠 제공자(11)로부터 제공받은 데이터에 대해 일련의 동작들을 순차적으로 수행한 다음 해당 데이터를 사용자 단말(15)로 전송한다. The application layer of the network application server 13 performs a series of operations (eg, Decryption, Decoding, Encoding, Encryption), data storage, and data processing according to the purpose of the corresponding network service. and data analysis, etc.) are performed sequentially. When there is a user terminal 15 requesting data transmission to the network application server 13 , the application layer of the server 13 sequentially performs a series of operations on the data provided from the content provider 11 . and then transmits the corresponding data to the user terminal 15 .

그런데, 종래의 네트워크 서비스 제공 시스템(10)은 네트워크 애플리케이션 서버(13)의 응용 계층에서 데이터 처리 및 데이터 중계를 위한 복잡한 과정들을 거치면서 컨텐츠 제공자(11)와 사용자 단말(15) 간(즉, 종단 간(End-to-End))에 데이터 지연 시간이 증가함에 따라 초저지연 기술을 구현하기 어려운 문제가 있다. 즉, 네트워크 애플리케이션 서버(13)의 응용 계층에서 수행하는 일련의 동작들로 인해 컨텐츠 제공자(11)의 데이터가 사용자 단말(15)에 표시되는데 상당한 지연 시간이 발생할 수밖에 없고, 하나의 처리 과정에서 지연이 발생하게 되면 더 많은 지연 시간을 증가시켜 단말 사용자의 통신 체감 품질을 급격히 저하시키는 문제가 있다.However, the conventional network service providing system 10 goes through complex processes for data processing and data relay in the application layer of the network application server 13 between the content provider 11 and the user terminal 15 (that is, the end There is a problem in that it is difficult to implement the ultra-low latency technology as the data delay time increases. That is, due to a series of operations performed in the application layer of the network application server 13, a significant delay time inevitably occurs for the data of the content provider 11 to be displayed on the user terminal 15, and there is a delay in one processing. When this occurs, there is a problem in that the quality of communication experience of the terminal user is rapidly reduced by increasing the delay time.

본 발명은 전술한 문제 및 다른 문제를 해결하는 것을 목적으로 한다. 또 다른 목적은 애플리케이션 계층의 데이터 처리 지연으로 인한 종단 간 데이터 전송 지연을 최소화할 수 있는 네트워크 애플리케이션 서버 및 그 동작방법을 제공함에 있다.SUMMARY OF THE INVENTION The present invention aims to solve the above and other problems. Another object of the present invention is to provide a network application server capable of minimizing end-to-end data transmission delay due to data processing delay of the application layer, and an operating method thereof.

또 다른 목적은 데이터 흐름을 분기 이원화하여 전송 계층에서 응용 계층으로 데이터를 전송하는 흐름과 전송 계층에서 물리 계층으로 데이터를 전송하는 흐름을 제공할 수 있는 네트워크 애플리케이션 서버 및 그 동작방법을 제공함에 있다.Another object of the present invention is to provide a network application server capable of providing a flow for transmitting data from a transport layer to an application layer and a flow for transmitting data from a transport layer to a physical layer by bifurcated data flow and an operating method thereof.

상기 또는 다른 목적을 달성하기 위해 본 발명의 일 측면에 따르면, 컨텐츠 제공자 및 사용자 단말과의 통신 인터페이스를 제공하는 물리 계층에 해당하는 네트워크 디바이스; 기 등록된 세션 관리 테이블을 기반으로 상기 네트워크 디바이스로부터 수신된 데이터 흐름을 분기 이원화하여 전송 계층에서 응용 계층으로 데이터를 전송하는 흐름과, 상기 전송 계층에서 상기 물리 계층으로 데이터를 전송하는 흐름을 제공하는 커널 모듈; 및 상기 응용 계층에 해당하는 애플리케이션 모듈을 포함하는 네트워크 애플리케이션 서버를 제공한다.According to an aspect of the present invention to achieve the above or other objects, a network device corresponding to a physical layer that provides a communication interface with a content provider and a user terminal; Providing a flow for transmitting data from the transport layer to the application layer by branching and binarizing the data flow received from the network device based on a previously registered session management table, and a flow for transmitting data from the transport layer to the physical layer kernel module; and an application module corresponding to the application layer.

본 발명의 다른 측면에 따르면, 물리 계층을 통해 특정 컨텐츠 제공자로부터 데이터를 수신하는 단계; 전송 계층에서 메모리에 저장된 세션 관리 테이블을 기반으로 상기 물리 계층으로부터 수신된 데이터 흐름을 분기하여 데이터 처리를 이원화할지 여부를 결정하는 단계; 및 상기 데이터 흐름을 분기하는 경우, 상기 수신된 데이터를 상기 전송 계층에서 상기 물리 계층으로 전송하고, 상기 수신된 데이터와 동일한 데이터를 상기 전송 계층에서 응용 계층으로 전송하는 단계를 포함하는 네트워크 애플리케이션 서버의 동작 방법을 제공한다.According to another aspect of the present invention, there is provided a method comprising: receiving data from a specific content provider through a physical layer; determining whether to dualize data processing by branching the data flow received from the physical layer based on the session management table stored in the memory in the transport layer; and when branching the data flow, transmitting the received data from the transport layer to the physical layer, and transmitting the same data as the received data from the transport layer to the application layer. It provides a method of operation.

본 발명의 또 다른 측면에 따르면, 물리 계층을 통해 특정 컨텐츠 제공자로부터 데이터를 수신하는 과정; 전송 계층에서 메모리에 저장된 세션 관리 테이블을 기반으로 상기 물리 계층으로부터 수신된 데이터 흐름을 분기하여 데이터 처리를 이원화할지 여부를 결정하는 과정; 및 상기 데이터 흐름을 분기하는 경우, 상기 수신된 데이터를 상기 전송 계층에서 상기 물리 계층으로 전송하고, 상기 수신된 데이터와 동일한 데이터를 상기 전송 계층에서 응용 계층으로 전송하는 과정이 컴퓨터 상에서 실행되도록 컴퓨터 판독 가능한 기록매체에 저장된 컴퓨터 프로그램을 제공한다.According to another aspect of the present invention, the process of receiving data from a specific content provider through a physical layer; determining whether to dualize data processing by branching the data flow received from the physical layer based on the session management table stored in the memory in the transport layer; and when branching the data flow, transmitting the received data from the transport layer to the physical layer, and transmitting the same data as the received data from the transport layer to the application layer. A computer program stored in a possible recording medium is provided.

본 발명의 실시 예들에 따른 네트워크 애플리케이션 서버 및 그 동작방법의 효과에 대해 설명하면 다음과 같다.Effects of a network application server and an operating method thereof according to embodiments of the present invention will be described as follows.

본 발명의 실시 예들 중 적어도 하나에 의하면, 응용 계층이 아닌 전송 계층에서 미리 등록된 사용자 세션에 대해 데이터 흐름을 분기하여 데이터 처리 동작을 이원화함으로써, 기존에 응용 계층을 거치면서 발생하는 시간 지연을 제거할 수 있고, 그에 따라 종단 간(End-to-End)의 데이터 전송 지연을 최소화하여 일반적인 네트워크 장비와 유사한 통신 품질을 제공할 수 있다는 장점이 있다.According to at least one of the embodiments of the present invention, the data processing operation is dualized by branching the data flow for a user session registered in advance in the transport layer, not the application layer, thereby eliminating the time delay occurring while passing through the application layer. This has the advantage of being able to provide communication quality similar to that of general network equipment by minimizing the end-to-end data transmission delay.

또한, 본 발명의 실시 예들 중 적어도 하나에 의하면, 전송 계층에서의 데이터 처리 이원화 구조를 통해 종단 간(End-to-End)의 데이터 전송 지연을 최소화함으로써, 교통/수송, 원격 교육/회의/공연, 의료, 게임/스포츠, 농업/공업 등과 같은 다양한 산업 분야에 실시간 통신 서비스를 제공할 수 있을 뿐만 아니라, 응용 계층에서의 데이터 가공/분석/저장 등을 통해 다양한 부가서비스를 제공할 수 있다는 장점이 있다.In addition, according to at least one of the embodiments of the present invention, by minimizing the end-to-end data transmission delay through the data processing dual structure in the transport layer, traffic/transportation, distance education/meeting/performance , medical, game/sports, agriculture/industrial, etc. can provide real-time communication services as well as various additional services through data processing/analysis/storage at the application layer. there is.

다만, 본 발명의 실시 예들에 따른 네트워크 애플리케이션 서버 및 그 동작방법이 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.However, the effects that can be achieved by the network application server and the method of operation thereof according to the embodiments of the present invention are not limited to those mentioned above, and other effects not mentioned are from the following description in the technical field to which the present invention belongs It will be clearly understood by those of ordinary skill in the art.

도 1은 일반적인 네트워크 서비스 제공 시스템의 구성을 나타내는 도면;
도 2는 일반적인 네트워크 서비스 제공 시스템의 동작을 설명하기 위해 참조되는 도면;
도 3은 본 발명의 일 실시 예에 따른 네트워크 서비스 제공 시스템의 동작을 설명하기 위해 참조되는 도면;
도 4는 본 발명의 일 실시 예에 따른 네트워크 애플리케이션 서버의 구성을 나타내는 도면;
도 5는 도 4의 커널 모듈에서 관리하는 세션 관리 테이블의 구조를 예시하는 도면;
도 6은 도 4의 커널 모듈에서 컨텐츠 제공자로부터 수신된 데이터를 분배하는 동작을 설명하기 위해 참조되는 도면;
도 7은 도 4의 커널 모듈에서 세션 관리 테이블에 등록된 사용자 세션을 삭제하는 동작을 설명하기 위해 참조되는 도면;
도 8은 도 4의 커널 모듈에서 세션 관리 테이블에 등록된 사용자 세션의 우선순위를 변경하는 동작을 설명하기 위해 참조되는 도면;
도 9는 응용 계층의 요청에 따라 세션 관리 테이블을 관리하는 전송 계층의 동작을 설명하는 순서도;
도 10은 세션 관리 테이블을 참조하여 데이터 흐름을 이원화하는 전송 계층의 동작을 설명하는 순서도.
1 is a diagram showing the configuration of a general network service providing system;
2 is a diagram referenced to explain the operation of a general network service providing system;
3 is a diagram referenced to explain the operation of a network service providing system according to an embodiment of the present invention;
4 is a diagram illustrating a configuration of a network application server according to an embodiment of the present invention;
FIG. 5 is a diagram illustrating the structure of a session management table managed by the kernel module of FIG. 4;
FIG. 6 is a diagram referenced to explain an operation of distributing data received from a content provider in the kernel module of FIG. 4 ;
FIG. 7 is a diagram referenced to explain an operation of deleting a user session registered in a session management table in the kernel module of FIG. 4 ;
FIG. 8 is a diagram referenced to explain an operation of changing a priority of a user session registered in a session management table in the kernel module of FIG. 4 ;
9 is a flowchart illustrating an operation of a transport layer that manages a session management table in response to a request from an application layer;
10 is a flowchart illustrating an operation of a transport layer for dualizing data flows with reference to a session management table.

이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 즉, 본 발명에서 사용되는 '부'라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, '부'는 어떤 역할들을 수행한다. 그렇지만 '부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '부'들로 결합되거나 추가적인 구성요소들과 '부'들로 더 분리될 수 있다.Hereinafter, the embodiments disclosed in the present specification will be described in detail with reference to the accompanying drawings, but the same or similar components are assigned the same reference numerals regardless of reference numerals, and overlapping descriptions thereof will be omitted. The suffixes "module" and "part" for the components used in the following description are given or mixed in consideration of only the ease of writing the specification, and do not have a meaning or role distinct from each other by themselves. That is, the term 'unit' used in the present invention means a hardware component such as software, FPGA, or ASIC, and 'unit' performs certain roles. However, 'part' is not limited to software or hardware. The 'unit' may be configured to reside on an addressable storage medium or may be configured to refresh one or more processors. Thus, as an example, 'part' refers to components such as software components, object-oriented software components, class components and task components, processes, functions, properties, procedures, subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. Functions provided within components and 'units' may be combined into a smaller number of components and 'units' or further divided into additional components and 'units'.

또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.In addition, in describing the embodiments disclosed in the present specification, if it is determined that detailed descriptions of related known technologies may obscure the gist of the embodiments disclosed in the present specification, the detailed description thereof will be omitted. In addition, the accompanying drawings are only for easy understanding of the embodiments disclosed in the present specification, and the technical spirit disclosed herein is not limited by the accompanying drawings, and all changes included in the spirit and scope of the present invention , should be understood to include equivalents or substitutes.

본 발명은 애플리케이션 계층에서의 데이터 처리 지연으로 인한 종단 간 데이터 전송 지연을 최소화할 수 있는 네트워크 애플리케이션 서버 및 그 동작방법을 제안한다. 또한, 본 발명은 데이터 흐름을 분기 이원화하여 전송 계층에서 응용 계층으로 데이터를 전송하는 흐름과 전송 계층에서 물리 계층으로 데이터를 전송하는 흐름을 제공할 수 있는 네트워크 애플리케이션 서버 및 그 동작방법을 제안한다. 한편, 본 발명은 컨텐츠 제공자와 네트워크 애플리케이션 서버와 사용자 단말로 이루어지는 네트워크 기반 서비스에 적용 가능하며, 사용자 단말 간에 직접 데이터를 주고받는 P2P(peer to peer) 서비스에는 적용되지 않는다.The present invention proposes a network application server capable of minimizing end-to-end data transmission delay due to data processing delay in the application layer, and an operating method thereof. In addition, the present invention proposes a network application server capable of providing a flow for transmitting data from a transport layer to an application layer and a flow for transmitting data from a transport layer to a physical layer by bifurcated data flow and an operating method thereof. Meanwhile, the present invention is applicable to a network-based service comprising a content provider, a network application server, and a user terminal, and is not applied to a peer-to-peer (P2P) service that directly exchanges data between user terminals.

이하에서는, 본 발명의 다양한 실시 예들에 대하여, 도면을 참조하여 상세히 설명한다.Hereinafter, various embodiments of the present invention will be described in detail with reference to the drawings.

도 2는 일반적인 네트워크 서비스 제공 시스템의 동작을 설명하기 위해 참조되는 도면이다.2 is a diagram referenced to explain the operation of a general network service providing system.

도 2를 참조하면, 일반적인 네트워크 서비스 제공 시스템(20)은 컨텐츠 제공자(21), 제1 통신 네트워크(22), 네트워크 애플리케이션 서버(23), 제2 통신 네트워크(24) 및 사용자 단말(25)을 포함한다. 이하, 본 명세서에서는, 설명의 편의상, 영상 스트리밍 서비스를 제공하는 네트워크 서비스 제공 시스템(20)을 예시하여 설명하도록 한다.Referring to FIG. 2 , a typical network service providing system 20 includes a content provider 21 , a first communication network 22 , a network application server 23 , a second communication network 24 , and a user terminal 25 . include Hereinafter, in the present specification, for convenience of description, the network service providing system 20 for providing a video streaming service will be exemplified and described.

컨텐츠 제공자(21)는 카메라로부터 가공되지 않은 영상 데이터(Raw Data)를 수신하고, 캡쳐(Capture) 모듈을 통해 아날로그 영상 데이터를 디지털 영상 데이터로 변환한다. 그리고, 컨텐츠 제공자(21)는 인코더(Encoder)를 통해 디지털 영상 데이터를 미리 결정된 코덱으로 압축하고, 패킷화를 통해 압축된 데이터를 전송 규격화한다. 그 다음, 컨텐츠 제공자(21)는 전송 규격화된 데이터를 암호화하고, 상기 암호화된 데이터를 제1 통신 네트워크(22)를 통해 네트워크 애플리케이션 서버(23)로 전송한다.The content provider 21 receives raw image data from a camera and converts analog image data into digital image data through a capture module. Then, the content provider 21 compresses the digital image data with a predetermined codec through an encoder, and transmits the compressed data through packetization. Then, the content provider 21 encrypts the transmission standardized data, and transmits the encrypted data to the network application server 23 through the first communication network 22 .

네트워크 어플리케이션 서버(23)는 물리 계층에 해당하는 네트워크 디바이스(미도시)와, 전송 계층에 해당하는 커널(Kernel)과, 응용 계층에 해당하는 애플리케이션을 포함한다.The network application server 23 includes a network device (not shown) corresponding to a physical layer, a kernel corresponding to a transport layer, and an application corresponding to an application layer.

네트워크 어플리케이션 서버(23)의 물리 계층은 제1 통신 네트워크(22)를 통해 컨텐츠 제공자(21)로부터 데이터를 수신한다. 네트워크 어플리케이션 서버(23)의 전송 계층은 물리 계층으로부터 수신된 데이터를 응용 계층으로 전달한다.The physical layer of the network application server 23 receives data from the content provider 21 via the first communication network 22 . The transport layer of the network application server 23 transfers data received from the physical layer to the application layer.

네트워크 어플리케이션 서버(23)의 응용 계층은 전송 계층으로부터 수신된 데이터를 해독(decryption)하고, 전송을 위해 패킷화한 데이터를 디패킷화(De-Packetization)한다. 그리고, 응용 계층은 디코딩(Decoding)를 통해 특정 코덱으로 압축된 데이터를 복호하여 디지털 영상 데이터로 변환한다. 그 다음, 응용 계층은 해당 네트워크 서비스의 목적에 따라 데이터를 가공, 분석 및 저장하는 과정을 수행한다.The application layer of the network application server 23 decrypts data received from the transport layer and de-packetizes the packetized data for transmission. Then, the application layer decodes data compressed with a specific codec through decoding and converts it into digital image data. Then, the application layer processes, analyzes, and stores data according to the purpose of the corresponding network service.

사용자 단말(25)에서 데이터 전송을 요청하게 되면, 네트워크 어플리케이션 서버(23)의 응용 계층은 이를 판단해 컨텐츠 제공자(21)의 전송 과정과 유사한 일련의 동작 즉, 인코딩, 패킷화, 암호화 동작을 수행한다. 네트워크 어플리케이션 서버(23)의 전송 계층은 응용 계층으로부터 수신된 데이터를 물리 계층으로 전달한다. 네트워크 어플리케이션 서버(23)의 물리 계층은 전송 계층으로부터 수신된 데이터를 제2 통신 네트워크(24)를 통해 사용자 단말(25)로 전송한다.When the user terminal 25 requests data transmission, the application layer of the network application server 23 determines this and performs a series of operations similar to the transmission process of the content provider 21, ie, encoding, packetizing, and encryption operations. do. The transport layer of the network application server 23 transfers data received from the application layer to the physical layer. The physical layer of the network application server 23 transmits the data received from the transport layer to the user terminal 25 through the second communication network 24 .

사용자 단말(25)은 제2 통신 네트워크(24)를 통해 네트워크 어플리케이션 서버(23)로부터 데이터를 수신한다. 그리고, 사용자 단말(25)은 네트워크 어플리케이션 서버(23)의 수신 과정과 유사한 일련의 동작 즉, 암호화 해제, 디패킷화, 디코딩 동작을 수행한다. 그 다음, 사용자 단말(25)은 압축 해제된 데이터를 렌더링(Rendering)하여 디스플레이부에 표시한다.The user terminal 25 receives data from the network application server 23 via the second communication network 24 . In addition, the user terminal 25 performs a series of operations similar to the reception process of the network application server 23 , that is, decryption, depacketization, and decoding operations. Next, the user terminal 25 renders the decompressed data and displays it on the display unit.

이처럼, 일반적인 네트워크 서비스 제공 시스템(20)에서, 컨텐츠 제공자(21)와 사용자 단말(25) 간에 데이터를 전송하기 위해서는 네트워크 애플리케이션 서버(23)의 응용 계층을 반드시 거쳐야 한다. 하지만, 네트워크 애플리케이션 서버(23)의 응용 계층에서 수행되는 일련의 데이터 처리 동작들로 인해 컨텐츠 제공자(21)의 데이터가 사용자 단말(25)에 표시되는데 많은 지연이 발생할 수밖에 없고, 하나의 처리 과정에서 지연이 발생하게 되면 더 많은 지연 시간을 증가시켜 단말 사용자의 통신 체감 품질을 급격히 저하시킬 수 있다. 따라서, 이러한 문제를 해결하기 위해, 네트워크 애플리케이션 서버(23)의 전송 계층에서 데이터 흐름을 분기하여 데이터 처리 동작을 이원화할 필요가 있다.As such, in the general network service providing system 20 , in order to transmit data between the content provider 21 and the user terminal 25 , the application layer of the network application server 23 must pass. However, due to a series of data processing operations performed in the application layer of the network application server 23, a large delay in displaying the data of the content provider 21 on the user terminal 25 inevitably occurs, and in one processing process When a delay occurs, a longer delay time may be increased, and thus the communication experience quality of the terminal user may be rapidly deteriorated. Therefore, in order to solve this problem, it is necessary to bifurcate the data processing operation by branching the data flow in the transport layer of the network application server 23 .

도 3은 본 발명의 일 실시 예에 따른 네트워크 서비스 제공 시스템의 동작을 설명하기 위해 참조되는 도면이다.3 is a diagram referenced to explain the operation of a network service providing system according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시 예에 따른 네트워크 서비스 제공 시스템(100)은 컨텐츠 제공자(110), 제1 통신 네트워크(120), 네트워크 애플리케이션 서버(130), 제2 통신 네트워크(140) 및 사용자 단말(150)을 포함한다.Referring to FIG. 3 , the network service providing system 100 according to an embodiment of the present invention includes a content provider 110 , a first communication network 120 , a network application server 130 , and a second communication network 140 . and a user terminal 150 .

컨텐츠 제공자(110) 및 사용자 단말(150)의 동작은 상술한 도 2의 컨텐츠 제공자(21) 및 사용자 단말(25)의 동작과 동일하므로 이에 대한 자세한 설명은 생략하도록 한다.Since the operations of the content provider 110 and the user terminal 150 are the same as those of the content provider 21 and the user terminal 25 of FIG. 2 described above, a detailed description thereof will be omitted.

네트워크 어플리케이션 서버(130)는 물리 계층에 해당하는 네트워크 디바이스(미도시)와, 전송 계층에 해당하는 커널(135, Kernel)과, 응용 계층에 해당하는 애플리케이션을 포함한다. 상기 네트워크 어플리케이션 서버(130)의 종류로는 스트리밍 서버, 인코딩 서버 또는 메시징 서버 등이 있으며 반드시 이에 제한되지는 않는다.The network application server 130 includes a network device (not shown) corresponding to a physical layer, a kernel 135 (Kernel) corresponding to a transport layer, and an application corresponding to an application layer. The type of the network application server 130 may include a streaming server, an encoding server, or a messaging server, but is not necessarily limited thereto.

네트워크 어플리케이션 서버(130)의 물리 계층은 단말 장치와 전송매체 사이의 인터페이스를 정의하고, 데이터링크 계층 엔티티 간의 비트 전송을 위한 물리적인 수단을 제공하는 계층이다. 이러한 물리 계층은 컨텐츠 제공자(110) 및 사용자 단말(150)과의 물리적 통신 인터페이스를 제공하는 역할을 수행한다. The physical layer of the network application server 130 is a layer that defines an interface between a terminal device and a transmission medium and provides a physical means for bit transmission between data link layer entities. This physical layer serves to provide a physical communication interface with the content provider 110 and the user terminal 150 .

물리 계층은 제1 통신 네트워크(120)를 통해 컨텐츠 제공자(110)로부터 데이터를 수신하고, 상기 수신된 데이터를 상위 계층인 전송 계층으로 전송할 수 있다. 또한, 물리 계층은 전송 계층으로부터 데이터를 수신하고, 상기 수신된 데이터를 제2 통신 네트워크(140)를 통해 사용자 단말(150)로 전송할 수 있다. The physical layer may receive data from the content provider 110 through the first communication network 120 and transmit the received data to a transport layer, which is an upper layer. In addition, the physical layer may receive data from the transport layer and transmit the received data to the user terminal 150 through the second communication network 140 .

네트워크 어플리케이션 서버(130)의 전송 계층은 계층 구조의 네트워크 구성요소와 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공하고, 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어, 그리고 다중화와 같은 편리한 서비스를 제공하는 계층이다.The transport layer of the network application server 130 provides communication services that connect senders and receivers within a hierarchical network component and protocol, and provides convenient services such as connection-oriented data stream support, reliability, flow control, and multiplexing. layer that provides

전송 계층은 하위 계층인 물리 계층으로부터 데이터를 수신하고, 상기 수신된 데이터를 복제(copy)하여 두 개의 데이터 흐름(data flow)을 제공하는 기능을 수행할 수 있다. 즉, 전송 계층은 물리 계층을 통해 컨텐츠 제공자(110)로부터 수신된 데이터를 분기하여 해당 데이터를 사용자 단말(150)로 중계하는 제1 데이터 흐름과 해당 데이터를 상위 계층인 응용 계층으로 전달하는 제2 데이터 흐름을 제공할 수 있다. 이러한 전송 계층의 데이터 처리 이원화 동작은 응용 계층을 통해 미리 등록된 사용자 세션들에 대해 적용 가능하다. The transport layer may perform a function of receiving data from a physical layer, which is a lower layer, and providing two data flows by copying the received data. That is, the transport layer branches the data received from the content provider 110 through the physical layer and relays the data to the user terminal 150, and the second data flow transfers the data to the upper layer, the application layer. Data flow can be provided. This data processing dualization operation of the transport layer is applicable to user sessions registered in advance through the application layer.

전송 계층의 동작은 커널(kernel)에 의해 구현될 수 있다. 상기 커널은 리눅스 운영 체제(Linux Operating System) 하에서 제공되는 리눅스 커널일 수 있으며 반드시 이에 제한되지는 않는다. 상기 커널은 제어부, 메모리, 및 송신부를 포함하며, 해당 구성요소들의 동작에 관한 자세한 설명은 후술하도록 한다.The operation of the transport layer may be implemented by a kernel. The kernel may be a Linux kernel provided under a Linux operating system, but is not limited thereto. The kernel includes a control unit, a memory, and a transmission unit, and detailed description of the operation of the corresponding components will be described later.

네트워크 어플리케이션 서버(130)의 응용 계층은 컴퓨터 네트워크 프로그래밍에서 인터넷 프로토콜 컴퓨터 네트워크를 통하는 프로세스 간 통신 접속을 위해 설계되어 통신 프로토콜과 방식을 위해 보유된 추상 계층이다. 상기 응용 계층은 전송 계층으로부터 수신된 데이터를 해독(decryption)하고, 전송을 위해 패킷화한 데이터를 디패킷화(De-Packetization)한다. 그리고, 응용 계층은 디코딩(Decoding)를 통해 특정 코덱으로 압축된 데이터를 복호하여 디지털 데이터로 변환한다. 그 다음, 응용 계층은 해당 네트워크 서비스의 목적에 따라 데이터를 가공, 분석 및 저장하는 과정을 수행한다.The application layer of the network application server 130 is an abstraction layer reserved for communication protocols and schemes designed for inter-process communication connections through Internet Protocol computer networks in computer network programming. The application layer decrypts data received from the transport layer and de-packetizes the packetized data for transmission. Then, the application layer decodes data compressed with a specific codec through decoding and converts it into digital data. Then, the application layer processes, analyzes, and stores data according to the purpose of the corresponding network service.

응용 계층은 시스템 콜(system call)을 이용하여 초저지연 데이터 전송이 필요한 사용자 세션에 관한 정보를 전송 계층에 등록 요청할 수 있다. 또한, 응용 계층은 시스템 콜을 이용하여 메모리에 기 등록된 사용자 세션의 삭제 및 우선순위 변경 등을 전송 계층에 요청할 수 있다.The application layer may request registration of information about a user session requiring ultra-low latency data transmission to the transport layer by using a system call. Also, the application layer may request the transport layer to delete and change the priority of the user session previously registered in the memory by using a system call.

도 4는 본 발명의 일 실시 예에 따른 네트워크 애플리케이션 서버의 구성을 나타내는 도면이다.4 is a diagram illustrating a configuration of a network application server according to an embodiment of the present invention.

도 4를 참조하면, 본 발명의 일 실시 예에 따른 네트워크 애플리케이션 서버(200)는 물리 계층에 해당하는 네트워크 디바이스(210), 전송 계층에 해당하는 커널 모듈(220) 및 응용 계층에 해당하는 애플리케이션 모듈(230)을 포함한다.Referring to FIG. 4 , the network application server 200 according to an embodiment of the present invention includes a network device 210 corresponding to a physical layer, a kernel module 220 corresponding to a transport layer, and an application module corresponding to an application layer. (230).

네트워크 애플리케이션 서버(200)의 물리 계층에 해당하는 네트워크 디바이스(210)는 컨텐츠 제공자(110)로부터 수신된 데이터를 상위 계층인 커널 모듈(220)로 전송하고, 상기 커널 모듈(220)로부터 수신된 데이터를 사용자 단말(150)로 전송하는 기능을 수행한다.The network device 210 corresponding to the physical layer of the network application server 200 transmits data received from the content provider 110 to the kernel module 220 which is an upper layer, and the data received from the kernel module 220 . to the user terminal 150 .

네트워크 애플리케이션 서버(200)의 전송 계층에 해당하는 커널 모듈(220)은 하위 계층인 네트워크 디바이스(210)로부터 데이터를 수신하고, 상기 수신된 데이터를 복제(copy)하여 두 개의 데이터 흐름(data flow)을 제공하는 기능을 수행할 수 있다. 이를 위해, 상기 커널 모듈(220)은 수신부(221), 송신부(222), 메모리(또는 데이터베이스, 223) 및 제어부(224)를 포함할 수 있다. 도 4에 도시된 구성요소들은 커널 모듈(220)을 구현하는데 있어서 필수적인 것은 아니어서, 본 명세서상에서 설명되는 커널 모듈은 위에서 열거된 구성요소들보다 많거나, 또는 적은 구성요소들을 가질 수 있다.The kernel module 220 corresponding to the transport layer of the network application server 200 receives data from the network device 210, which is a lower layer, and copies the received data to form two data flows. can perform functions that provide To this end, the kernel module 220 may include a receiver 221 , a transmitter 222 , a memory (or database, 223 ), and a controller 224 . The components shown in FIG. 4 are not essential for implementing the kernel module 220 , so the kernel module described in this specification may have more or fewer components than those listed above.

수신부(221)는 하위 계층인 물리 계층(210)을 통해 컨텐츠 제공자(110)로부터 데이터를 수신할 수 있다. 그리고, 수신부(221)는, 제어부(224)의 제어 명령에 따라, 물리 계층(210)으로부터 수신된 데이터를 분기하여 응용 계층(230) 및 송신부(222)로 전달하는 동작과 해당 데이터를 응용 계층(230)으로만 전달하는 동작을 선택적으로 수행할 수 있다. 이때, 전자의 동작은 초저지연 데이터 전송이 필요한 사용자 단말에 대해 수행되고, 후자의 동작은 일반적인 데이터 전송이 필요한 사용자 단말에 대해 수행될 수 있다. The receiver 221 may receive data from the content provider 110 through the physical layer 210 which is a lower layer. Then, the receiving unit 221 branches the data received from the physical layer 210 according to the control command of the control unit 224 and transfers the data to the application layer 230 and the transmission unit 222 and transmits the data to the application layer. An operation of forwarding only to 230 may be selectively performed. In this case, the former operation may be performed for a user terminal requiring ultra-low delay data transmission, and the latter operation may be performed for a user terminal requiring general data transmission.

송신부(222)는, 제어부(224)의 제어 명령에 따라, 상위 계층인 응용 계층(230)으로부터 수신된 데이터를 하위 계층인 물리 계층(210)으로 전송하는 동작을 수행할 수 있다. The transmitter 222 may perform an operation of transmitting data received from the application layer 230, which is an upper layer, to the physical layer 210, which is a lower layer, according to a control command of the controller 224 .

또한, 송신부(222)는, 제어부(224)의 제어 명령에 따라, 수신부(221)로부터 전달된 데이터를 하위 계층인 물리 계층(210)으로 전송하는 동작을 수행할 수 있다. 이 경우, 수신부(221)와 송신부(222)는 1:N의 데이터 전송 구조를 갖는다. 즉, 수신부(221)에서 하나의 패킷 데이터를 송신부(222)로 전달하면, 송신부(222)는 수신부(221)로부터 전달된 하나의 패킷 데이터를 N개의 사용자 단말(221)로 전송하게 된다.In addition, the transmitter 222 may perform an operation of transmitting the data transmitted from the receiver 221 to the lower physical layer 210 according to a control command of the controller 224 . In this case, the receiving unit 221 and the transmitting unit 222 have a data transmission structure of 1:N. That is, when the receiving unit 221 transmits one packet of data to the transmitting unit 222 , the transmitting unit 222 transmits one packet of data transmitted from the receiving unit 221 to the N user terminals 221 .

한편, 본 실시 예에서는, 수신부(221)와 송신부(222)가 커널 모듈(220) 내부에 독립적으로 구현되는 것을 예시하고 있으나 반드시 이에 제한되지는 않으며, 상기 수신부와 송신부 대신 하나의 통신부가 커널 모듈(220) 내부에 구현될 수 있음은 당업자에게 자명할 것이다.Meanwhile, in the present embodiment, the receiver 221 and the transmitter 222 are exemplified independently implemented inside the kernel module 220, but the present invention is not limited thereto. Instead of the receiver and the transmitter, one communication unit is a kernel module. It will be apparent to those skilled in the art that 220 may be implemented therein.

메모리(223)는 커널 모듈(220)의 다양한 기능을 지원하는 데이터를 저장한다. 메모리(223)는 커널 모듈(220)에서 구동되는 프로그램(또는 소프트웨어), 커널 모듈(220)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다.The memory 223 stores data supporting various functions of the kernel module 220 . The memory 223 may store a program (or software) driven in the kernel module 220 , data for an operation of the kernel module 220 , and instructions.

메모리(223)는 초저지연 데이터 전송이 필요한 사용자 세션들에 관한 정보를 유지 및 관리하기 위한 세션 관리 테이블(session management table)을 저장할 수 있다. 이때, 상기 세션 관리 테이블은 세션 연결 정보와 세션 우선순위 정보를 포함하며, 세션 단위로 관리될 수 있다. 상기 세션 연결 정보는 컨텐츠 제공자의 IP 주소 및 포트 정보, 사용자 단말의 IP 주소 및 포트 정보, 각 사용자 단말에 해당하는 사용자 세션의 식별(이름) 정보, 컨텐츠 제공자와 사용자 단말과 사용자 세션 간의 링크(link) 정보 등을 포함할 수 있다.The memory 223 may store a session management table for maintaining and managing information on user sessions requiring ultra-low latency data transmission. In this case, the session management table includes session connection information and session priority information, and may be managed in units of sessions. The session connection information includes IP address and port information of a content provider, IP address and port information of a user terminal, identification (name) information of a user session corresponding to each user terminal, and a link between the content provider and the user terminal and the user session. ) information, etc.

가령, 도 5에 도시된 바와 같이, 세션 관리 테이블에는 제1 컨텐츠 제공자로부터 데이터 전송을 요청한 제1 내지 제5 사용자 세션 및 응용 어플(특수 사용자)과, 제2 컨텐츠 제공자로부터 데이터 전송을 요청한 제6 및 제7 사용자 세션 및 응용 어플(특수 사용자)이 등록될 수 있다. 여기서, 응용 어플은 네트워크 애플리케이션 서버(200)의 응용 계층을 지시한다.For example, as shown in FIG. 5 , in the session management table, first to fifth user sessions and application applications (special users) requesting data transmission from the first content provider, and a sixth requesting data transmission from the second content provider and a seventh user session and application (special user) may be registered. Here, the application indicates an application layer of the network application server 200 .

세션 관리 테이블에 저장된 등록 정보는, 세션 단위로 컨텐츠 제공자의 IP 주소(Src_IP) 및 포트(Src_Port) 정보와, 컨텐츠 제공자로부터 데이터 전송을 요청한 사용자 단말의 IP 주소(Dst_IP) 및 포트(Dst_Port) 정보, 세션 우선순위 정보 및 세션 이름 정보 등을 포함한다.The registration information stored in the session management table includes the IP address (Src_IP) and port (Src_Port) information of the content provider on a per session basis, and the IP address (Dst_IP) and port (Dst_Port) information of the user terminal that has requested data transmission from the content provider, It includes session priority information and session name information.

세션 관리 테이블은 컨텐츠 제공자의 IP 주소 및 포트 정보에 따라 기본 정렬된다. 사용자 단말들에 관한 정보 중 특수 사용자로 분류되는 응용 어플은 사용자 단말의 IP 주소 및 포트 정보를 가질 수 없기 때문에 특수 IP 주소 값(가령, 255.255.255.255)과 포트 값(가령, Port 0)을 가진다. The session management table is basically sorted according to the IP address and port information of the content provider. Since an application classified as a special user among information about user terminals cannot have the IP address and port information of the user terminal, it has a special IP address value (eg, 255.255.255.255) and a port value (eg, Port 0). .

각 사용자 세션의 우선순위 값은 1 내지 65535 중 어느 하나의 값을 가지며 값이 낮을수록 우선순위가 높다. 각 사용자 세션의 우선순위는 응용 계층의 요청에 따라 변경 가능하다. 또한, 각 사용자 세션의 우선순위는 데이터 처리 중요도에 따라 변경 가능하다. The priority value of each user session has any one of 1 to 65535, and the lower the value, the higher the priority. The priority of each user session can be changed according to the request of the application layer. In addition, the priority of each user session can be changed according to the importance of data processing.

각 사용자 세션의 우선순위는 동일한 컨텐츠 제공자 내에서만 유효하며 컨텐츠 제공자 간의 우선순위는 존재하지 않는다. 예컨대, 제1 컨텐츠 제공자의 제1 사용자 세션은 제2 컨텐츠 제공자의 제6 사용자 세션보다 빠른 우선순위를 가지는 것은 아니며, 제1 컨텐츠 제공자로부터 데이터를 수신하는 여러 사용자 세션들 중에서 우선 순위가 가장 낮기 때문에 제일 빨리 전송된다는 것을 의미한다.The priority of each user session is valid only within the same content provider, and there is no priority between content providers. For example, since the first user session of the first content provider does not have a higher priority than the sixth user session of the second content provider, it has the lowest priority among several user sessions receiving data from the first content provider. This means that it will be sent the fastest.

메모리(223)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), SSD 타입(Solid State Disk type), SDD 타입(Silicon Disk Drive type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 램(random access memory; RAM), SRAM(static random access memory), 롬(read-only memory; ROM), EEPROM(electrically erasable programmable read-only memory), PROM(programmable read-only memory), 자기 메모리, 자기 디스크 및 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.The memory 223 is a flash memory type, a hard disk type, a solid state disk type, a silicon disk drive type SDD, and a multimedia card micro type. ), card-type memory (such as SD or XD memory), random access memory (RAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read (EEPROM) -only memory), a programmable read-only memory (PROM), a magnetic memory, a magnetic disk, and an optical disk may include at least one type of storage medium.

제어부(224)는 메모리(223)에 저장된 프로그램 또는 소프트웨어를 구동하여 커널 모듈(220)의 전반적인 동작을 제어한다. 이를 위해, 제어부(224)는 커널 모듈(220)을 구성하는 수신부(221) 및 송신부(222)의 동작을 제어할 수 있다.The controller 224 controls the overall operation of the kernel module 220 by driving a program or software stored in the memory 223 . To this end, the controller 224 may control the operations of the receiver 221 and the transmitter 222 constituting the kernel module 220 .

제어부(224)는, 데이터(또는 패킷) 수신 시, 메모리(223)에 저장된 세션 관리 테이블을 참조하여 해당 데이터를 사용자 세션 별로 미리 결정된 우선순위에 따라 분배할 수 있다. 이때, 상기 제어부(224)는, 세션 관리 테이블에 기 등록된 사용자 세션들에 대해 초저지연 데이터 전송을 지원하기 위해, 물리 계층(210)으로부터 수신된 데이터 흐름을 분기하여 전송 계층에서 응용 계층으로 데이터를 전송하는 제1 데이터 흐름과 전송 계층에서 물리 계층으로 데이터를 전송하는 제2 데이터 흐름을 제공할 수 있다. 또한, 제어부(224)는 수신 데이터를 다수의 사용자 단말로 전송하기 위해 해당 데이터를 복제(copy)할 수 있다.When receiving data (or packets), the controller 224 may refer to the session management table stored in the memory 223 and distribute the data according to a predetermined priority for each user session. In this case, the control unit 224 branches the data flow received from the physical layer 210 to support ultra-low-latency data transmission for user sessions previously registered in the session management table, and transfers data from the transport layer to the application layer. A first data flow for transmitting data and a second data flow for transmitting data from the transport layer to the physical layer may be provided. Also, the controller 224 may copy the received data to transmit the received data to a plurality of user terminals.

가령, 도 6에 도시된 바와 같이, 제어부(224)는 메모리(223)에 저장된 세션 관리 테이블을 참조하여 수신부(221) 버퍼로 저장되는 패킷들을 미리 등록된 사용자 세션들에게 우선순위에 따라 분배할 수 있다. 예를 들어, 특정 컨텐츠 제공자로부터 데이터 전송을 요청한 제1 내지 제5 사용자 단말과 네트워크 애플리케이션 서버(200)의 응용 계층이 세션 관리 테이블에 등록되어 있다고 가정할 때, 해당 컨텐츠 제공자로부터 패킷 n을 수신하게 되면, 제어부(224)는 미리 정해진 우선순위에 따라 제1 사용자 단말, 제2 사용자 단말, 제3 사용자 단말, 응용 계층, 제4 사용자 단말, 제5 사용자 단말 순으로 패킷 n을 분배하여 전송한다. For example, as shown in FIG. 6 , the controller 224 refers to the session management table stored in the memory 223 and distributes packets stored in the buffer of the receiver 221 to pre-registered user sessions according to priority. can For example, assuming that the first to fifth user terminals requesting data transmission from a specific content provider and the application layer of the network application server 200 are registered in the session management table, the packet n is received from the corresponding content provider. In response, the control unit 224 distributes and transmits the packet n in the order of the first user terminal, the second user terminal, the third user terminal, the application layer, the fourth user terminal, and the fifth user terminal according to a predetermined priority.

한편, 세션 관리 테이블에 등록되지 않은 사용자 단말이 데이터 전송을 요청하는 경우, 제어부(224)는 종래의 전송 프로세스와 같이 패킷을 응용 계층(230)으로 전송하게 되고, 상기 응용 계층에서 데이터 처리, 가공, 분석 및 저장 등과 같은 일련의 동작을 수행한 다음 해당 패킷을 사용자 단말로 분배하는 동작을 수행한다.On the other hand, when a user terminal not registered in the session management table requests data transmission, the control unit 224 transmits a packet to the application layer 230 as in the conventional transmission process, and the application layer processes and processes data. After performing a series of operations such as , analysis and storage, the operation of distributing the corresponding packet to the user terminal is performed.

제어부(224)는, 응용 계층(230)의 요청 명령에 따라, 메모리(223)에 저장된 세션 관리 테이블을 유지 및 관리할 수 있다. 예를 들어, 제어부(221)는, 응용 계층(230)의 요청 명령에 따라, 초저지연 데이터 전송이 필요한 사용자 세션에 관한 정보를 세션 관리 테이블에 등록하거나, 상기 세션 관리 테이블에 기 등록된 사용자 세션 정보를 삭제하거나, 혹은 세션 관리 테이블에 기 등록된 사용자 세션들의 우선순위를 변경(조절)하는 동작 등을 수행할 수 있다. The controller 224 may maintain and manage the session management table stored in the memory 223 according to a request command from the application layer 230 . For example, the controller 221 registers information on a user session requiring ultra-low delay data transmission in the session management table according to a request command of the application layer 230, or a user session previously registered in the session management table. An operation of deleting information or changing (adjusting) priorities of user sessions previously registered in the session management table may be performed.

가령, 도 7에 도시된 바와 같이, 제4 사용자 단말의 데이터 전송 요청이 종료되거나 전송 계층을 통한 초저지연 전송이 더 이상 필요하지 않는 경우, 응용 계층(230)은 시스템 콜(System Call)을 이용하여 제4 사용자 단말에 해당하는 사용자 세션 #4의 삭제를 커널 모듈(220)에 요청할 수 있다. 이러한 응용 계층(230)의 요청에 대응하여, 커널 모듈(220)의 제어부(224)는 세션 관리 테이블에 저장된 사용자 세션 #4에 관한 정보를 삭제할 수 있다.For example, as shown in FIG. 7 , when the data transmission request of the fourth user terminal is terminated or ultra-low delay transmission through the transport layer is no longer required, the application layer 230 uses a system call. Accordingly, it is possible to request the kernel module 220 to delete the user session #4 corresponding to the fourth user terminal. In response to the request of the application layer 230 , the controller 224 of the kernel module 220 may delete information about user session #4 stored in the session management table.

또한, 도 8에 도시된 바와 같이, 제4 사용자 단말에 대응하는 사용자 세션 #4의 우선순위에 대한 변경(상향/하향)이 필요한 경우, 응용 계층(230)은 시스템 콜(System Call)을 이용하여 사용자 세션들의 우선순위 정보를 조회하고, 상기 조회된 우선순위 정보를 참고하여 사용자 세션 #4에 대한 우선순위 변경을 커널 모듈(220)에 요청할 수 있다. 이러한 응용 계층(230)의 요청에 대응하여, 커널 모듈(220)의 제어부(224)는 세션 관리 테이블에 저장된 사용자 세션 #4의 우선순위 정보를 변경할 수 있다.In addition, as shown in FIG. 8 , when it is necessary to change (up/down) the priority of user session #4 corresponding to the fourth user terminal, the application layer 230 uses a system call. Thus, it is possible to inquire priority information of user sessions, and to request a change of priority for user session #4 from the kernel module 220 with reference to the inquired priority information. In response to the request of the application layer 230 , the controller 224 of the kernel module 220 may change the priority information of the user session #4 stored in the session management table.

네트워크 애플리케이션 서버(200)의 응용 계층에 해당하는 애플리케이션 모듈(230)은 하위 계층인 전송 계층(220)으로부터 수신된 데이터를 처리, 가공, 분석 및 저장하는 일련의 동작을 수행한다. 또한, 애플리케이션 모듈(230)은 사용자 단말(150)로 전송할 데이터를 하위 계층인 전송 계층(220)으로 전달하는 동작을 수행한다.The application module 230 corresponding to the application layer of the network application server 200 performs a series of operations for processing, processing, analyzing, and storing data received from the transport layer 220, which is a lower layer. Also, the application module 230 transmits data to be transmitted to the user terminal 150 to the lower layer, the transport layer 220 .

애플리케이션 모듈(230)은 시스템 콜(System Call)을 이용하여 커널 모듈(220)의 메모리(223)에 저장된 세션 관리 테이블을 조회할 수 있다. 이때, 상기 애플리케이션 모듈(230)은 세션 관리 테이블을 컨텐츠 제공자 단위 또는 세션 단위로 조회할 수 있다.The application module 230 may inquire the session management table stored in the memory 223 of the kernel module 220 by using a system call. In this case, the application module 230 may inquire the session management table in units of content providers or sessions.

일 예로, 애플리케이션 모듈(230)은 컨텐츠 제공자 IP 주소(Src_IP) 및 포트(Src_Port) 정보의 조합을 통해 사용자 정보 및 세션 우선순위 정보를 조회할 수 있다. 상기 컨텐츠 제공자 단위로 조회할 경우, 각 컨텐츠 제공자와 관련된 사용자 세션들의 목록이 나타난다. 한편, 애플리케이션 모듈(230)은 세션 이름을 주요 구분자(Main Key ID)로 하여 세션 단위로 조회할 수 있다. 상기 세션 단위로 조회할 경우, 각 세션 이름에 해당되는 컨텐츠 제공자 정보(Src_IP, Src_Port)와 사용자 단말 정보(Dst_IP, Dst_Port)가 나타난다.For example, the application module 230 may inquire user information and session priority information through a combination of content provider IP address (Src_IP) and port (Src_Port) information. When the content provider is searched for, a list of user sessions related to each content provider is displayed. Meanwhile, the application module 230 may inquire the session name in units of sessions by using the session name as a main identifier (Main Key ID). In the case of searching for the session unit, content provider information (Src_IP, Src_Port) and user terminal information (Dst_IP, Dst_Port) corresponding to each session name are displayed.

애플리케이션 모듈(230)은 시스템 콜(system call)을 이용하여 초저지연 데이터 전송이 필요한 사용자 세션에 관한 정보를 전송 계층(220)에 등록 요청할 수 있다. 가령, 사용자 단말(150)로부터 데이터 전송을 요청 받는 경우, 애플리케이션 모듈(230)은 시스템 콜을 이용하여 커널 모듈(220)의 메모리(223)에 저장된 세션 관리 테이블 정보를 조회할 수 있다. 상기 조회 결과, 해당 사용자 단말(150)이 세션 관리 테이블에 등록되어 있지 않은 경우, 애플리케이션 모듈(230)은 시스템 콜을 이용하여 해당 사용자 단말(150)과 관련된 세션 연결 정보 및 세션 우선순위 정보를 커널 모듈(220)에 등록 요청할 수 있다. The application module 230 may request registration of information about a user session requiring ultra-low delay data transmission to the transport layer 220 using a system call. For example, when receiving a data transmission request from the user terminal 150 , the application module 230 may inquire session management table information stored in the memory 223 of the kernel module 220 using a system call. As a result of the inquiry, if the corresponding user terminal 150 is not registered in the session management table, the application module 230 transmits the session connection information and session priority information related to the user terminal 150 to the kernel using a system call. A registration request may be made to the module 220 .

또한, 애플리케이션 모듈(230)은 시스템 콜을 이용하여 초저지연 데이터 전송이 필요한 사용자 세션의 삭제 및 우선순위 변경 등을 전송 계층(220)에 요청할 수도 있다.Also, the application module 230 may request the transport layer 220 to delete a user session requiring ultra-low-latency data transmission and to change a priority using a system call.

이상, 상술한 바와 같이, 본 발명에 따른 네트워크 애플리케이션 서버는 응용 계층이 아닌 전송 계층에서 미리 등록된 사용자 세션에 대해 데이터 흐름을 분기하여 데이터 처리 동작을 이원화함으로써, 기존에 응용 계층을 거치면서 발생하는 시간 지연을 제거할 수 있고, 그에 따라 컨텐츠 제공자(110)와 사용자 단말(150) 간(즉, 종단 간(End-to-End))의 데이터 전송 지연(Delay)을 최소화하여 일반적인 네트워크 장비와 유사한 통신 품질을 제공할 수 있다. 이러한 전송 계층의 데이터 이원화 처리 구조를 이용한 초저지연 서비스 제공 방법은 실시간 영상, 인터랙티브 통신, 게임, 자율 주행, 스마트 팩토리 등과 같은 다양한 산업 분야에서 사용될 수 있다.As described above, the network application server according to the present invention bifurcates the data processing operation by branching the data flow for the user session registered in advance in the transport layer, not the application layer, so that the existing It is possible to remove the time delay, and accordingly, the data transmission delay between the content provider 110 and the user terminal 150 (that is, end-to-end) is minimized and similar to that of general network equipment. It can provide communication quality. The ultra-low delay service provision method using the data dual processing structure of the transport layer can be used in various industrial fields such as real-time video, interactive communication, games, autonomous driving, and smart factories.

도 9는 응용 계층의 요청에 따라 세션 관리 테이블을 관리하는 전송 계층의 동작을 설명하는 순서도이다.9 is a flowchart illustrating an operation of a transport layer that manages a session management table in response to a request from an application layer.

도 9를 참조하면, 본 발명에 따른 네트워크 애플리케이션 서버(200)의 응용 계층(230)은, 사용자 단말로부터 데이터 전송을 요청 받는 경우(S905), 해당 사용자 단말이 초저지연 데이터 전송이 필요한 단말인지 여부를 확인한다(S910).9, when the application layer 230 of the network application server 200 according to the present invention receives a data transmission request from the user terminal (S905), whether the user terminal is a terminal requiring ultra-low delay data transmission is checked (S910).

상기 910 단계의 확인 결과, 해당 사용자 단말이 초저지연 데이터 전송이 필요한 단말인 경우, 응용 계층(230)은 시스템 콜을 이용하여 전송 계층(220)에 저장된 세션 관리 테이블의 등록 정보를 조회할 수 있다(S915). As a result of the check in step 910, when the corresponding user terminal is a terminal requiring ultra-low latency data transmission, the application layer 230 may inquire registration information of the session management table stored in the transport layer 220 using a system call. (S915).

응용 계층(230)은 사용자 단말이 세션 관리 테이블에 등록된 사용자 세션인지 여부를 확인할 수 있다(S920). 상기 확인 결과, 사용자 단말이 세션 관리 테이블에 등록되지 않은 경우, 응용 계층(230)은 시스템 콜을 이용하여 사용자 단말의 사용자 세션 등록을 전송 계층(220)에 요청할 수 있다(S925). 이러한 응용 계층(230)의 요청 명령에 대응하여, 전송 계층(220)은 해당 사용자 단말의 사용자 세션 정보를 세션 관리 테이블에 등록할 수 있다(S930). 이때, 상기 세션 관리 테이블에 등록되는 정보로는 컨텐츠 제공자의 IP 주소(Src_IP) 및 포트(Src_Port) 정보와, 해당 사용자 단말의 IP 주소(Dst_IP) 및 포트(Dst_Port) 정보, 세션 우선순위 정보 및 세션 이름 정보 등이 있다.The application layer 230 may check whether the user terminal is a user session registered in the session management table (S920). As a result of the check, if the user terminal is not registered in the session management table, the application layer 230 may request the transport layer 220 to register the user session of the user terminal using a system call (S925). In response to the request command of the application layer 230, the transport layer 220 may register user session information of the corresponding user terminal in the session management table (S930). At this time, information registered in the session management table includes IP address (Src_IP) and port (Src_Port) information of the content provider, IP address (Dst_IP) and port (Dst_Port) information of the corresponding user terminal, session priority information, and session name information, etc.

한편, 사용자 단말의 우선순위 변경 이벤트가 발생하는 경우(S935), 응용 계층(230)은 시스템 콜을 이용하여 전송 계층(220)에 저장된 세션 관리 테이블의 세션 우선순위 정보를 조회할 수 있다(S940). On the other hand, when the priority change event of the user terminal occurs (S935), the application layer 230 may inquire the session priority information of the session management table stored in the transport layer 220 using a system call (S940) ).

응용 계층(230)은 세션 관리 테이블에 등록된 사용자 단말들의 우선순위 정보를 확인할 수 있다(S945). 응용 계층(230)은 세션 관리 테이블에 등록된 우선순위 정보를 기반으로 해당 사용자 단말의 우선순위 변경을 전송 계층(220)에 요청할 수 있다(S950). 이러한 응용 계층(230)의 요청 명령에 대응하여, 전송 계층(220)은 세션 관리 테이블에 등록된 사용자 단말의 우선순위를 변경(조절)할 수 있다(S955).The application layer 230 may check priority information of user terminals registered in the session management table (S945). The application layer 230 may request the transport layer 220 to change the priority of the corresponding user terminal based on priority information registered in the session management table (S950). In response to the request command of the application layer 230, the transport layer 220 may change (adjust) the priority of the user terminal registered in the session management table (S955).

이후, 사용자 단말로부터 데이터 전송 요청이 종료되는 경우(S960), 응용 계층(230)은 해당 사용자 단말의 사용자 세션 삭제를 전송 계층(220)에 요청할 수 있다(S965). 이러한 응용 계층(230)의 요청 명령에 대응하여, 전송 계층(220)은 세션 관리 테이블에 등록된 사용자 단말의 사용자 세션 정보를 삭제할 수 있다(S970).Thereafter, when the data transmission request is terminated from the user terminal (S960), the application layer 230 may request the transport layer 220 to delete the user session of the corresponding user terminal (S965). In response to the request command of the application layer 230, the transport layer 220 may delete user session information of the user terminal registered in the session management table (S970).

도 10은 세션 관리 테이블을 참조하여 데이터 흐름을 이원화하는 전송 계층의 동작을 설명하는 순서도이다. 10 is a flowchart illustrating an operation of a transport layer for dualizing data flows with reference to a session management table.

도 10을 참조하면, 본 발명에 따른 네트워크 애플리케이션 서버(200)의 전송 계층(220)은 하위 계층인 물리 계층(210)을 통해 특정 컨텐츠 제공자로부터 패킷을 수신하는지를 확인할 수 있다(S1010).Referring to FIG. 10 , the transport layer 220 of the network application server 200 according to the present invention may check whether a packet is received from a specific content provider through the physical layer 210, which is a lower layer (S1010).

상기 1010 단계의 확인 결과, 특정 컨텐츠 제공자로부터 패킷을 수신한 경우, 전송 계층(220)은 메모리에 저장된 세션 관리 테이블의 세션 연결 정보 및 세션 우선순위 정보를 확인할 수 있다(S1020). 즉, 전송 계층(220)은 세션 관리 테이블을 검색하여 특정 컨텐츠 제공자로부터 데이터 전송을 요청한 사용자 세션 정보 및 우선순위 정보를 확인할 수 있다.As a result of checking in step 1010 , when a packet is received from a specific content provider, the transport layer 220 may check session connection information and session priority information of a session management table stored in the memory ( S1020 ). That is, the transport layer 220 may search the session management table to check the user session information and priority information requesting data transmission from a specific content provider.

전송 계층(220)은 특정 컨텐츠 제공자에게 데이터 전송을 요청한 사용자 세션들이 사용자 단말인지 여부를 확인할 수 있다(S1030). 상기 1030 단계의 확인 결과, 등록 사용자 세션이 사용자 단말인 경우, 전송 계층(220)은 물리 계층(210)으로부터 수신된 패킷을 복제(copy)할 수 있다(S1040). 이는 전송 계층(220)에서 데이터 흐름을 분기하여 데이터 처리를 이원화하기 위함이다. The transport layer 220 may check whether user sessions requesting data transmission from a specific content provider are user terminals ( S1030 ). As a result of checking in step 1030 , if the registered user session is a user terminal, the transport layer 220 may copy the packet received from the physical layer 210 ( S1040 ). This is to dualize data processing by branching the data flow in the transport layer 220 .

전송 계층(220)은 수신 패킷을 사용자 세션의 우선순위에 따라 사용자 단말들에게 순차적으로 분배한 다음 해당 패킷을 물리 계층(210)으로 전송할 수 있다(S1050). 이러한 데이터(패킷) 흐름과 함께, 전송 계층(220)은 물리 계층(210)으로부터 수신된 패킷을 응용 계층(230)으로 전송할 수 있다(S1060). 이처럼, 전송 계층(220)은 세션 관리 테이블에 등록된 사용자 세션들에 대해 데이터 흐름을 분기하여 데이터 처리 동작을 이원화함으로써, 기존에 종단 간 데이터 전송 시, 응용 계층을 거치면서 발생하는 시간 지연을 효과적으로 제거할 수 있다.The transport layer 220 may sequentially distribute the received packet to user terminals according to the priority of the user session, and then transmit the corresponding packet to the physical layer 210 (S1050). Together with this data (packet) flow, the transport layer 220 may transmit a packet received from the physical layer 210 to the application layer 230 (S1060). In this way, the transport layer 220 divides the data flow for user sessions registered in the session management table and dualizes the data processing operation, thereby effectively reducing the time delay that occurs during the existing end-to-end data transmission through the application layer. can be removed

한편, 상기 1030 단계의 확인 결과, 등록 사용자 세션이 사용자 단말이 아닌 경우(즉, 등록 사용자 세션이 특수 사용자인 응용 계층인 경우), 전송 계층(220)은 데이터 흐름을 분기할 필요 없이 물리 계층(210)으로부터 수신된 패킷을 응용 계층(230)으로 전송할 수 있다(S1070).On the other hand, as a result of the check in step 1030, if the registered user session is not a user terminal (that is, if the registered user session is an application layer that is a special user), the transport layer 220 does not need to branch the data flow to the physical layer ( The packet received from the 210 may be transmitted to the application layer 230 (S1070).

전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. 또한, 다른 매체의 예시로, 애플리케이션을 유통하는 앱 스토어나 기타 다양한 소프트웨어를 공급 내지 유통하는 사이트, 서버 등에서 관리하는 기록매체 내지 저장매체도 들 수 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.The present invention described above can be implemented as computer-readable code on a medium in which a program is recorded. The computer-readable medium may continuously store a computer-executable program, or may be temporarily stored for execution or download. In addition, the medium may be various recording means or storage means in the form of a single or several hardware combined, it is not limited to a medium directly connected to any computer system, and may exist distributed on a network. Examples of the medium include a hard disk, a magnetic medium such as a floppy disk and a magnetic tape, an optical recording medium such as CD-ROM and DVD, a magneto-optical medium such as a floppy disk, and those configured to store program instructions, including ROM, RAM, flash memory, and the like. In addition, examples of other media may include recording media or storage media managed by an app store that distributes applications, sites that supply or distribute various other software, and servers. Accordingly, the above detailed description should not be construed as restrictive in all respects but as exemplary. The scope of the present invention should be determined by a reasonable interpretation of the appended claims, and all modifications within the equivalent scope of the present invention are included in the scope of the present invention.

200: 네트워크 애플리케이션 서버 210: 네트워크 디바이스
220: 커널 모듈 221: 수신부
222: 송신부 223: 메모리
224: 제어부 230: 애플리케이션 모듈
200: network application server 210: network device
220: kernel module 221: receiver
222: transmitter 223: memory
224: control unit 230: application module

Claims (11)

컨텐츠 제공자 및 사용자 단말과의 통신 인터페이스를 제공하는 물리 계층에 해당하는 네트워크 디바이스;
기 등록된 세션 관리 테이블을 기반으로 상기 네트워크 디바이스로부터 수신된 데이터 흐름을 분기 이원화하여 전송 계층에서 응용 계층으로 데이터를 전송하는 흐름과, 상기 전송 계층에서 상기 물리 계층으로 데이터를 전송하는 흐름을 제공하는 커널 모듈; 및
상기 응용 계층에 해당하는 애플리케이션 모듈을 포함하고,
상기 세션 관리 테이블은 컨텐츠 제공자의 주소 정보, 초저지연 데이터 전송이 필요한 사용자 단말의 주소 정보, 각 사용자 단말에 해당하는 사용자 세션 식별 정보 및 각 사용자 단말의 우선순위 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 네트워크 애플리케이션 서버.
a network device corresponding to a physical layer providing a communication interface with a content provider and a user terminal;
Providing a flow for transmitting data from the transport layer to the application layer by branching and binarizing the data flow received from the network device based on a previously registered session management table, and a flow for transmitting data from the transport layer to the physical layer kernel module; and
Including an application module corresponding to the application layer,
The session management table comprises at least one of address information of a content provider, address information of a user terminal requiring ultra-low delay data transmission, user session identification information corresponding to each user terminal, and priority information of each user terminal network application server.
제1항에 있어서,
상기 커널 모듈은 상기 컨텐츠 제공자로부터 데이터를 수신하는 수신부, 상기 사용자 단말로 데이터를 전송하는 송신부, 상기 세션 관리 테이블을 저장하는 메모리 및 상기 수신부 및 송신부의 동작을 제어하는 제어부를 포함하는 것을 특징으로 하는 네트워크 애플리케이션 서버.
According to claim 1,
The kernel module comprises a receiver for receiving data from the content provider, a transmitter for transmitting data to the user terminal, a memory for storing the session management table, and a controller for controlling operations of the receiver and transmitter Network application server.
제2항에 있어서,
상기 제어부는, 상기 애플리케이션 모듈의 요청 명령에 따라, 상기 메모리에 저장된 세션 관리 테이블에 접속하여 세션 등록 기능, 세션 삭제 기능 및 우선순위 변경 기능 중 적어도 하나를 수행하는 것을 특징으로 하는 네트워크 애플리케이션 서버.
3. The method of claim 2,
The control unit accesses the session management table stored in the memory according to a request command from the application module, and performs at least one of a session registration function, a session deletion function, and a priority change function.
제2항에 있어서,
상기 제어부는, 특정 컨텐츠 제공자로부터 데이터를 수신한 경우, 상기 세션 관리 테이블을 검색하여 상기 특정 컨텐츠 제공자로부터 데이터 전송을 요청한 사용자 세션 정보 및 우선순위 정보를 확인하는 것을 특징으로 하는 네트워크 애플리케이션 서버.
3. The method of claim 2,
The control unit, when receiving data from a specific content provider, searches the session management table to check the user session information and priority information requesting data transmission from the specific content provider.
제4항에 있어서,
상기 제어부는, 상기 데이터 전송을 요청한 사용자 세션이 사용자 단말인 경우, 상기 네트워크 디바이스로부터 수신된 데이터를 복제하여 데이터 흐름을 분기 이원화하는 것을 특징으로 하는 네트워크 애플리케이션 서버.
5. The method of claim 4,
The control unit, when the user session requesting the data transmission is a user terminal, the network application server, characterized in that by duplicating the data received from the network device to branch the data flow.
제5항에 있어서,
상기 제어부는, 상기 수신된 데이터를 상기 우선순위 정보에 따라 사용자 단말로 분배한 후 해당 데이터를 상기 물리 계층으로 전송하는 것을 특징으로 하는 네트워크 애플리케이션 서버.
6. The method of claim 5,
The control unit distributes the received data to the user terminals according to the priority information and then transmits the data to the physical layer.
제4항에 있어서,
상기 제어부는, 상기 데이터 전송을 요청한 사용자 세션이 사용자 단말이 아닌 경우, 상기 네트워크 디바이스로부터 수신된 데이터를 상기 애플리케이션 모듈로만 전송하는 것을 특징으로 하는 네트워크 애플리케이션 서버.
5. The method of claim 4,
The control unit transmits the data received from the network device only to the application module when the user session requesting the data transmission is not the user terminal.
제1항에 있어서,
상기 애플리케이션 모듈은 시스템 콜(system call)을 이용하여 상기 커널 모듈에 저장된 세션 관리 테이블을 조회하는 것을 특징으로 하는 네트워크 애플리케이션 서버.
According to claim 1,
The network application server, characterized in that the application module inquires the session management table stored in the kernel module using a system call (system call).
제8항에 있어서,
상기 애플리케이션 모듈은, 미리 결정된 이벤트 발생 시, 상기 세션 관리 테이블의 사용자 세션 정보에 관한 변경을 상기 커널 모듈에 요청하는 것을 특징으로 하는 네트워크 애플리케이션 서버.
9. The method of claim 8,
The application module, when a predetermined event occurs, the network application server, characterized in that the request to the kernel module to change the user session information in the session management table.
물리 계층을 통해 특정 컨텐츠 제공자로부터 데이터를 수신하는 단계;
전송 계층에서 메모리에 저장된 세션 관리 테이블을 기반으로 상기 물리 계층으로부터 수신된 데이터 흐름을 분기하여 데이터 처리를 이원화할지 여부를 결정하는 단계; 및
상기 데이터 흐름을 분기하는 경우, 상기 수신된 데이터를 상기 전송 계층에서 상기 물리 계층으로 전송하고, 상기 수신된 데이터와 동일한 데이터를 상기 전송 계층에서 응용 계층으로 전송하는 단계를 포함하고,
상기 세션 관리 테이블은 컨텐츠 제공자의 주소 정보, 초저지연 데이터 전송이 필요한 사용자 단말의 주소 정보, 각 사용자 단말에 해당하는 사용자 세션 식별 정보 및 각 사용자 단말의 우선순위 정보 중 적어도 하나를 포함하는 것을 특징으로 하는 네트워크 애플리케이션 서버의 동작 방법.
receiving data from a specific content provider through a physical layer;
determining whether to dualize data processing by branching the data flow received from the physical layer based on the session management table stored in the memory in the transport layer; and
When branching the data flow, transmitting the received data from the transport layer to the physical layer, and transmitting the same data as the received data from the transport layer to the application layer,
The session management table comprises at least one of address information of a content provider, address information of a user terminal requiring ultra-low delay data transmission, user session identification information corresponding to each user terminal, and priority information of each user terminal How a network application server works.
청구항 제10항에 따른 방법이 컴퓨터 상에서 실행되도록 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램.A computer program stored in a computer-readable recording medium so that the method according to claim 10 is executed on a computer.
KR1020200011772A 2020-01-31 2020-01-31 Network application server and operation method thereof KR20210098056A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200011772A KR20210098056A (en) 2020-01-31 2020-01-31 Network application server and operation method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200011772A KR20210098056A (en) 2020-01-31 2020-01-31 Network application server and operation method thereof

Publications (1)

Publication Number Publication Date
KR20210098056A true KR20210098056A (en) 2021-08-10

Family

ID=77315876

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200011772A KR20210098056A (en) 2020-01-31 2020-01-31 Network application server and operation method thereof

Country Status (1)

Country Link
KR (1) KR20210098056A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230105862A (en) * 2022-01-05 2023-07-12 한국전자통신연구원 Device and method for transmitting data based on application

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230105862A (en) * 2022-01-05 2023-07-12 한국전자통신연구원 Device and method for transmitting data based on application

Similar Documents

Publication Publication Date Title
CN101785255B (en) For the data flow con-trol of the network equipment
US8165122B2 (en) System and method for converting unicast client requests into multicast client requests
JP2012060385A (en) Succession communication management device and succession communication management method
US11936522B2 (en) Selecting and operating an optimal virtual private network among multiple virtual private networks
US20130097645A1 (en) Seamless service information providing scheme
US20040181575A1 (en) Method and apparatus for providing peer-to-peer push using broadcast query
US11025738B2 (en) Systems and methods for determining a destination location for transmission of packetized data in a network system based on an application server attribute
WO2014154108A1 (en) Media stream transfer method and user equipment
CN109522462B (en) Cloud query method, device, equipment and storage medium based on block chain
JP5347759B2 (en) Inheritance communication management device
US8788706B2 (en) Method and system for managing data transmission between devices behind network address translators (NATs)
KR20210098056A (en) Network application server and operation method thereof
US8504655B1 (en) Proxy delegation for content delivery
JP6402077B2 (en) Relay system, relay method, and program
US11115449B2 (en) Data casting
WO2018056032A1 (en) Server device, transfer device, and program for content distribution system
WO2013091553A1 (en) Thin terminal mode-based security information exchange system, terminal, server, and method
US20170085623A1 (en) Content downloading and network provisioning
KR101546387B1 (en) Content sharing server and method for performing content shaing process betweens a plurality of diveces
KR100835528B1 (en) Multimedia Contents Streaming Method Using Section Information and Streaming Apparatus Thereof
KR100616250B1 (en) System And Method For Transmitting The Data From Server To Clients In The Internet Network
US20240137586A1 (en) Platform system and method for transmitting video in real time with ultra-low latency
CN102710801A (en) Method and device for processing live video stream on demand
JP2008269620A (en) Transmitter and transmission method, receiver and reception method, and transception system and transception method
KR101496554B1 (en) Method for receiving content in the content centric network

Legal Events

Date Code Title Description
A201 Request for examination