KR101385784B1 - 데이터 송신장치 및 그 방법과 전송률 결정 방법 - Google Patents

데이터 송신장치 및 그 방법과 전송률 결정 방법 Download PDF

Info

Publication number
KR101385784B1
KR101385784B1 KR1020110126968A KR20110126968A KR101385784B1 KR 101385784 B1 KR101385784 B1 KR 101385784B1 KR 1020110126968 A KR1020110126968 A KR 1020110126968A KR 20110126968 A KR20110126968 A KR 20110126968A KR 101385784 B1 KR101385784 B1 KR 101385784B1
Authority
KR
South Korea
Prior art keywords
data
control period
transmission
rate
transmission control
Prior art date
Application number
KR1020110126968A
Other languages
English (en)
Other versions
KR20130085458A (ko
Inventor
황진범
이창훈
오규삼
우경은
송성학
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020110126968A priority Critical patent/KR101385784B1/ko
Priority to US13/689,856 priority patent/US20130136002A1/en
Publication of KR20130085458A publication Critical patent/KR20130085458A/ko
Application granted granted Critical
Publication of KR101385784B1 publication Critical patent/KR101385784B1/ko

Links

Images

Classifications

    • 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/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • 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/11Identifying congestion
    • H04L47/115Identifying congestion using a dedicated packet

Landscapes

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

Abstract

네트워크를 통해서 수신장치로 데이터를 병렬 전송하는 복수의 라이트 테스크들, 및 고정 전송률 동작모드 또는 네트워크의 상태에 따라서 전송률이 가변되는 가변 전송률 동작모드에서 복수의 라이트 테스크들이 동작하도록 제어하는 제어 테스크를 포함하는 데이터 송신장치가 개시된다. 이로써, 병렬 TCP 스트림을 사용하되 크로스 트래픽과 네트워크의 대역폭을 효율적으로 공유할 수 있게 된다.

Description

데이터 송신장치 및 그 방법과 전송률 결정 방법{APPARATUS AND METHOD FOR TRANSMITTING DATA AND METHOD FOR DETERMINATION OF TRANSMISSION RATE}
본 발명은 데이터 송신장치 및 방법, 전송률 결정 방법, 및 기록매체에 관한 것이다.
단일 TCP 스트림을 사용하는 데이터 송수신 기술의 경우 라운드트립타임(RTT)이 길고, 패킷 유실률이 높은 네트워크 경로에서 사용될 경우에는 전송률이 급격히 저하되고, 네트워크의 대역폭을 충분히 사용하지 못하는 비효율성이 존재한다. 이를 해결하기 위해서 병렬 TCP 스트림을 사용하는 데이터 송수신 기술이 있지만, 네트워크의 대역폭을 공격적으로 점유하여 크로스 트래픽의 전송률을 심각하게 저하시킬 수 있는 문제점이 존재한다.
본 발명적 개념의 예시적 실시예에 따르면, 병렬 TCP 스트림을 사용하되 크로스 트래픽과 네트워크의 대역폭을 효율적으로 공유할 수 있는 데이터 송신장치 및 그 방법이 제공된다.
본 발명적 개념의 다른 예시적 실시예에 따르면, 크로스 트래픽이 없는 경우 네트워크의 대역폭을 효과적으로 활용하고, 크로스 트래픽이 유입되는 경우는 정책적으로 네트워크 대역폭을 양보하여 크로스 트래픽의 전송률이 심각하게 저하되는 것을 방지할 수 있는 데이터 송신장치 및 방법이 제공된다.
본 발명적 개념의 다른 예시적 실시예에 따르면, 네트워크 상황에 따라서 4가지의 동작모드에 기초하여 데이터를 송신할 수 있는 데이터 송신장치 및 방법이 제공된다.
본 발명적 개념의 다른 예시적 실시예에 따르면, 네트워크 상황에 따라서 전송률을 달리하는 병렬 TCP 스트림 기반의 데이터 송신 장치 및 방법이 제공된다.
본 발명적 개념의 예시적 실시예에 따르면, 네트워크를 통해서 수신장치로 데이터를 병렬 전송하는 복수의 라이트 테스크들; 및 고정 전송률 동작모드 또는 상기 네트워크의 상태에 따라서 전송률이 가변되는 가변 전송률 동작모드에서 상기 복수의 라이트 테스크들이 동작하도록 제어하는 제어 테스크; 를 포함하는 것을 특징으로 하는 데이터 송신장치가 제공될 수 있다.
가변 전송률 동작모드는, 최소 전송률 동작모드, 공평 전송률 동작모드, 및 배수 전송률 동작모드 중 적어도 하나의 동작모드를 포함할 수 있다.
최소 전송률 동작모드에서, 복수의 라이트 테스크들은 상기 네트워크의 상황에 따라서 가변되는 전송률에 의해 데이터를 전송하되, 상기 가변되는 전송률은 항상 기 설정된 최소 전송률 이상에서 가변되는 것일 수 있다.
공평 전송률 동작모드에서, 복수의 라이트 테스크들 중 어느 하나의 테스크는, 송신장치와 수신장치간 데이터 통신 프로토콜의 혼잡 제어 방법에 따라서 데이터를 전송하고, 상기 복수의 라이트 테스크들 중 나머지 테스크들은 상기 네트워크의 상황에 따라서 가변되는 전송률에 의해 데이터를 전송하는 것일 수 있다.
배수 전송률 동작모드에서, 복수의 라이트 테스크들 중 n(여기서, n은 상기 복수의 라이트 테스크들의 개수보다 적은 양의 정수임)개의 테스크는, 상기 송신장치와 수신장치간의 데이터 통신 프로토콜의 혼잡 제어 방법에 따라서 데이터를 전송하고, 상기 복수의 라이트 테스크들 중 나머지 테스크들은 상기 네트워크의 상황에 따라서 가변되는 전송률에 따라서 데이터를 전송하는 것일 수 있다.
송신장치와 수신장치간의 데이터 통신 프로토콜은 TCP 일 수 있다.
복수의 소켓 라이터 테스크들은 1부터 순차적으로 부여되는 ID(여기서, ID는 양의 정수임)를 가지고 있으며, 상기 복수의 라이트 테스크들은 각자 자기의 ID와 동작모드를 지정하는 값(n)을 비교하여 자신의 동작모드를 결정하며, 상기 동작모드를 지정하는 값(n)은 상기 제어 테스크에 의해 지정된 것일 수 있다.
복수의 소켓 라이터 테스크들은 1부터 순차적으로 부여되는 ID(여기서, ID는 양의 정수임)를 가지고 있으며, 상기 복수의 라이트 테스크들은 각자 자기의 ID와 동작모드를 지정하는 값(n)을 비교하여 자신의 동작모드를 결정하며, 상기 동작모드를 지정하는 값(n)은 상기 제어 테스크에 의해 지정된 것일 수 있다.
복수의 라이트 테스크들 중에서, 동작모드를 지정하는 값(n)보다 작거나 같은 ID를 가진 라이트 테스크는 상기 송신장치와 수신장치간의 데이터 통신 프로토콜의 혼잡 제어 방법에 따라서 데이터를 전송하고, 상기 동작모드를 지정하는 값(n)보다 큰 ID를 가진 라이트 테스크는 상기 제어 테스크에 의해 정해진 전송률에 따라서 데이터를 전송하는 것일 수 있다.
제어 테스크는, 복수의 라이트 테스크들을 가변 전송률 동작모드에서 동작시킬 때, 네트워크 상에서 상기 데이터가 전송되는 경로 상에 존재하는 적어도 하나의 큐에 전송제어주기 동안 대기하는 데이터 량에 기초하여 상기 복수의 라이트 테스크들의 전송속도를 제어하는 것일 수 있다.
큐에 대기하는 데이터 량은, 다음 수식
QLength = (MeanQueueDelay - MinFDelay) × AvgRxRate
에 의해 정해지고,
여기서,MeanQueueDelay는 현재 전송제어주기 동안의 포워드 딜레이들의 평균 값이고, MinFDelay는 포워드 딜레이 최소값으로서 전송 시작 시점부터 현재 전송제어주기까지의 포워드 딜레이 값들 중 최소값이며, AvgRxRate는 현재 전송제어주기 동안의 데이터 수신 평균 속도 일 수 있다.
데이터 수신 평균 속도는, 상기 현재 전송제어주기 동안 상기 수신장치가 수신한 데이터량을 상기 전송제어주기로 나눈 값인 것일 수 있다.
현재 전송제어주기 동안 상기 수신장치가 수신한 데이터량은, 전송 시작 시점부터 현재 전송제어주기까지 상기 수신장치가 수신한 데이터량에서, 전송 시작 시점부터 상기 이전 전송률 제어 시점까지 상기 수신장치가 수신한 데이터량을 뺀 값인 것일 수 있다.
본 송신장치는, 수신장치로 탐사패킷을 송신하고, 상기 수신장치로부터 탐사응답패킷을 수신하는 프로브 테스크;를 더 포함하며, 상기 탐사응답패킷은, i) 현재 전송제어주기 동안 상기 송신장치에서 수신장치로 전송한 데이터량 또는 이를 계산할 수 있는 정보, 및 ii) 상기 탐사패킷의 포워드 딜레이를 포함하고 있는 것일 수 있다.
프로브 테스크는 UDP 프로토콜에 의해 상기 탐사패킷을 송신하고, 탐사응답패킷을 수신하는 것일 수 있다.
프로브 테스크는, 현재 전송제어주기 동안에 복수의 탐사패킷을 송신하고, 각각에 대한 탐사응답패킷을 수신하는 것일 수 있다.
탐사패킷은 자신의 송신시간을 포함하고 있는 것일 수 있다.
본 발명적 개념의 다른 예시적 실시예에 따르면, 네트워크를 통해서 수신장치에게 데이터를 병렬 전송하는 복수의 라이트 테스크들; 및 상기 복수의 라이트 테스크들 중 적어도 어느 하나의 라이트 테스크의 데이터 전송률을 제어하는 제어 테스크; 를 포함하는 것을 특징으로 하는 데이터 송신장치가 제공될 수 있다.
제어 테스크는, 다음 수식
데이터량 = (포워드 딜레이 평균값 - 포워드 딜레이 최소값)×데이터 수신 평균 속도)
에 의해 데이터량을 계산하며,
복수의 라이트 테스크들 중 적어도 어느 하나의 라이트 테스크는, 데이터 전송주기 마다 상기 데이터량만큼 전송하는 것일 수 있다.
본 데이터 송신장치는, 상기 수신장치로 탐사패킷을 송신하고, 상기 수신장치로부터 탐사응답패킷을 수신하는 프로브 테스크;를 더 포함하며, 탐사응답패킷은, i) 현재 전송제어주기 동안 상기 송신장치에서 수신장치로 전송한 데이터량 또는 이를 계산할 수 있는 정보, 및 ii) 상기 탐사패킷의 포워드 딜레이를 포함할 수 있다.
제어 테스크는, 복수의 라이트 테스크들을 가변 전송률 동작모드에서 동작시킬 때, 상기 네트워크 상에서 상기 데이터가 전송되는 경로 상에 존재하는 적어도 하나의 큐에 전송제어주기 동안 대기하는 데이터 량에 기초하여 상기 복수의 라이트 테스크들의 전송속도를 제어하는 것일 수 있다.
제어 테스크는 현재 전송제어주기 동안 상기 적어도 하나의 큐에 대기하는 데이터 량을 계산하고, 계산한 데이터 량과 임계값을 비교한 결과에 따라서 다음 전송제어주기의 전송률을 결정하는 것일 수 있다.
본 발명적 개념의 다른 예시적 실시예에 따르면, 송신장치의 복수의 라이트 테스크들이 네트워크를 통해서 수신장치로 데이터를 병렬 전송하는 단계; 및
네트워크의 상태에 따른 전송률을 계산하는 단계; 를 포함하며, 상기 병렬 전송하는 단계는, 상기 복수의 라이트 테스크들이, 고정 전송률 동작모드 또는 네트워크의 상태에 따라서 전송률이 가변되는 가변 전송률 동작모드에서 데이터를 전송하는 단계인 것을 특징으로 하는 데이터 송신방법이 제공된다.
본 발명적 개념의 다른 예시적 실시예에 따르면, 네트워크를 통해서 데이터를 송신하는 데이터 송신장치의 데이터 전송률 결정방법에 있어서, 상기 네트워크 상에서 상기 데이터가 전송되는 경로 상에 존재하는 적어도 하나의 큐에 전송제어주기 동안 대기하는 데이터 량을 계산하는 단계; 및 계산된 상기 데이터량에 기초하여 상기 데이터의 전송률을 계산하는 단계;를 포함하는 것을 특징으로 하는 데이터 전송률 결정방법이 제공될 수 있다.
본 발명적 개념의 다른 예시적 실시예에 따르면, 컴퓨터에 상술한 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체가 제공된다.
본 발명적 개념의 하나 이상의 실시예에 따르면, 병렬 TCP 스트림을 사용하되 크로스 트래픽의 전송률을 일정 수준 보장할 수 있게 된다.
본 발명적 개념의 하나 이상의 실시예에 따르면, 크로스 트래픽이 없는 경우에는 네트워크의 대역폭을 효과적으로 활용하되, 크로스 트래픽이 유입되는 경우에는 정책적으로 네트워크 대역폭을 양보하여 크로스 트래픽의 전송률이 심각하게 저하되는 것을 방지할 수 있다.
본 발명적 개념의 하나 이상의 실시예에 따르면, 네트워크 상황에 따라서 4가지의 동작모드에 기초하여 데이터를 송신할 수 있다.
도 1은 본 발명적 개념의 예시적 실시예에 따른 데이터 송수신 장치를 설명하기 위한 도면이고,
도 2는 도 1의 데이터 송수신 장치를 설명하기 위한 도면이고,
도 3은 본 발명적 개념의 예시적 실시예에 따른 데이터 송신 방법을 설명하기 위한 도면이고,
도 4는 본 발명적 개념의 예시적 실시예에 따른 탐사패킷을 설명하기 위한 도면이고,
도 5는 본 발명적 개념의 예시적 실시예에 따른 탐사응답패킷을 설명하기 위한 도면이고,
도 6은 본 발명적 개념의 다른 예시적 실시예에 따른 송신방법을 설명하기 위한 흐름도이고,
도 7은 본 발명적 개념에 따른 탐사패킷을 설명하기 위한 도면이고,
도 8은 본 발명적 개념에 따른 예시적 실시예에 따른 전송률을 계산하는 방법을 설명하기 위한 흐름도이고, 그리고
도 9는 본 발명적 개념에 따른 컴퓨터 판독가능한 기록매체를 설명하기 위한 도면이다.
이상의 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시예들은 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다. 본 명세서에서, 어떤 구성요소가 다른 구성요소 상에 있다고 언급되는 경우에 그것은 다른 구성요소 상에 직접 형성될 수 있거나 또는 그들 사이에 제 3의 구성요소가 게재될 수도 있다는 것을 의미한다.
또한, 어떤 엘리먼트 (또는 구성요소)가 다른 엘리먼트(또는 구성요소) 상(ON)에서 동작 또는 실행된다고 언급될 때, 그 엘리먼트(또는 구성요소)는 다른 엘리먼트(또는 구성요소)가 동작 또는 실행되는 환경에서 동작 또는 실행되거나 또는 다른 엘리먼트(또는 구성요소)와 직접 또는 간접적으로 상호 작용을 통해서 동작 또는 실행되는 것으로 이해되어야 할 것이다.
어떤 엘리먼트, 구성요소, 장치, 또는 시스템이 프로그램 또는 소프트웨어로 이루어진 구성요소를 포함한다고 언급되는 경우, 명시적인 언급이 없더라도, 그 엘리먼트, 구성요소, 장치, 또는 시스템은 그 프로그램 또는 소프트웨어가 실행 또는 동작하는데 필요한 하드웨어(예를 들면, 메모리, CPU 등)나 다른 프로그램 또는 소프트웨어(예를 들면 운영체제나 하드웨어를 구동하는데 필요한 드라이버 등)를 포함하는 것으로 이해되어야 할 것이다.
또한 어떤 엘리먼트(또는 구성요소)가 구현됨에 있어서 특별한 언급이 없다면, 그 엘리먼트(또는 구성요소)는 소프트웨어, 하드웨어, 또는 소프트웨어 및 하드웨어 어떤 형태로도 구현될 수 있는 것으로 이해되어야 할 것이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다(comprises)' 및/또는 '포함하는(comprising)'은 언급된 구성요소는 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
이하, 도면을 참조하여 본 발명을 상세히 설명하도록 한다. 아래의 특정 실시예들을 기술하는데 있어서, 여러 가지의 특정적인 내용들은 발명을 더 구체적으로 설명하고 이해를 돕기 위해 작성되었다. 하지만 본 발명을 이해할 수 있을 정도로 이 분야의 지식을 갖고 있는 독자는 이러한 여러 가지의 특정적인 내용들이 없어도 사용될 수 있다는 것을 인지할 수 있다. 어떤 경우에는, 발명을 기술하는 데 있어서 흔히 알려졌으면서 발명과 크게 관련 없는 부분들은 본 발명을 설명하는 데 있어 별 이유 없이 혼돈이 오는 것을 막기 위해 기술하지 않음을 미리 언급해 둔다.
도 1은 본 발명적 개념의 예시적 실시예에 따른 데이터 송수신 장치를 설명하기 위한 도면이다.
도 1을 참조하면, 본 데이터 송수신 장치는, 데이터를 전송하는 송신장치(100)와 데이터를 수신하는 수신장치(200)를 포함한다.
본 예시적 실시예에 따르면, 송신장치(100)와 수신장치(200)는 데이터 전송채널과 탐사채널을 통해서 데이터를 송수신할 수 있다.
본 예시적 실시예에 따르면, 데이터 전송채널은 TCP와 같은 통신프로토콜에 의해 데이터를 송수신되고, 탐사채널은 UDP와 같은 통신프로토콜에 의해 데이터가 송수신될 수 있다. 한편, 이러한 통신프로토콜들은 예시적인 것으로서 본 발명적 개념이 TCP와 UDP 프로토콜에만 한정되는 것이 아님을 알아야 한다. UDP 프로토콜 대신에 사용될 수 있는 통신프로토콜은 UDP 프로토콜과 같이 재전송을 허용하지 않는 프로토콜이 바람직하다.
본 예시적 실시예에 따르면, 탐사채널을 통해서 네트워크 상황에 대한 정보를 획득할 수 있으며, 예를 들면, 탐사채널을 통해서 송수신되는 탐사패킷과 탐사응답패킷을 통해서 네트워크 상황에 대한 정보를 획득할 수 있다.
본 예시적 실시예에 따르면, 송신장치(100)는, 네트워크를 통해서 수신장치(200)로 데이터를 병렬 전송하며, 고정 전송률 동작모드 또는 네트워크의 상태에 따라서 전송률이 가변되는 가변 전송률 동작모드에서 데이터를 전송할 수 있다.
본 예시적 실시예에 따르면, 송신장치(100)는, 고정 전송률 동작모드 또는 네트워크의 상태에 따라서 전송률이 가변될 수 있는 가변 전송률 동작모드 중 어느 하나의 동작모드에서 동작될 수 있다. 여기서, 가변 전송률 동작모드는, 최소 전송률 동작모드, 공평 전송률 동작모드, 및 배수 전송률 동작모드를 포함한다.
일 예시적 실시예에 따르면 동작모드는 송신 또는 수신 장치의 관리자에 의해서 결정될 수 있으며, 송신장치(100)는 관리자에 의해 결정된 동작모드에 따라서 동작하게 된다. 이처럼, 관리자에 의해 동작모드가 결정되는 것은 예시적인 것으로서, 본 발명적 개념이 그러한 실시예에만 한정되는 것은 아니며, 관리자가 아닌 다른 조건에 의해 동작모드가 결정되도록 할 수도 있을 것이다. 예를 들면, 이벤트 또는 스케쥴에 따라 동작모드가 결정되거나, 또는 네트워크 상황에 따라서 동작모드가 결정되도록 하는 것과 같이 다양한 방법들로서 동작모드가 결정되도록 할 수 있다. 이하에서는, 동작모드들에 대하여 설명한다.
고정 전송률 동작모드는 일정한 전송률로 데이터를 전송하는 것으로서 지정된 속도만큼의 네트워크 대역폭을 사용하고, 나머지 대역폭은 크로스 트래픽에 양보하는 동작모드이다.
최소 전송률 동작모드는, 네트워크의 상황에 따라서 전송률이 가변되는 동작모드이며, 최소 전송률은 보장되는 동작모드이다. 최소 전송률 동작모드는 크로스트래픽이 없는 경우에는 네트워크 대역폭을 최대한 사용할 수 있고, 크로스 트래픽이 존재하는 경우에는 크로스 트래픽에 대역폭을 양보하되, 미리 설정된 최소 전송률은 보장되는 동작모드이다.
공평 전송률 동작모드는, 크로스 트래픽이 없는 경우에는 네트워크 대역폭을 최대한 사용하고, 크로스 트래픽이 있는 경우에는 크로스 트래픽과 동일한 비율로 네트워크 대역폭을 사용하는 동작모드이다. 예를 들면, 송신장치(100)가 가지는 복수의 라이트 테스크들 중에서 어느 하나의 테스크는, 송신장치와 수신장치간 데이터 통신 프로토콜, 예를 들면, TCP의 혼잡 제어 방법에 따라서 데이터를 전송하고, 나머지 라이트 테스크들은 네트워크의 상황에 따라서 전송률을 가변시키면서 데이터를 전송할 수 있다.
배수 전송률 동작모드는, 크로스 트래픽이 없는 경우에는 네트워크 대역폭을 최대한 사용하고, 크로스 트래픽이 있는 경우에는 크로스 트래픽의 대역폭보다 일정 배수의 트래픽을 사용하는 동작모드이다. 예를 들면, 송신장치(100)가 가지는 라이트 테스크들 중 n(여기서, n은 상기 복수의 라이트 테스크들의 개수보다 적은 양의 정수임)개의 테스크는, TCP 프로토콜의 혼잡 제어 방법에 따라서 데이터를 전송하고, 나머지 테스크들은 네트워크의 상황에 따라서 전송률을 가변시키면서 데이터를 전송하는 동작모드이다.
배수 전송률 동작모드에서는, 크로스 트래픽이 사용하는 대역폭보다 적어도 n배의 대역폭을 사용할 수 있게 된다. 즉, 송신장치(100)는, 배수 전송률 동작모드하에서는, 크로스 트래픽이 없는 경우에는 대역폭을 모두 사용할 수 있지만, 크로스 트래픽이 존재하는 경우에는 크로스 트래픽보다 n배의 전송률로 데이터를 전송할 수 있다.
본 예시적 실시예에 따르면, 송신장치(100)는, 송신장치(100)가 수신장치(200)로 데이터를 전송하는 네트워크 상의 경로에 존재하는 큐(들)에 대기하는 데이터량에 기초하여 전송률을 결정하고, 그러한 전송률에 따라서 데이터를 수신장치(200)에게 전송한다. 네트워크 상의 경로에 존재하는 큐(들)에 대기하는 데이터량은, 하나의 전송제어주기 동안 대기하는 데이터량으로서 탐사 채널을 통해서 송신장치(100)가 추정할 수 있다.
한편, 본원 명세서에서 '전송제어주기'는 제어 테스크가 전송률을 결정하는 주기를 의미하고, '전송주기'는 라이터 테스크들이 writebytes 만큼의 데이터를 소켓에 라이팅하는 주기를 의미한다. 전송제어주기와 전송주기는 서로 같거나 서로 다를 수 도 있다.
도 7은 본 발명적 개념에 따른 탐사패킷을 설명하기 위한 도면이다.
도 7을 참조하면, 송신장치(100)는, 전송제어주기(T)마다 네트워크 상황이 반영된 데이터 전송률에 따라서 데이터를 전송한다. 송신장치(100)는, '다음 전송제어주기'에서의 데이터를 전송하는 전송률을 계산함에 있어서, '현재 전송제어주기'에서 네트워크 상의 데이터 송신 경로 상에 존재하는 큐(들)에 대기하는 데이터량을 계산하고, 그러한 데이터량에 기초하여 전송률을 결정하게 된다.
본 발명적 개념의 예시적 실시예에 따르면, 송신장치(100)는 아래 수학식들에 의해서 네트워크 상의 데이터 송신 경로 상에 존재하는 큐(들)에 대기하는 데이터량을 계산할 수 있다.
Figure 112011095281966-pat00001
여기서, QLength는 '현재 전송제어주기' 동안 네트워크 상의 데이터 송신 경로 상에 존재하는 큐(들)에 대기하는 데이터량이고, AvgQueueDelay는 '현재 전송제어주기' 동안의 평균 큐잉 딜레이이고, AvgRxRate는 '현재 전송제어주기' 동안의 데이터 수신 평균 속도이다.
한편, 평균 큐잉 딜레이(AvgQueueDelay)는 다음 수학식 2에 의해서 계산될 수 있다.
Figure 112011095281966-pat00002
여기서, MeanQueueDealy는 '현재 전송제어주기'동안의 포워드 딜레이들의 평균값이고, MinFDelay는 전송 시작 시점부터 '현재 전송제어주기'까지(즉, 다음 전송제어주기 시작전까지)의 포워드 딜레이들 중에서 가장 작은 값이다.
송신장치(100)는, 탐사 채널을 통해서 탐사패킷을 수차례 수신장치(200)로 전송하고, 탐사패킷 각각에 대한 탐사응답패킷을 수신장치(200)로부터 수신하여 각각의 포워드 딜레이를 계산할 수 있으며, 이러한 포워드 딜레이들을 평균한 값이 MeanQueueDelay에 해당한다.
또한, 송신장치(100)는 전송 시작 시점부터, 탐사 채널을 통해서 계산한 포워드 딜레이들 중 최저값을 MinFDelay로서 저장 및 유지하며, 새로운 포워드 딜레이를 얻을 때마다, 기존에 저장된 MinFDelay와 비교하여 새로운 포워드 딜레이가 더 작은 값이면, 기존에 저장된 최소 포워드 딜레이 대신에 새로운 포워드 딜레이를 MinFDelay로서 저장한다.
한편, AvgRxRate는 '현재 전송제어주기' 동안의 데이터 수신 평균 속도로서 다음의 수학식 3에 의해서 계산될 수 있다.
Figure 112011095281966-pat00003
여기서, Recvbytes는 전송제어주기 동안 수신장치(200)가 송신장치(100)로부터 수신한 데이터량이다.
본 발명적 개념의 예시적 실시예에 따른 송신장치(100)는 예시적으로 상술한 수학식들에 의해 QLength (이하, '큐 대기 데이터량'이라고 함)를 계산하고 이 값에 기초하여 전송률을 결정한다.
예를 들면, 송신장치(100)는, 큐 대기 데이터량과, 소정의 임계값을 비교하고, 큐 대기 데이터 량이 임계값보다 큰 경우는, 다음 전송제어주기의 전송률을 현재 전송제어주기에서의 전송률보다 큰 값으로 결정하고, 큐 대기 데이터 량이 임계값보다 작은 경우는 다음 전송제어주기의 전송률을 현재 전송제어주기에서의 전송률보다 작은 값으로 결정할 수 있다.
구체적인 예를 들면, 송신장치(100)는, 큐 대기 데이터 량이 임계값보다 큰 경우, 현재 전송제어주기에서의 전송률에 1 보다 큰 수를 곱하여 다음 전송제어주기의 전송률을 결정할 수 있고, 큐 대기 데이터 량이 임계값보다 작은 경우는 현재 전송제어주기에서의 전송률에 0 이상 1 미만의 수를 곱하여 다음 전송제어주기의 전송률을 결정할 수 있다. 송신장치(100)가 전송률을 결정하는 보다 구체적인 방법은 후술하는 도 2와 도 7을 참조하여 후술하기로 한다.
본 실시예에 따르면, 송신장치(100)는, 탐사 채널을 통해서 수신장치(200)로 탐사패킷을 송신하고, 수신장치(200)로부터 탐사응답패킷을 수신한다. 도 8에서 도시된 바와 같이, 송신장치(100)는 하나의 전송제어주기 동안 복수의 탐사패킷을 전송할 수 있고, 각각에 대한 탐사응답패킷을 수신할 수 있다. 도 8에서 각 전송제어주기별로 4개의 탐사패킷이 전송된 것으로 도시되었으나, 이러한 수치는 예시적인 것으로서 이보다 많거나 적을 수 있다는 것을 본 발명이 속하는 당업자라면 알아야 한다.
도 4는 탐사패킷의 예시적 실시예이고, 도 5는 탐사응답패킷의 예시적 실시예이다. 이들 도면을 참조하면, 탐사패킷은 자신이 송신된 시간(즉, 송신장치(100)에서 수신장치(200)로 송신된 시간)을 포함하고, 탐사응답패킷은, 전송 시작부터 현재 탐사패킷을 받을 때까지 수신장치(200)가 수신한 총 데이터량과, 탐사패킷의 포워드 딜레이를 포함한다.
수신장치(200)는, 탐사패킷에 포함된 송신시간에 기초하여 해당 패킷에 대한 포워드 딜레이를 계산한다. 즉, 수신장치(200)는, 탐사패킷을 수신한 수신시간과, 탐사패킷에 포함된 송신시간의 차이를 통하여 포워드 딜레이를 산출한다.
또한, 수신장치(200)는 전송 시작 시점부터 현재까지 수신한 총 수신 데이터량(TotRecvBytes)을 저장하며, 탐사응답패킷에 총 수신 데이터량(TotRecvBytes)과, 탐사패킷에 대한 포워드 딜레이를 포함시켜서 송신장치(100)로 전송한다.
송신장치(100)는, 현재 전송제어주기에서 마지막으로 수신한 탐사응답패킷에 포함되어 있는 총 수신 데이터량과, 이전 전송제어주기에 수신한 탐사응답패킷에 포함된 총 수신 데이터량의 차이를 통해서 현재 전송제어주기 동안에 수신장치가 수신한 데이터 량(RecvBytes)을 산출할 수 있다. 이러한, RecvBytes를 전송제어주기로 나누면 데이터 평균 수신속도(AvgRxRate)가 산출됨은 상술한 바와 같다.
도 2는 도 1의 데이터 송수신 장치의 기능을 설명하기 위한 도면이다.
도 2를 참조하면, 송신장치(100)는 저장부(101), 리더(102), 파일블록 풀(103), 복수의 소켓 라이터 테스크(104)(이하, '라이터 테스크'라고 함), 제어 테스크(106), 및 프로브 테스크(107)를 포함하며, 수신장치(200)는 저장부(201), 파일블록 풀(203), 복수의 소켓 리더 테스크(205)(이하, '리더 테스크'), 프로빙 리시버 테스크(208), 라이터(209), 및 저장부(201)를 포함할 수 있다. 이하에서는, 도 2를 참조하여 이들 구성요소에 대해 상세히 설명하기로 한다.
도 2를 참조하면, 저장부(101)에는 전송할 파일이 저장되며, 리더(102)는 저장부(101)에서 일정 단위로 데이터를 읽어 파일블록을 구성하고, 구성한 파일블록들을 파일블록 풀(103)에 저장한다. 이러한 동작은, 전송할 파일을 모두 읽을 때까지 반복된다.
복수의 라이터 테스크(104) 각각은, 파일블록 풀(103)에 파일블록이 있는지 체크하고, 파일블록이 있다면 가져와서 수신장치(200)로 전송한다. 이때, 복수의 라이터 테스크(104)들은 동시에 각각 통신 스트림(예를 들면, TCP 스트림)을 담당하며, 수신장치(100)로 데이터를 병렬적으로 전송한다.
본 발명적 개념의 예시적 실시예에 따르면, 복수의 라이터 테스크(104) 각각은 유일한 ID를 가지며, ID는 1부터 N(여기서, N은 총 스트림 수)까지의 자연수들 중에서 먼저 생성되는 라이터 테스크에게 순차적으로 부여되는 자연수일 수 있다.
수신장치(200)는, 송신장치(100)가 전송하는 데이터를 수신하여 저장부(201)에 저장한다. 예를 들면, 수신장치(200)의 복수의 리더 테스크(205)들은 송신장치(100)의 라이터 테스크(104)들이 전송하는 데이터를 병렬적으로 전송받고, 파일블록 풀(203)에 데이터를 기록한다. 리더 테스크(205)들은 파일 전송이 끝날 때까지 이러한 동작을 반복한다.
라이터(209)는 파일블록 풀(203)을 확인하여 파일블록이 있으면 읽어와서 저장부(201)에 저장한다. 모든 파일에 대한 기록이 끝나면 파일의 전송이 끝나며, 라이터(209)는 종료 신호를 송신장치(300)로 전송하게 된다.
본 발명적 개념의 예시적 실시예에 따르면, 상술한 파일 전송/수신 과정에서의 저장부 리더(102)/저장부 라이터(109), 소켓 라이터 테스크(104)/소켓 리더 테스크(205)는 스레드로 동작하여 동시에 실행될 수 있다.
본 송수신 장치에서의 전송률 제어는 상술한 라이터 테스크(104), 제어 테스크(106), 프로브 테스크(107), 및 프로빙 리시버 테스크(208)의 상호 작용을 통해서 이루어질 수 있다.
본 발명적 개념의 예시적 실시예에 따르면, 라이터 테스크(104)의 전송률은, 송수신장치간의 통신 프로토콜(예를 들면, TCP)에 의해서만 좌우되는 것이 아니며, 네트워크의 상황에 맞도록 결정될 수 있다.
N개의 복수의 라이터 테스크(104)들이 있다고 가정하고, 본 발명적 개념에 따라서 전송률이 결정되는 방법에 대하여 설명하기로 한다.
고정 전송률 동작모드에서는, N개의 복수의 라이터 테스크(104)들은 네트워크 상황에 무관하게 모두 고정된 전송률로서 데이터를 전송하게 된다.
최소 전송률 동작모드에서는, N개의 복수의 라이터 테스크(104)들은 모두 네트워크 상황에 따라서 전송률이 가변되며, 다만 최소 전송률이 보장되므로 네트워크 상황이 아무리 나빠져도 최소 전송률은 유지하게 된다.
공평 전송률 동작모드에서는, N개의 복수의 라이터 테스크(104)들 중 한개의 라이터 테스크만이 송수신장치간의 통신 프로토콜(예를 들면, TCP)에 의한 전송률 제어를 받고, 나머지 라이터 테스크들은 모두 네트워크 상황에 따라서 전송률이 가변된다.
배수 전송률 동작모드는, N개의 복수의 라이터 테스크(104)들 중 일정배수의 라이터 테스크만이 송수신장치간의 통신 프로토콜(예를 들면, TCP)에 의한 전송률 제어를 받고, 나머지 라이터 테스크들은 모두 네트워크 상황에 따라서 전송률이 가변되게 된다. 여기서, 일정배수는 데이터 송수신 장치의 관리자에 의해 정해질 수 있으며, 예를 들면, 크로스 트래픽보다 3배 많은 전송 대역폭을 가지고 싶은 경우, 상기 일정배수는 '3'이 되며, 라이터 테스크(104)들 중에서 3개의 라이터 테스크만이 송수신장치간의 통신 프로토콜(예를 들면, TCP)에 의한 전송률 제어를 받고 나머지 N-3개의 라이터 테스크들은 네트워크 상황에 따라서 전송률이 가변됨을 의미한다.
한편, 네트워크 상황에 따라서 전송률이 가변된다는 의미는, 예를 들면, 상술한 큐 대기 데이터 량에 기초하여 전송률이 가변된다는 것을 나타낸다.
제어 테스크(106)는 동작모드를 지정하는 값(n)을 소켓 라이터(104)들에게 전달하며, 소켓 라이터(104)들은 n값에 기초하여 자신의 동작모드를 결정하게 된다.
예를 들면, 복수의 라이트 테스크(104)들 중에서, 동작모드를 지정하는 값(n)보다 작거나 같은 ID를 가진 라이트 테스크는 송신장치와 수신장치간의 데이터 통신 프로토콜의 혼잡 제어 방법(예를 들면, TCP 혼잡 제어 방법)에 따라서 데이터를 전송한다.
반면, 동작모드를 지정하는 값(n)보다 큰 ID를 가진 라이트 테스크는 네트워크의 상황에 따라서 결정된 전송률에 따라서 데이터를 전송한다. 여기서, 동작모드를 지정하는 값(n)은 송수신장치를 관리하는 관리자로부터 송신장치(100) 또는 수신장치(200)가 입력받거나, 또는 소정 이벤트 또는 스케쥴에 따라서 결정될 수 있다. 수신장치(200)가 입력받은 경우에는, 동작모드를 지정하는 값(n)은 송신장치(100)의 제어 테스크(106)로 전달될 수 있을 것이다.
본 발명적 개념의 예시적 실시예에 따르면, 제어 테스크(106)는 각각의 라이터 테스크(104)가 소켓에 라이팅할 데이터 량(writebytes)과, 동작모드를 지정하는 값(n)을 라이터 테스크(104)에게 전달한다. 여기서, writebytes는 라이터 테스크(104)들이 각각 전송주기 동안 전송할 테이터의 량(예를 들면, 바이트수)이고, 이는 네트워크의 상황에 따라 가변될 수 있다.
라이터 테스크(104)들의 상세한 동작은 도 3을 참조하여 설명하기로 한다. 도 3을 참조하면, 각각의 라이터 테스크(104)들은, 전체 파일 전송이 끝난지를 확인하고(S101), 아직 전송 중인 경우(S101: Y)에는 파일블록 풀에 전송할 데이터가 있는지 확인하고 없다면 S101 이하의 동작을 수행한다.
한편, 파일블록 풀에 전송할 데이터가 있다면(S103: Y), 자신의 ID와 n(동작모드를 지정하는 값)을 비교하며(S105), 만약 자신의 ID가 n보다 크지 않으면(S105: N) TCP 전송률 제어에 맞추어 데이터를 전송한다(S111).
만약 자신의 ID가 n보다 크면(S105: Y) writeBytes 만큼 전송하며(S107), 전송주기 중 남은 시간동안은 슬립(Sleep)한 후 다시 S101 이하의 동작을 수행한다.
이상과 같이 동작할 경우, n보다 작거나 같은 ID를 가지는 라이터 테스크들의 TCP 세션들은 각각 크로스 트래픽과 경쟁하면서 네트워크 대역폭을 공유하게 되고, ID가 n보다 큰 나머지 N-n개의 라이터 테스크들의 TCP 세션들은 네트워크 유휴 대역폭이 있는 경우에는 유휴 대역폭을 채우기 위해서 전송률을 높이지만, 네트워크가 혼잡해져 유휴 대역폭이 없는 경우에는 네트워크 대역폭을 크로스 트래픽에 양보해 주는 방식으로 동작하게 된다.
본 발명적 개념의 예시적 실시예에 따르면, 제어 테스크(106)는, 프로브 테스크(107)로부터 전달받은 네트워크 상황에 대한 정보를 저장 관리하며, 이를 바탕으로 전송제어주기마다 writeBytes 값을 산출하여 라이터 테스크(104)들에게 전달한다. 여기서, 네트워크 상황에 대한 정보는 상술한 바와 같이 송신장치(100)와 수신장치(200)간의 네트워크 패스의 포워드 딜레이와, 수신장치(200)가 송신장치(100)로부터 현재 전송제어주기까지 전송받은 총 데이터량(예를 들면, 바이트수)을 포함한다.
포워드 딜레이는 패킷이 송신장치(100)에서 출발하여 수신장치(200)에 도달될 때까지의 시간을 의미하며, 여기에는 패킷이 전송되는데 고정적으로 발생되는 프로세싱 시간 및 전송 지연시간과 함께 네트워크 상황에 따라서 동적으로 변하는 큐 대기 시간이 포함된다. 큐 대기 시간은 큐에 쌓여 있는 패킷의 수가 많을 수록 늘어나고 적을수록 줄어드는 것으로 큐 대기 시간이 길어졌다는 것은 네트워크에 수용 가능한 패킷보다 더 많은 패킷이 유입되었다는 것을 의미한다.
본 발명적 개념의 예시적 실시예에 따르면, 프로브 테스크(107)는, 전송이 시작되면, 전송이 완료되기 까지 수신장치(200)에게 탐사패킷을 전송한다.
도 7을 참조하면, 탐사패킷들(D1 ~ D16)이 예시적으로 도시되어 있고, 각 전송제어주기마다 4개의 탐사패킷들이 전송되는 것을 알 수 있다. 프로빙 리시버 테스크(208)는, 각각의 탐사패킷들에 대한 응답으로서, 탐사응답패킷(미도시)을 프로브 테스크(107)로 전송한다. 탐사패킷과 탐사응답패킷에 각각 포함되는 정보는, 도 3과 도 4를 참조하여 예시적으로 설명한 바가 있으므로 여기서 그 상세한 설명은 생략하기로 한다.
프로빙 리시버 테스크(208)는 탐사패킷에 포함된 '전송시간'(sendtime)과, 탐사패킷을 수신한 시간간의 차이를 통해서 포워드 딜레이를 산출하고, 소켓 리더 테스크(205)들로부터 현재까지 송신장치로부터 전송받은 총 수신 데이터의 량(예를 들면, 바이트수)(TotRecvBytes)를 전달받는다. 이후, 포워드 딜레이와 총 수신 데이터량을 탐사응답패킷에 포함시켜 송신장치(100)로 전달한다.
프로브 테스크(107)는 프로빙 리시버 테스크(208)로부터 전달받은 탐사응답패킷에 포함된 포워드 딜레이와 총 수신 데이터량을 제어 테스크(106)에게 전달한다.
제어 테스크(106)는 프로브 테스크(107)로부터 포워드 딜레이와 총 수신 데이터량을 전달받을 때 마다 저장 및 관리하여 해당 전송제어주기 동안의 평균 네트워크 상태를 판단할 수 있다.
예를 들면, 제어 테스크(106)는 네트워크 상태를 판단하기 위해서, 데이터 전송을 시작하고부터 현재 까지 프로브 테스크(107)로부터 전송받은 포워드 딜레이의 최소값(MinFDelay)를 저장 유지하고, 이를 네트워크 대역폭의 여유가 있는, 환언하면 큐 대기 시간이 없는 최적 상태의 포워드 딜레이로 가정한다.
도 7의 예를 들면, 현재(Present)를 기준으로 저장 유지되는 최소값(MinFDelay)은 현재(present)까지 전송한 탐지 패킷들(D1 ~ D14) 중에서 가장 적은 값을 가진 포워드 딜레이가 된다.
도 7을 참조하여 전송률을 결정하는 방법을 설명하면, 제어 테스크(106)는 현재 전송제어주기가 끝나는 시점까지의 탐사패킷들(D1 ~ D16)과 그 응답인 탐사응답패킷들로부터 전송률을 계산할 수 있다.
제어 테스크(106)는, 상술한 수학식 2에 의해서 평균 큐잉 딜레이(AvgQueueDelay) 값을 산출한다. 즉, 제어 테스크(106)는, 탐지 패킷들(D1 ~ D16)의 포워드 딜레이들 중에서 최소값과, 탐지 패킷(D13 ~ D16)의 평균값간의 차이를 평균 큐잉 딜레이로서 산출한다.
또한, 제어 테스크(106)는, 전송제어주기 T4까지 전송받은 총 수신 데이터량과, 전송제어주기 T3까지 전송받은 총 수신 데이터량과의 차이를 통해서 현재 전송제어주기(T3) 동안 수신장치(200)가 수신한 총 데이터량을 산출한다. 여기서, T4까지 전송받은 총 수신 데이터량은 탐사패킷 D16의 탐사응답패킷에 포함되어 있고, T3까지 전송받은 총 수신 데이터량은 탐사패킷 D12의 탐사응답패킷에 포함되어 있을 수 있다.
이후, 제어 테스크(106)는 상술한 수학식 1에 의해서 큐 대기 데이터량을 산출할 수 있으며, 이렇게 산출한 큐 대기 데이터량에 기초하여, 라이터 테스크(104)들의 동작모드에 따른 전송률을 결정하게 된다.
예를 들면, 제어 테스크(106)는, 동작모드를 지정하는 값(n)에 따라서, 라이터 테스크(104)들 중에서, TCP 통신 프로토콜에 의해 전송률을 제어받을 라이터 테스크들과 네트워크 상황에 따라 전송률을 제어받을 라이터 테스크들을 결정한다. 여기서, 최소 전송률 동작모드와 고정 전송률 동작모드에서 n=0이고, 공평 전송률 동작모드에서는 n=1이고, 배수 전송률 동작모드에서 n=배수 이다.
제어 테스크(106)는, 네트워크 상황에 따라 전송률을 제어받을 라이터 테스크들(N-n개)에게 전달할 전송률(rate)를 계산한다. 여기서, 전송률(rate)을 계산하는 방법은 도 6을 참조하여 상세히 후술하기로 한다.
제어 테스크(106)는, 또한 계산한 전송률(rate)에 전송제어주기를 곱하여 N-n개의 라이터 테스크들이 전송할 총 데이터량을 산출한다. 그리고, 총 데이터량을 N-n으로 나누어 각 라이터 테스크들이 전송주기마다 전송할 데이터량(writeBytes)을 산출한 후, 이를 TCP 통신 프로토콜에 의해 전송률을 제어받을 라이터 테스크들을 제외한 나머지 N-n 개의 라이터 테스크들에게 전송한다.
도 6은 본 발명적 개념의 다른 예시적 실시예에 따른 전송방법을 설명하기 위한 도면이다.
도 6을 참조하면, 송신장치(100)는 고정 전송률 모드인 경우(S201)에는 변수 N에 0을 할당하고, 변수 rate에는 지정된 전송률을 할당한다(S219). 이후, 제어 테스크(106)는, S213 및 S215 단계를 거쳐서 writerBytes를 결정한다(S217).
제어 테스크(106)는 큐 대기 데이터량(QLength)이 기 설정된 임계값과 비교하여(S203), 임계값보다 크다면(S203: Y) 이전 전송제어주기에서의 전송률에 0보다 크고 1보다 작은 값(b)을 곱하여 rate에 할당한다(S221).
한편, 큐 대기 데이터량(QLength)이 임계값 보다 크지 않다면(S203: N), 제어 테스크(106)는, 이전 전송제어주기에서의 전송률에 소정의 증가량을 더하여 rate에 할당한다(S205). 여기서, 증가량은 고정된 상수일수도 있고, 상황에 따라 변화되는 변수값일 수도 있다.
제어 테스크(106)는, 최소 전송률 동작모드인 경우(S207: Y)에는 n=0으로 설정한 후에, S221 또는 S205 단계에서 설정된 rate가 최소 전송률 보다 작은지 여부를 판단한다(S225).
만약 S221 또는 S205 단계에서 설정된 rate가 최소 전송률 보다 작으면(S225: Y), 제어 테스크(106)는 rate에 최소 전송률을 할당하고(S227), S213, S215, S217의 동작을 수행한다. 한편, 만약 S221 또는 S205 단계에서 설정된 rate가 최소 전송률 보다 작지 않으면(S225: N), S227 단계의 동작을 수행함이 없이, S213, S215, S217의 동작을 수행한다.
제어 테스크(106)는, 최소 전송률 동작모드가 아닌 경우(S207: N)에는, 배수 전송률 동작모드 인지 여부를 판단한다(S209).
만약 배수 전송률 동작모드인 경우라면(S209; Y), 제어 테스크(106)는, 가중치(Weight)를 n으로 설정하고(S233), 배수 전송률 동작모드가 아닌 경우(S209: N)라면 n=1로 설정한다(S211).
제어 테스크(106)는, 상술한 단계들에서 산출된 rate 값이 최소 전송률(MIN)보다 작을 경우(S213: Y)에는 rate에 최소 전송률을 설정한다(S229). 또한, 제어 테스크(106)는, 상술한 단계들에서 산출된 rate 값이 최대 전송률(MAX)보다 큰 경우(S215: Y)에는 rate에 최대 전송률을 설정한다(S231).
이후, 제어 테스크(106)는, rate에 전송주기를 곱한 후, N-n으로 나눔으로써 writerBytes를 산출하고(S217), writerBytes를 N-n 개의 라이터 테스크들에게 전달한다. 이후, N-n 개의 라이터 테스크들은 매 전송주기 마다 writerBytes 만큼의 데이터를 전송한다. 한편, 제어 테스크(106)는, 상술한 단계들에서 산출된 rate를 이용하여, S213, S215, S229, 및 S231을 생략하고 바로 S217 단계를 수행할 수도 있을 것이다.
도 8은 본 발명적 개념에 따른 예시적 실시예에 따른 전송률을 계산하는 방법을 설명하기 위한 흐름도이다.
도 8을 참조하면, 송신장치(100)의 프로브 테스크는 수신장치(200)의 프로빙 리시버 테스크(208)에게 탐사패킷을 송신한다(S301). 도 7을 참조하면, 각 전송제어주기별로 프로브 테스크(107)가 탐사패킷들(D1 ~ D16)을 전송하는 것을 예시적으로 나타내고 있다.
프로빙 리스버 테스크(208)는 각각의 탐사패킷에 대한 탐사응답패킷을 구성하여 프로브 테스크(107)로 전송한다(S303). 여기서, 탐사응답패킷은 탐사패킷의 포워드 딜레이와, 전송 시점부터 탐사패킷을 받을 때까지 수신장치(100)가 수신한 데이터량이 포함되도록 구성된다.
제어 테스크(106)는, 상술한 수학식 2에 의해서 평균 큐잉 딜레이를 계산하며(S307), 상술한 수학식 3에 의해서 데이터 평균 수신속도를 계산한다(S305).
제어 테스크(106)는, 상술한 수학식 1에 의해서 큐 대기 데이터량을 계산하며(S309), 큐 대기 데이터량을 이용하여 전송률을 계산한다(S311). 예를 들면, 제어 테스크(106)는, 도 6에 예시된 방법에 따라서 전송률을 계산할 수 있다.
도 9는 본 발명적 개념에 따른 컴퓨터 판독가능한 기록매체를 설명하기 위한 도면이다.
도 9를 참조하면, 송신장치(100)는 컴퓨터 판독 가능한 기록매체(111), 저장부(113), 및 H/W 및 S/W 자원들을 포함할 수 있다.
컴퓨터 판독 가능한 기록매체(111)는, 상술한 데이터 송신방법들 및/또는 전송률을 계산하는 방법을 저장하며, 저장된 방법은 H/W 및 S/W 자원들(115)에 의해 실행될 수 있다.
다르게는, 컴퓨터 판독 가능한 기록매체(111)는, 상술한 데이터 송신장치(100)에 의해 수행되는 데이터 전송방법이나 데이터 전송률 결정방법을 저장하며, 이러한 방법은 H/W 및 S/W 자원들(115)에 의해 실행될 수 있다.
저장부(113)는, 최소전송률, 총 수신 데이터량, 또는 최소 포워드 딜레이 등과 같이 상술한 데이터 전송방법이나 데이터 전송률 결정방법에 필요한 데이터를 저장할 수 있다.
H/W 및 S/W 자원들(115)은 송신장치(100)가 동작하는데 필요한 하드웨어 자원과 소프트웨어 자원들을 통칭하는 것으로서, 하드웨어 자원으로는 CPU(Central Processing Unit), 메모리(MEMORY), 하드디스크, 네트워크 카드 등을 예로 들 수 있고, 소프트웨어 자원으로는 OS(Operating System), 하드웨어를 구동하기 위한 드라이버(driver)를 예로 들 수 있다. 예를 들면, 제어 테스크와 소켓 라이터 테스크, 프로브 테스크 등은 CPU의 제어 하에 메모리에 로딩되어 동작된다. 이처럼, 송신장치(100)에 포함된 테스크들이 실행되기 위해서는 하드웨어 자원들 및/또는 소프트웨어 자원들이 필요하며, 이들 자원들과 테스크들간의 상호 작용은 본 발명적 개념이 속한 기술분야의 자라면 누구라도 쉽게 이해할 수 있는 기술일 것이다. 따라서, 송신장치(100)가 동작 또는 실행되기 위해서 필요한 ‘H/W 및/또는 S/W Resources’및 상호 작용은 본 발명적 개념과 상충되지 않는 범위 내에서 본 발명적 개념의 예시적 실시예들의 구성요소로서 채용될 수 있다.
상술한 실시예들과 같이, 본 발명적 개념에 따른 송신장치는, 고정 전송률 동작모드 또는 네트워크 상황에 따라서 가변되는 가변 동작모드에서 동작할 수 있다.
즉, 고정 전송률 동작모드에서는 크로스 트래픽과 관계없이 고정된 전송률을 유지하며, 최소 전송률 동작모드에서는 크로스 트래픽이 없는 경우, 대역폭을 충분히 활용하되 크로스 트래픽이 유입되는 경우 QLength가 증가하므로 전송률을 적절한 양만큼 감소시키다가 전송률이 지정된 최소 전송률보다는 작아지지 않도록 한다.
한편, 배수 전송률 동작모드에서는, n을 지정된 배수로 설정하여 N개의 TCP 스트림 중 n개는 TCP 프로코콜이 허용하는 최고 전송률로 전송하되, 나머지 N-n개의 스트림은 크로스 트래픽이 유입이 감지되는 경우(환언하면, QLength가 길어지는 경우) 전송률을 낮추어 대역폭을 양보하게 된다. 이때, 각 TCP 스트림은 TCP 기반 크로스 트래픽과 1:1로 네트워크 대역폭을 공유하기 때문에 n개의 스트림의 전송률 합은 크로스 트래픽의 n배로 유지될 수 있다.
공평 전송률 동작모드는, 배수 전송률 동작모드의 특별한 형태로서 n=1이 되는 경우이며, 이 경우 N-1 개의 스트림은 크로스 스트림이 유입될 경우 네트워크 대역폭을 양보하고 1개의 스트림은 크로스 트래픽과 네트워크 대역폭을 공유하게 되어 크로스 트래픽과 동일한 비율로 네트워크 대역폭을 사용할 수 있게 된다.
상기와 같이 본 발명적 개념은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명적 개념은 상기의 실시예에 한정되는 것은 아니며, 본 발명적 개념이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명적 개념의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 송신장치 200: 수신장치
101, 201: 저장부 102: 리더
103: 파일블록 풀 104: 소켓 라이터 테스크
106: 제어 테스크 107: 프로브 테스크
203: 파일블록 풀 205: 소켓 리더 테스크
208: 프로빙 리시버 테스크 209: 라이터

