KR20230105862A - 어플리케이션 기반의 데이터 전송 장치 및 방법 - Google Patents

어플리케이션 기반의 데이터 전송 장치 및 방법 Download PDF

Info

Publication number
KR20230105862A
KR20230105862A KR1020220001424A KR20220001424A KR20230105862A KR 20230105862 A KR20230105862 A KR 20230105862A KR 1020220001424 A KR1020220001424 A KR 1020220001424A KR 20220001424 A KR20220001424 A KR 20220001424A KR 20230105862 A KR20230105862 A KR 20230105862A
Authority
KR
South Korea
Prior art keywords
application
processing unit
network
information
data transmission
Prior art date
Application number
KR1020220001424A
Other languages
English (en)
Other versions
KR102656210B1 (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 KR1020220001424A priority Critical patent/KR102656210B1/ko
Priority to US17/836,651 priority patent/US20230216938A1/en
Publication of KR20230105862A publication Critical patent/KR20230105862A/ko
Application granted granted Critical
Publication of KR102656210B1 publication Critical patent/KR102656210B1/ko

Links

Images

Classifications

    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • 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/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • 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/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • 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
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer And Data Communications (AREA)

Abstract

어플리케이션 기반의 데이터 전송 장치가 개시된다.
본 개시의 일 실시 예에 따른 어플리케이션 기반의 데이터 전송 장치는 어플리케이션 수행을 위한 어플리케이션 데이터를 생성하는 어플리케이션 처리부와, 상기 어플리케이션 데이터로부터, 상기 어플리케이션 수행을 위해 요구되는 네트워크 연결 정보 및 네트워크 성능 정보 중 적어도 하나를 포함하는 전송 서비스 정보를 확인하고, 상기 전송 서비스 정보를 기반으로 네트워크 환경을 설정하는 전송 서비스 처리부와, 상기 네트워크 환경 및 전송 프로토콜(Transport Protocol)을 기반으로, 상기 어플리케이션 데이터를 전송하기 위한 전송 프로토콜 데이터를 생성 및 전송하는 전송 처리부를 포함할 수 있다.

Description

어플리케이션 기반의 데이터 전송 장치 및 방법{DEVICE AND METHOD FOR TRANSMITTING DATA BASED ON APPLICATION}
본 개시는 응용 프로세스간 통신 채널 제어 기술에 관한 것이며, 보다 구체적으로는 응용 프로세스의 요구사항을 수용하는 네트워크 연결을 처리하는 방법 및 장치에 대한 것이다.
다양한 종류의 서비스를 제공하기 위해서 어플리케이션은 데이터를 전송할 때 다양한 요구사항을 가질 수 있다. 특히, 5G 및 6G에 대한 연구가 활발해지면서 실시간 서비스를 제공하기 위해서 어플리케이션에서 지연과 관련된 요구사항들이 증가하고 있다.
현재 네트워크 상에서 지연시간(latency)을 줄이기 위한 다양한 방법들이 연구되고 있다. 특히, 가장 널리 사용되고 있는 전송 프로토콜(transport protocol)인 TCP(Transmission Control Protocol)를 개선하거나, QUIC(Quick UDP Internet Connections) 등과 같은 새로운 전송 프로토콜들을 만들어서 사용하고 있다. 이렇게 다양한 전송 프로토콜들이 존재함으로써 응용을 개발하는 개발자들은 각 프로토콜의 특징을 이해하고 각 프로토콜들이 제공하는 API를 이용해서 응용을 개발해야만 한다. 이렇게 응용이 개발된 경우, 프로토콜 버전이 업그레이드되거나 새롭게 개발된 프로토콜을 응용이 이용하려고 하는 경우 응용 프로그램을 변경해야만 한다.
이러한 문제를 해결하기 위해서 IETF(Internet Engineering Task Force)에서는 Socket API(Application Programming Interface) 또는 Transport Services API라는 이름으로 어플리케이션과 전송 프로토콜 사이에 API를 정의하고 있다. 이러한 API를 이용해서 어플리케이션은 엔드 포인트(Endpoint) 속성, 보안 속성, 메시지 속성, 연결 속성, 프로토콜 선택을 위한 속성 등과 같은 다양한 정보를 전송 시스템(transport system)에게 전달하며, 전송 시스템에서는 이러한 속성들을 이용해서 가장 적합한 전송 프로토콜을 선택하고 연결 절차를 수행한다. 하지만 이러한 전송 서비스 API(Transport Services API)는 단순히 전송 프로토콜을 선택해서 연결 절차를 수행하는 기능만 고려하고 있으며 성능과 관련된 요구사항을 고려하고 있지 않다. 또한 전송 프로토콜 선택 및 연결을 위해서 너무 복잡하고 많은 속성을 정의함으로써 실제 어플리케이션을 개발하는 개발자들이 사용하기에 어려움이 있다. 즉, 단순한 연결뿐만 아니라 성능 요구사항을 수용하면서 사용이 용이한 API를 제공할 필요가 있다.
본 개시의 기술적 과제는 어플리케이션과 전송 프로토콜 간에 새로운 API를 추가하여, 어플리케이션이 요구하는 성능 정보를 만족하는 연결을 설정하는 방법 및 장치를 제공하는데 있다.
본 개시에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 개시의 일 양상에 따르면 어플리케이션 기반의 데이터 전송 장치가 제공될 수 있다. 상기 장치는 어플리케이션 수행을 위한 어플리케이션 데이터를 생성하는 어플리케이션 처리부와, 상기 어플리케이션 데이터로부터, 상기 어플리케이션 수행을 위해 요구되는 네트워크 연결 정보 및 네트워크 성능 정보 중 적어도 하나를 포함하는 전송 서비스 정보를 확인하고, 상기 전송 서비스 정보를 기반으로 네트워크 환경을 설정하는 전송 서비스 처리부와, 상기 네트워크 환경 및 전송 프로토콜(Transport Protocol)을 기반으로, 상기 어플리케이션 데이터를 전송하기 위한 전송 프로토콜 데이터를 생성 및 전송하는 전송 처리부를 포함할 수 있다.
본 개시의 다른 양상에 따르면 어플리케이션 기반의 데이터 전송 방법이 제공될 수 있다. 상기 방법은, 어플리케이션 수행을 위한 어플리케이션 데이터를 생성하는 과정과, 상기 어플리케이션 데이터로부터, 상기 어플리케이션 수행을 위해 요구되는 네트워크 연결 정보 및 네트워크 성능 정보 중 적어도 하나를 포함하는 전송 서비스 정보를 확인하는 과정과, 상기 전송 서비스 정보를 기반으로 네트워크 환경을 설정하는 과정과, 상기 네트워크 환경 및 전송 프로토콜(Transport Protocol)을 기반으로, 상기 어플리케이션 데이터를 전송하기 위한 전송 프로토콜 데이터를 생성 및 전송하는 과정을 포함할 수 있다.
본 개시에 대하여 위에서 간략하게 요약된 특징들은 후술하는 본 개시의 상세한 설명의 예시적인 양상일 뿐이며, 본 개시의 범위를 제한하는 것은 아니다.
본 개시에 따르면, 어플리케이션 계층에서 간단한 API 호출을 통해서 대역폭 및 지연시간(latency) 등과 같은 네트워크 성능 요구사항을 만족하는 연결을 설정할 수 있는 방법 및 장치가 제공될 수 있다.
본 개시에 따르면, 로컬 시스템과 네트워크 모두에 대해서 네트워크 성능 요구사항을 설정할 수 있도록 어플리케이션을 구성할 수 있으므로, 더욱 정확하고 세밀한 제어가 가능한 방법 및 장치가 제공될 수 있다.
본 개시에 따르면, 네트워크 환경을 설정하는 간단한 API를 사용함으로써, 어플리케이션 계층에서 용이하게 연결을 설정할 수 있는 방법 및 장치가 제공될 수 있다.
본 개시에 따르면, 어플리케이션에서 요구하는 연결이 설정된 후에도 지속적으로 성능 요구사항을 만족하는지 여부를 검증할 수 있는 방법 및 장치가 제공될 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 장치가 적용되는 시스템을 예시하는 블록도이다.
도 2는 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 장치에 구비되는 전송 서비스 관리 계층의 세부 구성을 예시하는 블록도이다.
도 3은 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 장치의 아키텍쳐를 예시하는 블록도이다.
도 4a 및 도 4b는 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 장치에 구비된 전송 서비스 API의 구체적인 구성 및 파라미터를 예시하는 도면이다.
도 4c는 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 장치장치에 구비된 네트워크 정책 인터페이스의 구체적인 구성 및 파라미터를 예시하는 도면이다.
도 5는 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 장치의 연결 설정 동작을 예시하는 흐름도이다.
도 6은 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 장치의 연결 동작을 예시하는 흐름도이다.
도 7은 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 장치의 메시지 전송 동작을 예시하는 흐름도이다.
도 8은 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 장치의 메시지 수신 동작을 예시하는 흐름도이다.
도 9는 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 장치의 연결 종료 동작을 예시하는 흐름도이다.
도 10은 도 5의 S517 단계의 상세 동작을 예시하는 흐름도이다.
도 11은 도 5의 S521 단계의 상세 동작을 예시하는 흐름도이다.
도 12는 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 방법 및 장치를 실행하는 컴퓨팅 시스템을 예시하는 블록도이다.
이하에서는 첨부한 도면을 참고로 하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
본 개시의 실시 예를 설명함에 있어서 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그에 대한 상세한 설명은 생략한다. 그리고, 도면에서 본 개시에 대한 설명과 관계없는 부분은 생략하였으며, 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 개시에 있어서, 어떤 구성요소가 다른 구성요소와 "연결", "결합" 또는 "접속"되어 있다고 할 때, 이는 직접적인 연결관계뿐만 아니라, 그 중간에 또 다른 구성요소가 존재하는 간접적인 연결관계도 포함할 수 있다. 또한 어떤 구성요소가 다른 구성요소를 "포함한다" 또는 "가진다"고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 배제하는 것이 아니라 또 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 개시에 있어서, 서로 구별되는 구성요소들은 각각의 특징을 명확하게 설명하기 위함이며, 구성요소들이 반드시 분리되는 것을 의미하지는 않는다. 즉, 복수의 구성요소가 통합되어 하나의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있고, 하나의 구성요소가 분산되어 복수의 하드웨어 또는 소프트웨어 단위로 이루어질 수도 있다. 따라서, 별도로 언급하지 않더라도 이와 같이 통합된 또는 분산된 실시 예도 본 개시의 범위에 포함된다.
본 개시에 있어서, 다양한 실시 예에서 설명하는 구성요소들이 반드시 필수적인 구성요소들은 의미하는 것은 아니며, 일부는 선택적인 구성요소일 수 있다. 따라서, 일 실시 예에서 설명하는 구성요소들의 부분집합으로 구성되는 실시 예도 본 개시의 범위에 포함된다. 또한, 다양한 실시 예에서 설명하는 구성요소들에 추가적으로 다른 구성요소를 포함하는 실시 예도 본 개시의 범위에 포함된다.
이하, 첨부한 도면을 참조하여 본 개시의 실시 예들에 대해서 설명한다.
도 1은 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 장치가 적용되는 시스템을 예시하는 블록도이다.
도 1을 참조하면, 본 개시의 일 실시예에 따른 시스템은, 어플리케이션 기반의 데이터 전송 장치(110, 120), 및 네트워크 정책 관리 서버(150)를 포함할 수 있다. 어플리케이션 기반의 데이터 전송 장치(110, 120)와 네트워크 정책 관리 서버(150)는 통신망을 통해 연결될 수 있다.
어플리케이션 기반의 데이터 전송 장치(110, 120)는, 어플리케이션을 수행할 수 있으며, 어플리케이션 수행시 요구되는 네트워크 연결 정보 및 네트워크 성능 정보 중 적어도 하나를 포함하는 전송 서비스 정보를 확인할 수 있다.
그리고, 어플리케이션 기반의 데이터 전송 장치(110, 120)는, 어플리케이션 데이터를 전송함에 있어서, 어플리케이션이 요구하는 전송 서비스 정보를 제공하고, 내부에 구비되는 API 등을 활용하여 로컬 시스템 성능 설정, 네트워크 성능 설정, 성능 요구사항의 만족 여부 등을 확인할 수 있다. 또한, 어플리케이션 기반의 데이터 전송 장치(110, 120)는, 어플리케이션이 요구하는 사항을 만족하도록 로컬 시스템 및 네트워크를 설정하고, 전송 프로토콜(transport protocol)을 이용해서 연결을 설정하는 기능을 수행할 수 있다.
로컬 시스템 및 네트워크를 설정시 네트워크에 대한 정보가 요구될 수 있으며, 네트워크 정책 관리 서버(150)는 어플리케이션 기반의 데이터 전송 장치(110, 120)로, 네트워크에 대한 정보를 제공할 수 있다. 이에 따라, 어플리케이션 기반의 데이터 전송 장치(110, 120)는 네트워크에 대한 정보를 사용하여, 전술한 로컬 시스템 및 네트워크의 설정 동작을 수행할 수 있다. 또한, 네트워크 정책 관리 서버(150)는 네트워크에 대한 정보를 지속적으로 업데이트하여 제공할 수 있으며, 어플리케이션 기반의 데이터 전송 장치(110, 120)는 업데이트된 정보를 반영하여 전술한 로컬 시스템 및 네트워크의 설정 동작을 수행할 수 있다. 이에 따라, 전송 프로토콜의 버젼이 업그레이드되거나, 새로운 종류의 전송 프로토콜이 적용되더라도, 용이하게 어플리케이션을 개발할 수 있는 이점이 있다.
나아가, 어플리케이션 기반의 데이터 전송 장치(110, 120)는, 어플리케이션 계층(111), 전송 서비스 관리 계층(112)과, 전송 계층(113)을 포함할 수 있다.
어플리케이션 계층(111)은 어플리케이션 수행을 위한 어플리케이션 데이터를 생성하는 동작을 수행할 수 있고, 전송 계층(113)은 네트워크 환경 및 전송 프로토콜(Transport Protocol)을 기반으로, 어플리케이션 데이터를 전송하기 위한 전송 프로토콜 데이터를 생성 및 전송하는 동작을 수행할 수 있다. 일 예로, 전송 계층(113)은 TCP, UDP, QUIC 등과 같은 전송 프로토콜 데이터를 생성 및 전송하는 동작을 수행할 수 있다.
한편, 전송 서비스 관리 계층(112)은 어플리케이션 계층(111)과 전송 계층(113) 사이에 구비될 수 있으며, 전술한 바와 같이, 상기 어플리케이션 데이터로부터, 어플리케이션 수행을 위해 요구되는 네트워크 연결 정보 및 네트워크 성능 정보 중 적어도 하나를 포함하는 전송 서비스 정보를 확인할 수 있다. 그리고, 전송 서비스 관리 계층(112)은 전송 서비스 정보를 기반으로, 전송 계층(113)에서 사용될 네트워크 환경을 설정하는 동작을 수행할 수 있다.
나아가, 본 개시의 일 실시예에서, 어플리케이션 계층(111)의 동작은 어플리케이션 처리부에 의해 수행될 수 있고, 전송 서비스 관리 계층(112)의 동작은 전송 서비스 처리부에 의해 처리될 수 있고, 전송 계층(113)의 동작은 전송 처리부에 의해 수행될 수 있다.
도 2는 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 장치에 구비되는 전송 서비스 관리 계층의 세부 구성을 예시하는 블록도이다.
도 2는 참조하면, 본 개시의 일 실시예에 따른 장치의 전송 서비스 관리 계층은 CPM(Connection & Property Manager)(112a), RVM(Requirement Verification Manager)(112b), NCM(Network Capability Manager)(112c), MTM(Message Translation Manager)(112d), TPM(Transport Protocol Manager)(112e), 및 SCM(System Capability Manager)(112f) 중, 적어도 하나를 포함할 수 있다.
CPM(112a)는 네트워크 연결 정보 및 네트워크 속성을 관리할 수 있다.
RVM(112b)는 어플리케이션 수행을 위해 요구되는 네트워크 연결 정보 및 네트워크 성능 정보를 만족하는지 여부를 검증할 수 있다.
NCM(112c)는 네트워크 성능을 설정할 수 있다.
MTM(112d)는 메시지를 변형하고, TPM(112e)는 전송 프로토콜을 선택하고 제어할 수 있다.
SCM(112f)는 로컬 시스템 성능을 설정할 수 있다.
도 3은 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 장치의 아키텍쳐를 예시하는 블록도이다.
도 3을 참조하면, 어플리케이션 기반의 데이터 전송 장치(300)는, 어플리케이션 처리부(310), 전송 서비스 처리부(320), 및 전송 처리부(330)을 포함할 수 있다.
또한, 전송 서비스 처리부(320)는, 전송 서비스 API(321) 및 네트워크 정책 인터페이스(322)를 포함할 수 있다.
전송 서비스 API(321)는, 어플리케이션 처리부(310)와 연결될 수 있으며, 어플리케이션 처리부(310)에서 요구되는 정보를 확인하여 제공할 수 있다. 전송 서비스 API(321)의 구체적인 구성 및 파라미터는 도 4a 및 도 4b와 같이 예시될 수 있다.
도 4b에서 verificationInterval은 어플리케이션이 요구하는 성능 속성이 정상적으로 지원되고 있는지 여부를 확인하는 검증 간격을 설정하기 위한 것이다. 가장 자주 검증을 수행하는 시간 간격과 가장 드물게 검증을 수행하는 시간 간격의 임계값(threshold)을 설정함으로써, 에러 발생 빈도에 따라서 유동적으로 검증을 수행할 수 있다. 예를 들어서, 에러가 자주 발생하는 경우에는 성능에 대한 검증을 자주 진행할 필요가 있으며, 에러가 발생하지 않는 경우에는 성능에 대한 검증을 자주 진행할 필요가 없다. 구체적인 알고리즘은 본 발명에서 기술하지 않는다.
도 4b에서 bandwidth는 latency를 유지하기 위한 최대 대역폭을 의미한다. 예를 들어서, bandwidth가 100MB이고 latency가 100ms인 경우, 성능 요구사항은 초당 100MB 메시지를 전송할 때까지 latency를 100ms로 보장하는 것이다. 만약 어플리케이션이 전송하는 데이터의 대역폭이 초당 100MB를 넘는 경우에는 latency 100ms를 보장할 수 없음을 의미한다.
도 4b에서 latency는 데이터를 전달하는데 소요되는 지연 시간을 설정하기 위한 것이다. latency 요청을 범위로 설정할 수 있도록 함으로써 latency를 유연하게 설정할 수 있도록 한다. 예를 들어서 latency를 100ms ~ 200ms로 설정하는 경우, 데이터 전송에 100ms에서 200ms 사이의 latency가 소요되도록 로컬 시스템 및 네트워크를 설정한다. lower 값과 upper 값이 동일한 경우에는 정확하게 해당 시간 후에 데이터가 목적지에 도달해야만 한다. 이러한 경우 데이터를 정확한 시간에 목적지로 보내기 위해서 로컬 시스템 및 네트워크에서 전달되는 데이터에 대한 정확한 제어가 필요하다.
한편, 네트워크 정책 인터페이스(322)는, 네트워크 정책 관리 서버(350)와 연결될 수 있으며, 네트워크 정책 관리 서버(350)로부터 제공되는 데이터를 전송 서비스 처리부(320)에 구비된 구성부로 제공할 수 있다. 네트워크 정책 인터페이스(322)의 구체적인 구성 및 파라미터는 도 4c와 같이 예시될 수 있다.
도 4c에서, req로 시작하는 인터페이스는 NCM(Network Capability Manager)에서 NPS(Network Policy Server)에게 요청하는 인터페이스이며, res로 시작하는 인터페이스는 NPS에서 NCM에게 응답하는 인터페이스이다. notyfyError는 설정된 연결에서 에러가 발생하는 경우 NPS 처리부가 NCM 처리부에게 전달하는 인터페이스이다. reqNetworkStatus는 NCM이 NPS에게 요구사항을 만족하는 연결을 설정할 수 있는지 여부만 확인하며, 실제 연결을 요청하는 인터페이스는 reqNetworkConn이다.
전송 서비스 처리부(320)는, 도 2의 전송 서비스 관리 계층의 동작을 수행하는 CPM 처리부(323), RVM 처리부(324), NCM 처리부(325), MTM 처리부(326), TPM 처리부(327), 및 SCM 처리부(328)를 포함할 수 있다.
CPM 처리부(323)는, 어플리케이션 처리부(310)로부터 연결 및 성능과 관련된 요구사항을 수신하고, 수신한 요구사항을 만족하는 연결을 설정하기 위한 전체적인 절차를 수행하며, 관련된 연결 및 성능 정보는 데이터베이스를 통해서 관리한다.
RVM 처리부(324)는, 어플리케이션이 요구하는 성능 요구사항을 만족하도록 설정된 연결이 실제로 성능 요구사항을 만족하는지 여부를 확인하는 기능을 수행한다.
NCM 처리부(325)는, NPS와의 연동을 통해서 네트워크와 연관된 성능 요구사항을 만족하는 네트워크 연결을 설정하는 기능을 수행한다.
MTM 처리부(326)는, 메시지를 송수신할 때 메시지에 metadata를 추가 및 제거하는 기능을 수행한다. 예컨대, 송신측 어플리케이션이 100 바이트 메시지를 전달하는 경우 수신측 어플리케이션은 100 바이트 메시지를 수신하기를 원한다. 하지만 전달 프로토콜로 TCP를 사용하는 경우에는 정확하게 100 바이트 메시지를 한 번에 수신하지 못할 수 있다. 이러한 문제를 해결하기 위해서, 송신측 어플리케이션이 전달한 메시지에 송신측 MTM 처리부에서 메시지 길이를 포함하도록 메시지를 변형하고, 수신측 MTM 처리부에서 메시지 길이만큼 메시지를 수신한 후에 어플리케이션에게 전달할 수 있다. 다른 예로서, 전달하는 메시지에 QoS 정보와 관련된 메타데이터(metadata)를 추가할 수 있다. 이와 같이, 전달하는 메시지에 QoS 정보와 관련된 메타데이터(metadata)를 추가함으로써 해당 메시지를 포워딩하는 장치들이 메타데이터에 포함된 QoS 정보를 활용할 수 있도록 구성할 수 있다. 즉, 메시지를 포워딩하는 장치들은 메시지에 포함된 QoS 관련 메타데이터를 이용해서 해당 메시지가 QoS를 만족하도록 전달할 수 있다.
전술한 동작은, 전달 프로토콜의 종류에 따라 다르게 설정될 수 있다. 일 예로, UDP와 같은 프로토콜을 사용하는 경우에는 전술한 동작은 생략될 수 있다.
TPM 처리부(327)는, 전달 프로토콜(transport protocol) 중에서 연결 요구사항을 만족하는 전달 프로토콜(transport protocol)을 선택하고 제어하는 기능을 수행한다.
SCM 처리부(328)는, 로컬 시스템에서 성능 요구사항을 만족하도록 시스템을 설정하는 기능을 수행한다. 일 예로, SCM 처리부(328)는, 로컬 시스템에서 성능과 관련해서 Queue나 Shaper 등을 설정하기 위해서는 로컬 시스템 또는 커널에 적합한 SCM을 제작 및 배포할 수 있다.
도 5는 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 장치의 연결 설정 동작을 예시하는 흐름도이다.
도 5를 참조하면, 우선, 어플리케이션 처리부는, 전송 서비스 API를 통해서 CPM 처리부로 연결 요청을 수행한다(S501, S502). 이때, 전송 서비스 API를 사용하기 위한 파라미터들은 도 4a에서 기술한 open과 동일한 값을 갖는다. 어플리케이션으로부터 성능 요구사항을 수신한 CPM 처리부는 성능과 관련된 요구사항을 로컬 시스템에서 지원하기 위한 성능과 네트워크에서 지원하기 위한 성능으로 구분할 필요가 있다. CPM 처리부는 실제로 교환되고 있는 패킷들에 대해서 전체 경로에서의 latency 중에서 로컬 시스템에서 소요되는 latency의 비율을 계산해서 이 정보를 이용할 수 있다. 즉, 연결 별로 전달되는 데이터에 대해서 전체 경로에 대한 latency 평균과 로컬 시스템에서의 latency 평균 값을 저장하고, 이 정보를 이용하면 전체 경로에서 소요되는 latency에서 로컬 시스템에서 발생하는 latency 비율을 계산할 수 있다. 예컨대, 어플리케이션이 100MB 대역폭과 100ms latency를 요구한 경우, CPM 처리부는 로컬 시스템에서 대역폭을 지원할 수 있는지 여부와 전체 경로 대비 로컬 시스템 내에서 latency가 어느 정보 비율로 소요되는지를 예측한다. 로컬 시스템에서 100MB 대역폭을 지원할 수 있고 10ms latency(로컬 시스템에서 전체 경로 대비 10%의 latency가 소요됨)가 소요될 것으로 예측되는 경우, 네트워크에서 100MB 대역폭과 90ms latency를 지원하면 어플리케이션이 요청한 성능 요구사항을 만족할 수 있을 것으로 CPM 처리부가 판단할 수 있다. 수신측 장치에서는 수신된 패킷을 최대한 빠르게 어플리케이션에 전달하기 위해서 노력하기 때문에 별도로 latency에 대해서 고려하지 않는다.
S503, S504, S505 단계에서, SCM 처리부는, 로컬 시스템에서 제공해야만 하는 성능 요구사항을 제공할 수 있는지 여부를 확인할 수 있다. 전술한 예에서 로컬 시스템에서의 대역폭 요구사항이 100MB이고 latency 요구사항이 10ms인데, 이러한 성능 요구사항을 로컬 시스템에서 제공할 수 있는지 여부를 확인하는 동작이다. SCM 처리부는, 로컬 시스템에 대역폭 100MB를 지원할 수 있는 Queue가 존재하는지 확인하고, 100MB의 트래픽을 로컬 시스템 내에서 10ms 동안 전달할 수 있도록 Queue와 Shaper를 설정할 수 있는지 여부를 검사한다. SCM 처리부는, 지원이 불가능한 경우에는 Queue와 Shaper 등의 설정을 통해서 로컬 시스템에서 소요될 것으로 예상되는 latency를 계산해서 반환할 수 있다.
추가적으로, 이러한 동작을 통해서 예상된 결과는 로컬 시스템의 상태에 따라서 예측이 틀릴 수 있으며, 예측이 맞는지 확인하기 위한 동작이 요구될 수 있다. 예컨대, SCM 처리부는, S512 단계를 수행하거나, 실제 데이터를 전송하는 동작을 수행하여, 예측이 맞는지 여부를 확인할 수 있다.
S506, S507, S508 단계에서, NCM 처리부는, 네트워크에 대한 성능 요구사항을 제공할 수 있는지 여부를 NPS 처리부와의 연동을 통해서 확인할 수 있다. 일 예로, 네트워크에서 100MB의 대역폭과 90ms의 latency를 제공할 수 있는지 여부를 계산해서 그 결과를 CPM 처리부로 전달한다. 만약 요구사항을 만족할 수 없는 경우에는 지원 가능한 성능 정보를 계산해서 CPM 처리부로 전달한다.
비록 본개시의 일 실시예에서, S503, S504, S505 단계와 S506, S507, S508 단계가, 순차적으로 진행하는 것을 예시하고 있으나, 503, S504, S505 단계와 S506, S507, S508 단계는 동시에 처리될 수 있다.
S509, 및 S510단계에서, CPM 처리부는, 로컬 시스템과 네트워크에서 제공해야만 하는 성능 요구사항을 결정하는 동작을 수행할 수 있다. 전술한 바와 같이, 로컬 시스템에게 10ms의 latency를 요구하고 네트워크에게 90ms의 latency를 요구한 경우, 만약 로컬 시스템에서 10ms의 latency 요구사항을 제공할 수 없고 20ms의 latency를 제공할 수 있고 네트워크에서는 90ms의 latency 요구사항을 제공할 수 있다는 응답을 수신한다면, CPM 처리부는 네트워크에게 80ms의 latency를 제공할 수 있는지 NCM 처리부로 문의할 수 있다. 만약, NCM 처리부가 가능하다고 응답하는 경우에 로컬 시스템에서 제공하는 latency는 20ms이고 네트워크에서 제공하는 latency는 80ms인 것으로 결정할 수 있다. 만약 로컬 시스템과 네트워크 모두에서 지원이 불가능한 경우, CPM 처리부는 최종적으로 지원이 불가능한 것으로 판단할 수 있다.
S511, S512, S513 단계에서, SCM 처리부는 실제 로컬 시스템 성능 요구사항을 만족하도록 시스템을 설정할 수 있다. S511 단계에서 전달되는 id 값은 CPM 처리부에서 생성하며, 이후 연결을 대표하는 값으로 사용된다. S512 단계에서 실제로 성능 요구사항을 만족하도록 로컬 시스템을 설정하고, 설정한 소켓 정보를 S513 단계를 통해서 CPM 처리부로 전달할 수 있다. 이러한 소켓 정보는 추후 전달 프로토콜을 설정하는 단계에서 활용할 수 있다.
S514, S515, S516 단계에서, NCM 처리부는 네트워크 성능 요구사항을 만족하도록 네트워크를 설정하기 위한 절차를 의미한다. S514 단계에서 S511 단계에서 사용된 id 값을 이용하며, S506 단계에서 사용된 src, dst, networkProperty 정보들을 사용한다. S515 단계에서는 NPS 처리부로 도 4c에 정의된 인터페이스를 통해서 성능 요구사항을 만족하는 연결을 설정하도록 하고, S516 단계에서 그 결과를 전달할 수 있다.
나아가, 네트워크 장치들이 메시지에 포함된 QoS와 연관된 메타데이터를 이용해서 메시지를 포워딩할 수 있다. 이 경우, S516 단계에서 전달되는 결과에는 메타데이터와 관련된 정보를 포함할 수 있다. 이러한 메타데이터 관련 정보는 추후 메시지를 목적지로 전달하는 경우 MTM을 통해서 메시지에 포함될 수 있으며, 네트워크 장치들이 활용하는 방법에 따라서 다양한 형태로 구성될 수 있다.
S517, S518, S519 단계에서, TPM 처리부는 연결 정보를 통해서 전달 프로토콜을 선택하고, 선택된 프로토콜을 제어해서 실제로 연결을 수행하는 절차를 의미한다. S517 단계를 통해서 전달되는 tpProperty에는 도 4b의 property에서 reliability, multistreaming, security 등과 같은 연결과 관련된 항목들만 포함한다. S518 단계에서, TPM 처리부는 tpProperty 정보를 이용해서 프로토콜을 선택하고, 실제로 연결하는 절차를 수행하고 S519 단계에서 그 결과를 CPM 처리부로 전달할 수 있다.
S520, S521, S522 단계에서, RVM 처리부는 설정된 연결이 성능 요구사항을 만족하는지 여부를 확인하기 위한 절차를 의미한다. S520 단계를 통해 전달되는 networkProperty에는 전체 연결에 대한 성능 요구사항을 포함하며, interval에는 추후 검증을 진행할 시간 간격 정보를 포함한다. S521 단계에서 RVM 처리부는 성능 요구사항을 검증하고, S522 단계를 통해서 그 결과를 CPM 처리부로 전달한다. 추후 interval에 정의된 시간 간격으로 성능 요구사항에 대한 검증을 지속적으로 진행한다.
이후, S523, 및 S524 단계를 통해서 전체 연결 설정 결과를 어플리케이션으로 전달할 수 있다.
도 6은 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 장치의 연결 동작을 예시하는 흐름도이다.
도 6을 참조하면, 우선, 어플리케이션 처리부는 전송 서비스 API를 사용하여 CPM 처리부로 연결 요청을 전달할 수 있다(S501, S502). 여기서, src는 연결이나 메시지 수신을 기다리기 위한 정보를 의미하며, property는 속성 정보를 의미한다. 수신측에서는 성능과 관련된 설정을 수행하는 경우가 없기 때문에 속성 정보는 reliability, multistreaming, security 등과 같은 연결 정보를 포함한다. S503 단계에서, CPM 처리부는 listen 절차 수행을 위한 정보를 TPM 처리부로 전달하고, TPM 처리부는 전송 프로토콜을 선택하고, 전송 프로토콜을 이용한 연결을 시도하는 동작을 수행할 수 있다(S604). 이후, TPM 처리부는 선택된 프로토콜을 CPM 처리부, 전송 서비스 API 등을 통해 어플리케이션 처리부로 제공할 수 있다(S605, S606, S607). 예컨대, 선택된 프로토콜이 TCP인 경우에는 연결을 대기할 수 있고, UDP인 경우에는 메시지 수신을 기다릴 수 있다.
도 7은 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 장치의 메시지 전송 동작을 예시하는 흐름도이다.
도 7을 참조하면, 우선, 어플리케이션 처리부는 전송 서비스 API를 통해 목적지로 전송할 메시지를 TPM 처리부로 전달한다(S701, S702). TPM 처리부는 MTM 처리부로 메시지를 전달하고(S703), MTM 처리부는, S704 단계를 통해, 메시지 길이 정보를 추가할 수 있다. 이때, 메시지 길이 정보는 헤더 형태로 추가될 수 있다.
S705 단계에서, MTM 처리부는, TPM 처리부로 메시지 길이 정보가 추가된 응답 메시지를 전달할 수 있다. TPM 처리부는 해당 메시지(메시지 길이 정보가 추가된 응답 메시지)를 전송 서비스 API를 통해 어플리케이션 처리부로 제공할 수 있다(S706, S707, S708). 만약 QoS와 관련된 메타데이터(metadata)가 존재하는 경우에는 관련된 정보가 MTM에서 추가될 수 있으며, 네트워크 장치들은 해당 메타데이터가 정의하는 QoS 요구에 맞도록 패킷을 포워딩할 수 있다.
비록, 본 개시의 일 실시예에서, MTM 처리부를 통해, 메시지 길이 정보가 추가된 응답 메시지를 생성하고 이를 사용하여 응답 메시지를 전송하는 것을 예시하였으나, 본 개시가 이를 한정하는 것은 아니다. 다른 예로서, 전송 프로토콜(transport protocol) 특성 상 메시지 변형이 필요 없는 경우에는 S703, S704, S705 단계는 생략될 수도 있다.
도 8은 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 장치의 메시지 수신 동작을 예시하는 흐름도이다.
도 8을 참조하면, 우선, 어플리케이션 처리부는 전송 서비스 API를 통해 TPM 처리부로 메시지 수신을 요청할 수 있다(S801, S802). 이후, TPM 처리부는 메시지를 수신한다(S803). 이때, 수신한 메시지는 메시지 길이가 포함된 메시지일 수 있으며, TPM 처리부는 수신한 메시지를 MTM 처리부에 전달한다(S804). MTM 처리부는 메시지 헤더를 제거하고 메시지 길이 정보를 확인하고, 메시지를 모두 수신했는지 여부를 확인한다(S805, S806). 예컨대, MTM 처리부는 수신된 메시지가 메시지 길이보다 작으면 추가적인 메시지가 수신될 때까지 기다린다. TPM 처리부는 지속적으로 메시지를 수신할 수 있으며(S807), 수신한 메시지를 MTM 처리부에 반복적으로 전달할 수 있다(S808).
이에 대응하여, MTM 처리부는 메시지를 모두 수신했는지 여부를 확인할 수 있으며, 수신을 완료하였을 경우(S809), 수신된 메시지를, TPM 처리부와 전송 서비스 API를 통해, 어플리케이션 처리부로 전달할 수 있다. 이때 전달되는 메시지는 메시지 헤더를 제외할 수 있다. 만약 전송 프로토콜(transport protocol) 특성 상 메시지 변형이 필요 없는 경우에는 S803 내지 S810 단계를 생략할 수 있다.
도 9는 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 장치의 연결 종료 동작을 예시하는 흐름도이다.
도 9를 참조하면, 우선, 어플리케이션 처리부는 전송 서비스 API를 통해 CPM 처리부로 연결 종료를 요청할 수 있다(S901, S902). CPM 처리부는 RVM 처리부를 통해 주기적으로 성능 요구사항 검증을 진행할 수 있는데, 연결 종료를 요청받음에 따라, RVM 처리부로 성능 요구사항 검증 종료를 요청할 수 있다(S903). 이에 대응하여, RVM 처리부는 성능 요구사항 검증을 종료하고, CPM 처리부로 응답을 회신할 수 있다(S904, S905).
이후, CPM 처리부는 TCPM 처리부로 전송 프로토콜의 연결 종료를 요청하고, 그 결과를 반환하는 동작을 수행할 수 있다(S906, S907, S908).
그리고, CPM 처리부는 NPS 처리부와의 연동을 통해서 네트워크에 설정된 성능 정보를 모두 삭제하고, 그 결과를 반환하는 동작을 수행할 수 있다(S909, S910, S911).
그리고, CPM 처리부는 연결 설정 절차 중에 로컬 시스템에 설정된 성능 정보를 모두 삭제하고, 그 결과를 반환하는 동작을 수행한다(S912, S913, S914). 이후, CPM 처리부는 전송 서비스 API를 통해 어플리케이션 처리부로 연결 종료 결과를 전달할 수 있다.
도 10은 도 5의 S517 단계의 상세 동작을 예시하는 흐름도이다.
도 10을 참조하면, 우선, S1001 단계에서, 어플리케이션 처리부는 S516 단계에 포함된 tpProperty를 통해서 요청하는 요구사항을 모두 만족하는 전송 프로토콜을 선택하는 동작을 수행할 수 있다. 각 프로토콜 별로 제공할 수 있는 속성(property)은 미리 정의될 수 있다. 예컨대, TCP와 TLS 프로토콜은 신뢰도(reliability)와 보안(security) 속성을 제공하며, QUIC 프로토콜은 신뢰도(reliability), 보안(security) 속성, 다중 스트리밍(multistreaming) 속성 등을 제공할 수 있다. 이후, S1002 단계에서, 어플리케이션 처리부는 후보로 선택된 프로토콜 개수를 확인할 수 있다. 후보로서 선택된 프로토콜이 존재하지 않을 경우, 어플리케이션 처리부는 S1010 단계로 진행하고, 후보로서 선택된 프로토콜이 1개 존재할 경우, S1008 단계를 진행하고, 후보로서 선택된 프로토콜이 복수개 존재할 경우, S1003 단계를 진행할 수 있다.
S1003 단계에서, 어플리케이션 처리부는 미리 설정된 우선 순위에 따라서 여러 후보 프로토콜 중에서 하나의 프로토콜을 선택할 수 있다. 이후, 어플리케이션 처리부는 선택된 프로토콜을 이용해서 연결을 진행할 수 있다(S1004). 이때, 어플리케이션 처리부는 전술한 S512 단계에서 획득한 소켓 설정 정보(socketConf)를 이용하여, 연결을 진행할 수 있다.
S1003 단계에서, 어플리케이션 처리부는 선택된 프로토콜을 이용해서 연결이 성공하였는지를 확인하고, 성공한 경우 S1007 단계를 진행한다. 선택된 프로토콜을 이용해서 연결을 실패하였을 경우, 어플리케이션 처리부는 지원 가능한 프로토콜 개수를 하나 감소시킨 후, S1002 단계를 진행하여 다시 다음 후보 프로토콜에 대한 연결을 진행할 수 있다.
한편, S1007 단계에서, 어플리케이션 처리부는 연결 성공 정보를 반환할 수 있으며, S1010 단계에서는 실패 정보를 반환할 수 있다.
도 11은 도 5의 S521 단계의 상세 동작을 예시하는 흐름도이다.
S1101 단계에서, 어플리케이션 처리부는 RVM 처리부로 인증을 요청하고, RVM 처리부는 timestamp 정보를 포함하는 검증용 메시지를 생성하는 동작을 수행할 수 있다(S1102).
S1103 단계에서, RVM 처리부는 생성된 검증용 메시지 전달을 TPM 처리부로 전달한다. S1104 단계에서, TPM 처리부는 검증용 메시지를 MTM 처리부로 전달할 수 있다. 이때, TPM 처리부는 type 파라미터를 이용해서 해당 메시지가 성능 검증을 위한 메시지임을 통지할 수 있다.
S1105 단계에서, MTM 처리부는, 수신된 메시지에 길이를 표시하는 헤더를 추가할 수 있다. 이때 type 파라미터를 통해서 해당 메시지가 성능 검증용 메시지임을 확인한 경우에는 길이를 모두 '1'로 설정함으로써 수신측에서 해당 메시지가 성능 검증용 메시지임을 인식할 수 있도록 한다. 성능 검증용 메시지는 메시지 길이, 전송측 timestamp, 수신측 timestamp를 포함하기 때문에 길이가 항상 일정하게 구성될 수 있다.
S1106 단계에서, MTM 처리부는, S1105 단계에서 구성된 메시지를 TPM 처리부로 전송할 수 있다. 이후, TPM 처리부는, 검증용 메시지를 목적지로 전달하고(S1107), 메시지 전송 결과를 RVM 처리부로 전달할 수 있다(S1108). 그리고, 메시지 전송 결과를 수신한 후 RVM 처리부는 응답 메시지 수신을 대기할 수 있다(S1109).
S1110 단계에서, TPM 처리부는, 네트워크를 통해서 목적지 노드로 검증용 메시지가 전달할 수 있으며, 이후, S1111 단계에서, 수신된 메시지에 timestamp를 추가할 수 있다.
그리고, S1112 단계에서, TPM 처리부는, 네트워크를 통해서 메시지를 전달할 수 있으며, S1113, S1114, S1115 단계에서, MTM 처리부는, 메시지 길이를 제거한 검증용 응답 메시지를 수신할 수 있다. 이때, MTM 처리부는, 수신한 메시지의 길이가 모두 '1'로 설정되었기 때문에 검증용 메시지임을 확인할 수 있다.
S1116 단계에서, TPM 처리부는, 수신된 검증용 응답 메시지를, RVM 처리부로 전달할 수 있다. 그리고, S1117 단계에서, RVM 처리부는, 수신된 검증용 응답 메시지에 포함된 timestamp 정보를 이용해서 latency를 측정할 수 있다. 만약 송신측과 수신측이 시간 동기화를 완료한 상태인 경우, 송신측에서 수신측까지의 latency와 수신측에서 송신측까지의 latency를 모두 계산할 수 있다. 반면 송신측과 수신측이 시간 동기화를 완료하지 않은 경우에는 RTT를 계산할 수 있다. 정확한 계산을 위해서는 송신측과 수신측이 시간 동기화를 완료할 필요가 있다.
다음으로, S1118 단계에서, RVM 처리부는, 성능 검증 결과를 CPM 처리부로 전달할 수 있다. 그리고, S1119 단계에서, RVM 처리부는, lower 및 upper interval 값을 이용해서 주기적으로 latency를 측정하고, 그 결과를 CPM 처리부로 전달할 수 있다(S1120).
도 12는 본 개시의 일 실시예에 따른 어플리케이션 기반의 데이터 전송 방법 및 장치를 실행하는 컴퓨팅 시스템을 예시하는 블록도이다.
도 12를 참조하면, 컴퓨팅 시스템(1000)은 버스(1200)를 통해 연결되는 적어도 하나의 프로세서(1100), 메모리(1300), 사용자 인터페이스 입력 장치(1400), 사용자 인터페이스 출력 장치(1500), 스토리지(1600), 및 네트워크 인터페이스(1700)를 포함할 수 있다.
프로세서(1100)는 중앙 처리 장치(CPU) 또는 메모리(1300) 및/또는 스토리지(1600)에 저장된 명령어들에 대한 처리를 실행하는 반도체 장치일 수 있다. 메모리(1300) 및 스토리지(1600)는 다양한 종류의 휘발성 또는 불휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리(1300)는 ROM(Read Only Memory) 및 RAM(Random Access Memory)을 포함할 수 있다.
따라서, 본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서(1100)에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM과 같은 저장 매체(즉, 메모리(1300) 및/또는 스토리지(1600))에 상주할 수도 있다. 예시적인 저장 매체는 프로세서(1100)에 커플링되며, 그 프로세서(1100)는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서(1100)와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로(ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.
본 개시의 예시적인 방법들은 설명의 명확성을 위해서 동작의 시리즈로 표현되어 있지만, 이는 단계가 수행되는 순서를 제한하기 위한 것은 아니며, 필요한 경우에는 각각의 단계가 동시에 또는 상이한 순서로 수행될 수도 있다. 본 개시에 따른 방법을 구현하기 위해서, 예시하는 단계에 추가적으로 다른 단계를 포함하거나, 일부의 단계를 제외하고 나머지 단계를 포함하거나, 또는 일부의 단계를 제외하고 추가적인 다른 단계를 포함할 수도 있다.
본 개시의 다양한 실시 예는 모든 가능한 조합을 나열한 것이 아니고 본 개시의 대표적인 양상을 설명하기 위한 것이며, 다양한 실시 예에서 설명하는 사항들은 독립적으로 적용되거나 또는 둘 이상의 조합으로 적용될 수도 있다.
또한, 본 개시의 다양한 실시 예는 하드웨어, 펌웨어(firmware), 소프트웨어, 또는 그들의 결합 등에 의해 구현될 수 있다. 하드웨어에 의한 구현의 경우, 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 범용 프로세서(general processor), 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
본 개시의 범위는 다양한 실시 예의 방법에 따른 동작이 장치 또는 컴퓨터 상에서 실행되도록 하는 소프트웨어 또는 머신-실행가능한 명령들(예를 들어, 운영체제, 애플리케이션, 펌웨어(firmware), 프로그램 등), 및 이러한 소프트웨어 또는 명령 등이 저장되어 장치 또는 컴퓨터 상에서 실행 가능한 비-일시적 컴퓨터-판독가능 매체(non-transitory computer-readable medium)를 포함한다.

Claims (10)

  1. 데이터 전송 장치에 있어서,
    어플리케이션 수행을 위한 어플리케이션 데이터를 생성하는 어플리케이션 처리부와,
    상기 어플리케이션 데이터로부터, 상기 어플리케이션 수행을 위해 요구되는 네트워크 연결 정보 및 네트워크 성능 정보 중 적어도 하나를 포함하는 전송 서비스 정보를 확인하고, 상기 전송 서비스 정보를 기반으로 네트워크 환경을 설정하는 전송 서비스 처리부와,
    상기 네트워크 환경 및 전송 프로토콜(Transport Protocol)을 기반으로, 상기 어플리케이션 데이터를 전송하기 위한 전송 프로토콜 데이터를 생성 및 전송하는 전송 처리부를 포함하는 어플리케이션 기반의 데이터 전송 장치.
  2. 제1항에 있어서,
    상기 전송 서비스 처리부는,
    네트워크 연결 정보 및 네트워크 속성을 관리하는 CPM(Connection & Property Manager) 처리부,
    상기 어플리케이션 수행을 위해 요구되는 네트워크 연결 정보 및 네트워크 성능 정보를 만족하는지 여부를 검증하는 RVM(Requirement Verification Manager) 처리부,
    네트워크 성능을 설정하는 NCM(Network Capability Manager) 처리부,
    메시지를 변형하는 MTM(Message Translation Manager) 처리부,
    전송 프로토콜을 선택하고 제어하는 TPM(Transport Protocol Manager) 처리부, 및
    로컬 시스템 성능을 설정하는 SCM(System Capability Manager) 처리부 중, 적어도 하나를 포함하는 어플리케이션 기반의 데이터 전송 장치.
  3. 제1항에 있어서,
    상기 전송 서비스 처리부는,
    네트워크 정책을 관리하는 네트워크 정책 관리 서버로부터, 상기 네트워크 환경에 대한 정보를 확인 및 관리하는 어플리케이션 기반의 데이터 전송 장치.
  4. 제1항에 있어서,
    상기 전송 서비스 처리부는,
    전체 경로에서 소요되는 제1지연시간(latency)과, 로컬 시스템에서 소요되는 제2지연시간(latency)을 확인하고, 상기 제1 및 제2지연시간에 기초하여, 상기 네트워크 성능 정보를 확인하는 어플리케이션 기반의 데이터 전송 장치.
  5. 제4항에 있어서,
    상기 전송 서비스 처리부는,
    상기 제1지연시간 기준으로 제2지연시간의 비율을 확인하고, 상기 확인된 비율에 기초하여, 상기 네트워크 성능 정보를 확인하는 어플리케이션 기반의 데이터 전송 장치.
  6. 제4항에 있어서,
    상기 전송 서비스 처리부는,
    상기 전송 서비스 정보에서 요구되는 기준 지연시간을 확인하고, 상기 기준 지연시간과, 상기 제1 및 제2지연시간을 비교하여, 상기 네트워크 성능 정보를 확인하는 어플리케이션 기반의 데이터 전송 장치.
  7. 제1항에 있어서,
    상기 전송 서비스 처리부는,
    상기 전송 프로토콜(Transport Protocol)에 대한 속성을 확인하고, 상기 확인된 속성을 만족하는 전송 프로토콜을 확인하는 어플리케이션 기반의 데이터 전송 장치.
  8. 제7항에 있어서,
    상기 전송 서비스 처리부는,
    상기 확인된 속성을 만족하는 전송 프로토콜이 복수개 존재함에 대응하여, 상기 복수의 전송 프로토콜에 대한 우선순위를 확인하고, 상기 확인된 우선순위를 기반으로, 상기 전송 프로토콜을 결정하는 어플리케이션 기반의 데이터 전송 장치.
  9. 제7항에 있어서,
    상기 전송 프로토콜에 대한 속성은,
    신뢰도(reliability) 속성, 보안(security) 속성, 다중 스트리밍(multistreaming) 속성 중, 적어도 하나를 포함하는 어플리케이션 기반의 데이터 전송 장치.
  10. 데이터 전송 방법에 있어서,
    어플리케이션 수행을 위한 어플리케이션 데이터를 생성하는 과정과,
    상기 어플리케이션 데이터로부터, 상기 어플리케이션 수행을 위해 요구되는 네트워크 연결 정보 및 네트워크 성능 정보 중 적어도 하나를 포함하는 전송 서비스 정보를 확인하는 과정과,
    상기 전송 서비스 정보를 기반으로 네트워크 환경을 설정하는 과정과,
    상기 네트워크 환경 및 전송 프로토콜(Transport Protocol)을 기반으로, 상기 어플리케이션 데이터를 전송하기 위한 전송 프로토콜 데이터를 생성 및 전송하는 과정을 포함하는 어플리케이션 기반의 데이터 전송 방법.
KR1020220001424A 2022-01-05 2022-01-05 어플리케이션 기반의 데이터 전송 장치 및 방법 KR102656210B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220001424A KR102656210B1 (ko) 2022-01-05 2022-01-05 어플리케이션 기반의 데이터 전송 장치 및 방법
US17/836,651 US20230216938A1 (en) 2022-01-05 2022-06-09 Application-based data transport apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220001424A KR102656210B1 (ko) 2022-01-05 2022-01-05 어플리케이션 기반의 데이터 전송 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20230105862A true KR20230105862A (ko) 2023-07-12
KR102656210B1 KR102656210B1 (ko) 2024-04-09

Family

ID=86991247

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220001424A KR102656210B1 (ko) 2022-01-05 2022-01-05 어플리케이션 기반의 데이터 전송 장치 및 방법

Country Status (2)

Country Link
US (1) US20230216938A1 (ko)
KR (1) KR102656210B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120023341A (ko) * 2010-09-03 2012-03-13 홍익대학교 산학협력단 전술통신에서 우선순위 재조정을 통한 데이터 참조 시스템 및 그 운용 방법
KR20160004854A (ko) * 2014-07-04 2016-01-13 삼성전자주식회사 무선 통신 시스템에서 접속 계층을 통해 서비스 연결을 제공하는 장치 및 방법
KR20170045586A (ko) * 2015-10-19 2017-04-27 주식회사 케이티 네트워크 환경 적응형 미디어 서비스 제공 방법, 단말 및 시스템
KR20210098056A (ko) * 2020-01-31 2021-08-10 주식회사 케이티 네트워크 애플리케이션 서버 및 그 동작방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120023341A (ko) * 2010-09-03 2012-03-13 홍익대학교 산학협력단 전술통신에서 우선순위 재조정을 통한 데이터 참조 시스템 및 그 운용 방법
KR20160004854A (ko) * 2014-07-04 2016-01-13 삼성전자주식회사 무선 통신 시스템에서 접속 계층을 통해 서비스 연결을 제공하는 장치 및 방법
KR20170045586A (ko) * 2015-10-19 2017-04-27 주식회사 케이티 네트워크 환경 적응형 미디어 서비스 제공 방법, 단말 및 시스템
KR20210098056A (ko) * 2020-01-31 2021-08-10 주식회사 케이티 네트워크 애플리케이션 서버 및 그 동작방법

Also Published As

Publication number Publication date
US20230216938A1 (en) 2023-07-06
KR102656210B1 (ko) 2024-04-09

Similar Documents

Publication Publication Date Title
JP6603311B2 (ja) ブラウザによりローカルサービスアセンブリを呼び出すための方法、デバイス及びシステム
JP2017529793A5 (ko)
EP3101849A1 (en) Flow table entry generation method and device
KR102045974B1 (ko) 데이터 전송 방법, 장치, 및 시스템
CN109951546B (zh) 基于智能合约的事务请求处理方法、装置、设备和介质
JP7294578B2 (ja) ユーザプレーンのリルーティング方法および装置
EP2827553B1 (en) Rapid startup with dynamic reservation capabilities for network communication systems
WO2019022723A1 (en) TRANSPORTING CONTROL DATA IN NETWORK COMMUNICATIONS BASED ON A REPRESENTATIVE
WO2015035616A1 (zh) 跨网通信方法及装置
US20190342200A1 (en) Methods, systems, and computer readable media for multiple bidirectional forwarding detection (bfd) session optimization
WO2024021414A1 (zh) 数据传输
KR102656210B1 (ko) 어플리케이션 기반의 데이터 전송 장치 및 방법
WO2016154921A1 (zh) 一种数据业务的数据传输方法及装置
US8924520B2 (en) Method, remote access server and system for configuring a quality of service parameter
JP6569547B2 (ja) 通信方法
EP3414877B1 (en) Technique for transport protocol selection and setup of a connection between a client and a server
KR102580417B1 (ko) 메시지 전송 지연 관리 장치 및 방법
JP2014225169A (ja) データ配信システム、データ配信のためのデータ通信装置およびプログラム
KR20190114126A (ko) 메시지의 처리 완료 지연 시간을 기초로 스위치로의 메시지 송신을 제어하는 sdn 컨트롤러 및 그 방법
KR101730404B1 (ko) 네트워크 경로를 관리하는 방법 및 이를 수행하는 네트워크 엔티티
JP2012209839A (ja) セッション管理システム、セッション数確保方法およびセッション数確保プログラム
JP6840143B2 (ja) 通信システム
CN105591861A (zh) 一种标签交换路径lsp的创建方法及装置
JP2017033221A (ja) Apiリクエスト処理装置、apiリクエスト処理方法およびapiリクエスト処理プログラム
EP3435629B1 (en) Transport of control data in proxy-based network communications

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant