KR101884162B1 - 데이터 전송 방법 및 장치 - Google Patents

데이터 전송 방법 및 장치 Download PDF

Info

Publication number
KR101884162B1
KR101884162B1 KR1020170171917A KR20170171917A KR101884162B1 KR 101884162 B1 KR101884162 B1 KR 101884162B1 KR 1020170171917 A KR1020170171917 A KR 1020170171917A KR 20170171917 A KR20170171917 A KR 20170171917A KR 101884162 B1 KR101884162 B1 KR 101884162B1
Authority
KR
South Korea
Prior art keywords
data
bandwidth
network
data transmission
packets
Prior art date
Application number
KR1020170171917A
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 KR1020170171917A priority Critical patent/KR101884162B1/ko
Application granted granted Critical
Publication of KR101884162B1 publication Critical patent/KR101884162B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • 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/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • 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/31Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/783Distributed allocation of resources, e.g. bandwidth brokers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing

Landscapes

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

Abstract

대역폭의 활용도를 높일 수 있는 데이터 전송 방법 및 장치가 제공 된다. 본 발명의 일 실시예에 따른 데이터 전송 방법은 데이터 전송 장치가 네트워크의 시작 구간의 대역폭이 중간 구간의 대역폭 또는 수신 구간의 대역폭보다 큰 경우, 데이터에 포함된 패킷들이 각각 전송될 전송 경로를 나타내는 태그(tag)를 상기 패킷들 각각에 삽입하는 단계, 데이터 전송 장치가 상기 패킷들을 네트워크 장치들 중 하나에 전송하는 단계, 상기 패킷들을 전송 받은 네트워크 장치가 상기 태그 각각에 상응하는 복수의 경로를 통해 상기 패킷들을 각각 전송하는 단계 및 상기 데이터 수신 장치가 복수의 경로를 통해 수신된 상기 패킷들을 상기 데이터로 재조립하는 단계를 포함한다.

Description

