KR101501892B1 - 오픈플로우에 기반하여 서비스에 적합한 네트워크를 선택하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 - Google Patents
오픈플로우에 기반하여 서비스에 적합한 네트워크를 선택하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 Download PDFInfo
- Publication number
- KR101501892B1 KR101501892B1 KR20140063294A KR20140063294A KR101501892B1 KR 101501892 B1 KR101501892 B1 KR 101501892B1 KR 20140063294 A KR20140063294 A KR 20140063294A KR 20140063294 A KR20140063294 A KR 20140063294A KR 101501892 B1 KR101501892 B1 KR 101501892B1
- Authority
- KR
- South Korea
- Prior art keywords
- user terminal
- network
- address
- terminal device
- service
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
본 발명의 일 태양에 따르면, 오픈플로우(OpenFlow)에 기반하여 서비스에 적합한 네트워크를 선택하기 위한 방법으로서, (a) 오픈플로우 컨트롤러(Controller)가, 사용자 단말 장치 및 상기 사용자 단말 장치와 통신하는 호스트(Host) 사이에서 제공되는 서비스를 식별하는 단계, (b) 상기 오픈플로우 컨트롤러가, 상기 사용자 단말 장치의 가입자 정보를 참조로 하여 상기 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크를 식별하는 단계, 및 (c) 상기 오픈플로우 컨트롤러가, 상기 사용자 단말 장치 및 상기 호스트 사이의 통신 경로 상에 존재하는 적어도 하나의 오픈플로우 스위치에 적용되는 플로우 룰(Flow Rule)를 제어함으로써, 상기 사용자 단말 장치 및 상기 호스트 사이에서 제공되는 상기 식별된 서비스에서 발생하는 데이터 트래픽(Data Traffic)이 상기 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크 중 상기 식별된 서비스에 대응되는 네트워크를 통해 전송되도록 하는 단계를 포함하는 방법이 제공된다. 본 발명에 의하면, 오픈플로우 컨트롤러가 오픈플로우 스위치에 적용되는 플로우 룰을 제어하는 것만으로도 네트워크에 걸리는 트래픽 부하를 감소시키고 통신 속도를 향상시킬 수 있게 되는 효과가 달성된다.
Description
본 발명은 오픈플로우(OpenFlow)에 기반하여 서비스에 적합한 네트워크를 선택하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체에 관한 것으로, 보다 상세하게는, 사용자 단말 장치 및 호스트(Host) 사이에서 제공되는 서비스를 식별하고, 사용자 단말 장치의 가입자 정보를 참조로 하여 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크를 식별하고, 사용자 단말 장치 및 호스트 사이의 통신 경로 상에 존재하는 적어도 하나의 오픈플로우 스위치에 적용되는 플로우 룰(Flow Rule)를 제어함으로써, 사용자 단말 장치 및 호스트 사이에서 제공되는 위의 식별된 서비스에서 발생하는 데이터 트래픽(Data Traffic)이 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크 중 위의 식별된 서비스에 대응되는 네트워크를 통해 전송되도록 하는 방법, 장치 및 컴퓨터 판독 가능한 기록 매체에 관한 것이다.
최근 통신시장의 이슈로 급부상한 소프트웨어 정의 네트워크(SDN: Software Defined Network)는 소프트웨어 프로그래밍을 통해 네트워크 경로 설정 및 제어를 비롯한 복잡한 운용 관리를 편리하게 처리할 수 있는 차세대 네트워킹 기술이다. 이를 위해 SDN에서는 네트워크의 데이터 평면(data plane)과 제어 평면(control plane)을 분리하고 이 사이에 표준화된 인터페이스를 제공하며, 네트워크 운용자가 여러 상황에 맞추어 제어 평면을 프로그래밍함으로써 데이터 평면에서 이루어지는 통신 기능을 다양한 방식으로 제어할 수 있다.
종래의 인터넷 벤더의 라우터(스위치)는 제어 평면, 데이터 평면 및 관리 기능을 비롯한 여타 응용 기능들을 모두 하드웨어 제품 내에 내장하고 있으며, 그 설정 방법도 각 벤더마다 다르게 정의되어 있다. 이러한 라우터에서 사용하는 프로토콜들은 IETF를 비롯한 표준화 단체에 의해 결정되므로 네트워크 운용자가 필요로 하는 특수한 기능을 만들어 넣을 여지가 없다. 또한, 벤더의 프로토타입 구현과 기존의 다양한 장치들과의 호환성 시험을 위해서는 적지 않은 시간과 비용이 소요된다. 이러한 문제들을 해소하기 위한 기술로 연구되어 온 기술이 오픈플로우(OpenFlow)이다.
오픈플로우 기술을 이용하면, 기존의 네트워크에서 구성할 수 없던 정교하고도 맞춤화된 경로를 구성할 수 있으므로, 트래픽 패턴의 변화에 효과적으로 대처할 수 있고 가상 머신(VM: Virtual Machine)의 생성, 삭제 또는 이동이 빈번해지는 클라우드 환경에서 필요한 가상 네트워크를 빠르게 구성할 수 있다는 장점이 있다. 또한, 오픈플로우 기술을 이용하면, 종래의 벤더 별로 달리 정의된 복잡하고도 다양한 설정에 얽매일 필요 없이 네트워크 하부의 멀티벤더 장치들을 통합적으로 제어할 수 있게 되는 장점이 있다. 나아가, 오픈플로우 기술은 네트워크 운용자가 소프트웨어를 이용하여 네트워크를 제어하는 기술이므로, 오픈플로우 기술을 이용하면 각 네트워크 운용자가 원하는 정교하고도 맞춤화된 정책을 네트워크에 쉽게 반영시킬 수 있게 되는 장점이 있다.
이에, 본 발명자는, 오픈플로우를 기반으로 하여 사용자 단말 장치(특히, 모바일 단말 장치)가 연결되는 네트워크를 동적으로 선택할 수 있는 기술을 개발하기에 이르렀다.
본 발명은 상술한 문제점을 모두 해결하는 것을 그 목적으로 한다.
또한, 본 발명은 사용자 단말 장치 및 호스트(Host) 사이에서 제공되는 서비스를 식별하고, 사용자 단말 장치의 가입자 정보를 참조로 하여 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크를 식별하고, 사용자 단말 장치 및 호스트 사이의 통신 경로 상에 존재하는 적어도 하나의 오픈플로우 스위치에 적용되는 플로우 룰(Flow Rule)를 제어하여, 사용자 단말 장치 및 호스트 사이에서 제공되는 위의 식별된 서비스에서 발생하는 데이터 트래픽(Data Traffic)이 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크 중 위의 식별된 서비스에 대응되는 네트워크를 통해 전송되도록 함으로써, 사용자 단말 장치와 호스트 사이에서 제공되는 서비스에 적합한 네트워크가 선택될 수 있도록 하는 것을 다른 목적으로 한다.
상기 목적을 달성하기 위한 본 발명의 대표적인 구성은 다음과 같다.
본 발명의 일 태양에 따르면, 오픈플로우(OpenFlow)에 기반하여 서비스에 적합한 네트워크를 선택하기 위한 방법으로서, (a) 오픈플로우 컨트롤러(Controller)가, 사용자 단말 장치 및 상기 사용자 단말 장치와 통신하는 호스트(Host) 사이에서 제공되는 서비스를 식별하는 프로세스 및 상기 사용자 단말 장치의 가입자 정보를 참조로 하여 상기 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크를 식별하는 프로세스를 수행하는 단계, 및 (b) 상기 오픈플로우 컨트롤러가, 상기 사용자 단말 장치 및 상기 호스트 사이의 통신 경로 상에 존재하는 적어도 하나의 오픈플로우 스위치에 적용되는 플로우 룰(Flow Rule)를 제어함으로써, 상기 사용자 단말 장치 및 상기 호스트 사이에서 제공되는 상기 식별된 서비스에서 발생하는 데이터 트래픽(Data Traffic)이 상기 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크 중 상기 식별된 서비스에 대응되는 네트워크를 통해 전송되도록 하는 단계를 포함하는 방법이 제공된다.
본 발명의 다른 태양에 따르면, 오픈플로우(OpenFlow)에 기반하여 서비스에 적합한 네트워크를 선택하기 위한 방법으로서, (a) 오픈플로우 스위치(Switch)가, 자신과 연결되어 있는 적어도 하나의 네트워크의 기지국에 사용자 단말 장치가 연결되면, 상기 사용자 단말 장치에 관한 정보를 오픈플로우 컨트롤러(Controller)에게 전송하는 단계, 및 (b) 상기 오픈플로우 스위치가, 상기 오픈플로우 컨트롤러로부터 전송되는 플로우 룰(Flow Rule)에 관한 정보를 참조로 하여 상기 사용자 단말 장치 및 상기 사용자 단말 장치와 통신하는 호스트(Host) 사이에서 제공되는 서비스에서 발생하는 데이터 트래픽(Data Traffic)이 상기 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크 중 상기 서비스에 대응되는 네트워크를 통해 전송되도록 하는 단계를 포함하는 방법이 제공된다.
본 발명의 또 다른 태양에 따르면, 오픈플로우(OpenFlow)에 기반하여 서비스에 적합한 네트워크를 선택하기 위한 장치로서, 사용자 단말 장치 및 상기 사용자 단말 장치와 통신하는 호스트(Host) 사이에서 제공되는 서비스를 식별하는 단말 정보 수집부, 및 상기 사용자 단말 장치의 가입자 정보를 참조로 하여 상기 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크를 식별하고, 상기 사용자 단말 장치 및 상기 호스트 사이의 통신 경로 상에 존재하는 적어도 하나의 오픈플로우 스위치에 적용되는 플로우 룰(Flow Rule)를 제어함으로써, 상기 사용자 단말 장치 및 상기 호스트 사이에서 제공되는 상기 식별된 서비스에서 발생하는 데이터 트래픽(Data Traffic)이 상기 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크 중 상기 식별된 서비스에 대응되는 네트워크를 통해 전송되도록 하는 네트워크 제어부를 포함하는 장치가 제공된다.
본 발명의 또 다른 태양에 따르면, 오픈플로우(OpenFlow)에 기반하여 서비스에 적합한 네트워크를 선택하기 위한 장치로서, 자신과 연결되어 있는 적어도 하나의 네트워크의 기지국에 사용자 단말 장치가 연결되면, 상기 사용자 단말 장치에 관한 정보를 오픈플로우 컨트롤러(Controller)에게 전송하는 단말 정보 모니터링부, 및 상기 오픈플로우 컨트롤러로부터 전송되는 플로우 룰(Flow Rule)에 관한 정보를 참조로 하여 상기 사용자 단말 장치 및 상기 사용자 단말 장치와 통신하는 호스트(Host) 사이에서 제공되는 서비스에서 발생하는 데이터 트래픽(Data Traffic)이 상기 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크 중 상기 서비스에 대응되는 네트워크를 통해 전송되도록 하는 플로우 처리부를 포함하는 장치가 제공된다.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 장치 및 상기 방법을 실행하기 위한 컴퓨터 프로그램을 기록하기 위한 컴퓨터 판독 가능한 기록 매체가 더 제공된다.
본 발명에 의하면, 네트워크에 걸리는 트래픽(Traffic) 부하를 감소시키고 통신 속도를 향상시킬 수 있게 되는 효과가 달성된다.
또한, 본 발명에 의하면, 오픈플로우 컨트롤러(OpenFlow Controller) 및 오픈플로우 스위치(OpenFlow Switch)로 구성되는 오픈플로우 네트워크 기술을 이용하여 사용자 단말 장치 및 해당 사용자 단말 장치와 통신하는 호스트(Host) 사이의 통신 경로를 동적으로 제어할 수 있으므로, 오픈플로우 컨트롤러가 오픈플로우 스위치에 적용되는 플로우 룰(Flow Rule)을 제어하는 것만으로도 사용자 단말 장치 및 호스트를 연결하는 네트워크를 사용자 단말 장치 및 호스트 사이에서 제공되는 서비스에 적합한 네트워크로 손쉽게 변경(즉, 선택)할 수 있게 되는 효과가 달성된다.
또한, 본 발명에 의하면, 연결 가능한 다양한 종류의 네트워크 중 서비스에 적합한 네트워크와 자동으로 연결될 수 있으므로, 종래에 사용자가 자신의 사용자 단말 장치가 연결되어야 할 네트워크를 일일이 직접 설정해야 하는 불편을 해소할 수 있게 되는 효과가 달성된다.
도 1은 본 발명에 따라 오픈플로우에 기반하여 서비스에 적합한 네트워크를 선택하기 위한 전체 시스템의 구성을 개략적으로 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 오픈플로우 컨트롤러의 내부 구성을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따라 오픈플로우 컨트롤러 및 오픈플로우 스위치에 의하여 관리되는 플로우 테이블의 구성을 예시적으로 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따라 사용자 단말 장치가 연결되는 서비스에 적합한 네트워크를 선택하는 과정을 예시적으로 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 오픈플로우 컨트롤러의 내부 구성을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따라 오픈플로우 컨트롤러 및 오픈플로우 스위치에 의하여 관리되는 플로우 테이블의 구성을 예시적으로 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따라 사용자 단말 장치가 연결되는 서비스에 적합한 네트워크를 선택하는 과정을 예시적으로 나타내는 도면이다.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다.
이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다.
전체 시스템의 구성
도 1은 본 발명에 따라 오픈플로우(OpenFlow)에 기반하여 서비스에 적합한 네트워크를 선택하기 위한 전체 시스템의 구성을 개략적으로 나타내는 도면이다.
도 1에 도시되어 있는 바와 같이, 본 발명의 전체 시스템은 오픈플로우 컨트롤러(OpenFlow Controller)(100), 오픈플로우 스위치(OpenFlow Switch)(210 내지 260), 각종 네트워크의 기지국(310, 320, 330, 340), 적어도 하나의 사용자 단말 장치(410, 420), 각종 네트워크의 코어 네트워크(Core Network)(510, 520, 530), 공중 데이터 네트워크(600), 인터넷 서비스 제공자(ISP: Internet Service Provider)의 네트워크(700), 가입자 정보 관리 서버(800) 및 적어도 하나의 호스트(Host)(900)를 포함하여 구성될 수 있다.
먼저, 본 발명의 일 실시예에 따르면, 오픈플로우 컨트롤러(100)는 사용자 단말 장치(410, 420) 및 호스트(900) 사이에서 제공되는 서비스를 식별하고, 사용자 단말 장치(410, 420)의 가입자 정보를 참조로 하여 사용자 단말 장치(410, 420)가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크를 식별하고, 사용자 단말 장치(410, 420) 및 호스트(900) 사이의 통신 경로 상에 존재하는 적어도 하나의 오픈플로우 스위치(210 내지 260)에 적용되는 플로우 룰(Flow Rule)를 제어함으로써, 사용자 단말 장치(410, 420) 및 호스트(900) 사이에서 제공되는 위의 식별된 서비스에서 발생하는 데이터 트래픽(Data Traffic)이 해당 사용자 단말 장치(410, 420)가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크 중 위의 식별된 서비스에 대응되는 네트워크(즉, 위의 식별된 서비스에서 발생하는 데이터 트래픽을 전송하기에 적합한 네트워크)를 통해 전송되도록 하는 기능을 수행한다.
다음으로, 본 발명의 일 실시예에 따르면, 오픈플로우 스위치(210 내지 260)는 자신과 연결되어 있는 적어도 하나의 네트워크의 기지국(310 내지 340)에 사용자 단말 장치(410, 420)가 연결되면 해당 사용자 단말 장치(410, 420)에 관한 정보(즉, 해당 사용자 단말 장치(410, 420)의 식별 정보를 의미하며, 경우에 따라서는 가입자 정보까지 포함할 수 있음)를 오픈플로우 컨트롤러(100)에게 전송하고, 오픈플로우 컨트롤러(100)로부터 전송되는 플로우 룰에 관한 정보를 참조로 하여 사용자 단말 장치(410, 420) 및 호스트(900) 사이에서 제공되는 서비스에서 발생하는 데이터 트래픽이 해당 사용자 단말 장치(410, 420)가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크 중 해당 서비스에 대응되는 네트워크(즉, 해당 서비스에서 발생하는 데이터 트래픽을 전송하기에 적합한 네트워크)를 통해 전송되도록 하는 기능을 수행한다. 구체적으로, 본 발명의 일 실시예에 따른 오픈플로우 스위치(210 내지 260)는 위의 언급된 기능을 수행할 수 있는 내부 구성요소로서 단말 정보 모니터링부(미도시됨) 및 플로우 처리부(미도시됨)를 포함할 수 있다. 단말 정보 모니터링부는 자신과 연결되어 있는 적어도 하나의 네트워크의 기지국(310 내지 340)에 사용자 단말 장치(410, 420)가 연결되면 해당 사용자 단말 장치(410, 420)에 관한 정보(즉, 해당 사용자 단말 장치(410, 420)의 식별 정보를 의미하며, 경우에 따라서는 가입자 정보를 포함할 수 있음)를 오픈플로우 컨트롤러(Controller)에게 전송하는 기능을 수행하고, 플로우 처리부는 오픈플로우 컨트롤러(100)로부터 전송되는 플로우 룰에 관한 정보를 참조로 하여 사용자 단말 장치(410, 420) 및 호스트(900) 사이에서 제공되는 서비스에서 발생하는 데이터 트래픽이 해당 사용자 단말 장치(410, 420)가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크 중 해당 서비스에 대응되는 네트워크(즉, 해당 서비스에서 발생하는 데이터 트래픽을 전송하기에 적합한 네트워크)를 통해 전송되도록 하는 기능을 수행한다.
오픈플로우 컨트롤러(100) 및 오픈플로우 스위치(210 내지 260)의 구성에 대한 보다 자세한 설명은 후술하기로 한다.
다음으로, 본 발명의 일 실시예에 따르면, 각종 네트워크의 기지국(310, 320, 330, 340)은 사용자 단말 장치(410, 420)와 무선으로 연결되어 사용자 단말 장치(410, 420)가 기지국(310, 320, 330, 340)을 통하여 오픈플로우 스위치(210 내지 260), 코어 네트워크(510, 520), 공중 데이터 네트워크(600), ISP 네트워크(700), 호스트(900) 등과 통신할 수 있도록 하는 기능을 수행할 수 있다. 따라서, 사용자 단말 장치(410, 420)를 목적지로 하는 패킷이나 사용자 단말 장치(410, 420)를 출발지로 하는 패킷은 기지국(310, 320, 330, 340)을 거치게 된다. 예를 들면, 본 발명의 일 실시예에 따른 기지국(310, 320, 330, 340)에는 일반적인 기지국이나 HNB(Home Node B), HeNB(Home eNode B)과 같은 펨토셀(Femtocell)이나 Wi-Fi와 같은 무선 액세스 포인트(WAP: Wireless Access Point)가 포함될 수 있으나 반드시 이에 한정되는 것은 아니다.
다음으로, 본 발명의 일 실시예에 따르면, 사용자 단말 장치(410, 420)는 네트워크에 접속하여 서로 통신할 수 있는 기능을 갖는 기기로서, 개인용 컴퓨터(예를 들어, 데스크탑 컴퓨터, 노트북 컴퓨터 등), 워크스테이션, PDA, 태블릿 컴퓨터, 스마트폰, 이동 전화기, IPTV 수신기 등과 같이 메모리 수단을 구비하고 마이크로 프로세서를 탑재하여 연산 능력을 갖춘 기기라면 얼마든지 본 발명에 따른 사용자 단말 장치(410, 420)가 될 수 있다.
한편, 본 발명의 일 실시예에 따르면, 사용자 단말 장치(410, 420)는 자신이 접속(즉, 연결)될 수 있는 네트워크의 종류마다 서로 다른 실제(Real) IP 주소를 가질 수 있다. 그런데, 본 발명의 일 실시예에 따라 사용자 단말 장치(410, 420)가 연결되는 네트워크를 동적으로 변경(즉, 선택)하기 위해서는, 사용자 단말 장치(410, 420)의 외부에서 보았을 때 해당 사용자 단말 장치(410, 420)의 IP 주소가 하나의 IP 주소로서 특정될 필요가 있다. 따라서, 본 발명의 일 실시예에 따르면, 사용자 단말 장치(410, 420)는 서로 다른 종류의 복수의 네트워크에 각각 대응되는 서로 다른 복수의 실제 IP 주소를 가상화하여 해당 사용자 단말 장치(410, 420)를 대표할 수 있는 하나의 가상(Virtual) IP 주소를 가질 수 있다. 이와 관련하여, 본 발명의 일 실시예에 따르면, 코어 네트워크(510 내지 530) 또는 가입자 정보 관리 서버(800)는 사용자 단말 장치(410, 420)가 가지는 적어도 하나의 실제 IP 주소 및 가상 IP 주소에 관한 정보를 보유하고 있을 수 있다.
구체적으로, 본 발명의 일 실시예에 따르면, 사용자 단말 장치(410, 420)는 앞서 설명된 하나의 가상 IP 주소에 대응되는 하나의 가상 인터페이스(Virtual Interface)를 통하여 여러 종류의 네트워크를 통해 전송된 패킷을 한꺼번에 수신할 수 있다.
또한, 본 발명의 일 실시예에 따르면, 사용자 단말 장치(410, 420) 및 해당 사용자 단말 장치(410, 420)와 연결되어 있는 오픈플로우 스위치(210 내지 260)가 오픈플로우 스위치(210 내지 260)와 사용자 단말 장치(410, 420) 사이의 구간에서 전송되는 패킷에 외부 IP 헤더(Outer IP Header)가 부가되도록 할 수 있으며, 이로써 사용자 단말 장치(410, 420)와 오픈플로우 스위치(210 내지 260) 사이의 구간에 해당 사용자 단말 장치(410, 420)의 네트워크별 실제 IP 주소에 대응되는 터널링(tunneling) 구간이 생성될 수 있다. 참고로, 이러한 방법은 사용자 단말 장치(410, 420)가 가상 인터페이스를 지원하지 않는 경우 또는 가상 인터페이스를 사용할 수 없는 경우에 적용될 수 있다.
사용자 단말 장치(410, 420)가 오픈플로우 스위치(210 내지 260)를 거쳐 호스트(900)에게 패킷을 전송하는 경우를 예로 들어 구체적으로 설명하면 다음과 같다.
먼저, 사용자 단말 장치(410, 420)는 데스티네이션 IP 주소 및 소스 IP 주소가 각각 호스트(900)의 IP 주소(A1) 및 사용자 단말 장치(410, 420)의 가상 IP 주소(VIP)인 패킷을 전송함에 있어서 해당 패킷에 외부 IP 헤더를 부가할 수 있는데(즉, 인캡슐레이션(Encapsulation)), 이러한 외부 IP 헤더에는 해당 사용자 단말 장치(410, 420)와 연결되어 있는 오픈플로우 스위치(210 내지 260)의 IP 주소(S1) 및 해당 사용자 단말 장치(410, 420)의 네트워크별 실제 IP 주소(N1, N2 등)가 각각 외부 데스티네이션 IP 주소 및 외부 소스 IP 주소로서 포함될 수 있고, 이러한 외부 IP 헤더에 의하여 해당 패킷의 데스티네이션 IP 주소는 해당 사용자 단말 장치(410, 420)와 통신하는 호스트(900)의 IP 주소(A1)가 아닌 해당 사용자 단말 장치(410, 420)와 연결되어 있는 오픈플로우 스위치(210)의 IP 주소(S1)로서 설정될 수 있으며, 이에 따라 해당 패킷은 네트워크별로 정의된 인터페이스를 통하여 해당 사용자 단말 장치(410, 420)와 연결되어 있는 오픈플로우 스위치(210 내지 260)로 전달될 수 있게 된다.
다음으로, 사용자 단말 장치(410, 420)로부터 외부 IP 헤더가 부가된 패킷을 전달 받은 오픈플로우 스위치(210 내지 260)는 해당 패킷에 부가되었던 외부 IP 헤더를 제거함으로써 해당 패킷의 데스티네이션 IP 주소 및 소스 IP 주소가 각각 다시 호스트(900)의 IP 주소(A1) 및 사용자 단말 장치(410, 420)의 가상 IP 주소(VIP)가 되도록 되돌릴 수 있으며(즉, 디캡슐레이션(Decapsulation)), 이에 따라 해당 패킷은 호스트(900)로 정상적으로 전달될 수 있게 된다.
반대로, 호스트(900)가 오픈플로우 스위치(210 내지 260)를 거쳐 사용자 단말 장치(410, 420)에게 패킷을 전송하는 경우에는, 오픈플로우 스위치(210 내지 260)가 앞서 설명된 인캡슐레이션 과정을 수행하고 사용자 단말 장치(410, 420)가 앞서 설명된 디캡슐레이션 과정을 수행할 수 있을 것이다.
다음으로, 본 발명의 일 실시예에 따르면, 코어 네트워크(510, 520)는 사용자 단말 장치(410, 420)가 가입된 이동통신사에 의하여 운영되는 네트워크를 가리키는 것으로서, 기지국(310, 320)으로부터 전달되는 패킷을 코어 네트워크에 전달하여 주는 역할을 수행하는 백홀(backhaul) 네트워크(미도시됨)를 포함할 수 있다.
다음으로, 본 발명의 일 실시예에 따르면, 가입자 정보 관리 서버(800)는 사용자 단말 장치(410, 420)가 가입된 이동통신사에 의하여 관리되는 서버로서, 사용자 단말 장치(410, 420)가 이동통신사의 코어 네트워크(510, 520, 530), 공중 데이터 네트워크 등과 연결되어 통신하는 데에 필요한 정보를 관리하는 기능을 수행할 수 있으며, 특히, 사용자 단말 장치(410, 420)가 3G 네트워크, 4G 네트워크, 5G 네트워크, 공중 데이터 네트워크 등의 각종 네트워크에 연결(즉, 접속)될 수 있는 권한 또는 기능을 가지고 있는지 여부에 관한 정보, 사용자 단말 장치(410, 420)가 연결될 수 있는 각종 네트워크 사이의 우선 순위에 관한 정보, 사용자 단말 장치(410, 420)의 가상 IP 주소에 관한 정보 등을 오픈플로우 컨트롤러(100)에게 제공하는 기능을 수행할 수 있다.
다음으로, 본 발명의 일 실시예에 따르면, 호스트(900)는 사용자 단말 장치(410, 420)와 통신하는 상대방이 되는 클라이언트 또는 서버를 의미하는데, 네트워크에 접속하여 서로 통신할 수 있는 기능을 갖는 기기로서, 각종 서버, 개인용 컴퓨터(예를 들어, 데스크탑 컴퓨터, 노트북 컴퓨터 등), 워크스테이션, PDA, 태블릿 컴퓨터, 스마트폰, 이동 전화기, IPTV 수신기 등과 같이 메모리 수단을 구비하고 마이크로 프로세서를 탑재하여 연산 능력을 갖춘 기기라면 얼마든지 본 발명에 따른 호스트(900)가 될 수 있다. 예를 들면, 본 발명에 따른 호스트(900)는 동영상 서비스를 제공하는 유투브(YouTube)의 서비스 제공 서버, 게임 서비스를 제공하는 애니팡의 서비스 제공 서버, 클라우드 서비스를 제공하는 아이클라우드(iCloud)의 서비스 제공 서버, 이메일 서비스를 제공하는 지메일(Gmail)의 서비스 제공 서버 등을 포함할 수 있으며, 서버가 아닌 다른 사용자 단말 장치를 포함할 수도 있다.
오픈플로우 컨트롤러(100) 및 오픈플로우 스위치(210 내지 260)의 구성
이하에서는, 본 발명의 구현을 위하여 중요한 기능을 수행하는 오픈플로우 컨트롤러(100) 및 오픈플로우 스위치(210 내지 260)의 내부 구성 및 구체적인 기능에 대하여 살펴보기로 한다.
도 2는 본 발명의 일 실시예에 따른 오픈플로우 컨트롤러(100)의 내부 구성을 나타내는 도면이다.
도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 오픈플로우 컨트롤러(100)는 단말 정보 수집부(110) 및 네트워크 제어부(120)를 포함할 수 있다. 본 발명의 일 실시예에 따르면, 단말 정보 수집부(110) 및 네트워크 제어부(120)는 그 중 적어도 일부가 외부 시스템과 통신하는 프로그램 모듈들일 수 있다. 이러한 프로그램 모듈들은 운영 시스템, 응용 프로그램 모듈 및 기타 프로그램 모듈의 형태로 오픈플로우 컨트롤러(100)에 포함될 수 있으며, 물리적으로는 여러 가지 공지의 기억 장치 상에 저장될 수 있다. 또한, 이러한 프로그램 모듈 중 적어도 일부는 오픈플로우 컨트롤러(100)와 통신 가능한 원격 기억 장치에 저장될 수도 있다. 한편, 이러한 프로그램 모듈들은 본 발명에 따라 후술할 특정 업무를 수행하거나 특정 추상 데이터 유형을 실행하는 루틴, 서브루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포괄하지만, 이에 제한되지는 않는다.
먼저, 본 발명의 일 실시예에 따르면, 단말 정보 수집부(110)는 각종 네트워크의 기지국(310, 320, 330, 340)에 연결되어 호스트(900)와 통신하는 사용자 단말 장치(410, 420)에 관한 정보(예를 들면, 해당 사용자 단말 장치의 식별 번호 등)를 획득하는 기능을 수행할 수 있다. 구체적으로, 본 발명의 일 실시예에 따른 단말 정보 수집부(110)는 각종 네트워크 기지국(310, 320, 330, 340)과 연결되어 있는 오픈플로우 스위치(210 내지 260)로부터 사용자 단말 장치(410, 420)에 관한 정보를 제공 받을 수 있다.
또한, 본 발명의 일 실시예에 따르면, 단말 정보 수집부(110)는 가입자 정보 관리 서버(800)로부터 또는 사용자 단말 장치(410, 420)와 연결되어 있는 오픈플로우 스위치(210 내지 260)로부터 사용자 단말 장치(410, 420)의 가입자 보를 획득하는 기능을 수행할 수 있다.
또한, 본 발명의 일 실시예에 따르면, 단말 정보 수집부(110)는 사용자 단말 장치(410, 420) 및 사용자 단말 장치(410, 420)와 통신하는 호스트(900) 사이에서 제공되는 서비스를 식별하는 기능을 수행할 수 있다. 다만, 사용자 단말 장치(410, 420) 및 호스트(900) 사이에서 제공되는 서비스를 식별하는 기능이 반드시 단말 정보 수집부(110)에 의하여 수행되어야 하는 것은 아니며, 단말 정보 수집부(110)가 아닌 별개의 구성요소(미도시됨)에 의하여 수행될 수도 있음을 밝혀 둔다.
여기서, 사용자 단말 장치(410, 420) 및 호스트(900) 사이에서 제공되는 서비스에는, 유투브와 같은 동영상 서비스, 애니팡과 같은 게임 서비스, 아이클라우드와 같은 클라우드 서비스, 지메일과 같은 이메일 서비스 등의 다양한 서비스가 포함될 수 있으며, 후술할 바와 같이, 서비스의 유형에 따라 혹은 관리자나 사용자에 의하여 기설정된 바에 따라 각 서비스에는 해당 서비스에서 발생하는 데이터 트래픽을 전송하기에 적합한 특정 종류의 네트워크가 대응되어 있을 수 있다.
구체적으로, 본 발명의 일 실시예에 따르면, 서비스와 네트워크 사이의 대응 관계는 서비스 제공자 또는 사용자 단말 장치(410, 420)의 사용자에 의하여 기설정될 수 있다. 또한, 본 발명의 일 실시예에 따르면, 서비스와 네트워크 사이의 대응 관계는 서비스 또는 네트워크의 속성에 따라 기설정될 수 있다.
예를 들면, 대용량의 컨텐츠를 실시간으로 제공할 필요가 있는 동영상 서비스에는 전송 속도가 가장 빠른 5G 네트워크(530)가 대응될 수 있고, 상대적으로 저용량의 컨텐츠를 실시간으로 제공할 필요가 있는 게임 서비스 또는 이메일 서비스에는 3G 네트워크(510) 또는 4G 네트워크(520)가 대응될 수 있고, 대용량 데이터의 송수신을 수반하지만 반드시 실시간으로 제공될 필요가 없는 클라우드 서비스에는 공중 데이터 네트워크(540)이 대응될 수 있다.
다른 예를 들면, 사용자 단말 장치(410, 420) 및 호스트(900) 사이에서 제공되는 서비스가, 호스트(900)가 복수의 사용자 단말 장치(410, 420)에 대하여 데이터 트래픽을 발생시키는(즉, 호스트(900)가 복수의 사용자 단말 장치(410, 420)에 대하여 동일한 컨텐츠를 제공하는) 멀티캐스트(Multicast) 서비스인 경우에, 해당 멀티캐스트 서비스에서 발생하는 데이터 트래픽이 4G 네트워크 또는 5G 네트워크와 같은 특정 네트워크를 통하여만 전송되도록 함으로써 해당 네트워크를 제외한 다른 네트워크에서 해당 멀티캐스트 서비스로 인한 불필요한 트래픽이 발생하는 것을 방지할 수 있게 된다.
다음으로, 본 발명의 일 실시예에 따르면, 네트워크 제어부(120)는 사용자 단말 장치(410, 420)의 가입자 정보를 참조로 하여 해당 사용자 단말 장치(410, 420)가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크를 식별하는 기능을 수행할 수 있다. 여기서, 본 발명의 일 실시예에 따르면, 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크에는 3G 네트워크, 4G 네트워크, 5G 네트워크 및 공중 데이터 네트워크(Public Data Network) 중 어느 하나가 포함될 수 있다. 예를 들면, 사용자 단말 장치가 4G 네트워크에 가입되어 있어서 4G 네트워크에 접속(즉, 연결)될 수 있는 권한 또는 기능을 가지고 있고 Wi-Fi를 통해 공중 데이터 네트워크에 접속될 수 있는 기능을 갖추고 있는 경우에, 해당 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크는 4G 네트워크 및 공중 데이터 네트워크일 수 있다.
또한, 본 발명의 일 실시예에 따르면, 네트워크 제어부(120)는, 앞서 식별된 정보, 즉, 사용자 단말 장치(410, 420) 및 호스트(900) 사이에서 제공되는 서비스에 관한 정보 및 사용자 단말 장치(410, 420)가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크에 관한 정보를 참조로 하여, 사용자 단말 장치(410, 420)가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크 중 사용자 단말 장치(410, 420) 및 호스트(900) 사이에서 제공되는 서비스에 대응되는 네트워크(즉, 해당 서비스에서 발생하는 데이터 트래픽을 전송하기에 적합한 네트워크)를 결정하는 기능을 수행할 수 있다.
또한, 본 발명의 일 실시예에 따르면, 네트워크 제어부(120)는, 사용자 단말 장치(410, 420) 및 호스트(900) 사이의 통신 경로 상에 존재하는 적어도 하나의 오픈플로우 스위치(210 내지 260)에 적용되는 플로우 룰을 제어함으로써 사용자 단말 장치(410, 420) 및 호스트(900) 사이에서 제공되는 위의 식별된 서비스에서 발생하는 데이터 트래픽이 위의 결정된 네트워크를 통해 전송되도록 하는 기능을 수행할 수 있다.
한편, 본 발명의 일 실시예에 따른 오픈플로우 컨트롤러(100)와 오픈플로우 스위치(210 내지 260)가 사용자 단말 장치(410, 420)와 호스트(900) 사이의 통신 경로(즉, 패킷 전달 경로)를 제어하는 구성에 관하여 자세히 설명하면 다음과 같다.
먼저, 본 발명의 일 실시예에 따르면, 플로우(Flow)란, 특정 시간 동안 네트워크 상의 특정 지점을 지나가는 패킷의 집합을 의미할 수 있다. 여기서, 본 발명에서 말하는 플로우가 반드시 특정 시간에 한정되어 정의되는 것은 아님을 밝혀 둔다.
다음으로, 본 발명의 일 실시예에 따르면, 오픈플로우 컨트롤러(100)는 오픈플로우 스위치(210 내지 260)가 유지하는 플로우 테이블(Flow Table)에 적용되는 플로우 룰을 제어함으로써 사용자 단말 장치(410, 420)와 호스트(900) 사이의 통신 경로를 제어할 수 있는데, 이러한 플로우 테이블에는, 사용자 단말 장치의 IP 주소(즉, 가상 IP 주소), 사용자 단말 장치와 무선으로 연결되는 각종 네트워크의 기지국의 IP 주소, 사용자 단말 장치와 통신하는 호스트의 IP 주소와 같은 다양한 네트워크 구성요소의 IP 주소 및 이들 IP 주소와 오픈플로우 스위치(210 내지 260)의 포트 사이의 매칭 관계에 관한 정보가 포함될 수 있다.
예를 들면, 본 발명의 일 실시예에 따른 플로우 테이블에는 헤더 필드(Header Fields), 액션(Actions), 카운터(Counters) 등의 구성요소가 포함될 수 있다.
먼저, 헤더 필드에는 오픈플로우 스위치(210 내지 260)의 포트, 이더넷(ethernet) 및 프로토콜 정보, 소스(즉, 출발지)(source) 사용자 단말 장치 및 데스티네이션(즉, 목적지)(destination) 사용자 단말 장치의 MAC 주소, IP 주소, 포트 및 우선 순위 등의 정보가 저장될 수 있다. 본 발명의 일 실시예에 따르면, 오픈플로우 컨트롤러(100) 또는 오픈플로우 스위치(210 내지 260)는 오픈플로우 스위치(210 내지 260)로 유입되는 패킷의 정보와 플로우 테이블의 헤더 필드의 정보를 비교하여 해당 패킷에 관한 플로우 제어 정보가 플로우 테이블 내에 존재하는지 여부를 판단할 수 있다.
다음으로, 액션(actions)은 오픈플로우 스위치(210 내지 260)로 유입되는 패킷의 정보와 플로우 테이블의 헤더 필드의 정보가 매칭될 때 해당 패킷을 어떻게 처리할지에 관한 정보를 포함할 수 있다. 본 발명의 일 실시예에 따르면, 오픈플로우 스위치(210 내지 260)는 플로우 테이블의 액션 부분에 저장된 정보를 참조로 하여 해당 패킷을 정해진 하나의 포트 또는 여러 개의 포트로 전달하거나 해당 패킷을 더 이상 전달하지 않고 차단할 수 있다. 만약, 플로우 테이블의 헤더 필드 내에 오픈플로우 스위치(210 내지 260)로 유입되는 패킷의 정보와 매칭되는 정보가 없는 경우에는, 오픈플로우 컨트롤러(100)가 해당 패킷의 소스 IP 주소, 데스티네이션 IP 주소 등을 참조로 하여 해당 패킷에 대한 플로우 룰을 새로이 생성할 수 있다.
다음으로, 카운터(counters)는 플로우 테이블에 패킷 처리에 관한 제어 정보가 등록된 시점부터 현재 시점까지 경과된 시간에 관한 정보를 포함할 수 있다. 본 발명의 일 실시예에 따르면, 플로우 테이블에 저장된 패킷 처리에 관한 제어 정보는 정해진 시간 동안만 유지되도록 설정될 수 있는데, 이러한 경우에 카운터에 저장된 경과 시간에 관한 정보가 제어 정보의 생명 주기(life cycle) 관리에 사용될 수 있다.
도 3은 본 발명의 일 실시예에 따라 오픈플로우 컨트롤러(100) 및 오픈플로우 스위치(210 내지 260)에 의하여 관리되는 플로우 테이블의 구성을 예시적으로 나타내는 도면이다.
도 3을 참조하면, 소스 IP 주소가 "10.0.0.2"이고 데스티네이션 IP 주소가 "10.0.0.3"인 패킷은 오픈플로우 스위치(210 내지 260)의 포트 "a"로 전달되도록 설정되고, 반대로 소스 IP 주소가 "10.0.0.3"이고 데스티네이션 IP 주소가 "10.0.0.2"인 패킷은 오픈플로우 스위치(210 내지 260)의 "b"로 전달되도록 설정될 수 있다. 또한, 소스 IP 주소가 "10.0.0.4"이고 데스티네이션 IP 주소가 "10.0.0.5"인 패킷은 오픈플로우 스위치(210 내지 260)의 포트 "c"로 전달되도록 설정되고, 반대로 소스 IP 주소가 "10.0.0.5"이고 데스티네이션 IP 주소가 "10.0.0.4"인 패킷은 오픈플로우 스위치(210 내지 260)의 포트 "d"로 전달되도록 설정될 수 있다. 위와 같이 플로우 테이블을 참조로 하여 오픈플로우 스위치(210 내지 260)의 각 포트로 전달된 패킷은 해당 패킷의 데스티네이션 IP 주소가 가리키는 사용자 단말 장치(410, 420)로 전달될 수 있게 된다. 즉, 본 발명의 일 실시예에 따르면, 오픈플로우 컨트롤러(100)가 오픈플로우 스위치(210 내지 260)에서 유지되는 플로우 테이블에 적용되는 플로우 룰을 제어함으로써 오픈플로우 스위치(210 내지 260)를 지나가는 패킷이 특정 네트워크를 거치는 통신 경로를 통하여 전송되도록 할 수 있고, 이로써 호스트(900)와 통신하여 패킷을 주고 받는 사용자 단말 장치(410, 420)가 연결되는 서비스에 적합한 네트워크를 동적으로 선택할 수 있게 된다.
도 4는 본 발명의 일 실시예에 따라 사용자 단말 장치가 연결되는 서비스에 적합한 네트워크를 선택하는 과정을 예시적으로 나타내는 도면이다. 도 4의 실시예에서, 제1 사용자 단말 장치(410)는 3G 네트워크(510), 4G 네트워크(520) 및 5G 네트워크(530)에 접속(즉, 연결)될 수 있는 권한을 모두 가지고 있고, Wi-Fi를 통해 공중 데이터 네트워크에 접속될 수 있는 기능을 갖추고 있으며, 제1 사용자 단말 장치(410) 및 적어도 하나의 호스트(900) 사이에서 동영상 서비스, 게임 서비스, 클라우드 서비스 및 이메일 서비스가 제공되는 경우를 가정할 수 있다.
도 4를 참조하면, (i) 먼저, 오픈플로우 스위치(210 내지 240)는 각종 네트워크 기지국(310 내지 340)과 연결되어 있는 제1 사용자 단말 장치(410)에 관한 정보(예를 들면, 식별 번호 등)를 오픈플로우 컨트롤러(100)에게 전송할 수 있다.
계속하여, 도 4를 참조하면, (ii) 오픈플로우 스위치(210 내지 240)로부터 제1 사용자 단말 장치(410)에 관한 정보를 전송 받은 오픈플로우 컨트롤러(100)는 제1 사용자 단말 장치(410) 및 제1 사용자 단말 장치(410)와 통신하는 적어도 하나의 호스트(900) 사이에서 제공되는 서비스를 식별할 수 있고, 이에 따라 제1 사용자 단말 장치(410) 및 적어도 하나의 호스트(900) 사이에서 동영상 서비스, 게임 서비스, 클라우드 서비스 및 이메일 서비스가 제공되고 있음을 확인할 수 있다.
계속하여, 도 4를 참조하면, (iii) 오픈플로우 스위치(210 내지 240)로부터 제1 사용자 단말 장치(420)에 관한 정보를 전송 받은 오픈플로우 컨트롤러(100)는 가입자 정보 관리 서버(800)로부터 제1 사용자 단말 장치(410)의 가입자 정보를 제공 받아서 제1 사용자 단말 장치(410)가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크를 식별할 수 있고, 이에 따라 제1 사용자 단말 장치(410)가 3G 네트워크(510), 4G 네트워크(520) 및 5G 네트워크(530)에 접속(즉, 연결)될 수 있는 권한을 모두 가지고 있고, Wi-Fi를 통해 공중 데이터 네트워크에 접속될 수 있는 기능을 갖추고 있음을 확인할 수 있다.
계속하여, 도 4를 참조하면, (iv) 오픈플로우 컨트롤러(100)는, 서비스와 네트워크 사이의 기설정된 대응 관계를 참조로 하여, 제1 사용자 단말 장치(410)와 적어도 하나의 호스트(900) 사이에서 제공되는 서비스 중 동영상 서비스에서 발생하는 데이터 트래픽이 5G 네트워크(530)를 통해 전송되도록 결정하고(R430) 게임 서비스에서 발생하는 데이터 트래픽인 4G 네트워크(520)를 통해 전송되도록 결정하고(R420) 클라우드 서비스에 발생하는 데이터 트래픽인 공중 데이터 네트워크(540)를 통해 전송되도록 결정하고(R440) 이메일 서비스에 발생하는 데이터 트래픽인 3G 네트워크(510)를 통해 전송되도록 결정할 수 있다(R410).
계속하여, 도 4를 참조하면, (v) 오픈플로우 컨트롤러(100)는 자신이 제어할 수 있는 적어도 하나의 오픈플로우 스위치(210 내지 260)가 유지하는 플로우 테이블에 적용되는 플로우 룰을 제어함으로써 제1 사용자 단말 장치(410) 및 적어도 하나의 호스트(900) 사이에서 제공되는 서비스에서 발생하는 데이터 트래픽이 위의 서비스별로 결정되는 각각의 네트워크를 통하여 전송되도록 할 수 있다.
한편, 도 4의 실시예에서, 오픈플로우 스위치(210 내지 240)는 각종 네트워크 기지국(310 내지 340)과 연결되어 있는 제1 사용자 단말 장치(410)로부터 제1 사용자 단말 장치(410)의 식별 정보뿐만 아니라 가입자 정보까지 획득할 수도 있고 이렇게 획득된 제1 사용자 단말 장치(410)의 식별 정보 또는 가입자 정보를 오픈플로우 컨트롤러(100)에 전송할 수 있으며, 이러한 경우 오픈플로우 컨트롤러(100)는 가입자 정보 관리 서버(800)로부터 따로 제1 사용자 단말 장치(410)의 가입자 정보를 수집할 필요가 없게 된다.
한편, 이상의 실시예에 있어서, 먼저 제1 사용자 단말 장치(410) 및 호스트(900) 사이에서 제공되는 서비스를 식별하는 과정이 수행된 이후에 제1 사용자 단말 장치(410)가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크를 식별하는 과정이 수행되는 경우에 대하여 주로 설명되어 있지만, 본 발명이 반드시 이에 한정되는 것은 아니며, 반대로 먼저 제1 사용자 단말 장치(410)가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크를 식별하는 과정이 수행된 이후에 제1 사용자 단말 장치(410) 및 호스트(900) 사이에서 제공되는 서비스를 식별하는 과정이 수행될 수도 있고 동시에 수행될 수도 있음을 밝혀 둔다.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.
100: 오픈플로우 컨트롤러(OpenFlow controller)
110: 단말 정보 수집부
120: 네트워크 제어부
210 내지 260: 오픈플로우 스위치(OpenFlow switch)
310: 3G 네트워크 기지국
320: 4G 네트워크 기지국
330: 5G 네트워크 기지국
340: 무선 액세스 포인트(Wireless Access Point)
410, 420: 사용자 단말 장치
510: 3G 코어 네트워크(Core network)
520: 4G 코어 네트워크
530: 5G 코어 네트워크
600: 공중 데이터 네트워크(PDN: Public Data Network)
700: 인터넷 서비스 제공자(ISP: Internet Service Provider) 네트워크
800: 가입자 정보 관리 서버
900: 호스트(Host)
110: 단말 정보 수집부
120: 네트워크 제어부
210 내지 260: 오픈플로우 스위치(OpenFlow switch)
310: 3G 네트워크 기지국
320: 4G 네트워크 기지국
330: 5G 네트워크 기지국
340: 무선 액세스 포인트(Wireless Access Point)
410, 420: 사용자 단말 장치
510: 3G 코어 네트워크(Core network)
520: 4G 코어 네트워크
530: 5G 코어 네트워크
600: 공중 데이터 네트워크(PDN: Public Data Network)
700: 인터넷 서비스 제공자(ISP: Internet Service Provider) 네트워크
800: 가입자 정보 관리 서버
900: 호스트(Host)
Claims (17)
- 오픈플로우(OpenFlow)에 기반하여 서비스에 적합한 네트워크를 선택하기 위한 방법으로서,
(a) 오픈플로우 컨트롤러(Controller)가, 사용자 단말 장치 및 상기 사용자 단말 장치와 통신하는 호스트(Host) 사이에서 제공되는 서비스의 유형을 특정 카테고리로서 식별하는 프로세스 및 상기 사용자 단말 장치의 가입자 정보를 참조로 하여 상기 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크를 식별하는 프로세스를 수행하는 단계, 및
(b) 상기 오픈플로우 컨트롤러가, 상기 사용자 단말 장치 및 상기 호스트 사이의 통신 경로 상에 존재하는 적어도 하나의 오픈플로우 스위치에 적용되는 플로우 룰(Flow Rule)를 제어함으로써, 상기 사용자 단말 장치 및 상기 호스트 사이에서 제공되는 상기 식별된 특정 카테고리의 서비스에서 발생하는 데이터 트래픽(Data Traffic)이 상기 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크 중 상기 식별된 특정 카테고리의 서비스에 대응되는 네트워크를 통해 전송되도록 하는 단계
를 포함하는 방법. - 제1항에 있어서,
상기 사용자 단말 장치의 가입자 정보를 상기 오픈플로우 컨트롤러와 네트워크로 연결되어 있는 오픈플로우 스위치 또는 가입자 정보 관리 서버로부터 수신하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크는 제1 네트워크 및 제2 네트워크를 포함하고,
상기 사용자 단말 장치는 상기 제1 네트워크 및 상기 제2 네트워크에 각각 대응되는 제1 실제 IP 주소 및 제2 실제 IP 주소를 가지고 상기 제1 실제 IP 주소 및 상기 제2 실제 IP 주소를 가상화한 하나의 가상 IP 주소를 가지고,
상기 (b) 단계에서,
상기 사용자 단말 장치 및 상기 호스트 사이에서 전송되는 패킷은 상기 사용자 단말 장치의 상기 가상 IP 주소를 참조로 하여 전송되는 것을 특징으로 하는 방법. - 제3항에 있어서,
상기 (b) 단계에서,
상기 호스트로부터 상기 사용자 단말 장치에 전송되는 패킷 및 상기 사용자 단말 장치로부터 상기 호스트에 전송되는 패킷은 상기 사용자 단말 장치의 상기 가상 IP 주소에 대응되는 가상 인터페이스를 통하여 전달되는 것을 특징으로 하는 방법. - 제3항에 있어서,
상기 (b) 단계에서,
상기 제1 네트워크를 통해 상기 호스트로부터 상기 오픈플로우 스위치를 거쳐 상기 사용자 단말 장치에 전송되는 패킷에는, 상기 오픈플로우 스위치 및 상기 사용자 단말 장치 사이의 구간에서, 상기 오픈플로우 스위치의 IP 주소 및 상기 사용자 단말 장치의 제1 실제 IP 주소를 각각 소스 IP 주소 및 데스티네이션 IP 주소로서 설정하는 외부 IP 헤더(Outer IP Header)가 부가되고,
상기 제1 네트워크를 통해 상기 사용자 단말 장치로부터 상기 오픈플로우 스위치를 거쳐 상기 호스트에 전송되는 패킷에는, 상기 사용자 단말 장치 및 상기 오픈플로우 스위치 사이의 구간에서, 상기 사용자 단말 장치의 제1 실제 IP 주소 및 상기 오픈플로우 스위치의 IP 주소를 각각 소스 IP 주소 및 데스티네이션 IP 주소로서 설정하는 외부 IP 헤더가 부가되는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 특정 카테고리의 서비스와 상기 네트워크 사이의 대응 관계는 서비스 제공자 또는 사용자에 의하여 기설정되거나 상기 특정 카테고리의 서비스 또는 상기 네트워크의 속성에 따라 기설정되는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 식별된 특정 카테고리의 서비스는 복수의 사용자 단말 장치에 대하여 데이터 트래픽을 발생시키는 멀티캐스트(Multicast) 서비스를 포함하는 것을 특징으로 하는 방법. - 오픈플로우(OpenFlow)에 기반하여 서비스에 적합한 네트워크를 선택하기 위한 방법으로서,
(a) 오픈플로우 스위치(Switch)가, 자신과 연결되어 있는 적어도 하나의 네트워크의 기지국에 사용자 단말 장치가 연결되면, 상기 사용자 단말 장치에 관한 정보를 오픈플로우 컨트롤러(Controller)에게 전송하여, 상기 사용자 단말 장치와 통신하는 호스트(Host) 사이에서 제공되는 서비스의 유형을 특정 카테고리로서 식별하도록 지원하고 상기 사용자 단말 장치의 가입자 정보를 참조로 하여 상기 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크를 식별하도록 지원하는 단계, 및
(b) 상기 오픈플로우 스위치가, 상기 오픈플로우 컨트롤러로부터 전송되는 플로우 룰(Flow Rule)에 관한 정보를 참조로 하여 상기 사용자 단말 장치 및 상기 사용자 단말 장치와 통신하는 호스트 사이에서 제공되는 상기 식별된 특정 카테고리의 서비스에서 발생하는 데이터 트래픽(Data Traffic)이 상기 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크 중 상기 식별된 특정 카테고리의 서비스에 대응되는 네트워크를 통해 전송되도록 하는 단계
를 포함하는 방법. - 오픈플로우(OpenFlow)에 기반하여 서비스에 적합한 네트워크를 선택하기 위한 장치로서,
사용자 단말 장치 및 상기 사용자 단말 장치와 통신하는 호스트(Host) 사이에서 제공되는 서비스의 유형을 특정 카테고리로서 식별하는 단말 정보 수집부, 및
상기 사용자 단말 장치의 가입자 정보를 참조로 하여 상기 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크를 식별하고, 상기 사용자 단말 장치 및 상기 호스트 사이의 통신 경로 상에 존재하는 적어도 하나의 오픈플로우 스위치에 적용되는 플로우 룰(Flow Rule)를 제어함으로써, 상기 사용자 단말 장치 및 상기 호스트 사이에서 제공되는 상기 식별된 특정 카테고리의 서비스에서 발생하는 데이터 트래픽(Data Traffic)이 상기 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크 중 상기 식별된 특정 카테고리의 서비스에 대응되는 네트워크를 통해 전송되도록 하는 네트워크 제어부
를 포함하는 장치. - 제9항에 있어서,
상기 단말 정보 수집부는,
상기 사용자 단말 장치의 가입자 정보를 상기 단말 정보 수집부와 네트워크로 연결되어 있는 오픈플로우 스위치 또는 가입자 정보 관리 서버로부터 수신하는 것을 특징으로 하는 장치. - 제9항에 있어서,
상기 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크는 제1 네트워크 및 제2 네트워크를 포함하고,
상기 사용자 단말 장치는 상기 제1 네트워크 및 상기 제2 네트워크에 각각 대응되는 제1 실제 IP 주소 및 제2 실제 IP 주소를 가지고 상기 제1 실제 IP 주소 및 상기 제2 실제 IP 주소를 가상화한 하나의 가상 IP 주소를 가지고,
상기 사용자 단말 장치 및 상기 호스트 사이에서 전송되는 패킷은 상기 사용자 단말 장치의 상기 가상 IP 주소를 참조로 하여 전송되는 것을 특징으로 하는 장치. - 제11항에 있어서,
상기 호스트로부터 상기 사용자 단말 장치에 전송되는 패킷 및 상기 사용자 단말 장치로부터 상기 호스트에 전송되는 패킷은 상기 사용자 단말 장치의 상기 가상 IP 주소에 대응되는 가상 인터페이스를 통하여 전달되는 것을 특징으로 하는 장치. - 제11항에 있어서,
상기 제1 네트워크를 통해 상기 호스트로부터 상기 오픈플로우 스위치를 거쳐 상기 사용자 단말 장치에 전송되는 패킷에는, 상기 오픈플로우 스위치 및 상기 사용자 단말 장치 사이의 구간에서, 상기 오픈플로우 스위치의 IP 주소 및 상기 사용자 단말 장치의 제1 실제 IP 주소를 각각 데스티네이션 IP 주소 및 소스 IP 주소로서 설정하는 외부 IP 헤더(Outer IP Header)가 부가되고,
상기 제1 네트워크를 통해 상기 사용자 단말 장치로부터 상기 오픈플로우 스위치를 거쳐 상기 호스트에 전송되는 패킷에는, 상기 사용자 단말 장치 및 상기 오픈플로우 스위치 사이의 구간에서, 상기 사용자 단말 장치의 제1 실제 IP 주소 및 상기 오픈플로우 스위치의 IP 주소를 각각 소스 IP 주소 및 데스티네이션 IP 주소로서 설정하는 외부 IP 헤더가 부가되는 것을 특징으로 하는 장치. - 제9항에 있어서,
상기 특정 카테고리의 서비스와 상기 네트워크 사이의 대응 관계는 서비스 제공자 또는 사용자에 의하여 기설정되거나 상기 특정 카테고리의 서비스 또는 상기 네트워크의 속성에 따라 기설정되는 것을 특징으로 하는 장치. - 제9항에 있어서,
상기 식별된 특정 카테고리의 서비스는 복수의 사용자 단말 장치에 대하여 데이터 트래픽을 발생시키는 멀티캐스트(Multicast) 서비스를 포함하는 것을 특징으로 하는 장치. - 오픈플로우(OpenFlow)에 기반하여 서비스에 적합한 네트워크를 선택하기 위한 장치로서,
자신과 연결되어 있는 적어도 하나의 네트워크의 기지국에 사용자 단말 장치가 연결되면, 상기 사용자 단말 장치에 관한 정보를 오픈플로우 컨트롤러(Controller)에게 전송하여, 상기 사용자 단말 장치와 통신하는 호스트(Host) 사이에서 제공되는 서비스의 유형을 특정 카테고리로서 식별하도록 지원하고 상기 사용자 단말 장치의 가입자 정보를 참조로 하여 상기 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크를 식별하도록 지원하는 단말 정보 모니터링부, 및
상기 오픈플로우 컨트롤러로부터 전송되는 플로우 룰(Flow Rule)에 관한 정보를 참조로 하여 상기 사용자 단말 장치 및 상기 사용자 단말 장치와 통신하는 호스트 사이에서 제공되는 상기 식별된 특정 카테고리의 서비스에서 발생하는 데이터 트래픽(Data Traffic)이 상기 사용자 단말 장치가 연결될 수 있는 권한 또는 기능을 가지고 있는 네트워크 중 상기 식별된 특정 카테고리의 서비스에 대응되는 네트워크를 통해 전송되도록 하는 플로우 처리부
를 포함하는 장치. - 제1항 내지 제8항 중 어느 한 항에 따른 방법을 실행하기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20140063294A KR101501892B1 (ko) | 2014-05-26 | 2014-05-26 | 오픈플로우에 기반하여 서비스에 적합한 네트워크를 선택하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20140063294A KR101501892B1 (ko) | 2014-05-26 | 2014-05-26 | 오픈플로우에 기반하여 서비스에 적합한 네트워크를 선택하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101501892B1 true KR101501892B1 (ko) | 2015-03-12 |
Family
ID=53027347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20140063294A KR101501892B1 (ko) | 2014-05-26 | 2014-05-26 | 오픈플로우에 기반하여 서비스에 적합한 네트워크를 선택하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101501892B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101841026B1 (ko) | 2016-02-29 | 2018-03-23 | 고려대학교 산학협력단 | 최적 경로 설정을 위한 서비스 기능 체이닝 네트워크 시스템 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130099199A (ko) * | 2010-12-17 | 2013-09-05 | 닛본 덴끼 가부시끼가이샤 | 통신 시스템, 노드, 패킷 전송 방법 및 프로그램을 기록한 컴퓨터 판독가능 기록 매체 |
-
2014
- 2014-05-26 KR KR20140063294A patent/KR101501892B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130099199A (ko) * | 2010-12-17 | 2013-09-05 | 닛본 덴끼 가부시끼가이샤 | 통신 시스템, 노드, 패킷 전송 방법 및 프로그램을 기록한 컴퓨터 판독가능 기록 매체 |
Non-Patent Citations (1)
Title |
---|
강세훈, 최윤철, "멀티 코어 네트워크 프로세서를 이용한 고성능 오픈플로우 소프트웨어 스위치 구현" (2012.) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101841026B1 (ko) | 2016-02-29 | 2018-03-23 | 고려대학교 산학협력단 | 최적 경로 설정을 위한 서비스 기능 체이닝 네트워크 시스템 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3146673B1 (en) | Method for connecting a device to a server in a network | |
US10243862B2 (en) | Systems and methods for sampling packets in a network flow | |
CN108293009B (zh) | 一种软件定义数据中心及其中的服务集群的调度方法 | |
CN108293001B (zh) | 一种软件定义数据中心及其中的服务集群的部署方法 | |
US9497661B2 (en) | Implementing EPC in a cloud computer with openflow data plane | |
KR101900536B1 (ko) | Openflow 데이터 플레인 및 컨트롤 플레인을 갖는 클라우드 컴퓨터에서의 3g 패킷 코어의 구현 | |
US8958294B2 (en) | Assigning identifiers to mobile devices according to their data service requirements | |
CN107210933B (zh) | 用于向附接的装备提供硬件资源信息的机制 | |
EP2831733A1 (en) | Implementing epc in a cloud computer with openflow data plane | |
KR102271871B1 (ko) | 이동 통신 시스템에서 패킷 생성 방법 및 장치 | |
EP3982600A1 (en) | Qos policy method, device, and computing device for service configuration | |
JP6265427B2 (ja) | ネットワーク機能の負荷分散システム及び方法 | |
KR101746105B1 (ko) | 서비스 체이닝이 가능한 오픈플로우 스위치 | |
KR101493936B1 (ko) | 오픈플로우에 기반하여 네트워크를 선택하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 | |
US8675669B2 (en) | Policy homomorphic network extension | |
KR20180058594A (ko) | Sdn/tap 어플리케이션 | |
KR101501892B1 (ko) | 오픈플로우에 기반하여 서비스에 적합한 네트워크를 선택하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 | |
KR101378313B1 (ko) | 오픈플로우(OpenFlow)를 이용하여 사용자 단말 장치와 로컬 호스트 사이의 통신을 지원하기 위한 방법, 장치, 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
KR101767472B1 (ko) | Sdn 기반의 제어기의 데이터 경로 변경 방법 | |
US10630690B2 (en) | Group zoning and access control over a network | |
KR20180058592A (ko) | Sdn 제어기 | |
KR101501242B1 (ko) | 오픈플로우에 기반하여 네트워크를 병합하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 | |
JP2017050708A (ja) | 通信システム、制御装置、スイッチ、通信方法及びプログラム | |
KR101363338B1 (ko) | 오픈플로우(OpenFlow)를 이용하여 사용자 단말 장치 사이의 통신을 지원하기 위한 방법, 장치, 시스템 및 컴퓨터 판독 가능한 기록 매체 | |
KR20180058593A (ko) | Sdn 화이트박스 스위치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20200304 Year of fee payment: 6 |