KR20160091118A - 멀티 호밍 기반의 네트워크를 통한 패킷 전송 장치 및 방법 - Google Patents

멀티 호밍 기반의 네트워크를 통한 패킷 전송 장치 및 방법 Download PDF

Info

Publication number
KR20160091118A
KR20160091118A KR1020150011378A KR20150011378A KR20160091118A KR 20160091118 A KR20160091118 A KR 20160091118A KR 1020150011378 A KR1020150011378 A KR 1020150011378A KR 20150011378 A KR20150011378 A KR 20150011378A KR 20160091118 A KR20160091118 A KR 20160091118A
Authority
KR
South Korea
Prior art keywords
packet
network
path
transmitted
packets
Prior art date
Application number
KR1020150011378A
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 KR1020150011378A priority Critical patent/KR20160091118A/ko
Priority to US14/995,301 priority patent/US20160218979A1/en
Publication of KR20160091118A publication Critical patent/KR20160091118A/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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/121Shortest path evaluation by minimising delays
    • 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
    • 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
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/14Multichannel or multilink protocols

Landscapes

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

Abstract

본 발명은 통신 경로 제어 기술에 관한 것으로, 더 자세하게는 멀티 호밍 기반의 전송 기술에서 네트워크 경로 선택 및 패킷 스케줄링 기술에 관한 것이다.
본 발명은 멀티 호밍 기반 전송 기술에 있어, 다중 네트워크 경로 별 혼잡 상태에 따라 전송할 패킷의 개수를 결정하여 패킷 손실을 감소시킴을 목적으로 한다.
일 양상에 따르면 패킷 전송 장치는 클라이언트와 인터페이스 된 다수의 네트워크 경로 별 상태 정보로부터 산출된 혼잡 정보를 기초로 패킷 전송에 사용할 네트워크 경로를 선택하고 선택된 네트워크 경로 별 전송할 패킷의 개수 및 패킷의 시퀀스 번호를 할당한다.

Description