데이터 전송 방법 및 장치{METHOD FOR TRANSMITTING DATA AND APPARATUS THEREOF}
본 발명은 대역폭의 활용도를 높일 수 있는 데이터 전송 방법 및 장치에 관한 것이다. 보다 자세하게는, 대용량 데이터를 전송할 때 사용 가능한 모든 경로를 통해서 데이터를 전송할 수 있도록 함으로써 높은 효율로 데이터를 전송할 수 있는 데이터 전송 방법 및 장치에 관한 것이다.
인터넷 통신기술이 급속히 발전함에 따라 단위 네트워크의 수가 무수히 많아지고 있으며, 컴퓨팅 기술과 다양한 서비스의 개발 등으로 인해 네트워크를 통해 전송되는 데이터 트래픽의 양도 증가하고 있다.
네트워크에는 여러 경로 중에서 트래픽을 목적지에 최적의 통신 경로를 통해 신속히 전송하기 위한 네트워크 장치(예를 들어, 라우터)들이 다수 구비된다.
네트워크에서 데이터를 전송할 때, 일반적으로 다수의 사용자와 다수의 서비스들이 네트워크를 이용할 수 있도록 하기 위해서 데이터를 전송하는 노드(node)로부터 데이터를 수신하는 노드까지의 여러 경로들 중 최적의 경로 하나를 선택하고, 선택된 경로로 데이터를 전송한다.
그러나, 대용량의 데이터를 전송하고자 할 경우에는 하나의 경로를 통해서 데이터를 전송하는 경우 네트워크의 대역폭을 전부 사용할 수 없는 문제점이 있다. 대용량의 데이터를 효율적으로 전송하기 위해 Science DMZ 네트워크 아키텍처 등이 제시되었으나, 네트워크의 대역폭을 최대한으로 활용할 수 있는 방안은 제시되지 못하고 있다.
또한, 데이터를 전송하는 경우 데이터가 전송되고 있는 동안에 데이터를 전송하는 시스템, 데이터를 수신하는 시스템 및 네트워크 모두가 데이터 전송이 완료될 때까지 자원을 사용해야 하는 문제점이 있다.
대한민국 공개특허공보 제10-2016-0131728호
본 발명이 해결하고자 하는 기술적 과제는, 네트워크의 다중 경로를 활용하여 대용량 데이터를 효율적으로 전송할 수 있는 방법 및 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명의 기술분야에서의 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 발명의 일 실시예에 따라 데이터를 전송하는 데이터 전송 장치, 데이터를 수신하는 데이터 수신 장치 및 상기 데이터 전송 장치와 상기 데이터 수신 장치 사이의 네트워크 상에 위치하는 복수의 네트워크 장치들을 포함하는 데이터 전송 시스템이 데이터를 전송하는 방법은, 상기 데이터 전송 장치가 상기 네트워크의 시작 구간의 대역폭이 중간 구간의 대역폭 또는 수신 구간의 대역폭보다 큰 경우, 상기 데이터에 포함된 패킷들이 각각 전송될 전송 경로를 나타내는 태그(tag)를 상기 패킷들 각각에 삽입하는 단계, 상기 데이터 전송 장치가 상기 패킷들을 상기 네트워크 장치들 중 하나에 전송하는 단계, 상기 패킷들을 전송 받은 상기 네트워크 장치가 상기 태그 정보 각각에 상응하는 복수의 경로를 통해 상기 패킷들을 각각 전송하는 단계 및 상기 데이터 수신 장치가 복수의 경로를 통해 수신된 상기 패킷들을 상기 데이터로 재조립하는 단계를 포함할 수 있다.
또한, 다른 실시 예에 따르면, 상기 태그를 삽입하는 단계는 상기 패킷들이 상기 중간 구간에서 이용 가능한 모든 경로를 통해 전송되도록 상기 태그를 삽입하는 것을 특징으로 할 수 있다.
또한, 또 다른 실시 예에 따르면, 상기 모든 경로는 상기 시작 구간으로부터 상기 수신 구간으로 향하는 방향을 지향하는 경로들인 것을 특징으로 할 수 있다.
또한, 또 다른 실시 예에 따른 데이터 전송 방법은, 상기 네트워크 상에 존재하는 경로 중에서 서로 중복되는 경로를 포함하지 않도록 상기 패킷들을 전송할 경로들을 결정하는 단계를 더 포함하고, 상기 패킷에 삽입되는 상기 태그는 상기 결정된 경로 중 하나를 지시하는 것을 특징으로 할 수 있다.
또한, 또 다른 실시 예에 따르면, 상기 재조립하는 단계는 상기 데이터 수신 장치가 상기 수신 구간의 대역폭이 상기 시작 구간의 대역폭 또는 상기 중간 구간의 대역폭 이상인 경우 상기 수신 구간의 모든 대역폭을 이용하여 상기 패킷들을 수신하고, 상기 수신 구간의 대역폭이 상기 시작 구간의 대역폭 및 상기 중간 구간의 대역폭보다 작은 경우 버퍼를 이용하여 패킷을 수신하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 일 실시 예에 따른 데이터 전송 시스템은, 네트워크의 시작 구간의 대역폭이 중간 구간의 대역폭 또는 수신 구간의 대역폭보다 큰 경우, 데이터에 포함된 패킷들이 각각 전송될 전송 경로를 나타내는 태그(tag)를 상기 패킷들 각각에 삽입하는 데이터 전송 장치, 상기 데이터 전송 장치로부터 수신된 상기 패킷들에 상기 태그가 포함되어 있는 경우 상기 각각의 패킷들에 포함된 상기 태그에 상응하는 복수의 경로로 상기 패킷들을 전송하고, 상기 태그가 포함되어 있지 않은 경우 상기 패킷을 전송할 경로를 라우팅하고, 상기 라우팅된 경로로 상기 데이터를 전송하는 복수의 네트워크 장치들 및 상기 복수의 네트워크 장치들을 통해 수신된 상기 패킷들을 상기 데이터로 재조립하는 데이터 수신 장치를 포함할 수 있다.
또한, 다른 실시 예에 따르면, 상기 데이터 수신 장치는 상기 데이터 전송 시스템의 버퍼 사이즈(buffer size)로부터 상기 복수의 네트워크 장치들 중 상기 데이터 수신 장치에 연결된 네트워크 장치의 버퍼 사이즈를 제외한 버퍼 사이즈를 가지는 버퍼를 구비하는 것을 특징으로 할 수 있다.
또한, 또 다른 실시 예에 따르면, 상기 데이터 수신 장치는 윈도우 크기(window size)가 상기 데이터가 전송되는 상기 전송 경로에 포함된 각 구간들의 윈도우 사이즈의 최대값 이상인 것을 특징으로 할 수 있다.
상기 기술적 과제를 해결하기 위한, 일 실시 예에 따라 데이터 전송 장치가 복수의 네트워크 장치들을 포함하는 네트워크를 통해 데이터 수신 장치에 데이터를 전송하는 방법은, 상기 데이터 전송 장치로부터 상기 데이터 수신 장치에 이르는 경로들을 결정하는 단계, 상기 결정된 경로들에 기초하여 상기 네트워크의 시작 구간의 대역폭, 중간 구간의 대역폭 및 수신 구간의 대역폭을 산출하는 단계, 상기 데이터 전송 장치가 상기 네트워크의 시작 구간의 대역폭이 중간 구간의 대역폭 또는 수신 구간의 대역폭보다 큰 경우, 상기 데이터에 포함된 패킷들이 각각 전송될 전송 경로를 나타내는 태그(tag)를 상기 패킷들 각각에 삽입하는 단계 및 상기 데이터를 상기 복수의 네트워크 장치를 통해 전송하는 단계를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 일 실시 예에 따라 데이터 수신 장치가 복수의 네트워크 장치들을 포함하는 네트워크를 통해 데이터를 수신하는 방법은, 상기 네트워크의 시작 구간의 대역폭, 중간 구간의 대역폭 및 수신 구간의 대역폭을 산출하는 단계, 상기 수신 구간의 대역폭이 상기 시작 구간의 대역폭 또는 상기 중간 구간의 대역폭 이상인 경우 상기 수신 구간의 모든 대역폭을 이용하여 상기 패킷들을 수신하고, 상기 수신 구간의 대역폭이 상기 시작 구간의 대역폭 및 상기 중간 구간의 대역폭보다 작은 경우 버퍼를 이용하여 패킷을 수신하는 단계 및 상기 수신된 패킷을 상기 데이터로 재조립하는 단계를 포함할 수 있다.
도 1은 일 실시 예에 따른 데이터 전송 시스템의 구성을 도시한 도면이다.
도 2는 일 실시 예에 따라 데이터 전송 장치가 데이터를 전송하는 프로세스를 도시한 순서도이다.
도 3은 일 실시 예에 따라 네트워크 장치가 데이터를 전달하는 프로세스를 도시한 순서도이다.
도 4는 일 실시 예에 따라 데이터 수신 장치가 데이터를 수신하는 프로세스를 도시한 순서도이다.
도 5는 일 실시 예에 따라 데이터 전송 시스템이 데이터를 전송하는 프로세스를 도시한 순서도이다.
도 6은 일 실시 예에 따른 데이터 전송 장치의 구조를 도시한 도면이다.
도 7은 일 실시 예에 따른 데이터 수신 장치의 구조를 도시한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
이하, 도면들을 참조하여 본 발명의 몇몇 실시예들을 설명한다.
도 1은 일 실시 예에 따른 데이터 전송 시스템의 구성을 도시한 도면이다. 일 실시 예에 따른 데이터 전송 시스템은 데이터 전송 장치(110), 복수의 네트워크 장치(121, 122) 및 데이터 수신 장치(130)를 포함할 수 있다. 데이터 전송 장치(110)는 데이터 전송 시스템에서 데이터를 전송하는 노드(node)를 구성하는 장치를 의미한다. 데이터 수신 장치는(130) 데이터 전송 시스템에서 데이터를 수신하는 노드를 구성하는 장치를 의미한다. 네트워크 장치(121, 122)는 데이터 전송 장치(110)와 데이터 수신 장치(130) 사이의 네트워크 상에 위치하여 데이터를 전달할 수 있다.
일 실시 예에 따른 데이터 전송 시스템은 시작 구간(11), 중간 구간(12) 및 수신 구간(13)으로 구분될 수 있다. 시작 구간(11)은 데이터 전송 장치(110)로부터 첫 번째 네트워크 장치(121)에 이르는 구간을 의미할 수 있다. 수신 구간(13)은 마지막 네트워크 장치(122)로부터 데이터 수신 장치(130)에 이르는 구간을 의미할 수 있다. 중간 구간(12)은 데이터 전송 시스템에서 시작 구간(11)과 수신 구간(13) 사이의 구간을 의미할 수 있다.
이하에서는 도 1 및 도 2를 참조하여 데이터 전송 장치(110)가 데이터를 전송하는 프로세스를 설명한다.
먼저, 도 2의 단계 S210에서 데이터 전송 장치(110)는 데이터 전송 장치(110)로부터 데이터 수신 장치(130)에 이르는 경로를 결정할 수 있다. 데이터 전송 장치(110)는 데이터 전송 시스템 내에서 사용 가능한 모든 경로를 산출할 수 있다. 여기서, 경로는 데이터 수신 장치(130)를 지향하는 경로를 의미할 수 있다. 즉, 경로는 롤백(rollback)하지 않고 데이터 전송 장치(110)로부터 데이터 수신 장치(130)에 이를 수 있는 경로를 의미할 수 있다.
일 실시 예에 따르면, 데이터 전송 장치(110)는 경로들이 서로 중복되지 않도록 데이터 전송 장치(110)는 데이터 전송 장치(110)로부터 데이터 수신 장치(130)에 이르는 경로들을 결정할 수 있다. 예를 들어, 도 1에서 제1 경로(21, 22, 23, 24)를 선택한 경우, 다른 경로 중 제2 경로(21, 25, 28, 24)는 수신 측 네트워크 장치(122)가 중복되므로, 데이터 전송 장치(110)는 제2 경로(21, 25, 28, 24)는 선택하지 않는다. 또한, 데이터 전송 장치(110)는 제3 경로(21, 25, 26, 27)는 중복되지 않으므로 선택할 수 있다.
이후, 단계 S220에서 데이터 전송 장치(110)는 시작 구간(11)의 대역폭이 중간 구간(12) 또는 수신 구간(13)의 대역폭보다 큰 지 여부를 판단할 수 있다. 시작 구간(11)의 대역폭이 중간 구간(12)의 대역폭보다 작고, 수신 구간(13)의 대역폭보다 작은 경우에는 시작 구간(11)의 전체 대역폭으로 데이터를 전송하더라도 중간 구간(12) 및 수신 구간(13)에서 데이터 트래픽을 수용 가능하므로, 데이터 전송 장치(110)는 단계 S240에서 별도의 처리 없이 데이터를 전송할 수 있다.
그러나, 시작 구간(11)의 대역폭이 중간 구간(12) 또는 수신 구간(13)의 대역폭보다 큰 경우, 데이터 전송 장치(110)가 시작 구간(11)의 전체 대역폭을 이용하여 데이터를 전송하더라도 중간 구간(12) 또는 수신 구간(13)에서 데이터 트래픽을 전부 수용하지 못하므로 전송 속도가 저하된다. 예를 들어, 시작 구간(11)의 대역폭이 10Gbps이고, 중간 구간(12)의 대역폭이 1Gbps이고, 수신 구간(13)의 대역폭이 10Gbps인 경우, 데이터는 1Gbps의 속도로만 전송될 수 있다. 그러나, 만일 10개 이상의 경로를 이용하여 데이터를 전송하는 경우, 데이터는 10Gbps의 속도로 전송될 수도 있다.
다중 경로를 통해서 데이터를 전송하기 위해, 시작 구간(11)의 대역폭이 중간 구간(12)의 대역폭 또는 수신 구간(13)의 대역폭보다 큰 경우, 데이터 전송 장치(110)는 단계 S230에서 전송될 데이터에 포함된 각각의 패킷들에 각각의 패킷들이 전송될 경로를 나타내는 태그(tag)를 삽입할 수 있다. 예를 들어, 데이터에 제1 패킷과 제2 패킷이 포함되어 있는 경우, 데이터 전송 장치(110)는 제1 경로(21, 22, 23, 24)를 나타내는 태그를 제1 패킷에 삽입하고, 제3 경로(21, 25, 26, 27)를 나타내는 태그를 제2 패킷에 삽입할 수 있다. 이후, 데이터 전송 장치(110)는 태그가 삽입된 패킷들을 네트워크 장치(121)에 전송할 수 있다(S240).
이하에서는 도 1 및 도 3을 참조하여 네트워크 장치들(121, 122)이 패킷을 전송하는 프로세스를 설명한다.
네트워크 장치는 데이터 전송 장치(110)나 다른 네트워크 장치로부터 패킷을 수신할 수 있다(S310). 네트워크 장치는 단계 S320에서 수신된 패킷이 태그를 포함하고 있는지 판단할 수 있다.
수신된 패킷이 태그를 포함하고 있는 경우, 네트워크 장치는 태그가 지시하는 경로로 패킷을 전송할 수 있다(S330). 예를 들어, 네트워크 장치(121)가 수신한 제1 패킷에 제1 경로(21, 22, 23, 24)를 나타내는 태그가 포함되어 있는 경우, 네트워크 장치(121)는 제1 링크(22)를 통해 수신된 제1 패킷을 전달할 수 있다. 또한, 네트워크 장치(121)가 수신한 제2 패킷에 제3 경로(21, 25, 26, 27)를 나타내는 태그가 포함되어 있는 경우, 네트워크 장치(121)는 제2 링크(25)를 통해 수신된 제3 패킷을 전달할 수 있다.
수신된 패킷이 태그를 포함하고 있지 않은 경우, 네트워크 장치는 네트워크 상에서 사용 가능한 경로를 라우팅(routing)할 수 있다. 네트워크 장치는 라우팅된 경로로 수신된 패킷을 전송할 수 있다(S335).
이하에서는 도 1 및 도 4를 참조하여 데이터 수신 장치(130)가 데이터를 수신하는 프로세스를 설명한다.
데이터 수신 장치(130)는 데이터를 수신하기 전에, 수신 구간(13)의 대역폭, 시작 구간(11)의 대역폭 및 중간 구간(12)의 대역폭을 산출할 수 있다. 데이터 수신 장치(130)는 산출된 수신 구간(13)의 대역폭이 시작구간(11)의 대역폭 및 중간 구간(12)의 대역폭 이상인지 여부를 판단할 수 있다(S410).
수신 구간(13)의 대역폭이 시작 구간(11)의 대역폭 및 중간 구간(12)의 대역폭 이상인 경우, 데이터 수신 장치(130)가 수신할 수 있는 허용량이 시작 구간(11) 및 중간 구간(12)의 대역폭을 통해 전송되는 데이터 용량을 수용할 수 있으므로, 데이터 수신 장치(130)는 수신 구간(13)의 대역폭을 이용하여 패킷을 모두 수신할 수 있다(S420).
수신 구간(13)의 대역폭이 시작 구간(11)의 대역폭보다 작거나, 중간 구간(12)의 대역폭보다 작은 경우, 시작 구간(11) 및 중간 구간(12)을 통해 전송되는 데이터를 수신 구간(13)의 대역폭이 모두 수용하지 못할 수 있다. 따라서, 이 경우 데이터 수신 장치(130)는 버퍼를 이용하여 패킷을 수신할 수 있다(S430).
여기서, 일 실시 예에 따르면 단계 S430에서 이용되는 버퍼의 버퍼 사이즈(buffer size)는 데이터 전송 시스템에 대한 버퍼 사이즈로부터 네트워크 장치의 버퍼 사이즈를 제외한 크기일 수 있다. 여기서, 네트워크 장치는 데이터 수신 장치(130)에 연결된 네트워크 장치를 의미할 수 있다. 일반적으로는, 데이터 전송을 위한 전체 구간을 확인하고, 확인된 구간이 사용할 수 있는 가장 낮은 대역폭을 기준으로 산출되는 대역폭-지연 곱(Bandwidth-Delay Product; BDP)에 따른 버퍼 사이즈를 가지는 수신측 버퍼가 구비된다. 본 발명의 일 실시 예에 따르면, 데이터의 수신 전에 데이터 재수신 및 오류 처리를 위한 추가 사항에 의한 네트워크 딜레이를 고려하여, 데이터 수신 장치(130)는 네트워크 대역폭-지연 곱의 합으로부터 네트워크 버퍼의 버퍼 사이즈를 뺀 버퍼 사이즈를 가지는 버퍼를 구비할 수 있다. 데이터 수신 장치(130)의 버퍼 사이즈를 수식으로 나타내는 경우, 아래 수학식 1과 같이 표현될 수 있다.
Figure 112017124566624-pat00001
여기서, a는 경로를 의미하고, b는 경로 내의 구간을 의미한다. N은 선택되는 경로의 카운트, 즉 선택된 경로가 몇 개인지를 의미하고, M은 선택된 경로에 속한 네트워크 장비 간의 구간의 카운트를 의미한다. RTT는 왕복 시간(Round Trip Time)을 의미한다. bandwidth/RTT는 대역폭-지연 곱을 의미한다. 따라서, b's(bandwidth/RTT)는 구간 b의 대역폭-지연 곱을 의미한다. End's network buffer size는 네트워크 버퍼의 버퍼 사이즈를 의미한다. Reciever's buffer size는 데이터 수신 장치(130)의 버퍼 사이즈를 의미한다.
또한, 데이터가 전송되는 전송 경로별로 그 전송 경로에 포함된 구간들의 윈도우 크기의 합을 산출하였을 때, 데이터 수신 장치(130)의 윈도우 크기(window size)는 산출된 전송 경로별 윈도우 크기의 합들 중 최대값 이상일 수 있다. 이를 수식으로 나타내는 경우, 아래 수학식 2와 같이 표현될 수 있다.
Figure 112017124566624-pat00002
여기서, WS b 는 구간 b의 윈도우 사이즈를 의미한다. 따라서, 하기 수학식 3은 N번째 경로에 포함된 구간들의 윈도우 사이즈의 합을 의미한다. Receiver's window size는 데이터 수신 장치(130)의 윈도우 사이즈를 의미한다.
Figure 112017124566624-pat00003
또한, 데이터 수신 장치(130)의 윈도우 크기(window size)는 상기 최대값과 경로의 카운트의 곱 이하일 수 있다.
일 실시 예에 따르면, 데이터 수신 장치(130)는 수신된 패킷에 포함된 시퀀스(sequence) 번호에 기초하여 수신된 패킷을 데이터로 재조립할 수 있다. 여기서, 누락된 시퀀스 번호가 식별되는 경우, 데이터 수신 장치(130)는 데이터 전송 장치(110)에 재전송을 요청할 수 있다. 일 실시 예에 따르면, 여러 경로를 통해 패킷이 전송되는 경우 수신 측에 수신되는 패킷의 도착 순서가 데이터에 포함된 패킷의 순서와 다를 수 있으므로, 데이터 수신 장치(130)는 패킷 버퍼가 최대로 설정되고, 재전송에 대한 타이머가 최대로 설정될 수 있다. 또한, 빠른 재전송을 위해 데이터 수신 장치(130)는 데이터에 대한 ACK를 최대 크기로 전송하고 재전송을 요청할 수 있다.
도 5는 일 실시 예에 따라 데이터 전송 장치, 네트워크 장치 및 데이터 수신 장치를 포함하는 데이터 전송 시스템이 데이터를 전송하는 프로세스를 도시한 순서도이다. 도 5의 네트워크 장치(120)는 데이터 전송 장치(110)와 데이터 수신 장치(130) 사이에 연결되어 네트워크를 형성하는 하나 이상의 장치를 의미한다.
먼저, 단계 S510에서 데이터 전송 장치(110)는 데이터 전송 장치(110)와 데이터 수신 장치(130) 사이의 이용 가능한 모든 경로를 결정할 수 있다. 이후, 데이터 전송 장치(110)는 단계 S520에서 결정된 경로에 기반하여 구간 별 대역폭을 비교할 수 있다. 여기서, 구간은 시작 구간, 중간 구간 및 수신 구간을 의미할 수 있다.
네트워크의 시작 구간의 대역폭이 중간 구간의 대역폭 또는 수신 구간의 대역폭보다 큰 경우, 데이터 전송 장치(110)는 단계 S530에서 데이터에 포함될 패킷들이 각각 전송될 전송 경로를 나타내는 태그를 패킷들 각각에 삽입할 수 있다. 여기서, 패킷들 각각에 삽입되는 태그들은 단계 S510에서 결정된 경로 중 하나를 지시할 수 있다. 여기서, 데이터 전송 장치(110)는 패킷들이 단계 S510에서 결정된 모든 경로를 통해서 나뉘어 전송될 수 있도록 각각의 패킷들에 태그를 지정할 수 있다. 예를 들어, 단계 S510에서 제1 경로, 제2 경로 및 제3 경로가 결정되고, 데이터에 제1 패킷, 제2 패킷, 제3 패킷, 제4 패킷, 제5 패킷 및 제6 패킷이 포함되어 있는 경우, 데이터 전송 장치(110)는 제1 패킷 및 제4 패킷에 제1 경로를 지시하는 태그를 삽입하고, 제2 패킷 및 재5 패킷에 제2 경로를 지시하는 태그를 삽입하고, 제3 패킷 및 제6 패킷에 제3 경로를 지시하는 태그를 삽입할 수 있다.
이후, 데이터 전송 장치(110)는 태그가 삽입된 패킷을 네트워크 장치(120)로 전송할 수 있다(S540). 네트워크 장치(120)는 수신된 패킷에 포함된 태그를 확인할 수 있다(S550). 네트워크 장치(120)는 태그가 지시하는 경로에 따라 다른 네트워크 장치나 데이터 수신 장치(130)로 수신된 패킷을 전달할 수 있다.
태그가 지시하는 경로에 따라 각 패킷들이 전송됨으로써, 데이터 수신 장치(130)는 다중 경로를 통해 패킷들을 수신할 수 있다(S560). 데이터 수신 장치(130)는 수신된 패킷들을 데이터로 재조립할 수 있다. 단계 S560에서 누락된 패킷이 존재하는 경우, 데이터 수신 장치(130)는 데이터 전송 장치(110)에 누락된 패킷의 재전송을 요청할 수 있다.
도 5에 도시된 프로세스에 따라 데이터를 전송함으로써, 데이터 전송 시스템은 모든 대역폭을 활용하여 데이터를 전송할 수 있다.
도 6은 일 실시 예에 따른 데이터 전송 장치의 구조를 도시한 도면이다. 일 실시 예에 따른 데이터 전송 장치(110)는 프로세서(610), 메모리(620), 스토리지(630), 네트워크 인터페이스(640) 및 시스템 버스(650)를 포함할 수 있다. 시스템 버스(650)는 프로세서(610), 메모리(620), 스토리지(630) 및 네트워크 인터페이스(640) 사이의 데이터 송수신 통로 역할을 수행한다. 메모리(620)는, 예를 들어 RAM(Random Access Memory)와 같은 휘발성 데이터 저장장치일 수 있다. 스토리지(630)는 플래시 메모리와 같은 비휘발성 메모리이거나, 하드디스크 등의 데이터 저장 장치일 수 있다.
스토리지(630)는 전송될 데이터(635)를 저장할 수 있다. 또한, 스토리지(630)는 데이터 전송 장치(110)에서 실행될 프로그램을 더 저장할 수 있다.
메모리(620)는 스토리지(630)에 저장된 프로그램의 실행 코드를 로드할 수 있다. 실행 코드는 복수의 오퍼레이션으로 구성될 수 있다. 프로세서(610)는 메모리(620)에 저장된 오퍼레이션을 페치(fetch)하여 실행할 수 있다. 프로세서(610)는 메모리(620)에 저장된 오퍼레이션을 시스템 버스(650)를 통해 제공받을 수 있다.
프로세서(610)는 메모리(620)에 저장된 오퍼레이션들을 실행함으로써 네트워크에서 사용 가능한 경로를 결정할 수 있으며, 결정된 경로에 기반하여 네트워크의 시작 구간의 대역폭, 중간 구간의 대역폭 및 수신 구간의 대역폭을 산출할 수 있다. 산출된 각 구간들의 대역폭들을 비교한 결과에 따라서, 프로세서는 데이터(635)에 포함된 패킷들에 전송 경로를 나타내는 태그를 삽입할 수 있다.
네트워크 인터페이스(640)는 프로세서(610)의 제어에 따라서 통해 태그가 삽입된 패킷을 네트워크(20)로 전송할 수 있다.
도 7은 일 실시 예에 따른 데이터 수신 장치의 구조를 도시한 도면이다. 일 실시 예에 따른 데이터 수신 장치(130)는 프로세서(710), 메모리(720), 스토리지(730), 네트워크 인터페이스(740) 및 시스템 버스(750)를 포함할 수 있다. 시스템 버스(750)는 프로세서(710), 메모리(720), 스토리지(730) 및 네트워크 인터페이스(740) 사이의 데이터 송수신 통로 역할을 수행한다. 메모리(620)는, 예를 들어 RAM(Random Access Memory)와 같은 휘발성 데이터 저장장치일 수 있다. 또한, 메모리(720)에는 데이터를 수신하기 위한 수신 버퍼(725)가 구성될 수 있다. 스토리지(630)는 플래시 메모리와 같은 비휘발성 메모리이거나, 하드디스크 등의 데이터 저장 장치일 수 있다.
스토리지(730)는 데이터 전송 장치(110)에서 실행될 프로그램을 더 저장할 수 있다. 메모리(720)는 스토리지(730)에 저장된 프로그램의 실행 코드를 로드할 수 있다. 실행 코드는 복수의 오퍼레이션으로 구성될 수 있다. 프로세서(710)는 메모리(720)에 저장된 오퍼레이션을 페치(fetch)하여 실행할 수 있다. 프로세서(710)는 메모리(720)에 저장된 오퍼레이션을 시스템 버스(750)를 통해 제공받을 수 있다.
프로세서(710)는 메모리(720)에 저장된 오퍼레이션들을 실행함으로써 네트워크의 시작 구간의 대역폭, 중간 구간의 대역폭 및 수신 구간의 대역폭을 산출할 수 있다. 산출된 각 구간들의 대역폭들을 비교한 결과에 따라서, 수신 버퍼(725)를 이용하여 패킷들을 수신할 지 여부를 판단할 수 있다.
네트워크 인터페이스(740)는 프로세서(710)의 제어에 따라 네트워크(20)를 통해서 패킷들을 수신할 수 있다.
지금까지 설명된 본 발명의 실시예에 따른 방법들은 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는, 서버 장치, 클라우드 서비스를 위한 서버 풀에 속한 물리 서버, 데스크탑 피씨와 같은 고정식 컴퓨팅 장치를 모두 포함한다.
상기 컴퓨터프로그램은 DVD-ROM, 플래시 메모리 장치 등의 기록매체에 저장된 것일 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다.

