KR20210098056A - Network application server and operation method thereof - Google Patents
Network application server and operation method thereof Download PDFInfo
- 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
Links
Images
Classifications
-
- H04L67/322—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling 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/61—Scheduling 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H04L67/327—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling 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/63—Routing a service request depending on the request content or context
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
Abstract
Description
본 발명은 네트워크 애플리케이션 서버 및 그 동작방법에 관한 것으로서, 보다 구체적으로는 초저지연(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
컨텐츠 제공자(11)는 제1 통신 네트워크를 통해 데이터를 네트워크 어플리케이션 서버(12)로 전송한다. 네트워크 애플리케이션 서버(13)는 물리 계층을 통해 컨텐츠 제공자(11)로부터 데이터를 수신하고, 상기 수신된 데이터를 상위 계층인 전송 계층 및 응용 계층으로 중계(전달)한다.The
네트워크 애플리케이션 서버(13)의 응용 계층은 해당 네트워크 서비스의 목적에 따라 일련의 동작들(가령, 암호화 해제(Decryption), 디코딩(Decoding), 인코딩(Encoding), 암호화(Encryption), 데이터 저장, 데이터 가공 및 데이터 분석 등)을 순차적으로 수행한다. 이러한 네트워크 애플리케이션 서버(13)에 데이터 전송을 요청하는 사용자 단말(15)이 존재하는 경우, 해당 서버(13)의 응용 계층은 컨텐츠 제공자(11)로부터 제공받은 데이터에 대해 일련의 동작들을 순차적으로 수행한 다음 해당 데이터를 사용자 단말(15)로 전송한다. The application layer of the
그런데, 종래의 네트워크 서비스 제공 시스템(10)은 네트워크 애플리케이션 서버(13)의 응용 계층에서 데이터 처리 및 데이터 중계를 위한 복잡한 과정들을 거치면서 컨텐츠 제공자(11)와 사용자 단말(15) 간(즉, 종단 간(End-to-End))에 데이터 지연 시간이 증가함에 따라 초저지연 기술을 구현하기 어려운 문제가 있다. 즉, 네트워크 애플리케이션 서버(13)의 응용 계층에서 수행하는 일련의 동작들로 인해 컨텐츠 제공자(11)의 데이터가 사용자 단말(15)에 표시되는데 상당한 지연 시간이 발생할 수밖에 없고, 하나의 처리 과정에서 지연이 발생하게 되면 더 많은 지연 시간을 증가시켜 단말 사용자의 통신 체감 품질을 급격히 저하시키는 문제가 있다.However, the conventional network
본 발명은 전술한 문제 및 다른 문제를 해결하는 것을 목적으로 한다. 또 다른 목적은 애플리케이션 계층의 데이터 처리 지연으로 인한 종단 간 데이터 전송 지연을 최소화할 수 있는 네트워크 애플리케이션 서버 및 그 동작방법을 제공함에 있다.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
컨텐츠 제공자(21)는 카메라로부터 가공되지 않은 영상 데이터(Raw Data)를 수신하고, 캡쳐(Capture) 모듈을 통해 아날로그 영상 데이터를 디지털 영상 데이터로 변환한다. 그리고, 컨텐츠 제공자(21)는 인코더(Encoder)를 통해 디지털 영상 데이터를 미리 결정된 코덱으로 압축하고, 패킷화를 통해 압축된 데이터를 전송 규격화한다. 그 다음, 컨텐츠 제공자(21)는 전송 규격화된 데이터를 암호화하고, 상기 암호화된 데이터를 제1 통신 네트워크(22)를 통해 네트워크 애플리케이션 서버(23)로 전송한다.The
네트워크 어플리케이션 서버(23)는 물리 계층에 해당하는 네트워크 디바이스(미도시)와, 전송 계층에 해당하는 커널(Kernel)과, 응용 계층에 해당하는 애플리케이션을 포함한다.The
네트워크 어플리케이션 서버(23)의 물리 계층은 제1 통신 네트워크(22)를 통해 컨텐츠 제공자(21)로부터 데이터를 수신한다. 네트워크 어플리케이션 서버(23)의 전송 계층은 물리 계층으로부터 수신된 데이터를 응용 계층으로 전달한다.The physical layer of the
네트워크 어플리케이션 서버(23)의 응용 계층은 전송 계층으로부터 수신된 데이터를 해독(decryption)하고, 전송을 위해 패킷화한 데이터를 디패킷화(De-Packetization)한다. 그리고, 응용 계층은 디코딩(Decoding)를 통해 특정 코덱으로 압축된 데이터를 복호하여 디지털 영상 데이터로 변환한다. 그 다음, 응용 계층은 해당 네트워크 서비스의 목적에 따라 데이터를 가공, 분석 및 저장하는 과정을 수행한다.The application layer of the
사용자 단말(25)에서 데이터 전송을 요청하게 되면, 네트워크 어플리케이션 서버(23)의 응용 계층은 이를 판단해 컨텐츠 제공자(21)의 전송 과정과 유사한 일련의 동작 즉, 인코딩, 패킷화, 암호화 동작을 수행한다. 네트워크 어플리케이션 서버(23)의 전송 계층은 응용 계층으로부터 수신된 데이터를 물리 계층으로 전달한다. 네트워크 어플리케이션 서버(23)의 물리 계층은 전송 계층으로부터 수신된 데이터를 제2 통신 네트워크(24)를 통해 사용자 단말(25)로 전송한다.When the
사용자 단말(25)은 제2 통신 네트워크(24)를 통해 네트워크 어플리케이션 서버(23)로부터 데이터를 수신한다. 그리고, 사용자 단말(25)은 네트워크 어플리케이션 서버(23)의 수신 과정과 유사한 일련의 동작 즉, 암호화 해제, 디패킷화, 디코딩 동작을 수행한다. 그 다음, 사용자 단말(25)은 압축 해제된 데이터를 렌더링(Rendering)하여 디스플레이부에 표시한다.The
이처럼, 일반적인 네트워크 서비스 제공 시스템(20)에서, 컨텐츠 제공자(21)와 사용자 단말(25) 간에 데이터를 전송하기 위해서는 네트워크 애플리케이션 서버(23)의 응용 계층을 반드시 거쳐야 한다. 하지만, 네트워크 애플리케이션 서버(23)의 응용 계층에서 수행되는 일련의 데이터 처리 동작들로 인해 컨텐츠 제공자(21)의 데이터가 사용자 단말(25)에 표시되는데 많은 지연이 발생할 수밖에 없고, 하나의 처리 과정에서 지연이 발생하게 되면 더 많은 지연 시간을 증가시켜 단말 사용자의 통신 체감 품질을 급격히 저하시킬 수 있다. 따라서, 이러한 문제를 해결하기 위해, 네트워크 애플리케이션 서버(23)의 전송 계층에서 데이터 흐름을 분기하여 데이터 처리 동작을 이원화할 필요가 있다.As such, in the general network
도 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
컨텐츠 제공자(110) 및 사용자 단말(150)의 동작은 상술한 도 2의 컨텐츠 제공자(21) 및 사용자 단말(25)의 동작과 동일하므로 이에 대한 자세한 설명은 생략하도록 한다.Since the operations of the
네트워크 어플리케이션 서버(130)는 물리 계층에 해당하는 네트워크 디바이스(미도시)와, 전송 계층에 해당하는 커널(135, Kernel)과, 응용 계층에 해당하는 애플리케이션을 포함한다. 상기 네트워크 어플리케이션 서버(130)의 종류로는 스트리밍 서버, 인코딩 서버 또는 메시징 서버 등이 있으며 반드시 이에 제한되지는 않는다.The
네트워크 어플리케이션 서버(130)의 물리 계층은 단말 장치와 전송매체 사이의 인터페이스를 정의하고, 데이터링크 계층 엔티티 간의 비트 전송을 위한 물리적인 수단을 제공하는 계층이다. 이러한 물리 계층은 컨텐츠 제공자(110) 및 사용자 단말(150)과의 물리적 통신 인터페이스를 제공하는 역할을 수행한다. The physical layer of the
물리 계층은 제1 통신 네트워크(120)를 통해 컨텐츠 제공자(110)로부터 데이터를 수신하고, 상기 수신된 데이터를 상위 계층인 전송 계층으로 전송할 수 있다. 또한, 물리 계층은 전송 계층으로부터 데이터를 수신하고, 상기 수신된 데이터를 제2 통신 네트워크(140)를 통해 사용자 단말(150)로 전송할 수 있다. The physical layer may receive data from the
네트워크 어플리케이션 서버(130)의 전송 계층은 계층 구조의 네트워크 구성요소와 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공하고, 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어, 그리고 다중화와 같은 편리한 서비스를 제공하는 계층이다.The transport layer of the
전송 계층은 하위 계층인 물리 계층으로부터 데이터를 수신하고, 상기 수신된 데이터를 복제(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
전송 계층의 동작은 커널(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
응용 계층은 시스템 콜(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
네트워크 애플리케이션 서버(200)의 물리 계층에 해당하는 네트워크 디바이스(210)는 컨텐츠 제공자(110)로부터 수신된 데이터를 상위 계층인 커널 모듈(220)로 전송하고, 상기 커널 모듈(220)로부터 수신된 데이터를 사용자 단말(150)로 전송하는 기능을 수행한다.The
네트워크 애플리케이션 서버(200)의 전송 계층에 해당하는 커널 모듈(220)은 하위 계층인 네트워크 디바이스(210)로부터 데이터를 수신하고, 상기 수신된 데이터를 복제(copy)하여 두 개의 데이터 흐름(data flow)을 제공하는 기능을 수행할 수 있다. 이를 위해, 상기 커널 모듈(220)은 수신부(221), 송신부(222), 메모리(또는 데이터베이스, 223) 및 제어부(224)를 포함할 수 있다. 도 4에 도시된 구성요소들은 커널 모듈(220)을 구현하는데 있어서 필수적인 것은 아니어서, 본 명세서상에서 설명되는 커널 모듈은 위에서 열거된 구성요소들보다 많거나, 또는 적은 구성요소들을 가질 수 있다.The
수신부(221)는 하위 계층인 물리 계층(210)을 통해 컨텐츠 제공자(110)로부터 데이터를 수신할 수 있다. 그리고, 수신부(221)는, 제어부(224)의 제어 명령에 따라, 물리 계층(210)으로부터 수신된 데이터를 분기하여 응용 계층(230) 및 송신부(222)로 전달하는 동작과 해당 데이터를 응용 계층(230)으로만 전달하는 동작을 선택적으로 수행할 수 있다. 이때, 전자의 동작은 초저지연 데이터 전송이 필요한 사용자 단말에 대해 수행되고, 후자의 동작은 일반적인 데이터 전송이 필요한 사용자 단말에 대해 수행될 수 있다. The
송신부(222)는, 제어부(224)의 제어 명령에 따라, 상위 계층인 응용 계층(230)으로부터 수신된 데이터를 하위 계층인 물리 계층(210)으로 전송하는 동작을 수행할 수 있다. The
또한, 송신부(222)는, 제어부(224)의 제어 명령에 따라, 수신부(221)로부터 전달된 데이터를 하위 계층인 물리 계층(210)으로 전송하는 동작을 수행할 수 있다. 이 경우, 수신부(221)와 송신부(222)는 1:N의 데이터 전송 구조를 갖는다. 즉, 수신부(221)에서 하나의 패킷 데이터를 송신부(222)로 전달하면, 송신부(222)는 수신부(221)로부터 전달된 하나의 패킷 데이터를 N개의 사용자 단말(221)로 전송하게 된다.In addition, the
한편, 본 실시 예에서는, 수신부(221)와 송신부(222)가 커널 모듈(220) 내부에 독립적으로 구현되는 것을 예시하고 있으나 반드시 이에 제한되지는 않으며, 상기 수신부와 송신부 대신 하나의 통신부가 커널 모듈(220) 내부에 구현될 수 있음은 당업자에게 자명할 것이다.Meanwhile, in the present embodiment, the
메모리(223)는 커널 모듈(220)의 다양한 기능을 지원하는 데이터를 저장한다. 메모리(223)는 커널 모듈(220)에서 구동되는 프로그램(또는 소프트웨어), 커널 모듈(220)의 동작을 위한 데이터들, 명령어들을 저장할 수 있다.The
메모리(223)는 초저지연 데이터 전송이 필요한 사용자 세션들에 관한 정보를 유지 및 관리하기 위한 세션 관리 테이블(session management table)을 저장할 수 있다. 이때, 상기 세션 관리 테이블은 세션 연결 정보와 세션 우선순위 정보를 포함하며, 세션 단위로 관리될 수 있다. 상기 세션 연결 정보는 컨텐츠 제공자의 IP 주소 및 포트 정보, 사용자 단말의 IP 주소 및 포트 정보, 각 사용자 단말에 해당하는 사용자 세션의 식별(이름) 정보, 컨텐츠 제공자와 사용자 단말과 사용자 세션 간의 링크(link) 정보 등을 포함할 수 있다.The
가령, 도 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
세션 관리 테이블에 저장된 등록 정보는, 세션 단위로 컨텐츠 제공자의 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
제어부(224)는 메모리(223)에 저장된 프로그램 또는 소프트웨어를 구동하여 커널 모듈(220)의 전반적인 동작을 제어한다. 이를 위해, 제어부(224)는 커널 모듈(220)을 구성하는 수신부(221) 및 송신부(222)의 동작을 제어할 수 있다.The
제어부(224)는, 데이터(또는 패킷) 수신 시, 메모리(223)에 저장된 세션 관리 테이블을 참조하여 해당 데이터를 사용자 세션 별로 미리 결정된 우선순위에 따라 분배할 수 있다. 이때, 상기 제어부(224)는, 세션 관리 테이블에 기 등록된 사용자 세션들에 대해 초저지연 데이터 전송을 지원하기 위해, 물리 계층(210)으로부터 수신된 데이터 흐름을 분기하여 전송 계층에서 응용 계층으로 데이터를 전송하는 제1 데이터 흐름과 전송 계층에서 물리 계층으로 데이터를 전송하는 제2 데이터 흐름을 제공할 수 있다. 또한, 제어부(224)는 수신 데이터를 다수의 사용자 단말로 전송하기 위해 해당 데이터를 복제(copy)할 수 있다.When receiving data (or packets), the
가령, 도 6에 도시된 바와 같이, 제어부(224)는 메모리(223)에 저장된 세션 관리 테이블을 참조하여 수신부(221) 버퍼로 저장되는 패킷들을 미리 등록된 사용자 세션들에게 우선순위에 따라 분배할 수 있다. 예를 들어, 특정 컨텐츠 제공자로부터 데이터 전송을 요청한 제1 내지 제5 사용자 단말과 네트워크 애플리케이션 서버(200)의 응용 계층이 세션 관리 테이블에 등록되어 있다고 가정할 때, 해당 컨텐츠 제공자로부터 패킷 n을 수신하게 되면, 제어부(224)는 미리 정해진 우선순위에 따라 제1 사용자 단말, 제2 사용자 단말, 제3 사용자 단말, 응용 계층, 제4 사용자 단말, 제5 사용자 단말 순으로 패킷 n을 분배하여 전송한다. For example, as shown in FIG. 6 , the
한편, 세션 관리 테이블에 등록되지 않은 사용자 단말이 데이터 전송을 요청하는 경우, 제어부(224)는 종래의 전송 프로세스와 같이 패킷을 응용 계층(230)으로 전송하게 되고, 상기 응용 계층에서 데이터 처리, 가공, 분석 및 저장 등과 같은 일련의 동작을 수행한 다음 해당 패킷을 사용자 단말로 분배하는 동작을 수행한다.On the other hand, when a user terminal not registered in the session management table requests data transmission, the
제어부(224)는, 응용 계층(230)의 요청 명령에 따라, 메모리(223)에 저장된 세션 관리 테이블을 유지 및 관리할 수 있다. 예를 들어, 제어부(221)는, 응용 계층(230)의 요청 명령에 따라, 초저지연 데이터 전송이 필요한 사용자 세션에 관한 정보를 세션 관리 테이블에 등록하거나, 상기 세션 관리 테이블에 기 등록된 사용자 세션 정보를 삭제하거나, 혹은 세션 관리 테이블에 기 등록된 사용자 세션들의 우선순위를 변경(조절)하는 동작 등을 수행할 수 있다. The
가령, 도 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
또한, 도 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
네트워크 애플리케이션 서버(200)의 응용 계층에 해당하는 애플리케이션 모듈(230)은 하위 계층인 전송 계층(220)으로부터 수신된 데이터를 처리, 가공, 분석 및 저장하는 일련의 동작을 수행한다. 또한, 애플리케이션 모듈(230)은 사용자 단말(150)로 전송할 데이터를 하위 계층인 전송 계층(220)으로 전달하는 동작을 수행한다.The
애플리케이션 모듈(230)은 시스템 콜(System Call)을 이용하여 커널 모듈(220)의 메모리(223)에 저장된 세션 관리 테이블을 조회할 수 있다. 이때, 상기 애플리케이션 모듈(230)은 세션 관리 테이블을 컨텐츠 제공자 단위 또는 세션 단위로 조회할 수 있다.The
일 예로, 애플리케이션 모듈(230)은 컨텐츠 제공자 IP 주소(Src_IP) 및 포트(Src_Port) 정보의 조합을 통해 사용자 정보 및 세션 우선순위 정보를 조회할 수 있다. 상기 컨텐츠 제공자 단위로 조회할 경우, 각 컨텐츠 제공자와 관련된 사용자 세션들의 목록이 나타난다. 한편, 애플리케이션 모듈(230)은 세션 이름을 주요 구분자(Main Key ID)로 하여 세션 단위로 조회할 수 있다. 상기 세션 단위로 조회할 경우, 각 세션 이름에 해당되는 컨텐츠 제공자 정보(Src_IP, Src_Port)와 사용자 단말 정보(Dst_IP, Dst_Port)가 나타난다.For example, the
애플리케이션 모듈(230)은 시스템 콜(system call)을 이용하여 초저지연 데이터 전송이 필요한 사용자 세션에 관한 정보를 전송 계층(220)에 등록 요청할 수 있다. 가령, 사용자 단말(150)로부터 데이터 전송을 요청 받는 경우, 애플리케이션 모듈(230)은 시스템 콜을 이용하여 커널 모듈(220)의 메모리(223)에 저장된 세션 관리 테이블 정보를 조회할 수 있다. 상기 조회 결과, 해당 사용자 단말(150)이 세션 관리 테이블에 등록되어 있지 않은 경우, 애플리케이션 모듈(230)은 시스템 콜을 이용하여 해당 사용자 단말(150)과 관련된 세션 연결 정보 및 세션 우선순위 정보를 커널 모듈(220)에 등록 요청할 수 있다. The
또한, 애플리케이션 모듈(230)은 시스템 콜을 이용하여 초저지연 데이터 전송이 필요한 사용자 세션의 삭제 및 우선순위 변경 등을 전송 계층(220)에 요청할 수도 있다.Also, the
이상, 상술한 바와 같이, 본 발명에 따른 네트워크 애플리케이션 서버는 응용 계층이 아닌 전송 계층에서 미리 등록된 사용자 세션에 대해 데이터 흐름을 분기하여 데이터 처리 동작을 이원화함으로써, 기존에 응용 계층을 거치면서 발생하는 시간 지연을 제거할 수 있고, 그에 따라 컨텐츠 제공자(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
도 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
상기 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
응용 계층(230)은 사용자 단말이 세션 관리 테이블에 등록된 사용자 세션인지 여부를 확인할 수 있다(S920). 상기 확인 결과, 사용자 단말이 세션 관리 테이블에 등록되지 않은 경우, 응용 계층(230)은 시스템 콜을 이용하여 사용자 단말의 사용자 세션 등록을 전송 계층(220)에 요청할 수 있다(S925). 이러한 응용 계층(230)의 요청 명령에 대응하여, 전송 계층(220)은 해당 사용자 단말의 사용자 세션 정보를 세션 관리 테이블에 등록할 수 있다(S930). 이때, 상기 세션 관리 테이블에 등록되는 정보로는 컨텐츠 제공자의 IP 주소(Src_IP) 및 포트(Src_Port) 정보와, 해당 사용자 단말의 IP 주소(Dst_IP) 및 포트(Dst_Port) 정보, 세션 우선순위 정보 및 세션 이름 정보 등이 있다.The
한편, 사용자 단말의 우선순위 변경 이벤트가 발생하는 경우(S935), 응용 계층(230)은 시스템 콜을 이용하여 전송 계층(220)에 저장된 세션 관리 테이블의 세션 우선순위 정보를 조회할 수 있다(S940). On the other hand, when the priority change event of the user terminal occurs (S935), the
응용 계층(230)은 세션 관리 테이블에 등록된 사용자 단말들의 우선순위 정보를 확인할 수 있다(S945). 응용 계층(230)은 세션 관리 테이블에 등록된 우선순위 정보를 기반으로 해당 사용자 단말의 우선순위 변경을 전송 계층(220)에 요청할 수 있다(S950). 이러한 응용 계층(230)의 요청 명령에 대응하여, 전송 계층(220)은 세션 관리 테이블에 등록된 사용자 단말의 우선순위를 변경(조절)할 수 있다(S955).The
이후, 사용자 단말로부터 데이터 전송 요청이 종료되는 경우(S960), 응용 계층(230)은 해당 사용자 단말의 사용자 세션 삭제를 전송 계층(220)에 요청할 수 있다(S965). 이러한 응용 계층(230)의 요청 명령에 대응하여, 전송 계층(220)은 세션 관리 테이블에 등록된 사용자 단말의 사용자 세션 정보를 삭제할 수 있다(S970).Thereafter, when the data transmission request is terminated from the user terminal (S960), the
도 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
상기 1010 단계의 확인 결과, 특정 컨텐츠 제공자로부터 패킷을 수신한 경우, 전송 계층(220)은 메모리에 저장된 세션 관리 테이블의 세션 연결 정보 및 세션 우선순위 정보를 확인할 수 있다(S1020). 즉, 전송 계층(220)은 세션 관리 테이블을 검색하여 특정 컨텐츠 제공자로부터 데이터 전송을 요청한 사용자 세션 정보 및 우선순위 정보를 확인할 수 있다.As a result of checking in step 1010 , when a packet is received from a specific content provider, the
전송 계층(220)은 특정 컨텐츠 제공자에게 데이터 전송을 요청한 사용자 세션들이 사용자 단말인지 여부를 확인할 수 있다(S1030). 상기 1030 단계의 확인 결과, 등록 사용자 세션이 사용자 단말인 경우, 전송 계층(220)은 물리 계층(210)으로부터 수신된 패킷을 복제(copy)할 수 있다(S1040). 이는 전송 계층(220)에서 데이터 흐름을 분기하여 데이터 처리를 이원화하기 위함이다. The
전송 계층(220)은 수신 패킷을 사용자 세션의 우선순위에 따라 사용자 단말들에게 순차적으로 분배한 다음 해당 패킷을 물리 계층(210)으로 전송할 수 있다(S1050). 이러한 데이터(패킷) 흐름과 함께, 전송 계층(220)은 물리 계층(210)으로부터 수신된 패킷을 응용 계층(230)으로 전송할 수 있다(S1060). 이처럼, 전송 계층(220)은 세션 관리 테이블에 등록된 사용자 세션들에 대해 데이터 흐름을 분기하여 데이터 처리 동작을 이원화함으로써, 기존에 종단 간 데이터 전송 시, 응용 계층을 거치면서 발생하는 시간 지연을 효과적으로 제거할 수 있다.The
한편, 상기 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
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터로 실행 가능한 프로그램을 계속 저장하거나, 실행 또는 다운로드를 위해 임시 저장하는 것일 수도 있다. 또한, 매체는 단일 또는 수개 하드웨어가 결합된 형태의 다양한 기록수단 또는 저장수단일 수 있는데, 어떤 컴퓨터 시스템에 직접 접속되는 매체에 한정되지 않고, 네트워크 상에 분산 존재하는 것일 수도 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, 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.
상기 커널 모듈은 상기 컨텐츠 제공자로부터 데이터를 수신하는 수신부, 상기 사용자 단말로 데이터를 전송하는 송신부, 상기 세션 관리 테이블을 저장하는 메모리 및 상기 수신부 및 송신부의 동작을 제어하는 제어부를 포함하는 것을 특징으로 하는 네트워크 애플리케이션 서버.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.
상기 제어부는, 상기 애플리케이션 모듈의 요청 명령에 따라, 상기 메모리에 저장된 세션 관리 테이블에 접속하여 세션 등록 기능, 세션 삭제 기능 및 우선순위 변경 기능 중 적어도 하나를 수행하는 것을 특징으로 하는 네트워크 애플리케이션 서버.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.
상기 제어부는, 특정 컨텐츠 제공자로부터 데이터를 수신한 경우, 상기 세션 관리 테이블을 검색하여 상기 특정 컨텐츠 제공자로부터 데이터 전송을 요청한 사용자 세션 정보 및 우선순위 정보를 확인하는 것을 특징으로 하는 네트워크 애플리케이션 서버.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.
상기 제어부는, 상기 데이터 전송을 요청한 사용자 세션이 사용자 단말인 경우, 상기 네트워크 디바이스로부터 수신된 데이터를 복제하여 데이터 흐름을 분기 이원화하는 것을 특징으로 하는 네트워크 애플리케이션 서버.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.
상기 제어부는, 상기 수신된 데이터를 상기 우선순위 정보에 따라 사용자 단말로 분배한 후 해당 데이터를 상기 물리 계층으로 전송하는 것을 특징으로 하는 네트워크 애플리케이션 서버.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.
상기 제어부는, 상기 데이터 전송을 요청한 사용자 세션이 사용자 단말이 아닌 경우, 상기 네트워크 디바이스로부터 수신된 데이터를 상기 애플리케이션 모듈로만 전송하는 것을 특징으로 하는 네트워크 애플리케이션 서버.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.
상기 애플리케이션 모듈은 시스템 콜(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).
상기 애플리케이션 모듈은, 미리 결정된 이벤트 발생 시, 상기 세션 관리 테이블의 사용자 세션 정보에 관한 변경을 상기 커널 모듈에 요청하는 것을 특징으로 하는 네트워크 애플리케이션 서버.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.
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)
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 |
-
2020
- 2020-01-31 KR KR1020200011772A patent/KR20210098056A/en active Search and Examination
Cited By (1)
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 |