멀티 호밍 기반의 네트워크를 통한 패킷 전송 장치 및 방법{Apparatus and Method for transmitting packets through multi homing based network}
본 발명은 통신 경로 제어 기술에 관한 것으로, 더 자세하게는 멀티 호밍 기반의 전송 기술에서 네트워크 경로 선택 및 패킷 스케줄링 기술에 관한 것이다.
최근 다중 네트워크 경로를 이용하여 데이터를 전송하는 기술 및 표준화 연구가 진행되고 있고, 다중 네트워크 경로를 통해 제공되는 서비스도 보편화되고 있다. 국내의 멀티 호밍 기반의 전송 기술로 SK텔레콤의 무선망 묶음 기술, KT의 이종네트워크 복합 전송 기술(MAPCON: Multi Access PDN CoNnectivity) 등의 서비스가 상용화되었으며, 국외의 멀티 호밍 기반의 전송 기술로 Iomega의 NIC Bonding, Xroads Networks의 Bandwidth Bonding등이 주목을 받고 있다. 또한, IETF(Internet Engineering Task Force)에서는 멀티 호밍 기반의 전송 기술 표준으로 MPTCP(Multipath TCP)를 제정하였다.
기존 멀티 호밍 기반 전송 기술은 각 네트워크 경로의 혼잡 상태를 고려하지 않고 전송할 데이터의 양을 결정한다. 따라서 혼잡한 네트워크 경로로 많은 양의 패킷을 전송하는 경우가 발생하여 다량의 패킷 손실을 발생시킨다. 또한, 기존 멀티 호밍 기반 전송 기술은 다수의 네트워크 경로로 데이터를 나눠서 전송하기 때문에 각 네트워크 경로의 지연 차이로 인해 송신단에서 전송한 패킷의 순서와 수신단에서 수신한 패킷의 순서가 달라지는(Out of order) 현상이 발생한다.
따라서, 멀티 호밍 기반의 전송 기술의 성능 향상을 위해서는 네트워크 경로들의 혼잡 상태를 고려하여 전송할 네트워크 경로를 선택하는 방법이 요구되며, 비순차적으로 패킷이 수신되는 것을 방지하기 위한 패킷 스케줄링 방법이 요구된다.
본 발명이 해결하고자 하는 하나의 과제는 멀티 호밍 기반 전송 기술에 있어, 다중 네트워크 경로 별 혼잡 상태에 따라 전송할 패킷의 개수를 결정하여 패킷 손실을 감소시키는 것이다.
본 발명이 해결하고자 하는 다른 과제는 다중 네트워크 경로 별 혼잡 상태에 따라 각 경로를 통해 전송되는 패킷의 시퀀스 번호를 결정하여 클라이언트가 비순차적으로 패킷을 수신하지 않도록 하는 것이다.
일 양상에 따르면 패킷 전송 장치는 클라이언트와 인터페이스 된 다수의 네트워크 경로 별 상태 정보로부터 산출된 혼잡 정보를 기초로 패킷 전송에 사용할 네트워크 경로를 선택하고 선택된 네트워크 경로 별 전송할 패킷의 개수 및 패킷의 시퀀스 번호를 할당한다.
다른 양상에 따르면, 혼잡 정보는 다수의 네트워크 경로 별 패킷 지연 시간, 패킷 수신 간격, 처리량, 패킷 손실률 중 적어도 어느 하나를 포함하는 상태 정보로부터 산출된다.
또 다른 양상에 따르면, 패킷 전송 장치는 클라이언트로부터 수신한 피드백 정보에 포함된 상태 정보를 갱신한다.
또 다른 양상에 따르면, 패킷 전송 장치는 최대 지연 임계값 및 패킷 전송 지연 시간을 비교하여 혼잡 정보를 산출한다.
또 다른 양상에 따르면, 패킷 전송 장치는 패킷의 현재 지연 시간이 최대 지연 임계값보다 작은 네트워크 경로를 패킷 전송에 사용될 네트워크 경로로 판단하여 선택한다.
또 다른 양상에 따르면, 패킷 전송 장치는 패킷 전송에 사용될 네트워크 경로로 선택된 복수의 네트워크 경로를 최대 지연 임계값을 기준으로 정렬한다.
또 다른 양상에 따르면, 패킷 전송 장치는 네트워크 경로 별 패킷 지연 시간 차이 및 패킷 수신 간격을 기초로 네트워크 경로 별로 전송할 패킷의 개수 및 시퀀스 번호를 할당한다.
또 다른 양상에 따르면, 패킷 전송 장치는 전송할 패킷의 개수 및 패킷의 시퀀스 번호 할당이 완료된 네트워크 경로를 통해 클라이언트로 패킷을 전송한다.
본 발명의 일 실시예에 따르면, 다중 네트워크 경로 별 혼잡한 정도에 따라 전송할 패킷의 개수를 결정하여 패킷 손실 및 처리량 저하를 방지할 수 있다.
그리고, 수신단에서 비순차적으로 수신된 패킷을 패킷 손실로 오인하여 처리량을 감소시키는 문제를 해결하여 전체 처리량을 향상시킬 수 있다.
도 1은 일 실시예에 따른 멀티 호밍 기반의 패킷 전송 장치, 네트워크 및 클라이언트를 개략적으로 도시한다.
도 2는 일 실시예에 따른 클라이언트가 다수의 네트워크 영역 내에 위치된 모습을 도시한다.
도 3은 일 실시예에 따른 패킷 전송 장치의 구성도이다.
도 4는 네트워크 경로 별 패킷 전송 지연 시간 및 패킷 수신 간격을 설명하기 위한 참조도이다.
도 5는 일 실시예에 따른 클라이언트의 구성도이다.
도 6은 일 실시예에 따른, 패킷 전송 방법을 패킷 전송 장치와 클라이언트를 통해 설명하는 흐름도이다.
도 7은 도 6에 도시된 패킷 전송 방법의 구체적인 흐름도이다.
도 8은 클라이언트가 다중 네트워크 경로를 통해 패킷을 수신하고 피드백 정보를 송신하는 흐름도이다.
전술한, 그리고 추가적인 양상들은 첨부된 도면을 참조하여 설명하는 실시예들을 통해 구체화된다. 각 실시예들의 구성 요소들은 다른 언급이나 상호간에 모순이 없는 한 실시예 내에서 다양한 조합이 가능한 것으로 이해된다. 나아가 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다.
도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. 그리고, 어떤 부분이 어떤 구성 요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있는 것을 의미한다. 명세서에서 기술한 부란, "하드웨어 또는 소프트웨어의 시스템을 변경이나 플러그인 가능하도록 구성한 블록"을 의미하는 것으로서, 즉 하드웨어나 소프트웨어에 있어 특정 기능을 수행하는 하나의 단위 또는 블록을 의미한다.
도 1은 일 실시예에 따른 멀티 호밍 기반의 패킷 전송 장치(10), 네트워크(30) 및 클라이언트(20)를 개략적으로 도시한다. 멀티 호밍(Multi homing)은 인터넷의 노드, 사이트, 네트워크(30) 등이 다중 IP 주소를 사용하여 동종 또는 이종 링크와 다중으로 접속을 유지하는 기술이다. 멀티 호밍 기반의 전송 기술 중 무선 망 묶음 기술은 무선 접속 기술 및 주파수 대역이 서로 다른 두 개의 무선망을 하나의 망처럼 사용하여 하나의 망을 이용할 때보다 고속으로 데이터 서비스 이용이 가능하다. 이종 네트워크(30) 복합 전송 기술은 Wi Fi 일체형 LTE 펨토셀에 이종망 간 데이터를 동시에 전송할 수 있는 ABC(Always Best Connected) 기술을 접목하여 엘티이(LTE, Long Term Evolution)와 와이파이(Wi Fi, Wireless fidelity)망을 하나로 결합하여 동시에 전송함으로써 최대 130Mbps의 전송 속도를 제공한다. 엔아이씨 본딩(NIC Bonding)은 하나의 IP를 이용해서 두 개 이상의 네트워크(30) 인터페이스 카드로 데이터를 전송함으로써 대역폭을 확장하고, 네트워크(30) 인터페이스 장애극복(Failover) 기능을 제공하여 활성화 중인 네트워크(30) 인터페이스의 고장 발생 시 대기중인 네트워크(30) 인터페이스로 전환하여 신뢰성을 보장한다. 적응적 부하분산(Adaptive Load Balancing) 기능을 통해 패킷을 효율적으로 분산시킨다. 주파수 본딩(Bandwidth Bonding)은 웹 기반의 다운로드 속도를 높이기 위해 다수의 ISP 연결과 캐시 엔진을 결합하여 동일 세션에서 한 번에 여러 연결을 이용해 가용대역폭을 증가시킴으로써 다운로드 속도 향상과 네트워크(30) 혼잡을 감소시키는 기능을 제공한다. MPTCP는 전송 기술의 표준 프로토콜로써 전송 성능을 향상시키기 위해 동시에 다수의 물리적 네트워크(30) 경로에서 다중 TCP(Transmission Control Protocol) 연결을 이용하여 데이터를 전송한다. 이를 통해 데이터 처리량과 신뢰성을 향상시킬 수 있다.
도 1에 도시된 것처럼 패킷 전송 장치(10)는 클라이언트(20)와 다수개의 네트워크(30)로 인터페이스되어 있다. 후술하는 방법에 의해 패킷 전송 장치(10)는 패킷을 전송할 네트워크(30) 경로를 선택하고 클라이언트(20)가 순차적으로 패킷을 수신할 수 있도록 전송할 패킷을 스케줄링 한다. 도면에 명시적으로 도시하지 않았지만, 패킷 전송 장치(10)는 백본(Backbone) 네트워크(30)를 통해 다른 서버와 통신 할 수 있다.
일 예에 있어서, 클라이언트(20)는 패킷 전송 장치(10)로부터 패킷을 수신한다. 패킷은 정보 기술에서 패킷 방식의 컴퓨터 네트워크(30)가 전달하는 데이터의 형식화된 블록이다. 패킷은 헤더, 페이로드, 트레일러로 구성된다. 헤더는 패킷의 주소를 포함하고, 페이로드는 내용을 포함한다. 패킷을 수신한 클라이언트(20)는 네트워크(30) 경로 별 피드백 정보를 패킷 전송 장치(10)로 송신한다. 클라이언트(20)는 인터넷 프로토콜(IP, Internet Protocol)기반의 데이터 통신이 가능한 통신 단말을 의미한다. 예를 들어, 클라이언트(20)는 휴대폰, 스마트 폰, 랩톱 컴퓨터, 데스크탑 컴퓨터, 전자 북 리더 등을 들 수 있으나, 이에 한정되는 것은 아니고 패킷 전송 장치(10)로부터 데이터 패킷을 수신할 수 있는 임의의 다른 장치 등의 무선 통신 장치일 수 있다.
일 예에 있어서, 네트워크(30)(Network)는 단말 사용자들끼리 통신을 가능케 할 목적으로 연결해 놓은 단말, 링크, 노드의 집합이다. 즉, 몇 개의 독립적인 장치가 적절한 영역내에서 적당히 빠른 속도의 물리적 통신 채널을 통하여 서로가 직접 통신할 수 있도록 지원해 주는 데이터 통신 체계이다. 패킷 전송 장치(10)가 송신하는 패킷은 네트워크(30)를 통해 클라이언트(20)로 전달된다.
도 2는 일 실시예에 따른 클라이언트(20)가 다수의 네트워크(30) 영역 내에 위치된 모습을 도시한다. 도 1에 도시된 클라이언트(20)와 패킷 전송 장치(10)를 연결하는 다수의 네트워크(30)는 무선 개인 근거리 통신망(WPAN, wireless personal area network), 무선 랜(WLAN, wireless local area network), 제너럴 패킷 무선 서비스(GPRS, general packet radio service) 네트워크(30), GSM(global system for mobile network), CDMA, WCDMA, 3GE(3G evolution) 네트워크(30) 등의 IP 기반의 패킷 데이터 서비스를 지원하는 복수의 네트워크 중의 하나일 수 있다. 도 2에 도시된 바와 같이, 이종의 네트워크가 중첩된 영역에 위치한 클라이언트(350, 360, 370)는 복수의 네트워크를 이용할 수 있고, 단일의 네트워크(30) 영역에 위치한 클라이언트(380)는 단일의 네트워크를 이용할 수 있다. 패킷 전송 장치(10)가 이종의 네트워크 영역에 위치한 클라이언트(350, 360, 370)로 패킷을 전송할 때 추후 살펴볼 알고리즘을 통해 패킷 전송에 따른 패킷 손실 및 처리량 저하를 방지한다.
도 3은 일 실시예에 따른 패킷 전송 장치(10)의 구성도이다. 일 양상에 따른 멀티 호밍 기반의 네트워크(30) 경로를 활용하여 패킷을 전송하는 패킷 전송 장치(10)는 혼잡 정보 산출부(111), 경로 선택부(120), 패킷 할당부(120)를 포함한다. 일 실시예에 있어서, 혼잡 정보 산출부(111), 경로 선택부(120), 패킷 할당부(120)는 마이크로프로세서에서 실행되는 프로그램 명령어 세트들로 구현될 수 있다. 일 실시예에 있어서, 혼잡 정보 산출부(111)는 복수의 네트워크(30) 경로 별 상태 정보를 기초로 네트워크(30) 경로 별 혼잡 정보를 산출한다. 일 실시예에 있어서, 혼잡 정보 산출부(111)는 상태 정보를 통해 산출된 최대 지연 임계값과 네트워크(30) 경로를 통해 전달된 패킷의 현재 지연 시간을 비교하여 혼잡 정보를 산출한다. 혼잡 정보는 최대 지연 임계값과 현재 지연 시간의 대소를 비교한 데이터 등을 포함한다. 일 실시예에 있어서, 임의의 네트워크(30) 경로에서 최대 지연 임계값이 현재 지연 시간보다 작으면, 혼잡 정보 산출부(111)는 최대 지연 임계값이 현재 지연 시간보다 작다는 혼잡 정보를 산출한다. 일 실시예에 있어서, 최대 지연 임계값은 패킷 손실이 발생하기 이전의 패킷 지연 시간으로 패킷 손실이 발생하기 바로 이전의 패킷 지연 시간이다. 다른 실시예에 있어서, 최대 지연 임계값은 패킷 손실이 발생하기 이전의 패킷 지연 시간 중 가장 긴 패킷 지연 시간이다. 이에 한정되는 것은 아니고, 클라이언트(20)의 종류 등에 따라 최대 지연 임계값은 다양하게 설정된다.
일 실시예에 있어서, 혼잡 정보 산출부(111)는 현재 네트워크(30) 경로에 대해 혼잡 정보를 산출하고, 클라이언트(20)와 연결된 모든 네트워크(30) 경로에 대해 혼잡 정보를 산출했는지 확인한다. 만약 혼잡 정보를 산출하지 않은 네트워크(30) 경로가 남아 있다면, 모든 네트워크(30) 경로에 대해 혼잡 정보를 산출할 때까지 다음 네트워크(30) 경로를 선택하여 혼잡 정보를 산출한다.
일 실시예에 있어서, 경로 선택부(120)는 산출된 네트워크(30) 별 혼잡 정보를 기초로 패킷 전송에 사용될 네트워크(30) 경로를 선택한다. 산출된 혼잡 정보를 기초로 패킷의 현재 지연 시간이 최대 지연 임계값보다 작은 네트워크(30) 경로를 패킷 전송에 사용될 네트워크(30) 경로로 선택한다. 경로 선택부(120)는 선택한 네트워크(30) 경로를 전송 가능한 네트워크(30) 경로 목록에 추가한다. 선택된 네트워크(30) 경로는 존재하지 않을 수 있고 하나 이상일 수 있다.
일 실시예에 있어서, 패킷 할당부(120)는 선택된 네트워크(30) 경로 별 전송할 패킷의 개수 및 패킷의 시퀀스 번호를 할당한다. 패킷 할당부(20)에 대한 구체적인 설명은 후술한다.
일 양상에 있어서, 패킷 전송 장치(10)는 상태 정보 갱신부(110)를 포함한다. 상태 정보 갱신부(110)는 복수의 네트워크(30) 경로를 통해 패킷을 수신한 클라이언트(20)가 송신한 피드백 정보에 포함된 상태 정보를 갱신한다. 즉 피드백 정보는 네트워크(30) 경로 별 패킷 지연 시간, 패킷 수신 간격, 처리량, 패킷 손실률 중 적어도 어느 하나를 포함한다. 네트워크(30) 경로의 상태는 시간의 경과에 따라 변할 수 있다. 네트워크(30) 경로 별 전송할 패킷의 개수 및 패킷의 시퀀스 번호는 네트워크(30) 경로의 상태 정보를 통해 산출된 혼잡 정보에 따라 좌우된다. 상태 정보를 갱신하면 현재 네트워크(30) 경로 상태에 부합하는 패킷의 개수 및 패킷 시퀀스 번호를 각 네트워크(30) 경로에 할당할 수 있다. 패킷을 수신할 때 마다 클라이언트(20)는 피드백 정보를 패킷 전송 장치(10)로 전송하며, 패킷 전송 장치(10)는 피드백 정보를 수신할 때마다 네트워크(30) 경로의 상태 정보를 통해 혼잡 정보를 산출한다. 네트워크(30) 경로 별 트래픽 상황을 포함한 혼잡 정보가 변동할 경우 최적의 무선 통신 품질을 보장할 수 있도록 네트워크(30) 경로 별 전송할 패킷의 개수 및 패킷의 시퀀스 번호를 변경할 수 있다. 클라이언트(20)로부터 지속적으로 피드백 정보를 수신하고 상태 정보 갱신부(110)가 네트워크(30) 경로 별 상태 정보를 갱신함에 따라 통신 환경의 변화에 대한 신속하고 유연한 대처가 가능하다. 상태 정보는 이에 한정되는 것은 아니고, 지연 분산, 에러율, 멀티캐스팅/브로드캐스팅 기능, 문서 캐쉬 등 네트워크(30) 성능을 판단할 수 있는 모든 요소를 포함한다. 패킷 지연 시간, 패킷 수신 간격, 처리량, 패킷 손실률, 지연 분산 및 에러율에 대한 구체적인 설명은 후술한다. 일 실시예에 있어서, 상태 정보 갱신부(110)는 패킷 전송 장치(10)가 포함하는 마이크로프로세서에서 실행되는 프로그램 명령어 세트들로 구현된다. 그러나 여기에 한정되는 것은 아니며, 전용의 하드웨어, 예를 들면 순차 및/또는 조합 논리 회로에 의해 구현될 수도 있다.
일 양상에 있어서, 패킷 전송 장치(10)는 정렬부(121)를 포함할 수 있다. 일 실시예에 있어서, 정렬부(121)는 경로 선택부(120)가 모든 네트워크(30) 경로에 대해 패킷 전송에 사용될 네트워크(30)인지 판단한 후, 네트워크(30) 경로 별 최대 지연 임계값을 기준으로 선택된 네트워크(30) 경로를 정렬한 데이터를 생성한다. 정렬부에 대한 구체적인 설명은 후술한다.
일 양상에 있어서, 패킷 전송 장치(10)는 패킷 전송부(131)를 포함한다. 일 실시예에 있어서, 패킷 전송부(131)는 전송할 패킷의 개수 및 패킷의 시퀀스 번호 할당이 완료된 네트워크(30) 경로를 통해 패킷을 전송한다. 패킷 전송부(131)는 패킷 할당부(120)가 패킷 전송 장치(10)가 포함하는 복수의 인터페이스와 연결된 모든 네트워크(30) 경로에 대해 전송할 패킷의 개수 및 전송할 패킷의 시퀀스 번호를 할당하면 네트워크(30) 경로 별 할당된 패킷의 개수 및 시퀀스 번호에 따라 패킷을 전송한다. 일 실시예에 있어서, 패킷 전송부(131)는 패킷 전송 장치(10)가 포함하는 마이크로프로세서에서 실행되는 프로그램 명령어 세트들로 구현된다. 그러나 여기에 한정되는 것은 아니며, 전용의 하드웨어, 예를 들면 순차 및/또는 조합 논리 회로에 의해 구현될 수도 있다.
패킷 전송 장치(10)는 클라이언트(20)로 패킷을 전송하는 서버는 물리적으로 하나의 서버에서 실행되는 별개의 프로세스일 수 있다. 현재의 컴퓨팅 기술은 물리적으로 하나의 서버를 복수의 논리적인 서버로 운용할 수도 있다. 나아가 이들은 논리적으로 별개의 서버가 아니라, 하나의 논리적 서버에서 실행되는 서로 다른 프로세스로 구현될 수 있다. 더 나아가 이들은 전체가 하나의 프로그램으로 구현될 수도 있다.
일 예에 있어서, 인터페이스부는 멀티 호밍 환경에서 패킷 전송 장치(10) 측의 물리적인 네트워크(30) 인터페이스부를 나타낸다. 인터페이스부 각각은 네트워크(30)를 통해 클라이언트(20)와 연결된다.
도 4는 네트워크(30) 경로 별 패킷 전송 지연 시간 및 패킷 수신 간격을 설명하기 위한 참조도 이다. 일 실시예에 있어서, 상태 정보는 패킷 지연 시간, 패킷 수신 간격, 처리량, 패킷 손실률 중 적어도 어느 하나를 포함한다. 상태 정보에 대한 구체적인 설명은 후술한다. 도 4에 도시된 D1, D2 및 D3는 패킷 지연 시간이다. 패킷 지연 시간(Latency)은 예를 들어, 어느 하나의 네트워크(30) 경로를 통해 패킷 전송 장치(10)가 패킷을 송신할 때부터 클라이언트(20)가 패킷을 수신할 때까지 경과한 시간이다. 즉 하나의 패킷이 한 지점에서 다른 지점으로 광속으로 이동하는데 걸리는 시간이다.
도 4에 도시된
Figure pat00001
,
Figure pat00002
Figure pat00003
는 패킷 수신 간격이다. 예를 들어, 패킷 수신 간격(Interval)은 어느 하나의 네트워크(30) 경로를 통해 클라이언트(20)가 패킷을 수신하는 패킷 수신 간격이다. 다른 예를 들어, 패킷 수신 간격은 패킷 전송 장치(10)가 패킷을 송신하는 패킷 송신 간격이다.
패킷 처리량(Throughput)은 비트율(Bitrate)이라고도 부르는데, 두 종단 시스템 즉 패킷 전송 장치(10)와 클라이언트(20)가 서로 통신할 때 단위 시간당 네트워크(30)가 받아들이고 전송할 수 있는 비트수이다.
패킷 손실률(Packet loss probability)은 패킷이 망 내 전송 중에 장해 등으로 손실되는 비율이다.
상태 정보는 이에 한정되는 것은 아니고, 지연 분산, 에러율, 멀티캐스팅/브로드캐스팅 기능, 문서 캐쉬 등 네트워크(30) 성능을 판단할 수 있는 모든 요소를 포함한다. 예를 들어 지연 분산은 전송 장비에 의해서만 생긴 지연 분산인 지터(Jitter)와는 구별되는 물리적 지터이다. 모든 네트워크(30)는 각각의 물리적 지터를 가진다. 신호를 재형성하는 기능을 하는 리피터(Repeater)가 가끔씩 비정상적인 작동을 할 수도 있고 금속도체의 경우 온도의 변화에 따라 전파 지연(Propagation delay)등이 변할 수 있기 때문에 물리적 지터가 존재한다.
예를 들어, 에러율은 데이터의 변경, 손실, 중복, 비순서적인 전송 등에 의해 일어난다. 네트워크(30) 에러는 비트 에러율(Bit error rate), 패킷/셀 에러율(Packet/Cell error rate), 패킷/셀 손실율(Packet/Cell loss rate) 등으로 측정된다.
일 실시예에 있어서, 패킷 할당부(120)는 네트워크(30) 경로 간 패킷 지연 시간 차이 및 패킷 수신 간격을 기초로 네트워크(30) 경로 별 전송할 패킷의 개수 및 시퀀스 번호를 할당한다. 도4에 도시된 △Di는 i번째 네트워크(30) 경로의 지연 Di와 i+1번째 네트워크(30) 경로의 지연 D(i+1)의 차이이며, i의 시작값은 1이다. 패킷 할당부(120)는 △Di를 계산한 후 i를 1증가시키고, i가 네트워크(30) 경로 목록의 마지막 네트워크(30) 경로인지 판단한다. 만약 i가 마지막 네트워크(30) 경로가 아니면 i가 마지막 네트워크(30) 경로가 될 때까지 △Di를 계산한다. 반면에, i가 마지막 네트워크(30) 경로이면 i를 1로 변경하고 △Di를 τ(i+1)로 나눔으로써 △Di 동안 i+1번째 네트워크(30) 경로로 전송할 패킷의 개수(ni)를 계산한다.
일 실시예에 있어서, 패킷 할당부(120)는 패킷 전송 장치(10)가 포함하는 복수의 인터페이스와 연결된 모든 네트워크(30) 경로에 대해 전송할 패킷의 개수 및 전송할 패킷의 시퀀스 번호를 할당한다. 도 4에 도시된 것처럼 i+1 번째 네트워크(30) 경로로 전송할 패킷의 개수가 결정되면, 패킷 할당부(120)는 i를 1 증가시키고 i가 목록의 마지막 네트워크(30) 경로인지 판단한다. 판단 결과 i가 목록의 마지막 네트워크(30) 경로이면, 해당 네트워크(30) 경로로 전송할 패킷의 개수를 결정하고, i를 더 이상 증가시키지 않는다. 판단 결과 i가 목록의 마지막 네트워크(30) 경로가 아니라면 마지막 네트워크(30) 경로에 해당할 때까지 순차적으로 i에 1을 증가 시키고 전송할 패킷의 개수를 결정한다.
도 4를 참조하여 N개의 네트워크(30) 경로 중 세 개의 네트워크(30) 경로 각각을 통해 전송한 패킷의 개수를 산정하는 예를 설명한다. 세 개의 네트워크(30) 경로는 모두 혼잡 상태가 아닌 상태로 판별되어 전송 가능한 네트워크(30) 경로 목록에 포함되었다고 가정한다. 각 네트워크(30) 경로의 지연 시간(D1, D2, D3)의 차이인 △D1, △D2를 계산하고, 패킷 수신 간격(τ1, τ2, τ3)을 이용하여 각 네트워크(30) 경로로 전송할 패킷의 개수를 구한다. 예를 들어, D1, D2 및 D3 각각은 8, 4, 1이고, △D1, △D2 각각은 4, 3 이며 τ1, τ2 및 τ3 각각이 4, 2, 1이라고 가정한다. 먼저 가장 지연 시간이 큰 네트워크(30) 경로 1을 통해 1개의 패킷이 전송되는 동안 경로 2를 통해서는 n1=△D1/τ2 = 2개의 패킷이 전송된다. 지연 시간 차이 동안 경로 2는 수신 간격에 반비례하여 패킷을 더 전송할 수 있기에 경로 1을 통해 송신한 패킷보다 △D1/τ2만큼의 패킷을 더 전송할 수 있다.
경로 2를 통해 1개의 패킷이 전송되는 동안 경로 3으로 전송할 패킷의 개수는 n2=△D2/τ3 = 3개이다. 전송할 패킷을 개수를 산정하는 방식은 이에 한정되는 것은 아니다. 일 실시예에 있어서, △D/τ의 계산 결과가 소수점으로 나오면 최소의 정수비로 환산하여, 환산된 정수만큼 패킷의 개수로 산정한다. 예를 들어, n1=△D1/τ2= 0.5, n2=△D2/τ3=0.6이 나왔다면, 0.5와 0.6 각각을 최소의 정수비인 5와 6으로 환산한다. 다른 실시예에 있어서, △D/τ의 계산 결과가 소수점으로 나오면 올림 한다. 예를 들어, n1=△D1/τ2= 1.5, n2=△D2/τ3=2.6이 나왔다면, n1=2, n2=3으로 환산한다. 또 다른 실시예에 있어서, △D/τ의 계산 결과가 소수점으로 나오면 반올림 한다. 예를 들어, n1=△D1/τ2= 1.5, n2=△D2/τ3=2.4이 나왔다면, n1=2, n2=2로 환산한다. △D/τ의 계산 결과를 어떻게 처리할지는 앞서 서술한 실시예에 한정되는 것은 아니다. 각 네트워크(30) 경로로 전송 할 패킷의 개수가 결정되면 클라이언트(20)에서 순차적으로 수신할 수 있도록 네트워크(30) 경로 지연 시간과 패킷 수신 간격을 고려하여 시퀀스 번호를 할당한다.
도 4에 도시된 클라이언트(20)와 연결된 3개의 네트워크(30) 경로와 맞닿는 화살표 끝부분에 숫자가 기재되어 있다. 1부터 21이 기재되어 있으며, 이는 패킷이 패킷 전송 장치(10)로부터 수신한 패킷의 도달 순서를 의미한다. 예를 들어, 네트워크(30) 경로 3을 통해 가장 먼저 전송된 패킷이 클라이언트(20)에게 가장 먼저 도착하여 1이라고 기재된다. 네트워크(30) 경로 2 및 네트워크(30) 경로 1을 통해서도 네트워크(30) 경로 3을 통해 패킷을 전송한 시각과 동일한 시각에 패킷을 전송하였지만, 패킷 지연 시간이 길어 네트워크(30) 경로 2를 통해서는 4번째, 네트워크(30) 경로 1을 통해서는 11번째로 패킷이 도달되었다. 도 7에 도시된 것처럼 네트워크(30) 경로 별 패킷 지연 시간 및 패킷 수신 간격을 통해 패킷이 도달하는 순서를 알 수 있다. 도달하는 순서에 부합하는 시퀀스 번호를 네트워크(30) 경로에 할당하고, 시퀀스 번호대로 패킷을 클라이언트(20)로 전송하면 클라이언트(20)가 수신한 패킷의 순서가 달라지는(Out of order) 현상을 막을 수 있다.
일 실시예에 있어서, 정렬부(121)는 최대 지연 임계값을 기준으로 선택된 네트워크(30) 경로를 내림차순 한다. 이에 한정되는 것은 아니고, 정렬부(121)는 올림 차순 등 다양한 기준으로 네트워크(30) 경로를 정렬한 데이터를 생성한다. 앞서 살펴본 패킷 할당부(120)는 정렬부(121)가 최대 지연 임계값에 따라 내림 차순 한 네트워크(30) 경로에 따라 △Di를 τ(i+1)로 나눔으로써 △Di 동안 i+1번째 네트워크(30) 경로로 전송할 패킷의 개수(ni)를 계산한다. 도 4은 최대 지연 임계값을 기준으로 네트워크(30) 경로를 내림차순 한 것으로 네트워크(30) 경로 1의 최대 지연 임계값이 가장 크고 i가 커짐에 따라 최대 지연 임계값이 작아 짐을 확인할 수 있다. 일 실시예에 있어서, 정렬부(121)는 패킷 전송 장치(10)가 포함하는 마이크로프로세서에서 실행되는 프로그램 명령어 세트들로 구현된다. 그러나 여기에 한정되는 것은 아니며, 전용의 하드웨어, 예를 들면 순차 및/또는 조합 논리 회로에 의해 구현될 수도 있다.
도 5는 일 실시예에 따른 클라이언트(20)의 구조도이다. 도 5에 도시된 바와 같이, 클라이언트(20)는 피드백 정보 송신부(210) 및 패킷 수신부(220)를 포함한다. 일 예에 있어서, 패킷 수신부(220)는 패킷 전송 장치(10)가 송신한 패킷을 수신한다. 일 예에 있어서, 피드백 정보 송신부(210)는 패킷 수신에 따른 피드백 정보를 패킷 전송 장치(10)로 송신한다. 피드백 정보는 상태 정보를 포함한다. 즉 피드백 정보는 네트워크(30) 경로 별 패킷 지연 시간, 패킷 수신 간격, 처리량, 패킷 손실률 중 적어도 어느 하나를 포함한다. 이에 한정되는 것은 아니고, 지연 분산, 에러율, 멀티캐스팅/브로드캐스팅 기능, 문서 캐쉬 등 네트워크(30) 성능을 판단할 수 있는 모든 요소를 포함한다. 패킷 지연 시간, 패킷 수신 간격, 처리량, 패킷 손실률, 지연 분산 및 에러율에 대한 구체적인 설명은 앞에서 서술하였다.
도시되지 않았지만, 클라이언트(20)는 복수의 네트워크(30)와의 접속을 지원하는 복수의 인터페이스부를 포함할 수 있다. 인터페이스부는 데이터 링크 계층 및 물리 계층의 기능을 구현할 수 있도록 구성된다. 예를 들어, 인터페이스부는 무선랜 네트워크(30)와의 접속을 지원하는 물리 계층 기술 및 데이터 링크 계층의 기술을 수용하도록 구성된다. 다른 예를 들어, 인터페이스부는 코드 분할 다중 접속 방식의 이동 통신 네트워크(30)와의 접속을 지원하는 물리 계층 기술 및 데이터 링크 계층의 기술을 수용하도록 구성된다. 또 다른 예를 들어, 인터페이스부는 3GE 네트워크(30)와의 접속을 지원하는 물리 계층 기술 및 데이터 링크 계층의 기술을 수용할 뿐만 아니라, 세션 설정 기술 또한 수용할 수 있도록 구성된다. 복수의 인터페이스에는 각각 IP 주소가 할당되어 운용된다.
도 6은 일 실시예에 따른, 패킷 전송 방법을 패킷 전송 장치와 클라이언트를 통해 설명하는 흐름도이다. 일 양상에 따른 패킷 전송 방법은 혼잡 정보 산출 단계, 경로 선택 단계, 패킷 할당 단계를 포함한다. 일 실시예에 따른, 패킷 전송 방법의 흐름을 도시한 도 6을 살펴보면, 다중 네트워크(30) 경로 선택 장치의 혼잡 정보 산출 단계에서는 복수의 네트워크(30) 경로 별 상태 정보를 기초로 네트워크(30) 경로 별 혼잡 정보를 산출한다(단계 S1).
일 실시예에 있어서, 혼잡 정보 산출 단계는 복수의 네트워크(30) 경로 별 상태 정보를 기초로 네트워크(30) 경로 별 혼잡 정보를 산출한다. 일 실시예에 있어서, 상태 정보는 패킷 지연 시간, 패킷 수신 간격, 처리량, 패킷 손실률 중 적어도 어느 하나를 포함한다. 도 4에 도시된 D1, D2 및 D3는 패킷 지연 시간이다. 패킷 지연 시간(Latency)은 예를 들어, 어느 하나의 네트워크(30) 경로를 통해 패킷 전송 장치(10)가 패킷을 송신할 때부터 클라이언트(20)가 패킷을 수신할 때까지 경과한 시간이다. 즉 하나의 패킷이 한 지점에서 다른 지점으로 광속으로 이동하는데 걸리는 시간이다.
예를 들어, 패킷 수신 간격(Interval)은 어느 하나의 네트워크(30) 경로를 통해 클라이언트(20)가 패킷을 수신하는 패킷 수신 간격이다. 다른 예를 들어, 패킷 수신 간격은 패킷 전송 장치(10)가 패킷을 송신하는 패킷 송신 간격이다.
패킷 처리량(Throughput)은 비트율(Bitrate)이라고도 부르는데, 두 종단 시스템 즉 패킷 전송 장치(10)와 클라이언트(20)가 서로 통신할 때 단위 시간당 네트워크(30)가 받아들이고 전송할 수 있는 비트수이다.
패킷 손실률(Packet loss probability)은 패킷이 망 내 전송 중에 장해 등으로 손실되는 비율이다.
상태 정보는 이에 한정되는 것은 아니고, 지연 분산, 에러율, 멀티캐스팅/브로드캐스팅 기능, 문서 캐쉬 등 네트워크(30) 성능을 판단할 수 있는 모든 요소를 포함한다. 예를 들어 지연 분산은 전송 장비에 의해서만 생긴 지연 분산인 지터(Jitter)와는 구별되는 물리적 지터이다. 모든 네트워크(30)는 각각의 물리적 지터를 가진다. 신호를 재형성하는 기능을 하는 리피터(Repeater)가 가끔씩 비정상적인 작동을 할 수도 있고 금속도체의 경우 온도의 변화에 따라 전파 지연(Propagation delay)등이 변할 수 있기 때문에 물리적 지터가 존재한다.
예를 들어, 에러율은 데이터의 변경, 손실, 중복, 비순서적인 전송 등에 의해 일어난다. 네트워크(30) 에러는 비트 에러율(Bit error rate), 패킷/셀 에러율(Packet/Cell error rate), 패킷/셀 손실율(Packet/Cell loss rate) 등으로 측정된다.
일 실시예에 있어서, 혼잡 정보 산출 단계는 상태 정보를 통해 산출된 최대 지연 임계값과 네트워크(30) 경로를 통해 전달된 패킷의 현재 지연 시간을 비교하여 혼잡 정보를 산출한다. 혼잡 정보는 최대 지연 임계값과 현재 지연 시간의 대소를 비교한 데이터 등을 포함한다. 일 실시예에 있어서, 임의의 네트워크(30) 경로에서 최대 지연 임계값이 현재 지연 시간보다 작으면, 혼잡 정보 산출 단계는 최대 지연 임계값이 현재 지연 시간보다 작다는 혼잡 정보를 산출한다. 일 실시예에 있어서, 최대 지연 임계값은 패킷 손실이 발생하기 이전의 패킷 지연 시간으로 패킷 손실이 발생하기 바로 이전의 패킷 지연 시간이다. 다른 실시예에 있어서, 최대 지연 임계값은 패킷 손실이 발생하기 이전의 패킷 지연 시간 중 가장 긴 패킷 지연 시간이다. 이에 한정되는 것은 아니고, 클라이언트(20)의 종류 등에 따라 최대 지연 임계값은 다양하게 설정된다.
일 실시예에 있어서, 혼잡 정보 산출 단계는 현재 네트워크(30) 경로에 대해 혼잡 정보를 산출하고, 클라이언트(20)와 연결된 모든 네트워크(30) 경로에 대해 혼잡 정보를 산출했는지 확인한다. 만약 혼잡 정보를 산출하지 않은 네트워크(30) 경로가 남아 있다면, 모든 네트워크(30) 경로에 대해 혼잡 정보를 산출할 때까지 다음 네트워크(30) 경로를 선택하여 혼잡 정보를 산출한다.
일 실시예에 있어서, 도 6에 도시된 경로 선택 단계(단계 S2)는 산출된 네트워크(30) 별 혼잡 정보를 기초로 패킷 전송에 사용될 네트워크(30) 경로를 선택한다. 산출된 혼잡 정보를 기초로 패킷의 현재 지연 시간이 최대 지연 임계값보다 작은 네트워크(30) 경로를 패킷 전송에 사용될 네트워크(30) 경로로 선택한다. 경로 선택 단계는 선택한 네트워크(30) 경로를 전송 가능한 네트워크(30) 경로 목록에 추가한다. 선택된 네트워크(30) 경로는 존재하지 않을 수 있고 하나 이상일 수 있다.
일 양상에 있어서, 패킷 전송 방법은 정렬 단계(단계 S3)를 포함할 수 있다. 일 실시예에 있어서, 정렬 단계는 경로 선택 단계(120)가 모든 네트워크(30) 경로에 대해 패킷 전송에 사용될 네트워크(30)인지 판단한 후, 네트워크(30) 경로 별 최대 지연 임계값을 기준으로 선택된 네트워크(30) 경로를 정렬한 데이터를 생성한다. 일 실시예에 있어서, 정렬 단계는 최대 지연 임계값을 기준으로 선택된 네트워크(30) 경로를 내림차순 한다. 이에 한정되는 것은 아니고, 정렬 단계는 올림 차순 등 다양한 기준으로 네트워크(30) 경로를 정렬한 데이터를 생성한다.
일 실시예에 있어서, 패킷 할당 단계(단계 S4)는 선택된 네트워크(30) 경로 별 전송할 패킷의 개수 및 패킷의 시퀀스 번호를 할당한다. 일 실시예에 있어서, 패킷 할당 단계는 네트워크(30) 경로 간 패킷 지연 시간 차이 및 패킷 수신 간격을 기초로 네트워크(30) 경로 별 전송할 패킷의 개수 및 시퀀스 번호를 할당한다. 도 4에 도시된 △Di는 i번째 네트워크(30) 경로의 지연 Di와 i+1번째 네트워크(30) 경로의 지연 D(i+1)의 차이이며, i의 시작값은 1이다. 패킷 할당 단계는 △Di를 계산한 후 i를 1증가시키고, i가 네트워크(30) 경로 목록의 마지막 네트워크(30) 경로인지 판단한다. 만약 i가 마지막 네트워크(30) 경로가 아니면 i가 마지막 네트워크(30) 경로가 될 때까지 △Di를 계산한다. 반면에, i가 마지막 네트워크(30) 경로이면 i를 1로 변경하고 △Di를 τ(i+1)로 나눔으로써 △Di 동안 i+1번째 네트워크(30) 경로로 전송할 패킷의 개수(ni)를 계산한다.
일 실시예에 있어서, 패킷 할당 단계는 패킷 전송 장치(10)가 포함하는 복수의 인터페이스와 연결된 모든 네트워크(30) 경로에 대해 전송할 패킷의 개수 및 전송할 패킷의 시퀀스 번호를 할당한다. 도 4에 도시된 것처럼 i+1 번째 네트워크(30) 경로로 전송할 패킷의 개수가 결정되면, 패킷 할당 단계는 i를 1 증가시키고 i가 목록의 마지막 네트워크(30) 경로인지 판단한다. 판단 결과 i가 목록의 마지막 네트워크(30) 경로이면, 해당 네트워크(30) 경로로 전송할 패킷의 개수를 결정하고, i를 더 이상 증가시키지 않는다. 판단 결과 i가 목록의 마지막 네트워크(30) 경로가 아니라면 마지막 네트워크(30) 경로에 해당할 때까지 순차적으로 i에 1을 증가 시키고 전송할 패킷의 개수를 결정한다.
앞서 살펴본 패킷 할당 단계는 정렬 단계가 최대 지연 임계값에 따라 내림 차순 한 네트워크(30) 경로에 따라 △Di를 τ(i+1)로 나눔으로써 △Di 동안 i+1번째 네트워크(30) 경로로 전송할 패킷의 개수(ni)를 계산한다. 도 7은 최대 지연 임계값을 기준으로 네트워크(30) 경로를 내림차순 한 것으로 네트워크(30) 경로 1의 최대 지연 임계값이 가장 크고 i가 커짐에 따라 최대 지연 임계값이 작아 짐을 확인할 수 있다.
도 4를 참조하여 N개의 네트워크(30) 경로 중 세 개의 네트워크(30) 경로 각각을 통해 전송한 패킷의 개수를 산정하는 예를 설명한다. 세 개의 네트워크(30) 경로는 모두 혼잡 상태가 아닌 상태로 판별되어 전송 가능한 네트워크(30) 경로 목록에 포함되었다고 가정한다. 각 네트워크(30) 경로의 지연 시간(D1, D2, D3)의 차이인 △D1, △D2를 계산하고, 패킷 수신 간격(τ1, τ2, τ3)을 이용하여 각 네트워크(30) 경로로 전송할 패킷의 개수를 구한다. 예를 들어, D1, D2 및 D3 각각은 8, 4, 1이고, △D1, △D2 각각은 4, 3 이며 τ1, τ2 및 τ3 각각이 4, 2, 1이라고 가정한다. 먼저 가장 지연 시간이 큰 네트워크(30) 경로 1을 통해 1개의 패킷이 전송되는 동안 경로 2를 통해서는 n1=△D1/τ2 = 2개의 패킷이 전송된다. 지연 시간 차이 동안 경로 2는 수신 간격에 반비례하여 패킷을 더 전송할 수 있기에 경로 1을 통해 송신한 패킷보다 △D1/τ2만큼의 패킷을 더 전송할 수 있다.
경로 2를 통해 1개의 패킷이 전송되는 동안 경로 3으로 전송할 패킷의 개수는 n2=△D2/τ3 = 3개이다. 전송할 패킷을 개수를 산정하는 방식은 이에 한정되는 것은 아니다. 일 실시예에 있어서, △D/τ의 계산 결과가 소수점으로 나오면 최소의 정수비로 환산하여, 환산된 정수만큼 패킷의 개수로 산정한다. 예를 들어, n1=△D1/τ2= 0.5, n2=△D2/τ3=2.6이 나왔다면, 0.5와 0.6 각각을 최소의 정수비인 5와 6으로 환산한다. 다른 실시예에 있어서, △D/τ의 계산 결과가 소수점으로 나오면 올림 한다. 예를 들어, n1=△D1/τ2= 1.5, n2=△D2/τ3=2.6이 나왔다면, n1=2, n2=3으로 환산한다. 또 다른 실시예에 있어서, △D/τ의 계산 결과가 소수점으로 나오면 반올림 한다. 예를 들어, n1=△D1/τ2= 1.5, n2=△D2/τ3=2.4이 나왔다면, n1=2, n2=2로 환산한다. △D/τ의 계산 결과를 어떻게 처리할지는 앞서 서술한 실시예에 한정되는 것은 아니다. 각 네트워크(30) 경로로 전송 할 패킷의 개수가 결정되면 클라이언트(20)에서 순차적으로 수신할 수 있도록 네트워크(30) 경로 지연 시간과 패킷 수신 간격을 고려하여 시퀀스 번호를 할당한다.
도 4에 도시된 클라이언트(20)와 연결된 3개의 네트워크(30) 경로와 맞닿는 화살표 끝부분에 숫자가 기재되어 있다. 1부터 21이 기재되어 있으며, 이는 패킷이 패킷 전송 장치(10)로부터 수신한 패킷의 도달 순서를 의미한다. 예를 들어, 네트워크(30) 경로 3을 통해 가장 먼저 전송된 패킷이 클라이언트(20)에게 가장 먼저 도착하여 1이라고 기재된다. 네트워크(30) 경로 2 및 네트워크(30) 경로 1을 통해서도 네트워크(30) 경로 3을 통해 패킷을 전송한 시각과 동일한 시각에 패킷을 전송하였지만, 패킷 지연 시간이 길어 네트워크(30) 경로 2를 통해서는 4번째, 네트워크(30) 경로 1을 통해서는 11번째로 패킷이 도달되었다. 도 7에 도시된 것처럼 네트워크(30) 경로 별 패킷 지연 시간 및 패킷 수신 간격을 통해 패킷이 도달하는 순서를 알 수 있다. 도달하는 순서에 부합하는 시퀀스 번호를 네트워크(30) 경로에 할당하고, 시퀀스 번호대로 패킷을 클라이언트(20)로 전송하면 클라이언트(20)가 수신한 패킷의 순서가 달라지는(Out of order) 현상을 막을 수 있다.
일 양상에 있어서, 패킷 전송 방법은 패킷 전송 단계(단계 S5)를 포함한다. 일 실시예에 있어서, 패킷 전송 단계는 전송할 패킷의 개수 및 패킷의 시퀀스 번호 할당이 완료된 네트워크(30) 경로를 통해 패킷을 전송한다. 패킷 전송 단계는 패킷 할당 단계가 패킷 전송 장치(10)가 포함하는 복수의 인터페이스와 연결된 모든 네트워크(30) 경로에 대해 전송할 패킷의 개수 및 전송할 패킷의 시퀀스 번호를 할당하면 네트워크(30) 경로 별 할당된 패킷의 개수 및 시퀀스 번호에 따라 패킷을 전송한다.
일 양상에 있어서, 패킷 전송 방법은 상태 정보 갱신 단계(단계 S6)를 포함한다. 상태 정보 갱신 단계는 복수의 네트워크(30) 경로를 통해 패킷을 수신한 클라이언트(20)가 송신한 피드백 정보에 포함된 상태 정보를 갱신한다. 피드백 정보는 네트워크(30) 경로 별 패킷 지연 시간, 패킷 수신 간격, 처리량, 패킷 손실률 중 적어도 어느 하나를 포함한다. 네트워크(30) 경로의 상태는 시간의 경과에 따라 변할 수 있다. 네트워크(30) 경로 별 전송할 패킷의 개수 및 패킷의 시퀀스 번호는 네트워크(30) 경로의 상태 정보를 통해 산출된 혼잡 정보에 따라 좌우된다. 상태 정보를 갱신하면 현재 네트워크(30) 경로 상태에 부합하는 패킷의 개수 및 패킷 시퀀스 번호를 각 네트워크(30) 경로에 할당할 수 있다. 패킷을 수신할 때 마다 클라이언트(20)는 피드백 정보를 패킷 전송 장치(10)로 전송하며, 패킷 전송 장치(10)가 피드백 정보를 수신할 때마다 혼잡 정보 산출 단계는 네트워크(30) 경로의 상태 정보를 통해 혼잡 정보를 산출한다. 네트워크(30) 경로 별 트래픽 상황을 포함한 혼잡 정보가 변동할 경우 최적의 무선 통신 품질을 보장할 수 있도록 네트워크(30) 경로 별 전송할 패킷의 개수 및 패킷의 시퀀스 번호를 변경할 수 있다. 클라이언트(20)로부터 지속적으로 피드백 정보를 수신하고 상태 정보 갱신 단계가 네트워크(30) 경로 별 상태 정보를 갱신함에 따라 통신 환경의 변화에 대한 신속하고 유연한 대처가 가능하다. 상태 정보는 이에 한정되는 것은 아니고, 지연 분산, 에러율, 멀티캐스팅/브로드캐스팅 기능, 문서 캐쉬 등 네트워크(30) 성능을 판단할 수 있는 모든 요소를 포함한다. 패킷 지연 시간, 패킷 수신 간격, 처리량, 패킷 손실률, 지연 분산 및 에러율에 대한 구체적인 설명은 앞에서 서술하였다.
도 7은 도 6에 도시된 패킷 전송 방법의 흐름을 구체적으로 도시한다. 상태 정보 갱신 단계는 클라이언트(20)로부터 패킷 지연 시간, 패킷 수신 간격, 처리량, 패킷 손실률 중 적어도 어느 하나를 포함하는 상태 정보를 포함하는 피드백 정보를 수신하고(단계 S100), 상태 정보를 갱신한다(단계 S200). 상태 정보로부터 혼잡 정보 산출 단계는 혼잡 정보를 산출한다(단계 S300). 경로 선택 단계는 산출된 혼잡 정보를 기초로 패킷의 현재 지연 시간과 최대 지연 임계값을 비교하여 현재 지연 시간이 더 작은 네트워크(30) 경로를 선택하여 전송 가능한 네트워크(30) 경로로 추가한다. 경로 선택 단계는 모든 네트워크(30) 경로에 대해 패킷의 현재 지연 시간과 최대 지연 임계값을 비교하여 현재 지연 시간이 더 작은 네트워크(30) 경로를 선택하여 전송 가능한 네트워크(30) 경로로 추가한다(단계 S400).
정렬 단계는 네트워크(30) 경로 별 최대 지연 임계값을 기준으로 선택된 네트워크(30) 경로를 내림 차순으로 정렬한 데이터를 생성한다(단계 S500). 패킷 할당 단계는 네트워크(30) 경로 간 패킷 지연 시간 차이 및 패킷 수신 간격을 기초로 네트워크(30) 경로 별 전송할 패킷의 개수 및 시퀀스 번호를 할당한다. △Di는 i번째 네트워크(30) 경로의 지연 Di와 i+1번째 네트워크(30) 경로의 지연 D(i+1)의 차이이며(단계 S600), i의 시작값은 1이다. 패킷 할당 단계는 △Di를 계산한 후 i를 1증가시키고(단계 S700), i가 네트워크(30) 경로 목록의 마지막 네트워크(30) 경로인지 판단한다. 만약 i가 마지막 네트워크(30) 경로가 아니면 i가 마지막 네트워크(30) 경로가 될 때까지 △Di를 계산한다(단계 S800). 패킷 할당 단계는 i가 마지막 네트워크(30) 경로이면 i를 1로 변경하고 △Di를 τ(i+1)로 나눔으로써 △Di 동안 i+1번째 네트워크(30) 경로로 전송할 패킷의 개수(ni)를 계산한다(단계 S 900). ni를 계산한 후 i를 1증가시키고(단계 S900), i가 네트워크(30) 경로 목록의 마지막 네트워크(30) 경로인지 판단한다. 만약 i가 마지막 네트워크(30) 경로가 아니면 i가 마지막 네트워크(30) 경로가 될 때까지 ni를 계산한다(단계 S1000). 패킷 할당 단계는 패킷 지연 시간 및 패킷 수신 간격에 따른 패킷이 도달하는 순서에 따라 시퀀스 번호를 네트워크(30) 경로에 할당한다(단계 S1300). 패킷 전송 방법은 서비스가 종종 될 때까지 단계 S100 내지 단계 S1400를 반복한다.
도 8은 클라이언트(20)가 다중 네트워크(30) 경로를 통해 패킷을 수신하고 피드백 정보를 송신하는 흐름을 도시한다. 클라이언트(20)는 패킷 전송 장치(10)로부터 패킷을 수신한다(단계 S11). 클라이언트(20)는 수신한 패킷으로부터 네트워크(30) 경로 별 패킷 지연 시간, 패킷 수신 간격, 처리량, 패킷 손실률 중 적어도 어느 하나를 포함하는 피드백 정보를 생성한다(단계 S12). 피드백 정보를 생성한 클라이언트(20)는 피드백 정보를 패킷 전송 장치(10)로 송신한다(단계 S13). 클라이언트(20)는 서비스가 종료할 때까지 단계 S11 내지 단계 S14를 반복한다.
본 발명은 첨부된 도면에 도시된 일 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 당해 기술 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 수 있을 것이다. 따라서, 본 발명의 진정한 보호 범위는 첨부된 청구 범위에 의해서만 정해 져야 할 것이다.
10: 패킷 전송 장치
20: 클라이언트
30: 네트워크
110: 상태 정보 갱신부
111: 혼잡 정보 산출부
120: 경로 선택부
121: 정렬부
130: 패킷 할당부
131: 패킷 전송부
140: 인터페이스
210: 피드백 정보 송신부
220: 패킷 수신부
310: 네트워크 영역
320: 네트워크 영역
330: 네트워크 영역
340: 네트워크 영역
350: 이종의 네트워크가 중첩된 영역에 위치한 클라이언트
360: 이종의 네트워크가 중첩된 영역에 위치한 클라이언트
370: 이종의 네트워크가 중첩된 영역에 위치한 클라이언트
380: 단일의 네트워크가 중첩된 영역에 위치한 클라이언트

Claims (15)

  1. 멀티 호밍 기반의 네트워크 경로를 활용하여 패킷을 전송하는 패킷 전송 장치에 있어서,
    복수의 네트워크 경로 별 상태 정보를 기초로 네트워크 경로 별 혼잡 정보를 산출하는 혼잡 정보 산출부;
    산출된 네트워크 별 혼잡 정보를 기초로 패킷 전송에 사용될 네트워크 경로를 선택하는 경로 선택부; 및
    선택된 네트워크 경로 별 전송할 패킷의 개수 및 패킷의 시퀀스 번호를 할당하는 패킷 할당부; 를 포함하는 패킷 전송 장치.

  2. 제 1 항에 있어서, 혼잡 정보 산출부는
    복수의 네트워크 경로 별 패킷 지연 시간, 패킷 수신 간격, 처리량, 패킷 손실률 중 적어도 어느 하나를 포함하는 상태 정보를 기초로 네트워크 경로 별 혼잡 정보를 산출하는 패킷 전송 장치.
  3. 제 1 항에 있어서, 네트워크 경로 선택 장치는
    복수의 네트워크 경로 별 패킷을 수신한 클라이언트가 송신한 피드백 정보에 포함된 상태 정보를 갱신하는 상태 정보 갱신부; 를
    더 포함하는 패킷 전송 장치.
  4. 제 1 항에 있어서, 혼잡 정보 산출부는
    상태 정보를 통해 산출된 최대 지연 임계값과 네트워크 경로를 통해 전달된 패킷의 현재 지연 시간을 비교하여 혼잡 정보를 산출하는 패킷 전송 장치.
  5. 제 4 항에 있어서, 경로 선택부는
    산출된 혼잡 정보를 기초로 패킷의 현재 지연 시간이 최대 지연 임계값보다 작은 네트워크 경로를 패킷 전송에 사용될 네트워크 경로로 선택하는 패킷 전송 장치.
  6. 제 4 항에 있어서, 패킷 전송 장치는
    경로 선택부가 모든 네트워크 경로에 대해 패킷 전송에 사용될 네트워크인지 판단한 후, 네트워크 경로 별 최대 지연 임계값을 기준으로 선택된 네트워크 경로를 정렬한 데이터를 생성하는 정렬부; 를 더 포함하는 패킷 전송 장치.
  7. 제 1 항에 있어서, 패킷 할당부는
    네트워크 경로 간 패킷 지연 시간 차이 및 패킷 수신 간격을 기초로 네트워크 경로 별 전송할 패킷의 개수 및 시퀀스 번호를 할당하는 패킷 전송 장치.
  8. 제 1 항에 있어서, 패킷 할당부는
    패킷 전송 장치가 포함하는 복수의 인터페이스와 연결된 모든 네트워크 경로에 대해 전송할 패킷의 개수 및 전송할 패킷의 시퀀스 번호를 할당하는 패킷 전송 장치.
  9. 제 1 항에 있어서, 패킷 전송 장치는
    전송할 패킷의 개수 및 패킷의 시퀀스 번호 할당이 완료된 네트워크 경로를 통해 패킷을 전송하는 패킷 전송부; 를
    더 포함하는 패킷 전송 장치.

  10. 멀티 호밍 기반의 네트워크 경로를 활용하여 패킷을 전송하는 패킷 전송 방법에 있어서,
    복수의 네트워크 경로 별 상태 정보를 기초로 네트워크 경로 별 혼잡 정보를 산출하는 혼잡 정보 산출 단계;
    산출된 네트워크 별 혼잡 정보를 기초로 패킷 전송에 사용될 네트워크 경로를 판단하여 선택하는 경로 선택 단계; 및
    선택된 네트워크 경로 별 전송할 패킷의 개수 및 패킷의 시퀀스 번호를 할당하는 패킷 할당 단계; 를 포함하는 패킷 전송 방법.
  11. 제 10 항에 있어서, 네트워크 경로 선택 방법은
    복수의 네트워크 경로 별 패킷을 수신한 클라이언트가 송신한 피드백 정보에 포함된 상태 정보를 갱신하는 상태 정보 갱신 단계; 를
    더 포함하는 패킷 전송 방법.
  12. 제 10 항에 있어서, 혼잡 정보 산출 단계는
    상태 정보를 통해 산출된 최대 지연 임계값과 네트워크 경로를 통해 전달된 패킷의 현재 지연 시간을 비교하여 혼잡 정보를 산출하는 패킷 전송 방법.
  13. 제 10 항에 있어서, 경로 선택 단계는
    산출된 혼잡 정보를 기초로 현재 지연 시간이 최대 지연 임계값보다 작은 네트워크 경로를 패킷 전송에 사용될 네트워크로 판단하여 선택하는 패킷 전송 방법.
  14. 제 13 항에 있어서, 패킷 전송 방법은
    경로 선택 단계에서 모든 네트워크 경로에 대해 패킷 전송에 사용될 네트워크인지 판단한 후, 네트워크 경로 별 최대 지연 임계값을 기준으로 선택된 네트워크 경로를 정렬한 데이터를 생성하는 정렬 단계; 를 더 포함하는 패킷 전송 방법.
  15. 제 10 항에 있어서, 패킷 할당 단계는
    네트워크 경로 간 패킷 지연 시간 차이 및 패킷 수신 간격을 기초로 네트워크 경로 별 전송할 패킷의 개수 및 시퀀스 번호를 할당하는 패킷 전송 방법.


