KR20170135107A - 데이터 전송 방법 및 그 기능이 구비된 컴퓨팅 장치 - Google Patents

데이터 전송 방법 및 그 기능이 구비된 컴퓨팅 장치 Download PDF

Info

Publication number
KR20170135107A
KR20170135107A KR1020160066508A KR20160066508A KR20170135107A KR 20170135107 A KR20170135107 A KR 20170135107A KR 1020160066508 A KR1020160066508 A KR 1020160066508A KR 20160066508 A KR20160066508 A KR 20160066508A KR 20170135107 A KR20170135107 A KR 20170135107A
Authority
KR
South Korea
Prior art keywords
retransmission
data
time
time difference
data transmission
Prior art date
Application number
KR1020160066508A
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 KR1020160066508A priority Critical patent/KR20170135107A/ko
Priority to US15/608,147 priority patent/US20170346601A1/en
Priority to CN201710397484.1A priority patent/CN107453848A/zh
Publication of KR20170135107A publication Critical patent/KR20170135107A/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/1806Go-back-N protocols
    • 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/1887Scheduling and prioritising arrangements
    • 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
    • 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/1829Arrangements specially adapted for the receiver end
    • H04L1/1858Transmission or retransmission of more than one copy of acknowledgement message
    • 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/1874Buffer management
    • 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/189Transmission or retransmission of more than one copy of a message
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1863Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
    • H04L12/1868Measures taken after transmission, e.g. acknowledgments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1881Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with schedule organisation, e.g. priority, sequence management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2425Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
    • H04L47/2433Allocation of priorities to traffic types
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1827Network arrangements for conference optimisation or adaptation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
    • H04W8/04Registration at HLR or HSS [Home Subscriber Server]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/06Transport layer protocols, e.g. TCP [Transport Control Protocol] over wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

데이터 수신 장치로 데이터를 전송함에 있어서 일정 시간 이내의 전송 지연 시간을 보장하는 데이터 전송 방법이 제공된다. 데이터 전송 장치가, 데이터를 데이터 수신 장치로 전송하는 단계, 상기 데이터 전송 장치가, 기 설정된 규칙에 따라 상기 데이터 중 시간 차 재전송 대상 데이터를 선별하는 단계, 상기 데이터 전송 장치가, 상기 시간 차 재전송 대상 데이터의 특성에 따라 재전송 시간 간격(Retransmission Time Interval)을 결정하는 단계, 상기 데이터 전송 장치가, 상기 재전송 시간 간격 도래 시점에, 네트워크의 상태를 기준으로 상기 시간 차 재전송의 가능 여부를 판단하는 단계 및 상기 시간 차 재전송이 가능하다고 판단된 경우, 상기 데이터 전송 장치가, 상기 시간 차 재전송 대상 데이터를 상기 데이터 수신 장치에 재전송하는 단계를 포함한다.

Description