Claims (10)

  1. 데이터를 전송하는 데이터 전송 장치, 상기 데이터를 수신하는 데이터 수신 장치 및 상기 데이터 전송 장치와 상기 데이터 수신 장치 사이의 네트워크 상에 위치하는 복수의 네트워크 장치들을 포함하는 데이터 전송 시스템이 데이터를 전송하는 방법에 있어서,
    상기 데이터 전송 장치가 상기 네트워크의 시작 구간의 대역폭이 중간 구간의 대역폭 또는 수신 구간의 대역폭보다 큰 경우, 상기 데이터에 포함된 패킷들이 각각 전송될 전송 경로를 나타내는 태그(tag)를 상기 패킷들 각각에 삽입하는 단계;
    상기 데이터 전송 장치가 상기 패킷들을 상기 네트워크 장치들 중 하나에 전송하는 단계;
    상기 패킷들을 전송 받은 상기 네트워크 장치가 상기 태그 각각에 상응하는 복수의 경로를 통해 상기 패킷들을 각각 전송하는 단계; 및
    상기 데이터 수신 장치가 복수의 경로를 통해 수신된 상기 패킷들을 상기 데이터로 재조립하는 단계;를 포함하는,
    데이터 전송 방법.
  2. 제1항에 있어서,
    상기 태그를 삽입하는 단계는,
    상기 패킷들이 상기 중간 구간에서 이용 가능한 모든 경로를 통해 전송되도록 상기 태그를 삽입하는 것을 특징으로 하는,
    데이터 전송 방법.
  3. 제2항에 있어서,
    상기 모든 경로는,
    상기 시작 구간으로부터 상기 수신 구간으로 향하는 방향을 지향하는 경로들인,
    데이터 전송 방법.
  4. 제1항에 있어서,
    상기 데이터 전송 방법은,
    상기 네트워크 상에 존재하는 경로 중에서 서로 중복되는 경로를 포함하지 않도록 상기 패킷들을 전송할 경로들을 결정하는 단계를 더 포함하고,
    상기 패킷에 삽입되는 상기 태그는,
    상기 결정된 경로 중 하나를 지시하는 것을 특징으로 하는,
    데이터 전송 방법.
  5. 제1항에 있어서,
    상기 재조립하는 단계는,
    상기 데이터 수신 장치가 상기 수신 구간의 대역폭이 상기 시작 구간의 대역폭 또는 상기 중간 구간의 대역폭 이상인 경우 상기 수신 구간의 모든 대역폭을 이용하여 상기 패킷들을 수신하고, 상기 수신 구간의 대역폭이 상기 시작 구간의 대역폭 및 상기 중간 구간의 대역폭보다 작은 경우 버퍼를 이용하여 패킷을 수신하는 단계를 포함하는,
    데이터 전송 방법.
  6. 네트워크의 시작 구간의 대역폭이 중간 구간의 대역폭 또는 수신 구간의 대역폭보다 큰 경우, 데이터에 포함된 패킷들이 각각 전송될 전송 경로를 나타내는 태그(tag)를 상기 패킷들 각각에 삽입하는 데이터 전송 장치;
    상기 데이터 전송 장치로부터 수신된 상기 패킷들에 상기 태그가 포함되어 있는 경우 상기 각각의 패킷들에 포함된 상기 태그에 상응하는 복수의 경로로 상기 패킷들을 전송하고, 상기 태그가 포함되어 있지 않은 경우 상기 패킷을 전송할 경로를 라우팅하고, 상기 라우팅된 경로로 상기 데이터를 전송하는 복수의 네트워크 장치들; 및
    상기 복수의 네트워크 장치들을 통해 수신된 상기 패킷들을 상기 데이터로 재조립하는 데이터 수신 장치를 포함하는,
    데이터 전송 시스템.
  7. 제6항에 있어서,
    상기 데이터 수신 장치는,
    상기 데이터 전송 시스템의 버퍼 사이즈(buffer size)로부터 상기 복수의 네트워크 장치들 중 상기 데이터 수신 장치에 연결된 네트워크 장치의 버퍼 사이즈를 제외한 버퍼 사이즈를 가지는 버퍼를 구비하는 것을 특징으로 하는,
    데이터 전송 시스템.
  8. 제6항에 있어서,
    상기 데이터 수신 장치는,
    윈도우 크기(window size)가 상기 데이터가 전송되는 상기 전송 경로에 포함된 각 구간들의 윈도우 사이즈의 최대값 이상인 것을 특징으로 하는,
    데이터 전송 시스템
  9. 데이터 전송 장치가 복수의 네트워크 장치들을 포함하는 네트워크를 통해 데이터 수신 장치에 데이터를 전송하는 방법에 있어서,
    상기 데이터 전송 장치로부터 상기 데이터 수신 장치에 이르는 경로들을 결정하는 단계;
    상기 결정된 경로들에 기초하여 상기 네트워크의 시작 구간의 대역폭, 중간 구간의 대역폭 및 수신 구간의 대역폭을 산출하는 단계;
    상기 데이터 전송 장치가 상기 네트워크의 시작 구간의 대역폭이 중간 구간의 대역폭 또는 수신 구간의 대역폭보다 큰 경우, 상기 데이터에 포함된 패킷들이 각각 전송될 전송 경로를 나타내는 태그(tag)를 상기 패킷들 각각에 삽입하는 단계; 및
    상기 데이터를 상기 복수의 네트워크 장치를 통해 전송하는 단계;를 포함하는,
    데이터 전송 방법.
  10. 데이터 수신 장치가 복수의 네트워크 장치들을 포함하는 네트워크를 통해 데이터를 수신하는 방법에 있어서,
    상기 네트워크의 시작 구간의 대역폭, 중간 구간의 대역폭 및 수신 구간의 대역폭을 산출하는 단계;
    상기 수신 구간의 대역폭이 상기 시작 구간의 대역폭 또는 상기 중간 구간의 대역폭 이상인 경우 상기 수신 구간의 모든 대역폭을 이용하여 패킷들을 수신하고, 상기 수신 구간의 대역폭이 상기 시작 구간의 대역폭 및 상기 중간 구간의 대역폭보다 작은 경우 버퍼를 이용하여 패킷을 수신하는 단계; 및
    상기 수신된 패킷을 상기 데이터로 재조립하는 단계;를 포함하는,
    데이터 수신 방법.
KR1020170171917A 2017-12-14 2017-12-14 데이터 전송 방법 및 장치 KR101884162B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170171917A KR101884162B1 (ko) 2017-12-14 2017-12-14 데이터 전송 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170171917A KR101884162B1 (ko) 2017-12-14 2017-12-14 데이터 전송 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101884162B1 true KR101884162B1 (ko) 2018-08-30

Family

ID=63453614

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170171917A KR101884162B1 (ko) 2017-12-14 2017-12-14 데이터 전송 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101884162B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101598775B1 (ko) * 2015-01-26 2016-03-02 아토리서치(주) 소프트웨어 정의 네트워크에서 패킷을 다중경로를 통해 전송하기 위한 제어방법 및 장치
KR20160131728A (ko) 2015-05-08 2016-11-16 한국전자통신연구원 네트워크 관리 방법
KR20170123662A (ko) * 2015-03-10 2017-11-08 후아웨이 테크놀러지 컴퍼니 리미티드 데이터 평면에서 멀티 타입 전송을 가능하게 하는 트래픽 엔지니어링을 위한 소프트웨어 정의 네트워크(sdn) 제어 시그널링

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101598775B1 (ko) * 2015-01-26 2016-03-02 아토리서치(주) 소프트웨어 정의 네트워크에서 패킷을 다중경로를 통해 전송하기 위한 제어방법 및 장치
KR20170123662A (ko) * 2015-03-10 2017-11-08 후아웨이 테크놀러지 컴퍼니 리미티드 데이터 평면에서 멀티 타입 전송을 가능하게 하는 트래픽 엔지니어링을 위한 소프트웨어 정의 네트워크(sdn) 제어 시그널링
KR20160131728A (ko) 2015-05-08 2016-11-16 한국전자통신연구원 네트워크 관리 방법