KR1020150011378A 2015-01-23 2015-01-23 멀티 호밍 기반의 네트워크를 통한 패킷 전송 장치 및 방법 KR20160091118A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150011378A KR20160091118A (ko) 2015-01-23 2015-01-23 멀티 호밍 기반의 네트워크를 통한 패킷 전송 장치 및 방법
US14/995,301 US20160218979A1 (en) 2015-01-23 2016-01-14 Apparatus and method for transmitting packets through multi-homing based network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150011378A KR20160091118A (ko) 2015-01-23 2015-01-23 멀티 호밍 기반의 네트워크를 통한 패킷 전송 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20160091118A true KR20160091118A (ko) 2016-08-02

Family

ID=56434323

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150011378A KR20160091118A (ko) 2015-01-23 2015-01-23 멀티 호밍 기반의 네트워크를 통한 패킷 전송 장치 및 방법

Country Status (2)

Country Link
US (1) US20160218979A1 (ko)
KR (1) KR20160091118A (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017034520A1 (en) * 2015-08-21 2017-03-02 Nokia Technologies Oy Extent of out-of-sequence indication for multi-connectivity
US10560383B2 (en) * 2016-11-10 2020-02-11 Futurewei Technologies, Inc. Network latency scheduling
CN111316601A (zh) * 2017-10-05 2020-06-19 西门子股份公司 用于配置网络的方法和装置以及通信网络
US10893574B2 (en) 2018-04-10 2021-01-12 Electronics And Telecommunications Research Institute Packet data unit session release method and network entity performing the same
US10805439B2 (en) * 2018-04-30 2020-10-13 Xaptum, Inc. Communicating data messages utilizing a proprietary network
US11178717B2 (en) 2018-05-21 2021-11-16 Electronics And Telecommunications Research Institute Traffic distribution method through multi-access network in a network and network entity performing the same
US10873520B2 (en) * 2018-07-02 2020-12-22 Hewlett Packard Enterprise Development Lp Packet batching identification
US11644887B2 (en) * 2018-11-19 2023-05-09 Alibaba Group Holding Limited Unified power management
US10901823B2 (en) * 2018-12-20 2021-01-26 Accenture Global Solutions Limited System and method for load balancing in computing systems
CN111800218B (zh) * 2019-04-08 2022-04-22 华为技术有限公司 一种数据流的传输方法和设备
US11108666B2 (en) * 2019-06-06 2021-08-31 Morgan Stanley Services Group Inc. Latency prediction and network message microtiming
US20210065038A1 (en) * 2019-08-26 2021-03-04 Visa International Service Association Method, System, and Computer Program Product for Maintaining Model State
CN110662256B (zh) * 2019-09-18 2021-03-23 北京交通大学 多路径跨协议传输的数据包调度方法及系统
US11336683B2 (en) * 2019-10-16 2022-05-17 Citrix Systems, Inc. Systems and methods for preventing replay attacks
CN112737940B (zh) * 2019-10-28 2023-12-08 华为技术有限公司 一种数据传输的方法和装置
WO2021248886A1 (zh) * 2020-06-11 2021-12-16 华为技术有限公司 数据传输方法、发送侧设备和接收侧设备
US20220377007A1 (en) * 2021-05-20 2022-11-24 Fastly, Inc. Enhanced infrastructure routing with prefixed network addressing in content delivery networks

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120093225A (ko) * 2009-09-23 2012-08-22 에어로바이론먼트, 인크. 성능 모니터링을 이용한 능동 다중경로 네트워크 리던던시
US20130235747A1 (en) * 2012-03-08 2013-09-12 Khiem Le Estimation of access quality in mobile communication systems

Also Published As

Publication number Publication date
US20160218979A1 (en) 2016-07-28

Similar Documents

Publication Publication Date Title
KR20160091118A (ko) 멀티 호밍 기반의 네트워크를 통한 패킷 전송 장치 및 방법
EP3278514B1 (en) Data transmission
KR101066327B1 (ko) 다수의 무선 네트워크 링크들을 통한 ip 흐름 기반 부하 조절
KR102318021B1 (ko) 이동 통신 네트워크 내 다중 링크 상에서의 패킷 분배 방법 및 장치
US7433965B2 (en) Packet transmission system, packet transmission method, packet transmission device, home agent, mobile terminal, and access router
CN113826364B (zh) 用于侧链路的协作通信的方法和设备
WO2019179157A1 (zh) 一种数据流量处理方法及相关网络设备
US20170027016A1 (en) Communication device, wireless communication device, and communication method
CN110944358B (zh) 数据传输方法和设备
JP2018511275A (ja) Tcpトンネル及びネイティブtcp情報に基づくバンドリングシナリオにおけるパケットのスケジューリングのための方法及びシステム
US11463372B2 (en) Method and apparatus for coded multipath networking using path management and protocol translation
US10349331B2 (en) Packet processing method for software-defined network
Phatak et al. IP-in-IP tunneling to enable the simultaneous use of multiple IP interfaces for network level connection striping
US11218910B2 (en) First node and a second node and methods of operating the same
US20170195456A1 (en) Traffic control in a communication network
EP3518577B1 (en) Network access entity for providing access to a communication network
JP5306595B2 (ja) 通信制御装置、無線通信装置、通信制御方法および無線通信方法
CN114339889A (zh) 一种无线链路动态选择方法及系统
EP3518576B1 (en) Data flow manager for distributing data for a data stream of a user equipment, communication system and method
JP5306596B2 (ja) 通信制御装置、無線通信装置、通信制御方法および無線通信方法
US20220232418A1 (en) Methods and apparatuses for communication
KR20230064294A (ko) 무선 네트워크 mptcp 혼잡 윈도우 제어 장치 및 방법
KR20200072293A (ko) 다 계층 네트워크에서 다중 경로 전송을 위한 패킷 분배 시스템 및 그 방법
CN117640492A (zh) 一种适用于时间确定性业务的网络传输方法
MX2014000641A (es) Sistema para el uso simultaneo de multiples interfaces de red heterogeneas para mejorar el rendimiento de red en dispositivos con varias interfaces.

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid