KR20240065680A - 데드라인 인식 기반 오브젝트 전송 방법 및 장치 - Google Patents

데드라인 인식 기반 오브젝트 전송 방법 및 장치 Download PDF

Info

Publication number
KR20240065680A
KR20240065680A KR1020220146710A KR20220146710A KR20240065680A KR 20240065680 A KR20240065680 A KR 20240065680A KR 1020220146710 A KR1020220146710 A KR 1020220146710A KR 20220146710 A KR20220146710 A KR 20220146710A KR 20240065680 A KR20240065680 A KR 20240065680A
Authority
KR
South Korea
Prior art keywords
packet
time
packets
transmitting
retransmission
Prior art date
Application number
KR1020220146710A
Other languages
English (en)
Inventor
윤호선
김태연
문성
홍승우
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020220146710A priority Critical patent/KR20240065680A/ko
Priority to US18/221,948 priority patent/US20240154735A1/en
Publication of KR20240065680A publication Critical patent/KR20240065680A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1854Scheduling and prioritising arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/188Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1848Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1642Formats specially adapted for sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1861Physical mapping arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1864ARQ related signaling
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

응용에서 의미가 있고 패킷들로 구성된 오브젝트를 전송하는 데드라인 인식 기반 오브젝트 전송 방법 및 장치가 개시된다. 오브젝트 전송 방법은, 송신 노드로부터 오브젝트를 구성하는 복수의 패킷들을 받는 단계, 복수의 패킷들의 전송을 위한 제어 메시지를 통해 송신 노드와 수신 노드 간 네트워크 지연시간을 계산하는 단계, 복수의 패킷들 중 특정 패킷이 손실됨을 감지하는 단계, 특정 패킷의 재전송에 소요되는 재전송 소요시간을 계산하는 단계, 재전송 소요시간과 미리 계산된 데드라인을 비교하는 단계, 및 재전송 소요시간이 데드라인보다 작으면, 특정 패킷의 재전송 관련 정보를 포함한 NACK 메시지를 송신 노드로 전송하는 단계를 포함한다.

Description

데드라인 인식 기반 오브젝트 전송 방법 및 장치{METHOD AND APPARATUS FOR TRANSMITTING OBJECTS BASED ON DEADLINE-AWARE}
본 발명은 응용에서 의미가 있는 하나 이상의 패킷으로 구성된 오브젝트(object) 단위로 데이터를 전송하는 기술에 관한 것으로, 보다 상세하게는, 특정 오브젝트에 포함된 패킷이 손실된 경우, 통신 환경에 의해 정해지는 데드라인 시간 내에 해당 패킷을 재전송할 수 있는지 여부를 계산하여 해당 데이터를 전송하거나 폐기하는, 오브젝트 전송 방법 및 장치에 관한 것이다.
전통적인 전송 프로토콜인 TCP(transmission control protocol)는 패킷을 수신측까지 신뢰성 있게 전달하기 위해서 재전송 방식을 사용하고 있다. 하지만 손실이 발생한 모든 패킷을 타임아웃(timeout)이 발생할 때까지 단순히 재전송하는 것은 응용과 네트워크 모두에게 부정적인 영향을 줄 수 있다. 이에 따라 선택적으로 재전송을 진행하는 방법들에 대한 연구가 활발히 진행되고 있다.
비디오 및 오디오 데이터와 같은 미디어 데이터가 증가하면서 하나 이상의 패킷으로 구성된 응용에게 의미 있는 오브젝트(object) 단위로 데이터를 교환할 필요성이 증가하고 있다. 예를 들면 하나의 영상 화면이 응용에게 의미가 있는 오브젝트가 되고, 이러한 오브젝트는 하나 이상의 패킷들로 구성될 수 있다. 수신측 응용은 오브젝트를 구성하는 모든 패킷들을 수신해야만 하나의 영상을 출력할 수 있으며 모든 패킷들이 수신되지 않은 경우에는 해당 오브젝트를 활용할 수 없게 된다.
또한, 화상 회의, 메타 버스, 게임 등과 같은 실시간성을 요구하는 서비스는 전달되는 데이터가 정해진 시간 내에 수신자에게 전달될 필요가 있다. 예를 들면 비디오 스트림이 실시간으로 수신자의 화면에 출력될 필요가 있는 경우, 너무 늦게 도착한 오브젝트는 화면에 출력할 수 없게 된다. 즉, 단순히 수신측까지 오브젝트를 전달하는 것뿐만 아니라 정해진 시간 내에 오브젝트를 구성하는 모든 패킷들이 수신측에 도달해야만 하며, 만약 정해진 시간 내에 오브젝트를 구성하는 모든 패킷이 수신측에게 전달되지 못하는 경우 해당 오브젝트는 폐기된다.
TCP, QUIC 등과 같은 전송 프로토콜들은 패킷 손실을 복구하기 위해서 재전송 메커니즘을 사용하고 있다. 기존의 재전송 방식은 단순히 패킷 손실이 발생하면 정해진 타임아웃 시간 동안 수신측에서 데이터를 수신할 때까지 재전송한다. 이렇게 단순히 모든 패킷을 재전송하는 방식은 성능뿐만 아니라 실시간성 서비스를 지원하기에는 문제가 있다.
본 발명은 전술한 종래 기술의 문제를 해결하기 위해 도출된 것으로, 본 발명의 목적은 하나 이상의 패킷으로 구성된 응용에게 의미있는 데이터를 지칭하는 오브젝트를 통신 환경에 의해 정해지는 데드라인 시간 내에 수신측까지 전송 또는 재전송할 수 있는지 여부를 확인한 후에 전송 혹은 재전송할 패킷을 처리할 수 있는, 오브젝트 전송 방법 및 장치를 제공하는데 있다.
본 발명의 다른 목적은 오브젝트(object)의 데이터 패킷들 모두가 데드라인 시간 내에 수신측에 도달할 수 있는지 여부를 판단한 후에 전송 절차나 재전송 절차를 송신측에 요청하는, 오브젝트 전송 방법 및 장치를 제공하는데 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 측면에 따른 데드라인 인식 기반 오브젝트 전송 방법은, 수신 노드의 응용에서 의미가 있는, 패킷들로 구성된 오브젝트(object)를 전송하는 오브젝트 전송 방법으로서, 송신 노드로부터 오브젝트를 구성하는 복수의 패킷들을 받는 단계; 상기 복수의 패킷들의 전송을 위한 제어 메시지를 통해 상기 송신 노드와 상기 수신 노드 간의 네트워크 지연시간을 계산하는 단계-상기 네트워크 지연시간은 상기 오브젝트의 전송 지연에 대해 결정되는 데드라인을 계산하는데 이용됨-; 상기 복수의 패킷들 중 특정 패킷이 손실됨을 감지하는 단계; 상기 특정 패킷의 재전송에 소요되는 재전송 소요시간을 계산하는 단계; 상기 재전송 소요시간과 상기 데드라인을 비교하는 단계; 및 상기 재전송 소요시간이 상기 데드라인보다 작으면, 상기 특정 패킷의 재전송 관련 정보를 포함한 NACK 메시지를 상기 송신 노드로 전송하는 단계를 포함한다.
상기 오브젝트 전송 방법은, 상기 NACK 메시지가 도착한 시간에서 상기 오브젝트의 첫 번째 패킷을 전송한 시간을 뺀 기간에 기초하여 상기 특정 패킷의 재전송에 소요되는 재전송 소요시간을 상기 송신 노드에서 다시 계산하는 단계를 더 포함할 수 있다.
상기 오브젝트 전송 방법은, 상기 다시 계산한 재전송 소요시간이 상기 데드라인보다 작을 때, 상기 송신 노드로부터 상기 특정 패킷을 받는 단계를 더 포함할 수 있다.
상기 오브젝트 전송 방법은, 상기 송신 노드가 상기 NACK 메시지를 상기 오브젝트의 마지막 패킷을 전송하기 전에 받았는지, 상기 마지막 패킷을 전송한 후에 받았는지를 판단하는 단계를 더 포함할 수 있다. 상기 NACK 메시지를 상기 오브젝트의 마지막 패킷을 상기 수신 노드로 전송한 후에 받은 경우, 상기 재전송 소요시간을 다시 계산하는 단계는 상기 NACK 메시지가 도착한 시간에서 상기 마지막 패킷을 전송한 시간을 뺀 시간을 상기 재전송 소요시간에 추가로 더해질 수 있다.
상기 복수의 패킷들 각각의 데이터 패킷 구조는 구분 필드를 포함할 수 있다. 상기 구분 필드는 해당 패킷이 상기 오브젝트의 복수의 패킷들 중 처음인지, 중간인지, 마지막인지, 또는 해당 패킷이 하나의 오브젝트인지를 나타내는 구분 값을 가질 수 있다.
상기 복수의 패킷들 각각의 데이터 패킷 구조는 남은 패킷 카운터 필드를 더 포함할 수 있다. 상기 남은 패킷 카운터 필드는 상기 오브젝트의 복수의 패킷들 중 현재 전송하는 패킷 이후에 남아 있는 패킷의 개수를 나타낼 수 있다.
상기 오브젝트 전송 방법은, 상기 수신 노드와 송신 노드는 제어 메시지를 통해 전송 속도 또는 대역폭에 대한 정보와 바운디드 지연시간에 대한 정보를 공유하는 단계를 더 포함할 수 있다.
상기 오브젝트 전송 방법은, 상기 복수의 패킷들을 전송하는데 소용되는 오브젝트 전송 지연시간, 바운디드 지연시간 및 상기 네트워크 지연시간의 합으로 상기 데드라인을 계산하는 단계를 더 포함할 수 있다. 상기 재전송 소요시간이 상기 데드라인보다 작을 때, 상기 재전송 지연시간은 상기 바운디드 지연시간보다 작다.
상기 오브젝트 전송 방법은, 상기 송신 노드가 상기 수신 노드로 패킷을 전달할 때 발생하는 제1 네트워크 지연시간을 계산하는 단계, 및 상기 수신 노드가 상기 송신 노드로 패킷을 전달할 때 발생하는 제2 네트워크 지연시간을 계산하는 단계를 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 측면에 따른 데드라인 인식 기반 오브젝트 전송 방법은, 응용에서 사용되고 패킷들로 구성된 오브젝트(object)를 전송하는 송신 노드에 의한 오브젝트 전송 방법으로서, 오브젝트를 구성하는 복수의 패킷들을 수신 노드로 전송하는 단계; 상기 복수의 패킷들의 전송을 위한 제어 메시지를 통해 상기 송신 노드와 상기 수신 노드 간의 네트워크 지연시간을 계산하는 단계-상기 네트워크 지연시간은 상기 오브젝트의 전송 지연에 대해 결정되는 데드라인을 계산하는데 이용됨-; 상기 복수의 패킷들 중 특정 패킷이 손실됨을 감지한 상기 수신 노드로부터 NACK 메시지를 받는 단계; 상기 NACK 메시지가 도착한 시간에서 상기 오브젝트의 첫 번째 패킷을 전송한 시간을 뺀 기간에 기초하여 상기 특정 패킷의 재전송에 소요되는 재전송 소요시간을 계산하는 단계; 및 상기 계산한 재전송 소요시간이 상기 데드라인보다 작을 때, 상기 특정 패킷을 상기 수신 노드로 재전송하는 단계를 포함한다.
상기 오브젝트 전송 방법은, 상기 복수의 패킷들을 전송하는데 소용되는 오브젝트 전송 지연시간, 상기 바운디드 지연시간 및 상기 네트워크 지연시간의 합으로 상기 데드라인을 계산하는 단계를 더 포함할 수 있다. 상기 재전송 소요시간이 상기 데드라인보다 작을 때, 상기 재전송 지연시간은 상기 바운디드 지연시간보다 작다.
상기 오브젝트 전송 방법은, 상기 NACK 메시지를 상기 오브젝트의 마지막 패킷을 전송하기 전에 받았는지, 상기 마지막 패킷을 전송한 후에 받았는지를 판단하는 단계를 더 포함할 수 있다. 상기 NACK 메시지를 상기 오브젝트의 마지막 패킷을 상기 수신 노드로 전송한 후에 받은 경우, 상기 재전송 소요시간을 다시 계산하는 단계는 상기 NACK 메시지가 도착한 시간에서 상기 마지막 패킷을 전송한 시간을 뺀 시간을 상기 재전송 소요시간에 추가로 더하도록 구성될 수 있다.
상기 수신 노드는, 상기 특정 패킷의 재전송에 소요되는 재전송 소요시간을 계산하고, 재전송 소요시간과 미리 계산된 데드라인을 비교하고, 재전송 소요시간이 데드라인보다 작으면, 상기 특정 패킷의 재전송 관련 정보를 포함한 NACK 메시지를 상기 송신 노드로 전송할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 또 다른 측면에 따른 데드라인 인식 기반 오브젝트 전송 장치는, 응용에서 사용되고 패킷들로 구성된 오브젝트(object)를 전송하거나 수신하는 오브젝트 전송 장치로서, 데이터를 송수신하기 원하는 응용 프로그램으로서 전송 프로토콜을 포함하는 응용(application); 상기 응용과 외부 모듈 사이의 통신을 지원하는 어플리케이션 프로그래밍 인터페이스(application programming interface, API); 상기 응용으로부터의 데이터를 하나 이상의 패킷으로 구성된 오브젝트 형태로 변환하는 오브젝트 핸들러(object handler); 송신측과 수신측의 두 노드들 간 시간 동기화와 데드라인을 계산하고, 패킷을 전송하거나 재전송할 수 있는지 여부를 판단하는 데드라인 핸들러(deadline handler); 및 미리 정해진 전송 속도로 패킷을 전송하는 오브젝트 송신기(object sender)를 포함한다.
상기 패킷의 데이터 패킷 구조는 구분 필드 및 남은 패킷 카운터 필드를 포함한다. 상기 구분 필드는 해당 패킷이 상기 오브젝트의 복수의 패킷들 중 처음인지, 중간인지, 마지막인지, 또는 해당 패킷이 하나의 오브젝트인지를 나타내는 구분 값을 가질 수 있다. 그리고 상기 남은 패킷 카운터 필드는 상기 오브젝트의 복수의 패킷들 중 현재 전송하는 패킷 이후에 남아 있는 패킷의 개수를 나타낼 수 있다.
상기 오브젝트 전송 장치는, 네트워크를 통해 패킷을 수신하는 오브젝트 수신기(object receiver)를 더 포함할 수 있다. 이때, 상기 오브젝트 핸들러는 상기 오브젝트 수신기로부터 수신한 패킷을 상기 응용에게 전달할 수 있는 오브젝트 형태로 변형할 수 있다.
본 발명에 의하면, 지연시간에 대한 데드라인(deadline) 개념을 적용해서 오브젝트(object) 단위로 데이터를 처리할 때 데드라인에 대해 정의된 계산 방법에 따라 각 노드에서 데드라인을 계산하고, 이를 토대로 오브젝트의 데이터 패킷의 전송이나 재전송 또는 수신이나 재수신 가능 여부를 판단하고, 이러한 판단에 따라 데이터 패킷의 전송/재전송을 진행하거나 취소할 수 있다. 이에 의하면, 송수신 장치 및 네트워크의 자원 낭비를 최소화할 수 있다. 또한, 계산된 데드라인을 데이터 처리, 스케쥴링, 재전송 등과 같은 다양한 데이터 처리 분야에 확장 적용할 수 있다.
또한, 데드라인을 계산하기 위해서 두 노드들 간에 시간 동기화 및 네트워크 지연을 측정할 필요가 있다. 이와 같이, 본 발명에 의하면, 두 노드들 간에 시간을 동기화하기 위한 절차를 포함할 수 있고, 또한 시간 동기화 과정에서 각 방향별로 네트워크 지연을 측정할 수 있는 절차를 포함할 수 있으며, 이러한 절차들을 통해 시간 동기화가 요구되는 전송 프로토콜 등과 같은 다양한 분야에서 효과적으로 활용할 수 있다.
또한, 본 발명에 의하면, 데드라인 개념을 적용한 오브젝트 재전송 기술을 제공할 수 있다. 즉, 단순히 패킷을 수신측에서 수신할 때까지 재전송하는 기존 방법은 실시간 서비스에 적합하지 않으며 네트워크 혼잡 상황에서 네트워크의 부담을 증가시키게 된다. 한편, 본 발명에서는 실시간 서비스에 적합한 전송 및 재전송 방식으로서 통신 환경에서 오브젝트의 전송 또는 재전송에 대한 소요 시간의 데드라인을 계산하고, 오브젝트의 정상적인 전송 또는 수신 가능 여부를 예측하고, 그에 의해 오브젝트를 구성하는 패킷의 전송이나 재전송 또는 전송취소를 선택적으로 신뢰성 높게 처리할 수 있고, 송수신 장치 및 네트워크의 자원 낭비를 줄일 수 있다. 이러한 본 발명의 구성은 다양한 선택적인 재전송(selective retransmission) 방식들과 연계가능한 다양한 분야에 효과적으로 활용될 수 있다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면들은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 사상을 예시한다.
도 1은 통신 시스템의 일 실시예를 도시한 개념도이다.
도 2는 통신 시스템을 구성하는 통신 노드의 일 실시예를 도시한 블록도이다.
도 3은 본 발명의 일실시예에 따른 데드라인 인식 기반 오브젝트 전송 장치를 위한 아키텍처를 나타낸 블록도이다.
도 4는 송신측에서 수신측으로 오브젝트를 전송하는데 소요되는 지연시간(latency)에 대해 설명하기 위한 예시도이다.
도 5는 도 3의 오브젝트 전송 장치에서 오브젝트를 전송하는 절차와 오브젝트를 전송하는데 소요되는 지연시간을 설명하기 위한 예시도이다.
도 6은 도 3의 오브젝트 전송 장치와 오브젝트 수신 장치를 포함한 두 통신 노드들 간의 시간 동기화 및 네트워크 지연시간을 계산하는 과정을 설명하기 위한 예시도이다.
도 7은 두 통신 노드들 간의 데이터 송수신에 채용할 수 있는 데이터 패킷 구조를 나타낸 예시도이다.
도 8은 두 통신 노드들에서 지연시간에 대한 데드라인을 계산하는 과정을 설명하기 위한 흐름도이다.
도 9는 두 통신 노드들 간에 12개의 패킷으로 구성된 오브젝트의 재전송 절차를 설명하기 위한 예시도이다.
도 10은 두 통신 노드들 간에 12개의 패킷으로 구성된 오브젝트의 재전송 절차의 다른 형태를 설명하기 위한 예시도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. '및/또는'이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
본 출원의 실시예들에서, 'A 및 B 중에서 적어도 하나'는 'A 또는 B 중에서 적어도 하나' 또는 'A 및 B 중 하나 이상의 조합들 중에서 적어도 하나'를 의미할 수 있다. 또한, 본 출원의 실시예들에서, 'A 및 B 중에서 하나 이상'은 'A 또는 B 중에서 하나 이상' 또는 'A 및 B 중 하나 이상의 조합들 중에서 하나 이상'을 의미할 수 있다.
어떤 구성요소가 다른 구성요소에 '연결되어' 있다거나 '접속되어' 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 '직접 연결되어' 있다거나 '직접 접속되어'있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, '포함한다' 또는 '가진다' 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 통신 시스템의 일 실시예를 도시한 개념도이다.
도 1을 참조하면, 통신 시스템(100)은 복수의 통신 노드들(110-1, 110-2, 110-3, 120-1, 120-2, 130-1, 130-2, 130-3, 130-4, 130-5, 130-6)을 포함할 수 있다. 복수의 통신 노드들은 3GPP(3rd generation partnership project) 표준에서 규정된 4G 통신(예를 들어, LTE(long term evolution), LTE-A(advanced)), 5G 통신(예를 들어, NR(new radio)) 등을 지원할 수 있다. 4G 통신은 6GHz 이하의 주파수 대역에서 수행될 수 있고, 5G 통신은 6GHz 이하의 주파수 대역뿐만 아니라 6GHz 이상의 주파수 대역에서 수행될 수 있다.
예를 들어, 4G 통신 및 5G 통신을 위해 복수의 통신 노드들은 CDMA(code division multiple access) 기반의 통신 프로토콜, WCDMA(wideband CDMA) 기반의 통신 프로토콜, TDMA(time division multiple access) 기반의 통신 프로토콜, FDMA(frequency division multiple access) 기반의 통신 프로토콜, OFDM(orthogonal frequency division multiplexing) 기반의 통신 프로토콜, Filtered OFDM 기반의 통신 프로토콜, CP(cyclic prefix)-OFDM 기반의 통신 프로토콜, DFT-s-OFDM(discrete Fourier transform-spread-OFDM) 기반의 통신 프로토콜, OFDMA(orthogonal frequency division multiple access) 기반의 통신 프로토콜, SC(single carrier)-FDMA 기반의 통신 프로토콜, NOMA(Non-orthogonal Multiple Access), GFDM(generalized frequency division multiplexing) 기반의 통신 프로토콜, FBMC(filter bank multi-carrier) 기반의 통신 프로토콜, UFMC(universal filtered multi-carrier) 기반의 통신 프로토콜, SDMA(Space Division Multiple Access) 기반의 통신 프로토콜 등을 지원할 수 있다.
또한, 통신 시스템(100)은 코어 네트워크(core network)를 더 포함할 수 있다. 통신 시스템(100)이 4G 통신을 지원하는 경우, 코어 네트워크는 S-GW(serving-gateway), P-GW(PDN(packet data network)-gateway), MME(mobility management entity) 등을 포함할 수 있다. 통신 시스템(100)이 5G 통신을 지원하는 경우, 코어 네트워크는 UPF(user plane function), SMF(session management function), AMF(access and mobility management function) 등을 포함할 수 있다.
한편, 통신 시스템(100)을 구성하는 복수의 통신 노드들(110-1, 110-2, 110-3, 120-1, 120-2, 130-1, 130-2, 130-3, 130-4, 130-5, 130-6) 각각은 다음과 같은 구조를 가질 수 있다.
도 2는 통신 시스템을 구성하는 통신 노드의 일 실시예를 도시한 블록도이다.
도 2를 참조하면, 통신 노드(200)는 적어도 하나의 프로세서(210), 메모리(220) 및 네트워크와 연결되어 통신을 수행하는 송수신 장치(230)를 포함할 수 있다. 또한, 통신 노드(200)는 입력 인터페이스 장치(240), 출력 인터페이스 장치(250), 저장 장치(260) 등을 더 포함할 수 있다. 통신 노드(200)에 포함된 각각의 구성 요소들은 버스(bus)(270)에 의해 연결되어 서로 통신을 수행할 수 있다.
다만, 통신 노드(200)에 포함된 각각의 구성요소들은 공통 버스(270)가 아니라, 프로세서(210)를 중심으로 개별 인터페이스 또는 개별 버스를 통하여 연결될 수도 있다. 예를 들어, 프로세서(210)는 메모리(220), 송수신 장치(230), 입력 인터페이스 장치(240), 출력 인터페이스 장치(250) 및 저장 장치(260) 중에서 적어도 하나와 전용 인터페이스를 통하여 연결될 수도 있다.
프로세서(210)는 메모리(220) 및 저장 장치(260) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(210)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 메모리(220) 및 저장 장치(260) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(220)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나로 구성될 수 있다.
다시 도 1을 참조하면, 통신 시스템(100)은 복수의 기지국들(base stations)(110-1, 110-2, 110-3, 120-1, 120-2), 복수의 단말들(130-1, 130-2, 130-3, 130-4, 130-5, 130-6)을 포함할 수 있다. 기지국(110-1, 110-2, 110-3, 120-1, 120-2) 및 단말(130-1, 130-2, 130-3, 130-4, 130-5, 130-6)을 포함하는 통신 시스템(100)은 "액세스 네트워크"로 지칭될 수 있다. 제1 기지국(110-1), 제2 기지국(110-2) 및 제3 기지국(110-3) 각각은 매크로 셀(macro cell)을 형성할 수 있다. 제4 기지국(120-1) 및 제5 기지국(120-2) 각각은 스몰 셀(small cell)을 형성할 수 있다. 제1 기지국(110-1)의 셀 커버리지(cell coverage) 내에 제4 기지국(120-1), 제3 단말(130-3) 및 제4 단말(130-4)이 속할 수 있다. 제2 기지국(110-2)의 셀 커버리지 내에 제2 단말(130-2), 제4 단말(130-4) 및 제5 단말(130-5)이 속할 수 있다. 제3 기지국(110-3)의 셀 커버리지 내에 제5 기지국(120-2), 제4 단말(130-4), 제5 단말(130-5) 및 제6 단말(130-6)이 속할 수 있다. 제4 기지국(120-1)의 셀 커버리지 내에 제1 단말(130-1)이 속할 수 있다. 제5 기지국(120-2)의 셀 커버리지 내에 제6 단말(130-6)이 속할 수 있다.
여기서, 복수의 기지국들(110-1, 110-2, 110-3, 120-1, 120-2) 각각은 노드B(NodeB), 고도화 노드B(evolved NodeB), BTS(base transceiver station), 무선 기지국(radio base station), 무선 트랜시버(radio transceiver), 액세스 포인트(access point), 액세스 노드(node), RSU(road side unit), RRH(radio remote head), TP(transmission point), TRP(transmission and reception point), eNB, gNB 등으로 지칭될 수 있다.
복수의 단말들(130-1, 130-2, 130-3, 130-4, 130-5, 130-6) 각각은 UE(user equipment), 터미널(terminal), 액세스 터미널(access terminal), 모바일 터미널(mobile terminal), 스테이션(station), 가입자 스테이션(subscriber station), 모바일 스테이션(mobile station), 휴대 가입자 스테이션(portable subscriber station), 노드(node), 다바이스(device), IoT(Internet of Thing) 장치, 탑재 장치(mounted module/device/terminal 또는 on board device/terminal 등) 등으로 지칭될 수 있다.
한편, 복수의 기지국들(110-1, 110-2, 110-3, 120-1, 120-2) 각각은 서로 다른 주파수 대역에서 동작할 수 있고, 또는 동일한 주파수 대역에서 동작할 수 있다. 복수의 기지국들(110-1, 110-2, 110-3, 120-1, 120-2) 각각은 아이디얼 백홀 링크(ideal backhaul link) 또는 논(non)-아이디얼 백홀 링크를 통해 서로 연결될 수 있고, 아이디얼 백홀 링크 또는 논-아이디얼 백홀 링크를 통해 서로 정보를 교환할 수 있다. 복수의 기지국들(110-1, 110-2, 110-3, 120-1, 120-2) 각각은 아이디얼 백홀 링크 또는 논-아이디얼 백홀 링크를 통해 코어 네트워크와 연결될 수 있다. 복수의 기지국들(110-1, 110-2, 110-3, 120-1, 120-2) 각각은 코어 네트워크로부터 수신한 신호를 해당 단말(130-1, 130-2, 130-3, 130-4, 130-5, 130-6)에 전송할 수 있고, 해당 단말(130-1, 130-2, 130-3, 130-4, 130-5, 130-6)로부터 수신한 신호를 코어 네트워크에 전송할 수 있다.
전술한 본 실시예에서 기지국(또는, 셀)은 노드B(NodeB), 고도화 노드B(evolved NodeB), BTS(base transceiver station), 무선 기지국(radio base station), 무선 트랜시버(radio transceiver), 액세스 포인트(access point), 액세스 노드(node), RSU(road side unit), RRH(radio remote head), TP(transmission point), TRP(transmission & reception point), 또는 gNB일 수 있다. 또한, 기지국(또는, 셀)은 기능 분리가 적용된 CU 노드 또는 DU 노드일 수 있다.
또한, 본 실시예에서 단말은 UE, 터미널(terminal), 액세스 터미널(access terminal), 모바일 터미널(mobile terminal), 스테이션(station), 가입자 스테이션(subscriber station), 모바일 스테이션(mobile station), 휴대 가입자 스테이션(portable subscriber station), 노드(node), 다바이스(device), IoT(Internet of Thing) 장치, 또는 탑재 장치(mounted module/device/terminal 또는 on board device/terminal)일 수 있다.
도 3은 본 발명의 일실시예에 따른 데드라인 인식 기반 오브젝트 전송 장치를 위한 아키텍처를 나타낸 블록도이다.
도 3을 참조하면, 오브젝트 전송 장치(300)는 응용(application, 310), 어플리케이션 프로그래밍 인터페이스(application programming interface, API, 320), 오브젝트 핸들러(object handler, 330), 데드라인 핸들러(deadline handler, 340), 오브젝트 송신기(object sender, 350) 및 오브젝트 수신기(object receiver, 360)를 구비할 수 있다.
응용(310)은 데이터를 송수신하기 원하는 응용 프로그램을 의미하며, 서비스를 제공하는 일반적인 의미뿐만 아니라 전송 프로토콜과 같이 본 실시예에서 제안하는 오브젝트 처리 모듈을 활용하는 소프트웨어를 지칭할 수 있다.
API(320)는 응용(310)에게 공개되는 응용 프로그램용 인터페이스를 나타낸다. API(320)는 응용(310)과 외부 모듈이 서로 통신할 수 있도록 미리 설정된 절차나 프로토콜에 따라 이들을 서로 연결하거나 이들 사이의 신호 또는 메시지 송수신을 지원할 수 있다.
오브젝트 핸들러(330)는 오브젝트를 처리하기 위한 모듈로써 응용(310)으로부터 전송한 데이터를 수신하면 하나 이상의 패킷으로 구성된 오브젝트 형태로 변환한다. 또한, 오브젝트 핸들러(330)는 오브젝트 수신기(360)로부터 수신한 패킷을 응용(310)에게 전달할 수 있는 오브젝트 형태로 변형하는 기능을 수행한다.
데드라인 핸들러(340)는 두 노드들 간 시간 동기화와 데드라인을 계산하고, 패킷을 전송하거나 재전송할 수 있는지 여부를 판단한다.
오브젝트 송신기(350)는 정해진 전송 속도(sending rate)에 따라 패킷을 전송한다.
오브젝트 수신기(360)는 패킷을 수신하고, 필요한 경우 재전송 절차를 수행할 수 있다.
전술한 API(320), 오브젝트 핸들러(330), 데드라인 핸들러(340), 오브젝트 송신기(350) 및 오브젝트 수신기(360)는 오브젝트 처리 모듈 상에 일체로 탑재될 수 있으나, 이에 한정되지는 않는다.
한편, 전술한 오브젝트 전송 장치(300)는 오브젝트 수신 장치와 동일한 구성을 가질 수 있다. 또한, 오브젝트 전송 장치(300) 또는 오브젝트 수신 장치는 오브젝트 송수신 장치로 지칭될 수 있다.
도 4는 송신측에서 수신측으로 오브젝트를 전송하는데 소요되는 지연시간(latency)에 대해 설명하기 위한 예시도이다.
도 4를 참조하면, 송신 노드(sender, 410)는, 네트워크(430)를 통해 수신 노드(receiver, 420)로 오브젝트(490)를 전송할 때, 소요되는 시간 즉, 소요되는 지연시간(latency)을 계산할 수 있다. 오브젝트(490)는 적어도 하나 이상의 패킷(492)으로 구성될 수 있다. 또한, 수신 노드(420)는 수신된 오브젝트(490)에 오류가 있는 경우, 오브젝트(490)의 재전송을 요청하기 위해 소요되는 지연시간을 계산할 수 있다. 수신측 응용(450)은 오브젝트(490)를 구성하는 모든 패킷들을 수신한 경우에만 해당 오브젝트를 처리하며, 모든 패킷들을 수신하지 못한 경우에는 해당 오브젝트를 폐기한다.
송신 노드(410)는 오브젝트를 전송하는 송신측의 오브젝트 전송 장치에 대응할 수 있고, 수신 노드(420)는 오브젝트를 수신하는 수신측의 오브젝트 수신 장치에 대응할 수 있다.
즉, 송신 노드(410)에서 오브젝트를 전송하기 원하는 응용(440)(이하 '송신측 응용')의 오브젝트 전송 동작과 수신 노드(450)에서 오브젝트를 받아서 처리하기 원하는 응용(450)(이하 '수신측 응용')의 오브젝트 수신 동작 사이에는 노드에서의 지연시간인 오브젝트 전송 지연시간(object sending latency, 460) 및 바운디드 지연시간(bounded latency, 480)과, 네트워크 상의 지연시간인 네트워크 지연시간(network latency, 470)이 존재한다.
여기서, 오브젝트 전송 지연시간(460)은 오브젝트를 전송하는데 소요되는 지연시간을 나타낸다. 예를 들어, 10Mbit의 오브젝트를 1Gbps(bit per second)의 전송 속도로 전달하는 경우, 모든 오브젝트를 네트워크로 전송하는데 10㎳의 지연시간이 발생하며, 이 값이 오브젝트 전송 지연시간(460)이 된다.
네트워크 지연시간(470)은 오브젝트가 네트워크를 통과하는데 소요되는 시간을 의미한다.
바운디드 지연시간(480)은 수신 노드(420)의 응용(450)에게 오브젝트를 전달하기 전에 수신측 버퍼에서 기다리는 시간을 의미한다. 바운디드 지연시간(480)의 값을 크게 설정하면, 손실된 오브젝트를 복구하기 위한 재전송이나 순방향 오류 정정(forward error correction, FEC) 절차를 수행함으로써 높은 확률로 오브젝트를 수신측 응용(450)에게 전달할 수 있다. 다만, 바운디드 지연시간(480)의 값을 크게 설정하는 경우, 수신된 오브젝트가 수신측 응용(450)에게 전달되는 지연시간이 증가하기 때문에 실시간 특정을 갖는 응용에게는 적합하지 않다. 즉, 바운디드 지연시간(480)은 수신측 응용(450)의 특성이나 네트워크 상황 등을 고려해서 결정할 필요가 있다.
예를 들어, 도 4에 도시한 바와 같이, "01" 내지 "07"은 7개의 오브젝트(490)를 의미하며, 오브젝트 "01"은 이미 수신측 응용(450)에게 전달된 상태를 나타낸다. 4개의 패킷으로 구성된 오브젝트 "03"은 수신측 응용(450)에게 전달되기를 기다리는 상태이며, 5개의 패킷으로 구성된 오브젝트 "O4"는 수신 노드(420)에서 해당 패킷들을 수신하고 있는 상태를 나타낸다. 그리고, 오브젝트 "O7"은 6개의 패킷으로 구성되며, 송신 노드(410)의 송신측 응용(440)에서 수신 노드(420)로 전송되기를 기다리는 상태이다. 오브젝트 "O7"이 송신측 응용(440)에서부터 수신측 응용(450)까지 전달되는데 소요되는 시간은 오브젝트 전송 지연시간(460), 네트워크 지연시간(470) 및 바운디드 지연시간(480) 모두를 합한 시간이 된다.
이와 같이 오브젝트 전송 지연시간(460), 네트워크 지연시간(470) 및 바운디드 지연시간(480)은 다양한 형태로 설정 및 운용이 가능하다. 예를 들어, 응용(440)이 전송 속도(sending rate)와 전체 지연시간(latency) 값을 API를 통해 설정하는 경우, 오브젝트 전송 지연시간은 전송 속도와 오브젝트 크기를 이용하여 계산할 수 있고, 네트워크 지연시간(470)과 바운디드 지연시간(480)은 상황에 따라서 유연하게 설정되어 운영될 수 있다. 즉, 네트워크 문제로 인하여 네트워크 지연시간(470)이 증가하는 경우, 응용(440)이 요구한 지연시간을 만족하기 위해서 바운디드 지연시간(480)을 줄일 수 있다. 이와는 반대로, 네트워크 지연시간(470)이 감소하는 경우에는 바운디드 지연시간(480)을 늘릴 수 있다.
본 실시예에서는 전송 속도와 바운디드 지연시간(480)을 두 노드들이 공유하는 것으로 가정하지만, 이에 한정되지 않고 전술한 예시와 같은 다양한 상황에서도 적용이 가능하다.
도 5는 도 3의 오브젝트 전송 장치에서 오브젝트를 전송하는 절차와 오브젝트를 전송하는데 소요되는 지연시간을 설명하기 위한 예시도이다.
도 5를 참조하면, 송신 노드(sender)의 송신 버퍼(send buffer, 520)에 저장된 오브젝트(540)는 복수의 패킷들 예컨대 12개의 패킷들(560)을 구비하고 수신 노드(receiver)의 수신 버퍼(receive buffer, 530)로 전달된다. 여기서 송신 노드와 수신 노드의 각 시간(time) 축은 도 5의 지면 아래로 내려갈수록 시간이 흐른 것을 의미한다.
좀더 구체적으로 설명하면, 송신 버퍼(520)는 송신 노드에서 수신 노드로 전송할 오브젝트(540)를 관리하는 버퍼를 의미하고, 수신측 버퍼(530)는 송신 노드로부터 받은 오브젝트(550)를 관리하는 버퍼를 의미한다.
수신 버퍼(530)에 있는 오브젝트(550)는, 송신 버퍼(520)에 있는 오브젝트(540)를 송신 노드가 전송하고 수신 노드가 수신하여 수신 버퍼(530)에 넣은 것을 의미한다. 각 오브젝트(540; 550)는 적어도 하나 이상의 패킷으로 구성되고, 본 실시예에서는 12개의 패킷들(560)이 존재하는 것으로 예시된다.
송신 버퍼(520)에서, 모든 오브젝트(540)를 송신 버퍼(520)나 송신 노드 밖으로 전송하는데 소요되는 시간을 오브젝트 전송 지연시간(object sending latency, 570)으로 지칭할 수 있고, 모든 오브젝트가 네트워크를 통해서 전달되는 시간을 네트워크 지연시간(network latency, 580)으로 지칭할 수 있으며, 그리고 수신 버퍼(530)에서 수신 노드의 응용에게 전달하기 전까지 수신 버퍼에서 대기하는 시간을 바운디드 지연시간(bounded latency, 590)으로 지칭할 수 있다.
즉, 송신 버퍼(520)에 저장된 오브젝트(540)를 송신 버퍼(520)에서 수신 버퍼(530)를 통해 수신 노드의 응용까지 전달하는데 소요되는 시간은 오브젝트 전송 지연시간(570), 네트워크 지연시간(570) 및 바운디드 지연시간(580) 모두를 합한 시간이 된다. 다시 말해서, 송신측에서 송신된 오브젝트(540)가 데드라인(deadline, 510)까지 도착해야만 수신측 응용에게 전달될 수 있음을 보여준다. 오브젝트(550)를 구성하는 모든 패킷들(560)이 데드라인(510)까지 수신 버퍼(520)에 도착하지 못하는 경우에, 해당 오브젝트(550)는 수신측 응용에게 전달되지 않고 폐기될 수 있다.
한편, 데드라인(510) 이내에 오브젝트(540)를 수신 노드로 전송하지 못할 것으로 판단되면, 송신 노드는 해당 오브젝트(540)를 폐기하고 수신 노드에게 통보할 수 있다. 또한, 오브젝트(550)를 데드라인(510) 이내에 수신하지 못할 것으로 판단되면, 수신 노드는 해당 오브젝트(550)를 폐기하고 송신 노드에 더 이상 해당 오브젝트(540)를 전송하지 않도록 통보할 수 있다.
이러한 데드라인(510)을 기준으로 오브젝트를 전송할 수 있는지 혹은 수신할 수 있는지를 판단하여 오브젝트 전송/수신 여부를 실시간 결정하는 개념은 오브젝트의 재전송 시에도 활용될 수 있다.
송신측과 수신측에서 데드라인 개념을 활용하기 위해서는 송신측과 수신측 모두에서 데드라인을 계산할 수 있어야 한다. 일례로, 송신측 및 수신측에서 데드라인을 계산하기 위해서는 오브젝트의 크기와 패킷 전송 속도(packet sending rate)를 이용해 오브젝트 전송 지연시간(570)을 계산하고, 지속적인 패킷 송수신 시에 계산된 네트워크 지연 정보를 통해 네트워크 지연시간(580)을 획득하고, 수신측 응용이 서비스 특성에 맞게 요구하는 바운디드 지연시간(590)을 관리할 수 있다.
또한, 송신 노드와 수신 노드 간에 시간을 동기화할 필요가 있다. 송신측과 수신측 모두에게 필요한 대역폭 정보 및 바운디드 지연시간(590) 정보는 제어 메시지를 통해서 양측에서 공유될 수 있다. 송신 노드는 오브젝트 전송 장치로, 수신 노드는 오브젝트 수신 장치로 각각 지칭될 수 있다.
도 6은 두 통신 노드들 간의 시간 동기화 및 네트워크 지연시간을 계산하는 과정을 설명하기 위한 예시도이다. 두 통신 노드들은 도 3의 오브젝트 전송 장치와 오브젝트 수신 장치를 포함할 수 있고, 송신 노드와 수신 노드로 지칭될 수 있다.
도 6을 참조하면, 송신 노드(sender, 610)와 수신 노드(receiver, 630)에서 도면의 아래 방향으로 연장하는 직선은 시간(time) 축을 나타내고, 시간 축 상의 tS, tS+1, tR, tR+1 등은 각 노드의 로컬(local) 시간을 의미한다.
먼저, 송신 노드(610)는 제1 시간(tS)에서 제1 패킷(packet)을 수신 노드(630)로 전송한다(S61). 수신 노드(630)는 제2 시간(tR)에서 제1 패킷을 수신한다. 제1 패킷은 송신 노드(610)에서의 전송 시간인 제1 시간(tS) 정보를 포함할 수 있다. 제1 패킷은 RTT 및 두 노드들 간 시간 차이를 계산하는데 이용될 수 있다.
수신 노드(630)는 제1 패킷을 수신한 시각인 제2 시간(tR)과 제2 패킷을 전송한 시각인 제3 시간(tR+1)과 차이를 나타내는 제1 전송딜레이 시간(TDR+1)을 계산할 수 있다. 즉, 수신 노드(630)는 제1 패킷을 수신한 시간부터 응답 패킷인 제2 패킷을 송신 노드(610)로 전송하는데 소요되는 시간을 계산할 수 있다.
또한, 수신 노드(630)는 송신 노드(610)으로 전송할 제2 패킷의 전송 시간(TSR+1)을 제3 시간(tR+1)으로 설정할 수 있다. 제2 패킷의 전송 시간(TSR+1)은 수신 노드(630)의 로컬 시간이 된다.
다음, 수신 노드(630)는 제3 시간(tR+1)에서 제2 패킷을 송신 노드(610)로 전송한다. 송신 노드(610)는 제4 시간(tS+1)에 제2 패킷을 수신한다. 제2 패킷은 제1 전송딜레이 시간(TDR+1)과 제2 패킷의 전송 시간(TSR+1)에 대한 정보를 포함할 수 있다.
송신 노드(610)는 제1 시간(tS), 제4 시간(tS+1) 및 제1 전송딜레이 시간(TDR+1)을 토대로 패킷 왕복 시간(round trip time, RTT)를 계산할 수 있다. 그리고 송신 노드(610)는 제2 패킷의 전송 시간(TSR+1), RTT 및 제4 시간(tS+1)을 토대로 제1 패킷의 전송과 제2 패킷의 수신 간의 시간 차이(toffset)를 계산할 수 있다. 즉, 두 노드들 간의 시간 차이를 계산할 수 있다.
또한, 송신 노드(610)는 제5 패킷을 전송하고자 하는 시각인 제5 시간(TS+2)에 시간 오프셋(toffset)을 더하여 제5 패킷의 동기화된 전송 시간(TSS+2)을 계산할 수 있다. 즉, 송신 노드(610)는 송신측의 로컬(local) 시간을 수신측의 로컬 시간으로 교정할 수 있다. 다시 말해서, 송신 노드(610)는 송신측의 로컬 시간에 두 노드들 간의 시간 차이를 더함으로써 두 노드들 간의 시간을 동기화할 수 있다. 본 실시예에서는 송신측에서 수신측의 시간에 맞도록 동기화하기 때문에 수신측에서는 수신측의 로컬 시간을 그대로 사용할 수 있다.
다음, 송신 노드(610)는 제5 시간(tS+2)에서 제3 패킷을 수신 노드(630)으로 전송한다(S65). 수신 노드(630)는 제6 시간(tR+2)에서 제3 패킷을 수신할 수 있다. 제3 패킷은 동기화된 전송 시간(TSS+2)을 포함할 수 있다. 제3 패킷은 두 노드들 간의 RTT와 시간 차이를 계산하기 위해서 교환되는 패킷이며, 이러한 제3 패킷은 주기적으로 전송되고, 이로써 지속적으로 두 노드들 간의 RTT와 시간 차이를 보정할 수 있다.
수신 노드(630)는 제3 패킷을 이용하여 송신측에서 전달한 패킷이 수신측에 도달할 때 소요되는 네트워크 지연(L(S→R)+2)을 계산할 수 있다. 즉, 수신 노드(630)는, 송신측에서 전송하는 동기화된 전송 시간(TSS+2) 값이 수신측의 로컬 시간에 맞도록 보정한 상태이기 때문에, 송신측에서 패킷을 전송한 시간(TSS+2)에서 패킷을 수신한 시간(tR+2)과의 차이를 계산함으로써 네트워크 지연을 계산할 수 있다.
또한, 수신 노드(630)는 제3 패킷을 처리하고 그 응답 패킷인 제4 패킷을 전송하는데 소요되는 시간(TDR+3)을 계산할 수 있다. 이 지연 시간(TDR+3)은 제4 패킷을 전송하는 제7 시간(tR+3)에서 제3 패킷을 수신한 제6 시간(tR+2)의 차에 의해 계산될 수 있다. 제7 시간(tR+3)은 제4 패킷을 전송하는 시간(TSR+3)으로 설정될 수 있다.
다음, 수신 노드(630)는 제7 시간(tR+3)에서 제4 패킷을 송신 노드(610)로 전송한다(S67). 송신 노드(610)는 제4 패킷을 제8 시간(tS+3)에 수신한다. 제4 패킷은 제3 패킷에 대한 응답일 수 있다. 제4 패킷은 제3 패킷 처리와 제4 패킷 전송 사이에 소요되는 지연 시간(TDR+3), 제4 패킷의 전송 시간(TSR+3) 및 네트워크 지연(L(S→R)+2)에 대한 정보를 포함할 수 있다.
송신 노드(610)는 제3 패킷과 제4 패킷에 의한 RTT 값을 계산할 수 있다. RTT 값의 계산에 사용되는 RTTC는 현재까지 계산된 RTT 값을 의미하고, α는 현재까지 계산된 RTTC 값을 새롭게 계산되는 RTT 값에 어느 정도 비율로 반영할 것인지를 결정하기 위한 가중치로 0≤α≤1 범위를 갖는다.
또한, 송신 노드(610)는 수신측에서 송신측으로 패킷을 전달할 때 발생하는 네트워크 지연(L(R→S)+3)을 계산할 수 있다. 전술한 2개의 네트워크 지연(L(S→R)+2) 및 네트워크 지연(L(R→S)+3)과 같이, 각 방향별로 네트워크 지연을 계산하는 이유는 각 방향별로 네트워크 지연이 다른 경우에 발생할 수 있는 오류를 방지하기 위한 것이다.
또한, 송신 노드(610)는 두 노드들 간의 시간 차이(t0ffset)를 계산할 수 있다. 시간 차이(t0ffset)의 계산에서, t0ffset_C는 현재까지 계산된 시간 차이를 나타내고, 가중치 β는 RTT의 계산 수식에서 사용된 가중치(α)와 동일한 이유로 사용되고, 0≤β≤1 범위를 갖는다.
본 실시예에 의하면, 두 노드들 간의 시간 차이 계산을 통해 두 노드들 간의 시간 동기화와 각 방향별로 발생하는 네트워크 지연을 계산할 수 있다.
도 7은 두 통신 노드들 간의 데이터 송수신에 채용할 수 있는 데이터 패킷 구조를 나타낸 예시도이다.
도 7을 참조하면, 데이터 패킷 구조는 구분(P) 필드(710), 오브젝트(object) ID 필드(720), 남은 패킷 카운터(remaining packet counter) 필드(730), 타임스탬프(timestamp) 필드(740) 및 데이터(data) 필드(750)를 포함하여 구성될 수 있다.
구분 필드(710)는, 해당 패킷이 오브젝트의 처음인지, 중간인지, 마지막인지, 또는 해당 단일 패킷이 하나의 오브젝트인지를 나타내도록 구성된다. 일례로, 구분 필드(710)의 용례를 예시하면 다음의 표 1과 같다.
구분 처음 중간 마지막 단일 패킷
00 01 10 11
오브젝트 ID 필드(720)는 메시지를 구분하기 위한 ID 값이며, 특정 연결에서 유일한 값이다.
남은 패킷 카운터 필드(730)은 현재 전송하는 패킷 이후에 남아 있는 패킷의 개수를 나타낸다. 예를 들면, 하나의 오브젝트가 10개의 패킷들로 구성된 경우, 첫 번째 패킷을 전송할 때 구분 필드(710)은 "00"이 되고, 남은 패킷 카운터 필드(730)의 값은 "9"가 된다. 두 번째 패킷을 전송할 때, 구분 필드(710)는 "01"이 되고 남은 패킷 카운터 필드(730)은 "8"이 된다. 그리고 마지막 10번째 패킷을 전송할 때, 구분 필드(710)은 "10"이 되고 남은 패킷 카운터 필드(730)는 "0"이 된다.
수신 노드는 남은 패킷 카운터 필드(730)의 값을 이용해서 오브젝트의 크기를 알 수 있고, 데드라인을 계산할 수 있다.
또한, 오브젝트 ID 필드(720)와 남은 패킷 카운터 필드(730)는 패킷 손실 여부와 패킷 순서화(ordering)을 위해 사용할 수 있기 때문에 일반적으로 널리 사용되는 시퀀스 번호(sequence number)를 대체할 수 있다.
타임스탬프 필드(740)는 패킷을 전송할 때의 시간을 의미한다. 이때 송신측은 두 노드간의 시간 차이를 이용해서 수신측의 로컬 시간으로 보정한 값을 사용하고, 수신측은 자신의 로컬 시간을 그대로 사용할 수 있다.
데이터 필드(750)는 실제 송신측 응용이 전달하는 데이터를 의미한다.
본 실시예에 따른 데이터 패킷 구조에 포함되는 필드들은 데드라인 인식 데이터 전송 방법을 수행하기 위해서 필요한 최소한의 정보 즉, 필수 정보를 의미한다.
도 8은 각 통신 노드에서 데이터 전송이나 재전송을 위한 데드라인을 계산하는 과정을 설명하기 위한 흐름도이다.
도 8을 참조하면, 송신 노드(sender, 810)와 수신 노드(receiver, 830)는 제어 메시지를 통해서 두 노드들이 필요한 정보를 공유할 수 있다고 가정한다. 필요한 정보는 전송 속도(sending rate), 대역폭(bandwidth), 바운디드 지연시간(bounded latency)를 포함할 수 있다. 전송 속도는 1Gbps일 수 있다. 네트워크 지연시간(network latency)은 도 6을 참조하여 앞서 설명한 네트워크 지연 절차를 통해 두 노드들이 계산한 값을 가지고 있는 것으로 가정한다. 그리고 네트워크 지연시간은 두 노드들이 방향별로 서로 다른 값을 유지할 수 있다.
다만, RTT 값과 두 노드들 간의 시간 차이(t0ffset)와 같이, 이전의 네트워크 지연시간의 값을 반영함으로써 순간적으로 불안정한 네트워크 지연을 보정할 수 있다.
먼저, 송신 노드(810)는 전송할 오브젝트를 생성할 수 있다(S820). 생성된 오브젝트는 10Mbit의 크기일 수 있고, 오브젝트의 각 패킷은 1250btye(10,000bit) 단위로 전송되도록 구성될 수 있다.
다음, 송신 노드(810)는 수신 노드(830)로 오브젝트를 전송할 수 있다(S840). 오브젝트의 전송은 특정 시간(제1 시간)에 시작할 수 있다(S850). 오브젝트를 구성하는 적어도 하나의 데이터 패킷 구조는 도 7을 참조하여 앞서 설명한 구조를 가질 수 있다.
일례로, 데이터 패킷(870)은 오브젝트의 첫 번째 패킷을 의미하는 "00"을 구분 필드 값과, 메시지 식별자와, 남은 패킷 카운터 필드 값으로 "999"와, 보정된 송신 노드의 로컬 시간과, 데이터 필드에 1250 바이트의 패킷을 가질 수 있다.
오브젝트의 전송이 시작되면, 송신 노드(810)는 해당 오브젝트의 전송에 소요되는 시간의 데드라인을 계산할 수 있다(S860). 데드라인의 계산을 위해, 송신 노드(810)는 오브젝트 전송 지연시간(object sending latency)을 계산할 수 잇다. 예를 들어, 송신 노드(810)는 1Gbps의 전송 속도로 10Mbit의 오브젝트를 모두 전송하는데 10ms의 시간이 소요됨을 계산할 수 있다.
한편, 수신 노드(830)는 해당 오브젝트의 수신에 소요되는 시간의 데드라인을 계산할 수 있다(S880). 이를 위해, 수신 노드(830)는 수신측에서 수신한 패킷을 통해서 오브젝트의 크기를 계산할 수 있다. 예를 들어, 수신 노드(830)는 수신된 패킷의 구분 필드의 "00" 값과, 남은 패킷 카운터 필드의 "999" 값과, 데이터 필드의 데이터 크기를 이용해서 오브젝트가 모두 1000개의 패킷들로 구성되고, 각 패킷은 1250byte임을 알 수 있다.
물론, 수신 노드(830)에서 오브젝트의 마지막 패킷의 크기는 다를 수 있지만 그 영향이 매우 작기 때문에 무시할 수 있다. 오브젝트의 크기를 계산하면 수신측에서도 오브젝트 전송 지연시간을 계산할 수 있다.
또한, 두 노드들에서 각각 데드라인을 계산할 수 있다(S890). 즉, 각 노드에서 계산된 오브젝트 전송 지연시간(object sending latency) 값, 이미 가지고 있는 바운디드 지연시간(bounded latency) 값, 그리고 각 노드에서 계산된 네트워크 지연시간(network latency) 값을 이용해서 데드라인을 계산할 수 있다. 본 실시예에서는 두 노드들에서 계산된 네트워크 지연시간(network latency)이 동일한 것으로 가정하고 데드라인을 계산한 것이다.
이렇게 계산된 데드라인 값은 송신측에서 오브젝트를 전송할 때 사용할 수 있다. 즉, 송신 노드(810)은, 이미 전송한 패킷에 대한 전송 지연시간(sending latency), 전송할 패킷에 대한 전송 지연시간, 바운디드 지연시간, 그리고 네트워크 지연시간을 더한 값을 앞서 계산한 데드라인과 비교함으로써 전송 대상의 오브젝트를 데드라인 내에 수신측에 전달할 수 있을지 판단할 수 있으며, 시간 내에 전송이 불가능하다고 판단되는 경우, 송신 노드(810)는 오브젝트의 남은 패킷들을 전송하지 않을 수 있다.
유사한 방법으로, 수신 노드(830)는 수신측에서 이미 수신한 패킷에 대한 전송 지연시간, 앞으로 수신할 패킷에 대한 전송 지연시간, 바운디드 지연시간, 그리고 네트워크 지연시간을 더한 값을 앞서 계산한 데드라인과 비교함으로써 데드라인 내에 오브젝트의 모든 패킷들을 수신할 수 있는지 여부를 판단할 수 있다. 그리고, 수신이 불가능하다고 판단한 경우, 수신 노드(830)는 송신측에 해당 오브젝트에 대한 전송을 중지할 것을 요청할 수 있다.
또한, 수신 노드(830)는 데드라인 내에 오브젝트가 수신측에 도달하지 못할 것으로 판단되는 경우, 단순히 해당 오브젝트를 폐기하는 대신에, 더 높은 우선 순위로 스케쥴링을 진행하거나 네트워크의 서비스 품질(quality of service, QoS)를 조정함으로써 전체적인 지연을 줄이는 노력을 수행할 수도 있다.
도 9는 두 통신 노드들 간에 12개의 패킷으로 구성된 오브젝트의 재전송 절차를 설명하기 위한 예시도이다.
도 9를 참조하면, 송신 노드(sender)에서 수신 노드(receiver)로 오브젝트(object)를 전송할 때, 오브젝트의 2번과 3번 패킷들은 수신측에 도착하지 못한 상태이고(S910). 오브젝트의 1번과 4번 패킷들은 수신측에 도착한 상태이다(S920). 오브젝트는 송신 노드의 송신 버퍼(send buffer)에서 수신 노드의 수신 버퍼(receive buffer)로 전달될 수 있다.
전술한 경우, 수신 노드는 1번 패킷의 수신 후에 4번 패킷을 수신함으로써 2번과 3번 패킷들이 손실되었음을 감지하고 재전송을 진행할 것인지 여부를 판단할 수 있다. 즉, 수신 노드는 송신측에서 수신측까지의 네트워크 지연시간(network latency), 12개의 모든 패킷들을 전송하는데 소요되는 오브젝트 전송 지연시간(object sending latency), 2개의 패킷들을 재전송하는데 소요되는 재전송 지연시간(retransmission latency, 960)의 합이 기계산된 데드라인(deadline)보다 작으면 손실된 패킷들에 대한 재전송을 진행할 수 있다.
즉, 수신 노드는 위와 같은 재전송 가능 여부의 판단 결과에 따라서 재전송을 진행하기 위해 송신 노드로 NACK 패킷을 전송할 수 있다(S930). NACK 패킷에는 수신하지 못한 오브젝트의 패킷들에 대한 정보가 포함된다.
NACK 패킷이 송신측에 도착했을 때, 송신 노드는 이미 9번 패킷까지 전송한 상태일 수 있다. 이 경우, NACK 패킷을 수신한 송신 노드는, 2번과 3번 패킷들이 손실된 것을 파악하고 다시 재전송이 가능한지 여부를 결정할 수 있다.
즉, 송신 노드는 첫 번째 패킷을 전송한 시간부터 NACK 패킷을 수신한 시간 사이의 기간 즉, NACK 패킷을 수신한 시간에서 첫 번째 패킷을 전송한 시간을 뺀 시간, 재전송할 패킷을 전송하는데 소요되는 전송 지연시간(sending latency), 남은 패킷들 예컨대, 10번, 11번 및 12번 패킷들을 전송하는데 소요되는 전송 지연시간, 그리고 송신측에서 수신측까지의 네트워크 지연시간(network latency)의 합이 데드라인(deadline)보다 작으면 2번과 3번 패킷들의 재전송을 진행할 수 있다(S940).
다음, 송신 노드는 나머지 10번, 11번 및 12번 패킷들을 수신 노드로 전송할 수 있다(S950). 이때, 수신 노드에서는 재전송 절차가 없을 때와 비교할 때, 재전송으로 인해서 발생한 추가적인 지연 시간 즉, 재전송 지연시간(960)이 소요된다.
이와 같이, 본 실시예에서는 NACK 메시지가 오브젝트를 구성하는 패킷들을 전송하는 도중에 수신 노드로부터 송신 노드로 도착했기 때문에, 수신 노드에서의 재전송 지연시간(960)이 두 개의 패킷들을 재전송하는데 소요되는 송신 노드에서 계산되는 재전송 지연시간과 동일할 수 있다.
도 10은 두 통신 노드들 간에 12개의 패킷으로 구성된 오브젝트의 재전송 절차의 다른 형태를 설명하기 위한 예시도이다.
도 10을 참조하면, 송신 노드(sender)에서 수신 노드(receiver)로 오브젝트(object)를 전송할 때, 오브젝트의 12개의 패킷들 중 7번과 8번 패킷들만 수신측에 도착하지 못한 상태이고(S1010). 나머지 패킷들은 수신측에 도착한 상태일 수 있다(S1020). 오브젝트는 송신 노드의 송신 버퍼(send buffer)에서 수신 노드의 수신 버퍼(receive buffer)로 전달될 수 있다.
전술한 경우, 수신 노드는 6번째 패킷의 수신 후에, 9번째 패킷을 수신하고, 이를 통해 7번과 8번 패킷들이 도착하지 않은 것을 감지하고, 7번과 8번 패킷들에 대한 재전송 가능성 여부를 확인한다. 재전송이 가능한 경우, 수신 노드는 NACK 패킷을 전송 노드로 전송한다(S1030).
NACK 패킷을 수신한 송신 노드는 도 9에서 기술한 방법과 동일하게 재전송 가능성 여부를 확인할 수 있다. 즉, 송신 노드는 첫 번째 패킷을 전송한 시간부터 NACK 패킷을 수신한 시간 사이의 기간 즉, NACK 패킷을 수신한 시간에서 첫 번째 패킷을 전송한 시간을 뺀 시간, 재전송할 패킷들 전송하는데 소요되는 전송 지연시간, 오브젝트에서 아직 전송되지 않고 남은 패킷을 전송하는데 소요되는 오브젝트 전송 지연시간(본 실시예에서는 없음), 그리고 송신측에서 수신측까지의 네트워크 지연시간의 합이 미리 계산된 데드라인보다 작으면 7번과 8번 패킷들에 대한 재전송을 진행한다(S104).
재전송 패킷들을 수신한 수신 노드에서는 재전송으로 인해서 추가 지연 시간 즉, 재전송 지연시간(retransmission latency, 960)이 소요된다.
이와 같이 본 실시예에서는 송신 노드에서 7번과 8번 패킷을 포함한 모든 패킷을 전송한 후에 수신 노드로부터 NACK 메시지를 수신한 경우이다. 이 경우, 재전송하는 두 개의 패킷들의 전송 지연시간뿐만 아니라 마지막 12번째 패킷을 전송한 시간과 NACK 메시지를 수신한 시간 간격만큼의 추가적인 지연 시간이 발생한다.
전술한 실시예들에서는 모두 2개의 패킷들을 재전송하고 있지만, 두 개의 패킷들을 재전송함으로써 발생하는 재전송 지연시간(retransmission Latency)는 도 10의 경우가 도 9의 경우보다 크다. 그 이유는 오브젝트의 패킷들을 전송하는 중간에 NACK 메시지를 수신하는지, 또는 오브젝트의 모든 패킷을 전송한 후에 NACK 메시지를 수신하는지에 따라서 재전송 지연시간이 다르기 때문이다.
이러한 이유로, 특별한 경우, 수신측에서는 재전송이 가능한지 여부를 정확하게 계산하는 것이 어렵기 때문에 완벽하게 재전송이 불가능한 경우를 제외하고는 재전송 가능 여부의 판단을 송신측에게 맡길 수 있다. 송신측에서는 NACK 메시지를 수신한 시점을 정확하게 알고 있기 때문에 재전송 가능 여부를 정확하게 판단할 수 있다.
본 실시예에 의하면, 송신측이나 수신측에서 오브젝트의 모든 패킷들이 시간 내에 수신측에게 도달할 수 있는지 여부를 확인하는 데드라인(deadline) 개념을 이용함으로써, 데드라인 시간 내에 오브젝트가 수신측까지 도달할 수 있는지 여부를 판단할 때 데드라인 시간 내에 오브젝트가 도달할 수 없는 경우, 해당 오브젝트의 전송을 포기하여, 네트워크에 불필요한 데이터가 전송되는 것을 막음으로써 송수신 장치 및 네트워크의 자원 낭비를 줄일 수 있다.
본 발명의 실시 예에 따른 방법의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 정보가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
본 발명의 일부 측면들은 장치의 문맥에서 설명되었으나, 그것은 상응하는 방법에 따른 설명 또한 나타낼 수 있고, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게, 방법의 문맥에서 설명된 측면들은 또한 상응하는 블록 또는 아이템 또는 상응하는 장치의 특징으로 나타낼 수 있다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇몇의 실시 예에서, 가장 중요한 방법 단계들의 적어도 하나 이상은 이와 같은 장치에 의해 수행될 수 있다.
실시 예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그래머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시 예들에서, 필드 프로그래머블 게이트 어레이(field-programmable gate array)는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서(microprocessor)와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.
이상 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (20)

  1. 수신 노드의 응용에서 의미가 있는, 패킷들로 구성된 오브젝트(object)를 전송하는 오브젝트 전송 방법으로서,
    송신 노드로부터 오브젝트를 구성하는 복수의 패킷들을 받는 단계;
    상기 복수의 패킷들의 전송을 위한 제어 메시지를 통해 상기 송신 노드와 상기 수신 노드 간의 네트워크 지연시간을 계산하는 단계-상기 네트워크 지연시간은 상기 오브젝트의 전송 지연에 대해 결정되는 데드라인을 계산하는데 이용됨-;
    상기 복수의 패킷들 중 특정 패킷이 손실됨을 감지하는 단계;
    상기 특정 패킷의 재전송에 소요되는 재전송 소요시간을 계산하는 단계;
    상기 재전송 소요시간과 상기 데드라인을 비교하는 단계; 및
    상기 재전송 소요시간이 상기 데드라인보다 작으면, 상기 특정 패킷의 재전송 관련 정보를 포함한 NACK 메시지를 상기 송신 노드로 전송하는 단계;
    를 포함하는 오브젝트 전송 방법.
  2. 청구항 1에 있어서,
    상기 NACK 메시지가 도착한 시간에서 상기 오브젝트의 첫 번째 패킷을 전송한 시간을 뺀 기간에 기초하여 상기 특정 패킷의 재전송에 소요되는 재전송 소요시간을 상기 송신 노드에서 다시 계산하는 단계를 더 포함하는, 오브젝트 전송 방법.
  3. 청구항 2에 있어서,
    상기 다시 계산한 재전송 소요시간이 상기 데드라인보다 작을 때, 상기 송신 노드로부터 상기 특정 패킷을 받는 단계를 더 포함하는, 오브젝트 전송 방법.
  4. 청구항 2에 있어서,
    상기 송신 노드가 상기 NACK 메시지를 상기 오브젝트의 마지막 패킷을 전송하기 전에 받았는지, 상기 마지막 패킷을 전송한 후에 받았는지를 판단하는 단계를 더 포함하고,
    상기 NACK 메시지를 상기 오브젝트의 마지막 패킷을 상기 수신 노드로 전송한 후에 받은 경우, 상기 재전송 소요시간을 다시 계산하는 단계는 상기 NACK 메시지가 도착한 시간에서 상기 마지막 패킷을 전송한 시간을 뺀 시간을 상기 재전송 소요시간에 추가로 더하는, 오브젝트 전송 방법.
  5. 청구항 1에 있어서,
    상기 복수의 패킷들의 각 데이터 패킷 구조는 구분 필드를 포함하고, 상기 구분 필드는 해당 패킷이 상기 오브젝트의 복수의 패킷들 중 처음인지, 중간인지, 마지막인지, 또는 해당 패킷이 하나의 오브젝트인지를 나타내는 구분 값을 가지는, 오브젝트 전송 방법.
  6. 청구항 5에 있어서,
    상기 복수의 패킷들의 각 데이터 패킷 구조는 남은 패킷 카운터 필드를 더 포함하고, 상기 남은 패킷 카운터 필드는 상기 오브젝트의 복수의 패킷들 중 현재 전송하는 패킷 이후에 남아 있는 패킷의 개수를 나타내는, 오브젝트 전송 방법.
  7. 청구항 1에 있어서,
    상기 수신 노드와 송신 노드는 제어 메시지를 통해 전송 속도 또는 대역폭에 대한 정보와 바운디드 지연시간에 대한 정보를 공유하는 단계를 더 포함하는, 오브젝트 전송 방법.
  8. 청구항 1에 있어서,
    상기 복수의 패킷들을 전송하는데 소용되는 오브젝트 전송 지연시간, 바운디드 지연시간 및 상기 네트워크 지연시간의 합으로 상기 데드라인을 계산하는 단계를 더 포함하는, 오브젝트 전송 방법.
  9. 청구항 8에 있어서,
    상기 재전송 소요시간이 상기 데드라인보다 작을 때, 상기 재전송 지연시간은 상기 바운디드 지연시간보다 작은, 오브젝트 전송 방법.
  10. 청구항 1에 있어서,
    상기 송신 노드에서 상기 수신 노드로 패킷을 전달할 때 발생하는 제1 네트워크 지연시간을 계산하는 단계; 및
    상기 송신 노드에서, 상기 수신 노드에서 상기 송신 노드로 패킷을 전달할 때 발생하는 제2 네트워크 지연시간을 계산하는 단계를 더 포함하는, 오브젝트 전송 방법.
  11. 응용에서 사용되고 패킷들로 구성된 오브젝트(object)를 전송하는 송신 노드에 의한 오브젝트 전송 방법으로서,
    오브젝트를 구성하는 복수의 패킷들을 수신 노드로 전송하는 단계;
    상기 복수의 패킷들의 전송을 위한 제어 메시지를 통해 상기 송신 노드와 상기 수신 노드 간의 네트워크 지연시간을 계산하는 단계-상기 네트워크 지연시간은 상기 오브젝트의 전송 지연에 대해 결정되는 데드라인을 계산하는데 이용됨-;
    상기 복수의 패킷들 중 특정 패킷이 손실됨을 감지한 상기 수신 노드로부터 NACK 메시지를 받는 단계;
    상기 NACK 메시지가 도착한 시간에서 상기 오브젝트의 첫 번째 패킷을 전송한 시간을 뺀 기간에 기초하여 상기 특정 패킷의 재전송에 소요되는 재전송 소요시간을 계산하는 단계; 및
    상기 계산한 재전송 소요시간이 상기 데드라인보다 작을 때, 상기 특정 패킷을 상기 수신 노드로 재전송하는 단계를 포함하는 오브젝트 전송 방법.
  12. 청구항 11에 있어서,
    상기 복수의 패킷들을 전송하는데 소용되는 오브젝트 전송 지연시간, 바운디드 지연시간 및 상기 네트워크 지연시간의 합으로 상기 데드라인을 계산하는 단계를 더 포함하는, 오브젝트 전송 방법.
  13. 청구항 12에 있어서,
    상기 재전송 소요시간이 상기 데드라인보다 작을 때, 상기 재전송 지연시간은 상기 바운디드 지연시간보다 작은, 오브젝트 전송 방법.
  14. 청구항 11에 있어서,
    상기 NACK 메시지를 상기 오브젝트의 마지막 패킷을 전송하기 전에 받았는지, 상기 마지막 패킷을 전송한 후에 받았는지를 판단하는 단계를 더 포함하고,
    상기 NACK 메시지를 상기 오브젝트의 마지막 패킷을 상기 수신 노드로 전송한 후에 받은 경우, 상기 재전송 소요시간을 다시 계산하는 단계는 상기 NACK 메시지가 도착한 시간에서 상기 마지막 패킷을 전송한 시간을 뺀 시간을 상기 재전송 소요시간에 추가로 더하는, 오브젝트 전송 방법.
  15. 청구항 11에 있어서,
    상기 복수의 패킷들의 각 데이터 패킷 구조는 구분 필드를 포함하고, 상기 구분 필드는 해당 패킷이 상기 오브젝트의 복수의 패킷들 중 처음인지, 중간인지, 마지막인지, 또는 해당 패킷이 하나의 오브젝트인지를 나타내는 구분 값을 가지는, 오브젝트 전송 방법.
  16. 청구항 15에 있어서,
    상기 복수의 패킷들의 각 데이터 패킷 구조는 남은 패킷 카운터 필드를 더 포함하고, 상기 남은 패킷 카운터 필드는 상기 오브젝트의 복수의 패킷들 중 현재 전송하는 패킷 이후에 남아 있는 패킷의 개수를 나타내는, 오브젝트 전송 방법.
  17. 청구항 11에 있어서,
    상기 수신 노드는, 상기 특정 패킷의 재전송에 소요되는 재전송 소요시간을 계산하고, 재전송 소요시간과 미리 계산된 데드라인을 비교하고, 재전송 소요시간이 데드라인보다 작으면, 상기 특정 패킷의 재전송 관련 정보를 포함한 NACK 메시지를 상기 송신 노드로 전송하는, 오브젝트 전송 방법.
  18. 응용에서 사용되고 패킷들로 구성된 오브젝트(object)를 전송하거나 수신하는 오브젝트 전송 장치로서,
    데이터를 송수신하기 원하는 응용 프로그램으로서 전송 프로토콜을 포함하는 응용(application);
    상기 응용과 외부 모듈 사이의 통신을 지원하는 어플리케이션 프로그래밍 인터페이스(application programming interface, API);
    상기 응용으로부터의 데이터를 하나 이상의 패킷으로 구성된 오브젝트 형태로 변환하는 오브젝트 핸들러(object handler);
    송신측과 수신측의 두 노드들 간 시간 동기화와 데드라인을 계산하고, 패킷을 전송하거나 재전송할 수 있는지 여부를 판단하는 데드라인 핸들러(deadline handler); 및
    미리 정해진 전송 속도로 패킷을 전송하는 오브젝트 송신기(object sender);
    를 포함하는 오브젝트 전송 장치.
  19. 청구항 18에 있어서,
    상기 패킷의 데이터 패킷 구조는 구분 필드 및 남은 패킷 카운터 필드를 포함하고,
    상기 구분 필드는 해당 패킷이 상기 오브젝트의 복수의 패킷들 중 처음인지, 중간인지, 마지막인지, 또는 해당 패킷이 하나의 오브젝트인지를 나타내는 구분 값을 가지며,
    상기 남은 패킷 카운터 필드는 상기 오브젝트의 복수의 패킷들 중 현재 전송하는 패킷 이후에 남아 있는 패킷의 개수를 나타내는, 오브젝트 전송 장치.
  20. 청구항 18에 있어서,
    네트워크를 통해 패킷을 수신하는 오브젝트 수신기(object receiver)를 더 포함하며,
    상기 오브젝트 핸들러는 상기 오브젝트 수신기로부터 수신한 패킷을 상기 응용에게 전달할 수 있는 오브젝트 형태로 변형하는, 오브젝트 전송 장치.
KR1020220146710A 2022-11-07 2022-11-07 데드라인 인식 기반 오브젝트 전송 방법 및 장치 KR20240065680A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220146710A KR20240065680A (ko) 2022-11-07 2022-11-07 데드라인 인식 기반 오브젝트 전송 방법 및 장치
US18/221,948 US20240154735A1 (en) 2022-11-07 2023-07-14 Method and apparatus for transmitting objects based on deadline-aware

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220146710A KR20240065680A (ko) 2022-11-07 2022-11-07 데드라인 인식 기반 오브젝트 전송 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20240065680A true KR20240065680A (ko) 2024-05-14

Family

ID=90928283

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220146710A KR20240065680A (ko) 2022-11-07 2022-11-07 데드라인 인식 기반 오브젝트 전송 방법 및 장치

Country Status (2)

Country Link
US (1) US20240154735A1 (ko)
KR (1) KR20240065680A (ko)

Also Published As

Publication number Publication date
US20240154735A1 (en) 2024-05-09

Similar Documents

Publication Publication Date Title
DK2315383T3 (en) Method and apparatus for submitting a status report
US8201041B2 (en) Transmission control methods and devices for communication systems
US7948901B2 (en) Data transmission method and device using controlled transmission profile
US8588784B2 (en) Mobile communication system, wireless base station and hand over reconnection method for use therewith including an accumulation portion for holding data
CN110476445B (zh) 利用分离承载的分组数据汇聚协议窗口
EP3531637B1 (en) Techniques for efficient reordering of data packets in multipath scenarios
US8917728B2 (en) Retransmission request transmitting method and receiving-side apparatus
CN108347782B (zh) 一种上行控制信息发送、接收方法、终端及基站
JP2015089009A (ja) ユーザ装置及び方法
US8687619B2 (en) System and method of downlinking data to an unsynchronized user equipment in a telecommunications network
CN108713311A (zh) 一种传输控制协议tcp报文的传输方法、设备及系统
CN107534606B (zh) 电信系统中的帧起始优化方法、系统及可读介质
EP1988657B1 (en) Method and related apparatus for handling packet discard in a wireless communication system
JP2017092692A (ja) データ伝送制御システム及び方法、並びに、データ伝送制御プログラム
WO2019214619A1 (zh) 一种数据处理的方法及设备
US20230246745A1 (en) Communication system
CN107733589B (zh) 自组网自动重传请求的实现方法、装置、设备以及存储介质
KR20240065680A (ko) 데드라인 인식 기반 오브젝트 전송 방법 및 장치
EP3403436B1 (en) Method and network node for handling signals transmitted from wireless devices
CN116963175A (zh) 数据传输方法、装置及系统
WO2022061751A1 (en) Method and apparatus for multicast and broadcast services
JP3855945B2 (ja) インタフェース変換装置
WO2019071463A1 (en) REQUEST FOR AUTOMATIC HYBRID REPEAT WITHOUT GRANT
CN117335932A (zh) 用于新无线电的无线电链路控制累积模式
CN106165514B (zh) 一种rlc数据包重传方法及基站