Similar Documents

Publication Publication Date Title
US11082308B2 (en) Multi-path aware tracing and probing functionality at service topology layer
EP2661028A1 (en) Duplicate Packet Suppression
US10355971B2 (en) System and method for data path validation and verification
JP2020522922A (ja) ブロックチェーンネットワークにおいてトランザクションを伝播するためにネットワークコーディングを選択的に使用する方法及びシステム
US9608922B2 (en) Traffic control on an on-chip network
EP3652876B1 (en) Optimisation of network parameters for enabling network coding
JP2001024678A (ja) データ伝送ネットワーク中で輻輳を予測して制御する方法およびノード
WO2018036173A1 (zh) 一种网络负载均衡方法、设备及系统
US11888745B2 (en) Load balancer metadata forwarding on secure connections
KR101630519B1 (ko) 데이터 트래픽의 전송을 제어하는 장치 및 방법
CN103763217A (zh) 多路径tcp的分组调度方法和装置
CN112737940A (zh) 一种数据传输的方法和装置
JP5039677B2 (ja) エッジノードおよび帯域制御方法
KR101884162B1 (ko) 데이터 전송 방법 및 장치
US10609188B2 (en) Information processing apparatus, information processing system and method of controlling information processing system
JP7189474B2 (ja) 推定システム、付加装置、推定方法、付加方法、推定プログラム、及び付加プログラム
JP4973749B2 (ja) 通信装置及び通信制御方法
KR20130048547A (ko) Lqi를 이용한 위치 기반의 라우팅 장치 및 방법
WO2018006619A1 (zh) 传输路径的负载信息的方法和网络节点
Parshutina et al. Simulation modeling and optimization of the redundant processes of transmitting and handling requests in distributed computer systems
US20120317230A1 (en) Network apparatus, transmission destination inquiring method, and non-transitory computer readable storage medium
JP2007013510A (ja) パケット通信システムおよびパケット通信装置
JP4797033B2 (ja) Tcpフローレート制御エッジノードにおけるフローレート制御方法及びエッジノード
US8854987B2 (en) Distributing cells on an IMA logical link having inactive IMA sub-links
CN114039979A (zh) 一种链路聚合中负载均衡的方法、装置、设备及存储介质

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant