KR101680278B1 - 다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램 - Google Patents

다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램 Download PDF

Info

Publication number
KR101680278B1
KR101680278B1 KR1020160082958A KR20160082958A KR101680278B1 KR 101680278 B1 KR101680278 B1 KR 101680278B1 KR 1020160082958 A KR1020160082958 A KR 1020160082958A KR 20160082958 A KR20160082958 A KR 20160082958A KR 101680278 B1 KR101680278 B1 KR 101680278B1
Authority
KR
South Korea
Prior art keywords
terminal
wifi
application
communication
mptcp
Prior art date
Application number
KR1020160082958A
Other languages
English (en)
Other versions
KR20160084826A (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 주식회사 케이티
Publication of KR20160084826A publication Critical patent/KR20160084826A/ko
Application granted granted Critical
Publication of KR101680278B1 publication Critical patent/KR101680278B1/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
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/14Charging, metering or billing arrangements for data wireline or wireless communications
    • H04L12/1403Architecture for metering, charging or billing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/52Multiprotocol routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • 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
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/88Provision for limiting connection, or expenditure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks
    • H04W84/12WLAN [Wireless Local Area Networks]

Abstract

단말이 게이트웨이를 통해 다중 경로 통신하는 방법으로서, 다중 경로 통신 대상에 해당하는 어플리케이션들을 포함하는 화이트리스트를 저장하는 단계, 그리고 상기 화이트리스트에 포함된 제1 어플리케이션이 실행되면, 다중 통신 인터페이스의 적어도 하나를 이용하여 상기 게이트웨이와 적어도 하나의 경로를 생성하는 단계를 포함한다.

Description

다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램{NETWORK APPARATUS AND TERMINAL FOR MULTI-PATH TRANSMISSION, OPERATING METHOD OF THE SAME, AND PROGRAM OF THE SAME METHOD}
본 발명은 다중 경로 통신에 관한 것이다.
병합 전송(aggregation transmission)은 복수의 무선망을 동시에 사용하여 데이터를 전송하는 기술로서, 각 경로로 전송된 데이터를 하나의 세션으로 처리한다. 병합 전송 기술을 통해, 단말은 한 시점에 복수의 접속망에 연결될 수 있고, 하나의 서비스/어플리케이션은 망 종류나 망의 수에 관계없이 복수의 망을 하나의 망처럼 병합하여 통신한다. 따라서, 병합 전송 시스템은 가용한 복수의 망자원을 이용하여 대량의 데이터를 빠르게 송수신할 수 있다.
다중 경로 TCP(Multi-Path TCP, MPTCP) 기술은 복수의 IP 인터페이스를 동시에 사용하기 위한 L4 기술이다. 복수의 물리적 인터페이스를 구비한 단말은 MPTCP 기술을 통해, 한 시점에 복수의 접속망에 연결될 수 있고, 서브플로우(subflow) 단위로 세션을 생성하여 단대단 통신한다.
이와 같이, 복수의 무선망을 동시에 사용하여 데이터를 전송하는 기술에 대한 연구가 진행되고 있으나, 아직까지 모든 서버가 다중 경로 통신을 지원하지 않는다. 따라서, 현재 다중 통신 인터페이스를 구비한 단말이 모든 서버와 다중 경로 통신을 하기 어려운 한계가 있다.
(특허문헌 1) KR560724 B
(특허문헌 2) US8265078 B
본 발명이 해결하고자 하는 과제는 다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램을 제공하는 것이다.
본 발명의 한 실시예에 따라 단말이 게이트웨이를 통해 다중 경로 통신하는 방법으로서, 다중 경로 통신 대상에 해당하는 어플리케이션들을 포함하는 화이트리스트를 저장하는 단계, 그리고 상기 화이트리스트에 포함된 제1 어플리케이션이 실행되면, 다중 통신 인터페이스의 적어도 하나를 이용하여 상기 게이트웨이와 적어도 하나의 경로를 생성하는 단계를 포함한다.
상기 다중 경로 통신 방법은 상기 제1 어플리케이션이 실행되면, 상기 제1 어플리케이션의 식별자를 기초로 상기 제1 어플리케이션이 상기 화이트리스트에 포함된 어플리케이션인지 판단하는 단계를 더 포함할 수 있다.
상기 게이트웨이와 적어도 하나의 경로를 생성하는 단계는 복수의 망 각각을 통해 상기 게이트웨이와 연결되는 서브플로우를 생성하고, 상기 복수의 망 중 임의 망과의 접속이 끊어지면, 접속이 유지된 망의 서브플로우를 통해 상기 제1 어플리케이션의 트래픽을 처리하는 단계를 더 포함할 수 있다.
상기 화이트리스트를 저장하는 단계는 네트워크 장치로부터 적어도 하나의 어플리케이션 목록을 수신하는 단계, 그리고 수신한 어플리케이션 목록을 상기 화이트리스트에 저장하는 단계를 포함할 수 있다.
상기 다중 경로 통신 방법은 상기 화이트리스트에 포함된 어플리케이션에서 발생한 트래픽이 상기 게이트웨이로 중계되도록 라우팅 테이블을 설정하는 단계를 더 포함할 수 있다.
상기 다중 경로 통신 방법은 상기 화이트리스트에 포함되지 않은 제2 어플리케이션이 실행되면, 상기 게이트웨이를 경유하지 않는 경로로 상기 제2 어플리케이션의 트래픽을 전송하는 단계를 더 포함할 수 있다.
본 발명의 다른 실시예에 따라 게이트웨이가 단말과 다중 경로 통신하는 방법으로서, 상기 단말에서 실행된 어플리케이션의 트래픽 처리를 위해, 제1망을 통해 상기 단말과 제1 세션을 생성하는 단계, 상기 어플리케이션의 트래픽 처리를 위해 제2망을 통해 상기 단말과 제2 세션을 생성하는 단계, 그리고 상기 제1 세션과 상기 제2 세션을 통해 상기 어플리케이션 트래픽을 처리하는 단계를 포함한다.
상기 어플리케이션 트래픽을 처리하는 단계는 상기 제1 세션 정보를 기초로 상기 제1망의 종류를 판단하는 단계, 그리고 상기 제1망이 지정된 선호망인 경우, 상기 제2 세션을 통한 트래픽 처리를 제한하는 단계를 포함할 수 있다.
상기 지정된 선호망은 WiFi망일 수 있다.
상기 어플리케이션 트래픽을 처리하는 단계는 상기 제1망의 통신 상태를 모니터링하는 단계, 그리고 모니터링 결과 상기 제1망이 기준 이하의 품질을 제공하는 경우, 상기 제2 세션을 통한 트래픽 처리 제한을 해제하는 단계를 포함할 수 있다.
상기 어플리케이션 트래픽을 처리하는 단계는 상기 단말의 요금제를 기초로 상기 제1 세션과 상기 제2 세션을 통한 트래픽 처리를 제어할 수 있다.
본 발명의 또 다른 실시예에 따라 정책 배포 장치와 단말이 다중 경로 통신을 위해 동작하는 방법으로서, 상기 정책 배포 장치가, 프록시 서버 접속 정보 그리고 화이트리스트 정보를 포함하는 프록시 정책을 생성하는 단계, 상기 정책 배포 장치가, 상기 프록시 정책을 단말에 배포하는 단계, 그리고 상기 단말이, 상기 프록시 정책을 기초로 임의 어플리케이션의 트래픽을 지정된 프록시 서버로 전송하는 단계를 포함하고, 상기 화이트리스트 정보는 다중 경로 통신 대상에 해당하는 어플리케이션 목록이다.
상기 지정된 프록시 서버로 전송하는 단계는 상기 단말이, 상기 화이트리스트에 포함된 제1 어플리케이션의 트래픽이 제1 프록시 서버로 중계되도록 라우팅 테이블을 설정하여 상기 프록시 정책을 적용하는 단계, 실행되는 어플리케이션의 식별 정보를 기초로 상기 제1 어플리케이션을 식별하는 단계, 그리고 상기 제1 어플리케이션에 관계된 라우팅 테이블을 참조하여 상기 제1 어플리케이션의 트래픽을 상기 제1 프록시 서버로 전송하는 단계를 포함할 수 있다.
상기 제1 프록시 서버로 전송하는 단계는 상기 제1 프록시 서버와 연결된 다중 경로로 상기 제1 어플리케이션의 트래픽을 전송할 수 있다.
본 발명의 또 다른 실시예에 따라 단말이 다중 경로 통신을 위해 동작하는 방법으로서, 어플리케이션의 소켓 생성 시 사용하는 원천 주소를 제1 통신 인터페이스로 설정하는 단계, 상기 어플리케이션이 상기 제1 통신 인터페이스를 원천 주소로 사용하여 생성한 제1 소켓의 정보, 그리고 라우팅 테이블에 설정된 적어도 하나의 통신 인터페이스를 원천 주소로 사용하여 생성한 제2 소켓의 정보를 매핑하고, 매핑한 정보를 매핑 테이블에 저장하는 단계, 그리고 상기 매핑 테이블을 기초로 상기 어플리케이션의 트래픽을 상기 라우팅 테이블에 설정된 적어도 하나의 통신 인터페이스를 통해 송수신하는 단계를 포함한다.
상기 동작 방법은 상기 제2 소켓이 원천 주소로 사용한 통신 인터페이스가 변경되는 경우, 변경된 인터페이스의 정보를 기초로 상기 매핑 테이블을 갱신하는 단계를 더 포함할 수 있다.
상기 제1 통신 인터페이스는 이동통신망 접속을 위한 인터페이스일 수 있다.
본 발명의 또 다른 실시예에 따라 단말이 다중 경로 통신을 위해 동작하는 방법으로서, 다중 경로 통신을 위한 서브플로우 생성을 모니터링하는 단계, 상기 서브플로우가 생성되면 WiFi 인터페이스를 활성화하는 단계, 그리고 상기 서브플로우가 소멸되면 WiFi 인터페이스를 비활성화하는 단계를 포함한다.
상기 동작 방법은 상기 서브플로우를 기초로 상기 WiFi 인터페이스를 활성화하거나 비활성화하는 경우, 플래그를 제1값으로 설정하는 단계, WiFi 온오프 이벤트가 발생한 경우, 상기 플래그를 확인하는 단계, 상기 플래그가 상기 제1값인 경우, 상기 플래그를 제2값으로 변경하는 단계, 그리고 상기 플래그가 상기 제1값이 아닌 경우, 사용자에 의한 WiFi 온오프 이벤트로 판단하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 실시예에 따라 다중 경로 통신을 수행하는 단말로서, 다중 경로 통신 관련 설정 및 정책 정보를 관리하는 다중 경로 관리부, 상기 설정 및 정책 정보를 기초로 어플리케이션별 라우팅 정책을 결정하는 사용자-커널 인터페이스부, 그리고 상기 라우팅 정책을 기초로 각 어플리케이션의 트래픽을 적어도 하나의 통신 인터페이스를 통해 전송하는 다중 경로 처리부를 포함한다.
상기 다중 경로 관리부는 다중 경로 통신 대상에 해당하는 어플리케이션들을 포함하는 화이트리스트를 관리할 수 있다.
상기 사용자-커널 인터페이스부는 어플리케이션 식별 정보를 기초로 제1 어플리케이션이 상기 화이트리스트에 포함되는지 판단하고, 상기 제1 어플리케이션이 상기 화이트리스트에 포함되는 경우, 상기 제1 어플리케이션의 트래픽이 상기 설정 및 정책 정보에서 지정한 게이트웨이로 중계되도록 라우팅 테이블을 설정할 수 있다.
상기 다중 경로 처리부는 상기 적어도 하나의 통신 인터페이스를 통해 상기 게이트웨이에 연결되는 적어도 하나의 경로를 생성하고, 상기 적어도 하나의 경로를 통해 상기 제1 어플리케이션의 트래픽을 상기 게이트웨이로 전송할 수 있다.
본 발명의 실시예에 따르면 가용한 복수의 무선망을 동시에 사용하여 각 경로로 전송된 데이터를 하나로 병합 처리할 수 있다. 본 발명의 실시예에 따르면 가용한 복수의 망자원을 이용하여 대량의 데이터를 빠르게 송수신할 수 있다.
본 발명의 실시예에 따르면 단말은 한 시점에 복수의 접속망에 연결 가능하며, 하나의 서비스/어플리케이션은 망 종류나 망의 수에 관계없이 복수의 망을 하나의 망처럼 병합하여 통신할 수 있다.
본 발명의 실시예에 따르면 단말이 다중 경로를 통해서 다중 경로를 지원하지 않는 일반 서버에 연결될 수 있다.
도 1은 본 발명의 한 실시예에 따른 망 병합 전송을 설명하는 개념도이다.
도 2는 본 발명의 한 실시예에 따른 다중 경로 전송 시스템의 구성도이다.
도 3은 본 발명의 한 실시예에 따른 트래픽 흐름을 예시적으로 나타내는 도면이다.
도 4부터 도 6은 본 발명의 한 실시에에 따른 MPTCP 관리부가 제공하는 사용자 설정 화면을 예시적으로 나타내는 도면이다.
도 7은 본 발명의 한 실시예에 따라 WiFi로 세션을 시작한 경우의 다중 경로 전송 방법을 설명하는 흐름도이다.
도 8은 본 발명의 한 실시예에 따라 LTE로 세션을 시작한 경우의 다중 경로 전송 방법을 설명하는 흐름도이다.
도 9와 도 10 각각은 본 발명의 한 실시예에 따른 단말별 트래픽 제어를 도식적으로 설명하는 도면이다.
도 11은 본 발명의 한 실시예에 따른 단말의 구성도이다.
도 12와 도 13 각각은 본 발명의 한 실시예에 따른 다중 경로 전송 단말의 WiFi 제어 방법을 설명하는 흐름도이다.
도 14는 종래의 소켓 통신 방법을 설명하는 도면이다.
도 15부터 도 17은 본 발명의 한 실시예에 따른 소켓 통신 방법을 설명하는 도면이다.
도 18은 일반적인 프록시 통신 방법을 설명하는 도면이다.
도 19는 본 발명의 한 실시예에 따른 프록시 통신 방법을 설명하는 도면이다.
도 20은 본 발명의 한 실시예에 따른 프록시 통신 방법의 흐름도이다.
도 21은 본 발명의 한 실시예에 따른 단말의 하드웨어 블록도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "…기", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
본 명세서에서 단말은 이동국(Mobile Station, MS), 이동 단말(Mobile Terminal, MT), 가입자국(Subscriber Station, SS), 휴대 가입자국(Portable Subscriber Station, PSS), 사용자 장치(User Equipment, UE), 접근 단말(Access Terminal, AT) 등을 지칭할 수도 있고, 이동국, 이동 단말, 가입자국, 휴대 가입자 국, 사용자 장치, 접근 단말 등의 전부 또는 일부의 기능을 포함할 수도 있다.
본 명세서의 단말은 기지국(base station, BS), 접근점(Access Point, AP), 무선 접근국(Radio Access Station, RAS), 노드B(Node B), 고도화 노드B(evolved NodeB, eNodeB), 송수신 기지국(Base Transceiver Station, BTS), MMR(Mobile Multihop Relay)-BS 등과 같은 네트워크 장치에 접속하여 원격의 서버에 연결될 수 있다.
본 명세서의 단말은 스마트폰과 같은 모바일 단말, 스마트패드/태블릿PC와 같은 태블릿 단말, 컴퓨터, 텔레비전 등 다양한 형태의 통신 단말로서, 복수의 통신 인터페이스를 구비할 수 있다.
통신 인터페이스는 다양할 수 있다. 예를 들면, 통신 인터페이스는 와이파이(WiFi)/WLAN/블루투스(bluetooth) 등의 근거리 무선망 인터페이스, 그리고 3G/LTE(Long Term Evolution)/LTE-A(Long Term Evolution-Advanced) 등의 이동통신망 인터페이스를 포함할 수 있고, 단말 제조사가 다양한 통신 인터페이스를 추가할 수 있다. 본 명세서에서는 WiFi 인터페이스와 LTE 인터페이스를 예로 들어 설명하나, 통신 인터페이스가 이에 한정되는 것은 아니다.
도 1은 본 발명의 한 실시예에 따른 망 병합 전송을 설명하는 개념도이다.
도 1을 참고하면, 망 병합 전송은 복수의 통신망을 병합하여 데이터를 전송하는 기술로서, 하나의 경로로 전송된 데이터를 복수의 동종 망 또는 복수의 이종 망의 경로로 분할하여 전송하거나, 복수의 경로로 전송된 데이터를 하나의 경로로 묶어 전송할 수 있다. 망 병합 전송은 데이터를 복수의 경로로 동시에 전송하는 의미에서 다중 경로 전송이라고 부를 수 있다.
단말(100)은 다중 통신 인터페이스를 구비하고, 다중 통신 인터페이스를 통해 한 시점에 복수의 망(예를 들면, WiFi망과 LTE망)에 연결될 수 있다.
게이트웨이(200)는 서버(300)가 단말(100)로 전송하는 데이터를 수신한다. 여기서, 서버(300)는 다중 통신 인터페이스를 지원하지 않는다고 가정한다. 게이트웨이(200)는 다중 경로 전송을 위한 네트워크 장치이다.
게이트웨이(200)는 수신한 데이터를 단말(100)의 다중 통신 인터페이스로 전달하기 위해 데이터를 분할한다. 그리고 게이트웨이(200)는 일부 데이터를 LTE망을 통해 단말(100)로 전송하고, 나머지 데이터를 WiFi망을 통해 단말(100)로 전송할 수 있다. 단말(100)은 복수의 통신 인터페이스를 통해 수신한 데이터를 병합한다. 마찬가지 방법으로, 게이트웨이(200)는 단말(100)이 다중 통신 인터페이스를 이용하여 전송한 데이터를 병합하여 서버(300)로 전송할 수 있다.
WiFi망과 LTE망의 병합 기술은 병합 지점에 따라 다음과 같이 분류될 수 있다.
L2/링크 계층 병합은 LTE 코어망(core)와 접속망(access)의 경계 지점(즉, eNB)에서 WiFi AP로 전용 터널을 생성한다.
L3/네트워크 계층 병합은 LTE망과 WiFi망에서 독립적으로 사용하는 IP 주소를 통합하기 위해 가상 IP 터널을 생성한다.
L4/전송 계층 병합은 단일 접속망을 통해 세션을 생성한 후, 추가적인 접속망이 사용 가능한 경우, IP 주소체계와 상관없이 데이터 전송에 참여시킬 수 있다. 이때, 응용레벨의 통신 주체는 하나 이상의 접속망을 이용하여 단일 세션 기반의 데이터 통신이 가능한 구조를 지원한다.
L7/응용 계층 병합은 전용 어플리케이션/에이전트가 자체적으로 LTE망과 WiFi망을 통해 수신한 데이터를 재조합하거나 응용 프로토콜 데이터를 분리하여 전송한다.
이와 같이, 병합 전송 계층에 따라 다양한 병합 전송이 가능한데, 앞으로는 다중 경로 TCP(Multi-Path TCP, MPTCP)를 통한 병합 전송 위주로 설명한다.
도 2는 본 발명의 한 실시예에 따른 다중 경로 전송 시스템의 구성도이다.
도 2를 참고하면, 다중 경로 전송 시스템은 단말(100)과 네트워크 장치인 게이트웨이(200)를 포함한다. 단말(100)과 게이트웨이(200)는 MPTCP 기반으로 데이터를 송수신한다. 단말(100)은 게이트웨이(200)를 통해 서버(300)와 데이터를 송수신할 수 있고, 단말(100)은 게이트웨이(200)를 통하지 않고 서버(400)와 데이터를 송수신할 수 있다. 여기서, 서버(300. 400)는 단일 경로로 TCP 통신하는 일반적인 서버로 가정한다.
MPTCP를 지원하는 단말(100)은 MPTCP 관리부(110)와 MPTCP 처리부(130)를 포함하는 소프트웨어를 탑재하고, 복수의 물리적 통신 인터페이스(150, 160)를 포함한다. 예를 들면, 통신 인터페이스(150)는 LTE망에 접속하는 인터페이스이고, 통신 인터페이스(160)는 WiFi망에 접속하는 인터페이스일 수 있다.
MPTCP 관리부(110)는 사용자가 접근하여 MPTCP를 설정하거나 관리할 수 있는 어플리케이션이다. 또한, MPTCP 관리부(110)는 단말(100)에 적용되는 MPTCP 관련 다양한 설정 정보나 정책 정보를 관리할 수 있다. MPTCP 관리부(110)는 예를 들면, 기가 패스 매니저(GiGA path manager)라고 부를 수 있다.
MPTCP 처리부(130)는 단말(100)의 어플리케이션과 소켓(socket) 통신하고, 라우팅 테이블을 기초로 데이터를 전송한다. MPTCP 처리부(130)는 어플리케이션별 전송 정보를 기초로, 일부 어플리케이션은 MPTCP 전송하고, 일부 어플리케이션은 일반 TCP 전송할 수 있다.
게이트웨이(200)는 MPTCP 데이터와 TCP 데이터를 중계(relay)한다. 게이트웨이(200)는 단말(100)이 일반 TCP 서버와 통신할 때, MPTCP를 통해 데이터를 송수신할 수 있도록 지원(Transparent CP supported)하는 프록시 서버일 수 있다. 게이트웨이(200)는 다중망의 접점에 위치하고, 예를 들면, LTE망과 WiFi망의 접점에 위치할 수 있다. 게이트웨이(200)는 다중망 병합 게이트웨이(MultiNet Aggregation-Gateway, MA-GW)라고 부를 수 있다.
게이트웨이(200)는 MPTCP 중계부(210)를 포함하는 소프트웨어를 탑재하고, 복수의 물리적 통신 인터페이스(230, 240, 250)를 포함한다. 예를 들면, 통신 인터페이스(230)는 LTE망으로 데이터를 송수신하는 인터페이스이고, 통신 인터페이스(240)는 WiFi망으로 데이터를 송수신하는 인터페이스이며, 통신 인터페이스(250)는 서버(300)와 데이터를 송수신하는 인터페이스이다.
MPTCP는 하나 이상의 IP/인터페이스를 동시에 사용하여 데이터를 송수신하는 L4 기술이다. 따라서, 단말(100)의 어플리케이션은 일반 TCP를 통해 통신을 시도하지만, 실제로 단말(100)의 MPTCP 처리부(130)가 서브플로우 단위로 세션을 생성하여 적어도 하나의 통신 인터페이스로 데이터를 출력한다.
이와 같이, MPTCP와 같은 망 병합 전송은 물리적으로 분리된 LTE망과 WiFi망을 논리적으로 하나의 망처럼 병합하여 두 망을 동시에 사용할 수 있다. 특히, MPTCP는 한 서비스에 대해 생성된 세션을 복수의 서브플로우로 분할할 수 있고, 이를 통해 동적으로 접속망을 추가하거나 해제할 수 있다. 따라서, MPTCP는 병합 전송이 가능한 경우에는 두 망을 병합하여 전송 속도를 높이면서도, 어느 무선망의 상태가 열악해지는 경우에는 다른 무선망으로 트래픽을 전송함으로써 물리적 환경 변화에 관계없이 안정적인 서비스를 제공할 수 있다.
결과적으로, MPTCP 시스템은 통신 자원을 효율적으로 사용할 수 있고, 이를 통해 전송 속도를 높이며, 통신 구간 실패에 대한 유연한 대처가 가능하다. 특히, MPTCP 시스템에서 게이트웨이(200)가 MPTCP 데이터와 TCP 데이터를 중계하므로, MPTCP를 지원하지 않는 일반 TCP 서버가 존재하더라도 단말(100)은 MPTCP를 통해 일반 서버에 접속할 수 있다.
도 3은 본 발명의 한 실시예에 따른 트래픽 흐름을 예시적으로 나타내는 도면이고, 도 4부터 도 6은 본 발명의 한 실시에에 따른 MPTCP 관리부가 제공하는 사용자 설정 화면을 예시적으로 나타내는 도면이다.
도 3을 참고하면, 단말(100)은 복수의 통신 인터페이스(예를 들면, LTE망에 접속하는 인터페이스와 WiFi망에 접속하는 인터페이스)를 구비하고 이를 통해 MPTCP를 지원한다.
단말(100)은 어플리케이션별 설정을 기초로 각 어플리케이션의 전송 경로를 선택할 수 있다. 예를 들면, 단말(100)은 일부 어플리케이션(예를 들면, 메신저 어플리케이션)의 서버와 LTE망을 통해 TCP 통신하고, 일부 어플리케이션(예를 들면, 소셜 네트워크 서비스 어플리케이션)의 서버와 WiFi망을 통해 TCP 통신하며, 일부 어플리케이션(예를 들면, 동영상 서비스 어플리케이션)의 서버와는 게이트웨이(MA-GW)(200)를 통해 MPTCP 통신할 수 있다. 즉, 단말(100)은 일부 어플리케이션에 대해, LTE망과 WiFi망을 동시에 가용 가능한 전송망으로 설정할 수 있다.
게이트웨이(200)를 통해 MPTCP 통신하는 어플리케이션들의 목록은 다중 경로 어플리케이션 목록 또는 화이트리스트(whitelist)라고 부를 수 있고, 앞으로는 간단히 화이트리스트라고 부른다. 화이트리스트는 사용자 선택 또는 통신 사업자 정책에 의해 설정될 수 있다.
단말(100)과 게이트웨이(200)는 프록시 클라이언트와 프록시 서버로 동작한다. 단말(100)은 프록시 기술을 이용하여 화이트리스트의 어플리케이션에서 발생된 트래픽만을 게이트웨이(200)로 라우팅한다. 게이트웨이(200)는 화이트리스트를 포함하는 프록시 정책을 동적으로 관리하고, 단말(100)에 배포할 수 있다. 또는, 별도의 정책 배포 장치가 프록시 정책을 생성 및 배포할 수 있다.
도 4부터 도 6를 참고하면, 단말(100)은 사용자가 접근하여 통신 환경을 설정하고, 어플리케이션별 통신 경로를 설정할 수 있는 어플리케이션인 MPTCP 관리부를 탑재한다. 어플리케이션은 예를 들면, 기가 패스 매니저(GiGA path manager)라고 부를 수 있다.
먼저 도 4를 참고하면, MPTCP 관리부는 단말(100)에서 실행되고, 사용자가 접근하여 통신 환경을 설정할 수 있는 화면을 디스플레이에 표시한다. MPTCP 관리부는 WiFi 설정, 모바일 데이터 설정, 그리고 다중 경로(예를 들면, 기가 패스) 설정을 할 수 있는 화면을 표시한다. MPTCP 관리부는 단말(100)의 화면에 다중 경로 설정을 나타내는 이미지(10)를 표시할 수 있다.
이미지(10)가 선택되면, MPTCP 관리부는 도 5와 같이 다중 경로(기가패스) 어플리케이션을 설정할 수 있는 화면을 표시한다. MPTCP 관리부는 다중 경로 전송이 가능한 어플리케이션들(21, 22, 23, 24, 25)을 표시한다. MPTCP 관리부는 어플리케이션을 추가할 수 있는 이미지(30)를 표시할 수 있다. 기본 어플리케이션은 도 3을 참고하면, LTE망이나 WiFi망 중 어느 하나를 이용하여 통신하는 어플리케이션이다.
이미지(30)가 선택되면, MPTCP 관리부는 도 6과 같이 화이트리스트에 포함된 어플리케이션들을 표시한다. 사용자는 새로운 어플리케이션을 화이트리스트에 추가할 수 있고, 화이트리스트에 포함된 어플리케이션을 화이트리스트에서 제외할 수 있다.
다시 도 3을 참고하면, 단말(100)은 화이트리스트에 포함된 어플리케이션의 트래픽만 게이트웨이(200)를 통과하도록 하고, 화이트리스트에 포함되지 않은 어플리케이션이 실행되면 해당 어플리케이션의 설정에 따라 LTE망/WiFi망을 통해 트래픽을 송수신한다.
단말(100)은 어플리케이션 식별자[예를 들면, UID(user identification)]를 기초로 화이트리스트에 포함된 어플리케이션의 트래픽인지 구분할 수 있다.
한편, 화이트리스트는 MPTCP 관리부와 같은 어플리케이션을 통해 사용자가 선택할 수 있고, 또는 통신 사업자 정책에 의해 설정될 수 있다. 단말(100)은 네트워크 장치, 예를 들면 게이트웨이(200)로부터 화이트리스트 정책을 수신하고, 수신한 화이트리스트 정책을 기초로 어플리케이션별 전송 경로를 결정할 수 있다. 당연히, 단말(100)은 별도의 네트워크 서버로부터 화이트리스트 정책을 수신할 수 있다.
단말(100)과 게이트웨이(200)는 푸쉬/풀 방식 또는 별도 정의된 시그널링 등을 통해 화이트리스트 정책을 동기화할 수 있다.
도 7은 본 발명의 한 실시예에 따라 WiFi로 세션을 시작한 경우의 다중 경로 전송 방법을 설명하는 흐름도이다.
도 7을 참고하면, 단말(100)이 WiFi망에 접속한다(S110). 그러면, 우선 접속 경로(Primary path)가 WiFi로 설정된다. 이렇게 사용자가 WiFi로 세션을 시작한 경우, WiFi 선호(WiFi preferred) 상태라고 할 수 있다.
단말(100)이 화이트리스트에 포함되지 않은 서비스/어플리케이션(Non-whitelist Service)을 실행하면, 단말(100)은 WiFi망을 통해 서버(400)에 연결된다(S120). 화이트리스트 비포함 서비스의 트래픽은 게이트웨이(200)를 통과하지 않는다. 여기서, 서버(400)는 화이트리스트 비포함 서비스/어플리케이션에 관련된 서버이다.
단말(100)이 화이트리스트에 포함된 서비스/어플리케이션(whitelist Service)을 실행하면, 단말(100)은 게이트웨이(200)를 통과하는 WiFi 경로로 서버(300)와의 세션을 시작한다(S130). 즉, 단말(100)이 WiFi망에서 화이트리스트 포함 서비스/어플리케이션의 세션을 시작하면, 단말(100)과 게이트웨이(200)는 WiFi 경로로 연결되어, 화이트리스트에 포함된 트래픽은 게이트웨이(200)를 통과한다.
다중 경로 전송을 위해, 단말(100)은 LTE 인터페이스를 활성화한다(S140). 단말(100)에서 LTE/WiFi Dual On/off가 설정될 수 있고, LTE/WiFi Dual On이 되면 단말(100)은 LTE망과 WiFi망에 동시 접속할 수 있다.
단말(100)은 게이트웨이(200)와 연결되는 LTE 경로를 추가한다(S150). 이때, 우선 접속 경로는 여전히 WiFi 경로이고, 보조 접속 경로(secondary path)는 추가된 LTE 경로이다. 단말(100)과 게이트웨이(200)는 LTE 경로로 서브플로우 세션을 유지하지만, 화이트리스트에 포함된 서비스의 트래픽(화이트리스트 트래픽)은 주로 WiFi 경로로 송수신할 수 있다. 즉, 단말이 WiFi로 세션을 시작한 WiFi 선호 상태인 경우, 게이트웨이(200)는 LTE 경로가 추가되더라도 LTE 데이터 사용을 최소화하도록 제어할 수 있다.
어느 시점에 WiFi 경로로 데이터를 송수신하기 어려운 경우, 단말(100)은 우선 접속 경로를 LTE 경로로 전환한다(S160). 예를 들면, WiFi 경로의 품질이 낮아지거나 단말(100)이 WiFi 지역을 벗어나는 경우, 단말(100)에서 LTE/WiFi Dual off가 설정된다. 그러면, 단말(100)은 보조 접속 경로로 설정된 LTE 경로를 우선 접속 경로로 전환하여 끊김없는 서비스(seamless)를 지원한다. 이때, 단말(100)은 WiFi 경로를 삭제하여 WiFi 접속을 해제하지만, WiFi 인터페이스를 활성화 상태로 유지할 수 있다.
이와 같이, 게이트웨이(200)를 통과하는 트래픽은 다중 경로(MPTCP)로 단말(100)에 전송될 수 있는 상태이므로, 단말(100)의 접속망이 변경되어 어느 하나의 경로가 삭제되더라도, 데이터는 끊김없이 단말(100)로 전송될 수 있다. 반면, 단말(100)이 게이트웨이(200)를 경유하지 않고 WiFi망을 통해 서버(400)에 연결된 후, WiFi 지역을 벗어나면, 연결된 세션은 끊어지고, LTE망을 통해 새로운 세션이 연결되어야 한다.
도 8은 본 발명의 한 실시예에 따라 LTE로 세션을 시작한 경우의 다중 경로 전송 방법을 설명하는 흐름도이다.
도 8을 참고하면, 단말(100)이 LTE망에 접속한다(S210). 그러면, 우선 접속 경로가 LTE로 설정된다. 이렇게 LTE로 세션을 시작한 상태를 병합 전송(LTE-WiFi Aggregation MPTCP) 상태라고 할 수 있다.
단말(100)이 화이트리스트에 포함된 서비스/어플리케이션을 실행하면, 단말(100)은 게이트웨이(200)를 통과하는 LTE 경로로 서버(300)와의 세션을 시작한다(S220). 단말(100)과 게이트웨이(200)는 LTE 경로로 연결된다. 화이트리스트 비포함 서비스/어플리케이션이 실행되면, 단말(100)과 서버(400)는 LTE망을 통해 연결되지만, 트래픽은 게이트웨이(200)를 경유하지 않는다.
단말(100)이 WiFi 지역으로 이동하면, 단말(100)은 접속가능한 WiFi AP를 탐색한다(S230). 단말(100)은 WiFi AP의 품질을 체크하고 설정에 따라 WiFi망으로의 접속을 시도한다. 이때, 단말(100)은 WiFi 통신 모듈을 자동으로 온(on)시켜 주변을 탐색할 수 있다.
단말(100)은 다중 경로 전송을 위해, WiFi 인터페이스를 활성화한다(S240). 단말(100)에서 LTE/WiFi Dual On이 설정되면, 단말(100)은 LTE망과 WiFi망에 동시 접속할 수 있다. 이때, WiFi 경로가 우선 접속 경로로 설정되고, LTE 경로는 보조 접속 경로로 변경된다. 한편, 설정에 따라 우선 접속 경로를 여전히 LTE 경로로 유지할 수 있다.
단말(100)은 게이트웨이(200)와 연결되는 WiFi 경로를 추가한다(S250). 단말(100)은 이미 연결된 LTE 경로와 추가된 WiFi 경로를 병합하여 병합 전송한다. 따라서, 화이트리스트에 포함된 어플리케이션은 LTE 경로와 WiFi 경로 각각의 서브플로우를 통해 데이터를 송수신할 수 있다. 만약, 기존에 게이트웨이(200)를 경유하지 않고 LTE망을 통해 연결된 세션이 있다면, 이 세션은 끊어지고, WiFi 경로로 새로운 세션을 시작한다(seamless 미지원). 이때, 화이트리스트 비포함 서비스/어플리케이션은 WiFi망에서 세션을 시작하지만, 트래픽은 게이트웨이(200)를 경유하지 않는다.
어느 시점에 WiFi 경로로 데이터를 송수신하기 어려운 경우, 단말(100)은 우선 접속 경로를 LTE 경로로 전환한다(S260). 예를 들면, WiFi 경로의 품질이 낮아지거나 단말(100)이 WiFi 지역을 벗어나는 경우, 단말(100)에서 LTE/WiFi Dual off가 설정된다. 단말(100)은 LTE 경로와 WiFi 경로를 동시에 이용하다가, 우선 접속 경로를 LTE 경로로 전환함으로써, 끊김없는 서비스(seamless)를 지원한다. 이때, 단말(100)은 WiFi 경로를 삭제하여 WiFi 접속을 해제하지만, WiFi 인터페이스를 활성화 상태로 유지할 수 있다. 단말(100)은 WiFi 통신 모듈을 자동으로 오프(off)시킬 수 있다.
도 9와 도 10 각각은 본 발명의 한 실시예에 따른 단말별 트래픽 제어를 도식적으로 설명하는 도면이다.
도 9를 참고하면, 병합 전송은 전송 속도를 높일 수 있고, 끊김없는 안정적인 서비스를 제공하는 장점이 있다. 하지만, 사용자는 데이터 사용량에 따라 요금을 지불하는데, 화이트리스트에 포함된 서비스/어플리케이션에 대해서 항상 병합 전송을 하면 데이터 사용량이 늘어날 수 있다.
따라서, 게이트웨이(200)는 사용자의 요금제 정보나 사용자 접속 정보를 기초로 단말의 등급을 구분하고, 등급을 기초로 단말별로 요금에 관계된 데이터 사용량, 즉 LTE 데이터 사용량을 조절한다. 등급은 복수 등급으로 나눌 수 있으나, 간단히 골드 등급과 실버 등급으로 설명한다. 게이트웨이(200)는 골드 등급 단말에 MPTCP를 적용하는 경우, LTE망과 WiFi망을 동시에 사용하여 트래픽을 전송한다. 게이트웨이(200)는 실버 등급 단말에 MPTCP를 적용하는 경우, LTE망으로 전송되는 트래픽을 일정 수준이하로 줄인다(LTE throttling).
게이트웨이(200)는 단말(100)의 요금제 정보를 기초로 단말(100)의 등급을 구분할 수 있다. 예를 들어, 단말(100)이 LTE 데이터 무제한 가입자인 경우, 게이트웨이(200)는 단말(100)을 골드 등급으로 판단한다. 단말(100)이 사용 가능한 LTE 데이터량이 정해진 가입자인 경우, 게이트웨이(200)는 단말(100)을 실버 등급으로 판단한다. 또는, 사용 가능한 LTE 데이터량이 정해진 가입자이더라도, 게이트웨이(200)는 남아있는 LTE 데이터량을 기초로 단말(100)의 등급을 가변적으로 판단할 수 있다.
게이트웨이(200)는 단말(100)의 최초 접속망을 기초로 단말(100)의 등급을 구분할 수 있다.
단말(100)이 LTE망에서 어플리케이션을 실행한 경우(LTE-WiFi 병합 상태), 게이트웨이(200)는 단말(100)을 골드 등급으로 판단하고, LTE망과 WiFi망을 동시에 사용하여 트래픽을 전송한다. 즉, 게이트웨이(200)는 사용자가 LTE 데이터 사용을 동의한 경우로 가정하고, 필요 시 LTE-WiFi 병합을 통한 속도 증대 서비스를 제공한다. 단말(100)은 LTE망과 WiFi망의 통신 인터페이스를 모두 온(Dual on)시키고, LTE망과 WiFi망을 동시에 사용한다. 따라서, LTE-WiFi 병합 상태에서, 동영상/파일전송 서비스를 이용하는 경우, 영상 품질을 보장하고 파일 전송 속도를 높일 수 있다.
단말(100)이 WiFi망에서 어플리케이션을 실행한 경우(WiFi 선호 상태), 게이트웨이(200)는 단말(100)을 실버 등급으로 판단하고, LTE망으로 전송되는 트래픽을 일정 수준 이하로 줄일 수 있다. 즉, 게이트웨이(200)는 사용자가 의도적으로 WiFi에 접속한 경우이므로, LTE 데이터 사용을 최소화하겠다는 의도로 판단한다. 단말(100)은 LTE망과 WiFi망의 통신 인터페이스를 모두 온(Dual on)시키고, 단말(100)과 게이트웨이(200) 사이에서 LTE망을 통한 TCP 서브플로우 세션은 유지하되, LTE 경로로는 데이터 송수신을 하지 않거나, 일정 수준 이하의 트래픽만 송수신할 수 있다. 이를 통해, 단말(100)은 WiFi망에서 최대한 많은 트래픽을 처리할 수 있다. 그리고, LTE망을 통한 서브플로우 세션으로 데이터를 전송하지 않더라도 단말(100)은 LTE 통신 인터페이스를 활성화 상태로 유지하고 있으므로, WiFi 품질 열화 시 LTE망으로 트래픽 경로를 전환하여 Fully seamless mobility를 지원할 수 있다. 따라서, WiFi 선호 상태에서, 동영상/파일전송 서비스를 이용하는 경우, 끊김없는 영상 재생 및 파일 전송이 가능하다.
게이트웨이(200)는 MPTCP에서 단말(100)이 최초 TCP SYN이 올라와서 맺은 TCP 세션의 정보를 기초로 단말쪽 IP가 LTE망인지 WiFi망인지 즉, 접속망을 알 수 있다. 게이트웨이(200)는 접속망 정보를 기초로 단말을 골드 등급과 실버 등급으로 구분할 수 있다. 즉, 게이트웨이(200)는 단말쪽 IP가 LTE망의 IP인 경우, 단말(100)이 LTE망으로 최초 접속한 것으로 판단하고, 골드 등급으로 설정한다. 게이트웨이(200)는 단말쪽 IP가 WiFi망의 IP인 경우, 단말(100)이 WiFi망으로 최초 접속한 것으로 판단하고, 실버 등급으로 설정한다.
도 10을 참고하면, 단말(100)이 WiFi망에서 어플리케이션을 실행한 경우(WiFi 선호 상태), 단말(100) 또는 게이트웨이(200)는 WiFi 경로를 통한 데이터 전송 시 재전송 탐지 알고리즘을 통해 WiFi 경로의 상태를 모니터링한다. 그리고, 게이트웨이(200)는 WiFi 경로의 상태를 기초로 LTE 경로를 통한 트래픽 처리를 제한(LTE throttling)/제한 해제한다.
예를 들어, WiFi 선호 상태에서, WiFi 경로의 품질이 양호한 경우, 게이트웨이(200)는 LTE 경로를 통한 트래픽 처리를 제한한다. 만약, 어느 시점에, WiFi 경로의 품질이 떨어지는 경우, 게이트웨이(200)는 LTE 경로를 통한 트래픽 처리를 일시적으로 허용한다. 다시 WiFi 경로의 품질이 양호한 상태로 회복되는 경우, 게이트웨이(200)는 LTE 경로를 통한 트래픽 처리를 제한한다.
도 11은 본 발명의 한 실시예에 따른 단말의 구성도이다.
도 11을 참고하면, 단말(100)은 복수의 통신 모듈을 포함하는 하드웨어, 복수의 어플리케이션, 그리고 하드웨어와 어플리케이션 사이에서 하드웨어를 제어하여 어플리케이션을 처리하는 운영 체제 스택으로 구성되어 있다.
운영 체제 스택은 하드웨어와 어플리케이션 사이의 인터페이스 역할을 하며, 기능에 따라 구분된 복수의 소프트웨어 스택으로 구성될 수 있다. 예를 들면, 단말(100)은 리눅스 커널(Linux Kernel)과 안드로이드 프레임워크(Android Framework)를 탑재할 수 있으나, 이는 단말 제조사에 의해 다양하게 구현될 수 있다.
MPTCP를 지원하는 단말(100)은 MPTCP 관리부(110), MPTCP 처리부(130), 그리고 사용자-커널 인터페이스부(140)를 탑재한다.
MPTCP 관리부(110)는 어플리케이션 계층에 탑재되는 어플리케이션으로서, 기가 패스 매니저라고 부를 수 있다. MPTCP 관리부(110)는 단말(100)에 적용되는 MPTCP 관련 다양한 설정 정보나 정책 정보를 관리할 수 있다. MPTCP 관리부(110)는 사용자가 접근하여 MPTCP를 설정하거나 관리할 수 있는 사용자 UI를 제공할 수 있다.
MPTCP 관리부(110)는 MPTCP 사용 여부 제어 기능, 화이트리스트 관리 기능, 특정 AP 접속 여부 확인 기능, MPTCP 지원 AP 선택 기능, 그리고 WiFi on/off 제어 기능을 구현할 수 있다.
MPTCP 관리부(110)는 MPTCP 사용 여부 제어 기능을 통해, 사용자 선택에 의해 MPTCP 사용 여부를 결정할 수 있고, 서비스별/어플리케이션별로 MPTCP 사용 여부를 결정할 수 있다. 즉, 사용자는 도 4부터 도 6을 참고로 설명한 바와 같이, 다중 경로 설정을 나타내는 이미지(10)를 선택하여 MPTCP 사용을 선택할 수 있고, 다중 경로 어플리케이션을 설정하는 화면에서 어플리케이션을 화이트리스트에 추가하거나 제외할 수 있다. MPTCP 관리부(110)는 LTE/WiFi Dual On/off를 제어할 수 있다. MPTCP 사용 여부 제어부는 MPTCP 모드[풀메쉬(fullmesh)], TCP 모드[기본(default)]에 따라 LTE/WiFi Dual On/off를 제어할 수 있다. MPTCP 모드와 TCP 모드는 예를 들면 표 1과 같이 설정될 수 있다.
지원모드 MPTCP 모드 TCP 모드
특징 인터페이스별 복수 세션 생성(subflow) 통신 인터페이스당 단일 세션 생성(TCP) 통신
설정 -LTE/WiFi Dual On(MPTCP enabled)
-WiFi미접속시
우선접속경로=LTE
-WiFi접속시
우선접속경로=WiFi/보조접속경로=LTE
-LTE/WiFi Dual off(MPTCP disabled)
- WiFi 미접속시
접속경로=LTE
- WiFi 접속시
접속경로=WiFi
MPTCP 관리부(110)는 화이트리스트 관리 기능을 통해, 화이트리스트 정보(MPTCP 대상 서비스/어플리케이션 목록)를 관리한다. MPTCP 관리부(110)는 화이트리스트 정보를 포함하는 MPTCP 정책을 게이트웨이(200) 또는 통신 사업자 정책 서버(미도시)와 동기화함으로써, 통신 사업자 정책을 기반으로 MPTCP 적용 대상 서비스/어플리케이션을 관리할 수 있다. 게이트웨이(200) 또는 통신 사업자 정책 서버와 동기화하는 화이트리스트 정보는 HTTP 기반 xml 또는 json 형식일 수 있다.
MPTCP 관리부(110)는 SSID/BSSID 등의 식별 정보를 기초로 특정 AP 접속 여부를 확인할 수 있다. MPTCP 관리부(110)는 MPTCP 지원 AP를 선택할 수 있다. MPTCP 관리부(110)는 우선접속 AP 대상으로 MPTCP 기능을 활성화/비활성화할 수 있다. 우선접속 AP는 통신사업자 AP(예를 들면, ollehWiFi), 개인/회사 AP(사용자 선호 등록), SSID, BSSID 기준으로 적용될 수 있다.
MPTCP 관리부(110)는 LTE 망/WiFi망의 우선 사용 카테고리화 기능을 제공한다. 예를 들어, 어떤 응용/그룹/카테고리 서비스는 LTE 망을 우선적으로 사용하게 하고, 또다른 응용/그룹/카테고리 서비스는 WiFi 망을 우선적으로, 혹은 LTE/WiFi 망을 동시에 사용하게 하는 기능을 의미함. (우선 접속 경로 결정)
MPTCP 관리부(110)는 WiFi on/off 제어 기능을 제공한다. WiFi on/off는 사용자 결정, WiFi 연결 매니저(Connection Manager, CM) 결정, 또는 MPTCP에서의 WiFi 사용 여부에 따른 자동 결정에 의해 제어될 수 있다.
MPTCP 처리부(130)는 어플리케이션과 소켓 통신하고, 라우팅 테이블을 기초로 데이터를 전송한다. MPTCP 처리부(130)는 일부 어플리케이션은 MPTCP 전송하고, 일부 어플리케이션은 일반 TCP 전송할 수 있다. MPTCP 처리부(130)는 MPTCP 프로토콜 패밀리(Protocol Family)를 포함하고, 운영 체제, 예를 들면 리눅스 커널 내에 탑재된다. MPTCP 처리부(130)는 TCP/IP 프로토콜 패밀리를 변경한 MPTCP/IP 프로토콜 패밀리를 탑재할 수 있다. MPTCP 프로토콜 패밀리는 안드로이드 플랫폼(android platform)용 MPTCP 오픈 소스를 이용하여 리눅스 커널에 구현될 수 있다.
MPTCP 처리부(130)는 리눅스 커널에 MPTCP 지원을 위한 포트를 제공하고, 기존 TCP와 호환성을 유지한다. MPTCP 처리부(130)는 단말 리눅스 커널 버전에 MPTCP 코드를 적용하고, 커널 설정(config)을 변경하여 MPTCP에 특화된 혼잡제어 알고리즘, TCP 혼잡제어 알고리즘, 그리고 MPTCP 경로 관리(path manager) 알고리즘을 탑재할 수 있다.
사용자-커널 인터페이스부(140)는 시스템 권한 설정 및 명령(command) 설정 등 사용자와 커널 사이의 제어를 위한 각종 인터페이스(API)를 제공한다. 특히, 사용자-커널 인터페이스부(140)는 MPTCP 관리부(110)에서 커널 영역에 구현된 각종 기능 모듈의 정보/파라미터를 획득/설정/변경할 수 있는 인터페이스를 제공한다. 각종 기능 모듈의 정보/파라미터는 프로세스 처리 정보, 라우팅 정보, 커널 파라미터 등일 수 있다.
사용자-커널 인터페이스부(140)는 WiFi 연결 관리자(connection manager, CM)를 포함할 수 있고, MPTCP 관리부(110)에서 WiFi 연결 관리자를 통해 WiFi on/off를 제어할 수 있는 인터페이스를 제공한다.
사용자-커널 인터페이스부(140)는 MPTCP 처리부(130)의 제어 인터페이스를 포함할 수 있고, 구체적으로 MPTCP/IP 프로토콜 패밀리의 파라미터 제어 기능을 제공한다. 사용자-커널 인터페이스부(140)는 TCP 시스템 파라미터 변경/추가(tx/rx memory 할당 등), MPTCP 시스템 파라미터 변경/추가(MPTCP 활성/비활성화, 동작 모드, syn_retry_limit 등) 등을 할 수 있다. 사용자-커널 인터페이스부(140)는 TCP/MPTCP 파라미터 정보를 추가할 수 있고, 예를 들면 TCP 옵션(option) 안에 원천 데이터(original data)의 목적지 주소/포트 정보를 추가할 수 있다.
사용자-커널 인터페이스부(140)는 라우팅 정보를 관리할 수 있고, MPTCP 관리부(110)에서 MPTCP/TCP에 따른 라우팅 경로를 제어할 수 있는 인터페이스를 제공한다. 사용자-커널 인터페이스부(140)는 어플리케이션별 프록시 서버 사용/미사용 여부를 판단하는 기능, 라우팅 테이블 관리 기능(경로, 규칙 등), MPTCP/IP 프로토콜 패밀리의 파라미터 제어 기능 등을 제공한다. 사용자-커널 인터페이스부(140)는 어플리케이션 식별 정보(예를 들면, UID)를 기초로 어플리케이션마다 프록시 서버를 사용할 것인지 판단한다. 사용자-커널 인터페이스부(140)는 화이트리스트에 포함된 어플리케이션은 프록시 서버를 경유하도록 결정하고, 라우팅 테이블을 참조하여 데이터를 전송한다.
사용자-커널 인터페이스부(140)는 화이트리스트에 포함된 어플리케이션을 분류하고, 예외 처리 설정 기능을 제공한다. 사용자-커널 인터페이스부(140)는 UID(Android App ID)와 PID(Process ID) 등의 조합으로 일반 라우팅 처리하고, 화이트리스트에 포함된 어플리케이션이 발생하는 트래픽에 대하여 게이트웨이(200)로 라우팅한다. 사용자-커널 인터페이스부(140)는 서비스 시나리오 별 조건부 라우팅 테이블을 관리(경로 및 규칙 추가/수정/삭제 등)할 수 있다.
도 12와 도 13 각각은 본 발명의 한 실시예에 따른 다중 경로 전송 단말의 WiFi 제어 방법을 설명하는 흐름도이다.
도 12를 참고하면, MPTCP를 지원하는 단말(100)은 복수의 통신 인터페이스를 이용해 다중 경로 전송을 한다. 따라서, 단말(100)이 MPTCP 모드로 설정되면, 트래픽이 발생하지 않을 때도 항상 WiFi 인터페이스가 활성화(enable)되어 있다. 결국, WiFi 인터페이스 활성화로 인해, 단말의 배터리가 불필요하게 소모되는 문제가 있다.
이러한 문제를 해결하기 위해 단말(100)은 WiFi 온오프 관리자(WiFi on/off manager)를 탑재한다. WiFi 온오프 관리자는 MPTCP 트래픽을 모니터링하고, MPTCP 트래픽이 존재하면 WiFi를 활성화하고, MPTCP 트래픽이 존재하지 않으면 WiFi를 비활성화한다. 즉, WiFi 온오프 관리자는 MPTCP 적용 단말에서 필요한 경우에만 WiFi를 제어(WiFi auto on/off 제어)하여 배터리 소모를 줄인다. WiFi 온오프 관리자는 MPTCP 트래픽을 모니터링하고, WiFi 모듈을 제어할 수 있는 영역에 탑재된다. 예를 들면, WiFi 온오프 관리자는 MPTCP 관리부(110)/사용자-커널 인터페이스부(140)의 적어도 일부에 포함되거나, 안드로이드 프레임워크/리눅스 커널의 일부 영역에 별도로 탑재될 수 있고, 어플리케이션으로 개발될 수 있다.
WiFi 온오프 관리자가 구동된다(S310). 접속경로가 LTE인 경우, WiFi 온오프 관리자가 구동될 수 있다.
WiFi 온오프 관리자는 MPTCP 서브플로우를 모니터링한다(S320). WiFi 온오프 관리자는 주기적으로 MPTCP 서브플로우를 검사하는 스레드(thread)와 WiFi 인터페이스에 관한 이벤트를 받는 스레드를 단말의 백그라운드에서 동작시킬 수 있다.
WiFi 온오프 관리자는 MPTCP 서브플로우가 생성되면 WiFi 인터페이스를 활성화한다(S330). 단말(100)에서 화이트리스트에 포함된 어플리케이션이 동작하면, 서브플로우가 생성된다.
WiFi 온오프 관리자는 MPTCP 서브플로우가 소멸되면 WiFi 인터페이스를 비활성화한다(S340). 단말(100)에서 화이트리스트에 포함된 어플리케이션이 종료되면, 서브플로우가 소멸된다.
WiFi 온오프 관리자를 구동하는 프로그램은 종료될 수 있고, WiFi 온오프 관리자가 종료되면 WiFi auto on/off 제어가 중단된다. 만약, WiFi 온오프 관리자가 구동중인 상태에서, 사용자가 WiFi를 활성화/비활성화하면 WiFi 온오프 관리자는 WiFi auto on/off 제어를 중단한다.
도 13을 참고하면, WiFi 온오프 관리자가 구동된다(S410). WiFi 온오프 관리자가 구동되면, WiFi 온오프 관리부가 동작한다. 그리고, WiFi 이벤트가 발생하면 WiFi 이벤트 관리부가 동작한다. 여기서, WiFi 온오프 관리부는 WiFi on/off를 수행하는 스레드이고, WiFi 이벤트 관리부는 WiFi 이벤트를 관리하는 스레드(WiFi broadcast receiver)이다. 이때, WiFi 이벤트 관리부는 WiFi 온오프 관리부뿐만 아니라, 사용자로부터 WiFi 이벤트 발생 정보를 수신한다. WiFi 온오프 관리부와 WiFi 이벤트 관리부는 단말의 백그라운드에서 동작한다.
WiFi 온오프 관리부는 MPTCP 서브플로우 생성을 모니터링한다(S420). WiFi 온오프 관리부는 주기적으로 MPTCP 서브플로우가 생성되는지 검사할 수 있다.
WiFi 온오프 관리부는 MPTCP 서브플로우가 생성되면 플래그를 온(WiFi_MANAGER_FLAG=on)으로 설정한다(S430). 디폴트 상태의 플래그는 오프(WiFi_MANAGER_FLAG=off)로 설정된다. 여기서, 플래그(WiFi_MANAGER_FLAG)는 WiFi 인터페이스가 켜지거나 꺼지는 이벤트가 WiFi 온오프 관리부에 의한 것임을 나타내는 정보이다.
WiFi 온오프 관리부는 WiFi를 켠다(S432). WiFi 온오프 관리부는 WiFi에서 이벤트가 발생했음을 WiFi 이벤트 관리부에 알린다. WiFi 이벤트 관리부로 온으로 설정된 플래그가 전달된다.
WiFi 온오프 관리부는 MPTCP 서브플로우 소멸을 모니터링한다(S440). WiFi 온오프 관리부는 주기적으로 MPTCP 서브플로우가 소멸되는지 검사할 수 있다.
WiFi 온오프 관리부는 MPTCP 서브플로우가 소멸되면 플래그를 온(WiFi_MANAGER_FLAG=on)으로 설정한다(S450).
WiFi 온오프 관리부는 WiFi를 끈다(S452). WiFi 온오프 관리부는 WiFi에서 이벤트가 발생했음을 WiFi 이벤트 관리부에 알린다. WiFi 이벤트 관리부로 온으로 설정된 플래그가 전달된다.
WiFi에서 이벤트가 발생하면 WiFi 이벤트 관리부는 동작하고, WiFi 이벤트 관리부는 플래그(WiFi_MANAGER_FLAG)를 기초로 이벤트를 발생시킨 주체가 WiFi 온오프 관리부인지 사용자인지 판단한다(S460).
플래그가 온(WiFi_MANAGER_FLAG=on)이면, WiFi 이벤트 관리부는 플래그를 초기화(WiFi_MANAGER_FLAG=off)한다(S470). 즉, WiFi 이벤트 관리부는 어플리케이션인 WiFi 온오프 관리자에 의해 WiFi 이벤트가 발생한 것이라고 판단하고, 플래그를 오프로 설정한다.
플래그가 오프(WiFi_MANAGER_FLAG=off)이면, WiFi 이벤트 관리부는 WiFi 온오프 관리부의 동작을 중지시킨다(S480). 즉, WiFi 이벤트 관리부는 사용자에 의해 WiFi 이벤트가 발생한 것이라고 판단한다. 이 경우, 사용자가 WiFi를 온오프한 것이므로, MPTCP 서브플로우의 생성 여부에 관계없이 WiFi 온오프가 제어되어야 하기 때문에, WiFi 자동 온오프 기능이 중단되어야 한다.
이와 같이, WiFi 온오프 관리자는 단말(100)에 탑재돼서, MPTCP 서브플로우가 생성/소멸되는 시점에 WiFi 인터페이스를 활성화/비활성화하기 때문에 단말의 배터리 소모를 줄이는 효과가 있다.
도 14는 종래의 소켓 통신 방법을 설명하는 도면이고, 도 15부터 도 17은 본 발명의 한 실시예에 따른 소켓 통신 방법을 설명하는 도면이다.
도 14를 참고하면, 다중 통신 인터페이스WiFi를 지원하는 단말에서 소켓 통신을 끊김없이 제공하기 위한 방법으로, 가상 주소를 통한 터널링 방식, 모바일 아이피, 핸드오버 등의 기술이 존재한다. 그러나, 단말의 리소스 한계(네트워크 인터페이스에 따른 한정된 베터리 제공 상태 등)로 인하여 현재의 모바일 단말은 한 시점에 하나의 인터페이스를 통한 통신 연결만이 가능하도록 설정된다. 특히, 단말 제조사나 단말 운영 체제 제공자는 한 시점에 더 높은 우선순위를 가지는 통신 인터페이스, 예를 들면, WiFi 인터페이스를 우선 연결망으로 설정해 두고, WiFi망 접속이 불가능하면 다른 망으로 핸드오버하는 기술을 제공한다.
즉, 단말에서 어플리케이션이 실행되면, 어플리케이션은 네트워크 스택과 소켓을 생성하고, 소켓을 통해 트래픽을 송수신한다. 이때, 어플리케이션과 네트워크 스택은 지정된 통신 인터페이스2(예를 들면, WiFi)로 소켓을 생성하고, 네트워크 스택은 통신 인터페이스2에 연결되어 트래픽을 처리한다.
이와 같이, 시스템 전역 라우팅 테이블에 통신 인터페이스2가 상위 인터페이스(상위 인터페이스=2)로 고정되어 있으면, 어플리케이션은 우선 순위가 높은 통신 인터페이스인 WiFi 기반으로 생성된 소켓을 이용한다. 따라서, 단말이 이동하여 통신 인터페이스2WiFi 접속이 어려워지면, 통신 인터페이스2를 통해 생성된 세션은 더 이상 사용할 수 없어, 어플리케이션이 일시적으로 중지된다. 결국, 어느 하나의 통신 인터페이스를 통해 생성된 소켓은 해당 통신 인터페이스를 이용할 수 없는 경우, 다른 통신 인터페이스로 끊김없이 변경되지 못하는 한계가 있다.
즉, 지금까지는 어플리케이션이 연결 요청하는 통신 소켓이 무조건 시스템 전역 라우팅 테이블에 의해 결정된다. 따라서, 종래의 소켓 통신 방법은 어플리케이션의 통신 소켓 요청 시점에 시스템 전역으로 상위 라우팅으로 설정된 인터페이스를 기초로 소켓이 바인딩된다. 이후 단대단 통신 구간의 일부가 악화(예를 들어, WiFi 통신 오류 등)되어, 더 이상 통신이 불가능한 상황이 발생하면 해당 소켓 통신의 단절을 시스템 레벨에서 통지하게 되어 사용중인 어플리케이션은 통신 단절 메시지 혹은 비정상 종료 등의 정보를 사용자에게 알린다. 그리고 어플리케이션 서비스를 사용할 수 없는 상태에 다다른다. 이는 정상적인 유닉스/리눅스 기반의 통신 구조에서 발생하는 문제이다.
도 15부터 도 17을 참고하여, 다중 통신 인터페이스를 구비한 단말이 한 시점에 하나의 통신망을 사용하여 데이터 통신을 하는 구조에서, 사용 중인 통신 인터페이스를 통해 통신이 불가능한 상태로 변경되는 경우, 어플리케이션에서 생성한 통신 세션을 끊김없이 연속적으로 사용하는 방법에 대해 구체적으로 설명한다. 여기서, 통신 세션이란 TCP와 같은 연결 지향 서비스(connection oriented service)에 해당하는 네트워크 스택의 소켓 통신 구조를 주로 다루지만, 유사한 전송계층 프로토콜에 확대 적용할 수 있는 것은 당연하다.
소켓 연동 관리자(500)는 단말(100)의 어플리케이션이 바라보는 소켓(어플리케이션 소켓)과 단말(100)의 네트워크 스택이 바라보는 소켓(시스템 소켓)을 분리시킨다. 소켓 연동 관리자(500)는 어플리케이션이 바라보는 소켓의 통신 인터페이스는 특정 통신 인터페이스(예를 들면, LTE)에 고정해 두고, 시스템 전역으로 설정된 라우팅 테이블에 의거하여 설정된 통신 인터페이스로 실제 접속망에 연결한다. 즉, 소켓 연동 관리자(500)는 LTE 등과 같이 always-on 상태로 언제 어디서든지 가능한 통신 인터페이스를 어플리케이션에 바인딩되는 소켓의 통신 인터페이스로 고정함으로써, 항상 IP 주소를 확립시켜놓고 글로벌 모빌리티(global mobility)를 지원한다.
소켓 연동 관리자(500)는 어플리케이션 소켓 통신부(510), 라우팅 정보 확인부(530), 그리고 인터페이스 연결부(550)를 포함한다. 소켓 연동 관리자(500)는 소프트웨어로서, MPTCP 관리부(110)/사용자-커널 인터페이스부(140)에 포함되거나, 안드로이드 프레임워크/리눅스 커널의 일부 영역에 별도로 탑재될 수 있고, 어플리케이션으로 개발될 수 있다. 여기서, 소켓 연동 관리자(500)는 MPTCP 관리부(110)에 포함되어 동작하는 것으로 설명하나, 소켓 연동 관리자의 단말 탑재 영역은 필요에 따라 변경될 수 있는 것은 당연하다.
어플리케이션 소켓 통신부(510)는 어플리케이션의 프로그래밍 코드에 의해 생성된 소켓으로 어플리케이션과 연결된다. 소켓은 일반적인 소켓 API(Application Programming Interface)에 의해 생성될 수 있다. 어플리케이션 소켓 통신부(510)는 시스템 전역으로 설정된 라우팅 테이블을 기반으로 소켓을 생성하는 것이 아니라, 다중 인터페이스 중 지정된 통신 인터페이스를 원천 주소(source address)로 사용하여 소켓을 생성한다. 예를 들면, 어플리케이션이 요청한 세션은 LTE 인터페이스에 할당된 원천 주소를 소켓의 생성 주소로 사용할 수 있다. 따라서, 어플리케이션이 요청한 세션은 시스템 전역으로 설정된 라우팅 테이블의 정보 중 기본 게이트웨이(default gateway) 정보로 설정된 통신 인터페이스와 동일한 원천 주소를 포함할 수도 있고, 다른 통신 인터페이스의 원천 주소를 포함할 수 있다. 이때, 어플리케이션 소켓 통신부(510)는 단말의 모든 어플리케이션에 대해 LTE 인터페이스로 소켓을 생성할 수 있고, 특정 어플리케이션(예를 들면, 화이트리스트에 포함된 어플리케이션)에 대해서만 LTE 인터페이스로 소켓을 생성할 수 있다.
라우팅 정보 확인부(530)는 단말의 운영 체제에 포함된 네트워크 스택에 의해 관리되는 라우팅 테이블에 접근하여 라우팅 정보를 확인한다. 라우팅 테이블은 사용자-커널 인터페이스부(140)에서 관리되는 시스템 전역 라우팅 테이블일 수 있다. 라우팅 정보 확인부(530)는 실제 소켓이 생성되기 전에 어플리케이션 소켓 통신부(510)를 통해 생성 요청된 어플리케이션의 세션에 대해서, 라우팅 테이블을 통해 실제 원천 주소를 결정한다.
인터페이스 연결부(550)는 라우팅 정보 확인부(530)에서 참조한 전역 라우팅 정보와 어플리케이션 소켓 통신부(510)에 의해 생성된 소켓 정보를 매핑하여 관리하고, 매핑 정보에 따른 통신 인터페이스로 소켓을 연결한다. 인터페이스 연결부(550)는 어플리케이션 소켓 통신부(510)에서 고정된 통신 인터페이스가 아니라, 라우팅 정보 확인부(530)에서 참조한 상위 순위의 통신 인터페이스로 실제로 통신하도록 소켓을 재생성한다.
도 15를 참고하면, 단말(100)에서 어플리케이션이 실행되면, 어플리케이션은 어플리케이션 소켓 통신부(510)에게 고정된 통신 인터페이스1(예를 들면, LTE 인터페이스)로 연결되는 소켓 생성을 요청한다.
인터페이스 연결부(550)는 라우팅 정보 확인부(530)를 통해 라우팅 테이블을 참조한다. 라우팅 테이블에 통신 인터페이스2(예를 들면, WiFi)가 상위 인터페이스로 설정된 경우, 인터페이스 연결부(550)는 매핑 테이블에 어플리케이션 소켓의 인터페이스는 인터페이스1이고, 시스템 소켓의 인터페이스는 인터페이스2라고 매핑하여 저장한다. 인터페이스 연결부(550)는 매핑 테이블을 기초로 어플리케이션 소켓이 바라보는 인터페이스1과 시스템 소켓이 바라보는 인터페이스2를 연결한다.
어플리케이션은 통신 인터페이스1로 세션을 생성했지만, 소켓 연동 관리자(500)은 어플리케이션 소켓의 통신 인터페이스1과 시스템 소켓의 통신 인터페이스2를 연결하여, 실제 트래픽은 통신 인터페이스2를 통해 전송되도록 한다.
도 16을 참고하면, 단말(100)은 MPTCP와 같이 다중 경로를 통한 병합 전송이 가능한 상태가 될 수 있다. 이때, 라우팅 테이블은 통신 인터페이스1과 통신 인터페이스2로의 연결이 가능한 듀얼 소켓 인터페이스 정보를 저장할 수 있다.
병합 전송이 가능한 경우, 인터페이스 연결부(550)는 시스템 소켓의 인터페이스에 인터페이스1을 추가한다. 즉, 통신 인터페이스1을 통한 서브플로우가 추가된다. 인터페이스 연결부(550)는 라우팅 테이블을 참조하고, 어플리케이션 소켓의 인터페이스는 인터페이스1이고, 시스템 소켓의 인터페이스는 인터페이스1과 인터페이스2라고 매핑 테이블에 저장한다.
어플리케이션은 통신 인터페이스1로 연결된 세션을 그대로 유지하지만, 소켓 연동 관리자(500)는 어플리케이션 소켓의 통신 인터페이스1과 시스템 소켓의 통신 인터페이스1 및 통신 인터페이스2를 연결하여, 실제 트래픽은 통신 인터페이스1과 통신 인터페이스2 중 적어도 하나를 통해 전송되도록 한다.
도 17을 참고하면, 단말이 이동하는 경우와 같은 상황에 의해, 통신 인터페이스2에 의한 망접속이 해제될 수 있다. 이때, 라우팅 테이블은 상위 순위의 인터페이스를 통신 인터페이스1로 변경한다.
인터페이스 연결부(550)는 라우팅 테이블을 참조하고, 어플리케이션 소켓의 인터페이스는 인터페이스1이고, 시스템 소켓의 인터페이스는 인터페이스1이라고 매핑 테이블을 갱신한다.
어플리케이션은 통신 인터페이스1로 연결된 세션을 그대로 유지하지만, 소켓 연동 관리자(500)는 어플리케이션 소켓의 통신 인터페이스1과 시스템 소켓의 통신 인터페이스1을 연결하여, 실제 트래픽은 통신 인터페이스1을 통해 전송되도록 한다. 즉, 어플리케이션이 바라보는 통신 인터페이스 소켓은 실제 접속 인터페이스에 관계없이 그대로 유지되므로 통신 세션이 끊김없이 유지될 수 있다.
이와 같이, 소켓 연동 관리자(500)는 어플리케이션 소켓과 시스템 소켓 각각의 통신 인터페이스를 구분하고, 매핑 테이블을 기초로 어플리케이션 소켓과 시스템 소켓 각각의 통신 인터페이스를 연결한다. 실제 통신에 사용되는 인터페이스는 시스템 전역으로 설정된 라우팅 테이블을 참조하되, 어플리케이션에 바인딩되는 소켓의 통신 인터페이스는 LTE 등과 같이 always-on 상태로 언제 어디서든지 가능한 통신 인터페이스를 어플리케이션에 바인딩되는 소켓의 통신 인터페이스로 고정한다.
따라서, 실제 접속망에 연결되는 시스템 소켓의 통신 인터페이스가 달라지더라도, 어플리케이션은 항상 접속 가능한 통신 인터페이스1(예를 들면, LTE)로 생성된 소켓으로 세션을 유지할 수 있다. 그래서, 단말(100)이 WiFi망을 이용하기 어렵더라도, 소켓 연동 관리자(500)가 시스템 소켓의 WiFi 대신, 시스템 소켓의 LTE를 어플리케이션 소켓의 LTE 인터페이스로 전환하기만 하면, 어플리케이션이 바라보는 세션 정보를 그대로 유지시켜 끊김없는 LTE와 WiFi 사이의 어플리케이션 레벨의 세션 유지가 가능하다. 소켓 연동 관리자(500)는 종래 방식에서 접속망 변경 시 발생하는 어플리케이션 레벨 세션 단절 문제를 해결할 수 있고, 또한 터널링 등의 추가 시그널링 등을 위한 오버헤드를 줄일 수 있다.
도 18은 일반적인 프록시 통신 방법을 설명하는 도면이고, 도 19는 본 발명의 한 실시예에 따른 프록시 통신 방법을 설명하는 도면이며, 도 20은 본 발명의 한 실시예에 따른 프록시 통신 방법의 흐름도이다.
도 18을 참고하면, 일반적으로 유/무선 단말에서 발생되는 트래픽은 OSI(Open Systems Interconnection) 7계층 중 3계층인 IP(Internet Protocol) 헤더 정보인 원천 주소와 목적지(destination) 주소를 기반으로 중간 노드인 라우터 혹은 스위치에 의해 라우팅된다. 하지만 상황에 따라 특정 트래픽을 원하는 중간 노드를 경유하게 만들어야 하며, 이는 중간 노드들을 인위적인 조작하거나 설정 변경하여 가능하다. 예를 들어, 이동 통신망의 특정 트래픽을 이동 통신망 외부로 전달해야 하는 경우, 이동 통신망 장비인 게이트웨이(예를 들면, P-GW, GGSN 등)의 설정이나 규칙/정책을 변경하여 트래픽을 특정 라우터로 강제 포워딩할 수 있다.
한편, 중간 노드의 도움 없이 특정 트래픽을 특정 노드로 라우팅하는 단말 클라이언트 기술로 프록시(proxy) 기술이 존재한다. 프록시 기술은 SOCKS, HTTP 등의 기술이 대표적이다. 프록시 클라이언트는 트래픽을 네트워크에 존재하는 프록시 서버로 전달하되, 프록시 서버에게 원래 목적지 주소를 알려준다. 프록시 서버는 단말로부터 수신한 트래픽을 원래 목적지 주소로 전달한다.
하지만, 일반적인 프록시 통신 방법은 프록시 기술 자체에 내포된 대용량의 트래픽을 수용해야 하는 단점이 있다. 만약, 이동 통신망에 연동되는 모든 모바일 단말의 트래픽을 프록시 서버로 전달되게 하기 위해서는 단말이 발생시키는 대용량의 트래픽량을 고려해야 한다.
이러한 문제를 해결하기 위해, 특정 트래픽 종류(예를 들면, http 프로토콜)만을 대상으로 프록시 적용이 가능하나, 모든 종류의 어플리케이션에 적용할 수 없고, 웹브라우저 어플리케이션과 같이 한정된 종류의 어플리케이션만 프록시 서버로 라우팅할 수 있는 한계가 있다.
또한, 모바일 단말에서 이용되는 프록시 클라이언트는 프록시 서버의 정보를 기초로 트래픽을 프록시 서버로 전송하는데, 프록시 서버를 관리하는 관리자(예를 들면, 이동 통신망 사업자)가 프록시 정보와 프록시 경유를 필요로 하는 어플리케이션 정보(화이트리스트)를 동적으로 배포할 수 있는 방안이 없는 한계가 있다.
도 3과 도 19를 참고하면, 다음에서, 단말(100)과 게이트웨이(200)는 프록시 클라이언트와 프록시 서버로 동작한다. 이를 위해, 단말(100)은 정책 적용부(610)와 프록시 에이전트부(630)를 포함한다. 정책 적용부(610)와 프록시 에이전트부(630)의 기능은 사용자-커널 인터페이스부(140)에서 구현될 수 있다. 그러나, 정책 적용부(610)와 프록시 에이전트부(630)의 기능은 MPTCP 관리부(110)나 MPTCP 처리부(130)에 구현되거나, 안드로이드 프레임워크/리눅스 커널의 일부 영역에 별도로 탑재될 수 있고, 어플리케이션으로 개발될 수 있으나, 여기서는 정책 적용부(610)와 프록시 에이전트부(630)의 동작으로 설명한다.
정책 배포 장치(700)는 단말(100)로 프록시 정보를 포함하는 정책을 배포한다. 정책은 프록시 서버 접속 정보, 화이트리스트 정보, 실행 방법 등의 다양한 정보를 포함한다. 프록시 서버 접속 정보와 화이트리스트 정보는 하나의 데이터 혹은 분리된 데이터로 관리될 수 있고, 정책을 수신하는 단말의 정보(즉, 단말의 가입 유형, 접속 경로, 사용자의 편의를 위한 각종 정보)를 기초로 정책을 다르게 적용할 수 있다. 정책 배포 장치(700)는 단말의 정책 적용부(610)와 정책 정보를 동기화한다. 정책 배포 장치(700)는 푸쉬/풀 방식으로 정책을 배포할 수 있다. 정책 배포 장치(700)는 게이트웨이(200)와 별도 장치에 구현될 수 있고, 게이트웨이(200)에 구현될 수도 있다.
정책 적용부(610)는 정책 배포 장치(700)에서 배포한 정책을 수신한다. 정책 적용부(610)는 정책 기반으로 프록시 서버(즉, 게이트웨이(200))로 트래픽을 라우팅할 것인지, 원래 목적지 서버로 트래픽을 라우팅할 것인지 결정한다. 이때, 정책 적용부(610)는 화이트리스트에 포함된 어플리케이션에 프록시 에이전트부(630)를 통해 게이트웨이(200)로 전달되도록 정책을 적용한다. 정책 적용부(610)는 정책 정보를 파싱하여 프록시 서버의 분산 구조에 대응할 수 있도록 처리한다. 정책 적용부(610)는 정책 정보에 포함된 화이트리스트를 파싱하여 프록시 에이전트부(630)의 동작을 제어한다. 정책 배포 장치(700)와 통신하는 통신 기능과 정책을 실행하는 기능은 단말 설계에 따라 분리되어 구현될 수 있고, 예를 들면, 어플리케이션 영역과 운영체제 커널 영역으로 분리될 수 있다.
프록시 에이전트부(630)는 정책 적용부(610)에 따라 프록시 통신하도록 결정된 어플리케이션의 트래픽에 대해 지정된 프록시 서버로 전송한다. 프록시 에이전트부(630)는 정책 정보에 포함된 프록시 서버 주소(게이트웨이(200) 주소)로 접속하여 프록시 통신을 수행한다.
도 20을 참고하면, 정책 배포 장치(700)는 프록시 서버 접속 정보와 화이트리스트 정보를 포함하는 정책을 생성한다(S510).
프록시 서버 접속 정보는 동적으로 제공되는 정보로서, IP 주소, 도메인 주소, 포트 정보 등으로 구성된 하나 이상의 프록시 서버 접속 정보이다. 프록시 서버 접속 정보는 이중화/로드 밸런싱/오류(failover) 시 우회 경로를 제공한다. 정책 배포 장치(700)는 프록시 우선 순위를 부여하여 단말의 접속 경로를 결정할 수 있다. 단말(100)은 프록시 서버의 우선순위에 따라 상위 순위 프록시 서버의 접속이 어려우면 프록시 에이전트부(630)에 의해 하위 순위 프록시 서버로 접속을 시도할 수 있다.
프록시 서버 접속 정보는 다음과 같이 구성될 수 있다.
프록시 서버 접속정보 = {프록시 서버 접속 가능 수(n), {프록시 서버 URI.1, 프록시 서버 포트 정보.1 }, ..., {프록시 서버 URI.n, 프록시 서버 포트 정보.n}}
프록시 서버 접속 정보는 URI를 IP 주소 또는 도메인 정보로 구성할 수 있다.
프록시 서버가 1.1.1.1:1111, 2.2.2.2:2222, 3.3.3.3:3333 의 3식으로 분산된 경우, 프록시 서버 접속 정보는 다음과 같이 구성될 수 있다.
프록시 서버 접속정보 = {3, { 1.1.1.1, 1111 }, { 2.2.2.2, 2222 }, { 3.3.3.3, 3333 }}
화이트리스트 정보는 프록시 통신을 적용하기 위한 어플리케이션 그룹 혹은 어플리케이션 그 자체에 대한 정보를 포함한다. 즉, 화이트리스트 정보는 게이트웨이(200)를 경유하는 MPTCP 적용 대상 어플리케이션들의 정보일 수 있다. 어플리케이션 정보는 어플리케이션별로 유일한 정보인 패키지 이름(예를 들면, YouTube의 패키지 이름은 com.google.youtube), 어플리케이션 속성 그룹(예를 들면, web browser, media streaming) 등의 정보를 포함한다.
단말(100)에서, 어플리케이션이 자체적으로 통신 세션을 생성하지 않고 시스템에 등록된 다른 어플리케이션으로 세션 생성을 의탁하는 경우가 존재한다. 예를 들면, 웹브라우져를 통한 파일 다운로드는 다운로드 매니저(download manager) 어플리케이션에 의탁하거나, 비디오/오디오 스트리밍 컨텐츠의 실행은 미디어 플레이어(media player) 어플리케이션에 의탁할 수 있다. 이러한 경우를 위해, 화이트리스트 정보는 어플리케이션 정보 구성 시, 관련된 어플리케이션의 정보를 보조(sub) 정보로 포함하여 구성할 수 있다.
화이트리스트 정보는 다음과 같이 구성될 수 있다. 여기서, 타입은 어플리케이션 패키지, 어플리케이션 속성 그룹, sub 정보 포함 여부를 구분하는 정보이다.
화이트리스트 정보= {대상 그룹수(n), {타입, 패키지명/속성}, ..., {타입, 패키지명/속성}}
예를 들어, YouTube 어플리케이션은 mediaplayer 어플리케이션을 사용하므로 "패키지+서브어플리케이션"으로 타입을 구분할 수 있고, 웹브라우저 형태의 속성그룹 전체를 화이트리스트로 적용하는 2건에 대한 화이트리스트 정보는 다음과 같을 수 있다.
화이트리스트 정보= {2, {패키지+서브어플리케이션, com.google.youtube, mediaplayer}, {속성그룹, 웹브라우저}}
정책 배포 장치(700)는 단말(100)로 정책 정보를 배포한다(S520). 단말(100)은 특정 이벤트 발생시 또는 주기적으로 정책 배포 장치(700)부터 정책 정보를 수신하여 정책 정보를 업데이트를 한다.
단말(100)은 화이트리스트 트래픽이 프록시 서버로 전달되도록 수신한 정책 정보를 설정한다(S530). 단말(100)은 화이트리스트 정보에 포함된 어플리케이션 패키지 기반으로 해당 어플리케이션에서 발생하는 트래픽의 라우팅 테이블을 재설정한다. 문자열 형태의 패키지명은 단말에서의 식별자, 예를 들면, UID로 변환될 수 있고, 서브 어플리케이션 정보는 UID 또는 시스템 ID로 변환되어 단말 전역으로 유일한 값을 획득할 수 있다. 이렇게 획득된 어플리케이션 식별자는 라우팅 테이블 참조 시 필터값으로 사용될 수 있다. 즉, 단말(100)은 어플리케이션 식별자를 기초로 게이트웨이(200)를 경유하는 라우팅 경로를 적용할 것인지 판단할 수 있다. 화이트리스트에 포함되지 않는 일반 어플리케이션은 기존 방식에 따라 시스템 라우팅 정보를 기반으로 통신 세션이 생성되고 데이터 통신을 수행한다.
단말(100)은 정책 정보를 기초로 라우팅 테이블을 설정한다. 예를 들어, 표 2를 참고하면, 패키지명이 com.google.youtube인 어플리케이션이 화이트리스트에 포함된 경우, 단말(100)은 어플리케이션의 원래 목적지 주소/기본 게이트웨이 주소가 아니라 프록시 서버의 접속 주소(예를 들면, 1.1.1.1/1111)로 라우팅 테이블을 변경한다.
com.google.youtube UID = 99999
정책 적용 전: 목적지=*/* --> 192.168.0.1/*
정책 적용 후: 목적지=*/* && UID==99999 --> 1.1.1.1/1111
화이트리스트에 포함된 어플리케이션이 트래픽을 발생시키는 경우, 즉, 해당 어플리케이션이 사용자의 입력 혹은 프로그래밍된 코드에 의해 통신 세션을 발생(예를 들면, TCP 핸드쉐이킹)하는 경우, 단말(100)은 정책 정보를 기초로 화이트리스트에 포함된 어플리케이션을 식별하고, 라우팅 테이블을 참조한다(S540).
단말(100)은 화이트리스트 트래픽을 프록시 서버(200)로 전송한다(S550). 단말(100)은 라우팅 테이블을 참조한 결과, 프록시 서버의 접속 주소를 획득하고, 프록시 에이전트부(630)를 통해 프록시 서버(200)와 통신한다. 단말(100)은 정책 정보에 포함된 하나 이상의 프록시 서버로 접속을 시도하되, 우선 접속 프록시 서버의 접근 불가시 하위순위 프록시 서버로 우회하여 접속 시도할 수 있다. 단말(100)은 프록시 방식(SOCKS, HTTP 등)에 따라 프록시 서버(200)와 데이터 경로를 확보하여 화이트리스트 트래픽을 송수신한다. 프록시 에이전트부(630)와 프록시 서버(200) 사이에 생성된 세션은 프록시 통신으로 유지된다.
이와 같이, 정책 배포 장치(700)를 이용하는 경우, 종래의 목적지 주소 또는 특정 어플리케이션 기반의 전역 설정에 의한 프록시 통신과 달리, 어플리케이션별로 프록시 통신 구조를 제공할 수 있다. 따라서, 통신 사업자는 어플리케이션의 목적 및 용도에 따라 트래픽을 임의 프록시 서버로 우회시킬 수 있다. 특히, 이러한 프록시 기반 통신을 통해 다중 경로 전송의 병합 지점(게이트웨이)을 유연하게 구현할 수 있고, 통신 사업자가 어플리케이션별 병합 전송을 제어 및 관리할 수 있다.
도 21은 본 발명의 한 실시예에 따른 단말의 하드웨어 블록도이다.
도 21을 참고하면, 단말(100)은 프로세서(810), 메모리 장치(820), 저장 장치(830), 디스플레이(840), 통신 장치(850), 그리고 스피커/마이크(860) 등을 포함하는 하드웨어로 구성되고, 지정된 장소에 하드웨어와 결합되어 실행되는 프로그램이 저장된다. 하드웨어는 본 발명의 방법을 실행할 수 있는 구성과 성능을 가진다. 도 1부터 도 20을 참고로 설명한 본 발명의 동작 방법은 프로그램 언어에 의해 소프트웨어 프로그램으로 작성된다. 프로그램은 프로세서(810)와 메모리 장치(820) 등의 하드웨어와 결합하여 본 발명을 실행한다.
게이트웨이(200)와 정책 배포 장치(700)를 포함하는 네트워크 장치 역시, 프로세서, 메모리 장치, 저장 장치, 통신 장치 등을 포함하는 하드웨어로 구성되고, 지정된 장소에 하드웨어와 결합되어 실행되는 프로그램이 저장된다. 하드웨어는 본 발명의 방법을 실행할 수 있는 구성과 성능을 가진다. 도 1부터 도 20을 참고로 설명한 본 발명의 동작 방법은 프로그램 언어에 의해 소프트웨어 프로그램으로 작성된다. 프로그램은 프로세서와 메모리 장치 등의 하드웨어와 결합하여 본 발명을 실행한다.
이와 같이, 본 발명의 실시예에 따르면 가용한 복수의 무선망을 동시에 사용하여 각 경로로 전송된 데이터를 하나의 세션으로 처리할 수 있다. 본 발명의 실시예에 따르면 단말은 한 시점에 복수의 접속망에 연결 가능하며, 하나의 서비스/어플리케이션은 망 종류나 망의 수에 관계없이 복수의 망을 하나의 망처럼 병합하여 통신할 수 있다. 본 발명의 실시예에 따르면 가용한 복수의 망자원을 이용하여 대량의 데이터를 빠르게 송수신할 수 있다. 본 발명의 실시예에 따르면 단말이 다중 경로 전송을 지원하지 않은 일반 서버와 다중 경로 TCP 기반 데이터 통신을 할 수 있다.
이상에서 설명한 본 발명의 실시예는 장치 및 방법을 통해서만 구현이 되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.

Claims (4)

  1. 정책 배포 장치와 단말이 다중 경로 통신을 위해 동작하는 방법으로서,
    상기 정책 배포 장치가, 화이트리스트 그리고 상기 화이트리스트에 포함된 각 어플리케이션의 트래픽 전송을 위해 단말이 접속하는 프록시 서버의 접속 정보를 포함하는 프록시 정책을 생성하는 단계,
    상기 정책 배포 장치가, 상기 프록시 정책을 상기 단말에 배포하는 단계,
    상기 단말이, 상기 프록시 정책을 기초로 상기 화이트리스트에 포함된 각 어플리케이션의 트래픽이 해당 프록시 서버로 전송되도록 라우팅 테이블을 설정하는 단계, 그리고
    상기 단말이, 상기 화이트리스트에 포함된 임의 어플리케이션이 실행되면, 상기 라우팅 테이블을 기초로 상기 임의 어플리케이션의 트래픽을 지정된 프록시 서버로 전송하는 단계를 포함하고,
    상기 프록시 서버는 상기 단말이 다중 경로 통신을 위해 접속하는 네트워크 장치이고,
    상기 화이트리스트는 상기 프록시 서버를 경유하여 목적지 서버와 통신하도록 지정된 어플리케이션 목록을 포함하는 동작 방법.
  2. 제1항에서,
    상기 지정된 프록시 서버로 전송하는 단계는
    상기 화이트리스트에 포함된 제1 어플리케이션의 트래픽이 제1 프록시 서버로 중계되도록 상기 라우팅 테이블이 설정된 경우, 실행되는 어플리케이션의 식별 정보를 기초로 상기 제1 어플리케이션을 식별하는 단계, 그리고
    상기 라우팅 테이블을 참조하여 상기 제1 어플리케이션의 트래픽을 상기 제1 프록시 서버로 전송하는 단계
    를 포함하는 동작 방법.
  3. 제2항에서,
    상기 제1 프록시 서버로 전송하는 단계는
    상기 제1 프록시 서버와 연결된 다중 경로로 상기 제1 어플리케이션의 트래픽을 전송하는, 동작 방법.
  4. 제1항에서,
    상기 단말에서 상기 화이트리스트에 포함되지 않은 일반 어플리케이션이 실행되면, 상기 일반 어플리케이션의 트래픽은 상기 프록시 서버를 경유하지 않고 해당 목적지 서버로 전송되는, 동작 방법.
KR1020160082958A 2014-06-27 2016-06-30 다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램 KR101680278B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020140079669 2014-06-27
KR20140079669 2014-06-27

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020150014615A Division KR101746191B1 (ko) 2014-06-27 2015-01-29 다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램

Publications (2)

Publication Number Publication Date
KR20160084826A KR20160084826A (ko) 2016-07-14
KR101680278B1 true KR101680278B1 (ko) 2016-12-12

Family

ID=55165438

Family Applications (5)

Application Number Title Priority Date Filing Date
KR1020150014615A KR101746191B1 (ko) 2014-06-27 2015-01-29 다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램
KR1020160082958A KR101680278B1 (ko) 2014-06-27 2016-06-30 다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램
KR1020160082904A KR101696439B1 (ko) 2014-06-27 2016-06-30 다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램
KR1020160082962A KR101680277B1 (ko) 2014-06-27 2016-06-30 다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램
KR1020170069255A KR101905867B1 (ko) 2014-06-27 2017-06-02 다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020150014615A KR101746191B1 (ko) 2014-06-27 2015-01-29 다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램

Family Applications After (3)

Application Number Title Priority Date Filing Date
KR1020160082904A KR101696439B1 (ko) 2014-06-27 2016-06-30 다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램
KR1020160082962A KR101680277B1 (ko) 2014-06-27 2016-06-30 다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램
KR1020170069255A KR101905867B1 (ko) 2014-06-27 2017-06-02 다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램

Country Status (6)

Country Link
US (1) US10355982B2 (ko)
EP (2) EP3163809B1 (ko)
KR (5) KR101746191B1 (ko)
AU (1) AU2015280947B2 (ko)
PH (1) PH12016502442A1 (ko)
SG (2) SG10201802326UA (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10594596B2 (en) * 2015-03-30 2020-03-17 British Telecommunications Public Limited Company Data transmission
EP3278599B1 (en) 2015-03-31 2019-07-17 British Telecommunications public limited company Wlan-lte interface selection
EP3278598B1 (en) 2015-03-31 2019-05-22 British Telecommunications public limited company Interface selection
EP3104661A3 (en) * 2015-06-12 2017-03-22 HTC Corporation Device and method of handling lte-wlan aggregation
CN108476450B (zh) * 2015-12-31 2020-12-01 英国电讯有限公司 无线接入点及操作方法、管理语音服务接入的方法和系统
WO2017133778A1 (en) * 2016-02-04 2017-08-10 Nec Europe Ltd. Method for operating a plurality of wireless networks
US10764791B2 (en) 2016-03-31 2020-09-01 British Telecommunications Public Limited Copmany Voice service client device
KR101853611B1 (ko) 2016-04-21 2018-06-08 주식회사 이루온 Mptcp 프록시 서버 및 mptcp 프록시 서버에서의 데이터 분배 방법
EP3408975B1 (en) * 2016-05-19 2020-04-29 Samsung Electronics Co., Ltd. Method and apparatus for managing multipath transmission control protocol
KR102055911B1 (ko) * 2016-05-24 2020-01-22 주식회사 케이티 세션 연결을 위한 시그널링 방법, 그리고 이를 구현한 장치
EP3255845A1 (en) * 2016-06-10 2017-12-13 Tessares SA Multipath tcp in hybrid access networks
US10169120B2 (en) * 2016-06-24 2019-01-01 International Business Machines Corporation Redundant software stack
KR101769344B1 (ko) * 2016-06-30 2017-08-21 (주)넷비젼텔레콤 다중 경로 환경에서의 서비스 플로우 별 mp-gw 포트 매핑 방법 및 시스템
KR102531648B1 (ko) * 2016-06-30 2023-05-10 주식회사 케이티 다중망 병합 전송 시스템, 그리고 이의 동작 방법
KR102033452B1 (ko) * 2016-07-05 2019-11-08 주식회사 케이티 다중망 병합 전송 시스템, 그리고 이의 동작 방법
WO2018008992A1 (ko) * 2016-07-06 2018-01-11 주식회사 케이티 다중망 병합 트래픽 제어기, 그리고 이의 트래픽 제어 방법
KR102625732B1 (ko) * 2016-07-06 2024-01-15 주식회사 케이티 존 기반 다중망 병합 전송 서비스를 제공하는 시스템 및 그 방법
JP6724641B2 (ja) * 2016-08-03 2020-07-15 富士通株式会社 管理装置、通信システム及び割当方法
US10257283B2 (en) * 2016-10-03 2019-04-09 International Business Machines Corporation System, method and computer program product for network function modification
KR102009643B1 (ko) 2016-12-29 2019-08-12 주식회사 이루온 다중 경로 전송 시스템 및 방법
KR102050133B1 (ko) * 2017-01-17 2019-11-28 인제대학교 산학협력단 사용자 요청에 따른 mptcp 통신 보안 활성화 방법 및 사용자 단말
KR101970304B1 (ko) * 2017-03-24 2019-04-18 (주)넷비젼텔레콤 다중 경로 환경에서 생성되는 tcp 패킷을 처리하는 방법
WO2018178294A1 (en) 2017-03-31 2018-10-04 British Telecommunications Public Limited Company Network discovery
US11140620B2 (en) 2017-03-31 2021-10-05 British Telecommunications Public Limited Company Access network selection
US11197204B2 (en) 2017-06-23 2021-12-07 British Telecommunications Public Limited Company Voice service handover
CN110771204B (zh) 2017-06-23 2022-05-10 英国电讯有限公司 操作移动性管理实体的方法、载体介质
KR102424356B1 (ko) 2017-11-06 2022-07-22 삼성전자주식회사 어플리케이션의 QoS 제어 방법, 장치 및 시스템
US10560940B2 (en) * 2017-11-10 2020-02-11 Nokia Solutions And Networks Oy Intelligent traffic steering over optimal paths using multiple access technologies
KR102648720B1 (ko) * 2017-12-20 2024-03-15 주식회사 케이티 동적 터널링 기반 트래픽 전송 시스템, 그리고 이의 시그널링 방법
US10313228B1 (en) 2018-02-02 2019-06-04 Dell Products L.P. Information handling system network communication with through link aggregation
US10862828B2 (en) * 2018-02-02 2020-12-08 Dell Products L.P. Information handling system network communication with through link aggregation
EP3777283A1 (en) 2018-03-29 2021-02-17 British Telecommunications public limited company An improved method of channel selection in a wireless network
US11388096B2 (en) * 2018-05-04 2022-07-12 T-Mobile Usa, Inc. Performance driven software defined networking
US10880804B2 (en) 2018-12-04 2020-12-29 At&T Intellectual Property I, L.P. Mobile device display of federated wireless access point networks for 5G or other next generation network
KR102058514B1 (ko) * 2018-12-18 2020-02-07 (주)넷비젼텔레콤 다중 경로 환경에서의 정책기반 경로 제어 시스템
CN109600388B (zh) * 2019-01-03 2021-01-15 腾讯科技(深圳)有限公司 数据传输方法、装置、计算机可读介质及电子设备
EP3968578A1 (en) * 2020-09-11 2022-03-16 Deutsche Telekom AG Multipath-capable communication device
CN112333281A (zh) * 2020-11-16 2021-02-05 中国联合网络通信集团有限公司 一种数据传输方法及装置
CN114340046B (zh) * 2021-11-19 2024-03-29 南京瀚元科技有限公司 一种基于Android系统的多网卡设备组网通信方法
US11962488B2 (en) 2022-07-01 2024-04-16 Cisco Technology, Inc. Supporting multipath transmission control protocol subflows using multipath links
US20240056372A1 (en) * 2022-08-09 2024-02-15 Dish Network L.L.C. Methods and systems for selecting a redundant network source at a gateway

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002242067A1 (en) * 2001-01-30 2002-08-12 Nomadix, Inc. Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network
EP1271896B1 (de) 2001-06-18 2004-07-28 Swisscom Mobile AG Verfahren und System für mobile IP-Nodes in heterogenen Netzwerken
US7191260B2 (en) * 2004-01-15 2007-03-13 International Business Machines Corporation Multiple connection management system
US8037506B2 (en) 2006-03-03 2011-10-11 Verimatrix, Inc. Movie studio-based network distribution system and method
US8364123B2 (en) * 2009-02-25 2013-01-29 Apple Inc. Managing notification messages
US8189587B2 (en) 2008-06-08 2012-05-29 Apple Inc. Routing table lookup algorithm employing search key having destination address and interface component
WO2010054258A1 (en) * 2008-11-06 2010-05-14 Trust Digital System and method for mediating connections between policy source servers, corporate repositories, and mobile devices
KR101668267B1 (ko) 2009-08-17 2016-10-21 주식회사 엘지유플러스 웹 서비스를 제공하는 모바일 단말 및 그의 동작방법, 웹 서비스 제공 시스템 및 방법
KR20110044680A (ko) 2009-10-23 2011-04-29 고려대학교 산학협력단 트래픽 분류 장치 및 방법
KR101524125B1 (ko) 2010-11-11 2015-05-29 에스케이텔레콤 주식회사 이기종 망간 접속변경 시스템 및 방법
KR20120056728A (ko) 2010-11-25 2012-06-04 주식회사 케이티 연결 링크의 우선 순위에 기반한 기회주의적 병렬 다운로드 방법 및 시스템
KR20120064276A (ko) 2010-12-09 2012-06-19 한국전자통신연구원 이동통신 단말의 경로 관리장치, 경로 결정장치, 경로 검증장치, 내비게이션 서비스 제공시스템 및 경로 관리방법
EP2495927B1 (en) 2011-03-02 2014-10-08 Alcatel Lucent Concept for providing information on a data packet association and for forwarding a data packet
EP2698032A1 (en) 2011-04-11 2014-02-19 Interdigital Patent Holdings, Inc. Session manager and source internet protocol (ip) address election
US8817797B2 (en) * 2012-01-31 2014-08-26 Alcatel Lucent Method and apparatus for multipath protocol packet relay
US8640174B2 (en) * 2012-03-01 2014-01-28 Motorola Mobility Llc Method for retrieving content, wireless communication device and communication system
KR20130006385A (ko) 2012-08-24 2013-01-16 주식회사에어플러그 고정 호스트 주소에 기반하여 복수의 이종망(異種網)들을 선택적으로 사용하여 데이터 송수신할 수 있게 하는 장치와 이를 위한 방법

Also Published As

Publication number Publication date
AU2015280947B2 (en) 2019-07-11
KR20160081888A (ko) 2016-07-08
US10355982B2 (en) 2019-07-16
AU2015280947A1 (en) 2016-12-22
KR101746191B1 (ko) 2017-06-12
KR101680277B1 (ko) 2016-11-28
KR101696439B1 (ko) 2017-01-16
KR20170066298A (ko) 2017-06-14
SG11201610128QA (en) 2017-01-27
PH12016502442B1 (en) 2017-03-06
EP3331219B1 (en) 2019-11-20
KR20160084826A (ko) 2016-07-14
EP3163809B1 (en) 2019-12-11
EP3331219A1 (en) 2018-06-06
SG10201802326UA (en) 2018-04-27
KR20160001601A (ko) 2016-01-06
KR101905867B1 (ko) 2018-10-08
US20170134261A1 (en) 2017-05-11
EP3163809A4 (en) 2017-08-09
PH12016502442A1 (en) 2017-03-06
EP3163809A1 (en) 2017-05-03
KR20160082959A (ko) 2016-07-11
EP3163809A8 (en) 2017-08-23

Similar Documents

Publication Publication Date Title
KR101905867B1 (ko) 다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램
US11711869B2 (en) Message and system for application function influence on traffic routing
US20210345438A1 (en) Methods and systems for multicast-broadcast session release and modification
US11178717B2 (en) Traffic distribution method through multi-access network in a network and network entity performing the same
US11064388B2 (en) Traffic distribution method through multi-access network in a network and network entity performing the same
JP2016220195A (ja) 無線通信方法、無線通信システム、端末管理装置及び仮想端末
US20220294847A1 (en) Peer-to-peer network for telecommunication network traffic rerouting
WO2015199340A1 (ko) 다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램
US10541911B2 (en) Method, apparatus, and system for deploying service flow forwarding function
KR20210055537A (ko) 무선 통신 시스템에서 로컬 프로세싱을 위한 트래픽 스티어링을 위한 방법 및 장치
US11711725B1 (en) Systems and methods for interfacing a gateway with an application server
US11736980B1 (en) Systems and methods for interfacing an information technology device with a gateway

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant