KR100908868B1 - 가상 인터페이스를 통해 연결된 서버와 클라이언트사이에서 각 회선별로 트래픽을 분배하여 데이터를전송하는 방법 및 시스템 - Google Patents

가상 인터페이스를 통해 연결된 서버와 클라이언트사이에서 각 회선별로 트래픽을 분배하여 데이터를전송하는 방법 및 시스템 Download PDF

Info

Publication number
KR100908868B1
KR100908868B1 KR1020070097715A KR20070097715A KR100908868B1 KR 100908868 B1 KR100908868 B1 KR 100908868B1 KR 1020070097715 A KR1020070097715 A KR 1020070097715A KR 20070097715 A KR20070097715 A KR 20070097715A KR 100908868 B1 KR100908868 B1 KR 100908868B1
Authority
KR
South Korea
Prior art keywords
server
client
data
line
traffic distribution
Prior art date
Application number
KR1020070097715A
Other languages
English (en)
Other versions
KR20090032454A (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 KR1020070097715A priority Critical patent/KR100908868B1/ko
Priority to PCT/KR2008/004807 priority patent/WO2009041762A1/en
Priority to US12/527,414 priority patent/US8060618B2/en
Publication of KR20090032454A publication Critical patent/KR20090032454A/ko
Application granted granted Critical
Publication of KR100908868B1 publication Critical patent/KR100908868B1/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/12Avoiding congestion; Recovering from congestion
    • H04L47/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • 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
    • H04L45/245Link aggregation, e.g. trunking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering

Landscapes

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

Abstract

본 발명은 가상 인터페이스를 통해 연결된 서버와 클라이언트 사이에서 각 회선별로 트래픽을 분배하여 데이터를 전송하는 방법 및 시스템에 관한 것으로서, 적어도 하나 이상의 회선에 대한 가상 인터페이스를 통해 연결된 서버와 클라이언트 사이에서 데이터를 전송하는 방법에 있어서, 클라이언트가 서버로 대역폭 테스트 요청 신호를 전송하는 제1 단계; 서버가 상기 대역폭 테스트 요청 신호에 대해 상기 클라이언트로 테스트 요청 승인 신호를 전송하는 제2 단계; 클라이언트가 상기 서버와 연결된 각 회선별로 다운로드 전송속도 및 업로드 전송속도를 측정하는 대역폭 테스트를 수행하는 제3 단계;클라이언트에서 상기 측정된 대역폭 테스트 결과를 서버로 전송하는 제4 단계; 서버가 상기 대역폭 테스트 결과를 이용하여 서버에서 클라이언트로 데이터를 전송할 경우 사용되는 제1 트래픽 분배 가중치를 결정하는 제5 단계; 클라이언트가 상기 대역폭 테스트 결과를 이용하여 클라이언트에서 서버로 데이터를 전송할 경우 사용되는 제2 트래픽 분배 가중치를 결정하는 제6 단계; 및 상기 서버가 가상 인터페이스를 통해 상기 제1 트래픽 분배 가중치에 따라 각 회선별로 데이터를 분배하여 클라이언트로 전송하고, 상기 클라이언트가 가상 인터페이스를 통해 상기 제2 트래픽 분배 가중치에 따라 각 회선별로 데이터를 분배하여 서버로 전송하는 제7 단계를 포함하는 서버와 클라이언트 사이에서의 데이터 전송 방법 및 시스템을 제공한다.
트래픽 분배 가중치, 가상 인터페이스, 데이터 패킷 분배, 데이터 패킷 재정렬, 데이터 전송

Description

가상 인터페이스를 통해 연결된 서버와 클라이언트 사이에서 각 회선별로 트래픽을 분배하여 데이터를 전송하는 방법 및 시스템{METHOD AND SYSTEM FOR TRANSMITTING DATA USING TRAFFIC DISTRIBUTION FOR EACH LINE BETWEEN SERVER AND CLIENT CONNECTED BY VIRTUAL INTERFACE}
본 발명은 가상 인터페이스를 통해 연결된 서버와 클라이언트 사이에서 각 회선별로 트래픽을 분배하여 데이터를 전송하는 방법 및 시스템에 관한 것으로서, 보다 상세하게는 가상 인터페이스를 통해 서로 연결된 서버 및 클라이언트 사이에서 트래픽 분배 가중치를 이용하여 각 회선별로 데이터를 분배하여 전송함으로써 데이터 전송의 효율을 극대화시키고, 수신한 데이터 패킷의 재정렬 및 회선별 에러 검출 방법의 제공을 통한 사용자의 데이터 전송 효율을 높일 수 있는 방법 및 시스템에 관한 것이다.
최근, 인터넷 통신 및 네트워크 기술의 발전으로 인하여 통신 기술 분야는 급속한 발전 속도를 보여주고 있다. 이러한 발전과 더불어 사용자 간의 데이터 통 신의 사용량 역시 크게 늘어나고 있는바, 보다 적은 시간 안에 보다 많은 데이터를 상대방에게 전송할 수 있는 시스템을 개발하는 것은 중요한 과제로 부상되고 있다.
데이터를 전송함에 있어서 중요한 요소 중에 하나는 데이터 전송 속도이다. 데이터 전송 속도는 주어진 시간(대개 1초) 내에 한 지점으로부터 다른 지점으로 옮겨진 디지털 데이터의 량을 말한다. 일반적으로 주어진 경로의 대역폭이 크면, 데이터 전송속도도 더 빠르다. 통신에서의 데이터 전송은 보통 bps(bits per second) 단위로 측정된다. 예를 들면, 모뎀을 통해 인터넷에 접속하는 전형적인 속도는 56 Kbps 정도이며, 이더넷과 같은 근거리 통신망에서의 데이터 전송은 10 Mbps 수준이다.
데이터 전송 속도와 더불어 또 하나의 중요 요소는 데이터가 전송될 수 있는 회선의 수이다. 회선이란 간단히 말해 장치 대 장치 간 데이터의 전송이 있는 경우 데이터가 움직이는 경로를 의미한다고 표현할 수 있다. 하나의 회선을 이용하여 데이터를 전송하는 것보다는 다수의 회선을 이용하여 데이터를 분할하여 전송하는 것이 데이터 전송 속도를 향상시킨다는 것은 자명하다.
데이터를 전송함에 있어서, 서버와 클라이언트의 예를 들어보면 서버와 클라이언트 간의 데이터를 전송할 수 있는 등가 회선이 존재한다고 가정하면 종래의 기술은 그 존재하는 등가 회선들에 동일한 양의 데이터 패킷을 분배하는 방법 예컨대 4개의 회선이 있고, 8개의 패킷으로 이루어진 데이터가 존재하는 경우, 각 회선마다 2개의 패킷을 분배하여 전송하는 방법 또는 사용자의 수동 조작에 의하여 각 회선별로 데이터 패킷의 분배 비율을 정하여 놓고 데이터 패킷을 분배하는 방법 등을 이용하였다.
그러나 서버와 클라이언트 간에 다중 회선이 존재하는 경우, 각 회선의 대역폭은 동일하지 않기 때문에 각각의 회선마다 전송 속도가 다르게 측정될 수가 있는바, 종래의 기술처럼 다중 회선들에 동일한 양의 데이터 패킷을 분배하는 경우에는 데이터 전송 속도에 있어서 최대의 효율을 낼 수 없는 문제점이 존재하였다.
한편, 사용자의 수동 조작에 의한 데이터 패킷 분배 역시 각 회선의 대역폭이 항상 일정하게 유지되는 것이 아니라, 주변 환경 등에 의하여 대역폭의 변화가 일어날 수 있으므로, 항상 효율적인 데이터 패킷의 분배가 이루어질 수 없다는 점에서 역시 그 한계가 존재하였다.
본 발명은 상기와 같은 문제점을 해결하고자 안출된 것으로서, 서버 및 클라이언트 사이의 각 회선별로 데이터를 전송함에 있어서, 실시간으로 회선별 대역폭 및 패킷의 특징에 따른 트래픽 분배 가중치를 결정하고 이를 이용하여 데이터 패킷을 분배하여 전송함으로써, 보다 큰 대역폭을 확보함으로써 데이터 전송시의 효율 및 전송 속도를 극대화시킬 수 있는 방법 및 시스템을 제공하는 것을 목적으로 한다.
또한, 본 발명은 서버와 클라이언트 사이의 각 회선별 트래픽 분배 가중치 값을 보다 효율적이고 자동적으로 결정할 수 있는 방법 및 시스템을 제공하는 것을 또 다른 목적으로 한다.
또한, 본 발명은 서버 및 클라이언트에서 데이터 패킷을 수신하는 경우, 수신된 데이터 패킷을 원래의 순서에 맞게 재정렬함으로써 데이터의 전송의 안정성과 신뢰도를 높이고, 가상 인터페이스에 참여된 물리 인터페이스의 통신 상태를 주기적으로 감시함으로써 장애 극복을 용이하게 수행할 수 있는 방법 및 시스템을 제공하는 것을 또 다른 목적으로 한다.
상기한 바와 같은 목적을 달성하기 위한 본 발명은, 적어도 하나 이상의 회선에 대한 가상 인터페이스를 통해 연결된 서버와 클라이언트 사이에서 각 회선별 로 트래픽을 분배하여 데이터를 전송하는 방법에 있어서, 클라이언트가 서버로 대역폭 테스트 요청 신호를 전송하는 제1 단계; 서버가 상기 대역폭 테스트 요청 신호에 대해 상기 클라이언트로 테스트 요청 승인 신호를 전송하는 제2 단계; 클라이언트가 상기 서버와 연결된 각 회선별로 다운로드 전송속도 및 업로드 전송속도를 측정하는 대역폭 테스트를 수행하는 제3 단계; 클라이언트에서 상기 측정된 대역폭 테스트 결과를 서버로 전송하는 제4 단계; 서버가 상기 대역폭 테스트 결과를 이용하여 서버에서 클라이언트로 데이터를 전송할 경우 사용되는 제1 트래픽 분배 가중치를 결정하는 제5 단계; 클라이언트가 상기 대역폭 테스트 결과를 이용하여 클라이언트에서 서버로 데이터를 전송할 경우 사용되는 제2 트래픽 분배 가중치를 결정하는 제6 단계; 및 상기 서버가 가상 인터페이스를 통해 상기 제1 트래픽 분배 가중치에 따라 각 회선별로 데이터를 분배하여 클라이언트로 전송하고, 상기 클라이언트가 가상 인터페이스를 통해 상기 제2 트래픽 분배 가중치에 따라 각 회선별로 데이터를 분배하여 서버로 전송하는 제7 단계를 포함하는 데이터 전송 방법을 제공할 수 있다.
여기서, 상기 제4 단계에 있어서, 상기 전송되는 대역폭 테스트 결과는 클라이언트에서 측정한 서버로부터의 각 회선별 다운로드 전송속도인 것으로 구성될 수 있다.
여기서, 상기 제5 단계는, 수식 W[i]=B[i] * M/S(여기서, W[i]는 i번째 회선의 트래픽 분배 가중치이고, B[i]는 대역폭 테스트 결과에 의한 i번째 회선의 업로드 전송 속도이며, M은 K*N/D(K는 가중치 계수, N은 서버와 클라이언트간의 회선의 갯수, D는 서버와 클라이언트의 회선별 업로드 전송 속도 중 최대값을 최소값으로 나눈 값), S는 서버와 클라이언트간의 회선별 업로드 전송 속도의 총합임)에 의하여 각 회선별로 제1 트래픽 분배 가중치 W[i]를 구하고, 상기 각각의 W[i]의 값들을 자연수 비율로 변환함으로써 각 회선별로 제1 트래픽 분배 가중치를 각각 결정하도록 구성될 수 있다.
여기서, 상기 각각의 W[i]의 값들을 자연수 비율로 변환함으로써 각 회선별로 제1 트래픽 분배 가중치를 각각 결정하는 것은, 각각의 W[i]의 값들을 반올림함으로써 자연수 비율로 변환하도록 구성될 수 있다.
여기서, 상기 제6 단계는, 수식 W[i]=B[i] * M/S(여기서, W[i]는 i번째 회선의 트래픽 분배 가중치이고, B[i]는 대역폭 테스트 결과에 의한 i번째 회선의 업로드 전송 속도이며, M은 K*N/D(K는 가중치 계수, N은 서버와 클라이언트간의 회선의 갯수, D는 서버와 클라이언트의 회선별 업로드 전송 속도 중 최대값을 최소값으로 나눈 값), S는 서버와 클라이언트간의 회선별 업로드 전송 속도의 총합임)에 의하여 각 회선별로 제2 트래픽 분배 가중치 W[i]를 구하고, 상기 각각의 W[i]의 값들을 자연수 비율로 변환함으로써 각 회선별로 제2 트래픽 분배 가중치를 각각 결정하도록 구성될 수 있다.
여기서, 상기 각각의 W[i]의 값들을 자연수 비율로 변환함으로써 각 회선별로 제2 트래픽 분배 가중치를 각각 결정하는 것은, 각각의 W[i]의 값들을 반올림함으로써 자연수 비율로 변환하도록 구성될 수 있다.
여기서, 상기 제7 단계는, 상기 서버 및 클라이언트가 각각 가상 인터페이스 를 통해 데이터를 적어도 하나 이상의 데이터 패킷으로 분할하고 상기 제1 및 제2 트래픽 분배 가중치에 따라 각 회선별로 상기 분할된 데이터 패킷을 분배하여 전송하도록 할 수 있다.
여기서, 상기 제7 단계에 있어서, 각 회선별로 패킷이 수신된 마지막 시간과 현재의 시간을 비교하여 일정 시간 이상이 차이 나면 해당 회선을 차단하는 단계를 포함하도록 할 수 있다.
여기서, 상기 제7 단계 이후, 상기 서버 및 클라이언트는 각각 수신한 적어도 하나 이상의 데이터 패킷을 재정렬하는 제8 단계를 더 포함하도록 구성될 수 있다.
여기서, 상기 데이터 패킷은 압축되어 전송되도록 구성될 수 있다.
여기서, 상기 제8 단계는, 수신된 데이터 패킷에 포함되어 있는 순서 정보를 파악하는 제8-1 단계; 상기 수신된 데이터 패킷의 순서 정보와 예상 순서 정보를 비교하는 제8-2 단계; 상기 제8-2 단계의 비교 결과, 상기 순서 정보가 예상 순서 정보와 같은 경우 상기 수신된 데이터 패킷을 저장하고 예상 순서 정보를 1만큼 증가시키고, 상기 순서 정보가 예상 순서 정보보다 작은 경우 수신된 데이터 패킷을 저장하고, 상기 순서 정보가 예상 순서 정보보다 큰 경우 수신된 데이터 패킷을 패킷 큐에 저장하는 제8-3 단계; 및 일정 주기마다 패킷 큐에 포함되어 있는 데이터 패킷의 순서 정보 중에서 예상 순서 정보와 동일한 데이터 패킷을 저장하고 예상 순서 정보를 1만큼 증가시키는 제8-4 단계를 더 포함하도록 할 수 있다.
본 발명의 다른 측면에 따르면, 적어도 하나 이상의 회선에 대한 가상 인터 페이스를 통해 각 회선별로 트래픽을 분배하여 데이터를 전송하기 위한 서버 및 클라이언트로 구성된 시스템에 있어서, 상기 서버 및 클라이언트는 각각, 각 회선별 전송 속도를 측정하기 위한 대역폭 테스트를 수행하는 대역폭 테스트 수행부; 상기 측정된 각 회선별 대역폭 테스트 결과를 이용하여 각 회선별 트래픽 분배 가중치를 결정하는 트래픽 분배 가중치 결정부; 및 상기 결정된 트래픽 분배 가중치 결과에 상응하여 각 회선별로 데이터를 분배하여 전송하는 데이터 송수신부를 포함하는 데이터 전송 시스템을 제공할 수 있다.
여기서, 상기 서버 및 클라이언트는 각각, 가상 인터페이스를 통해 데이터를 적어도 하나 이상의 데이터 패킷으로 분할하여 각 회선별로 전송하는 경우, 상기 트래픽 분배 가중치에 따라 상기 분할된 데이터 패킷을 각 회선별로 분배하는 데이터 패킷 분배부를 더 포함하도록 구성될 수 있다.
여기서, 상기 서버 및 클라이언트는 각각, 가상 인터페이스를 통해 데이터를 적어도 하나 이상의 데이터 패킷으로 분할하여 각 회선별로 전송하는 경우, 상기 각 회선별로 패킷이 수신된 마지막 시간과 현재의 시간을 비교하여 일정 시간 이상이 차이 나면 해당 회선을 차단하는 데이터 전송 에러 검출부를 더 포함하도록 구성될 수 있다.
여기서, 상기 서버 및 클라이언트는 각각, 가상 인터페이스를 통해 데이터를 적어도 하나 이상의 데이터 패킷으로 분할하여 각 회선별로 전송하고 난 이후에, 상기 서버 및 클라이언트에서 각각 수신한 적어도 하나 이상의 데이터 패킷을 재정렬하는 데이터 패킷 재정렬부를 더 포함할 수 있다.
본 발명은 상기와 같은 문제점을 해결하고자 안출된 것으로서, 서버 및 클라이언트 사이의 각 회선별로 데이터를 전송함에 있어서, 실시간으로 회선별 대역폭 및 패킷의 특징에 따른 트래픽 분배 가중치를 결정하고 이를 이용하여 데이터 패킷을 분배하여 전송함으로써, 보다 큰 대역폭을 확보함으로써 데이터 전송시의 효율 및 전송 속도를 극대화시킬 수 있는 방법 및 시스템을 제공할 수 있다.
또한, 본 발명은 서버와 클라이언트 사이의 각 회선별 트래픽 분배 가중치 값을 보다 효율적이고 자동적으로 결정할 수 있는 방법 및 시스템을 제공할 수 있다.
또한, 본 발명은 서버 및 클라이언트에서 데이터 패킷을 수신하는 경우, 수신된 데이터 패킷을 원래의 순서에 맞게 재정렬함으로써 데이터의 전송의 안정성과 신뢰도를 높이고, 가상 인터페이스에 참여된 물리 인터페이스의 통신 상태를 주기적으로 감시함으로써 장애 극복을 용이하게 수행할 수 있는 방법 및 시스템을 제공할 수 있다.
이하, 첨부 도면을 참조하여 본 발명에 의한 실시예들을 상세하게 설명한다.
도 1은 본 발명의 일실시예에 의한 가상 인터페이스를 통해 데이터를 전송하 기 위한 시스템의 전체 구성도이다.
도 1을 참조하면, 본 실시예에 의한 시스템은, 서버(10) 및 클라이언트(20)를 포함하고 있으며, 상기 서버(10) 및 클라이언트(20)는 각각 서버(10) 측의 물리 인터페이스를 포함하는 가상 인터페이스(11) 및 클라이언트(20) 측의 물리 인터페이스를 포함하는 가상 인터페이스(21)를 통하여 서로 연결되어 있다.
본 실시예에 의한 서버(10)는 클라이언트(20)와의 사이에서 각각의 가상 인터페이스(11, 21)를 통하여 데이터를 송수신한다. 즉, 서버(10)가 클라이언트(20)와 데이터 패킷을 송수신하는 경우, 클라이언트(20)가 서버(10)와 연결된 각 인터넷 회선별마다 대역폭 테스트를 수행하고 그 결과를 서버(10)로 전송함으로써, 서버(10)는 상기 수행된 대역폭 테스트 결과를 이용한 트래픽 분배 가중치를 결정한다. 그에 따라 서버(10)가 상기 결정된 트래픽 분배 가중치에 상응하여 데이터 패킷을 분배하여 클라이언트(20)로 전송함으로써 데이터 전송시의 효율 및 속도를 높일 수 있다.
클라이언트(20) 역시 서버(10)와 가상 인터페이스(11, 21)를 통해 연결되어 데이터를 송수신한다. 클라이언트(20)에서 서버(10)로 데이터의 전송이 이루어질 경우, 상기 서버와 마찬가지의 과정을 거쳐서 데이터 전송이 이루어진다. 다만, 서버(10)와 클라이언트(20) 사이의 각 회선별 대역폭 테스트를 수행하는 경우, 클라이언트(20)가 서버로 대역폭 테스트 요청 신호를 전송하고, 서버는 클라이언트(20)의 요청 신호가 있는 경우, 대역폭 테스트 승인 신호를 클라이언트(20)로 전송한다는 점에서 역할의 차이가 있다.
서버(10)와 클라이언트(20) 사이의 각 회선별 대역폭 테스트를 수행하는 이유는, 서버(10)에서 클라이언트(20)로의 데이터 전송 및 클라이언트(20)에서 서버(10)로의 데이터 전송시 필요한 트래픽 분배 가중치 값을 결정하기 위한 것이다. 상기 트래픽 분배 가중치 값을 결정하기 위해서는 서버(10) 측의 업로드 전송 속도 및 클라이언트(20) 측의 업로드 전송 속도가 각각 필요하다. 다운로드 및 업로드 전송 속도의 측정은 각 회선의 인터페이스별 총 송신 바이트(bytes) 값과 총 수신 바이트 값을 이용하여 구하게 되는바, 클라이언트(20)에서 서버(10)로 연결된 각 회선별 업로드 전송 속도를 구하기 위해서는, 클라이언트(20) 측에서 서버(10)로의 업로드 시작시간과 종료시간을 기억한 뒤, 각 회선별 인터페이스의 송신 바이트 변화량을 구한 후, 이를 이용해 업로드 전송 속도를 구하게 된다.
여기서, 클라이언트(20)에서 측정한 클라이언트(20)와 서버(10) 사이의 각 회선별 다운로드 전송 속도 결과는 결국 서버(10) 측의 업로드 전송 속도 값이 되는바, 서버(10)는 클라이언트(20)에서 전송된 다운로드 전송 속도 값을 이용해 트래픽 분배 가중치 값을 결정하게 된다. 서버(10)는 동시에 여러 개의 클라이언트(20)와 대역폭 측정을 진행할 수 있기 때문에 서버(10) 측의 회선별 송신 바이트의 변화량 만으로는 정확한 업로드 측정값을 구할 수 없기 때문에 클라이언트(20)에서 측정된 다운로드 전송 속도 값을 전송받아 서버(10)의 업로드 전송 속도 값을 구하게 되는 것이다. 이러한 서버(10) 및 클라이언트(20)의 상세 구성은 도 2를 참조하여 자세히 설명한다.
가상 인터페이스(11, 21)는 서버(10) 측 가상 인터페이스(11)와 클라이언 트(20) 측 가상 인터페이스(21)로 구성되어 있으며, 서버(10) 및 클라이언트(20) 측 각각의 가상 인터페이스(11, 21)는 인터넷 회선들을 통하여 서로 연결되어 있다.
가상 인터페이스(11, 21)란 적어도 하나 이상의 물리인터페이스(인터넷 회선)를 포함하는 물리적으로는 존재하지 않는 가상의 인터페이스를 의미한다. 가상 인터페이스(11, 21)는 물리 인터페이스를 한 군데로 모아줌으로써, 사용자가 모든 것을 컨트롤할 수 있게 해주는 기능 및 데이터의 전송시 트래픽 분배를 효율적으로 이루질 수 있도록 하는 기능을 한다. 가상 인터페이스(11, 21)는 물리적인 미디어와 데이터 패킷을 송수신하는 것이 아니라, 사용자 공간의 프로그램과 데이터 패킷을 송수신한다는 점을 특징으로 한다. 본 발명에서의 가상 인터페이스(11, 21)는 예컨대 탭 디바이스(TAP DEVICE)를 사용할 수 있는데, 탭 디바이스는 가상 인터페이스(11, 21)의 한 종류로서, 물리적인 인터페이스와 유저 어플리케이션 간에 데이터 패킷의 송수신이 가능하게 해주어 연결된 상대방과 통신이 이루어지도록 하는 기능을 한다. 이와 같은 기능을 하는 가상 인터페이스로는 TUN, PPP 등이 있으나, 탭 디바이스는 이더넷(Ethernet) 인터페이스 형태이므로 ARP(Address Resolution Protocol) 쿼리가 가능하다는 장점이 존재한다.
도 2는 서버(10) 및 클라이언트(20) 장치의 상세 구성의 일실시예를 나타낸 도면이다.
도 2를 참조하면, 서버(10) 및 클라이언트(20)는 대역폭 테스트 수행부(22), 트래픽 분배 가중치 결정부(23), 데이터 패킷 분배부(24), 데이터 패킷 재정렬부(25), 데이터 전송 에러 검출부(26), 데이터 송수신부(27)를 포함하고 있으며, 각 부는 서로 정보를 주고 받을 수 있도록 연결되어 있다.
대역폭 테스트 수행부(22)는 클라이언트(20)와 서버(10) 사이에 연결된 각 회선별 전송 속도를 측정하기 위한 수단이다. 즉, 본 발명에서는 각 회선별로 대역폭 테스트를 수행하며, 그 결과를 이용하여 트래픽 분배 가중치 값을 정하게 되고, 상기 정하여진 트래픽 분배 가중치 값에 상응하여 데이터 패킷을 분배하여 전송하는 것을 주요 특징으로 하고 있다. 여기서, 각 회선별 대역폭 테스트는 트래픽 분배 가중치 값을 구하기 위해 필요한 값인 클라이언트(20) 및 서버(10) 각각의 업로드 전송 속도를 구하기 위해 수행되는 것이다.
대역폭 테스트는 클라이언트(20)가 서버(10)로 대역폭 테스트 요청을 하여 이루어지는바, 상기 도 1의 경우에서 설명했듯이, 대역폭 테스트는 업로드/다운로드 시작시간과 종료시간을 기억한 뒤, 각 회선별 인터페이스의 송신/수신 bytes 변화량을 구한 후, 이를 이용해 업로드/다운로드 전송 속도를 구하게 된다. 서버(10)는 동시에 여러 개의 클라이언트(20)와 대역폭 측정을 진행할 수 있기 때문에 서버(10) 측의 회선별 송신 bytes의 변화량 만으로는 정확한 업로드 측정값을 구할 수 없다. 따라서, 클라이언트(20)에서 측정된 다운로드 전송 속도 값을 서버(10)로 전송하여 서버(10)의 업로드 전송 속도 값을 구하게 된다.
대역폭 테스트 수행부(22)의 대역폭 테스트 결과, 서버(10) 및 클라이언트(20)는 각각 업로드 전송 속도 결과를 알 수 있게 되고, 상기 결과는 후술하는 트래픽 분배 가중치 결정부(23)에서 제1 및 제2 트래픽 분배 가중치 값을 결정하는데 사용된다.
트래픽 분배 가중치 결정부(23)는 상기 대역폭 테스트 수행부(22)에서 결정한 각 회선별 대역폭 테스트 결과를 이용하여 각 회선별로의 데이터 전송시, 데이터를 분배하는 기준이 되는 트래픽 분배 가중치를 결정하는 수단이다. 트래픽 분배 가중치는 서버(10)에서 클라이언트(20)로 데이터를 전송하는 경우 쓰이는 제1 트래픽 분배 가중치와 클라이언트(20)에서 서버(10)로 데이터를 전송하는 경우 쓰이는 제2 트래픽 분배 가중치 값으로 구성된다. 트래픽 분배 가중치는 도 4의 식에 의하여 결정되는바, 트래픽 분배 가중치를 결정하는 자세한 과정에 대해서는 도 3 및 도 4에서 상세하게 설명한다.
데이터 패킷 분배부(24)는 상기 트래픽 분배 가중치 결정부(23)에서 결정된 제1 및 제2 트래픽 분배 가중치 값을 이용하여 서버(10)와 클라이언트(20) 사이에서 데이터 전송이 이루어지는 경우, 각 회선별로 데이터 패킷을 분배하는 역할을 하는 수단이다. 데이터 패킷이 분배되어 전송되는 자세한 과정에 대해서는 도 5에서 후술하기로 한다.
데이터 패킷 재정렬부(25)는 서버(10) 또는 클라이언트(20)로부터 전송된 데이터 패킷을 클라이언트(20) 또는 서버(10)가 수신하여 이를 원래의 패킷 순서에 맞게 재정렬하는 역할을 하는 수단이다. 트래픽 분배 가중치 결과를 이용하여 데이터 패킷을 각 회선별로 분배하여 전송하더라도, 대역폭과는 별도로 각 회선별 데이터 패킷의 도달 시간은 차이가 있을 수 있기 때문에 데이터를 정상적으로 이용할 수 있기 위해서는 수신한 데이터 패킷을 원래 순서대로 재정렬할 필요성이 존재한다. 수신된 데이터 패킷을 원래 순서대로 재정렬하는 자세한 과정에 대해서는 도 6에서 후술하기로 한다.
데이터 전송 에러 검출부(26)는 서버(10)와 클라이언트(20) 사이에 연결된 각 회선별로 데이터를 전송함에 있어서, 장애가 발생한 회선을 검출하여 검출된 회선을 차단하는 역할을 하는 수단이다. 본 발명에서는 서버(10)와 클라이언트(20) 사이에 연결된 각 회선별 대역폭 측정 후, 이를 이용해 트래픽 분배 가중치를 정하게 되고, 정하여진 트래픽 분배 가중치를 이용하여 각 회선별로 데이터 패킷을 분배하여 전송하는 것을 주요 특징으로 하고 있다. 그러나, 트래픽 분배 가중치가 정하여진 이후, 각 회선별로 전송이 이루어지는 도중에 회선의 장애가 생겨서 패킷 전송이 이루어지지 않는 회선이 발생할 수 있다.
장애가 발생한 회선이 존재하는 경우, 이러한 회선에 대한 에러 검출 및 장애 극복이 이루어지지 않는다면, 통신이 되지 않는 회선을 통하여 패킷이 계속 전송되고, 수신하는 서버(10) 또는 클라이언트(20)에서는 장애가 발생한 회선을 통하여 전송된 패킷을 수신받지 못하므로 데이터의 완전한 전송이 이루어지지 않는다는 문제점이 발생한다. 데이터 전송 에러 검출부(26)는 상기와 같은 문제점을 극복하기 위해, 각 회선별로 일정 시간 이상 패킷이 수신되지 않는 경우에는 해당 회선을 차단하여, 해당 회선으로 더 이상 데이터 패킷이 전송되지 않도록 하는 역할을 한다. 데이터 전송 에러 검출부(26)에서 이루어지는 에러 검출의 자세한 과정에 대해서는 도 6에서 후술하기로 한다.
데이터 송수신부(27)는 서버 및 클라이언트 사이에서 데이터의 전송이 이루어지는 경우, 데이터의 송수신이 이루어지도록 하는 역할을 하는 수단이다. 데이터 송수신부(27)는 데이터 패킷 분배부(24)로부터 각 회선별 패킷 분배에 관한 정보를 수신하여, 그에 상응하여 데이터 패킷을 각 회선별로 분배하여 전송한다. 데이터 송수신부(27)가 서버(10) 및 클라이언트(20)로부터 데이터 패킷을 수신하는 경우에, 데이터 패킷의 재정렬이 필요하다고 판단된 경우에는, 수신한 데이터 패킷들을 데이터 패킷 재정렬부(25)로 전송하여 순서가 바뀐 데이터 패킷의 재정렬 과정을 진행시킨다. 또한, 데이터 전송 에러 검출부(26)에서는 각 회선별 에러 검출 과정에 의하여 장애가 발생한 회선이 검출된 경우, 그 장애 발생 회선에 관한 정보를 데이터 송수신부(27)로 전송하게 되고, 데이터 송수신부(27)는 장애가 발생한 회선으로 데이터 패킷을 전송하지 않음으로써 장애 극복을 수행한다. 또한, 데이터 송수신부(27)는 각 회선별로 데이터 패킷을 전송하는 경우 패킷 압축을 하여 전송함으로써 각 회선별로 더 큰 대역폭을 확보하도록 할 수 있다. 데이터 송수신부(27)에서 상기 압축된 패킷을 수신하는 경우에는 패킷 압축을 해제한 후, 데이터 패킷 재정렬부(25)로 패킷을 전송한다.
도 3은 서버(10) 및 클라이언트(20) 사이에서 데이터 전송이 이루어지는 과정의 일실시예를 나타낸 흐름도이다.
도 3을 참조하면, 서버(10) 및 클라이언트(20) 사이에서 데이터 전송이 이루어지기 전에, 클라이언트(20)가 서버(10)로 대역폭 테스트 요청 신호를 전송한 다(S200). 클라이언트(20)로부터 대역폭 테스트 요청 신호를 수신한 서버(10)는 대역폭 테스트 승인 신호를 클라이언트(20)로 전송한다(S210). 서버(10)로부터 대역폭 테스트 승인 신호를 수신한 클라이언트(20)에서는 서버(10)와 가상 인터페이스를 통해 연결된 각 회선별로 대역폭 테스트를 수행한다(S220).
대역폭 테스트를 수행한 클라이언트(20)는 대역폭 테스트 결과를 서버로 전송하여 정보를 공유한다(S230). 클라이언트(20)에서 이루어지는 대역폭 테스트는 서버(10)와 연결된 각 회선별 업로드 전송 속도 및 다운로드 전송 속도의 측정을 통해 이루어질 수 있다.
후술하는 제1 트래픽 분배 가중치를 구하기 위해서는 클라이언트(20)에서의 서버(10)로의 업로드 전송 속도가 필요하고, 제2 트래픽 분배 가중치를 구하기 위해서는 서버(10)에서 클라이언트(20)로의 업로드 전송 속도가 필요하다. 클라이언트(20)의 대역폭 테스트 수행(S220)에서 얻어진, 업로드 전송 속도는 제1 트래픽 분배 가중치를 구하는데 쓰이며, 클라이언트(20)에서 구해진 서버(10)와의 다운로드 전송 속도는 결국 서버(10)에서 클라이언트(20)로의 업로드 전송 속도에 해당하므로, 서버(10)는 클라이언트(20)에서 전송받은 다운로드 전송 속도를 이용하여 제2 트래픽 분배 가중치를 구하게 된다.
여기서, 서버(10)가 클라이언트(20)로의 업로드 전송 속도를 직접 측정하지 않고, 클라이언트(20)로부터 전송받은 결과를 이용하는 이유는 상술한 바와 같이, 서버(10)는 동시에 여러 개의 클라이언트(20)와 대역폭 측정을 진행할 수 있기 때문에 서버(10) 측의 회선별 송신 bytes의 변화량 만으로는 정확한 업로드 측정값을 구할 수 없기 때문이다. 따라서, 클라이언트(20)에서 측정된 다운로드 전송 속도 값을 서버(10)로 전송하여 서버(10)의 업로드 전송 속도 값을 구하게 되는 것이다.
상기 설명한 바와 같이, 클라이언트(20)가 대역폭 테스트 결과를 서버로 전송하게 되면, 서버는 대역폭 테스트 결과중 클라이언트(20)에서 서버(10)로의 다운로드 전송 속도 결과를 이용하여 서버(10)에서 클라이언트(20)로 데이터를 전송하는 경우 쓰이는 제1 트래픽 분배 가중치를 결정한다(S240).
클라이언트(20) 역시 클라이언트(20)에서 측정된 업로드 전송 속도 결과를 이용하여 클라이언트(20)에서 서버(10)로 데이터를 전송하는 경우 쓰이는 제2 트래픽 분배 가중치를 결정한다(S250). 상기 제1 및 제2 트래픽 분배 가중치는 서버(10) 및 클라이언트(20) 내부의 트래픽 분배 가중치 결정부(23)에서의 계산 과정에 의하여 정하여진다. 제1 및 제2 트래픽 분배 가중치는 결국, 각 회선별 업로드 전송 속도와 가장 유사한 자연수 값의 비를 구함으로써, 데이터 전송의 효율을 높이는데 의미가 있다. 실제 업로드 전송 속도는 122bps, 156bps 처럼 정확한 자연수 비로 측정되지가 않기 때문에 본 발명에서처럼 특정한 식에 의해 각 회선별 업로드 전송 속도의 비를 자연수의 비로 변환하여 줄 필요성이 존재한다.
제1 및 제2 트래픽 분배 가중치를 결정하는 과정을 도 4의 경우를 참고하여 설명해보면, 트래픽 분배 가중치 값은 예컨대 수식 W[i]=B[i] * M/S(여기서, W[i]는 i번째 회선의 트래픽 분배 가중치이고, B[i]는 대역폭 테스트 결과에 의한 i번째 회선의 업로드 전송 속도이며, M은 K*N/D(K는 가중치 계수, N은 서버와 클라이언트간의 회선의 갯수, D는 서버와 클라이언트의 회선별 업로드 전송 속도 중 최대 값을 최소값으로 나눈 값), S는 서버와 클라이언트간의 회선별 업로드 전송 속도의 총합임)에 의하여 각 회선별로 제1 및 제2 트래픽 분배 가중치 W[i]를 구하고, 상기 각각의 W[i]의 값들을 자연수 비율로 변환함으로써 각 회선별로 제1 및 제2 트래픽 분배 가중치를 각각 결정할 수 있다. 여기서, K는 가중치 계수로서, 다양한 테스트 결과, S 가 3Mbps 를 초과하는 경우에는 25의 값을 가지며, S 가 3Mbps 이하인 경우에는 10의 값을 가질 때, 실제 전송 속도의 비와 가장 유사한 자연수 비율이 나타날 수 있다.
트래픽 분배 가중치 값을 구하는 한 실시예로, 2개의 회선이 존재하며, 각 회선별 업로드 전송 속도가 308(kbps)과 605(kbps)인 경우인 경우를 생각해 본다.
N = 2, B[0] = 308, B[1] = 605, S = 913
D = 605 / 308 = 1.964286
M = K*N/D(S가 3Mbps 보다 작으므로 K=10)
= 10 * 2 / 1.964286 = 10.181817
W[0] = B[0] * M / S = 308 * 10.181817 / 913 = 3.434823 = 3
W[1] = B[1] * M / S = 605 * 10.181817 / 913 = 6.746987 = 7
여기서, 데이터 패킷의 분배는 자연수의 비로 분배가 되는 것이므로, 트래픽 분배 가중치 값 역시 자연수의 비로 표현이 되어야 한다. 자연수가 아닌 값인 W[i]값을 자연수로 만드는 방법에는 여러 가지 방법이 사용될 수 있으나, 본 실시예에서는 반올림을 이용하여 자연수로 만들었다. 상기의 계산 결과, 3:7의 트래픽 분배 가중치 값이 산출되었다. 3:7의 트래픽 분배 가중치 값이 나왔으므로, 데이 터 패킷은 각 회선별로 3:7의 비로 나뉘어 전송되게 될 것이다. 데이터 패킷의 분배 및 전송 과정에 대해서는 아래에서 후술하기로 한다.
트래픽 분배 가중치를 값을 구하는 다른 실시예로서, 3개의 회선이 존재하면며, 각 회선별 업로드 전송 속도가 2300(kbps), 3100(kbps), 4900(kbps)인 경우를 생각해 본다.
N = 3, B[0] = 2300, B[1] = 3100, B[2] = 4900, S = 10300
D = 4900 / 2300 = 2.130434
M = K*N/D(S가 3Mbps 보다 크모르 K=25)
= 25 * 3 / 2.130434 = 35.204094
W[0] = B[0] * M / S = 2300 * 35.204094 / 10300 = 7.861108 = 8
W[1] = B[1] * M / S = 3100 * 35.204094 / 10300 = 10.595406 = 11
W[2] = B[1] * M / S = 4900 * 35.204094 / 10300 = 16.747578 = 17
상기의 트래픽 분배 가중치 계산 결과, 각 회선별 분배 가중치 비는 8:11:17이 된다. 실제 업로드 전송 속도의 비인 2300:3100:4900 는 약 1:1.348:2.130 이 되는바, 8:11:17 은 약 1:1.375:2.125이므로, 실제 전송 속도의 비와 본 발명에 의한 트래픽 분배 가중치 결과의 경우 큰 차이가 없다는 것을 확인할 수 있다.
트래픽 분배 가중치를 결정하는 또 다른 실시예로서, 3개의 회선이 존재하고, 자연수 비로 만들기 전의 트래픽 분배 가중치 값이 0.25, 1.2, 1.8 이 나온 경우를 생각해 본다. 여기서, 상술한 바와 같이, 각 트래픽 분배 가중치 값을 반올림하여 자연수 비를 구하게 되면, 0, 1, 2 가 된다. 가중치 값은 자연수가 되어야 하기 때문에 상기와 같이 반올림을 하게 되면 0이라는 가중치 값이 구하여지는 문제가 발생한다. 따라서, 상기와 같은 경우에는, 1보다 작은 가중치(0.25)를 1로 만들어주기 위해 곱해진 값, 즉 4.0을 1.2와 1.8에도 곱해준다. 그러면, 가중치 비는 1:4.8:7.2 가 되는바, 이를 반올림하여 1:5:7의 트래픽 분배 가중치 값을 얻을 수 있다.
서버(10) 및 클라이언트(20)에서 제1 및 제2 트래픽 분배 가중치가 결정되면(S240 및 S250), 서버(10) 및 클라이언트(20)는 각각 물리 인터페이스들을 포함하는 가상 인터페이스(11, 21)를 생성하게 된다(S260). 도 1에서 설명한 바와 같이, 가상 인터페이스(11, 21)란 적어도 하나 이상의 물리인터페이스(인터넷 회선)를 포함하는 물리적으로는 존재하지 않는 가상의 인터페이스를 의미하며, 가상 인터페이스(11, 21)는 물리 인터페이스를 한 군데로 모아줌으로써, 사용자가 모든 것을 컨트롤 할 수 있게 해주는 기능 및 데이터의 전송시 트래픽 분배를 효율적으로 이루질 수 있도록 하는 기능을 한다.
서버(10) 및 클라이언트(20)에서는 제1 및 제2 트래픽 가중치가 결정되면 가상 인터페이스를 생성한 뒤(S240, S250 및 S260), 각 회선별로 데이터 패킷을 분배하여 전송한다(S270). 서버(10)에서 클라이언트(20)로 데이터를 전송하는 경우에는 제1 트래픽 분배 가중치 값에 상응하여 데이터 패킷을 각 회선별로 분배하여 전송하고, 클라이언트(20)에서 서버(10)로 데이터를 전송하는 경우에는 제2 트래픽 분배 가중치 값에 상응하여 데이터 패킷을 각 회선별로 분배하여 전송하게 된다.
데이터 패킷을 분배하여 전송하는 알고리즘으로는 순환 순서 방식(Round Robin,RR), Weighted Round Robin(WRR), 브로드 캐스트(Broadcast) 방식 등이 존재한다. 순환 순서 방식(RR)은 트래픽 분배 가중치에 대한 고려없이 각 회선별로 데이터 패킷을 순차적으로 분배하는 것을 의미하며, WRR 은 본 발명과 같이, 트래픽 분배 가중치를 고려하여 순차적으로 분배하는 것을 의미한다. 브로드 캐스트 방식은 동일한 패킷을 가상 인터페이스에 참여한 모든 물리 인터페이스로 보내는 것을 의미하는 바, TCP ACK, UDP 패킷, ARP 요청/응답 패킷 등은 대역폭 보다는 전송 속도에 더 중점을 둬야 하므로 브로드 캐스트 방법을 사용하여 송신을 하게 된다. 본 발명에 의하면, 상기 TCP ACK, UDP 패킷, ARP 요청/응답 패킷 등을 제외한 일반 데이터 패킷 등은 트래픽 분배 가중치 값을 이용한 분배 방법에 의하여 전송된다.
서버(10)에서 데이터를 제1 트래픽 분배 가중치 값에 상응하여 데이터 패킷을 분배하여 클라이언트(20)로 전송하는 일실시예에 대해서 도 5를 참조하여 설명해 본다. 서버(10)에서 전송하려는 데이터는 패킷의 형태로 분할되어 가상 인터페이스(11)를 통하여 클라이언트(20)로 전송되게 된다. 이때, 데이터 패킷은 각 회선별로 제1 트래픽 분배 가중치에 상응하는 비율로 분배되어 클라이언트(20)로 전송된다.
데이터 패킷이 각 회선별로 분배되어 전송되는 과정을 살펴보면, 우선 각 회선별로 회선의 번호를 정의하고, 자연수 값을 가지는 제1 트래픽 분배 가중치 값을 입력한다. 상기 정의된 회선 번호 순서대로 데이터 패킷을 각 회선으로 차례로 분배하게 되는데, 여기서, 해당 회선에 데이터 패킷이 분배된 경우에는 해당 회선에 입력된 가중치 값이 1 씩 감소 되며, 가중치 값이 0 이 된 회선에는 데이터 패킷이 분배되지 않는다. 또한 마지막 번호의 회선에 데이터 패킷이 분배된 후에는 첫 번호의 회선으로 다시 돌아가서 상기 설명한 바와 마찬가지로 데이터 패킷이 분배된다. 그리고, 각 회선에 입력된 트래픽 분배 가중치 값이 모두 0 이 된 경우에는 각 회선별로 최초의 트래픽 분배 가중치 값을 다시 입력하여 상기 설명한 패킷 분배 과정을 다시 수행한다.
상기 설명한 바와 같은 과정을 거쳐 서버(10)에서 클라이언트(20)로 데이터 패킷이 제1 트래픽 분배 가중치 값에 상응하여 분배되어 각 회선별로 전송되는바, 도 5에 나타난 도면을 참조하여 설명하여 보면, 서버(10)에서 전송하는 데이터는 10개의 패킷으로 구성되어 있고, 전송되는 순서에 따라 1번부터 10번까지의 패킷 번호를 가진다. 서버(10)와 클라이언트(20)는 가상 인터페이스(11 및 22)를 통해 4개의 회선으로 연결되어 있으며, 위로부터 차례대로 회선 번호 1, 2, 3, 4 를 가지며, 각 회선 번호별로 W[1]=1, W[2]=2, W[3]=3, W[4]=4 의 트래픽 분배 가중치 값을 입력받게 된다.
1번 패킷부터 차례대로 각 회선에 분배되는바, 1번 패킷은 1번 회선에 분배되며, 1번 회선은 하나의 패킷이 들어왔으므로, 가중치 입력 값을 1에서 0으로 변경시켜 저장시킨다. 2번 패킷은 2번 회선에 분배되며, 2번 회선 역시 가중치 입력 값을 2에서 1로 변경시킨다. 3, 4번 패킷 역시 같은 방법에 의하여 3, 4번 회선에 분배되고, 3, 4번 회선의 가중치 값은 각각 2, 3으로 변경되어 저장되어진다. 각 회선에 하나의 패킷들이 분배되면, 다시 처음으로 돌아와 앞선 과정을 반복하게 된다. 그러나 1번 회선은 앞에서 1번 패킷이 들어옴으로써, 가중치 값이 0이 되었으 므로, 5번 패킷은 1번 회선이 아닌, 2번 회선에 분배되게 된다. 마찬가지로 6, 7번 패킷은 각각 3, 4번 회선에 분배된다. 상기 7번 패킷까지의 분배가 완료되면, 2, 3, 4회선은 각각 0, 1, 2의 가중치 값으로 변경되어 입력되게 된다. 마지막으로, 남아있는 8, 9, 10 패킷은 상기 설명한 과정에 의하여 각각 3, 4, 4 회선에 분배되게 된다. 이와 같은 과정에 의하여 10번 패킷까지의 분배가 모두 끝나게 되고, 10개의 데이터 패킷은 1번부터 4번까지의 각 회선별로 각 회선별 트래픽 분배 가중치 값에 상응하여 분배됨으로써 클라이언트(20)로 전송된다. 여기서, 서버 및 클라이언트 사이에서 데이터 패킷의 전송이 있는 경우, 데이터 패킷은 압축되어 전송되어 질 수 있다. 데이터 패킷을 압축하고, 압축된 패킷을 트래픽 분배 가중치를 이용하여 전송하는 경우에는 각 회선이 가지고 있는 실제 대역폭보다 훨씬 더 큰 대역폭을 확보할 수 있다.
다시 도 3을 참조하면, 서버(10) 및 클라이언트(20) 사이에서의 데이터 전송 과정(S270)이 끝난 후, 서버(10) 또는 클라이언트(20)에서 전송한 데이터를 수신한 클라이언트(20) 또는 서버(10)는 수신된 데이터 패킷이 재정렬의 필요성이 있는 데이터 패킷인지 여부 및 압축되어 있는 데이터인지 여부를 검사한다. 수신된 데이터 패킷이 순서 재정렬할 필요가 없는 경우에는 패킷의 순서 비교과정 없이 바로 처리를 하게 되고, 수신된 데이터가 압축된 경우에는 일반 데이터 패킷 처리를 함에 앞서 압축된 부분을 먼저 해제하는 과정을 거친다.
수신된 데이터 패킷이 순서 재정렬이 필요한 경우라고 판단된 경우에는, 패킷 재정렬의 과정을 거쳐 데이터 패킷이 원래의 순서대로 재정렬 되는바(S280), 서 버(10) 또는 클라이언트(20)에서 수신된 데이터 패킷이 재정렬되는 과정을 살펴본다.
우선, 수신된 데이터 패킷이 재정렬되는 일반적인 과정을 살펴보면, 수신된 데이터 패킷에 포함되어 있는 순서 정보를 파악하고, 상기 수신된 데이터 패킷의 순서 정보와 예상 순서 정보를 비교한다. 상기 비교 결과, 상기 순서 정보가 예상 순서 정보와 같은 경우 상기 수신된 데이터 패킷을 저장하고 예상 순서 정보를 1만큼 증가시키고, 상기 순서 정보가 예상 순서 정보보다 작은 경우 수신된 데이터 패킷을 저장하고, 상기 순서 정보가 예상 순서 정보보다 큰 경우 수신된 데이터 패킷을 패킷 큐(데이터 패킷의 순서 재정렬을 위해 패킷을 임시로 보관하는 큐)에 저장하게 된다. 그리고, 일정 주기마다 패킷 큐에 포함되어 있는 데이터 패킷의 순서 정보 중에서 예상 순서 정보와 동일한 데이터 패킷을 저장하고 예상 순서 정보를 1만큼 증가시키는 단계를 거쳐 데이터 패킷이 재정렬되게 된다.
여기서, 기다리는 순서의 패킷이 영원히 오지 않을 경우(Packet Loss)나 너무 늦게 오는 경우 패킷 큐의 사이즈가 과도하게 커지고 실제 패킷 전송이 전혀 이루어지지도 않는 문제가 발생할 수 있기 때문에 일정 시간(예를 들어 50ms)의 큐 타임아웃을 정할 수 있다. 상기 설명한, 예상 순서 정보와 수신된 패킷의 순서 정보를 비교하는 과정이 끝나면, 큐 스캔을 한다.
큐 스캔이란 패킷 큐에 저장되어 있는 데이터 패킷의 순서 정보와 예상 순서 정보를 비교하여, 예상 순서 정보와 같은 패킷이 있으면 바로 데이터를 구성하는데 쓰고, 예상 순서 정보를 1 증가시키는 것이다. 또한, 큐 타임아웃이 지나면 예상 순서 정보를 패킷 큐의 헤드에 있는 패킷의 순서로 업데이트 하는 역할도 한다. 상기의 큐 스캔은 위 과정뿐 아니라, 패킷 송수신이 없는 상황에서도 일정 시간 간격으로 이루어질 수 있는 바, 이는 패킷 송수신이 거의 없는 상황에서 패킷 큐에 들어간 상태가 지속되어 패킷이 아주 늦게 전송되는 걸 막기 위함이다.
도 6을 참조하여, 본 발명의 일실시예에 의한 데이터 패킷의 재정렬 과정에 대해 설명한다. 도 6을 참조하면, 서버(10)에서 1번 6번까지의 순서 정보를 가진 데이터 패킷을 가상 인터페이스(11)를 통하여 클라이언트(20)로 전송한다. 서버(10) 및 클라이언트(20) 사이의 회선은 1번부터 4번까지 4개의 회선이 존재하나, 도 6에 나타난 바와 같이 4번 회선은 에러가 검출되어 회선이 차단되어 있으므로, 4번 회선으로는 패킷이 전송되지 않는다. 데이터 전송 에러 검출시 회선을 차단하는 과정에 대해서는 후술하기로 한다.
결국, 1, 2, 3번 회선을 통하여 1번부터 6번까지의 데이터 패킷은 상술한 바와 같이 각 회선의 가중치 값에 상응하여 데이터 패킷이 분배되어 전송되게 된다. 데이터 패킷이 각 회선별로 분배되어 전송되는 경우, 각 회선의 주변 상황에 의하여, 패킷의 도달 순서가 바뀔 수 있는바, 이러한 경우에는 수신된 데이터 패킷의 재정렬 과정을 통해 수신된 데이터 패킷을 원래의 순서대로 재정렬하는 과정을 수행한다.
도 6을 참조하면, 각 회선을 통하여 데이터 패킷이 전송되는 동안, 패킷의 순서가 바뀌어 도착하는 것을 확인할 수 있는바, 도착하는 순서를 임의로 1, 4, 5, 2, 3, 6 이라고 과정하고, 데이터 패킷 재정렬 과정을 설명하기로 한다.
우선, 예상 순서 정보는 데이터 패킷의 번호인 1, 2, 3, 4, 5, 6 이 될 것이다. 처음으로 도착하는 패킷 번호는 1번 패킷인바, 예상 순서 정보의 번호와 일치하므로, 1번 패킷은 바로 저장되어 데이터를 구성하는데 쓰이게 되고, 예상 순서 정보는 2로 변경되게 된다. 다음으로, 4번 패킷이 도착하는바, 4번 패킷은 예상 순서 정보보다 큰 패킷 번호를 가지므로, 패킷 큐에 저장된다. 다음 도착 패킷인 5번 패킷 역시 예상 순서 정보인 2보다 큰 패킷 번호를 가지므로 패킷 큐에 저장된다. 다음 도착 패킷은 예상 순서 정보와 같은 2번 패킷이므로 바로 저장되어 데이터를 구성하는데 쓰이게 되며, 예상 순서 정보는 3으로 변경된다. 다음 도착 패킷은 3번 패킷이므로, 역시 바로 저장되며, 예상 순서 정보는 4로 변경된다.
앞서 설명한 바와 같이, 예상 순서 정보와 패킷 번호와의 비교 과정이 끝난 후에는 큐 스캔을 통하여 패킷 큐에 저장된 패킷의 번호를 예상 순서 정보와 비교하는 과정을 거치게 되는바, 패킷 큐에는 현재 예상 순서 정보에 해당하는 4번 패킷이 저장되어 있으므로, 4번 패킷이 데이터를 구성하는데 쓰이게 된다. 패킷 큐에서 4번 패킷이 사용되고 나면, 패킷 큐의 정보는 업데이트 되며, 예상 순서 정보는 5로 변경되게 된다. 업데이트 된 패킷 큐에는 예상 순서 정보에 해당하는 5번 패킷 역시 존재하므로, 5번 패킷은 큐 스캔에 의하여 역시 데이터를 구성하는데 쓰이게 된다. 5번 패킷이 쓰이고 나면, 예상 순서 정보는 6으로 변경되게 되며, 다음으로 수신되는 패킷 번호는 6번 패킷이므로 6번 패킷은 바로 저장되어 데이터를 구성하는데 쓰인다.
상기의 재정렬 과정에 의하여 서버(10)에서 전송된 1번부터 6번까지의 데이 터 패킷은 클라이언트(20)로 수신되는 경우 원래의 데이터 패킷 정렬 순서를 가지고 수신된다.
다시 도 3을 참조하면, 서버(10) 및 클라이언트(20)에서는 각각 수신된 데이터 패킷의 재정렬 과정을 수행함으로써, 데이터 수신 과정을 끝내게 된다(S280).
도 4는 도 3에서 설명한 바와 같이, 서버(10) 및 클라이언트(20)의 트래픽 분배 가중치 결정부(23)에서 이루어지는 트래픽 분배 가중치 결정의 일실시예를 나타낸 도면이다.
전술한 바와 같이, 트래픽 분배 가중치 결정부(23)에서는 도 4에 나타난 식을 이용하여 제1 및 제2 트래픽 분배 가중치를 결정하게 된다. 도 4에 나타난 식에 의하여 구하여진 트래픽 분배 가중치 결과는 반올림, 올림, 내림 등의 방법을 사용하여 자연수의 형태로 표현되도록 변경될 수 있다.
도 5는 도 3에서 설명한 바와 같이, 서버(10) 및 클라이언트(20) 사이에 데이터 전송이 이루어지는 경우, 데이터 패킷이 분배되는 과정의 일실시예를 나타낸 도면이다.
전술한 바와 같이, 각 회선은 트래픽 분배 가중치 값에 상응하는 값을 입력받아, 데이터 패킷들이 트래픽 분배 가중치 값에 상응하도록 각 회선별로 분배되어 전송된다. 상기의 데이터 패킷들은 서버(10) 및 클라이언트(20) 내부의 데이터 패킷 분배부(24)의 처리에 의하여 패킷이 분배될 회선이 결정된다.
도 6은 서버(10) 및 클라이언트(20) 사이에 데이터 전송이 이루어지는 경우, 데이터 전송 에러 검출시 회선 차단 과정 및 수신된 데이터 패킷의 재정렬 과정에 대하여 나타낸 도면이다.
전술한 바와 같이, 서버(10) 및 클라이언트(20)에서 수신된 데이터 패킷들은 데이터 패킷 재정렬 과정에 의하여 원래의 순서대로 재정렬되어 원래의 데이터를 구성한다.
서버(10) 및 클라이언트(20)는 각 회선별 트래픽 분배를 통한 데이터 전송시 장애가 발생한 회선을 검출하여 해당 회선을 차단하는 역할을 하는 데이터 전송 에러 검출부(26)를 포함하고 있다. 도 2에서 설명한 바와 같이, 데이터 전송 에러 검출부(26)는 각 회선별로 일정 시간 이상 패킷이 수신되지 않는 경우에는 해당 회선을 차단하여, 해당 회선으로 더 이상 데이터 패킷이 전송되지 않도록 하는 역할을 한다. 클라이언트(20) 측에서의 데이터 전송 에러 검출부(26)에서 이루어지는 각 회선별 에러 검출 과정에 대해 살펴보면, 클라이언트(20)는 각 회선별로 에러 검출을 위한 검사 패킷이든 실제 데이터 패킷이든 패킷이 송신된 마지막 시간을 기억해 둔다. 클라이언트(20)에서는 각 회선별로 패킷이 송신된 마지막 시간과 현재 시간을 비교하여 일정 시간 이상이 차이 나면 에러 검출을 위한 검사 패킷을 서버(10)로 전송한다. 상기 에러 검출을 위한 검사 패킷에 대한 응답이든 실제 데이터 패킷이든 각 회선별로 패킷이 수신된 마지막 시간을 기억해 둔다. 클라이언트(20)에서는 각 회선별로 패킷이 수신된 마지막 시간과 현재 시간을 비교하여 일 정 시간 이상이 차이 나면 해당 회선이 통신 불가능한 상태라고 판단하고 해당 회선을 차단한다.
서버(10) 측에서의 데이터 전송 에러 검출부(26)에서는 클라이언트(20)로부터 검사 패킷을 수신하게 되면, 그에 대한 응답 패킷을 클라이언트(20)로 전송한다. 서버(10) 역시 각 회선별로 패킷이 수신된 마지막 시간을 기억해 둔 뒤, 패킷이 수신된 마지막 시간과 현재 시간이 일정 시간 이상 차이 나면 해당 회선이 통신 불가능한 상태라고 판단하고 해당 회선을 차단한다. 도 6의 4번 회선은 데이터 전송 에러 검출부(26)에 의하여 회선이 차단된 상태를 나타낸 것이다. 4번 회선이 차단되었기 때문에 데이터 패킷은 4번 회선을 통해 전송되지 않고, 2, 3, 4번 회선을 이용하여 전송되게 된다. 상기의 에러 검출에 의한 회선 차단을 통하여, 데이터 전송의 효율을 높일 수 있는 것은 물론 장애 회선을 통해 데이터 패킷이 유실되는 것을 방지할 수 있는 이점도 얻을 수 있다.
이상에서, 본 발명의 바람직한 실시예를 참조하여 본 발명의 구성을 설명하였으나, 본 발명이 상기 실시예에 한정되는 것이 아님은 물론이며, 첨부한 청구범위 및 도면에 의해 파악되는 본 발명의 범위 내에서 여러 가지의 변형, 수정 및 개선이 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 충분히 이해할 수 있을 것이다.
도 1은 본 발명의 일실시예에 의한 가상 인터페이스를 통해 데이터를 전송하기 위한 시스템의 전체 구성도,
도 2는 서버(10) 및 클라이언트(20) 장치의 상세 구성의 일실시예를 나타낸 도면,
도 3은 서버(10) 및 클라이언트(20) 사이에서 데이터 전송이 이루어지는 과정의 일실시예를 나타낸 흐름도,
도 4는 도 3에서 설명한 바와 같이, 서버(10) 및 클라이언트(20)의 트래픽 분배 가중치 결정부(23)에서 이루어지는 트래픽 분배 가중치 결정의 일실시예를 나타낸 도면,
도 5는 도 3에서 설명한 바와 같이, 서버(10) 및 클라이언트(20) 사이에 데이터 전송이 이루어지는 경우, 데이터 패킷이 분배되는 과정의 일실시예를 나타낸 도면,
도 6은 서버(10) 및 클라이언트(20) 사이에 데이터 전송이 이루어지는 경우, 데이터 전송 에러 검출시 회선 차단 과정 및 수신된 데이터 패킷의 재정렬 과정에 대하여 나타낸 도면이다.

Claims (15)

  1. 적어도 하나 이상의 회선에 대한 가상 인터페이스를 통해 연결된 서버와 클라이언트 사이에서 각 회선별로 트래픽을 분배하여 데이터를 전송하는 방법에 있어서,
    클라이언트가 서버로 대역폭 테스트 요청 신호를 전송하는 제1 단계;
    서버가 상기 대역폭 테스트 요청 신호에 대해 상기 클라이언트로 테스트 요청 승인 신호를 전송하는 제2 단계;
    클라이언트가 상기 서버와 연결된 각 회선별로 다운로드 전송속도 및 업로드 전송속도를 측정하는 대역폭 테스트를 수행하는 제3 단계;
    클라이언트에서 상기 측정된 대역폭 테스트 결과를 서버로 전송하는 제4 단계;
    서버가 상기 대역폭 테스트 결과를 이용하여 서버에서 클라이언트로 데이터를 전송할 경우 사용되는 제1 트래픽 분배 가중치를 결정하는 제5 단계;
    클라이언트가 상기 대역폭 테스트 결과를 이용하여 클라이언트에서 서버로 데이터를 전송할 경우 사용되는 제2 트래픽 분배 가중치를 결정하는 제6 단계; 및
    상기 서버가 가상 인터페이스를 통해 상기 제1 트래픽 분배 가중치에 따라 각 회선별로 데이터를 분배하여 클라이언트로 전송하고, 상기 클라이언트가 가상 인터페이스를 통해 상기 제2 트래픽 분배 가중치에 따라 각 회선별로 데이터를 분배하여 서버로 전송하는 제7 단계
    를 포함하며,
    상기 제5 단계는, 수식 W[i]=B[i] * M/S(여기서, W[i]는 i번째 회선의 트래픽 분배 가중치이고, B[i]는 대역폭 테스트 결과에 의한 i번째 회선의 업로드 전송 속도이며, M은 K*N/D(K는 가중치 계수, N은 서버와 클라이언트간의 회선의 갯수, D는 서버와 클라이언트의 회선별 업로드 전송 속도 중 최대값을 최소값으로 나눈 값), S는 서버와 클라이언트간의 회선별 업로드 전송 속도의 총합임)에 의하여 각 회선별로 제1 트래픽 분배 가중치 W[i]를 구하고, 상기 각각의 W[i]의 값들을 자연수 비율로 변환함으로써 각 회선별로 제1 트래픽 분배 가중치를 각각 결정하는 것을 특징으로 하는 데이터 전송 방법.
  2. 제1항에 있어서,
    상기 제4 단계에 있어서, 상기 전송되는 대역폭 테스트 결과는 클라이언트에서 측정한 서버로부터의 각 회선별 다운로드 전송속도인 것을 특징으로 하는 데이터 전송 방법.
  3. 삭제
  4. 제1항에 있어서,
    상기 각각의 W[i]의 값들을 자연수 비율로 변환함으로써 각 회선별로 제1 트래픽 분배 가중치를 각각 결정하는 것은, 각각의 W[i]의 값들을 반올림함으로써 자연수 비율로 변환하는 것을 특징으로 하는 데이터 전송 방법.
  5. 제1항에 있어서,
    상기 제6 단계는,
    수식 W[i]=B[i] * M/S(여기서, W[i]는 i번째 회선의 트래픽 분배 가중치이고, B[i]는 대역폭 테스트 결과에 의한 i번째 회선의 업로드 전송 속도이며, M은 K*N/D(K는 가중치 계수, N은 서버와 클라이언트간의 회선의 갯수, D는 서버와 클라이언트의 회선별 업로드 전송 속도 중 최대값을 최소값으로 나눈 값), S는 서버와 클라이언트간의 회선별 업로드 전송 속도의 총합임)에 의하여 각 회선별로 제2 트래픽 분배 가중치 W[i]를 구하고, 상기 각각의 W[i]의 값들을 자연수 비율로 변환함으로써 각 회선별로 제2 트래픽 분배 가중치를 각각 결정하는 것을 특징으로 하는 데이터 전송 방법.
  6. 제5항에 있어서,
    상기 각각의 W[i]의 값들을 자연수 비율로 변환함으로써 각 회선별로 제2 트래픽 분배 가중치를 각각 결정하는 것은, 각각의 W[i]의 값들을 반올림함으로써 자연수 비율로 변환하는 것을 특징으로 하는 데이터 전송 방법.
  7. 적어도 하나 이상의 회선에 대한 가상 인터페이스를 통해 연결된 서버와 클라이언트 사이에서 각 회선별로 트래픽을 분배하여 데이터를 전송하는 방법에 있어서,
    클라이언트가 서버로 대역폭 테스트 요청 신호를 전송하는 제1 단계;
    서버가 상기 대역폭 테스트 요청 신호에 대해 상기 클라이언트로 테스트 요청 승인 신호를 전송하는 제2 단계;
    클라이언트가 상기 서버와 연결된 각 회선별로 다운로드 전송속도 및 업로드 전송속도를 측정하는 대역폭 테스트를 수행하는 제3 단계;
    클라이언트에서 상기 측정된 대역폭 테스트 결과를 서버로 전송하는 제4 단계;
    서버가 상기 대역폭 테스트 결과를 이용하여 서버에서 클라이언트로 데이터를 전송할 경우 사용되는 제1 트래픽 분배 가중치를 결정하는 제5 단계;
    클라이언트가 상기 대역폭 테스트 결과를 이용하여 클라이언트에서 서버로 데이터를 전송할 경우 사용되는 제2 트래픽 분배 가중치를 결정하는 제6 단계; 및
    상기 서버가 가상 인터페이스를 통해 상기 제1 트래픽 분배 가중치에 따라 각 회선별로 데이터를 분배하여 클라이언트로 전송하고, 상기 클라이언트가 가상 인터페이스를 통해 상기 제2 트래픽 분배 가중치에 따라 각 회선별로 데이터를 분배하여 서버로 전송하는 제7 단계
    를 포함하며,
    상기 제7 단계는, 상기 서버 및 클라이언트가 각각 가상 인터페이스를 통해 데이터를 적어도 하나 이상의 데이터 패킷으로 분할하고 상기 제1 및 제2 트래픽 분배 가중치에 따라 각 회선별로 상기 분할된 데이터 패킷을 분배하여 전송하되, 각 회선별로 패킷이 수신된 마지막 시간과 현재의 시간을 비교하여 일정 시간 이상이 차이 나면 해당 회선을 차단하는 단계를 포함하는 것을 특징으로 하는 데이터 전송 방법.
  8. 삭제
  9. 제7항에 있어서,
    상기 제7 단계 이후,
    상기 서버 및 클라이언트는 각각 수신한 적어도 하나 이상의 데이터 패킷을 재정렬하는 제8 단계
    를 더 포함하는 것을 특징으로 하는 데이터 전송 방법.
  10. 제7항에 있어서,
    상기 데이터 패킷은 압축되어 전송되는 것
    을 특징으로 하는 데이터 전송 방법.
  11. 제9항에 있어서,
    상기 제8 단계는,
    수신된 데이터 패킷에 포함되어 있는 순서 정보를 파악하는 제8-1 단계;
    상기 수신된 데이터 패킷의 순서 정보와 예상 순서 정보를 비교하는 제8-2 단계;
    상기 제8-2 단계의 비교 결과, 상기 순서 정보가 예상 순서 정보와 같은 경우 상기 수신된 데이터 패킷을 저장하고 예상 순서 정보를 1만큼 증가시키고, 상기 순서 정보가 예상 순서 정보보다 작은 경우 수신된 데이터 패킷을 저장하고, 상기 순서 정보가 예상 순서 정보보다 큰 경우 수신된 데이터 패킷을 패킷 큐에 저장하는 제8-3 단계; 및
    일정 주기마다 패킷 큐에 포함되어 있는 데이터 패킷의 순서 정보 중에서 예상 순서 정보와 동일한 데이터 패킷을 저장하고 예상 순서 정보를 1만큼 증가시키는 제8-4 단계
    를 더 포함하는 것을 특징으로 하는 데이터 전송 방법.
  12. 적어도 하나 이상의 회선에 대한 가상 인터페이스를 통해 각 회선별로 트래픽을 분배하여 데이터를 전송하기 위한 서버 및 클라이언트로 구성된 시스템에 있어서,
    상기 서버 및 클라이언트는 각각,
    각 회선별 전송 속도를 측정하기 위한 대역폭 테스트를 수행하는 대역폭 테스트 수행부;
    상기 측정된 각 회선별 대역폭 테스트 결과를 이용하여 각 회선별 트래픽 분배 가중치를 결정하는 트래픽 분배 가중치 결정부;
    상기 결정된 트래픽 분배 가중치 결과에 상응하여 각 회선별로 데이터를 분배하여 전송하는 데이터 송수신부;
    가상 인터페이스를 통해 데이터를 적어도 하나 이상의 데이터 패킷으로 분할하여 각 회선별로 전송하는 경우, 상기 트래픽 분배 가중치에 따라 상기 분할된 데이터 패킷을 각 회선별로 분배하는 데이터 패킷 분배부; 및
    가상 인터페이스를 통해 데이터를 적어도 하나 이상의 데이터 패킷으로 분할하여 각 회선별로 전송하는 경우, 상기 각 회선별로 패킷이 수신된 마지막 시간과 현재의 시간을 비교하여 일정 시간 이상이 차이 나면 해당 회선을 차단하는 데이터 전송 에러 검출부
    를 포함하는 것을 특징으로 하는 데이터 전송 시스템.
  13. 삭제
  14. 삭제
  15. 제12항에 있어서,
    상기 서버 및 클라이언트는 각각,
    가상 인터페이스를 통해 데이터를 적어도 하나 이상의 데이터 패킷으로 분할하여 각 회선별로 전송하고 난 이후에, 상기 서버 및 클라이언트에서 각각 수신한 적어도 하나 이상의 데이터 패킷을 재정렬하는 데이터 패킷 재정렬부
    를 더 포함하는 것을 특징으로 하는 데이터 전송 시스템.
KR1020070097715A 2007-09-28 2007-09-28 가상 인터페이스를 통해 연결된 서버와 클라이언트사이에서 각 회선별로 트래픽을 분배하여 데이터를전송하는 방법 및 시스템 KR100908868B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020070097715A KR100908868B1 (ko) 2007-09-28 2007-09-28 가상 인터페이스를 통해 연결된 서버와 클라이언트사이에서 각 회선별로 트래픽을 분배하여 데이터를전송하는 방법 및 시스템
PCT/KR2008/004807 WO2009041762A1 (en) 2007-09-28 2008-08-19 Method and system for transmitting data using traffic distribution for each line between server and client connected by virtual interface
US12/527,414 US8060618B2 (en) 2007-09-28 2008-08-19 Method and system for transmitting data using traffic distribution for each line between server and client connected by virtual interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070097715A KR100908868B1 (ko) 2007-09-28 2007-09-28 가상 인터페이스를 통해 연결된 서버와 클라이언트사이에서 각 회선별로 트래픽을 분배하여 데이터를전송하는 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20090032454A KR20090032454A (ko) 2009-04-01
KR100908868B1 true KR100908868B1 (ko) 2009-07-21

Family

ID=40511625

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070097715A KR100908868B1 (ko) 2007-09-28 2007-09-28 가상 인터페이스를 통해 연결된 서버와 클라이언트사이에서 각 회선별로 트래픽을 분배하여 데이터를전송하는 방법 및 시스템

Country Status (3)

Country Link
US (1) US8060618B2 (ko)
KR (1) KR100908868B1 (ko)
WO (1) WO2009041762A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101402483B1 (ko) * 2012-09-25 2014-06-03 고려대학교 산학협력단 네트워크 전송 장치 및 방법

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101428980B1 (ko) * 2009-08-03 2014-08-13 에스케이플래닛 주식회사 컨텐츠 제공 방법 및 서버
US9385917B1 (en) 2011-03-31 2016-07-05 Amazon Technologies, Inc. Monitoring and detecting causes of failures of network paths
DE102011100793A1 (de) * 2011-05-06 2012-11-08 Vodafone Holding Gmbh Bestimmung der Übertragungsleistung in Datennetzen
US9104543B1 (en) * 2012-04-06 2015-08-11 Amazon Technologies, Inc. Determining locations of network failures
US8937870B1 (en) 2012-09-11 2015-01-20 Amazon Technologies, Inc. Network link monitoring and testing
CN102882734B (zh) * 2012-10-26 2015-09-23 迈普通信技术股份有限公司 一种测试虚拟以太性能的系统和方法
US9197495B1 (en) 2013-02-11 2015-11-24 Amazon Technologies, Inc. Determining locations of network failures
US9210038B1 (en) 2013-02-11 2015-12-08 Amazon Technologies, Inc. Determining locations of network failures
US9742638B1 (en) 2013-08-05 2017-08-22 Amazon Technologies, Inc. Determining impact of network failures
US9578588B2 (en) * 2014-03-27 2017-02-21 Intel IP Corporation Apparatus, method and system of tethering between a mobile device and a network
US20160080241A1 (en) * 2014-09-17 2016-03-17 Broadcom Corporation Gigabit Determination of Available Bandwidth Between Peers
JP6525251B2 (ja) * 2015-03-26 2019-06-05 Necプラットフォームズ株式会社 データ伝送システム、及びデータ伝送方法
US10742720B2 (en) * 2016-02-29 2020-08-11 Seagate Technology Llc Cloud storage accelerator
US11258690B1 (en) * 2017-11-02 2022-02-22 Speedpact Inc. System and method for testing and/or monitoring broadband internet connectivity
CN113067741B (zh) * 2020-01-02 2022-11-29 中国移动通信有限公司研究院 一种信息处理方法、装置、终端及存储介质
JP7248600B2 (ja) * 2020-01-21 2023-03-29 株式会社日立製作所 計算機システム及びデータ転送の制御方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020161884A1 (en) * 1998-10-30 2002-10-31 Science Applications International Corporation Agile network protocol for secure communications with assured system availability

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3075251B2 (ja) * 1998-03-05 2000-08-14 日本電気株式会社 非同期転送モード交換網における仮想パス帯域分配システム
US20030081582A1 (en) * 2001-10-25 2003-05-01 Nikhil Jain Aggregating multiple wireless communication channels for high data rate transfers
KR100486713B1 (ko) * 2002-09-17 2005-05-03 삼성전자주식회사 멀티미디어 스트리밍 장치 및 방법
EP1588234B1 (de) * 2003-01-28 2007-08-01 Siemens Aktiengesellschaft Zuordnung von verteilungsgewichten zu verbindungsabschnitten in einem paketnetz mit verkehrsverteilung
KR100576713B1 (ko) * 2003-12-18 2006-05-03 한국전자통신연구원 동적 부하 분산 시스템 및 그 방법
KR100715674B1 (ko) * 2005-09-15 2007-05-09 한국전자통신연구원 부하 분산 방법 및 장치, 그리고 이를 이용한 소프트웨어스트리밍 시스템
US7751404B2 (en) * 2006-10-06 2010-07-06 Broadcom Corporation Method, system, and computer program product for high performance bonding resequencing

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020161884A1 (en) * 1998-10-30 2002-10-31 Science Applications International Corporation Agile network protocol for secure communications with assured system availability

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101402483B1 (ko) * 2012-09-25 2014-06-03 고려대학교 산학협력단 네트워크 전송 장치 및 방법

Also Published As

Publication number Publication date
WO2009041762A1 (en) 2009-04-02
KR20090032454A (ko) 2009-04-01
US20100121910A1 (en) 2010-05-13
US8060618B2 (en) 2011-11-15

Similar Documents

Publication Publication Date Title
KR100908868B1 (ko) 가상 인터페이스를 통해 연결된 서버와 클라이언트사이에서 각 회선별로 트래픽을 분배하여 데이터를전송하는 방법 및 시스템
CN111817977B (zh) 一种网络拥塞控制方法和装置
CN100583785C (zh) 用于表征基于分组的网络的端对端路径的方法和设备
WO2020022209A1 (ja) ネットワーク制御装置及びネットワーク制御方法
CN110875915B (zh) 数据传输方法及装置
US20020080726A1 (en) System and method for determining network throughput speed and streaming utilization
KR101581515B1 (ko) 송신 장치, 수신 장치, 통신 장치, 통신 시스템 및 송신 방법
JP2002199009A (ja) ズームイン/アウト方式を用いた可変速度プロービングによる利用可能帯域計測方法
KR101992750B1 (ko) 라우터 장치 및 그의 혼잡 제어 방법
JP4252596B2 (ja) パケット転送装置
CN115473855B (zh) 网络系统、数据传输方法
JP2023511889A (ja) サービスレベル構成方法および装置
US20080205287A1 (en) Apparatus and method for controlling the transfer of communication traffic to multiple links of a multi-link system
US8243607B2 (en) Packet delay characteristic measuring apparatus and method
US11303552B2 (en) Receiver, communication system, available bandwidth estimation method, and storage medium in which program is stored
JP2000312212A (ja) ネットワークリソースの効率的な使用のためのネットワーク要素の遅延割当
CN115665060A (zh) 一种用于异构网络的多路径传输调度方法及装置
CN107171887B (zh) 一种网络带宽测试方法、客户端及网络带宽测试系统
WO2014101047A1 (zh) 一种网络丢包类型识别方法、设备及系统
US7219155B2 (en) Network system, communication device, and communication routing method
JP6348377B2 (ja) コンテンツ配信ネットワークの通信装置及びプログラム
US20050013288A1 (en) System and method for dynamically load balancing traffic in a wireless network
KR100657608B1 (ko) 패킷의 도착 간격 시간을 이용한 대역폭 측정 방법 및 그장치
JP2018148494A (ja) パケット集約装置及び伝送処理プログラム
KR101071726B1 (ko) 물리 링크 정보를 고려한 링크 어그리게이션 장치 및 이를 이용한 데이터 전송 방법

Legal Events

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

Payment date: 20130424

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140415

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150616

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160607

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180619

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190715

Year of fee payment: 11