KR101970304B1 - 다중 경로 환경에서 생성되는 tcp 패킷을 처리하는 방법 - Google Patents

다중 경로 환경에서 생성되는 tcp 패킷을 처리하는 방법 Download PDF

Info

Publication number
KR101970304B1
KR101970304B1 KR1020170037432A KR20170037432A KR101970304B1 KR 101970304 B1 KR101970304 B1 KR 101970304B1 KR 1020170037432 A KR1020170037432 A KR 1020170037432A KR 20170037432 A KR20170037432 A KR 20170037432A KR 101970304 B1 KR101970304 B1 KR 101970304B1
Authority
KR
South Korea
Prior art keywords
mptcp
terminal
application
tcp packet
vpn
Prior art date
Application number
KR1020170037432A
Other languages
English (en)
Other versions
KR20180108098A (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 KR1020170037432A priority Critical patent/KR101970304B1/ko
Publication of KR20180108098A publication Critical patent/KR20180108098A/ko
Application granted granted Critical
Publication of KR101970304B1 publication Critical patent/KR101970304B1/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/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L67/28
    • 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

Abstract

본 발명은 다중 경로(Multi-Path) 환경에서 생성되는 TCP 패킷을 처리하는 방법에 관한 것으로, 본 발명에 의하면 안드로이드에서 제공하는 VPN 서비스를 이용하기 때문에 단말 애플리케이션에서 생성되는 TCP 패킷 처리 시 IP 테이블을 통한 리다이렉션이 필요 없으며, 이에 따라 단말은 단말 애플리케이션에서 생성되는 TCP 패킷을 LTE 인터페이스 및 WiFi 인터페이스를 통해 MP-GW에 전송할 수 있는 동시에 단말의 루트 권한은 요구되지 않는 이점이 있다.

Description

다중 경로 환경에서 생성되는 TCP 패킷을 처리하는 방법{METHOD FOR PROCESSING TCP PACKET GENERATED IN MULTI-PATH ENVIRONMENT}
본 발명은 다중 경로(Multi-Path) 환경에서 생성되는 TCP(Transmission Control Protocol) 패킷을 처리하는 방법에 관한 것으로, 보다 상세하게는 단말 애플리케이션에서 생성되는 TCP 패킷을 LTE 인터페이스 및 WiFi 인터페이스를 통해 MP-GW에 전송하되, 단말의 루트 권한은 요구되지 않도록 구성된 다중 경로 환경에서 생성되는 TCP 패킷을 처리하는 방법에 관한 것이다.
도 1은 통상적인 LTE 망의 구성도이다. 도 1을 참고하여 LED 망의 구성을 간략히 설명하면, 먼저 UE(User Equipment)는 LTE 칩을 내장하고 있는 사용자 단말이고, eNB(Evolved Node B)는 "LTE 기지국"이라 불리며 UE와 LTE 네트워크 간에 무선 연결을 제공하는 장비이다. 이때, UE와 eNB 간의 연결만 무선 연결이고, 나머지는 모두 유선 연결이다.
또한, SAE GW(System Architecture Evolution Gateway)는 이동통신망에서 외부통신망으로 패킷을 보내거나 받기 위해 거쳐야 하는 관문 역할을 하는 장비로, S-GW(Serving-Gateway)와 P-GW(Packet data network-Gateway)로 구성된다. 이외에도 UE의 인증, EPS Bearer({UE - eNB - S-GW - P-GW} 구간에서 생성되는 논리적인 터널) 관리 및 가입자의 Mobility를 관리하는 MME(Mobility Management Entity), 가입자 정보를 관리하는 HSS(Home Subscriber Server) 등이 있다.
한편, 일반적인 LTE 망의 가입자는 LTE 서비스 이용 시 서비스 별로 EPC 세션을 생성하거나 변경한다. 이때, 가입자가 선택한 서비스 종류나 요금제에 따라서 자원의 할당 및 과금의 부과를 제어하는 것을 PCC(Policy and Charging Control)라고 한다.
PCC 기능은 LTE 망 구성 중 PCRF(Policy and Charging Control Function) 및 PCEF(Policy and Charging Enforcement Function)에서 수행된다. PCRF는 서비스 데이터 플로우 별로 PCC 규칙을 결정하는데 이것은 사업자정책(QoS, gate status, 과금정책)을 기반으로 결정된다. 또한, PCEF(P-GW)는 서비스 데이터 플로우를 검출하고, PCRF에서 결정한 PCC 규칙을 가져와서 해당 사용자 패킷에 대해서 해당하는 규칙을 적용하는 역할을 수행한다.
단말이 LTE 망에 접속하기 위해서는 먼저 MME에 인증요청을 하고 MME는 HSS로부터 인증 벡터를 받아와서 UE와 MME 간의 상호 인증이 이루어진다. 인증이 성공하면 MME는 EPS Bearer 생성에 필요한 QoS 정보를 HSS로부터 받아온다. 그 후 MME는 세션 생성 요청을 S-GW로 보내고, S-GW는 P-GW로 해당 요청을 전달하면 P-GW는 PCRF로부터 해당 가입자에 대한 PCC 규칙인 Pre-defined PCC Rule(5-tuple Filtering Rule 및 QoS & Charging Rule)을 받아와서 해당 UE에 대한 정책을 적용하고 PCC 규칙에 명시된 UE와 P-GW 사이에 EPS Bearer가 생성되는 일련의 과정을 통해 UE의 LTE 망 연결이 이루어지게 된다.
즉, 일반적인 LTE 망에서 UE가 망에 연결된 후 특정 애플리케이션을 이용하기 위해 TCP 패킷을 전송하는 경우, 해당 TCP 패킷 플로우에 5-tuple 필터를 기반으로 SAE-GW 내에 미리 설정된 PCC 규칙을 적용하게 된다. 보다 구체적으로, 업링크 및 다운링크의 TCP 패킷에 포함된 목적지(Destination)의 IP 주소 및 포트번호, 출발지(Source)의 IP 주소 및 포트번호를 5-tuple 필터에 기등록한 정보와 매핑을 함으로써, 서비스 플로우 별로 서로 다른 Policy와 Charging을 제공할 수 있는 것이다.
한편, 안드로이드 5.0 롤리팝(Lollipop) 버전부터 VPN(Virtual Private Network) 서비스를 제공한다. 안드로이드에서는 VPN 서비스를 제공하기 위해 TUN 드라이버(Tunnel driver)를 생성하고, VPN 서비스를 이용하는 단말 애플리케이션과 TUN 드라이버의 상호작용을 위해 API(Application Programming Interface)를 제공한다. 안드로이드에서 제공하는 VPN 서비스를 통해 다양한 기능이 구현될 수 있는데, 그 중에는 VPN과 프록시 클라이언트(Proxy Client)의 연동 기능이 포함된다.
종래 단말의 MPTCP(Multi-Path Transmission Control Protocol; 다중 경로 전송 제어 프로토콜) 솔루션에서는 MPTCP 동작을 위해서 IP 테이블(IP table) 설정, IP 라우팅(IP routing) 설정, MPTCP 설정 등과 같은 커널(kernel) 설정을 하게 되는데, 이를 위해서 MPTCP 제어부(MPTCP control)는 루트 권한을 가지고 있어야 한다.
또한, 종래 단말은 MPTCP 기능을 사용하여 서비스 서버와의 통신을 위해서 출발지 주소를 설정할 때, WiFi IP 주소를 가지고 서비스 서버와 소켓 통신을 하게 된다. 그리고 MPTCP 동작 시 단말 애플리케이션에서 생성된 TCP 패킷을 프록시 클라이언트로 리다이렉션(redirection)하기 위해서 단말 애플리케이션은 프록시 클라이언트와 소켓 통신을 하게 된다. 이런 환경에서 MPTCP 동작 중 만일 WiFi 연결이 끊어지게 되면, 비록 LTE 연결이 유지되고 있다 할지라도 단말 애플리케이션의 출발지 정보는 WiFi 설정으로 되어 있기 때문에, 단말 애플리케이션과 프록시 클라이언트 간의 소켓 연결 역시 끊어지게 되고, 결과적으로 단말과 서비스 서버와의 연결이 끊어지게 되어 세션이 유지되지 않게 된다.
한국공개특허공보 제10-2016-0056118호(공개일: 2016.05.19.)
본 발명은 상기와 같은 문제점을 해결하기 위해 안출된 것으로, 단말 애플리케이션에서 생성되는 TCP 패킷을 LTE 인터페이스 및 WiFi 인터페이스를 통해 MP-GW에 전송하되, 단말의 루트 권한은 요구되지 않는 TCP 패킷 처리 방법을 제공하는 것에 그 목적이 있다.
또한, 본 발명은 MPTCP 동작 중에 LTE 연결은 유지되되 WiFi 연결이 끊어지는 경우라 하더라도, 단말과 서비스 서버는 계속해서 세션이 유지될 수 있는 TCP 패킷 처리 방법을 제공하는 것에 그 목적이 있다.
상기와 같은 목적을 달성하기 위하여, 본 발명에 따른 다중 경로 환경에서 생성되는 TCP 패킷을 처리하는 방법은, 단말에 설치되어 있는 MPTCP(Multi-Path Transmission Control Protocol) 애플리케이션이 실행됨에 따라, 상기 MPTCP 애플리케이션이 MP-Manager에 Policy 요청 메시지를 전송하는 단계; 상기 MP-Manager가 상기 MPTCP 애플리케이션에 MP-GW(MPTCP Proxy GateWay) 리스트 및 화이트 리스트가 포함된 Policy 응답 메시지를 전송하는 단계; 상기 MPTCP 애플리케이션이 프록시 클라이언트에 상기 MP-GW 리스트를 전송하여, 상기 프록시 클라이언트를 상기 MP-GW 리스트에 포함된 MP-GW에 연결시키는 단계; 상기 MPTCP 애플리케이션이 VPN(Virtual Private Network)에 상기 화이트 리스트를 전송하여, 상기 화이트 리스트에 포함된 VPN 서비스를 받을 단말 애플리케이션의 정보를 상기 VPN에 설정시키는 단계; 상기 단말 애플리케이션이 실행됨에 따라 상기 단말 애플리케이션에서 생성되는 TCP 패킷이 상기 VPN 및 상기 프록시 클라이언트를 거쳐, LTE 인터페이스와 WiFi 인터페이스로 나뉘어 상기 MP-GW에 전송되는 단계; 및 상기 MP-GW가 상기 TCP 패킷을 서비스 서버로 전송하는 단계;를 포함하여 이루어질 수 있다.
또한, 본 발명에 따른 다중 경로 환경에서 생성되는 TCP 패킷을 처리하는 방법은, 상기 프록시 클라이언트가 상기 MP-GW 리스트를 수신한 뒤, 상기 MP-GW 리스트에 포함된 MP-GW 중에 연결 가능한 MP-GW가 없을 경우, 연결 가능한 MP-GW가 없음을 알리는 이벤트 메시지를 상기 MPTCP 애플리케이션에 전달하고, 상기 MPTCP 애플리케이션은 VPN 서비스가 이용되지 않도록 하는 설정을 상기 VPN에 내려줌으로써, 상기 단말 애플리케이션에서 생성되는 TCP 패킷이 상기 LTE 인터페이스와 상기 WiFi 인터페이스 중 어느 하나의 인터페이스를 통해 상기 서비스 서버로 직접적으로 전송되도록 하는 것을 특징으로 한다.
또한, 본 발명에 따른 다중 경로 환경에서 생성되는 TCP 패킷을 처리하는 방법은, 상기 프록시 클라이언트가 상기 MP-GW에 연결될 경우, 상기 프록시 클라이언트는 사용자 이름(username)과 패스워드(password)를 자동으로 생성해서 상기 MP-GW에 전송하고, 상기 MP-GW는 해석용 키를 생성해서 상기 단말의 인증 절차를 수행하는 것을 특징으로 한다.
종래 단말의 MPTCP 솔루션에서는 MPTCP 동작을 위해서 단말 애플리케이션에서 생성되는 TCP 패킷을 프록시 클라이언트로 리다이렉션하기 위해서 IP 테이블을 사용하였으며, 이를 위해 단말은 반드시 루트 권한을 획득해야만 하였다. 이에 반해, 본 발명에 의하면 안드로이드에서 제공하는 VPN 서비스를 이용하기 때문에 단말 애플리케이션에서 생성되는 TCP 패킷 처리 시 IP 테이블을 통한 리다이렉션이 필요 없으며, 이에 따라 단말은 단말 애플리케이션에서 생성되는 TCP 패킷을 LTE 인터페이스 및 WiFi 인터페이스를 통해 MP-GW에 전송할 수 있는 동시에 단말의 루트 권한은 요구되지 않게 된다.
또한, 본 발명에 의하면 단말 애플리케이션은 프록시 클라이언트와 소켓 연결을 할 필요가 없기 때문에, MPTCP 동작 중에 LTE 연결은 유지되되 WiFi 연결이 끊어진다 하더라도, 단말과 서비스 서버 사이에는 계속해서 세션이 유지될 수 있게 된다.
도 1은 통상적인 LTE 망의 구성도이다.
도 2는 MPTCP 병합(aggregation) 서비스의 전체 구성도이다.
도 3은 종래 단말에서 MPTCP 기능을 사용하여 TCP 패킷을 처리하기 위한 제어 경로를 나타낸 도면이다.
도 4는 종래 단말에서 MPTCP 기능을 사용할 때 TCP 패킷이 처리되는 모습을 개략적으로 나타낸 도면이다.
도 5는 종래 단말에서 MPTCP 기능을 사용하지 않을 때 TCP 패킷이 처리되는 모습을 개략적으로 나타낸 도면이다.
도 6은 도 2의 단말에 안드로이드 VPN 서비스가 적용된 모습을 개략적으로 나타낸 도면이다.
도 7은 VPN 서비스가 적용된 단말에서 MPTCP 기능을 사용하여 TCP 패킷을 처리하기 위한 제어 경로를 나타낸 도면이다.
도 8은 VPN 서비스가 적용된 단말에서 MPTCP 기능을 사용할 때 TCP 패킷이 처리되는 모습을 개략적으로 나타낸 도면이다.
도 9는 VPN 서비스가 적용된 단말에서 MPTCP 기능을 사용하지 않을 때 TCP 패킷이 처리되는 모습을 개략적으로 나타낸 도면이다.
이하, 본 발명의 기술적 사상을 첨부된 도면을 사용하여 더욱 구체적으로 설명한다. 첨부된 도면은 본 발명의 기술적 사상을 더욱 구체적으로 설명하기 위하여 도시한 일 예에 불과하므로 본 발명의 기술적 사상이 첨부된 도면의 형태만으로 한정되는 것은 아니다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다.
도 2는 MPTCP 병합(aggregation) 서비스의 전체 구성도이다.
종래에는 단말(100)이 특정 서비스 서버(300)와 통신하기 위해 LTE 및 WiFi 중 어느 하나의 경로밖에 이용할 수 없었다. 이러한 TCP의 한계를 극복하기 위해 LTE 및 WiFi로 이루어진 다중 경로를 통해 데이터를 주고 받는 MPTCP(Multi-Path TCP) 기술이 개발되었다.
다중 경로 환경에서는 MP-GW(MPTCP Proxy Gateway; 200)가 구비되어 단말(100)과 MP-GW(200) 간에 MPTCP 트래픽을 주고 받고, MP-GW(200)는 각 서비스 서버(300)와 일반 TCP 트래픽을 주고 받음으로써, 단말(100)과 특정 서비스 서버(300) 간에 통신이 이루어지게 된다.
MPTCP는 종래에 LTE 인터페이스와 WiFi 인터페이스가 각각 따로 동작하던 것을 동시에 동작하도록 할 수 있으며, 이에 따라 LTE와 WiFi가 가진 대역폭이 합쳐지기 때문에 그만큼 TCP 패킷의 전송 속도 향상을 가져올 수 있게 된다.
한편, 도 3은 종래 단말에서 MPTCP 기능을 사용하여 TCP 패킷을 처리하기 위한 제어 경로를 나타낸 도면이다.
도 2와 도 3을 참고하면, 종래에는 단말에서 MPTCP 애플리케이션(MPTCP APP)이 실행될 경우, MPTCP 애플리케이션은 MP-Manager(Multi-Path Manager; 400)에 DNS 요청을 하게 되며, MP-Manager(400)는 DNS 응답 메시지를 통해 상기 MPTCP 애플리케이션에 단말(100)의 IP 주소를 전송한다. 이후, MPTCP 애플리케이션은 MP-Manager(400)에 Policy 요청 메시지를 전송할 수 있다. 여기서, 상기 Policy 요청 메시지에는 단말(100)의 ID(IMSI), LTE 인터페이스 IP 주소 등과 같은 단말(100)의 정보가 포함되어 있다.
MP-Manager(400)에서는 상기 단말(100)의 정보를 통해 단말(100)의 인증 및 접근 제어(Access Control)를 수행하며, 이후 MP-Manager(400)는 상기 Policy 요청 메시지에 응답하여 MPTCP 애플리케이션에 Policy 응답 메시지를 전송한다. 여기서, 상기 Policy 응답 메시지에는 TCP 패킷 처리를 위해 필요한 정보로서, MP-GW 리스트(MP-GW list), 포트 리스트(port list), 서비스 품질 클래스(service class), 화이트 리스트(white list), 블랙 리스트(black list), 유효 시간(valid time), 그룹 코드(group code), 키 옵션(key option), 동작 모드(operation mode) 등이 포함된다(A1).
다음으로, MPTCP 애플리케이션은 MP-Manager(400)로부터 수신한 MP-GW 리스트를 프록시 클라이언트에 전송한다. 프록시 클라이언트는 MP-GW 리스트를 참조하여 연결 가능한 MP-GW(200)와의 연결을 시도한다. 만일 MP-GW 리스트에 포함된 MP-GW 중에 연결 가능한 MP-GW가 없을 경우, 프록시 클라이언트는 이러한 취지가 포함된 이벤트 메시지를 MPTCP 애플리케이션에 전달한다(A2).
종래 단말(100)의 MPTCP 제어부(MPTCP Control)는 단말(100)과 MP-GW(200) 간 MPTCP 세션이 맺어지도록 하기 위해, IP 테이블(IPTables) 커맨드를 통해서 TCP 패킷 리다이렉션 설정을 수행하고(B1), TCP 제어 커맨드를 통해서 MPTCP 설정을 수행하며(B2), 각 인터페이스(WiFi, LTE)의 라우팅 설정 또한 수행하는데(B3), 이와 같은 커널 설정을 하기 위해서는 단말(100)이 루트 권한을 가질 것이 요구된다.
상기와 같은 일련의 동작 이후, 단말(100)과 MP-GW(200)는 MPTCP 세션이 맺어지게 되고, 도 4에 나타낸 바와 같이 단말 애플리케이션(APP1)에서 TCP 패킷이 생성될 경우 생성된 TCP 패킷은 단말(100)에서 MP-GW(200)로 흐르게 된다.
구체적으로, 사용자가 특정 서비스 서버(300)의 서비스를 이용하기 위해서 단말(100)에 미리 설치되어 있는 단말 애플리케이션(APP1)을 실행하면, 상기 단말 애플리케이션(APP1)에서는 서비스 서버(300)로 향하는 TCP 패킷을 생성하며, 이때 단말 애플리케이션(APP1)에서 생성된 TCP 패킷은 네트 필터(NetFilters)로 전송된다(C1).
이후, IP 테이블에 의한 TCP 패킷 리다이렉션 설정에 따라서 상기 TCP 패킷은 프록시 클라이언트에 전송된다(C2).
이후, 프록시 클라이언트는 MP-GW 리스트를 통해 맺어진 MPTCP 세션을 통해 상기 TCP 패킷을 해당 MP-GW(200)에 전송한다(C3). 여기서, 상기 TCP 패킷의 전송에는 LTE 인터페이스 및 WiFi 인터페이스가 모두 이용된다.
그리고 MP-GW(200)는 상기 TCP 패킷을 목적지인 서비스 서버(300)로 일반 TCP를 통해 전송한다.
이와 같은 TCP 패킷의 전송과 대비하여, 도 5에 나타낸 바와 같이 MPTCP 기능을 사용하지 않을 때의 TCP 패킷(즉, APP2에서 생성된 TCP 패킷)은 프록시 클라이언트 및 MP-GW를 거치지 않고, LTE 인터페이스 및 WiFi 인터페이스 중 어느 하나의 인터페이스를 통해서 서비스 서버(300)로 직접적으로 전송된다.
한편, 도 6은 도 2의 단말에 안드로이드 VPN 서비스가 적용된 모습의 개략도이다.
애플리케이션 설정부(APP Sellected)는 MPTCP 애플리케이션(MPTCP APP)으로부터 VPN 서비스를 받을 단말 애플리케이션(APP1)에 대한 정보를 화이트 리스트를 통해 수신해서 설정해둔다. 즉, 애플리케이션 설정부(APP Sellected)가 수신하는 화이트 리스트에는 VPN 서비스를 받을 단말 애플리케이션(APP1)의 정보가 포함되어 있다. 화이트 리스트에 포함되어 있는 단말 애플리케이션(APP1)에서 TCP 패킷이 생성될 경우, 상기 TCP 패킷은 VPN을 통해서 프록시 클라이언트(Proxy Client)로 전송된다.
단말(100)은 단말 애플리케이션(APP1)에서 생성되는 TCP 패킷에 대해 VPN 서비스를 제공하기 위해 가상의 네트워크 카드 디바이스인 TUN 드라이버(TCP 패킷을 받아들이기 위한 가상의 디바이스)를 생성하고, VPN 서비스를 이용하는 단말 애플리케이션(APP1)과 TUN 드라이버와의 상호작용을 위한 API를 제공한다.
TUN2SOCKS는 TUN 드라이버와 연결되어, VPN 서비스를 제공받는 단말 애플리케이션(APP1)에서 생성되어 TUN 드라이버로 들어오는 모든 TCP 패킷을 목적지 IP 주소와 관계없이 받아들인다. 그리고 TUN2SOCKS는 TUN 드라이버로부터 받아들인 TCP 패킷을 프록시 클라이언트를 경유하여 MP-GW(200)로 전송한다. 여기서, TUN2SOCKS는 다른 애플리케이션의 도움 없이 단말 애플리케이션(APP1)에서 생성되는 모든 TCP 패킷을 MP-GW(200)로 전송할 수 있다.
VPN 서비스를 적용한 단말(100)에서 MPTCP의 동작 과정을 순차적으로 설명하면 다음과 같다.
단말 애플리케이션(APP1)에서 생성되는 모든 TCP 패킷은 VPN 서비스를 실행하면서 생성되는 TUN 드라이버가 받아들인다. 그리고 단말(100)과 MP-GW(200)의 TCP 연결을 위해 TUN2SOCKS가 사용될 수 있는데, 이 TUN2SOCKS는 TCP 연결을 통해 TUN 드라이버가 받아들인 모든 TCP 패킷을 프록시 클라이언트를 경유하여 MP-GW(200)로 전송하는 역할을 한다.
특정 서비스를 이용하기 위해서 단말 애플리케이션(APP1)이 서비스 서버(300) 쪽으로 전송할 새로운 세션 요청(session request) 메시지를 생성하면, 이 메시지는 VPN의 TUN 드라이버로 흘러 들어가게 되고, 이후 TCP 연결에 의해 TUN2SOCKS 및 프록시 클라이언트를 거쳐 MP-GW(200)로 전송된다. MP-GW(200)에서는 상기 세션 요청 메시지를 서비스별 포트 매핑 테이블을 이용하여 리슨 포트(listen port)에 해당하는 서비스 서버(300)로 일반 TCP를 통해 전송한다.
한편, 서비스 서버(300)에서는 상기 세션 요청 메시지에 대한 응답 메시지를 단말 애플리케이션(APP1)에 전송한다. 이와 같이 생성된 세션을 통해 단말(100)과 서비스 서버(300)는 TCP 패킷을 주고 받을 수 있게 된다. 여기서, 단말(100)과 MP-GW(200)는 MPTCP 세션을 맺고, MP-GW(200)와 서비스 서버(300)는 일반 TCP 세션을 맺는다.
도 7은 VPN 서비스가 적용된 단말에서 MPTCP 기능을 사용하여 TCP 패킷을 처리하기 위한 제어 경로를 나타낸 도면으로서, 이하에서는 도 2 및 도 7을 참고하여 본 발명에 따른 다중 경로 환경에서의 TCP 패킷 처리 방법에 대해 설명한다.
본 발명에 따른 다중 경로 환경에서 생성되는 TCP 패킷을 처리하는 방법은, 가장 먼저 단말(100)에 미리 설치되어 있는 MPTCP 애플리케이션(MPTCP APP)이 사용자에 의해 실행되는 단계가 이루어진다.
단말(100)에서 MPTCP 애플리케이션이 실행될 경우, MPTCP 애플리케이션은 MP-Manager(400)에 DNS 요청을 하게 되며, MP-Manager(400)는 DNS 응답 메시지를 통해 상기 MPTCP 애플리케이션에 단말의 IP 주소를 전송한다.
이후 MPTCP 애플리케이션은 MP-Manager(400)에 Policy 요청 메시지를 전송한다. 여기서, 상기 Policy 요청 메시지에는 단말의 ID(IMSI), LTE 인터페이스 IP 주소 등과 같은 단말(100)의 정보가 포함될 수 있다.
MP-Manager(400)에서는 상기 단말(100)의 정보를 통해 단말(100)의 인증 및 접근 제어를 수행하며, 이후 MPTCP 애플리케이션에 Policy 응답 메시지를 전송한다. 여기서, 상기 Policy 응답 메시지에는 TPC 패킷 처리를 위해 필요한 정보로서, MP-GW 리스트, 포트 리스트, 서비스 품질 클래스, 화이트 리스트, 블랙 리스트, 유효 시간, 그룹 코드, 키 옵션, 동작 모드 등이 포함될 수 있다(A1).
이후, MPTCP 애플리케이션은 MP-Manager(400)로부터 수신한 MP-GW 리스트를 프록시 클라이언트에 전송하여(A2), 프록시 클라이언트를 MP-GW 리스트에 포함된 MP-GW에 연결시킨다.
프록시 클라이언트가 MP-GW 리스트를 수신한 뒤 MP-GW 리스트에 포함된 MP-GW 중에 연결 가능한 MP-GW가 있다면, 프록시 클라이언트는 소정의 우선순위 순으로 연결 가능한 MP-GW와의 연결을 시도한다.
프록시 클라이언트가 MP-GW 리스트를 수신한 뒤 MP-GW 리스트에 포함된 MP-GW 중에 연결 가능한 MP-GW가 없을 경우, 프록시 클라이언트는 연결 가능한 MP-GW가 없음을 알리는 이벤트 메시지를 MPTCP 애플리케이션에 전달한다. 이 경우 MPTCP 애플리케이션은 상기 이벤트 메시지를 통해, 연결 가능한 MP-GW가 없음을 알게 되고 SOCKS 에러를 감지하게 된다(프록시 클라이언트와 연결 가능한 MP-GW가 없을 경우 SOCKS 에러가 발생함). 본 발명에서 VPN 서비스의 이용 여부는 MPTCP 애플리케이션에서 결정하게 된다. 만일 프록시 클라이언트와 연결 가능한 MP-GW가 없을 경우에는, 단말(100)에서 MPTCP 기능을 사용할 수 없기 때문에, MPTCP 애플리케이션은 VPN 서비스가 이용되지 않도록 하는 설정을 VPN에 내려주게 된다. 이 경우 TUN2SOCKS의 동작이 중지되며(이에 따라, VPN 서비스도 중지됨), 단말 애플리케이션(APP1)에서 생성되는 TCP 패킷은 프록시 클라이언트로 리다이렉션되지 않은 채, LTE 인터페이스와 WiFi 인터페이스 중 어느 하나의 인터페이스를 통해 서비스 서버(300)로 직접적으로 전송되게 된다.
한편, MPTCP 애플리케이션은 MP-Manager(400)로부터 수신한 화이트 리스트를 VPN에 전송하여(A3), 상기 화이트 리스트에 포함된 VPN 서비스를 받을 단말 애플리케이션(APP1)의 정보를 VPN에 설정시킨다. 즉, 상기 화이트 리스트에는 VPN 서비스를 받을 단말 애플리케이션(APP1)에 대한 정보가 포함되어 있다. 그리고 상기 화이트 리스트는 상술한 바와 같이 VPN의 애플리케이션 설정부(APP Sellected)에 전송되며, 이에 따라 상기 화이트 리스트에 포함되어 있는 단말 애플리케이션(APP1)에서 TCP 패킷이 생성될 경우, 생성된 TCP 패킷은 VPN을 통해서 프록시 클라이언트(Proxy Client)로 전송될 수 있게 된다.
한편, MPTCP 애플리케이션은 TCP 파라미터(TCP parameter)의 설정을 할 수 있으며 이 과정에서 단말 벤더에 의해 제공되는 TCP API를 이용할 수 있다. 또한, MPTCP 애플리케이션은 MPTCP 인에이블(Enable) 설정을 할 수 있으며 이 과정에서는 단말 벤더에 의해 제공되는 MPTCP API를 이용할 수 있다(A4). 참고로, 단말(100)에서 MPTCP 기능을 사용하지 않을 경우, MPTCP 애플리케이션은 상기 MPTCP API를 이용하여 MPTCP 디스에이블(Disable) 설정을 할 수 있다.
종래 MPTCP 솔루션에서는 단말(100)이 루트 권한이 필요한 TCP 커맨드를 사용하여 TCP 파라미터의 설정과, MPTCP 인에이블 설정 또는 MPTCP 디스에이블 설정을 하였지만, TCP 파라미터를 설정하기 위하여 단말 벤더에 의해 제공되는 TCP API를 이용하고, MPTCP 인에이블 설정(또는, 디스에이블 설정)을 하기 위하여 단말 벤더에 의해 제공되는 MPTCP API를 이용할 경우, 종래와 달리 단말(100)은 별도의 루트 권한이 필요하지 않게 된다. 다만, MPTCP 애플리케이션이 MPTCP 인에이블 설정(또는, MPTCP 디스에이블 설정)을 하는데 있어서 반드시 단말 벤더에 의해 제공되는 MPTCP API를 이용할 필요는 없으며, 예를 들어 단말(100) 자체에 MPTCP 기능의 사용 여부에 대한 설정 옵션이 제공되는 경우라 한다면, MPTCP API에 의한 MPTCP 인에이블 설정(또는, MPTCP 디스에이블 설정) 없이도 MPTCP 기능의 사용 여부가 결정될 수 있다.
프록시 클라이언트는 상술한 VPN 서비스를 통해서 상기 MP-GW 리스트에 포함되어 있는 MP-GW 중 연결 가능한 MP-GW(200)와 연결되며, 이러한 연결에 SOCKS5 프로토콜을 사용할 수 있다. 또한, 프록시 클라이언트는 사용자 이름(username)과 패스워드(password)를 자동으로 생성해서 MP-GW(200)에 전송하며, 이 경우 MP-GW(200)에서는 해석용 키를 생성해서 단말(100)의 인증 절차를 수행할 수 있다.
종래 MPTCP 솔루션에서는 단말 애플리케이션에서 생성되는 TCP 패킷의 처리를 위해 IP 테이블을 통한 TCP 패킷 리다이렉션을 사용하였고, 이를 위해 단말(100)은 루트 권한을 가질 것이 요구되었다. 이에 반해, 본 발명과 같이 VPN 서비스를 이용할 경우에는, 단말 애플리케이션에서 생성되는 TCP 패킷의 처리를 위해 IP 테이블을 사용할 필요가 없기 때문에, 단말은 루트 권한을 획득하지 않아도 된다.
단말(100)의 인증 절차가 이루어지고, 단말(100)이 MP-GW(200)와 MPTCP 세션을 맺게 되면, 단말 애플리케이션 실행 시 상기 단말 애플리케이션에서 생성되는 TCP 패킷은 MP-GW(200)로 전송되게 된다.
도 8은 VPN 서비스가 적용된 단말에서 MPTCP 기능을 사용할 때 TCP 패킷이 처리되는 모습을 개략적으로 나타낸 도면이다.
도 8을 참조하면, 사용자가 단말 애플리케이션(APP1)을 실행하면, 상기 단말 애플리케이션에서는 서비스 서버(300)를 목적지로 하는 TCP 패킷을 생성한다. 생성된 TCP 패킷은 목적지 IP 주소와 관계없이 VPN으로 흘러 들어가며, 이후 프록시 클라이언트를 거쳐 LTE 인터페이스와 WiFi 인터페이스로 나뉘어 MP-GW(200)로 전송된다. 이후 MP-GW(200)는 상기 TCP 패킷을 목적지인 서비스 서버(300)로 일반 TCP를 통해 전송한다.
도 9는 VPN 서비스가 적용된 단말에서 MPTCP 기능을 사용하지 않을 때 TCP 패킷이 처리되는 모습을 개략적으로 나타낸 도면이다.
도 9를 참조하면, MPTCP 기능을 사용하지 않는 단말의 경우에는 단말 애플리케이션(APP2)에서 생성된 TCP 패킷이 VPN을 통해 프록시 클라이언트로 리다이렉션되지 않은 채, LTE 인터페이스 및 WiFi 인터페이스 중 어느 하나의 인터페이스를 통해 서비스 서버(300)에 직접적으로 전송된다(도 9에서는 LTE 인터페이스를 통해 전송되는 것으로 도시함).
단말 애플리케이션에서 생성되는 TCP 패킷을 서비스 서버(300)에 MPTCP 기능을 사용하여 전송할 것인지, 아니면 MPTCP가 아닌 일반 TCP를 사용하여 전송할 것인지는 VPN 서비스의 이용 여부에 따라 결정될 수 있다. 단말(100)에 미리 설치된 MPTCP 애플리케이션을 실행함에 따라 MP-Manager(400)로부터 전달받는 Policy 응답 메시지에는 화이트 리스트가 포함될 수 있으며, 상기 화이트 리스트를 통해 단말 애플리케이션에서 생성되는 TCP 패킷을 MPTCP를 통해 전송할 것인지 여부, 및 TCP 패킷 처리에 VPN 서비스를 이용할 것인지 여부가 결정될 수 있다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위 뿐 아니라 그 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 단말
200: MP-GW
300: 서비스 서버
400: MP-Manager

Claims (3)

  1. 단말에 설치되어 있는 MPTCP(Multi-Path Transmission Control Protocol) 애플리케이션이 실행됨에 따라, 상기 MPTCP 애플리케이션이 MP-Manager에 Policy 요청 메시지를 전송하는 단계;
    상기 MP-Manager가 상기 MPTCP 애플리케이션에 MP-GW(MPTCP Proxy GateWay) 리스트 및 화이트 리스트가 포함된 Policy 응답 메시지를 전송하는 단계;
    상기 MPTCP 애플리케이션이 프록시 클라이언트에 상기 MP-GW 리스트를 전송하여, 상기 프록시 클라이언트를 상기 MP-GW 리스트에 포함된 MP-GW에 연결시키는 단계;
    상기 MPTCP 애플리케이션이 VPN(Virtual Private Network)에 상기 화이트 리스트를 전송하여, 상기 화이트 리스트에 포함된 VPN 서비스를 받을 단말 애플리케이션의 정보를 상기 VPN에 설정시키는 단계;
    상기 화이트 리스트에 포함된 VPN 서비스를 받을 단말 애플리케이션이 실행됨에 따라, 상기 화이트 리스트에 포함된 VPN 서비스를 받을 단말 애플리케이션에서 생성되는 TCP 패킷만이 상기 VPN 및 상기 프록시 클라이언트를 거쳐, LTE 인터페이스와 WiFi 인터페이스로 나뉘어 상기 MP-GW에 전송되는 단계; 및
    상기 MP-GW가 상기 TCP 패킷을 서비스 서버로 전송하는 단계;를 포함하며,
    상기 화이트 리스트에 포함되지 않은 단말 애플리케이션에서 생성되는 TCP 패킷은 상기 VPN을 통해 상기 프록시 클라이언트로 리다이렉션 되지 않은 채, 상기 LTE 인터페이스와 WiFi 인터페이스 중 어느 하나의 인터페이스를 통해 상기 서비스 서버로 직접적으로 전송되는 것을 특징으로 하는 다중 경로 환경에서 생성되는 TCP 패킷을 처리하는 방법.
  2. 제1항에 있어서,
    상기 프록시 클라이언트가 상기 MP-GW 리스트를 수신한 뒤, 상기 MP-GW 리스트에 포함된 MP-GW 중에 연결 가능한 MP-GW가 없을 경우, 연결 가능한 MP-GW가 없음을 알리는 이벤트 메시지를 상기 MPTCP 애플리케이션에 전달하고,
    상기 MPTCP 애플리케이션은 VPN 서비스가 이용되지 않도록 하는 설정을 상기 VPN에 내려줌으로써, 상기 단말 애플리케이션에서 생성되는 TCP 패킷이 상기 LTE 인터페이스와 상기 WiFi 인터페이스 중 어느 하나의 인터페이스를 통해 상기 서비스 서버로 직접적으로 전송되도록 하는 것을 특징으로 하는 다중 경로 환경에서 생성되는 TCP 패킷을 처리하는 방법.
  3. 제1항에 있어서,
    상기 프록시 클라이언트가 상기 MP-GW에 연결될 경우, 상기 프록시 클라이언트는 사용자 이름(username)과 패스워드(password)를 자동으로 생성해서 상기 MP-GW에 전송하고, 상기 MP-GW는 해석용 키를 생성해서 상기 단말의 인증 절차를 수행하는 것을 특징으로 하는 다중 경로 환경에서 생성되는 TCP 패킷을 처리하는 방법.
KR1020170037432A 2017-03-24 2017-03-24 다중 경로 환경에서 생성되는 tcp 패킷을 처리하는 방법 KR101970304B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170037432A KR101970304B1 (ko) 2017-03-24 2017-03-24 다중 경로 환경에서 생성되는 tcp 패킷을 처리하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170037432A KR101970304B1 (ko) 2017-03-24 2017-03-24 다중 경로 환경에서 생성되는 tcp 패킷을 처리하는 방법

Publications (2)

Publication Number Publication Date
KR20180108098A KR20180108098A (ko) 2018-10-04
KR101970304B1 true KR101970304B1 (ko) 2019-04-18

Family

ID=63863290

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170037432A KR101970304B1 (ko) 2017-03-24 2017-03-24 다중 경로 환경에서 생성되는 tcp 패킷을 처리하는 방법

Country Status (1)

Country Link
KR (1) KR101970304B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060242305A1 (en) * 2005-04-25 2006-10-26 Telefonaktiebolaget L M Ericsson (Publ) VPN Proxy Management Object
KR101678612B1 (ko) * 2015-06-17 2016-11-22 (주)넷비젼텔레콤 프록시 선택기와 각 프록시의 설정 제어를 이용한 단말 단위 실시간 정책 적용, 부하분산 및 장애 복구를 제공하는 서비스시스템 및 그 제어방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101746191B1 (ko) * 2014-06-27 2017-06-12 주식회사 케이티 다중 경로 통신을 위한 네트워크 장치 및 단말, 이들의 동작 방법, 그리고 동작 방법을 구현한 프로그램
KR102272838B1 (ko) 2014-11-11 2021-07-06 삼성전자주식회사 이동통신 네트워크를 통한 데이터 서비스 제공 방법 및 장치
KR101689012B1 (ko) * 2015-06-29 2016-12-22 주식회사 케이티 다중망 병합 전송을 위한 네트워크 장치 및 단말, 그리고 이들의 동작 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060242305A1 (en) * 2005-04-25 2006-10-26 Telefonaktiebolaget L M Ericsson (Publ) VPN Proxy Management Object
KR101678612B1 (ko) * 2015-06-17 2016-11-22 (주)넷비젼텔레콤 프록시 선택기와 각 프록시의 설정 제어를 이용한 단말 단위 실시간 정책 적용, 부하분산 및 장애 복구를 제공하는 서비스시스템 및 그 제어방법

Also Published As

Publication number Publication date
KR20180108098A (ko) 2018-10-04

Similar Documents

Publication Publication Date Title
US11683087B2 (en) Cloud based access solution for enterprise deployment
JP7263234B2 (ja) 通信のための方法、装置、システム、端末、およびアクセス・ネットワーク・デバイス
EP2738982B1 (en) Session association method, device and system
CN107409121B (zh) 用于多路径业务聚合的方法和布置
US11832352B2 (en) Service flow transmission method and apparatus and communications method and apparatus
US20150103772A1 (en) Routing of Traffic in a Multi-Domain Network
EP3154306B1 (en) Establishment of network connection
JP7361504B2 (ja) Ue及びsmf
KR102152130B1 (ko) 모바일 핫스팟
US20240015533A1 (en) Control apparatus for gateway in mobile communication system
US9532339B2 (en) Mobile network-based tenant network service implementation method, system, and network element
US10506493B2 (en) Device and a method for controlling an IP core network
KR101769344B1 (ko) 다중 경로 환경에서의 서비스 플로우 별 mp-gw 포트 매핑 방법 및 시스템
WO2021115429A1 (zh) 一种通信方法及装置
KR101481337B1 (ko) 소프트웨어 정의 네트워크 기반 이동통신 시스템 및 이의 단말 접속 처리 방법
US11129051B2 (en) Proxy equipment in a cellular telecommunication system
KR20170132608A (ko) 세션 연결을 위한 시그널링 방법, 그리고 이를 구현한 장치
KR20180003318A (ko) 다중망 병합 전송 시스템, 그리고 이의 동작 방법
KR101970304B1 (ko) 다중 경로 환경에서 생성되는 tcp 패킷을 처리하는 방법
EP3820184B1 (en) Telecommunication hub
EP3993554A1 (en) Qos alignment for non-3gpp tethering

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right