Claims (48)

  1. 네트워크를 통해서 수신장치로 데이터를 병렬 전송하는 복수의 라이트 테스크들; 및
    고정 전송률 동작모드 또는 상기 네트워크의 상태에 따라서 가변되는 전송률에 따라 데이터를 전송하는 가변 전송률 동작모드에서 상기 복수의 라이트 테스크들이 동작하도록 제어하는 제어 테스크; 를 포함하며,
    상기 가변 전송률 동작모드는,
    상기 복수의 라이트 테스크들이 항상 기 설정된 최소 전송률 이상에서 상기 네트워크의 상황에 따라서 가변되는 전송률에 따라서 데이터를 전송하는 제1동작모드와,
    상기 복수의 라이트 테스크들 중 일부의 라이트 테스크는 송신장치와 수신장치간의 데이터 통신 프로토콜의 혼잡 제어 방법에 따라서 데이터를 전송하고, 나머지 라이트 테스크는 상기 네트워크의 상태에 따라서 가변되는 전송률에 따라서 데이터를 전송하는 제2동작모드 중 적어도 하나의 동작모드를 포함하는 것을 특징으로 하는 데이터 송신장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 제1동작모드는,
    상기 복수의 라이트 테스크들이 상기 네트워크의 상황에 따라서 가변되는 전송률에 의해 데이터를 전송하는 최소 전송률 동작모드인 것을 특징으로 하는 데이터 송신장치.
  4. 제1항에 있어서,
    상기 제2동작모드는,
    상기 복수의 라이트 테스크들 중 어느 하나의 테스크는, 상기 송신장치와 상기 수신장치간 데이터 통신 프로토콜의 혼잡 제어 방법에 따라서 데이터를 전송하고, 상기 복수의 라이트 테스크들 중 나머지 테스크들은 상기 네트워크의 상황에 따라서 가변되는 전송률에 의해 데이터를 전송하는 공평 전송률 동작모드인 것을 특징으로 하는 데이터 송신장치.
  5. 제1항에 있어서,
    상기 제2동작모드는,
    상기 복수의 라이트 테스크들 중 n(여기서, n은 상기 복수의 라이트 테스크들의 개수보다 적은 양의 정수임)개의 테스크는, 상기 송신장치와 상기 수신장치간의 데이터 통신 프로토콜의 혼잡 제어 방법에 따라서 데이터를 전송하고, 상기 복수의 라이트 테스크들 중 나머지 테스크들은 상기 네트워크의 상황에 따라서 가변되는 전송률에 따라서 데이터를 전송하는 배수 전송률 동작모드인 것을 특징으로 하는 데이터 송신장치.
  6. 제4항 또는 제5항에 있어서,
    상기 송신장치와 상기 수신장치간의 데이터 통신 프로토콜은 TCP 인 것을 특징으로 하는 데이터 송신장치.
  7. 제1항에 있어서,
    상기 복수의 라이트 테스크들은 1부터 순차적으로 부여되는 ID(여기서, ID는 양의 정수임)를 가지고 있으며,
    상기 복수의 라이트 테스크들은 각자 자기의 ID와 동작모드를 지정하는 값(n)을 비교하여 자신의 동작모드를 결정하며,
    상기 동작모드를 지정하는 값(n)은 상기 제어 테스크에 의해 전달받은 것을 특징으로 하는 데이터 송신장치.
  8. 제7항에 있어서,
    상기 복수의 라이트 테스크들 중에서,
    상기 동작모드를 지정하는 값(n)보다 작거나 같은 ID를 가진 라이트 테스크는 상기 송신장치와 상기 수신장치간의 데이터 통신 프로토콜의 혼잡 제어 방법에 따라서 데이터를 전송하고,
    상기 동작모드를 지정하는 값(n)보다 큰 ID를 가진 라이트 테스크는 상기 제어 테스크에 의해 정해진 전송률에 따라서 데이터를 전송하는 것을 특징으로 하는 데이터 송신장치.
  9. 제1항에 있어서,
    상기 제어 테스크는, 상기 복수의 라이트 테스크들을 가변 전송률 동작모드에서 동작시킬 때, 상기 네트워크 상에서 상기 데이터가 전송되는 경로 상에 존재하는 적어도 하나의 큐에 전송제어주기 동안 대기하는 데이터 량에 기초하여 상기 복수의 라이트 테스크들의 전송속도를 제어하는 것을 특징으로 하는 데이터 송신장치.
  10. 제9항에 있어서,
    상기 큐에 대기하는 데이터 량은, 다음 수식
    QLength = (MeanQueueDelay - MinFDelay) × AvgRxRate
    에 의해 정해지고,
    여기서,MeanQueueDelay는 현재 전송제어주기 동안의 포워드 딜레이들의 평균 값이고, MinFDelay는 포워드 딜레이 최소값으로서 전송 시작 시점부터 현재 전송제어주기까지의 포워드 딜레이 값들 중 최소값이며, AvgRxRate는 현재 전송제어주기 동안의 데이터 수신 평균 속도 인것을 특징으로 하는 데이터 송신장치.
  11. 제10항에 있어서,
    상기 데이터 수신 평균 속도는,
    상기 현재 전송제어주기 동안 상기 수신장치가 수신한 데이터량을 상기 전송제어주기로 나눈 값인 것을 특징으로 하는 데이터 송신장치.
  12. 제11항에 있어서,
    상기 현재 전송제어주기 동안 상기 수신장치가 수신한 데이터량은,
    전송 시작 시점부터 현재 전송제어주기까지 상기 수신장치가 수신한 데이터량에서, 전송 시작 시점부터 이전 전송률 제어 시점까지 상기 수신장치가 수신한 데이터량을 뺀 값인 것을 특징으로 하는 데이터 송신장치.
  13. 제1항에 있어서,
    상기 수신장치로 탐사패킷을 송신하고, 상기 수신장치로부터 탐사응답패킷을 수신하는 프로브 테스크;를 더 포함하며,
    상기 탐사응답패킷은,
    i) 현재 전송제어주기 동안 상기 송신장치에서 상기 수신장치로 전송한 데이터량 또는 이를 계산할 수 있는 정보, 및
    ii) 상기 탐사패킷의 포워드 딜레이
    를 포함하고 있는 것을 특징으로 하는 데이터 송신장치.
  14. 제13항에 있어서,
    상기 프로브 테스크는 UDP 프로토콜에 의해 상기 탐사패킷을 송신하고, 탐사응답패킷을 수신하는 것을 특징으로 하는 데이터 송신장치.
  15. 제13항에 있어서,
    상기 프로브 테스크는, 현재 전송제어주기 동안에 복수의 탐사패킷을 송신하고, 각각에 대한 탐사응답패킷을 수신하는 것을 특징으로 하는 데이터 송신장치.
  16. 제13항에 있어서,
    상기 탐사패킷은 자신의 송신시간을 포함하고 있는 것을 특징으로 하는 데이터 송신장치.
  17. 제15항에 있어서,
    상기 제어 테스크는, 상기 복수의 라이트 테스크들을 가변 전송률 동작모드에서 동작시킬 때, 상기 네트워크 상에서 상기 데이터가 전송되는 경로 상에 존재하는 적어도 하나의 큐에 전송제어주기 동안 대기하는 데이터 량에 기초하여 상기 복수의 라이트 테스크들의 전송속도를 제어하며,
    상기 큐에 대기하는 데이터 량은,
    QLength = (MeanQueueDelay - MinFDelay) × AvgRxRate
    에 의해 정해지고,
    여기서,MeanQueueDelay는 현재 전송제어주기 동안의 포워드 딜레이들의 평균 값이고, MinFDelay는 포워드 딜레이 최소값으로서 전송 시작 시점부터 현재 전송제어주기까지의 포워드 딜레이 값들 중 최소값이며, AvgRxRate는 현재 전송제어주기 동안의 데이터 수신 평균 속도인 것을 특징으로 하는 데이터 송신장치.
  18. 네트워크를 통해서 수신장치에게 데이터를 병렬 전송하는 복수의 라이트 테스크들; 및
    상기 복수의 라이트 테스크들 중 적어도 어느 하나의 라이트 테스크의 데이터 전송률을 제어하는 제어 테스크; 를 포함하며
    상기 제어 테스크는,
    상기 복수의 라이트 테스크들이 항상 기 설정된 최소 전송률 이상에서 상기 네트워크의 상황에 따라서 가변되는 전송률에 따라서 데이터를 전송하도록 제어하고,
    상기 복수의 라이트 테스크들 중 적어도 어느 하나의 라이트 테스크는 송신장치와 상기 수신장치와의 데이터 통신 프로토콜의 혼잡 제어 방법에 따라서 데이터를 전송하고, 나머지 라이트 테스크는 상기 네트워크의 상태에 따라 가변되는 전송률에 따라서 데이터를 전송하도록 제어하는 것을 특징으로 하는 데이터 송신장치.
  19. 제18항에 있어서,
    상기 제어 테스크는, 다음 수식
    QLength = (MeanQueueDelay - MinFDelay) × AvgRxRate
    에 의해 산출하고,
    여기서,MeanQueueDelay는 현재 전송제어주기 동안의 포워드 딜레이들의 평균 값이고, MinFDelay는 포워드 딜레이 최소값으로서 전송 시작 시점부터 현재 전송제어주기까지의 포워드 딜레이 값들 중 최소값이며, AvgRxRate는 현재 전송제어주기 동안의 데이터 수신 평균 속도이며, 그리고
    상기 제어 테스크는, QLength에 의해서 상기 전송률을 계산하는 것을 특징으로 하는 데이터 송신장치.
  20. 제19항에 있어서,
    상기 포워드 딜레이들의 평균값은, 현재 전송제어주기 동안의 포워드 딜레이 값들을 평균한 값이고,
    상기 포워드 딜레이 최소값은, 전송 시작 시점부터 현재 전송제어주기까지의 포워드 딜레이 값들 중 최소값인 것을 특징으로 하는 데이터 송신장치.
  21. 제19항에 있어서,
    상기 데이터 수신 평균 속도는,
    이전 전송률 제어 시점부터 현재 전송제어주기 까지 상기 수신장치가 수신한 데이터량을 상기 전송제어주기로 나눈 값인 것을 특징으로 하는 데이터 송신장치.
  22. 제21항에 있어서,
    상기 현재의 전송제어주기 동안 상기 수신장치가 수신한 데이터량은,
    전송 시작 시점부터 현재 전송제어주기까지 상기 수신장치가 수신한 데이터량에서, 전송 시작 시점부터 이전 전송률 제어 시점까지 상기 수신장치가 수신한 데이터량을 뺀 값인 것을 특징으로 하는 데이터 송신장치.
  23. 제18항에 있어서,
    상기 수신장치로 탐사패킷을 송신하고, 상기 수신장치로부터 탐사응답패킷을 수신하는 프로브 테스크;를 더 포함하며,
    상기 탐사응답패킷은,
    i) 현재 전송제어주기 동안 상기 송신장치에서 상기 수신장치로 전송한 데이터량 또는 이를 계산할 수 있는 정보, 및
    ii) 상기 탐사패킷의 포워드 딜레이
    를 포함하고 있는 것을 특징으로 하는 데이터 송신장치.
  24. 제23항에 있어서,
    상기 프로브 테스크는 UDP 프로토콜에 의해 상기 탐사패킷을 송신하고, 탐사응답패킷을 수신하는 것을 특징으로 하는 데이터 송신장치.
  25. 제23항에 있어서,
    상기 프로브 테스크는, 현재 전송제어주기 동안에 복수의 탐사패킷을 송신하고, 각각에 대한 탐사응답패킷을 수신하는 것을 특징으로 하는 데이터 송신장치.
  26. 제23항에 있어서,
    상기 탐사패킷은 자신의 송신시간을 포함하고 있는 것을 특징으로 하는 데이터 송신장치.
  27. 제25항에 있어서,
    상기 제어 테스크는, 상기 복수의 라이트 테스크들을 가변 전송률 동작모드에서 동작시킬 때, 상기 네트워크 상에서 상기 데이터가 전송되는 경로 상에 존재하는 적어도 하나의 큐에 전송제어주기 동안 대기하는 데이터 량에 기초하여 상기 전송률을 정하는 것을 특징으로 하는 데이터 송신장치.
  28. 제27항에 있어서,
    상기 제어 테스크는
    현재 전송제어주기 동안 상기 적어도 하나의 큐에 대기하는 데이터 량을 계산하고, 계산한 데이터 량과 임계값을 비교한 결과에 따라서 다음 전송제어주기의 전송률을 결정하는 것을 특징으로 하는 데이터 송신장치.
  29. 제28항에 있어서,
    상기 큐에 대기하는 데이터 량은, 다음의 수식
    QLength = (MeanQueueDelay - MinFDelay) × AvgRxRate
    에 의해 정해지고,
    여기서,MeanQueueDelay는 현재 전송제어주기 동안의 포워드 딜레이들의 평균 값이고, MinFDelay는 포워드 딜레이 최소값으로서 전송 시작 시점부터 현재 전송제어주기까지의 포워드 딜레이 값들 중 최소값이며, AvgRxRate는 현재 전송제어주기 동안의 데이터 수신 평균 속도인 것을 특징으로 하는 데이터 송신장치.
  30. 송신장치의 복수의 라이트 테스크들이 네트워크를 통해서 수신장치로 데이터를 병렬 전송하는 단계; 및
    네트워크의 상태에 따른 전송률을 계산하는 단계; 를 포함하며,
    상기 병렬 전송하는 단계는, 상기 복수의 라이트 테스크들이, 고정 전송률 동작모드 또는 네트워크의 상태에 따라서 가변되는 전송률로 데이터를 전송하는 가변 전송률 동작모드에서 데이터를 전송하는 단계이며,
    상기 가변 전송률 동작모드는,
    상기 복수의 라이트 테스크들이 항상 기 설정된 최소 전송률 이상에서 상기 네트워크의 상황에 따라서 가변되는 전송률에 따라서 데이터를 전송하는 제1동작모드와,
    상기 복수의 라이트 테스크들 중 일부의 라이트 테스크는 상기 송신장치와 상기 수신장치간의 데이터 통신 프로토콜의 혼잡 제어 방법에 따라서 데이터를 전송하고, 나머지 라이트 테스크는 상기 네트워크의 상태에 따라서 가변되는 전송률에 따라서 데이터를 전송하는 제2동작모드 중 적어도 하나의 동작모드를 포함하는 것을 특징으로 하는 데이터 송신방법.
  31. 삭제
  32. 제30항에 있어서,
    상기 제2동작모드는,
    상기 복수의 라이트 테스크들 중 어느 하나의 테스크는, 상기 송신장치와 상기 수신장치간 데이터 통신 프로토콜의 혼잡 제어 방법에 따라서 데이터를 전송하고, 상기 복수의 라이트 테스크들 중 나머지 테스크들은 상기 네트워크의 상황에 따라서 가변되는 전송률에 의해 데이터를 전송하는 공평 전송률 동작모드와,
    상기 복수의 라이트 테스크들 중 n(여기서, n은 상기 복수의 라이트 테스크들의 개수보다 적은 양의 정수임)개의 테스크는, 상기 송신장치와 상기 수신장치간의 데이터 통신 프로토콜의 혼잡 제어 방법에 따라서 데이터를 전송하고, 상기 복수의 라이트 테스크들 중 나머지 테스크들은 상기 네트워크의 상황에 따라서 가변되는 전송률에 따라서 데이터를 전송하는 배수 전송률 동작모드를 포함하는 것을 특징으로 하는 데이터 송신방법.
  33. 제30항에 있어서,
    상기 병렬 전송하는 단계 이전에, 동작모드를 지정하는 값(n)을 설정받는 단계;를 더 포함하며,
    상기 복수의 라이트 테스크들은 1부터 순차적으로 부여되는 ID(여기서, ID는 양의 정수임)를 가지고 있으며,
    상기 복수의 라이트 테스크들은 각자 자기의 ID와 동작모드를 지정하는 값(n)을 비교하여 자신의 동작모드를 결정하는 것을 특징으로 하는 데이터 송신방법.
  34. 제33항에 있어서,
    상기 복수의 라이트 테스크들 중에서,
    상기 동작모드를 지정하는 값(n)보다 작거나 같은 ID를 가진 라이트 테스크는 상기 송신장치와 상기 수신장치간의 데이터 통신 프로토콜의 혼잡 제어 방법에 따라서 데이터를 전송하고,
    상기 동작모드를 지정하는 값(n)보다 큰 ID를 가진 라이트 테스크는 상기 계산된 전송률에 따라서 데이터를 전송하는 것을 특징으로 하는 데이터 송신방법.
  35. 제30항에 있어서,
    상기 전송률을 계산하는 단계는,
    상기 네트워크 상에서 상기 데이터가 전송되는 경로 상에 전송제어주기 동안 존재하는 큐에 대기하는 데이터 량에 기초하여 전송률을 계산하는 단계인 것을 특징으로 하는 데이터 송신방법.
  36. 제30항에 있어서,
    상기 전송률을 계산하는 단계는,
    상기 네트워크 상에서 상기 데이터가 전송되는 경로 상에 전송제어주기 동안 존재하는 큐에 대기하는 데이터 량을 계산하는 단계;
    상기 계산된 데이터 량과 임계값을 비교하는 단계;
    상기 계산된 데이터 량이 상기 임계값보다 큰 경우는, 다음 전송제어주기의 전송률을 현재 전송제어주기에서의 전송률보다 큰 값으로 결정하고, 상기 계산된 데이터 량이 상기 임계값보다 작은 경우는 다음 전송제어주기의 전송률을 현재 전송제어주기에서의 전송률보다 작은 값으로 결정하는 단계;를 포함하는 것을 특징으로 하는 데이터 송신방법.
  37. 제35항에 있어서,
    상기 큐에 대기하는 데이터 량은, 다음 수식
    QLength = (MeanQueueDelay - MinFDelay) × AvgRxRate
    에 의해 정해지고,
    여기서,MeanQueueDelay는 현재 전송제어주기 동안의 포워드 딜레이들의 평균 값이고, MinFDelay는 포워드 딜레이 최소값으로서 전송 시작 시점부터 현재 전송제어주기까지의 포워드 딜레이 값들 중 최소값이며, AvgRxRate는 현재 전송제어주기 동안의 데이터 수신 평균 속도인 것을 특징으로 하는 데이터 송신방법.
  38. 제35항에 있어서,
    상기 송신장치가 상기 수신장치로 탐사패킷을 송신하는 단계; 및
    상기 수신장치로부터 상기 송신장치가 탐사응답패킷을 수신하는 단계;를 더 포함하며,
    상기 탐사응답패킷은,
    i) 현재 전송제어주기 동안 상기 송신장치에서 상기 수신장치로 전송한 데이터량 또는 이를 계산할 수 있는 정보, 및
    ii) 상기 탐사패킷의 포워드 딜레이
    를 포함하며,
    상기 전송률을 계산하는 단계는, 상기 탐사응답패킷에 포함된 정보에 기초하여 상기 큐에 대기하는 데이터 량을 계산하는 것을 특징으로 하는 데이터 송신방법.
  39. 제38항에 있어서,
    상기 탐사패킷을 송신하고, 상기 탐사응답패킷을 수신하는 것은 UDP 프로토콜에 의해 수행되는 것을 특징으로 하는 데이터 송신방법.
  40. 제38항에 있어서,
    상기 탐사패킷은 자신의 송신시간을 포함하고 있는 것을 특징으로 하는 데이터 송신방법.
  41. 네트워크를 통해서 데이터를 수신장치로 송신하는 데이터 송신장치의 데이터 전송률 결정방법에 있어서,
    상기 네트워크 상에서 상기 데이터가 전송되는 경로 상에 존재하는 적어도 하나의 큐에 전송제어주기 동안 대기하는 큐 대기 데이터 량을 계산하는 단계; 및
    상기 큐 대기 데이터량에 기초하여 상기 데이터의 전송률을 계산하는 단계;를 포함하며,
    상기 큐 대기 데이터 량을 계산하는 단계는,
    QLength = (MeanQueueDelay - MinFDelay) × AvgRxRate
    에 의해 산출하는 단계로서,
    여기서, MeanQueueDelay는 현재 전송제어주기 동안의 포워드 딜레이들의 평균 값이고, MinFDelay는 포워드 딜레이 최소값으로서 전송 시작 시점부터 현재 전송제어주기까지의 포워드 딜레이 값들 중 최소값이고, AvgRxRate는 현재 전송제어주기 동안의 데이터 수신 평균 속도이며, 그리고
    상기 포워드 딜레이들의 평균값은, 현재의 전송제어주기 동안의 포워드 딜레이 값들을 평균한 값이고,
    상기 포워드 딜레이 최소값은, 전송 시작 시점부터 현재 전송제어주기까지의 포워드 딜레이 값들 중 최소값이고,
    상기 데이터 수신 평균 속도는, 상기 현재 전송제어주기 동안 상기 수신장치가 수신한 데이터량을 상기 전송제어주기로 나눈 값이고,
    AvgRxRate는 다음의 수식
    AvgRxRate = Recvbytes / 전송제어주기
    에 의해서 계산되고,
    상기 Recvbytes는 현재 전송제어주기 동안 상기 수신장치가 수신한 데이터량으로서, 전송 시작 시점부터 현재 전송제어주기까지 상기 수신장치가 수신한 데이터량에서, 전송 시작 시점부터 이전 전송률 제어 시점까지 상기 수신장치가 수신한 데이터량을 뺀 값인 것을 특징으로 하는 데이터 전송률 결정방법.
  42. 삭제
  43. 제41항에 있어서,
    상기 전송률을 계산하는 단계는,
    상기 계산된 데이터 량과 임계값을 비교하는 단계; 및
    상기 계산된 데이터 량이 상기 임계값보다 큰 경우는, 다음 전송제어주기의 전송률을 현재 전송제어주기에서의 전송률보다 큰 값으로 결정하고, 상기 계산된 데이터 량이 상기 임계값보다 작은 경우는 다음 전송제어주기의 전송률을 현재 전송제어주기에서의 전송률보다 작은 값으로 결정하는 단계;를 포함하는 것을 특징으로 하는 데이터 전송률 결정방법.
  44. 제41항에 있어서,
    상기 송신장치가 상기 수신장치로 탐사패킷을 송신하는 단계; 및
    상기 수신장치로부터 상기 송신장치가 탐사응답패킷을 수신하는 단계;를 더 포함하며,
    상기 탐사응답패킷은,
    i) 현재 전송제어주기 동안 상기 송신장치에서 상기 수신장치로 전송한 데이터량 또는 이를 계산할 수 있는 정보, 및
    ii) 상기 탐사패킷의 포워드 딜레이
    를 포함하며,
    상기 데이터 량을 계산하는 단계는, 상기 탐사응답패킷에 포함된 정보에 기초하여 계산하는 것을 특징으로 하는 데이터 전송률 결정방법.
  45. 제44항에 있어서,
    상기 탐사패킷을 송신하고, 상기 탐사응답패킷을 수신하는 것은 UDP 프로토콜에 의해 수행되는 것을 특징으로 하는 데이터 전송률 결정방법.
  46. 제44항에 있어서,
    상기 탐사패킷은 자신의 송신시간을 포함하고 있는 것을 특징으로 하는 데이터 전송률 결정방법.
  47. 컴퓨터에,
    청구항 제30항, 및 제32항 내지 제40항 중 어느 하나의 항에 따른 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  48. 컴퓨터에,
    청구항 제41항, 및 제43항 내지 제46항 중 어느 하나의 항에 따른 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
KR1020110126968A 2011-11-30 2011-11-30 데이터 송신장치 및 그 방법과 전송률 결정 방법 KR101385784B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020110126968A KR101385784B1 (ko) 2011-11-30 2011-11-30 데이터 송신장치 및 그 방법과 전송률 결정 방법
US13/689,856 US20130136002A1 (en) 2011-11-30 2012-11-30 Apparatus and method for transmitting data and method for determination of transmission rate

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110126968A KR101385784B1 (ko) 2011-11-30 2011-11-30 데이터 송신장치 및 그 방법과 전송률 결정 방법

Publications (2)

Publication Number Publication Date
KR20130085458A KR20130085458A (ko) 2013-07-30
KR101385784B1 true KR101385784B1 (ko) 2014-04-30

Family

ID=48466807

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110126968A KR101385784B1 (ko) 2011-11-30 2011-11-30 데이터 송신장치 및 그 방법과 전송률 결정 방법

Country Status (2)

Country Link
US (1) US20130136002A1 (ko)
KR (1) KR101385784B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2907270B1 (en) 2012-10-09 2020-07-08 Assia Spe, Llc Method and system for latency measurement in communication systems
US20150382349A1 (en) * 2013-02-22 2015-12-31 Telefonaktiebolaget L M Ericsson (Publ) Sector Individual Control of Access to a Cell of a Mobile Network
US9397912B2 (en) * 2013-03-13 2016-07-19 Arista Networks, Inc. Method and system for active fabric management using unicast reachability monitoring
US9813259B2 (en) 2014-05-13 2017-11-07 Cisco Technology, Inc. Probing available bandwidth along a network path
US10511513B2 (en) * 2016-09-29 2019-12-17 Microsoft Technology Licensing, Llc Ping pair technique for detecting wireless congestion
KR102318284B1 (ko) * 2017-03-14 2021-10-28 삼성전자주식회사 데이터 전송 경로의 혼잡 탐지 방법 및 장치
CN111740903B (zh) * 2017-04-11 2022-10-11 华为技术有限公司 一种数据传输方法及装置
CN107888508B (zh) * 2017-09-29 2021-07-20 广州奇芯机器人技术有限公司 一种基于pc-nc的数控***及其抗干扰弱实时通讯方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010064765A (ko) * 1999-12-18 2001-07-11 서평원 프로세서간 통신 제어방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7088677B1 (en) * 2002-03-01 2006-08-08 Bellsouth Intellectual Property Corporation System and method for delay-based congestion detection and connection admission control
CN101223742B (zh) * 2005-05-16 2012-11-28 Iwics公司 多介质广域通信网
US20070153683A1 (en) * 2005-12-30 2007-07-05 Mcalpine Gary L Traffic rate control in a network
US9054973B2 (en) * 2007-04-25 2015-06-09 Broadcom Corporation Method and system for Ethernet congestion management
CA2737107C (en) * 2010-04-13 2019-08-27 Jingyuan Wang Tcp congestion control for heterogeneous networks
US8824281B2 (en) * 2010-11-17 2014-09-02 At&T Intellectual Property I, L.P. Network-friendly transmission control protocol (TCP) methods, apparatus and articles of manufacture
US9276832B2 (en) * 2011-03-20 2016-03-01 King Abdullah University Of Science And Technology Buffer sizing for multi-hop networks
WO2013063218A1 (en) * 2011-10-25 2013-05-02 Fourth Wall Media, Inc. Network bandwidth regulation using traffic scheduling
US9237107B2 (en) * 2011-11-15 2016-01-12 New Jersey Institute Of Technology Fair quantized congestion notification (FQCN) to mitigate transport control protocol (TCP) throughput collapse in data center networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010064765A (ko) * 1999-12-18 2001-07-11 서평원 프로세서간 통신 제어방법

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Klara Nahrstedt, "Network Service Customization: End-Point Perspective (Proposal)", Department of Computer & Information Science Technical Reports (CIS), University of Pennsylvania (1993) *
Klara Nahrstedt, "Network Service Customization: End-Point Perspective (Proposal)", Department of Computer & Information Science Technical Reports (CIS), University of Pennsylvania (1993)*
전경구, "다수의 병렬 TCP Flow를 가진 스테이션에 의한 대역폭 독점을 감소시키는 History-Aware RED, 한국통신학회논문지, 제34권 제11호, pp.1254-1260 (2009.11) *
전경구, "다수의 병렬 TCP Flow를 가진 스테이션에 의한 대역폭 독점을 감소시키는 History-Aware RED, 한국통신학회논문지, 제34권 제11호, pp.1254-1260 (2009.11)*

Also Published As

Publication number Publication date
KR20130085458A (ko) 2013-07-30
US20130136002A1 (en) 2013-05-30

Similar Documents

Publication Publication Date Title
KR101385784B1 (ko) 데이터 송신장치 및 그 방법과 전송률 결정 방법
US7290066B2 (en) Methods and structure for improved transfer rate performance in a SAS wide port environment
US9544233B2 (en) Congestion management for datacenter network
CN102508619B (zh) 存储***服务质量控制方法、***和存储***
TWI427479B (zh) 光纖頻道通訊中之控制方法、系統、電腦程式產品、及電腦可讀媒體
EP2615802A1 (en) Communication apparatus and method of content router to control traffic transmission rate in content-centric network (CCN), and content router
US9317427B2 (en) Reallocating unused memory databus utilization to another processor when utilization is below a threshold
TWI682277B (zh) 用戶可配置被動背景操作的固態驅動機、方法及製品
US8423688B2 (en) Multi-thread file input and output system and multi-thread file input and output program
US20090268747A1 (en) Communication apparatus
US9152459B2 (en) Adjusting thread priority to improve throughput between peer-to-peer (P2P) devices
WO2015149460A1 (zh) 以太网光纤通道的流量控制方法、装置及***
KR20080022079A (ko) 멀티 스트림 승인 스케쥴링
CN106716368B (zh) 用于应用的网络分类
CN112804157A (zh) 可编程的拥塞控制
US20090296577A1 (en) Method and apparatus for end-to-end network congestion management
US8959224B2 (en) Network data packet processing
KR20060051938A (ko) 네트워크 노드 열거에 관한 시스템 및 방법
KR101568288B1 (ko) 데이터 수신 장치 및 방법
CN109561020A (zh) 选择非最小路径和节流端口速度以增大网络吞吐量的技术
US9948564B2 (en) Data streaming scheduler for dual chipset architectures that includes a high performance chipset and a low performance chipset
KR101260561B1 (ko) 다중 레인 기반의 고속 이더넷에서 동적 레인 운영 방법 및 그 장치
JP2015076731A (ja) Usb中継装置、usb中継方法及びusb中継プログラム
JP5715458B2 (ja) 情報処理システム、調停方法
WO2014049943A1 (ja) マルチメディアデータ通信装置、方法、プログラムおよび有効データ増加率算出装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170309

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180403

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190401

Year of fee payment: 6