데이터 전송 방법 및 그 기능이 구비된 컴퓨팅 장치{Data Transmission Method and Computing Apparatus Provided with Data Transmission Function}
본 발명은 데이터 전송 방법 및 장치에 관한 것이다. 보다 자세하게는, 데이터 수신 장치로 데이터를 전송함에 있어서 패킷 유실에 따른 전송 지연 및 서비스 품질 저하를 방지하는 데이터 전송 방법 및 장치에 관한 것이다.
IP 네트워크를 통한 다양한 서비스의 제공은 전송 효율의 극대화라는 장점에도 불구하고 일정한 수준의 서비스 품질을 보장할 수 없다는 단점을 가지고 있다. 이러한 문제점은 IP 서비스의 본질적인 특성인 비보장성(Best Effort)에서 기인한 것이기 때문에 IP 네트워크를 통해서 서비스가 이루어지는 한 이를 근본적으로 해결하는 것은 쉽지 않다.
웹이나 파일 전송과 같은 서비스는 전달 시점에 민감하지 않은 데이터 위주의 서비스이기 때문에 서비스 품질이 큰 문제로 여겨지고 있지는 않다. 그러나, VOD(Video On Demand) 서비스, VoIP(Voice over IP) 서비스, 온라인 게임 서비스, 영상 통화 시스템 등 데이터의 전달 시점에 민감한 영상 데이터, 음성 데이터 및 실시간 제어 데이터를 기반으로 하는 실시간 서비스에 있어서 일정 수준 이상의 서비스 품질의 유지는 매우 중요한 이슈이다.
서비스 품질을 일정 수준으로 유지하기 위해서는 전송 과정에서 데이터의 오류 또는 손실이 발생한 경우에도 일정 시간 이내로 전송 지연 시간을 보장하는 것이 중요하다.
이를 위해 종래의 기술은 순방향 오류 정정(Forward Error Correction; FEC) 기법을 중심으로 발전해 왔다. 자동 재전송 요구(Automatic Repeat reQuest; ARQ) 중심의 오류 정정 기법은 RTT(Round Trip Time)가 커질수록 일정 시간 이내로 전송 지연 시간을 보장하기 어렵기 때문이다.
하지만 순방향 오류 정정 기법 중심의 종래의 기술은 수신 단에서 오류를 검출하고 데이터를 복원하는 것을 주된 목적으로 하기 때문에 다음과 같은 문제점을 가지고 있다. 첫째로, 오류 복원에 대한 계산 비용이 크고, 둘째로, 수신 단에 오류 검출 및 복원을 위한 추가적인 로직이 요구되기 때문에 널리 활용되기 어려우며, 셋째로, 한 구간에 집중적으로 오류가 발생한 경우 오류 검출이 되더라도 정정될 확률이 높지 않기 때문에 버스트 오류(Burst Error)에 취약하다.
따라서, 수신 단에 추가적인 로직을 요구하지 않고 버스트 오류에 강점을 지니면서도 일정 시간 이내의 전송 지연 시간을 보장해주는 데이터 전송 방법이 요구된다.
본 발명이 해결하고자 하는 기술적 과제는 전송 단에서 패킷 유실 구간 회피를 위한 시간 차 재전송을 함으로써 RTT에 관계 없이 일정 시간 이내로 전송 지연 시간을 보장해주는 데이터 전송 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 시간 차 재전송 대상 데이터를 선별하고 선별된 데이터에 대하여만 시간 차 재전송함으로써 네트워크의 대역폭을 효율적으로 활용하는 데이터 전송 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는 데이터의 특성 및 수신 측의 지터 버퍼(Jitter Buffer) 값에 따라 재전송 시간 간격을 결정함으로써 패킷 유실 구간 회피를 위한 최적의 재전송 시간 간격을 결정하는 데이터 전송 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는 네트워크의 가용 대역폭에 따라 시간 차 재전송 가부 및 전송량을 조절함으로써 일정 시간 이내의 전송 지연 시간을 보장함과 동시에 재전송에 따른 네트워크 혼잡을 방지할 수 있는 데이터 전송 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는 수신 단에 별도의 로직을 요구함 없이 전송 단의 로직만으로 일정 시간 이내의 전송 지연 시간을 보장함으로써 널리 활용 가능한 데이터 전송 방법 및 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 데이터 전송 방법은, 상기 데이터 전송 장치가, 기 설정된 규칙에 따라 상기 데이터 중 시간 차 재전송 대상 데이터를 선별하는 단계, 상기 데이터 전송 장치가, 상기 시간 차 재전송 대상 데이터의 특성에 따라 재전송 시간 간격(Retransmission Time Interval)을 결정하는 단계, 상기 데이터 전송 장치가, 상기 재전송 시간 간격 도래 시점에, 네트워크의 상태를 기준으로 상기 시간 차 재전송의 가능 여부를 판단하는 단계 및 상기 시간 차 재전송이 가능하다고 판단된 경우, 상기 데이터 전송 장치가, 상기 시간 차 재전송 대상 데이터를 상기 데이터 수신 장치에 재전송하는 단계를 포함할 수 있다.
일 실시예에서, 상기 시간차 재전송 대상 데이터의 선별 단계 전에 상기 데이터의 시간 차 재전송의 필요 여부를 판단하는 단계를 더 포함하고, 상기 선별하는 단계, 상기 결정하는 단계, 상기 판단하는 단계 및 상기 재전송하는 단계는, 상기 데이터의 시간 차 재전송이 필요한 것으로 판단된 경우에 한하여 수행될 수 있다.
또한, 상기 시간 차 재전송의 필요 여부를 판단하는 단계는, 상기 데이터 수신 장치와의 RTT(Round Trip Time)를 얻어오는 단계, 상기 데이터의 특성에 따라 최대 지연 시간을 결정하는 단계, 상기 RTT와 상기 최대 지연 시간을 비교하여 상기 RTT가 더 작은 경우, 재전송 요청에 의해 재전송을 수행하는 로직이 별도로 존재하는지 판단하는 단계 및 상기 로직이 존재하는 경우, 상기 시간 차 재전송이 필요하지 않다고 판단하는 단계를 포함할 수 있다.
일 실시예에서, 상기 재전송 시간 간격을 결정하는 단계는, 상기 시간 차 재전송 대상 데이터의 특성에 따라 최대 지연 시간을 결정하는 단계 및 상기 재전송 시간 간격을 상기 최대 지연 시간보다 작거나 같은 값으로 설정하는 단계를 포함할 수 있다.
또한, 상기 재전송 시간 간격을 상기 최대 지연 시간으로 설정하는 단계는, 상기 데이터 수신 장치의 지터 버퍼 값(Jitter Buffer Value)을 얻어오는 단계, 상기 재전송 시간 간격과 상기 지터 버퍼 값을 비교하는 단계 및 상기 지터 버퍼 값이 더 작은 경우, 상기 재전송 시간 간격을 상기 지터 버퍼 값으로 갱신하는 단계를 포함할 수 있다.
일 실시예에서, 상기 시간 차 재전송의 가능 여부를 판단하는 단계는, 상기 네트워크의 가용 대역폭 정보를 얻어오는 단계, 상기 가용 대역폭이 존재하지 않는 경우, 상기 시간 차 재전송 대상 데이터의 최대 지연 시간 범위 내에서 상기 시간 차 재전송을 지연하는 단계 및 상기 지연된 시점에 다시 상기 시간 차 재전송이 가능한지 여부를 판단하는 단계를 포함할 수 있다.
본 발명의 다른 실시예에 따른 데이터 전송 기능을 구비한 컴퓨팅 장치는, 하나 이상의 프로세서, 데이터 수신 장치와 데이터 송수신을 수행할 수 있는 네트워크 인터페이스, 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(Load)하는 메모리 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 데이터 전송 장치가, 데이터를 데이터 수신 장치로 전송하는 오퍼레이션, 상기 데이터 전송 장치가, 기 설정된 규칙에 따라 상기 데이터 중 시간 차 재전송 대상 데이터를 선별하는 오퍼레이션, 상기 데이터 전송 장치가, 상기 시간 차 재전송 대상 데이터의 특성에 따라 재전송 시간 간격(Retransmission Time Interval)을 결정하는 오퍼레이션, 상기 데이터 전송 장치가, 상기 재전송 시간 간격 도래 시점에, 네트워크의 상태를 기준으로 상기 시간 차 재전송의 가능 여부를 판단하는 오퍼레이션 및 상기 시간 차 재전송이 가능하다고 판단된 경우, 상기 데이터 전송 장치가, 상기 시간 차 재전송 대상 데이터를 상기 데이터 수신 장치에 재전송하는 오퍼레이션을 수행할 수 있다.
본 발명의 다른 실시예에 따른 영상 통화 장치는, 하나 이상의 프로세서, 목적 영상 통화 장치와 데이터 송수신을 수행할 수 있는 네트워크 인터페이스, 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램을 로드(Load)하는 메모리 및 상기 컴퓨터 프로그램을 저장하는 스토리지를 포함하되, 상기 컴퓨터 프로그램은, 영상 데이터 및 음성 데이터를 목적 영상 통화 장치로 전송하는 오퍼레이션, 기 설정된 규칙에 따라 상기 데이터 중 시간 차 재전송 대상 데이터를 선별하는 오퍼레이션, 상기 시간 차 재전송 대상 데이터의 특성에 따라 재전송 시간 간격을 결정하는 오퍼레이션, 상기 재전송 시간 간격 도래 시점에, 네트워크의 상태를 기준으로 상기 시간 차 재전송의 가능 여부를 판단하는 오퍼레이션 및 상기 시간 차 재전송이 가능하다고 판단된 경우, 상기 시간 차 재전송 대상 데이터를 상기 영상 통화 장치에 재전송하는 오퍼레이션을 포함하고, 상기 시간 차 재전송 대상 데이터를 선별하는 오퍼레이션은, 상기 데이터 중 음성 데이터를 식별하는 오퍼레이션, 식별된 음성 데이터 중 노이즈 데이터를 제외하는 오퍼레이션 및 상기 노이즈 데이터가 제외된 음성 데이터 중 기 설정된 레벨 이상의 신호 세기를 가진 음성 데이터를 시간 차 재전송 대상 데이터로 선별하는 오퍼레이션을 포함할 수 있다.
상술한 본 발명에 따르면, 패킷 유실 구간 회피를 위한 시간 차 재전송을 통해 일정 시간 이내의 전송 지연 시간을 보장함으로써 일정 수준 이상의 서비스 품질을 제공하고 서비스의 실시간 응답성을 향상시킬 수 있다.
또한, 선별된 데이터만을 시간 차 재전송함으로써 네트워크 비용 대비 전송 효율을 향상시킬 수 있다.
또한, 수신 단에 별도의 로직을 요구하지 않고, 전송 단에서 기존의 전송 로직을 활용하여 시간 차 재전송을 수행할 수 있으므로 기 구축된 시스템에 대하여 뛰어난 이식성(Portability)을 제공할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
도 1은 IP 네트워크의 특성인 비보장성을 설명하기 위한 도면이다.
도 2a 및 도 2b는 RTT에 따른 종래의 자동 재전송 요구 기법의 문제점을 설명하기 위한 도면이다.
도 3은 버스트 오류에 따른 종래의 순방향 오류 정정 기법의 문제점을 설명하기 위한 도면이다.
도 4a 및 도 4b는 본 발명의 몇몇 실시예에서 참조되는 시간 차 재전송의 개념 및 효과를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 데이터 전송 방법의 순서도이다.
도 6은 본 발명의 다른 실시예에 따른 데이터 전송 방법의 순서도이다.
도 7a 및 도 7b는 도 6에 도시된 시간 차 재전송의 필요 여부 판단 방법의 상세 순서도이다.
도 8a 및 도 8b는 본 발명의 몇몇 실시예에 따른 데이터 전송 방법에서, 재전송 시간 간격을 결정하는 방법의 상세 순서도이다.
도 9a, 도 9b 및 도 9c는 본 발명의 몇몇 실시예에 따른 데이터 전송 방법에서, 지연 여유 시간을 확보하는 방법의 상세 순서도이다.
도 10은 본 발명의 몇몇 실시예에 따른 데이터 전송 방법에서, 시간 차 재전송의 가능 여부를 판단하는 방법의 상세 순서도이다.
도 11은 본 발명의 또 다른 실시예에 따른 데이터 전송 장치의 기능 블록도이다.
도 12는 본 발명의 또 다른 실시예에 따른 데이터 전송 장치의 하드웨어 블록도이다.
도 13은 본 발명의 또 다른 실시예에 따른 영상 통화 시스템에서, 시간 차 재전송 대상 데이터를 선별하는 방법의 예를 설명하기 위한 도면이다.
도 14a는 본 발명의 또 다른 실시예에 따른 영상 통화 시스템에서, 패킷 손실률에 따른 MOS 측정 결과를 설명하기 위한 도면이다.
도 14b는 본 발명의 또 다른 실시예에 따른 영상 통화 시스템에서, 패킷 손실률에 따른 SSE 측정 결과를 설명하기 위한 도면이다.
도 14c는 본 발명의 또 다른 실시예에 따른 영상 통화 시스템에서, 패킷 손실률이 35% 인 경우 수신 단에서의 음성 파형을 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 본 발명에 대하여 첨부된 도면에 따라 보다 상세히 설명한다.
종래 기술의 문제점
도 1은 IP 네트워크의 일반적인 특성인 비보장성을 설명하기 위한 도면이다.
IP 네트워크에 연결된 각종 컴퓨팅 장치(300, 500)는 IP 네트워크를 통해 원격의 컴퓨팅 장치와 데이터를 송수신할 수 있다. IP 네트워크는 패킷 교환(Packet Switching) 방식을 이용하기 때문에 IP 네트워크를 통해 전송되는 데이터는 네트워크 레벨에서 작은 패킷으로 분할되고, 각 패킷은 서로 독립적으로 데이터 수신 장치로 전달된다.
IP 네트워크가 패킷 교환 방식을 이용하는 이유는 전송 효율을 극대화하고 네트워크 자체의 신뢰성을 증대시키기 위해서이다. 자세히 말하면, 패킷 교환 방식은 회선 교환(Circuit Switching) 방식처럼 특정 컴퓨팅 장치가 네트워크 사용 여부에 관계없이 네트워크의 대역폭(Bandwidth)을 점유하지 않기 때문에 다수의 컴퓨팅 장치가 네트워크의 대역폭을 보다 효율적으로 사용할 수 있도록 한다. 또한, 패킷 교환 방식에서 데이터는 작은 패킷으로 분할되어 전송되기 때문에 전송 과정 중 오류 발생 확률이 낮아지고, 네트워크 상의 특정 경로에 이상이 있는 경우 네트워크 장치는 해당 패킷을 다른 경로로 전달할 수 있기 때문에 네트워크 자체의 신뢰성은 높아지게 된다.
하지만, IP 네트워크는 패킷 분실 및 손상에 대한 복구 기능을 제공하지 않기 때문에 해당 패킷이 데이터 수신 장치로 전달되는 것을 보장하지 않는다. 즉, IP 네트워크는 패킷 전달을 위해 최대의 노력을 하지만, 확실한 전달을 보장하지는 않는다. 이러한 IP 네트워크의 특성을 비보장성 또는 최선 노력형이라고 한다.
도 1을 참고하면, 송신 컴퓨팅 장치(300)가 IP 네트워크(700)를 통해 데이터 수신 장치(500)로 데이터를 전송하고 있다. 송신 컴퓨팅 장치(300)가 전송하는 데이터는 네트워크 레벨에서 3개의 패킷으로 나뉘어져 전송되었으나 IP 네트워크의 비보장적 특성에 의해 데이터 수신 장치(500)에는 2개의 패킷만이 전달된 것을 알 수 있다. 패킷 유실은 네트워크의 혼잡, 네트워크의 물리적 상태 이상 등에 다양한 원인에 의해 발생할 수 있기 때문에, IP 네트워크에서 일정 품질 이상의 서비스를 제공하기 위해서는 패킷 유실 문제를 해결하기 위한 기법이 요구된다.
패킷 손실 문제를 해결하기 위한 종래의 기술은 주로 오류 정정 기법에 의존한다. 오류 정정 기법은 자동 재전송 요구(Automatic Repeat reQuest; ARQ) 기법과 순방향 오류 정정(Forward Error Correction; FEC)기법으로 분류될 수 있는데, 이하 종래의 오류 정정 기법의 문제점에 대해서 설명한다.
도 2a 및 도 2b는 RTT에 따른 종래의 자동 재전송 요구 기법의 문제점을 설명하기 위한 도면이다.
도 2a 및 도 2b를 참고하면, 송신 컴퓨팅 장치(300)가 데이터 수신 장치(500)로 총 6개의 패킷을 전송하고 있고, 송신 컴퓨팅 장치(300)와 데이터 수신 장치(500) 사이의 거리는 두 장치 사이의 데이터의 전송 시간을 의미한다. 따라서 도 2b에 도시된 송신 컴퓨팅 장치(300)와 데이터 수신 장치(500) 사이의 RTT는 도 2a에 도시된 것보다 더 큰 것을 알 수 있다. 참고로, RTT는 두 장치 간의 패킷 왕복 시간을 의미하며, RTT는 두 장치 간 물리적 위치 차이뿐만 아니라, 네트워크 경로 상 특정 구간의 병목 현상, 무선 구간의 존재 등 다양한 이유로 달라질 수 있다.
송신 컴퓨팅 장치(300)는 총 6개의 패킷을 전송했으나, 전송 과정에서 패킷(2)이 유실된 것을 알 수 있다. 데이터 수신 장치(500)는 패킷(3)을 수신한 시점에 패킷(2)이 유실된 것을 알고 송신 컴퓨팅 장치(300)에게 이에 대한 재전송을 요청할 수 있다. 재전송 요청을 받은 송신 컴퓨팅 장치(300)는 패킷(2)을 다시 전송할 수 있다. 만약 재전송 요청 패킷까지 유실된 경우라면, 컴퓨팅 장치(300)는 재전송 타임아웃에 따라 패킷(2)을 재전송 할 수도 있다.
도 2a와 도 2b를 비교해보면, 패킷(2)의 손실에 따른 전송 지연 시간이 도 2a의 경우보다 훨씬 큰 것을 알 수 있다. 전송 지연 시간은 패킷의 전송 시점부터 수신 시점까지 걸린 시간을 의미하는데, 위와 같은 전송 지연 시간의 차이는 자동 재전송 요구 기법은 적어도 RTT 이상의 전송 지연 시간을 요구하기 때문에 발생한다. 자세히 말하면, 자동 재전송 요구 기법은 최소한 손실된 패킷에 대한 요청과 그에 대한 응답인 요청 패킷에 대한 전송 시간을 포함하기 때문에 항상 RTT 이상의 시간을 요구하게 된다. 따라서, RTT가 작은 경우 이와 같은 전송 지연은 큰 문제가 아닐 수 있으나 RTT가 커질수록 일정 시간 이내의 전송 지연 시간을 보장할 수 없기 때문에 문제가 될 수 있다.
특히 실시간 데이터(Real-time Data)를 다루는 서비스의 경우, 일정 시간 이내의 전송 지연 보장은 서비스 품질과 직결되는 중요한 문제이다. 예를 들어, VoIP와 같은 음성 통화 서비스에서, 일정 시간 이내의 전송 지연이 보장되지 않는다면 음성이 뚝뚝 끊기기 때문에 서비스 품질이 매우 떨어지게 된다. 따라서, 종래의 자동 재전송 요구 기법은 RTT의 제약으로 인해 일정 시간 이내의 전송 지연 보장을 요구하는 서비스에 적용되기 어렵다는 문제가 있다.
본 명세서에서, 실시간 데이터는 전달 시점의 영향이 큰 데이터로써 일정 시간 이내 전송되지 않는 경우 가치를 상실하는 데이터를 의미한다. 예를 들어, 영상 통화 시스템에서 송수신 되는 음성 데이터 및 영상 데이터, 사물 인터넷(Internet of Things; IoT)을 구성하는 각종 센서들의 실시간 상태 정보를 반영하는 데이터, 드론 원격 조정을 위한 제어 데이터 등이 실시간 데이터가 될 수 있다.
한편, 실시간 데이터는 본 발명의 기술 분야의 통상의 기술자에게 시간 임계 데이터(Time Critical Data), 시간에 민감한 데이터(Time Sensitive Data) 등 다른 형태의 용어로 사용될 수 있으나 동일한 대상을 지칭함에 유의한다.
다음으로, 도 3을 참고하여 버스트 오류에 따른 순방향 오류 정정 기법의 문제점에 대해서 설명한다.
전술한 자동 재전송 요구 기법의 문제를 해결하기 위해서 순방향 오류 정정 기법이 이용될 수 있다. 순방향 오류 정정 기법은 원본 데이터 전송 시 오류 검출 및 정정을 위한 추가 데이터를 더 전송하고, 수신 컴퓨팅 장치에서 추가 데이터를 이용하여 오류를 검출 및 정정 하는 기법이다. 즉, 순방향 오류 정정 기법은 자동 재전송 요구 기법과는 달리 오류를 발견하더라도 재전송을 요구하지 않고 수신 단에서 문제를 해결하는 기법이다. 따라서, 추가적인 네트워크 비용 및 컴퓨팅 장치의 컴퓨팅 비용을 소모하지만 재전송에 따른 전송 지연을 줄일 수 있다는 장점이 있다.
그러나, 순방향 오류 정정 기법의 오류 정정 여부는 오류의 발생 위치 등과 관련된 오류의 특성에 종속적이기 때문에 언제나 오류의 정정을 담보하지는 못한다. 이는 추가적인 네트워크 비용을 줄이기 위해 오류 검출 및 정정을 위한 최소한의 데이터만을 부가하여 전송하기 때문에 발생하는 문제이다. 특히, 특정 구간에 집중적인 오류가 발생하는 버스트 오류의 경우, 순방향 오류 정정 기법으로 오류를 정정하기는 매우 어렵다.
도 3을 참고하면, 왼편에 도시된 전송 데이터는 패킷(A) 내지 패킷(E)까지 5개의 데이터 패킷과 오류 검출을 위한 패킷(FAB), 패킷(FC) 및 패킷(FDE)을 포함하나, 전송 과정에서 네트워크 상에 버스트 오류가 발생하여 패킷(C) 내지 패킷(E), 패킷(FAB) 및 패킷(FC)이 연속적으로 유실된 것을 알 수 있다. 이와 같은 버스트 오류는 네트워크의 혼잡, 하드웨어의 물리적 이유, 무선 네트워크의 개입 등 다양한 이유로 발생할 수 있다.
이와 같은 상황에서 데이터 수신 장치가 유실된 패킷을 검출하더라도 오류 정정용 패킷(FC) 및 패킷(FDE)을 이용하여 패킷(C) 내지 패킷(E)을 복구하는 것은 불가능하다. 패킷(C)의 경우 오류 정정용 패킷(FC) 또한 유실되었기 때문에 복구가 불가능하고, 패킷(D) 및 패킷(E)의 경우, 일반적으로 오류 정정용 패킷(FDE)을 이용해서 유실된 패킷을 복원하기 위해서는 적어도 하나 이상의 데이터 패킷이 필요하기 때문에 복구가 불가능하다. 따라서, 순방향 오류 정정 기법은 특히 버스트 오류에 취약할 수 있다. 단, 이외에도 복원을 위한 컴퓨팅 비용이 비싸며, 수신 단에서 오류 검출 및 복원 기법이 요구된다는 것을 전제로 하기 때문에 널리 이용되기 어렵다는 문제가 있다.
정리해보면, 종래의 오류 정정 기법은 자동 재전송 요구 기법 및 순방향 오류 정정 기법으로 나뉘어지고, 자동 재전송 요구 기법은 RTT가 커짐에 따라 일정 시간 이내의 전송 지연을 보장하기 어려우며, 순방향 오류 정정 기법은 버스트 오류에 취약하여 일정한 한계를 보인다는 것을 알 수 있다.
이하 도 4 내지 도 10을 참고하여 종래 기술의 문제점을 해결하기 위한 본 발명에 대하여 설명한다.
시간 차 재전송의 개념
도 4a 및 도 4b는 본 발명의 몇몇 실시예에서 참조되는 시간 차 재전송의 개념 및 효과를 설명하기 위한 도면이다.
도 5를 참고하여 후술할 본 발명의 일 실시예에 따른 데이터 전송 방법은 종래의 오류 정정 기법과 달리 패킷 유실 구간 회피 기법을 이용하여 일정 시간 이내의 전송 지연을 보장하고, 패킷 유실 구간 회피를 위해 시간 차 재전송의 개념을 이용한다.
먼저 도 4a를 참고하면, 도 2b에 도시된 바와 동일하게 본 발명에 따른 데이터 전송 기능이 구비된 컴퓨팅 장치(100, 이하 '데이터 전송 장치')가 데이터 수신 장치(500)로 총 6개의 패킷을 전송하고 있고, 데이터 전송 장치(100)와 데이터 수신 장치(500) 사이의 RTT가 상대적으로 큰 것을 알 수 있다.
데이터 전송 장치(100)는 패킷이 유실될 경우를 대비하여 일정한 재전송 시간 간격 이후에 패킷을 재전송할 수 있다. 재전송 시간 간격은 원본 데이터를 전송한 시점과 재전송을 수행한 시점 사이의 시간 간격을 의미하고, 재전송 시간 간격 이후 시점의 재전송을 자동 재전송 요구 기반의 재전송과 차이를 두기 위해 시간 차 재전송이라고 명명한다.
도 4a와 도 2b를 비교해보면, RTT가 상대적으로 큰 경우에도, 유실된 패킷(2)의 전송 지연 시간이 도 2b에 비해 현저하게 작아진 것을 알 수 있다. 이와 같은 차이는 도 2b에 도시된 자동 재전송 요구 기법은 데이터 수신 장치의 요청에 따른 재전송을 수행하는데 반해, 본 발명에 따른 시간 차 재전송은 재전송 요청 없이 능동적으로 재전송을 수행하는 것에서 기인한다. 따라서, 시간 차 재전송 개념을 이용하는 경우 RTT가 큰 경우에도 효과적으로 전송 지연 시간을 줄일 수 있다.
다음으로 도 4b를 참고하면, 데이터 전송 장치(100)가 데이터 수신 장치(500)로 패킷(A) 내지 패킷(E)을 전송하고 있고, 도 3에 도시된 바와 동일하게 버스트 오류가 발생한 것을 알 수 있다.
버스트 오류로 인해 원본 데이터의 패킷(C) 내지 패킷(E) 구간 및 시간 차 재전송 된 데이터의 패킷(A) 및 패킷(B) 구간에 연속적인 패킷 유실이 발생하였다. 그러나, 원본 데이터의 유실된 패킷 중시간 차 재전송 된 데이터에 포함된 패킷(C, D, E)은 데이터 수신 장치에 통상적으로 구현되어 있는 버퍼 제어 기법 의해 손쉽게 복구 될 수 있다.
자세히 말하면, 시간 차 재전송 된 데이터는 원본 데이터와 동일한 순서 번호(Sequence Number)로 전송되기 때문에, 데이터 수신 장치는 수신 버퍼 내의 두 데이터를 비교하여 원본 데이터의 유실 패킷(C, D, E)을 확인하고 시간 차 재전송된 데이터에 해당 패킷(C, D, E)이 있는지 확인하는 방식으로 손쉽게 복구할 수 있다.
도 4b와 도 3을 비교해보면, 시간 차 재전송 개념을 이용하는 본 발명은 패킷 유실 구간을 회피하여 데이터가 전송될 수 있기 때문에 순방향 오류 제어 기법과는 달리 버스트 오류에도 강점을 지닐 수 있다.
지금까지 도 4a 및 도 4b를 참고하여 본 발명에 따른 시간 차 재전송의 개념 및 효과에 대해 알아보았다. 정리하면, 시간 차 재전송 개념은 패킷 유실 구간을 회피하여 버스트 오류에 강점을 보임과 동시에, RTT에 무관하게 일정 시간 이하의 전송 지연을 보장하는 효과가 있다. 이하, 도 5를 참고하여 본 발명의 일 실시예에 따른 데이터 전송 방법을 상세히 설명한다. 이후, 이해의 편의를 돕기 위해, 상기 데이터 전송 방법에 포함되는 각 동작의 주체는 그 기재가 생략될 수도 있음을 유의한다.
일 실시예에 따른 데이터 전송 방법
도 5는 본 발명의 일 실시예에 따른 데이터 전송 방법의 순서도이다.
도 5를 참고하면, 데이터 전송 장치는 원본 데이터를 네트워크를 통해 데이터 수신 장치로 전송한다(S100). 상기 데이터는 일정 시간 내에 데이터 수신 장치로 전달이 보장되어야 하는 실시간 데이터를 포함할 수 있다.
원본 데이터를 전송한 뒤, 데이터 전송 장치는 패킷 유실 구간 회피를 위해 시간 차 재전송을 수행할 수 있다. 그러나, 일부 데이터의 패킷 유실을 대비하기 위해 모든 데이터를 재전송하는 것은 과도한 네트워크 비용을 요구하고, 네트워크의 혼잡을 유발할 수 있기 때문에 비효율적이다. 따라서, 본 발명이 적용된 데이터 전송 장치는 선별적 시간 차 재전송을 수행하며, 이를 위해 시간 차 재전송 대상 데이터를 기 설정된 규칙에 따라 선별한다(S300). 시간 차 재전송 대상 데이터의 선별 방법에 대한 자세한 사항은 후술한다.
시간 차 재전송 대상 데이터가 선별된 경우, 데이터 전송 장치는 시간 차 재전송 대상 데이터의 특성에 따라 재전송 시간 간격을 결정한다(S500). 여기서, 데이터 전송 장치가 데이터를 바로 재전송하지 않는 이유는 패킷 유실 구간의 회피 효과를 최대화하기 위해서이다. 그러나, 일정 시간 내에 전달이 보장되어야 하는 실시간 데이터의 경우, 일정 시간이 지나면 재전송의 필요성이 없어지므로, 패킷 유실 구간의 회피 효과를 최대화하면서 데이터의 가치가 보존될 수 있도록 재전송 시간 간격을 결정할 필요가 있다. 재전송 시간 간격의 결정 방법에 대한 자세한 사항은 도 8a 및 도 8b를 참고하여 후술한다.
재전송 시간 간격 이후 시간 차 재전송 시점에 도달한 경우, 데이터 전송 장치는 시간 차 재전송 하기에 앞서 시간 차 재전송의 가능 여부를 판단한다(S700). 그 이유는 첫째로 시간 차 재전송으로 인해 추가로 전송되는 데이터가 기존 네트워크에 혼잡을 야기하는 것을 방지하기 위해서이고, 둘째로 네트워크가 혼잡하여 패킷 유실이 지속되고 있는 경우, 시간 차 재전송의 패킷 유실 구간 회피 효과가 미미하기 때문이다. 본 단계에 대한 자세한 사항 또한 도 10을 참고하여 후술한다.
위 판단 결과, 시간 차 재전송이 가능하다고 판단된 경우 데이터 전송 장치는 데이터 수신 장치의 재전송 요청이 없더라도 시간 차 재전송 대상 데이터를 데이터 수신 장치에 스스로 재전송한다(S900). 즉, 상기 재전송은 재전송 요청에 따라 수행되는 것이 아니라 데이터 전송 장치가 자체적으로 수행하는 재전송이다.
한편, RTT가 크지 않은 경우 시간 차 재전송을 하지 않더라도 자동 재전송 요구 기반의 재전송을 통해 일정 시간 이내의 전송 지연이 보장될 수 있다. 일정 시간 이내의 전송 지연만 보장된다면 자동 재전송 요구 기법은 손실된 데이터에 대해서만 재전송을 수행하므로 네트워크 비용을 절감하는 효과가 있다. 따라서, 본 발명의 다른 실시예에 따른 데이터 전송 방법은 시간 차 재전송의 필요 여부 판단 단계를 추가적으로 수행할 수 있다. 이하, 도 6 및 도 7을 참고하여, 본 발명의 다른 실시예에 따른 데이터 전송 방법을 설명한다.
다른 실시예에 따른 데이터 전송 방법
도 6을 참고하면, 시간 차 재전송이 필요한지 여부를 판단하는 단계(S200)가 추가된 것을 알 수 있다. 따라서, 본 발명의 다른 실시예에 따른 데이터 전송 방법에서, 데이터 전송 장치는 시간 차 재전송이 필요한 것으로 판단된 경우에 한하여 시간 차 대상 데이터를 선별하는 단계(S300), 재전송 시간 간격을 결정하는 단계(S500), 시간 차 재전송의 가능 여부를 판단하는 단계(S700) 및 스스로 시간 차 재전송하는 단계(S900)를 수행할 수 있다.
데이터 전송 장치가 시간 차 재전송이 필요한지 여부를 판단하기 위해서 데이터 전송 장치와 데이터 수신 장치 사이의 RTT, 자동 재전송 요구 기반의 재전송 로직의 존재 여부 및 데이터의 특성에 따른 최대 지연 시간 등이 고려될 수 있다. 여기서, 최대 지연 시간은 일정 수준의 이상의 서비스 품질을 보장하기 위해 수신 측에서 최대로 허용 가능한 지연 시간을 의미한다.
데이터 전송 장치와 데이터 수신 장치 사이의 RTT 및 자동 재전송 요구 기반의 재전송 로직의 존재 여부를 고려하는 이유는 자동 재전송 요구 기반의 재전송 로직은 수신 측에서 대략 RTT 정도의 전송 지연을 야기하기 때문이다. 따라서, RTT가 최대 지연 시간 이내라면 시간 차 재전송을 수행하지 않더라도 일정 시간 이내의 전송 지연이 보장될 수 있다.
도 7a를 참고하여 시간 차 재전송의 필요 여부를 판단하는 단계(S200)를 상세히 살펴보면, 데이터 전송 장치는 먼저 데이터 수신 장치와의 RTT를 얻어온다(S210). RTT는 미리 측정된 값을 얻어올 수도 있고, 주기적으로 측정될 수도 있다. 단, 네트워크 환경이 동적인 경우라면 현재 시점의 네트워크의 환경을 반영할 수 있도록 주기적으로 RTT를 측정하여 갱신하는 것이 바람직할 수 있다.
다음으로, 데이터 전송 장치는 데이터의 특성을 고려하여 최대 지연 시간(Tmax)을 결정한다(S220). 데이터 전송 장치는 데이터의 특성을 고려하여 기 설정된 시간 값을 최대 지연 시간으로 결정할 수 있고, 기 설정된 값을 기준으로 상기 데이터의 특성을 고려하여 최대 지연 시간을 추정할 수도 있다.
데이터의 특성은 데이터의 실시간성의 강도, 데이터의 종류, 데이터의 크기 등을 포함할 수 있다. 그러나, 동일한 종류의 데이터라고 하더라도 서비스의 특성에 따라 최대 지연 시간은 달라질 수 있다. 예를 들어, VoIP와 같은 음성 통화 서비스에서 음성 데이터의 최대 지연 시간이 약 100ms(millisecond)로 결정 될 수 있다. 음성 통화 도중에 100ms 이상의 지연이 발생할 경우 음성 품질이 저하 될 수 있기 때문이다. 그러나, 음성 데이터를 메시지로 전송하는 음성사서함 서비스의 경우, 음성 데이터의 전송은 파일의 전송 형태와 유사하므로 실시간성은 매우 약해진다. 따라서, 이러한 경우 최대 지연 시간은 보다 큰 값으로 결정될 수 있다.
데이터 전송 장치는 기 설정된 값을 기준으로 데이터의 크기를 고려하여 최대 지연 시간을 추정할 수 있다. 데이터의 크기가 커질수록 전송 지연이 커지기 때문에, 실시간성이 강한 데이터는 전송 지연을 줄이기 위해 작은 크기의 데이터로 설계될 수 있다. 예를 들어, 드론 원격 조정 서비스에서 드론을 제어하기 위한 실시간 제어 데이터는 실시간성이 강하기 때문에 음성 및 영상데이터에 비해 매우 작은 크기로 설계되어야 한다. 이러한 경우, 실시간 제어 데이터의 최대 지연 시간은 기 설정된 음성 데이터의 최대 지연 시간 보다 더 작게 설정되어야 한다. 따라서, 데이터 전송 장치는 해당 데이터의 기 설정된 최대 지연 시간 값이 없더라도 데이터의 크기 등 특성을 고려하여 다른 데이터의 최대 지연 시간 값을 기준으로 해당 데이터의 최대 지연 시간 값을 결정할 수 있다.
최대 지연 시간을 결정한 데이터 전송 장치는 RTT와 최대 지연 시간의 대소를 비교하고(S230), RTT가 더 작은 경우 재전송 로직이 기 존재하는지 확인한다(S240). 상기 재전송 로직은 상술한 바와 같이 자동 재전송 요구 기반의 재전송 로직을 의미한다. 재전송 로직이 존재하는 경우, 데이터 전송 장치는 시간 차 재전송이 필요하지 않다고 판단하고, 지연에 대한 보장을 기 존재하는 재전송 로직에 일임하여 네트워크 비용을 절감할 수 있다.
한편, 자동 재전송 로직이 존재하는 경우라도 데이터 수신 장치의 재전송 요청 패킷이 유실된 경우 최대 지연 시간 이내의 전송 지연이 보장되지 않을 수 있다. 재전송 요청 패킷의 유실에 대비하여, 재전송 로직은 일반적으로 재전송 타이머를 이용하여 재전송 타임아웃에 따른 재전송을 수행한다. 이때 수신 측에서의 전송 지연은 대략 재전송 타임아웃 값이 되므로, 보다 안전하게 일정 시간 이내의 전송 지연을 보장하기 위해 재전송 타임아웃 값을 이용하여 시간 차 재전송의 필요 여부를 판단할 수 있다.
도 7b를 참고하면, 최대 지연 시간이 결정되고 재전송 로직이 존재하는 경우(S220, S240), 데이터 전송 장치는 재전송 로직의 타임아웃 값(TRTO)을 얻어온 뒤(S250), 최대 지연 시간과 재전송 타임아웃 값의 대소를 비교한다(S270). 비교 결과, 최대 지연 시간이 더 큰 경우, 데이터 수신 장치의 재전송 요청 패킷이 유실된 경우에도 최대 지연 시간이 보장될 수 있으므로, 데이터 전송 장치는 시간 차 재전송이 필요하지 않다고 판단할 수 있다.
한편, 도 7b에 도시된 시간 차 재전송의 필요 여부 판단 과정은 도 7a에 도시된 판단 과정 이후에 수행될 수도 있다. 즉, 도 7a에 따라 시간 차 재전송이 필요하지 않다고 판단 된 경우 이차적으로 도 7b에 따른 시간 차 재전송 필요 여부 판단을 수행할 수 있다. 단, 일반적으로 재전송 타임아웃 값은 RTT보다 큰 값이므로, 데이터 전송 장치는 도 7a에 도시된 판단 과정을 생략하고 도 7b에 도시된 판단 단계만을 수행하는 것으로 충분할 수 있다.
지금까지, 본 발명의 다른 실시예에 따른 데이터 전송 방법을 알아보았다. 정리하면, 본 발명의 다른 실시예에 따른 데이터 전송 방법에서, 데이터 전송 장치는 사전에 시간 차 재전송 필요 여부를 판단함으로써 시간 차 대상 데이터의 선별, 시간 차 재전송의 재전송 시간 간격 설정 및 재전송 가능 여부 판단에 소요되는 컴퓨팅 비용을 절감할 수 있다. 또한, 데이터 전송 장치는 RTT가 최대 지연 시간 보다 작은 경우 기 존재하는 재전송 로직을 이용함으로써 네트워크 비용을 절감할 수 있다.
다음으로, 시간 차 재전송 대상 데이터의 선별을 통해 네트워크의 대역폭을 효율적으로 활용하는 방법에 대하여 상세히 설명한다.
시간 차 재전송 대상 데이터의 선별 방법
데이터 전송 장치는 기 설정된 규칙에 따라 시간 차 재전송 대상 데이터를 선별할 수 있다(S300). 그리고 상기 규칙은 데이터의 종류 및 내용, 서비스의 특성, 네트워크의 가용 대역폭 등 다양한 요소를 고려하여 수립될 수 있다. 예를 들어, 데이터의 종류에 따라 데이터를 선별하는 경우, 데이터 전송 장치는 실시간 데이터와 비실시간 데이터 중 실시간 데이터를 시간 차 재전송 대상 데이터로 판정하고 비실시간 데이터는 시간 차 재전송 대상 데이터에서 제외할 수 있다. 일반적으로, 파일, 로그 데이터 같은 비실시간 데이터는 즉각적인 전달이 요구되지 않기 때문이다.
시간 차 재전송 대상 데이터를 선별하는 단계(S300)는 기 설정된 규칙에 따라 시간 차 재전송 대상 데이터의 우선순위를 부여하는 단계를 포함할 수 있다. 상기 우선순위를 부여하는 단계는 시간 차 재전송 대상 데이터를 선별하는 단계 이후에 수행될 수 있고, 동시에 수행될 수도 있다. 다시 말하면, 선별된 시간 차 재전송 대상 데이터에 대해서만 우선순위를 부여할 수 있고, 모든 데이터에 우선순위를 부여한 뒤 우선순위를 기준으로 시간 차 재전송 대상 데이터를 선별할 수도 있다.
선별된 데이터에 대하여 우선순위를 부여한 경우. 데이터 전송 장치는 가용 대역폭이 허용하는 범위 내에서 우선순위 내의 데이터를 시간 차 재전송하는 등 다양한 방식을 이용하여 부여된 우선순위를 활용할 수 있다. 예를 들어, 데이터 전송 장치는 음성 데이터를 가장 높은 우선순위로 두고, 영상 데이터를 그 다음 우선순위, 그 외 데이터를 가장 낮은 우선순위로 분류할 수 있다. 각 데이터는 다중 레벨 우선순위 큐 등과 같은 자료구조에 우선순위 별 및 재전송 시간 간격 별로 정렬하여 보관한 다음, 재전송 시점 도래 시 가용 대역폭이 허용되는 범위 내에서 가장 높은 우선순위 큐의 데이터부터 시간 차 재전송을 수행할 수도 있다.
지금까지 시간 차 재전송 대상 데이터를 선별하는 방법(S300)에 대하여 알아보았다. 정리하면, 본 발명의 몇몇 실시예에서 이용되는 데이터 선별 방법은 데이터의 종류 및 내용, 서비스의 특성 등 다양한 요소를 고려하여 수행될 수 있고, 데이터 전송 장치는 시간 차 재전송 대상 데이터를 선별함으로써 대역폭 대비 재전송 효율을 최대화할 수 있다.
다음으로, 도 8a 및 도 8b를 참고하여 시간 차 재전송을 위한 재전송 시간 간격을 결정하는 방법에 대해 설명한다.
재전송 시간 간격의 결정 방법
데이터 전송 장치는 시간 차 재전송 대상 데이터를 선별한 뒤, 시간 차 재전송 대상 데이터의 특성에 따라 재전송 시간 간격을 결정한다(S500). 재전송 시간 간격이 너무 짧으면 버스트 오류에 따른 패킷 유실 구간을 회피하기 어렵고, 재전송 시간 간격이 너무 길면 일정 시간 이하의 전송 지연 보장이 어렵기 때문에 데이터 전송 장치는 적절한 재전송 시간 간격을 정할 필요가 있다.
도 8a에 도시된 바와 같이, 데이터 전송 장치는 데이터의 특성에 따라 최대 지연 시간을 결정하고, 재전송 시간 간격을 최대 지연 시간보다 작거나 같은 값으로 설정할 수 있다(S510, S530). 상술한 바와 같이 데이터가 최대 지연 시간 내에 전달 된다면 일정 수준 이상의 서비스 품질을 보장할 수 있기 때문이다. 데이터의 특성에 따른 최대 지연 시간을 결정하는 단계(S510)는 S220 단계와 동일하므로 자세한 사항은 전술한 S220 단계를 참조한다.
한편, 데이터가 실시간 데이터인 경우 도 8b에 도시된 바와 같이 데이터 수신 장치의 지터 버퍼 값을 추가적으로 고려하여 재전송 시간 간격을 갱신할 수 있다. 실시간 데이터가 시간 차 재전송을 통해 네트워크의 패킷 유실 구간을 회피했다고 하더라도 데이터 수신 장치의 지터 버퍼 내에 수신되지 않는 경우 수신 단에서 재전송된 패킷이 드랍(Drop) 될 수 있기 때문이다.
본 명세서에서, 지터 버퍼는 수신 단에서 버퍼 크기 내에 수신된 패킷의 지터를 제거하고 실시간성을 보장하기 위해 사용되는 버퍼를 의미하고, 지터는 데이터의 가변적인 전송 지연 현상을 의미한다. 지터는 네트워크 장비의 큐잉(Queuing), 패킷 재라우팅, 네트워크 멀티플렉싱(Multiplexing) 등 다양한 원인에 의해 발생할 수 있으며, 지터는 실시간 서비스의 품질을 저하 시키는 요인이기 때문에 통상적으로 실시간 데이터를 수신하는 데이터 수신 장치는 서비스의 품질 유지를 위해 지터 버퍼를 이용한다.
지터 버퍼 값은 지터 버퍼의 크기를 의미하며, ms(millisecond) 단위로 설정될 수 있다. 지터 버퍼의 크기를 너무 크게 정하거나, 너무 작게 정하면, 문제가 발생할 수 있다. 지터 버퍼의 크기가 너무 작으면, 버퍼가 모두 차게 되어 패킷이 손실 되는 문제가 발생할 수 있다. 반대로, 지터 버퍼의 크기가 너무 크면, 패킷 손실을 줄일 수 있으나 패킷이 버퍼에 머무르는 시간이 늘어나기 때문에 지연이 그만큼 증가할 수 있다. 특히, 영상 통화와 같이 실시간 데이터를 서로 주고받는 양방향(Interactive) 서비스의 경우, 패킷 손실을 줄이기 위해 지터 버퍼의 크기를 증가시키면 양방향 지연으로 인해 오히려 서비스 품질이 저하될 수 있다. 따라서, 지터 버퍼 크기는 패킷 손실과 지연 두 가지 요소를 모두 고려하여 설정되어야 한다.
지터 버퍼 값은 데이터 수신 장치에서 실행되는 서비스에 따라 미리 고정된 값이 이용될 수 있고, 유동적으로 네트워크 상황에 따라 변경되는 값이 이용 될 수도 있다.
도 8b를 참고하여 지터 버퍼 값을 이용하여 재전송 시간 간격을 갱신하는 과정을 상세히 설명하면, 데이터 전송 장치는 재전송 시간 간격을 갱신하기 위해 데이터 수신 장치의 지터 버퍼 값(Tjitter)을 얻어 올 수 있다(S550). 데이터 수신 장치의 지터 버퍼가 네트워크 상황에 따라 변경되는 적응형 또는 가변형 지터 버퍼인 경우 데이터 전송 장치는 주기적으로 지터 버퍼 값을 얻어올 수 있다.
지터 버퍼 값을 얻어온 데이터 전송 장치는 재전송 시간 간격과 지터 버퍼 값을 비교하고(S570), 지터 버퍼 값이 더 작은 경우 재전송 시간 간격을 지터 버퍼 값으로 갱신할 수 있다(S590). 즉, 재전송 시간 간격을 조절하여 네트워크 상의 패킷 유실 구간을 회피할 뿐만 아니라 수신 단에서의 패킷 드랍 또한 방지하여 시간 차 재전송의 성공률을 높일 수 있다.
이와 반대로, 데이터 전송 장치에 의해 결정된 재전송 시간 간격을 기준으로 데이터 수신 장치가 지터 버퍼 값을 변경할 수도 있다. 이러한 경우, 데이터 전송 장치는 도 8b에 도시된 재전송 시간 간격을 갱신하는 과정을 생략할 수 있다. 단, 이는 시스템의 구현 방식의 차이에 불과하다.
한편, 지터는 네트워크 상황에 따라 빈번하게 발생할 수 있으므로 시간 차 재전송 되는 데이터도 예상보다 지연되어 데이터 수신 장치에 도착할 수 있다. 이와 같은 경우, 시간 차 대상 데이터는 데이터 수신 장치의 지터 버퍼에 수신되지 않거나, 수신되더라도 일정한 시간 이내의 전송 지연이 보장되지 않을 수 있다. 따라서, 보다 안전하게 시간 내 지연 전송을 보장하기 지연 여유(Delay Margin) 시간을 확보하는 것이 필요할 수 있다. 이하, 도 9a, 도 9b 및 도 9c를 참고하여 지연 여유 시간을 확보하는 방법을 설명한다.
도 9a를 참고하면, 데이터 전송 장치는 지연 여유 시간을 확보하기 위해 지연 여유 변수(Mdelay)의 값을 설정할 수 있다(S610). 상기 지연 여유 변수는 0보다 크고 1보다 작거나 같은 값을 가질 수 있다. 데이터 전송 장치는 기 설정된 재전송 시간 간격을 지연 여유 변수의 값을 곱한 값으로 갱신하여 지연 여유 시간을 확보할 수 있다(S630). 따라서, 지연 여유 시간을 더 확보하기 위해서는 지연 여유 변수 값을 더 작은 값으로 설정하면 된다. 단, 구현 방식에 따라 지연 여유 변수의 값을 곱하는 방식이 아니라 확보하고 싶은 지연 여유 시간을 제하는 방식으로 지연 여유 시간을 확보할 수도 있고, 이는 단순한 구현 상의 차이에 불과하다.
데이터 전송 장치는 데이터 수신 장치의 지터를 기준으로 지연 여유 시간을 차등적으로 확보할 수 있다. 지터 값이 큰 경우, 데이터가 예상보다 더 지연될 확률이 높으므로 지연 여유 시간을 더 확보할 필요가 있기 때문이다.
도 9b를 참고하면, 데이터 전송 장치는 데이터 수신 장치의 지터 값을 얻어온다(S650). 데이터 전송 장치는 데이터 수신 장치가 측정한 지터 값을 초기에 요청하거나 주기적으로 얻어올 수 있다. 또는, 데이터 전송 장치는 주기적으로 RTT를 측정하고 RTT의 편차의 평균을 구하여 지터 값을 구할 수 있다. 또는, 데이터 전송 장치는 편도 지연 시간(One Way Delay)의 편차의 평균을 구하여 지터 값을 얻을 수 있다. 단, 데이터 전송 장치와 데이터 수신 장치 사이의 양방향 경로가 다를 수 있고, 양방향 경로의 대역폭도 다를 수 있기 때문에 RTT보다 편도 지연 시간을 이용하여 지터 정보를 구하는 것이 더 바람직할 수 있다.
지터 정보를 얻은 데이터 전송 장치는 지터 값이 클수록 전송이 지연될 확률이 높으므로 지연 여유 변수를 더 작은 양수 값으로 설정함으로써 지연 여유 시간을 더 확보할 수 있다(S670, S630). 다시 말하면, 데이터 전송 장치는 지터 값이 클수록 재전송 시간 간격을 더 작은 값으로 갱신할 수 있다.
데이터 전송 장치는 시간 차 재전송 대상 데이터의 우선순위를 기준으로 지연 여유 시간을 차등적으로 확보할 수 있다. 본 발명의 데이터 전송 방법에 따르면, 데이터의 우선순위가 높은 경우라도 재전송 시점의 네트워크 상태에 따라 시간 차 재전송이 불가능할 수 있다. 이러한 경우, 서비스 품질이 저하될 수 있으므로 후술할 도 10에 도시된 방법 따르면, 데이터 전송 장치는 일정 시간을 지연한 뒤 다시 시간 차 재전송을 수행할 수 있다. 따라서, 시간 차 재전송 대상 데이터의 우선순위에 따라 차등적으로 지연 여유 시간을 확보한다면 시간 차 재전송의 지연을 통해 우선순위가 높은 데이터일수록 다시 재전송될 수 있는 기회가 더 많이 확보될 수 있다. 한편, 데이터의 우선순위는 상술한 시간 차 재전송 대상 데이터 선별 과정(S300)에서 부여될 수 있고, 서비스에 따라 기 설정된 데이터 별 우선순위가 존재하여 그에 따라 부여될 수도 있다.
도 9c를 참고하면 상술하면, 데이터 전송 장치는 기 설정된 규칙에 따라 시간 차 재전송 대상 데이터의 우선순위가 부여된 경우, 데이터의 우선순위가 높을수록 지연 여유 시간을 더 확보하기 위해 지연 여유 변수를 더 작은 양수 값으로 설정할 수 있다(S660). 다음으로, 데이터 전송 장치는 기 설정된 재전송 시간 간격을 지연 여유 변수의 값을 곱한 값으로 갱신하여 지연 여유 시간을 확보할 수 있다(S630). 즉, 데이터 전송 장치는 시간 차 재전송 대상 데이터의 우선순위가 높을수록 재전송 시간 간격을 더 작은 값으로 갱신할 수 있다.
지금까지 시간 차 재전송의 재전송 시간 간격을 결정하는 방법(S500)에 대하여 알아보았다. 정리하면, 데이터 전송 장치는 패킷 유실 구간 회피 효과를 최대화하면서 지터 버퍼에서 수신 가능한 재전송 시간 간격을 결정함으로써 일정 시간 이내의 전송 지연을 보장할 수 있다. 또한, 데이터 전송 장치는 데이터의 우선순위에 따라 차등적으로 지연 여유 시간을 확보함으로써 우선순위가 높은 데이터에 대해 보다 높은 전송의 신뢰성을 제공할 수 있다.
다음으로, 도 10을 참고하여 시간 차 재전송 시점에 시간 차 재전송 가능 여부를 판단하는 방법에 대하여 설명한다.
시간 차 재전송의 가능 여부 판단 방법
데이터 전송 장치는 재전송 시간 간격 도래 시점에, 네트워크의 상태를 기준으로 시간 차 재전송이 가능한지 여부를 판단한다(S700). 네트워크가 혼잡한 상황에서 데이터 전송 장치가 시간 차 재전송을 하는 경우, 시간 차 재전송된 데이터 또한 유실될 가능성이 있고, 시간 차 재전송을 위해 추가적으로 발생되는 데이터가 네트워크의 혼잡을 가중시킬 수 있기 때문이다.
도 10을 참고하면, 네트워크의 상태를 감지하기 위해 데이터 전송 장치는 네트워크의 가용 대역폭 정보(Ballow)를 활용할 수 있다(S710). 단, 구현 방식에 따라 ICMP(Internet Control Message Protocol)의 Source Quench 메시지를 이용하여 네트워크의 상태를 감지할 수도 있고, 네트워크의 링크 상태 등 네트워크의 물리적인 상태를 추가적으로 고려할 수도 있다.
데이터 전송 장치는 가용 대역폭이 존재하는지 확인하여 시간 차 재전송의 가능 여부를 결정할 수 있다(S730). 또는, 구현 방식에 따라 가용 대역폭이 기 설정된 값 이상인 경우 데이터 전송 장치는 시간 차 재전송이 가능하다고 판단할 수 있다. 가용 대역폭이 존재하여 시간 차 재전송이 가능하다고 판단한 경우, 데이터 전송 장치는 가용 대역폭의 범위 내에서 기 설정된 서비스의 품질 기준으로 시간 차 재전송의 전송량을 결정할 수 있다(S750). 즉, 데이터 전송 장치는 전송량 조절을 통해 서비스의 품질에 따라 선택적 전송을 수행할 수 있다. 예를 들어, 데이터 전송 장치는 전송량을 줄여서 서비스 품질이 떨어지더라도 대역폭 사용을 최소화할 수 있고, 반대로 서비스의 품질을 최대화 하기 위해 전송량을 가용 대역폭의 허용 범위까지 늘릴 수도 있다. 데이터 전송 장치는 서비스 품질을 최대화 하기 위한 방법으로 가용 대역폭의 허용 범위까지 특정한 시간 간격으로 여러 번 재전송하는 방법을 이용할 수도 있다.
또한, 데이터 전송 장치는 전송량을 결정하기 위해 전송 링크를 프아송(Poission), 마르코프 체인(Markov Chain) 등의 확률 과정(Stochastic Process)으로 모델링 하여 네트워크 상황에 따라 전송량이 변동되는 모델을 이용할 수 있다. 이외에도, 데이터 전송 장치는 다양한 방식으로 전송량을 결정할 수 있다.
한편, 시간 차 재전송이 가능하지 않다고 판단된 경우, 데이터 전송 장치는 시간 차 재전송의 지연 가능 여부를 추가적으로 판단할 수 있다(S740). 예를 들어, 시간 차 재전송 대상 데이터가 실시간 데이터인 경우, 데이터 전송 장치는 실시간성이 보장되는 범위 내에서 시간 차 재전송의 지연이 가능하다고 판단할 수 있다. 실시간 데이터가 아닌 경우, 데이터 전송 장치는 기 설정된 시간 차 재전송 횟수를 기준으로 시간 차 재전송의 지연 가능 여부를 판단할 수 있고, 다른 방식으로 판단할 수도 있으나 이는 구현 상 차이에 불과하다.
한편, 시간 차 재전송 대상 데이터의 우선순위가 설정된 경우, 데이터 전송 장치는 시간 차 재전송 대상 데이터의 우선순위가 기 설정된 우선순위 이상인 경우에 한하여 시간 차 재전송의 지연이 가능하도록 제한할 수도 있다. 반대로, 시간 차 재전송 대상 데이터의 우선순위가 기 설정된 우선순위 미만인 경우, 데이터 전송 장치는 시간 차 재전송을 지연하지 않고 취소 할 수도 있다.
시간 차 재전송의 지연이 가능하다고 판단된 경우, 데이터 전송 장치는 지연된 시간으로 재전송 시간 간격을 갱신할 수 있다(S700). 지연된 시간은 실시간 데이터의 경우 실시간성이 보장되는 범위 이내의 값이 될 수 있고, 비실시간 데이터의 경우는 랜덤(Random)한 값이나 고정된 값이 이용될 수도 있다. 시간 차 재전송 대상 데이터의 우선순위가 설정된 경우, 높은 우선순위를 가진 데이터에게 시간 차 재전송의 기회를 더 부여하기 위해 데이터 전송 장치는 시간 차 재전송의 지연 시간을 더 작은 시간으로 설정할 수도 있다.
갱신된 재전송 시간 간격이 지나면 데이터 전송 장치는 다시 시간 차 재전송 여부를 판단하는 단계(S700)를 수행하고, 시간 차 재전송이 가능하다고 판단된 경우 시간 차 재전송을 수행할 수 있다(S900).
지금까지 시간 차 재전송 시점에 시간 차 재전송의 가능 여부를 판단하는 방법(S700)에 대하여 알아보았다. 정리하면, 본 발명에 따른 데이터 전송 방법은 시간 차 재전송 시점에 네트워크의 상태를 기준으로 시간 차 재전송의 가능 여부를 판단함으로써 네트워크에 혼잡이 가중되는 것을 최소화하고, 시간 채 재전송이 가능한 경우 전송량을 조절함으로써 서비스의 품질에 따른 맞춤형 재전송을 제공할 수 있다.
지금까지 도 4 내지 도 10을 참조하여 설명된 본 발명의 개념은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록 된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
다음으로 도 11 및 도 12을 참조하여 본 발명의 또 다른 실시예에 따른 데이터 전송 장치의 세부 구성 및 동작에 대해서 설명한다.
데이터 전송 장치
도 11은 본 발명의 또 다른 실시예에 따른 데이터 전송 장치의 기능 블록도이다.
도 11에 도시된 바와 같이, 본 발명에 따른 데이터 전송 장치(100)는 데이터 전송 요청 처리부(110), 데이터 전송부(150) 및 시간 차 재전송부(130)를 포함할 수 있고, 시간 차 재전송부(130)는 데이터 선별부(131), 재전송 시간 간격의 결정부(133) 및 시간 차 재전송 판단부(135)를 포함할 수 있다. 다만, 도 12에는 본 발명의 실시예와 관련있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 11에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
도 11에는 생략되어 있으나, 본 발명에 따른 데이터 전송 장치(100)는 제어부 및 통신부를 더 포함할 수 있다. 또한 제어부는 데이터 전송 요청 처리부(110) 및 시간 차 재전송부(130)를 포함할 수 있고, 통신부는 데이터 전송부(150)를 포함할 수 있다.
통신부는 상기와 같이 데이터 수신 장치와 데이터를 송수신 하기 위한 유선 인터넷 모듈, 이동통신 모듈 또는 무선통신 모듈을 구비할 수 있다.
제어부는 데이터 전송 장치(100)의 각 구성의 전반적인 동작을 제어한다. 제어부는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 제어부는 전술한 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 어플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다.
각 구성 요소를 동작을 살펴보면, 데이터 전송 요청 처리부(110)는 상위의 어플리케이션 등 외부 모듈로부터 데이터 전송을 요청 받고, 입력 데이터를 데이터 전송부(150)에 보내 데이터 전송을 요청한다. 또한, 데이터 전송 요청 처리부(110)는 동일한 데이터를 시간 차 재전송부(130)에 보내 시간 차 재전송을 요청한다. 상기 데이터는 일정 시간 내에 상기 데이터 수신 장치로 전달이 보장되어야 하는 실시간 데이터를 포함할 수 있다.
데이터 선별부(131)는 기 설정된 규칙에 따라 입력 데이터를 판단하여 시간 차 재전송 대상 데이터를 선별한다. 구체적으로, 데이터 선별부는 전술한 선별 방법에 따라 시간 차 재전송 대상 데이터를 선별할 수 있다.
재전송 시간 간격의 결정부(133)는 선별된 데이터의 특성에 따라 재전송 시간 간격을 결정한다. 보다 자세하게는, 상기 재전송 시간 간격의 결정부는 선별된 데이터의 특성에 대한 최대 지연 시간을 결정하고, 최대 지연 시간을 재전송 시간 간격으로 결정할 수 있다. 또한, 재전송 시간 간격의 결정부(133)는 전술한 방법에 따라 추가적으로 재전송 시간 간격을 갱신할 수 있다.
시간 차 재전송 판단부(135)는 가용 대역폭 등 네트워크의 상태 정보를 기준으로 시간 차 재전송 시점에 시간 차 재전송 가능 여부를 판단할 수 있다. 시간 차 재전송이 가능하다고 판단된 경우, 시간 차 재전송 판단부(135)는 전술한 방법에 따라 전송량을 설정하여 데이터 전송부(150)에 전송을 요청할 수 있다. 반대로 시간 차 재전송이 불가능하다고 판단한 경우, 시간 차 재전송 판단부(135)는 시간 차 재전송 대상 데이터의 전달 보장 시간 범위 내에서 시간 차 재전송을 지연한 뒤, 지연된 시점에 다시 시간 채 재전송 가능 여부를 판단할 수 있다. 단, 시간 차 재전송의 지연은 시간 차 재전송 대상 데이터의 우선순위가 부여된 경우, 기 설정된 우선순위 이상인 시간 차 재전송 대상 데이터에 대하여만 수행될 수도 있다.
또한, 시간 차 재전송 판단부(135)는 최대 지연 시간, 자동 재전송 요구 방식의 재전송 로직 및 데이터 수신 장치와의 RTT를 고려하여 전술한 방법과 같이 시간 차 재전송이 필요한지 여부를 미리 판단할 수 있다. 이외에도 시간 차 재전송 판단부(135)는 전술한 바와 같이 재전송 타임아웃 값과 최대 지연 시간을 비교하여 시간 차 재전송이 필요한 지 여부를 미리 판단할 수도 있다.
마지막으로, 데이터 전송부(150)는 데이터 전송 요청 및 시간 차 재전송 요청에 따라 데이터를 네트워크를 통해 데이터 수신 장치로 전송할 수 있다. 데이터의 전송량이 결정된 경우, 데이터 전송부(150)는 결정된 전송만큼 데이터를 전송할 수 있다.
도 11의 각 구성 요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성 요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성 요소로 구현될 수도 있다.
도 12는 본 발명의 또 다른 실시예에 따른 데이터 전송 장치의 하드웨어 블록도이다.
도 12에 도시된 바와 같이, 본 발명의 또 다른 실시예에 따른 데이터 전송 장치(200)는 하나 이상의 프로세서(210), 데이터 수신 장치와 데이터 송수신을 수행할 수 있는 네트워크 인터페이스(270), 상기 프로세서에 의하여 수행되는 컴퓨터 프로그램(291)을 로드(Load)하는 메모리(230) 및 상기 컴퓨터 프로그램을 저장하는 스토리지(290)를 포함할 수 있다. 다만, 도 12에는 본 발명의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 12에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음을 알 수 있다.
또한, 상기 컴퓨터 프로그램은, 데이터를 데이터 수신 장치로 전송하는 오퍼레이션(231), 기 설정된 규칙에 따라 상기 데이터 중 시간 차 재전송 대상 데이터를 선별하는 오퍼레이션(232), 상기 시간 차 재전송 대상 데이터의 특성에 따라 재전송 시간 간격을 결정하는 오퍼레이션(233), 상기 재전송 시간 간격 도래 시점에, 네트워크의 상태를 기준으로 상기 시간 차 재전송의 가능 여부를 판단하는 오퍼레이션(234) 및 상기 시간 차 재전송이 가능하다고 판단된 경우, 상기 시간 차 재전송 대상 데이터를 상기 데이터 수신 장치에 재전송하는 오퍼레이션(235)을 수행할 수 있다. 하지만, 이외에도 상기 컴퓨터 프로그램은 상술한 본 발명의 몇몇 실시예에서 컴퓨터가 읽을 수 있는 코드로 구현될 수 있는 단계를 포함하여 수행할 수 있다.
버스(250)는 상술한 프로세서(210), 메모리(230), 스토리지(290) 및 네트워크 인터페이스(270)가 연결되는 데이터 이동 통로로서의 역할을 수행한다.
네트워크(700)는 근거리 통신 네트워크(Local Area Network; LAN), 이동 통신 네트워크(Mobile Radio Communication Network), 센서 네트워크(Sensor Network) 또는 위성 통신 네트워크 등과 같은 모든 종류의 유/무선 네트워크로 구현될 수 있다.
데이터 전송 장치(200)는 노트북(Notebook), 데스크톱(Desktop), 랩톱(Laptop), 스마트폰(Smartphone), 센서(Sensor)를 포함한 각종 사물 인터넷 장비 등 통신 기능과 컴퓨팅 기능을 갖춘 모든 종류의 장치를 포함할 수 있다.
지금까지 도 11 및 도 12을 참조하여 본 발명의 또 다른 실시예에 따른 데이터 전송 장치의 세부 구성 및 동작에 대해서 알아보았다. 다음으로, 본 발명의 이해를 돕기 위해 본 발명을 적용하여 실시간 서비스 중 하나인 영상 통화 시스템을 제공하는 예에 대하여 설명한다.
영상 통화 시스템
상술한 바와 같이 본 발명에 따른 데이터 전송 방법 및 장치는 시간 차 재전송을 통해 패킷 유실 구간이 존재하는 네트워크 환경에서도 일정 시간 이내의 전송 지연을 보장할 수 있다. 따라서, 본 발명은 서비스 품질 유지를 위해 일정 시간 이내의 전송 지연을 요구하는 실시간 시스템에 적용될 수 있다. 이하, 본 발명의 또 다른 실시예에 따른 영상 통화 시스템에 대하여 설명한다. 단, 본 발명은 실시간 멀티미디어 시스템뿐만 아니라 저전력 센서 장비와 같은 사물 인터넷 기반 시스템 및 장치 등에도 범용적인 적용이 가능하다.
영상 통화 시스템은 원격지에 있는 다수의 사용자가 네트워크를 통해 장소의 제약을 극복하고 실시간으로 화면을 통해 상대방을 보며 통화하는 기능을 제공하는 시스템이다. 영상 통화 시스템은 네트워크를 통해 영상 통화 기능을 제공하는 복수의 영상 통화 장치로 구성될 수 있고, 각 영상 통화 장치마다 본 발명에 따른 데이터 전송 방법이 적용될 수 있다.
영상 통화 장치는 영상 데이터 및 음성 데이터를 목적 영상 통화 장치에 전송하고, 패킷 유실 구간 회피를 위해 시간 차 재전송을 수행할 수 있다. 영상 통화 장치는 시간 차 재전송 수행 전에 상술한 바와 같이 시간 차 재전송 대상 데이터의 선별 단계(S300), 재전송 시간 간격의 결정 단계(S500) 및 시간 차 재전송의 가능 여부 판단 단계(S700)를 수행할 수 있다.
먼저 도 13을 참고하여 시간 차 재전송 대상 데이터의 선별 단계(S300)를 설명한다.
영상 데이터 및 음성 데이터와 같은 멀티미디어 데이터는 크기가 크기 때문에 시간 차 재전송에 따른 네트워크 비용이 부담이 될 수 있다. 따라서, 시간 차 재전송 대상 데이터를 선별함으로써 네트워크의 대역폭을 효율적으로 사용할 필요가 있다.
도 13을 참고하면, 영상 통화 시스템을 구성하는 영상 통화 장치는 일차적으로 데이터의 종류에 의하여 데이터를 선별할 수 있다. 영상 통화 장치는 여러 종류의 데이터 중 음성 데이터를 시간 차 재전송할 데이터로 식별하고, 나머지 종류의 데이터는 재전송 대상에서 제외할 수 있다(S310). 왜냐하면, 영상 통화 시스템의 사용자는 영상 통화 시스템의 특성 상 음성 데이터의 손실에 대하여 더 민감하게 반응하며, 음성의 품질이 통화의 품질을 좌우하는 중요한 척도이기 때문이다.
영상 통화 장치는 대역폭을 보다 효율적으로 활용하기 위해 데이터 선별 단계를 다른 기준으로 다시 수행할 수 있다. 영상 통화 장치는 선별된 음성 데이터 중 주변의 노이즈 데이터를 제외하고 사람의 음성 데이터만을 다시 선별할 수 있다(S330). 또한, 영상 통화 장치는 노이즈 데이터가 제외된 음성 데이터 중 기 설정된 레벨 이상의 신호 세기를 가진 음성 데이터만을 시간 차 재전송 대상 데이터로 선별할 수 있다(S350). 신호 세기가 기 설정된 레벨 이하인 음성 데이터의 경우 재전송을 하지 않더라도 목적 영상 통화 장치에서 일반적으로 이용되는 패킷 손실 은폐(Packet Loss Concealment; PLC) 기법을 고려한다면 통화 품질에 미치는 영향이 미미하기 때문이다.
도 13에 따른 데이터 선별 방법은 예시에 불과하며 얼마든지 다른 규칙이 적용될 수 있다. 예를 들어, 영상 통화 장치는 영상 데이터를 시간 차 재전송 대상에서 제외하지 않고 후보군으로 선별한 뒤, 네트워크의 가용 대역폭이 충분하여 네트워크의 혼잡을 발생시킬 염려가 없는 경우 시간 차 재전송 수행하여 보다 높은 서비스 품질을 제공할 수도 있다.
시간 차 재전송 대상 데이터가 선별된 경우, 영상 통화 장치는 시간 차 재전송 대상 데이터의 특성에 따라 재전송 시간 간격을 결정할 수 있다(S500). 도 13에 도시된 방법으로 음성 데이터가 시간 차 재전송 대상 데이터로 선별된 경우, 영상 통화 장치는 최대 지연 시간을 약 100ms로 결정하고, 상기 최대 지연 시간을 재전송 시간 간격으로 설정할 수 있다.
영상 통화 장치는 목적 영상 통화 장치의 지터 버퍼 값을 얻어와, 재전송 시간 간격과 비교한 뒤 지터 버퍼 값이 더 작은 경우 재전송 시간 간격을 지터 버퍼 값으로 갱신할 수 있다. 또한, 영상 통화 장치는 보다 안정적으로 전송 지연 시간을 보장하기 위해 지연 여유 시간을 확보할 수 있다. 구체적으로, 영상 통화 장치는 데이터 수신 장치의 지터가 클수록 더 많은 지연 여유 시간을 확보하기 위해 재전송 시간 간격을 더 작은 값으로 갱신할 수 있다.
재전송 시간 간격 이후 시간 차 재전송 시점에 도달한 경우, 영상 통화 장치는 시간 차 재전송 하기에 앞서 시간 차 재전송 가능 여부를 판단할 수 있다(S700). 시간 차 재전송으로 인해 추가로 전송되는 음성 또는 영상 데이터는 데이터의 크기가 크므로 기존 네트워크에 혼잡이 야기되는 것을 방지할 필요가 있기 때문이다. 영상 통화 장치는 시간 차 재전송 시점의 가용 대역폭 등 네트워크의 상태를 기준으로 시간 차 재전송 가능 여부를 판단할 수 있다.
영상 통화 장치는 가용 대역폭이 존재하여 시간 차 재전송이 가능하다고 판단한 경우, 가용 대역폭의 범위 내에서 기 설정된 서비스의 품질 기준으로 시간 차 재전송의 전송량을 결정할 수 있다. 즉, 영상 통화 장치는 전송량 조절을 통해 서비스 품질이 떨어지더라도 대역폭 사용을 최소화할 수 있고, 반대로 서비스의 품질을 최대화 하기 위해 전송량을 가용 대역폭의 허용 범위까지 늘릴 수도 있다.
가용 대역폭이 존재하지 않는 경우, 영상 통화 장치는 시간 차 재전송 대상 데이터의 최대 지연 시간 범위 내에서 시간 차 재전송을 지연할 수 있다. 예를 들어, 시간 차 재전송 대상 데이터가 음성 데이터인 경우, 원본 데이터 전송 시점부터 최대 지연 시간인 약 100ms 범위 내에서 시간 차 재전송을 지연할 수 있다.
시간 차 재전송 대상 데이터의 우선순위가 설정된 경우, 영상 통화 장치는 시간 차 재전송 대상 데이터의 우선순위가 기 설정된 우선순위 이상인 경우에 한하여 상기 시간 차 재전송을 지연할 수도 있다. 예를 들어, 영상 통화 장치는 긴급 통화에 대한 음성 데이터에 높은 우선순위를 부여하여, 긴급 통화에 대한 음성 데이터만 시간 차 재전송의 지연이 가능하도록 할 수 있다. 또한, 영상 통화 장치는 우선 순위가 높은 경우 재전송 시간 간격 설정 단계에서 더 많은 지연 여유 시간을 확보하도록 할 수도 있다.
지금까지, 본 발명의 또 다른 실시예에 따른 영상 통화 시스템에 대하여 알아보았다. 이하, 도 14a 내지 도 14c를 참조하여 본 발명에 따른 영상 통화 시스템과 기존의 영상 통화 시스템의 비교 실험 결과에 대해서 상술한다.
비교 실험 결과
도 14a는 패킷 손실률에 따른 MOS 측정 결과를 도시한다.
본 실험에 따른 비교 메트릭 중 하나인 MOS(Mean Opinion Score)는 음성 전화의 주관적인 통화 품질을 5단계 수치로 구분해 놓은 점수이다. MOS는 사람 또는 가공의 샘플링 된 음성 신호를 수화기를 통해 피평가자에게 직접 들려주는 방식으로 측정될 수 있고, MOS 3.0 이하는 사람이 알아듣기 힘든 정도의 품질을 의미한다.
패킷 손실률은 전체 패킷 중 전송 과정에서 유실된 패킷의 비율을 의미하고, 패킷 유실은 랜덤 패킷 유실뿐만 아니라 버스트 패킷 유실을 포함한다.
또한 상기 실험에서 본 발명의 효과를 보다 명확하게 나타내기 위해 기존의 영상 통화 시스템 중 구글의 WebRTC(Real-Time Communication)와 순방향 오류 정정 기법을 적용한 영상 통화 시스템을 대조군으로 하여 시험을 수행하였다.
도 14a를 참고하면, 그래프의 가로 축은 패킷 손실률(%)을 나타내고 세로 축은 MOS 측정 값을 나타낸다. 본 발명이 적용된 영상 통화 시스템과 WebRTC 및 순방향 오류 정정 기법을 적용한 영상 통화 시스템과 비교해보면, 본 발명의 MOS 수치가 높은 것을 알 수 있다. 즉, 본 발명에 따른 영상 통화 시스템이 주관적으로 가장 좋은 음성 품질을 제공하는 것을 알 수 있다. 자세히 살펴보면, 패킷 손실률이 35%인 환경에서 구글의 WebRTC의 MOS 수치는 대략 3.2인데 반해 본 발명에 따른 영상 통화 시스템의 MOS 수치는 대략 4,0으로 약 20% 이상의 품질 개선을 보여주고 있다. 또한, 패킷 손실률이 50%인 경우에도, 본 발명에 따른 영상 통화 시스템의 MOS 수치는 3.5 이상을 유지하고 있음을 알 수 있다. 이로부터 본 발명에 따른 데이터 전송 방법은 현저한 서비스 품질 향상 효과를 가져오고, 패킷 손실이 있는 환경에서도 일정 수준 이상의 서비스 품질을 보장할 수 있다는 것을 알 수 있다.
도 14b는 패킷 손실률에 따른 SSE 측정 결과를 도시한다.
SSE(Siding Sumset Entropy)는 일정 윈도우를 이동해가며 엔트로피 값을 더하여 계산된 값으로 전송 측의 원본 데이터와 수신 데이터의 음성 레벨 차이를 보다 정확하게 계산하기 위해 도입된 메트릭이다. SSE는 MOS와는 달리 객관적인 서비스 품질을 측정하기 위한 메트릭 중 하나로 볼 수 있으며, SSE 값이 1에 가까울수록 수신 데이터가 원본과 유사하다는 것을 나타낸다. 즉, SSE 값이 1에 가까울수록 서비스 품질이 높다는 것을 의미한다.
도 14b를 참고하면, 그래프의 가로 축은 패킷 손실률(%)을 나타내고 세로 축은 SSE 측정 값을 나타낸다. 각 영상 통화 시스템은 패킷 손실률이 커질수록 객관적인 서비스 품질이 떨어지고 있음을 알 수 있으나, 본 발명에 따른 영상 통화 시스템은 다른 영상 통화 시스템에 비해 떨어지는 정도가 현저히 낮다는 것을 알 수 있다. 특히, 구글의 WebRTC는 패킷 손실률이 커질수록 급격하게 서비스 품질이 떨어지는 것을 볼 수 있다. 이와 같이, 본 발명에 따른 데이터 전송 방법은 객관적으로 서비스의 품질을 향상시키는 효과가 있음을 알 수 있다.
마지막으로, 도 14c는 패킷 손실률이 35% 인 경우 본 발명에 따른 영상 통화 시스템과 구글의 WebRTC의 수신 단에서의 음성 파형을 도시한다.
도 14c를 참고하면, 그래프의 가로 축은 시간 축을 나타내고 세로 축은 음성 파형의 세기를 나타낸다. 구글의 WebRTC의 수신 단 음성 파형을 살펴보면, 각 100ms 길이로 두 구간의 버스트 패킷 유실 구간이 나타나는 것을 볼 수 있다. 버스트 패킷 유실로 인하여 데이터들을 미수신 했음에도 미세한 파형이 나오는 이유는 구글의 WebRTC 내부의 패킷 손실 은폐 기능과 재생 제어 기능이 동작하였기 때문이다.
한편, 본 발명에 따른 영상 통화 시스템의 수신 단 음성 파형을 살펴보면, 본 발명에 따른 영상 통화 시스템에서는 버스트 패킷 유실 구간이 나타나지 않고 음성 패킷들이 정상적으로 수신되었음을 알 수 있다. 이는 본 발명에 따른 데이터 전송 방법이 시간 차 재전송을 통해 버스트 패킷 유실 구간을 회피했기 때문이다. 이와 같이, 본 발명에 따른 데이터 전송 방법은 버스트 패킷 오류에 강점을 갖고 있으며, 대량으로 패킷이 유실되는 상황에서도 일정 수준 이상의 서비스 품질을 유지할 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (14)

  1. 데이터 전송 장치가, 데이터를 데이터 수신 장치로 전송하는 단계;
    상기 데이터 전송 장치가, 기 설정된 규칙에 따라 상기 데이터 중 시간 차 재전송 대상 데이터를 선별하는 단계;
    상기 데이터 전송 장치가, 상기 시간 차 재전송 대상 데이터의 특성에 따라 재전송 시간 간격(Retransmission Time Interval)을 결정하는 단계;
    상기 데이터 전송 장치가, 상기 재전송 시간 간격 도래 시점에, 네트워크의 상태를 기준으로 상기 시간 차 재전송의 가능 여부를 판단하는 단계; 및
    상기 시간 차 재전송이 가능하다고 판단된 경우, 상기 데이터 전송 장치가, 상기 시간 차 재전송 대상 데이터를 상기 데이터 수신 장치에 재전송하는 단계를 포함하는,
    데이터 전송 방법.
  2. 제1 항에 있어서,
    상기 시간차 재전송 대상 데이터의 선별 단계 전에 상기 데이터의 시간 차 재전송의 필요 여부를 판단하는 단계를 더 포함하고,
    상기 선별하는 단계, 상기 결정하는 단계, 상기 판단하는 단계 및 상기 재전송하는 단계는, 상기 데이터의 시간 차 재전송이 필요한 것으로 판단된 경우에 한하여 수행되는 단계인,
    데이터 전송 방법.
  3. 제1 항에 있어서,
    상기 데이터는,
    일정 시간 내에 상기 데이터 수신 장치로 전달이 보장되어야 하는 실시간 데이터를 포함하는,
    데이터 전송 방법.
  4. 제2 항에 있어서,
    상기 시간 차 재전송의 필요 여부를 판단하는 단계는,
    상기 데이터 수신 장치와의 RTT(Round Trip Time)를 얻어오는 단계;
    상기 데이터의 특성에 따라 최대 지연 시간을 결정하는 단계;
    상기 RTT와 상기 최대 지연 시간을 비교하여 상기 RTT가 더 작은 경우, 재전송 요청에 의해 재전송을 수행하는 로직이 별도로 존재하는지 판단하는 단계; 및
    상기 로직이 존재하는 경우, 상기 시간 차 재전송이 필요하지 않다고 판단하는 단계를 포함하는,
    데이터 전송 방법.
  5. 제2 항에 있어서,
    상기 시간 차 재전송의 필요 여부를 판단하는 단계는,
    상기 데이터의 특성에 따라 최대 지연 시간을 결정하는 단계;
    재전송 요청에 의해 재전송을 수행하는 로직이 별도로 존재하는지 판단하는 단계; 및
    상기 로직이 존재하는 경우, 상기 재전송 기능에 설정된 재전송 타임아웃(Retransmission Timeout) 값을 얻어오는 단계; 및
    상기 재전송 타임아웃 값과 상기 최대 지연 시간을 비교하여 상기 재전송 타임아웃 값이 더 작은 경우, 상기 시간 차 재전송이 필요하지 않다고 판단하는 단계를 포함하는,
    데이터 전송 방법.
  6. 제1 항에 있어서,
    상기 시간 차 재전송 대상 데이터를 선별하는 단계는,
    상기 데이터 중 음성 데이터를 식별하는 단계;
    식별된 음성 데이터 중 노이즈 데이터를 제외하는 단계; 및
    상기 노이즈 데이터가 제외된 음성 데이터 중 기 설정된 레벨 이상의 신호 세기를 가진 음성 데이터를 시간 차 재전송 대상 데이터로 선별하는 단계를 포함하는,
    데이터 전송 방법.
  7. 제1 항에 있어서,
    상기 재전송 시간 간격을 결정하는 단계는,
    상기 시간 차 재전송 대상 데이터의 특성에 따라 최대 지연 시간을 결정하는 단계; 및
    상기 재전송 시간 간격을 상기 최대 지연 시간보다 작거나 같은 값으로 설정하는 단계를 포함하는,
    데이터 전송 방법.
  8. 제7 항에 있어서,
    상기 최대 지연 시간을 결정하는 단계는,
    상기 시간 차 재전송 대상 데이터의 크기가 작을수록 상기 최대 지연 시간을 작은 값으로 결정하는 단계를 포함하는,
    데이터 전송 방법.
  9. 제7 항에 있어서,
    상기 재전송 시간 간격을 상기 최대 지연 시간보다 작거나 같은 값으로 설정하는 단계는,
    상기 데이터 수신 장치의 지터 버퍼 값(Jitter Buffer Value)을 얻어오는 단계;
    상기 재전송 시간 간격과 상기 지터 버퍼 값을 비교하는 단계; 및
    상기 지터 버퍼 값이 더 작은 경우, 상기 재전송 시간 간격을 상기 지터 버퍼 값으로 갱신하는 단계를 포함하는,
    데이터 전송 방법.
  10. 제7 항에 있어서,
    상기 재전송 시간 간격을 상기 최대 지연 시간보다 작거나 같은 값으로 설정하는 단계는,
    상기 데이터 수신 장치와의 지터를 얻어오는 단계;
    상기 지터가 클수록 상기 재전송 시간 간격을 더 작은 값으로 갱신하는 단계를 포함하는,
    데이터 전송 방법.
  11. 제7 항에 있어서,
    상기 데이터 중 시간 차 재전송 대상 데이터를 선별하는 단계는,
    기 설정된 규칙에 따라 선별된 시간 차 재전송 대상 데이터의 우선순위를 부여하는 단계를 포함하고,
    상기 재전송 시간 간격을 상기 최대 지연 시간보다 작거나 같은 값으로 설정하는 단계는,
    상기 시간 차 재전송 대상 데이터의 우선순위가 높을수록 상기 재전송 시간 간격을 더 작은 값으로 갱신하는 단계를 포함하는,
    데이터 전송 방법.
  12. 제1 항에 있어서,
    상기 시간 차 재전송의 가능 여부를 판단하는 단계는,
    상기 네트워크의 가용 대역폭 정보를 얻어오는 단계;
    상기 가용 대역폭이 존재하지 않는 경우, 상기 시간 차 재전송 대상 데이터의 최대 지연 시간 범위 내에서 상기 시간 차 재전송을 지연하는 단계; 및
    상기 지연된 시점에 다시 상기 시간 차 재전송이 가능한지 여부를 판단하는 단계를 포함하는,
    데이터 전송 방법.
  13. 제12 항에 있어서,
    상기 시간 차 재전송 대상 데이터의 최대 지연 시간 범위 내에서 상기 시간 차 재전송을 지연하는 단계는,
    상기 시간 차 재전송 대상 데이터의 우선순위가 기 설정된 우선순위 이상인 경우에 한하여 상기 시간 차 재전송을 지연하는 단계를 포함하는,
    데이터 전송 방법.
  14. 제12 항에 있어서,
    상기 시간 차 재전송 대상 데이터의 최대 지연 시간 범위 내에서 상기 시간 차 재전송을 지연하는 단계는,
    상기 시간 차 재전송 대상 데이터의 우선순위가 기 설정된 우선순위 미만인 경우, 상기 시간 차 재전송을 취소하는 단계를 포함하는,
    데이터 전송 방법.
KR1020160066508A 2016-05-30 2016-05-30 데이터 전송 방법 및 그 기능이 구비된 컴퓨팅 장치 KR20170135107A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160066508A KR20170135107A (ko) 2016-05-30 2016-05-30 데이터 전송 방법 및 그 기능이 구비된 컴퓨팅 장치
US15/608,147 US20170346601A1 (en) 2016-05-30 2017-05-30 Data transmission method and computing apparatus having data transmission function
CN201710397484.1A CN107453848A (zh) 2016-05-30 2017-05-31 数据传送方法及数据传送装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160066508A KR20170135107A (ko) 2016-05-30 2016-05-30 데이터 전송 방법 및 그 기능이 구비된 컴퓨팅 장치

Publications (1)

Publication Number Publication Date
KR20170135107A true KR20170135107A (ko) 2017-12-08

Family

ID=60419055

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160066508A KR20170135107A (ko) 2016-05-30 2016-05-30 데이터 전송 방법 및 그 기능이 구비된 컴퓨팅 장치

Country Status (3)

Country Link
US (1) US20170346601A1 (ko)
KR (1) KR20170135107A (ko)
CN (1) CN107453848A (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3038180A1 (fr) * 2015-06-26 2016-12-30 Orange Adaptation d'un profil de transmission d'une communication web temps reel
JP6923807B2 (ja) * 2018-05-24 2021-08-25 日本電信電話株式会社 転送装置、転送方法及び転送プログラム
CN108933833A (zh) * 2018-07-17 2018-12-04 同济大学 一种基于WebRTC的无人机操控系统及连接建立方法
CN110401926A (zh) * 2019-05-17 2019-11-01 中国石油大学(华东) 一种适用于物联网数据融合差错控制的数据传输方法
EP4055742A1 (en) * 2019-11-07 2022-09-14 Telefonaktiebolaget LM Ericsson (publ) Method and device for determining transmission priority
CN113051433A (zh) * 2019-12-27 2021-06-29 华为技术有限公司 数据处理方法和装置
CN111556345B (zh) * 2020-03-19 2023-08-29 视联动力信息技术股份有限公司 一种网络质量检测的方法、装置、电子设备及存储介质
CN113242113A (zh) * 2021-04-30 2021-08-10 北京汇钧科技有限公司 数据传输控制方法、装置、电子设备及存储介质
CN113259990B (zh) * 2021-06-28 2021-11-02 南京微鲤科技有限公司 用于识别的智能信息传输系统及传输方法
CN113542388A (zh) * 2021-07-09 2021-10-22 深圳华锐金融技术股份有限公司 数据可靠传输方法、装置、计算机设备和存储介质
CN113872733B (zh) * 2021-09-29 2024-01-05 天翼物联科技有限公司 报文重发方法、装置、计算机设备及计算机可读存储介质
CN114285762A (zh) * 2021-12-03 2022-04-05 网宿科技股份有限公司 Rtt的更新方法、更新装置、处理器与通信系统
CN116112128B (zh) * 2023-04-14 2023-06-27 海马云(天津)信息技术有限公司 发送重传请求的方法及装置、数据接收端设备和存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002077233A (ja) * 2000-08-25 2002-03-15 Matsushita Electric Ind Co Ltd リアルタイム情報受信装置
US7969901B2 (en) * 2004-08-12 2011-06-28 Lantiq Deutschland Gmbh Method and device for compensating for runtime fluctuations of data packets
KR100993648B1 (ko) * 2005-07-08 2010-11-10 후지쯔 가부시끼가이샤 송신 장치, 수신 장치, 정보 통신 방법
US20150103885A1 (en) * 2013-10-11 2015-04-16 Oovoo Llc Real time ip video transmission with high resilience to network errors

Also Published As

Publication number Publication date
US20170346601A1 (en) 2017-11-30
CN107453848A (zh) 2017-12-08

Similar Documents

Publication Publication Date Title
KR20170135107A (ko) 데이터 전송 방법 및 그 기능이 구비된 컴퓨팅 장치
US8149704B2 (en) Communication apparatus and data communication method
US8451727B2 (en) Apparatus and method for controlling congestion occurrence in a communication network
US7839859B2 (en) Voice adaptive gateway pacing methods and systems for wireless multi-hop networks
KR100918731B1 (ko) 큐 버퍼를 제어하는 방법
JP4697525B2 (ja) 送受信システム、送信装置および送信方法、受信装置および受信方法、並びにプログラム
US7707303B2 (en) Method and devices for controlling retransmissions in data streaming
US20080239953A1 (en) Method and apparatus for minimizing congestion in gateways
US20130170342A1 (en) Data communication systems and methods
US8830852B2 (en) Communication device, communication system, program, and communication method
JP5867188B2 (ja) 情報処理装置、輻輳制御方法および輻輳制御プログラム
US9860182B2 (en) Data transmission device, data transmission method, and program therefor
CN106878192B (zh) 一种自适应mptcp的数据调度方法
US20080239948A1 (en) Speculative congestion control system and cross-layer architecture for use in lossy computer networks
KR20160127511A (ko) 통신 시스템에서 하향링크 전송률 제어를 위한 장치 및 방법
CN113014505B (zh) 一种高动态拓扑卫星网络中时延区分的传输控制方法
US20160294505A1 (en) Data rate adaptation in a wireless transmitter
US20100202469A1 (en) Queue management system and methods
WO2021083160A1 (zh) 数据传输的方法和装置
JPWO2010073979A1 (ja) 通信品質監視装置、通信システム、通信品質監視方法及びそのプログラム
CN117156167A (zh) 一种融合传输系统的自适应数据传输方法及装置
US10075965B2 (en) Apparatus and method for detecting and alleviating unfairness in wireless network
US8155074B1 (en) Methods and systems for improving performance of applications using a radio access network
JP2010213098A (ja) 優先制御装置および優先制御方法
US9391898B2 (en) Non-congestive loss in HSPA congestion control