KR102073200B1 - 유무선 통합 네트워크 패킷 중개 장치 및 그 gtp 상관관계 부여 방법 - Google Patents

유무선 통합 네트워크 패킷 중개 장치 및 그 gtp 상관관계 부여 방법 Download PDF

Info

Publication number
KR102073200B1
KR102073200B1 KR1020190133317A KR20190133317A KR102073200B1 KR 102073200 B1 KR102073200 B1 KR 102073200B1 KR 1020190133317 A KR1020190133317 A KR 1020190133317A KR 20190133317 A KR20190133317 A KR 20190133317A KR 102073200 B1 KR102073200 B1 KR 102073200B1
Authority
KR
South Korea
Prior art keywords
packet
gtp
module
network
correlation
Prior art date
Application number
KR1020190133317A
Other languages
English (en)
Inventor
박성용
공석환
사이키아 딥죠이티
Original Assignee
쿨클라우드(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 쿨클라우드(주) filed Critical 쿨클라우드(주)
Application granted granted Critical
Publication of KR102073200B1 publication Critical patent/KR102073200B1/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/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B10/00Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
    • H04B10/25Arrangements specific to fibre transmission
    • H04B10/2575Radio-over-fibre, e.g. radio frequency signal modulated onto an optical carrier
    • H04B10/25752Optical arrangements for wireless networks
    • H04B10/25753Distribution optical network, e.g. between a base station and a plurality of remote units
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0638Clock or time synchronisation among nodes; Internode synchronisation
    • H04J3/0658Clock or time synchronisation among packet nodes
    • H04J3/0661Clock or time synchronisation among packet nodes using timestamps
    • H04J3/0667Bidirectional timestamps, e.g. NTP or PTP for compensation of clock drift and for compensation of propagation delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • 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/58Association of routers
    • H04L45/586Association of routers of virtual 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/645Splitting route computation layer and forwarding layer, e.g. routing according to path computational element [PCE] or based on OpenFlow functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/66Layer 2 routing, e.g. in Ethernet based MAN's
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
    • H04L61/1552
    • H04L61/6054
    • H04L67/2809
    • 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
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • H04L7/027Speed or phase control by the received code signals, the signals containing no special synchronisation information extracting the synchronising or clock signal from the received signal spectrum, e.g. by using a resonant or bandpass circuit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/02Communication route or path selection, e.g. power-based or shortest path routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B10/00Transmission systems employing electromagnetic waves other than radio-waves, e.g. infrared, visible or ultraviolet light, or employing corpuscular radiation, e.g. quantum communication
    • H04B10/27Arrangements for networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/70Virtual switches

Abstract

본 발명은 플로우 패킷의 GTP-C 패킷과 GTP-U 패킷이 동일한 유출 포트로 전달될 수 있도록 연동하는, GTP 상관 관계 모듈을 포함하는 네트워크 패킷 중개 장치 및 그 GTP 상관관계 부여 방법에 관한 것으로, GTP 제어 평면 패킷과 GTP 유저 평면 패킷이 동일한 유출 포트로 전달될 수 있도록 상관관계를 부여할 수 있다.

Description

유무선 통합 네트워크 패킷 중개 장치 및 그 GTP 상관관계 부여 방법{INTERGRATED WIRE AND WIRELESS NETWORK PACKET BROKER AND METHOD FOR CORRELATING GTP PACKETS OF THE SAME}
본 발명은 네트워크 패킷 중개 장치 및 이를 이용하는 네트워크 패킷 처리 방법에 관한 것이다.
이동통신 기술의 발전에 따라, 대용량의 트래픽을 고속으로 처리하는 4세대 이동통신에 이어서, 대용량의 트래픽을 저지연을 유지하면서, 고속으로 처리하면서, 사물 인터넷과 같은 대량의 디바이스가 연결되는 5세대 이동통신 기술이 개발되고 있다.
특히, 이동통신 엑세스 네트워크를 통해 고속/저지연 무선전송 및 대량의 디바이스 동시 접속 서비스의 원할한 제공을 위해서 유무선 백홀, 미드홀 및 프론트홀에 대한 연구가 활발이 이루어지고 있으나, 이러한 요구사항을 만족하려면, 막대한 5G 프론트홀 구축 비용, 기존 무선 접속 네트워크(RAN; Radio Access Network) 장비 벤더 고유의 홀 규격을 기반으로 한 독과점으로 인하여 막대한 5G RAN 구축 시 많은 비용이 요구된다.
따라서, 종래와 같이, RAN 장비 벤더가 벤더 고유의 프론트홀 규격을 사용시 신규벤더 진입이 거의 불가능하였으며, 기존 RAN 벤더에 의한 독과점으로 인하여 막대한 5G RAN 구축비용을 초래하는 문제점이 있었으며, 이를 벤더에 종속되지 않으면서도, 다양한 네트워크 기능을 소프트웨어로 구현할 수 있는 기술이 요구되고 있다.
한편, 모바일 네트워크의 품질 모니터링은 항상 중요하며, 모니터링 장치 양단에서의 시간 동기화는 분석 시스템의 정확도가 향상되므로, 중요한 기술 요소 중 하나이다.
하지만, 품질 모니터링 장치에서 시간 동기화를 제공하기 위하여는 고가의 네트워크 카드를 사용하여 되는 문제점이 있었다.
또한, 모바일 네트워크가 MEC(Mobile Edge Computing)으로 발전하면서 엣지에서 가입자의 트래픽을 판단하기 위해서는 가입자의 패킷에서 src/dst IP를 모두 취득하여만 한다.
하지만, 종래 시스템은 엣지에서 터널 IP(GTP Outer IPs)만 매칭할 수 있어서, 엣지 클라우드에서 내부 트래픽의 형태에 따른 트래픽 분산(Traffic Steering)이 불가능하였으며, 모든 트래픽을 엣지클라우드를 거치게 하고 있고, 이로 인해 불필요하 엣지 트래픽이 발생하여 많은 비용 발생을 초래하고 있었고, GTP Outer로만 로드밸런싱 시 기지국 단위로만 밸런싱되어, 이는 밸런싱의 쏠림 현상이 발생하는 문제점이 있었다.
또한, 5G 네트워크가 도입되면서, EPC 기능들이 재구성되어 5GC 네트워크 기능 (NF)들로 맵핑된다. 제어 평면에서는 EPC MME의 인증, 접속 제어, 이동성 제어 기능이 5GC Access and Mobility Management Function (AMF)으로, EPC MME와 GW-C의 세션 관리 기능이 5GC Session Management Function (SMF)로 재구성되었다.
사용자 평면과 제어 평면이 분리되면서, 품질 모니터링 장치에서 GTP 사용자 평면 패킷과 GTP 제어 평면 패킷을 연동하여 함께 전달이 필요한 문제점이 대두되었다.
본 발명은 유무선 네트워크에 Network dis-aggregation을 적용하여, 벤더에 종속되지 않으면서도, 다양한 네트워크 기능을 소프트웨어로 구현할 수 있는 네트워크 패킷 중개 장치 및 제공하고자 한다.
또한, 본 발명은 레지스터의 저장 공간 크기가 적은 스위치 레벨에서도 정확한 하드웨어 시간 동기화 기능을 제공할 수 있는 네트워크 패킷 중개 장치 및 그 패킷 타임 스탬프 부여 방법을 제공하고자 한다.
또한, 본 발명은 GTP 사용자 평면 패킷과 GTP 제어 평면 패킷을 연동하여 함께 분석 장치에 전달할 수 있는 네트워크 패킷 중개 장치 및 그 GTP 상관관계 부여 방법을 제공하고자 한다.
또한, 본 발명은 스위치 수준에서도 패킷의 GTP Outer 정보 뿐 만 아니라, GTP Inner 정보를 추출하여 심층 패킷의 매칭을 제공할 수 있는 네트워크 패킷 중개 장치 및 그 심층 패킷 매칭 방법을 제공하고자 한다.
본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치는, 무선 엑세스 네트워크 또는 유선 엑세스 네트워크인 복수의 레거시 네트워크에 연결된 복수의 오픈플로우(openflow) 에지 스위치로서, 상기 복수의 오픈플로우 에지 스위치는 스위치 그룹에 속하는 상기 복수의 오픈플로우 에지 스위치의 정보를 취득하는 SDN(Software Defined Network) 제어기;
상기 복수의 스위치 중 적어도 일부의 스위치를 포함하는 스위치 군을 가상 라우터로 취급하여, 상기 스위치 군 중 어느 한 스위치에 인입되는 패킷에 대한 라우팅 정보를 생성하는 레거시 라우터 컨테이너; 및
네트워크 어플리케이션 모듈은 상기 제어기를 통하여, 요청에 따라 패킷의 조작과 흐름을 제어하는 기능을 수행하는 모듈들을 포함하는 네트워크 어플리케이션 모듈을 포함하는 네트워크 패킷 중개 장치로서,
상기 레거시 라우팅 컨테이너가, 상기 제어기의 플로우 처리 문의 메시지에 대한 레거시 라우팅 정보를 상기 적어도 하나의 가상 라우터의 정보를 기초로 생성하는 상기 복수의 오픈플로우 스위치에 연결된 복수의 네트워크 디바이스를 상기 가상 라우터에 직접 연결된 외부 네트워크 정보로 맵핑하는 것이며,
상기 네트워크 어플리케이션 모듈은 네트워크 디바이스의 타임스탬프 값으로 패킷의 시각을 동기화하는, 시각 동기화 모듈을 포함하고,
상기 네트워크 패킷 중개 장치 프로세서를 더 포함하며, 상기 스위치는 프로세서를 더 포함하며, 상기 네트워크 패킷 중개 장치의 프로세서는 시각값을 회신하는 클럭을 포함하고, 스위치의 프로세서는 프로세서 내에 기준 시간으로부터 경과된 시간 파라미터를 저장하는 레지스터를 포함하며, 상기 시각 동기화 모듈은 상기 스위치가 패킷의 타임 스탬프 부여 요청을 받는 경우, 기준 시간스위치의 프로세서의 레지스터로부터 시간 파라미터의 오버플로우을 보정하여 패킷에 타임 스탬프를 저장하는 것인, 네트워크 패킷 중개 장치.
본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치의 제어기는, 상기 연결된 무선 엑세스 네트워크의 원격 무선 장비(RRH, Remote Radio Head)를 상기 가상 라우터에 직접 연결된 외부 네트워크 정보로 맵핑하는 가상 무선망 제어 모듈을 더 포함할 수 있다.
본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치의 제어기는, 상기 연결된 유선 액세스 네트워크의 광 회선 단말(OLT; Optical Line Terminal)를 상기 가상 라우터에 직접 연결된 외부 네트워크 정보로 맵핑하는 가상 유선망 제어 모듈을 더 포함할 수 있다.
본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치의 제어기는, 상기 연결된 무선 액세스 네트워크의 디지털 처리장치(DU, Digital Unit)를 상기 가상 라우터에 직접 연결된 외부 네트워크 정보로 맵핑하는 분산 무선망 제어 모듈을 더 포함할 수 있다.
본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치의 패킷 타임 스탬프 부여 방법은, 네트워크 패킷 중개 장치의 프로세서의 클럭을 스위치가 취득하는 단계;
스위치의 기준 시간 파라미터 Tb을 취득한 클럭으로 갱신하는 단계;
스위치가 패킷의 타임 스탬프 부여 요청을 받는 단계;
시각 동기화 모듈이 스위치의 전 경과시간 파라미터 Tp를 현 경과시간 파라미터 Tc로 갱신하는 단계;
시각 동기화 모듈이 스위치로부터 파라미터 Tb 기준 경과한 시간값을 파라미터 Tc으로 취득하는 단계;
시각 동기화 모듈이 파라미터 Tc와 파라미터 Tp의 크기를 비교하는 단계;
시각 동기화 모듈이 파라미터 Tc가 파라미터 Tp보다 작은 경우, 파라미터 Tb를 파라미터 Tp 및 보정값의 합만큼 가산하여 갱신하는 단계;
시각 동기화 모듈이 파라미터 Tc가 파라미터 Tp보다 크거나 같은 경우, 파라미터 Tb를 파라미터 Tp만큼 가산하여 갱신하는 단계; 및
시각 동기화 모듈이 스위치가 파라미터 Tb를 패킷에 타임 스탬프로 저장하는 단계;를 포함할 수 있다.
본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치의 패킷 타임 스탬프 부여 방법은, IEEE 1588 PTP(Precision Time Protocol) 동기화 프로토콜을 이용하는 것일 수 있다.
본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치의 패킷 타임 스탬프 부여 방법은, 상기 파라미터 Tp 및 파라미터 Tc는 상기 스위치의 프로세서의 레지스터에 저장하는 것일 수 있다.
본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치의 패킷 타임 스탬프 부여 방법은, 상기 레지스터의 저장 단위는 48 비트일 수 있다.
본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치의 패킷 타임 스탬프 부여 방법은, 상기 패킷에 타임 스탬프로 저장하는 단계에서, 타임 스탬프 저장 단위가 64비트인 것일 수 있다.
본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치의 패킷 타임 스탬프 부여 방법은, 상기 갱신하는 단계의 보정값이 상기 레지스터의 저장 단위의 최대값일 수 있다.
본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치의 패킷 타임 스탬프 부여 방법은, 상기 갱신하는 단계의 보정값이 4,294,967,294인 것일 수 있다.
본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치는, 무선 엑세스 네트워크 또는 유선 엑세스 네트워크인 복수의 레거시 네트워크에 연결된 복수의 오픈플로우(openflow) 에지 스위치로서, 상기 복수의 오픈플로우 에지 스위치는 스위치 그룹에 속하는 상기 복수의 오픈플로우 에지 스위치의 정보를 취득하는 SDN(Software Defined Network) 제어기;
상기 복수의 스위치 중 적어도 일부의 스위치를 포함하는 스위치 군을 가상 라우터로 취급하여, 상기 스위치 군 중 어느 한 스위치에 인입되는 패킷에 대한 라우팅 정보를 생성하는 레거시 라우터 컨테이너; 및
네트워크 어플리케이션 모듈은 상기 제어기를 통하여, 요청에 따라 패킷의 조작과 흐름을 제어하는 기능을 수행하는 모듈들을 포함하는 네트워크 어플리케이션 모듈을 포함하는 네트워크 패킷 중개 장치로서,
상기 레거시 라우팅 컨테이너가, 상기 제어기의 플로우 처리 문의 메시지에 대한 레거시 라우팅 정보를 상기 적어도 하나의 가상 라우터의 정보를 기초로 생성하는 상기 복수의 오픈플로우 스위치에 연결된 복수의 네트워크 디바이스를 상기 가상 라우터에 직접 연결된 외부 네트워크 정보로 맵핑하는 것이며,
상기 네트워크 어플리케이션 모듈은 플로우 패킷의 GTP-C 패킷과 GTP-U 패킷이 동일한 유출 포트로 전달될 수 있도록 연동하는, GTP 상관 관계 모듈을 포함할 수 있다.
본 발명의 일 실시예에 따른 GTP 상관 관계 모듈은, 구독자 IMSI를 저장하는 구독자 테이블 및 구독자 세션 정보를 저장하는 GTP 세션 테이블을 저장하는 저장부;
상기 스위치의 포트부로부터 GTP 유저 평면 패킷을 전달 받아 미리 지정된 스위치의 포트부로 전달하고, 상기 저장부에서 상기 GTP 유저 평면 패킷의 GTPU TEID를 검색하여 상기 GTP 유저 평면 패킷의 유출 포트를 저장부에 연결하여 저장하는, GTP 유저 평면 전달 모듈; 및
상기 스위치의 포트부로부터 GTP 제어 평면 패킷을 전달 받아, 상기 저장부에서 상기 GTP 제어 평면 패킷의 GTPU TEID와 연결된 GTP 유저 평면 패킷의 유출 포트를 검색하여, 상기 검색된 유출 포트와 동일한 상기 스위치의 포트부로 전달 받은 GTP 제어 평면 패킷을 전달하는, GTP 제어 평면 전달 모듈;을 포함할 수 있다.
본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치는 프로세서를 더 포함하고, GTP 상관관계 모듈의 저장부는 프로세서에 위치하는 것일 수 있다.
본 발명의 일 실시예에 따른 GTP 상관관계 모듈의 저장부는 IMSI 테이블, MME 컨텍스트 테이블 및 SGW 컨텍스트 테이블을 포함하고,
GTP 상관관계 모듈의 저장부의 구독자 테이블은 IMSI 테이블이며,
GTP 상관관계 모듈의 저장부의 GTP 세션 테이블은 MME 컨텍스트 테이블및 SGW 컨텍스트 테이블을 포함하고,
GTP 상관관계 모듈의 저장부의 GTP 세션 테이블은 IMSI 테이블, MME 컨텍스트 테이블 및 SGW 컨텍스트 테이블의 상관관계를 저장하는 상관관계 테이블을 더 포함할 수 있다.
본 발명의 일 실시예에 따른 GTP 상관관계 모듈의 저장부의 상관관계 테이블은 제1 상관관계 테이블, 제2 상관관계 테이블, 제3 상관관계 테이블 및 제4 상관관계 테이블을 포함할 수 있다.
본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치의 GTP 상관관계 부여 방법은, 상기 스위치의 포트부로부터 GTP 유저 평면 패킷을 전달 받아 미리 지정된 스위치의 포트부로 전달하고, 상기 저장부에서 상기 GTP 유저 평면 패킷의 GTPU TEID를 검색하여 상기 GTP 유저 평면 패킷의 유출 포트를 저장부에 연결하여 저장하는, GTP 유저 평면 전달 단계; 및
상기 스위치의 포트부로부터 GTP 제어 평면 패킷을 전달 받아, 상기 저장부에서 상기 GTP 제어 평면 패킷의 GTPU TEID와 연결된 GTP 유저 평면 패킷의 유출 포트를 검색하여, 상기 검색된 유출 포트와 동일한 상기 스위치의 포트부로 전달 받은 GTP 제어 평면 패킷을 전달하는, GTP 제어 평면 전달 단계;를 포함할 수 있다.
본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치의 GTP 상관관계 부여 방법은, GTP 상관관계 모듈이 MME 컨텍스트 테이블에서, MME IP 주소를 키로 하고, MME IP, 베어러 ID 및 시퀀스를 포함하는 베어러 ID 셋 및 MME S11 TEID를 값으로 하는 레코드를 생성하는 단계;
GTP 상관관계 모듈이 SGW 컨텍스트 테이블에서, SGW IP 주소를 키로 하는 레코드를 생성하는 단계;
GTP 상관관계 모듈이 SGW 컨텍스트 테이블에서, SGW IP 주소를 키로 하는 레코드를 검색하여, SGW S11 TEID 및 SGW S1U TEID를 갱신하는 단계;
GTP 상관관계 모듈이 제1 상관관계 테이블에서, MME S11 TEID를 키로 하고, IMSI 컨텍스트 및 SGW S11 TEID 컨텍스트를 값으로 갖는 레코드를 생성하는 단계;
GTP 상관관계 모듈이 제2 상관관계 테이블에서, SGW S11 TEID를 키로 하고, MME S11 컨텍스트를 값으로 갖는 레코드를 생성하는 단계;
GTP 상관관계 모듈이 제3 상관관계 테이블에서, SGW S11 TEID를 키로 하고, SGW S11 TEID 컨텍스트를 값으로 갖는 레코드를 생성하는 단계;
GTP 상관관계 모듈이 제4 상관관계 테이블에서, eNB TEID 및 eNB IP를 키로 하고, SGW S1U TEID 컨텍스트 값으로 갖는 레코드를 생성하는 단계;
GTP 상관관계 모듈이 MME 컨텍스트 테이블에서, MME IP 주소를 키로 하는 레코드의 MME IP, 베어러 ID 및 시퀀스를 포함하는 베어러 ID 셋 및 eNB S1U TEID 값을 갱신하는 단계; 및
GTP 상관관계 모듈이 IMSI 테이블에서, IMSI를 키로 하고, MME IP, 베어러 ID 및 시퀀스를 포함하는 베어러 ID 셋을 값으로 하는 레코드를 생성하는 단계;를 포함할 수 있다.
본 발명의 일 실시예에 따른 유무선 통합 네트워크 패킷 중개 장치는, 무선 엑세스 네트워크 또는 유선 엑세스 네트워크인 복수의 레거시 네트워크에 연결된 복수의 오픈플로우(openflow) 에지 스위치로서, 상기 복수의 오픈플로우 에지 스위치는 스위치 그룹에 속하는 상기 복수의 오픈플로우 에지 스위치의 정보를 취득하는 SDN(Software Defined Network) 제어기;
상기 복수의 스위치 중 적어도 일부의 스위치를 포함하는 스위치 군을 가상 라우터로 취급하여, 상기 스위치 군 중 어느 한 스위치에 인입되는 패킷에 대한 라우팅 정보를 생성하는 레거시 라우터 컨테이너; 및
네트워크 어플리케이션 모듈은 상기 제어기를 통하여, 요청에 따라 패킷의 조작과 흐름을 제어하는 기능을 수행하는 모듈들을 포함하는 네트워크 어플리케이션 모듈을 포함하는 네트워크 패킷 중개 장치로서,
상기 레거시 라우팅 컨테이너가, 상기 제어기의 플로우 처리 문의 메시지에 대한 레거시 라우팅 정보를 상기 적어도 하나의 가상 라우터의 정보를 기초로 생성하는 상기 복수의 오픈플로우 스위치에 연결된 복수의 네트워크 디바이스를 상기 가상 라우터에 직접 연결된 외부 네트워크 정보로 맵핑하는 것이며,
상기 네트워크 어플리케이션 모듈은 플로우 패킷의 GTP-C 패킷과 GTP-U 패킷이 동일한 유출 포트로 전달될 수 있도록 연동하는, GTP 상관 관계 모듈을 포함하고,
상기 네트워크 어플리케이션 모듈은 플로우 패킷의 GTP 헤더 또는 VxLAN 헤더를 추출, 수정, 제거 또는 삽입하는, 심층 패킷 매칭 모듈;을 포함하며,
상기 GTP 상관관계 모듈은 GTP 세션 트래킹 모듈, GTP 유저 평면 전달 모듈 및 저장부를 포함하고,
심층 패킷 매칭 모듈은 GTP 상관관계 모듈을 제어하여 GTP 제어 평면 패킷과 GTP 유저 평면 패킷을 매칭하는 것일 수 있다.
본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치의 심층 패킷 매칭 방법 심층 패킷 매칭 모듈이 스위치의 인입 포트부로 부터 패킷을 입력 받는 단계;
스위치의 패킷 파싱 모듈이 입력받은 패킷으로부터 심층 패킷 정보를 추출하는 인입 패킷 파싱 단계;
심층 패킷 매칭 모듈이 획득한 정보로 패킷을 처리하는 인입 패킷 파이프라인 단계;
심층 패킷 매칭 모듈이 획득한 패킷의 정보로 부터 패킷의 종류를 구별하는 단계;
구별된 패킷의 종류가 GTP 제어 평면 패킷인 경우, GTP 세션 트래킹 모듈이 패킷에 매칭되는 흐름을 GTP 제어 평면 유출 테이블에 질의하여 패킷을 보낼 유출 포트부 또는 유출 포트 그룹을 획득하는 GTP 제어 평면 패킷 처리 단계; 및
구별된 패킷의 종류가 GTP 유저 평면 패킷인 경우, GTP 유저 평면 전달 모듈이 패킷에 매칭되는 흐름을 GTP 유저 평면 유출 테이블에 질의하여 패킷을 처리하는 유출 패킷 파이프라인 단계;를 포함하는 네트워크 패킷 중개 장치의 심층 패킷 매칭 방법.
본 발명의 일 실시예에 따른 인입 패킷 파싱 단계는, 패킷 파싱 모듈이 인입 패킷에서 인입 포트 정보를 추출하는 인입 포트 파싱 단계;
패킷 파싱 모듈이 인입 패킷에서 Ethernet 프로토콜 정보를 추출하는 Ethernet 프로토콜 파싱 단계;
추출된 Ethernet 프로토콜 정보가 VLAN인 경우, 패킷 파싱 모듈이 인입 패킷에서 VLAN 정보를 추출하는 VLAN 파싱 단계;
추출된 Ethernet 프로토콜 정보가 IPv4인 경우, 패킷 파싱 모듈이 인입 패킷에서 IPv4 정보를 추출하는 IPv4 파싱 단계;
추출된 IPv4 프로토콜의 종류가 TCP인 경우, 패킷 파싱 모듈이 인입 패킷에서 TCP 정보를 추출하는 TCP 파싱 단계;
추출된 IPv4 프로토콜의 종류가 IMCP인 경우, 패킷 파싱 모듈이 인입 패킷에서 IMCP 정보를 추출하는 IMCP 파싱 단계;
추출된 IPv4 프로토콜의 종류가 SCTP 인 경우, 패킷 파싱 모듈(250)이 인입 패킷에서 SCTP 정보를 추출하는 SCTP 파싱 단계;
패킷 파싱 모듈이 인입 패킷에서 UDP 프로토콜 번호 정보를 추출하는 UDP 파싱 단계;
추출된 UDP 프로토콜 번호가 VxLAN인 경우, 패킷 파싱 모듈이 인입 패킷에서 VxLAN 정보를 추출하는 VxLAN 파싱 단계;
추출된 UDP 프로토콜 번호가 GTP인 경우, 패킷 파싱 모듈이 인입 패킷에서 GTP 정보를 추출하는 GTP 파싱 단계;
패킷 파싱 모듈이 인입 패킷에서 inner Ether 정보를 추출하는 inner Ether 파싱 단계;
패킷 파싱 모듈이 인입 패킷에서 inner IPv4 정보를 추출하는 inner IPv4 파싱 단계; 및
패킷 파싱 모듈이 인입 패킷에서 inner TCP 및 inner UDP 정보를 추출하는 inner TCP/UDP 파싱 단계;를 포함할 수 있다.
본 발명의 일 실시예에 따른 인입 파이프라인 단계는, 심층 패킷 매칭 모듈이 인입 물리 포트를 매치 액션 테이블에서 사용되는 논리 포트로 변환하는 인입 포트 매핑 단계;
심층 패킷 매칭 모듈이 인입 패킷에서 추출된 GTP 정보에 대응하는 패킷의 처리를 유출 포트 매치 액션 테이블에 저장하는 GTP 필터 적용 단계; 및
심층 패킷 매칭 모듈이 인입 패킷에서 추출된 Inner IPv4 정보가 존재하면, 추출된 Inner IPv4 정보에 대응하는 패킷의 처리를 유출 포트 매치 액션 테이블에 저장하는 Inner IPv4 필터 적용 단계;를 포함할 수 있다.
본 발명의 일 실시예에 따른 상기 유출 패킷 파싱 단계는, 심층 패킷 매칭 모듈이 유출 패킷에서 인입 포트 필터 번호를 추출하는 인입 포트 필터 번호 파싱 단계;
심층 패킷 매칭 모듈이 유출 패킷에서 추출된 인입 포트 필터 번호를 정책 관리자 모듈에 질의하는 인입 포트 필터 매칭 단계;
매칭된 인입 포트 필터 번호가 존재하면, 정책 관리자 모듈에서 매칭된 인입 포트 액션을 추출하는 단계;
심층 패킷 매칭 모듈이 유출 패킷에서 GTP 필터 번호를 추출하는 GTP 필터 번호 파싱 단계;
심층 패킷 매칭 모듈이 유출 패킷에서 추출된 GTP 필터 번호를 정책 관리자 모듈에 질의하는 GTP 필터 매칭 단계;
매칭된 GTP 필터 번호가 존재하면, 정책 관리자 모듈에서 매칭된 GTP 액션을 추출하는 단계;
심층 패킷 매칭 모듈이 유출 패킷에서 Inner IPv4 정보를 추출하는 Inner IPv4 파싱 단계;
심층 패킷 매칭 모듈이 유출 패킷에서 추출된 Inner IPv4 정보를 정책 관리자 모듈에 질의하는 Inner IPv4 매칭 단계;
매칭된 Inner IPv4 정보가 존재하면, 정책 관리자 모듈에서 매칭된 Inner IPv4 액션을 추출하는 단계; 및
심층 패킷 매칭 모듈이 유출 패킷과 추출된 모든 액션 리스트 쌍을 GTP 유저 평면 유출 포트 매치 액션 테이블에 저장하는 액션 리스트 생성 단계;를 포함할 수 있다.
본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치는 유무선 접속 네트워크에 대하여, SDN(Software Defined Network) 기반으로, 공히 Network dis-aggregation을 적용하여, 무선 접속 네트워크에 대하여 BBU 와 RRH를 분리하면서도, RAN 프로토콜 레이어 추상화하며, 엑세스 장비별 서비스 체이닝을 통하여 기존 벤더락인 프로토콜과의 상호 호환성 제공이 가능하게 하고, 오픈 하드웨어/소프트웨어 기반의 다양한 기능 분할을 제공할 수 있다.
또한, 본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치는, 네트워크 디바이스의 타임스탬프 값으로 패킷의 시각을 동기화하는, 시각 동기화 모듈을 포함하여, 이를 이용한 패킷 타임 스탬프 부여 방법은 스위치의 프로세서의 경과 시간 카운터의 레지스터의 오퍼플로우가 발생하더라도 이를 보정하여 하드레어 레벨에서 UTC 형식 나노세컨드 수준의 정확도를 갖는 타임스탬프를 패킷에 부여할 수 있다.
또한, 본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치는, 플로우 패킷의 GTP-C 패킷과 GTP-U 패킷이 동일한 유출 포트로 전달될 수 있도록 연동하는, GTP 상관 관계 모듈을 포함하여, 이를 이용한 GTP 상관관계 부여 방법은, GTP 제어 평면 패킷과 GTP 유저 평면 패킷이 동일한 유출 포트로 전달될 수 있도록 상관관계를 부여할 수 있다.
또한, 본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치는, GTP 상관관계 모듈을 제어하여 GTP 제어 평면 패킷과 GTP 유저 평면 패킷을 매칭하는 심층 패킷 매칭 모듈을 포함하여, 이를 이용한 GTP 심층 패킷 매칭 방법은, 스위치 레벨에서 심층 단계의 패킷 정보를 추출하여, GTP 제어 평면 패킷과 GTP 유저 평면 패킷의 플로우를 매칭시킬 수 있다.
도 1은 본 발명의 일 실시예에 따른 네트워크 패킷 중개 시스템의 블록 구성도(block diagram),
도 2는 본 발명의 다른 실시예에 따른 네트워크 패킷 중개 장치의 블록 구성도,
도 3은 본 발명의 다른 실시예에 따른 네트워크 패킷 중개 시스템의 블록 구성도,
도 4는 본 발명의 또 다른 실시예에 따른 네트워크 패킷 중개 시스템의 블록 구성도,
도 5는 네트워크 패킷 중개 장치의 SDN 제어기의 블록 구성의 일 실시예,
도 6은 네트워크 패킷 중개 장치의 스위치의 블록 구성의 일 실시예,
도 7은 플로우 엔트리의 필드 테이블 및 플로우 엔트리에 따른 동작 종류를 나타내는 동작 테이블,
도 8은 그룹 및 미터 테이블의 필드 테이블,
도 9는 본 발명의 일 실시예에 따른 라우팅 시스템을 포함하는 네트워크 시스템의 블록 구성도,
도 10은 본 발명의 일 실시예에 따른 레거시 라우팅 컨테어너의 블록 구성도,
도 11은 도 9의 네트워크 시스템의 가상화한 블록 구성도,
도 12는 SDN 제어기의 플로우에 대한 레거시 라우팅 여부 판단 방법에 대한 순서도,
도 13은 본 발명의 일 실시예에 따른 통합 라우팅 방법에 따른 신호 흐름도,
도 14는 본 발명의 다른 실시예에 따른 통합 라우팅 방법에 따른 신호 흐름도,
도 15는 본 발명의 일 실시예에 따른 플로우 테이블,
도 16은 본 발명의 일 실시예에 따른 네트워크 어플리케이션 모듈을 도시,
도 17은 본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치의 제어부의 블록 구성도,
도 18은 본 발명의 일 실시예에 따른 패킷의 타임 스탬프 부여 방법의 일 실시예를 도시,
도 19는 본 발명의 일 실시예에 따른 패킷 구조에 따른 타임 스탬프 부여 방법의 일 실시예를 도시,
도 20은 본 발명의 일 실시예에 따른 패킷 구조에 따른 타임 스탬프 부여 방법의 일 실시예를 도시,
도 21은 본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치가 무선 셀룰러 네트워크 아키텍처에 연결된 예를 도시한 것,
도 22는 본 발명의 일 실시예에 따른 이동통신망에서의 사용자 단말의 접속 절차를 개략적으로 도시,
도 23은 본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치의 구조를 도시,
도 24는 본 발명의 일 실시예에 따른 GTP 상관관계 모듈의 저장부의 일 실시예를 도시,
도 25는 본 발명의 일 실시예에 따른 GTP-U 패킷에 매칭되는 GTP-C 패킷의 패킷 출력 포트를 획득하는 방법을 도시,
도 26는 본 발명의 또 다른 실시예에 따른 GTP-U 패킷에 매칭되는 GTP-C 패킷의 패킷 출력 포트를 획득하는 방법을 도시,
도 27은 본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치의 심층 패킷 매칭 모듈이 패킷을 처리하는 구조를 도시,
도 28은 본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치의 심층 패킷 매칭 방법을 도시,
도 29는 본 발명의 일 실시예에 따른 인입 패킷 파싱 단계를 도시,
도 30은 본 발명의 일 실시예에 따른 심층 패킷 매칭 모듈의 인입 파이프라인 단계를 도시,
도 31은 본 발명의 일 실시예에 따른 유출 패킷 파싱 단계를 도시하였다.
이하, 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
제 1, 제 2등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 또한 네트워크 상의 제1 구성요소와 제2 구성요소가 연결되어 있거나 접속되어 있다는 것은, 유선 또는 무선으로 제1 구성요소와 제2 구성요소 사이에 데이터를 주고 받을 수 있음을 의미한다.
또한, 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 단순히 본 명세서 작성의 용이함 만이 고려되어 부여되는 것으로서, 그 자체로 특별히 중요한 의미 또는 역할을 부여하는 것은 아니다. 따라서, 상기 "모듈" 및 "부"는 서로 혼용되어 사용될 수도 있다.
이와 같은 구성요소들은 실제 응용에서 구현될 때 필요에 따라 2 이상의 구성요소가 하나의 구성요소로 합쳐지거나, 혹은 하나의 구성요소가 2 이상의 구성요소로 세분되어 구성될 수 있다. 도면 전체를 통하여 동일하거나 유사한 구성요소에 대해서는 동일한 도면 부호를 부여하였고, 동일한 도면 부호를 가지는 구성요소에 대한 자세한 설명은 전술한 구성요소에 대한 설명으로 대체되어 생략될 수 있다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 네트워크 패킷 중개 시스템(Network Packer Broker System)은 무선 단말의 데이터를 송수신하는 복수의 원격 무선 장비(RRH, 2); 무선 단말의 데이터를 송수신하여, 프레임에 MAC 주소가 할당된, RAN(Radio Access Network) 장비(3); 복수의 광 회선 단말(OLT, 4); 및 이동 통신 코어망(5); 상기 이동 통신 코어망(5)에 연결된 네트워크 패킷 중개 장치(Network Packer Broker, 6)를 포함할 수 있다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치(6)는 상기 원격 무선 장비와 이더넷으로 연결, 상기 RAN 장비와 이더넷으로 연결 또는 상기 광 회선 단말과 수동 광통신망(PON; Passive Optical Network)으로 연결된 복수의 오픈플로우(openflow) 에지 스위치(20); 상기 복수의 오픈플로우 에지 스위치의 정보를 취득하는 SDN(Software Defined Network) 제어기(10); 상기 SDN 제어기를 통하여 네트워크 상 다양한 기능을 호출 시 수행하는 네트워크 어플리케이션 모듈(40);및 상기 복수의 스위치 중 적어도 일부의 스위치를 포함하는 스위치 군을 가상 라우터로 취급하여, 상기 스위치 군 중 어느 한 스위치에 인입되는 패킷에 대한 라우팅 정보를 생성하는 레거시 라우터 컨테이너(300);를 포함할 수 있다. 상기 레거시 라우팅 컨테이너(300)가, 상기 제어기의 플로우 처리 문의 메시지에 대한 레거시 라우팅 정보를 상기 적어도 하나의 가상 라우터의 정보를 기초로 생성하는 상기 복수의 오픈플로우 스위치(20)에 연결된 복수의 네트워크 디바이스를 상기 가상 라우터에 직접 연결된 외부 네트워크 정보로 맵핑하는 것일 수 있다.
SDN 제어기(controller)(10)는 SDN 시스템을 제어하는 일종의 지휘 컴퓨터로서, 다양하고 복잡한 기능들, 예를 들어, 라우팅, 정책 선언, 및 보안 체크 등을 할 수 있다. SDN 제어기(10)는 하위 계층의 복수의 스위치(20)에서 발생하는 패킷의 플로우를 정의할 수 있다. SDN 제어기(10)는 네트워크 정책 상 허용되는 플로우에 대해 네트워크 토폴로지 등을 참조하여 플로우가 경유할 경로(데이터 경로)를 계산한 후, 경로 상의 스위치에 상기 플로우의 엔트리가 설정되도록 할 수 있다. SDN 제어기(10)는 특정 프로토콜, 예를 들어, 오픈플로우 프로토콜을 이용하여 스위치(20)와 통신할 수 있다. SDN 제어기(10)와 스위치(20)의 통신 채널은 SSL에 의해 암호화 될 수 있다. SDN 제어기(10)는 네트워크 패킷 중개 장치(6)에 물리적으로 포함되거나, 외부 장치로서 네트워크 패킷 중개 장치(6)에 연결될 수 있다.
가상화된 네트워크 기능으로 ETSI(유럽전기통신표준협회)에서 발행한 NFV 관련 백서에서 정의된 네트워크 기능 가상화(Network Function Virtualiztion; NFV)가 있다. 본 명세서에서 네트워크 기능(NF)은 네트워크 기능 가상화(NFV)와 혼용하여 사용될 수 있다. NFV는 테넌트(tenant)별 필요한 L4-7 서비스 연결을 동적으로 생성하여 필요한 네트워크 기능을 제공하거나, DDoS 공격의 경우 정책 기반으로 필요한 방화벽, IPS 및 DPI 기능 등을 일련의 서비스 체이닝으로 빠르게 제공되는데 이용될 수 있다. 또한 NFV는 방화벽이나 IDS/IPS를 쉽게 온오프 할 수 있으며, 자동으로 프로비저닝(provisioning)할 수 있다. NFV는 오버 프로비저닝의 필요성도 줄일 수 있다.
도 3을 참조하면, 네트워크 디바이스(2, 3, 4, 또는 미도시)는 스위치(20)에 연결되는 물리 또는 가상 장치로서, 데이터나 정보를 주고 받고자 하는 사용자 단말 장치, 또는 특정 기능을 수행하는 것일 수 있다. 하드웨어 관점에서, 네트워크 디바이스(30)는 PC, 클라이언트 단말기, 서버, 워크스테이션, 수퍼컴퓨터, 이동통신 단말기, 스마트폰, 스마트패드 등이 있을 수 있다. 또한 네트워크 디바이스(30)는 물리 장치 상에 생성된 가상 머신(VM)일 수 있다.
네트워크 디바이스는 네트워크 상의 여러가지 기능을 수행하는 네트워크 기능(network function)으로 지칭될 수 있다. 네트워크 기능은 안티(anti) DDoS, 침입 감지/차단(IDS/IPS), 통합 보안 서비스, 가상 사설망 서비스, 안티 바이러스, 안티 스팸, 보안 서비스, 접근관리 서비스, 방화벽, 로드 밸런싱, QoS, 비디오 최적화 등을 포함할 수 있다. 이러한 네트워크 기능은 가상화될 수 있다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 SDN 제어기(10)는, 상기 연결된 무선 엑세스 네트워크의 원격 무선 장비(RRH, 2)를 상기 가상 라우터에 직접 연결된 외부 네트워크 정보로 맵핑하는 가상 무선망 제어 모듈(150)을 더 포함할 수 있다. 본 발명의 일 실시예에 따른 SDN 제어기(10)는, 상기 연결된 무선 액세스 네트워크의 디지털 처리장치(DU, Digital Unit)를 상기 가상 라우터에 직접 연결된 외부 네트워크 정보로 맵핑하는 분산 무선망 제어 모듈(160)을 더 포함할 수 있다. 본 발명의 일 실시예에 따른 SDN 제어기(10)는, 상기 연결된 유선 액세스 네트워크의 광 회선 단말(OLT; Optical Line Terminal)를 상기 가상 라우터에 직접 연결된 외부 네트워크 정보로 맵핑하는 가상 유선망 제어 모듈(170)을 더 포함할 수 있다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 SDN 제어기(10)는, 도 2를 스위치(20)와 통신하는 스위치 통신부(110), 제어부(100), 및 저장부(190)를 포함할수있다.
도 5를 참조하면, SDN 제어기의 제어부(100)는 토폴로지 관리 모듈(120), 경로 계산 모듈(125), 엔트리 관리 모듈(135), 메시지 관리 모듈(130), 레거시 인터페이스 모듈(145) 및 API 인터페이스 모듈(146)을 더 포함할 수 있다. 각 모듈은 제어부(100) 내에 하드웨어로 구성될 수 있고, 제어부(100)와 별개의 소프트웨어로 구성될 수도 있다. 동일한 도면 부호의 구성요소에 대한 설명은 도 D를 참조한다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 SDN 제어기(10)의 제어부(100)는, 네트워크 디바이스의 타임스탬프 값으로 패킷의 시각을 동기화하는, 시각 동기화 모듈(410); QoS(Quality of Service)를 제어하는, 정책 관리자 모듈(420); 및 플로우 패킷의 GTP 헤더 또는 VxLAN 헤더를 추출, 수정, 제거 또는 삽입하는, 심층 패킷 매칭 모듈(430);을 포함할 수 있다.
저장부(190)는 제어부(100)의 처리 및 제어를 위한 프로그램을 저장할 수 있다. 저장부(190)는 입력되거나 출력되는 데이터들(패킷, 메시지 등)을 임시 저장을 위한 기능을 수행할 수 있다. 저장부(190)는 플로우 엔트리를 저장하는 엔트리 데이터베이스(DB)(191)를 포함할 수 있다.
제어부(100)는 통상적으로 상기 각 부의 동작을 제어하여 SDN 제어기(10)의 전반적인 동작을 제어할 수 있다. 제어부(100)는 토폴로지 관리 모듈(120), 경로 계산 모듈(125), 엔트리 관리 모듈(135), API 서버 모듈(136) 및 API 파서 모듈(137) 및 메시지 관리 모듈(130)을 포함할 수 있다. 각 모듈은 제어부(100) 내에 하드웨어로 구성될 수 있고, 제어부(100)와 별개의 소프트웨어로 구성될 수도 있다.
토폴로지 관리 모듈(120)은 스위치 통신부(110)를 통하여 수집된 스위치(20)의 접속 관계를 기초로 네트워크 토폴로지 정보를 구축 및 관리 할 수 있다. 네트워크 토폴로지 정보는 스위치들 사이의 토폴로지 및 각 스위치에 연결되어 있는 네트워크 디바이스 토폴로지를 포함할 수 있다.
경로 계산 모듈(125)은 토폴로지 관리 모듈(120)에서 구축된 네트워크 토폴로지 정보를 기초로 스위치 통신부(110)를 통해 수신한 패킷의 데이터 경로 및 상기 데이터 경로 상의 스위치에 실행시키는 액션 열을 구할 수 있다.
엔트리 관리 모듈(135)는 경로 계산 모듈(125)에서 계산된 결과, QoS 등의 정책, 사용자 지시 등을 기초로 플로우 테이블, 그룹 테이블, 및 미터 테이블 등의 엔트리로서 엔트리 DB(191)에 등록할 수 있다. 엔트리 관리 모듈(135)은 스위치(20)에 미리 각 테이블의 엔트리가 등록되도록 하거나(proactive), 스위치(20)로부터의 엔트리의 추가 또는 갱신 요구에 응답(reactive)할 수 있다. 엔트리 관리 모듈(135)은 필요에 따라 또는 스위치(10)의 엔트리 소멸 메시지 등에 의해 엔트리 DB(191)의 엔트리를 변경하거나 삭제할 수 있다.
API 파서 모듈(137)은 맵핑된 네트워크 디바이스의 정보를 변경하는 프로시져를 해석할 수 있다.
메시지 관리 모듈(130)은 스위치 통신부(110)를 통해 수신한 메시지를 해석하거나, 스위치 통신부(110)를 통해 스위치로 전송되는 후술할 SDN 제어기-스위치 메시지를 생성할 수 있다. SDN 제어기-스위치 메시지 중 하나인 상태 변경 메시지는 엔트리 관리 모듈(135)에 따른 엔트리 또는 엔트리 DB(191)에 저장된 엔트리에 기초하여 생성될 수 있다.
스위치 그룹이 오픈플로우 스위치와 기존의 레거시 스위치로 구성된 경우, 토폴로지 관리 모듈(120)은 오픈플로우 스위치를 통해 레거시 스위치와의 접속 정보를 얻을 수 있다.
레거시 인터페이스 모듈(145)은 레거시 라우팅 컨테이너(300)와 통신할 수 있다. 레거시 인터페이스 모듈(145)은 토폴로지 관리 모듈(120)에서 구축한 스위치 그룹의 토폴로지 정보를 레거시 라우팅 컨테이너(300)로 전송할 수 있다. 토폴로지 정보는 예를 들어, 제1 내지 제5 스위치(SW1-SW5)의 접속 관계 정보 및 제1 내지 제5 스위치(SW1-SW5)에 연결되어 있는 복수의 네트워크 디바이스의 연결 또는 접속 정보를 포함할 수 있다.
메시지 관리 모듈(130)은 오픈플로우 스위치로부터 수신한 플로우 문의 메시지에 구비된 플로우의 처리 규칙을 생성할 수 없는 경우, 해당 플로우를 레거시 인터페이스 모듈(145)을 통해 레거시 라우팅 컨테이너(300)로 전송할 수 있다. 해당 플로우는 오픈플로우 스위치에서 수신한 패킷 및 패킷을 수신한 스위치의 포트 정보를 포함할 수 있다. 플로우의 처리 규칙을 생성할 수 없는 경우는 수신 패킷이 레거시 프로토콜로 구성되어 해석할 수 없는 경우, 및 경로 계산 모듈(125)이 레거시 패킷에 대한 경로를 계산할 수 없는 경우 등이 있을 수 있다.
스위치(20)는 오픈플로우 프로토콜을 지원하는 물리적인 스위치 또는 가상 스위치일 수 있다. 스위치(20)는 수신한 패킷을 처리하여, 네트워크 디바이스(30) 사이의 플로우를 중계할 수 있다. 이를 위해 스위치(20)는 하나의 플로우 테이블 또는 파이프라인(pipeline) 처리를 위해 다중 플로우 테이블을 구비할 수 있다.
플로우 테이블은 네트워크 디바이스(2,3, 4 또는 미도시)의 플로우를 어떻게 처리할 지의 규칙을 정의한 플로우 엔트리를 포함할 수 있다.
플로우(flow)는 하나의 스위치 관점에서 적어도 하나의 헤더 필드의 값을 공유하는 일련의 패킷들 또는 다중 스위치의 여러 플로우 엔트리(flow entry)들의 조합에 따른 특정 경로의 패킷 흐름을 의미할 수 있다. 오픈플로우 네트워크는 플로우 단위로 경로 제어, 장애 회복, 부하 분산 및 최적화를 행할 수 있다.
스위치(20)는 다중 스위치의 조합에 따른 플로우의 입구 및 출구 측 에지 스위치(edge switch)(ingress switch and egress switch)와 에지 스위치 사이의 코어 스위치(core switch)로 구분될 수 있다.
도 6을 참조하면, 스위치(20)는 다른 스위치 및/또는 네트워크 디바이스와 통신하는 포트부(205), SDN 제어기(10)와 통신하는 SDN 제어기 통신부(210), 스위치 제어부(200), 및 저장부(290)를 포함할 수 있다.
포트부(205)는 스위치 또는 네트워크 디바이스에서 유출입되는 한 쌍의 포트를 다수 구비할 수 있다. 한 쌍의 포트는 하나의 포트로 구현될 수 있다.
저장부(290)는 스위치 제어부(200)의 처리 및 제어를 위한 프로그램을 저장할 수 있다. 저장부(290)는 입력되거나 출력되는 데이터들(패킷, 메시지 등)을 임시 저장을 위한 기능을 수행할 수 있다. 저장부(290)는 플로우 테이블, 그룹 테이블, 및 미터 테이블 등의 테이블(291)을 구비할 수 있다. 테이블(291) 또는 테이블의 엔트리는 SDN 제어기(10)에 의해 추가, 수정, 삭제될 수 있다. 테이블 엔트리는 자체적으로 파기될 수 있다.
스위치 제어부(210)는 통상적으로 상기 각 부의 동작을 제어하여 스위치(200)의 전반적인 동작을 제어할 수 있다. 제어부(210)는 테이블(291)을 관리하는 테이블 관리 모듈(240), 플로우 검색 모듈(220), 플로우 처리 모듈(230), 및 패킷 처리 모듈(235)를 포함할 수 있다. 각 모듈은 제어부(200) 내에 하드웨어로 구성될 수 있고, 제어부(200)와 별개의 소프트웨어로 구성될 수도 있다.
테이블 관리 모듈(240)은 SDN 제어기 통신부(210)를 통해 SDN 제어기(10)로부터 수신한 엔트리를 적절한 테이블에 추가하거나, 타임 아웃(time out)된 엔트리를 주기적으로 제거할 수 있다.
플로우 검색 모듈(220)은 유저 트래픽으로서 수신한 패킷으로부터 플로우 정보를 추출할 수 있다. 플로우 정보는 에지 스위치의 패킷 유입 포트인 인입 포트(ingress port)의 식별 정보, 해당 스위치의 패킷 유입 포트(incoming port)의 식별 정보, 패킷 헤더 정보(송신원 및 목적지의 IP 주소, MAC 주소, 포트, 및 VLAN 정보 등), 및 메타데이터 등을 포함할 수 있다. 메타데이터는 이전 테이블에서 선택적으로 추가되거나, 다른 스위치에서 추가된 데이터일 수 있다. 플로우 검색 모듈(220)은 추출한 플로우 정보를 참조하여 테이블(291)에 수신 패킷에 대한 플로우 엔트리가 있는지 검색할 수 있다. 플로우 검색 모듈(220)은 플로우 엔트리가 검색되면, 플로우 처리 모듈(260)에 검색된 플로우 엔트리에 따라 수신 패킷을 처리하도록 요청할 수 있다. 만일 플로우 엔트리 검색이 실패하면, 플로우 검색 모듈(220)은 수신 패킷 또는 수신 패킷의 최소한의 데이터를 SDN 제어기 통신부(210)를 통해 SDN 제어기(100)로 전송할 수 있다.
플로우 처리 모듈(230)는 플로우 검색 모듈(220)에서 검색된 엔트리에 기술된 절차에 따라 패킷을 특정 포트 또는 다중 포트로 출력하거나, 드롭시키거나 또는 특정 헤더 필드를 수정하는 등의 액션을 처리할 수 있다.
플로우 처리 모듈(230)는 플로우 엔트리의 파이프라인 프로세스를 처리하거나 액션을 변경하기 위한 인스트럭션을 실행하거나 다중 플로우 테이블에서 더 이상 다음 테이블로 갈 수 없을 때 액션 세트를 실행할 수 있다.
패킷 처리 모듈(235)은 플로우 처리 모듈(230)에 의한 처리된 패킷을 플로우 처리 모듈(230)에서 지정한 포트부(205)의 하나 또는 2 이상의 포트로 실제로 출력할 수 있다.
도시되어 있지 않지만, 네트워크 패킷 중개 장치(6)는 가상 네트워크 디바이스, 가상 스위치 등을 생성, 변경 및 삭제하는 오케스트레이터를 더 포함할 수 있다. 오케스트레이터는 가상 네트워크 디바이스를 생성하는 경우, 가상 네트워크가 접속할 스위치의 식별 정보, 해당 스위치에 연결되는 포트 식별 정보, MAC 주소, IP 주소, 터넨트(tenant) 식별 정보 및 네트워크 식별 정보 등의 네트워크 디바이스의 정보를 SDN 제어기(10)로 제공할 수 있다.
SDN 제어기(10)와 스위치(20)는 다양한 정보를 주고 받는데, 이를 오픈플로우 프로토콜 메시지(openflow protocol message)라 칭한다. 이러한 오픈플로우 메시지는 SDN 제어기-스위치 메시지(controller-to-switch message), 비동기 메시지(asynchronous message), 및 대칭 메시지(symmetric message) 등의 타입이 있다. 각 메시지는 엔트리를 식별하는 트랜잭션 식별자(transaction id; xid)를 헤더에 구비할 수 있다.
SDN 제어기-스위치 메시지는 SDN 제어기(10)가 생성하여 스위치(20)에 전달하는 메시지로써, 주로 스위치(20)의 상태를 관리하거나 점검하기 위해 사용된다. SDN 제어기-스위치 메시지는 SDN 제어기(10)의 제어부(100), 특히 메시지 관리 모듈(130)에 의해 생성될 수 있다.
SDN 제어기-스위치 메시지는 스위치의 능력(capabilities)을 문의하는 기능(features), 스위치(20)의 구성 매개 변수 등의 설정을 문의하고 설정하기 위한 설정(configuration), 오픈플로우 테이블의 플로우/그룹/미터 엔트리들을 추가/삭제/수정하기 위한 상태 변경 메시지(modify state message), 패킷-인 메시지를 통해 스위치로부터 수신한 패킷을 해당 스위치 상의 특정한 포트로 전송하도록 하는 패킷-아웃 메시지(packet-out message) 등이 있다. 상태 변경 메시지는 플로우 테이블 변경 메시지(modify flow table message), 플로우 엔트리 변경 메시지(modify flow entry message), 그룹 엔트리 변경 메시지(modify group entry message), 포트 변경 메시지(port modification message), 및 미터 엔트리 변경 메시지(meter modification message) 등이 있다.
비동기 메시지는 스위치(20)가 생성하는 메시지로서, 스위치의 상태 변경 및 네트워크 이벤트 등을 SDN 제어기(10)에서 업테이트하기 위해 사용된다. 비동기 메시지는 스위치(20)의 제어부(200), 특히 플로우 검색 모듈(220)에 의해 생성될 수 있다.
비동기 메시지로 패킷-인 메시지(packet-in message), 플로우 삭제 메시지(flow-removed), 에러 메시지 등이 있다. 패킷-인 메시지는 스위치(20)가 SDN 제어기(10)에게 패킷을 전송하여 패킷에 대한 제어를 받기 위해 사용된다. 패킷-인 메시지는 스위치(20)가 미지의 패킷을 수신한 경우, 데이터 경로를 요구하기 위해, 오픈플로우 스위치(20)에서 SDN 제어기(10)로 전송되는 수신 패킷 또는 그 사본의 전부 또는 일부를 포함하는 메시지이다. 유입 패킷에 연관된 엔트리의 액션이 SDN 제어기로 보내라고 정해져 있을 때에도 패킷-인 메시지가 사용된다. 삭제된 플로우(flow-removed) 메시지는 플로우 테이브에서 삭제할 플로우 엔트리 정보를 SDN 제어기(10)로 전달하기 위해 사용된다. 이 메시지는 SDN 제어기(10)가 스위치(20)에 해당 플로우 엔트리 삭제를 요청하였거나 플로우 타임아웃(timeout)에 의한 플로우 만기 처리(flow expiry process)에서 발생한다.
대칭 메시지는 SDN 제어기(10) 및 스위치(20) 모두에서 생성되며, 상대방의 요청이 없어도 전송되는 특징이 있다. SDN 제어기와 스위치 간에 연결을 개시할 때 사용되는 헬로(hello), SDN 제어기 및 스위치 간 연결에 이상이 없음을 확인하기 위한 에코(echo), 및 SDN 제어기나 스위치에 의해 사용되며 문제를 반대측에 알리기 위한 에러 메시지(error message) 등을 포함할 수 있다. 에러 메시지는 대부분 SDN 제어기에 의해 개시된 요청에 따른 실패를 나타나기 위해 스위치에서 사용된다.
패킷 파싱 모듈(250)은 패킷의 헤더를 해석하여, 패킷에 대한 하나 이상의 정보를 추출할 수 있다.
플로우 테이블은 오픈플로우의 파이프라인(pipeline)을 처리하기 위해 다중 플로우 테이블로 구성될 수 있다. 도 I를 참조하면, 플로우 테이블의 플로우 엔트리는 패킷과 매치하는 조건(대조 규칙)을 기술한 매치 필드(match fields), 우선 순위(priority), 매치되는 패킷이 있는 경우 업데이트되는 카운터(counters), 플로우 엔트리에 매치되는 패킷이 있으면 발생하는 다양한 액션들의 집합인 인스트럭션(instruction), 스위치에서 파기될 시간을 기술하는 타임아웃(timeouts), SDN 제어기에 의해 선택되어지는 오파큐(opaque) 타입으로, SDN 제어기에 의해 플로우 통계, 플로우 변경, 및 플로우 삭제를 필터하기 위해 사용될 수 있으며, 패킷 처리시 사용되지 않는 쿠키(cookie) 등의 튜플(tuple)을 포함할 수 있다. 인스트럭션(instruction)은 다른 플로우 테이블로 패킷을 전달하는 것과 같은 파이프라인 프로세싱의 변경할 수 있다. 또한 인스트럭션은 액션 셋(action set)에 액션을 더하는 액션(action)들의 집합, 또는 패킷에 바로 적용하기 위한 액션들의 리스트를 포함할 수 있다. 액션(action)은 특정 포트로 패킷을 전송하거나, TTL 필드를 감소시키는 것과 같이 패킷을 수정하는 작업을 의미한다. 액션은 플로우 엔트리와 연관된 인스트럭션 집합의 일부 또는 그룹 엔트리와 연관된 액션 버킷에 속할 수 있다. 액션 셋(action set)은 각 테이블에서 지시된 액션이 누적된 집합을 의미한다. 액션 셋은 매치되는 테이블이 없을 때 수행될 수 있다. 도 I는 플로우 엔트리에 의한 여러 패킷 처리를 예시한다.
파이프라인(pipleline)은 패킷과 플로우 테이블 사이의 일련의 패킷 처리 과정을 의미한다. 스위치(20)에 패킷이 유입되면, 스위치(20)는 첫번째 플로우 테이블의 우선 순위가 높은 순서대로 패킷과 매칭되는 플로우 엔트리를 탐색한다. 매칭이 되면 해당 엔트리의 인스트럭션을 수행한다. 인스트럭션은 매칭되면 바로 수행하는 명령(apply-action), 액션 셋의 내용을 지우거나 추가/수정하는 명령(clear-action; write-action), 메타데이터(metadata) 수정 명령(write-metadata), 지정된 테이블로 메타데이터와 함께 패킷을 이동시키는 고우투 명령(goto-table) 등이 있다. 패킷과 매칭되는 플로우 엔트리가 없는 경우, 테이블 설정에 따라 패킷을 폐기(drop)하거나 SDN 제어기(10)로 패킷을 패킷-인 메시지(packet-in message)에 실어서 보낼 수 있다.
그룹 테이블은 그룹 엔트리들을 포함할 수 있다. 그룹 테이블은 플로우 엔트리에 의해 지시되어 추가적인 포워딩 방법들을 제시할 수 있다. 도 8(a)을 참조하면, 그룹 테이블의 그룹 엔트리는 다음과 같은 필드를 구비할 수 있다. 그룹 엔트리를 구분할 수 있는 그룹 식별자(group identifier), 그룹 엔트리에 정의된 액션 버킷들을 일부(select) 또는 전부(all) 수행할 것이 여부에 대한 규칙을 명시한 그룹 타입(group type), 플로우 엔트리의 카운터와 같이 통계를 위한 카운터(counters), 및 그룹을 위해 정의된 파라미터들과 연관된 액션들의 집합인 액션 버킷(action buckets)을 포함할 수 있다.
미터 테이블(meter table)은 미터 엔트리들(meter entries)로 구성되며, 플로우 미터-당(per-flow meters)를 정의한다. 플로우 미터-당은 오픈플로우가 다양한 QoS 작동을 적용될 수 있도록 할 수 있다. 미터(meter)는 패킷의 레이트(rate of packets)를 측정 및 제어할 수 있는 일종의 스위치 요소이다. 도 8(b)를 참조하면, 미터 테이블(meter table)은 미터를 식별하는 미터 식별자(meter identifier), 밴드(band)에 지정된 속도와 패킷 동작 방법을 나타내는 미터 밴드(meter bands), 및 패킷이 미터에서 동작될 때 업데이트되는 카운터(counters) 필드들로 구성된다. 미터 밴드(meter bands)는 패킷이 어떻게 처리되는 지를 나타내는 밴드 타입(band type), 미터에 의해 미터 밴드를 선택하는데 사용되는 레이트(rate), 미터 밴드에 의해 패킷들이 처리될 때 업데이트되는 카운터(counters), 및 선택적인 아규먼트(argument)를 가지는 배드 타입들인 특정 아규먼트 타입(type specific argument)과 같은 필드들로 구성될 수 있다.
스위치 제어부(210)는 통상적으로 상기 각 부의 동작을 제어하여 스위치(200)의 전반적인 동작을 제어할 수 있다. 제어부(210)는 테이블(291)을 관리하는 테이블 관리 모듈(240), 플로우 검색 모듈(220), 플로우 처리 모듈(230), 및 패킷 처리 모듈(235)를 포함할 수 있다. 각 모듈은 제어부(110) 내에 하드웨어로 구성될 수 있고, 제어부(110)와 별개의 소프트웨어로 구성될 수도 있다.
테이블 관리 모듈(240)은 SDN 제어기 통신부(210)를 통해 SDN 제어기(10)로부터 수신한 엔트리를 적절한 테이블에 추가하거나, 타임 아웃(time out)된 엔트리를 주기적으로 제거할 수 있다.
플로우 검색 모듈(220)은 유저 트래픽으로서 수신한 패킷으로부터 플로우 정보를 추출할 수 있다. 플로우 정보는 에지 스위치의 패킷 유입 포트인 입구 포트(ingress port)의 식별 정보, 해당 스위치의 패킷 유입 포트(incoming port)의 식별 정보, 패킷 헤더 정보(송신원 및 목적지의 IP 주소, MAC 주소, 포트, 및 VLAN 정보 등), 및 메타데이터 등을 포함할 수 있다. 메타데이터는 이전 테이블에서 선택적으로 추가되거나, 다른 스위치에서 추가된 데이터일 수 있다. 플로우 검색 모듈(220)은 추출한 플로우 정보를 참조하여 테이블(291)에 수신 패킷에 대한 플로우 엔트리가 있는지 검색할 수 있다. 플로우 검색 모듈(220)은 플로우 엔트리가 검색되면, 플로우 처리 모듈(260)에 검색된 플로우 엔트리에 따라 수신 패킷을 처리하도록 요청할 수 있다. 만일 플로우 엔트리 검색이 실패하면, 플로우 검색 모듈(220)은 수신 패킷 또는 수신 패킷의 최소한의 데이터를 SDN 제어기 통신부(210)를 통해 SDN 제어기(100)로 전송할 수 있다.
플로우 처리 모듈(230)는 플로우 검색 모듈(220)에서 검색된 엔트리에 기술된 절차에 따라 패킷을 특정 포트 또는 다중 포트로 출력하거나, 드롭시키거나 또는 특정 헤더 필드를 수정하는 등의 액션을 처리할 수 있다.
플로우 처리 모듈(230)는 플로우 엔트리의 파이프라인 프로세스를 처리하거나 액션을 변경하기 위한 인스트럭션을 실행하거나 다중 플로우 테이블에서 더 이상 다음 테이블로 갈 수 없을 때 액션 세트를 실행할 수 있다.
패킷 처리 모듈(235)은 플로우 처리 모듈(230)에 의한 처리된 패킷을 플로우 처리 모듈(230)에서 지정한 포트부(205)의 하나 또는 2 이상의 포트로 실제로 출력할 수 있다.
도시되어 있지 않지만, SDN 네트워크 시스템은 가상 네트워크 디바이스, 가상 스위치 등을 생성, 변경 및 삭제하는 오케스트레이터를 더 포함할 수 있다. 오케스트레이터는 가상 네트워크 디바이스를 생성하는 경우, 가상 네트워크가 접속할 스위치의 식별 정보, 해당 스위치에 연결되는 포트 식별 정보, MAC 주소, IP 주소, 터넨트(tenant) 식별 정보 및 네트워크 식별 정보 등의 네트워크 디바이스의 정보를 SDN 제어기(10)로 제공할 수 있다.
SDN 제어기(10)와 스위치(20)는 다양한 정보를 주고 받는데, 이를 오픈플로우 프로토콜 메시지(openflow protocol message)라 칭한다. 이러한 오픈플로우 메시지는 SDN 제어기-스위치 메시지(controller-to-switch message), 비동기 메시지(asynchronous message), 및 대칭 메시지(symmetric message) 등의 타입이 있다. 각 메시지는 엔트리를 식별하는 트랜잭션 식별자(transaction id; xid)를 헤더에 구비할 수 있다.
SDN 제어기-스위치 메시지는 SDN 제어기(10)가 생성하여 스위치(20)에 전달하는 메시지로써, 주로 스위치(20)의 상태를 관리하거나 점검하기 위해 사용된다. SDN 제어기-스위치 메시지는 SDN 제어기(10)의 제어부(100), 특히 메시지 관리 모듈(130)에 의해 생성될 수 있다.
SDN 제어기-스위치 메시지는 스위치의 능력(capabilities)을 문의하는 기능(features), 스위치(20)의 구성 매개 변수 등의 설정을 문의하고 설정하기 위한 설정(configuration), 오픈플로우 테이블의 플로우/그룹/미터 엔트리들을 추가/삭제/수정하기 위한 상태 변경 메시지(modify state message), 패킷-인 메시지를 통해 스위치로부터 수신한 패킷을 해당 스위치 상의 특정한 포트로 전송하도록 하는 패킷-아웃 메시지(packet-out message) 등이 있다. 상태 변경 메시지는 플로우 테이블 변경 메시지(modify flow table message), 플로우 엔트리 변경 메시지(modify flow entry message), 그룹 엔트리 변경 메시지(modify group entry message), 포트 변경 메시지(prot modification message), 및 미터 엔트리 변경 메시지(meter modification message) 등이 있다.
비동기 메시지는 스위치(20)가 생성하는 메시지로서, 스위치의 상태 변경 및 네트워크 이벤트 등을 SDN 제어기(10)에서 업테이트하기 위해 사용된다. 비동기 메시지는 스위치(20)의 제어부(200), 특히 플로우 검색 모듈(220)에 의해 생성될 수 있다.
비동기 메시지로 패킷-인 메시지(packet-in message), 플로우 삭제 메시지(flow-removed), 에러 메시지 등이 있다. 패킷-인 메시지는 스위치(20)가 SDN 제어기(10)에게 패킷을 전송하여 패킷에 대한 제어를 받기 위해 사용된다. 패킷-인 메시지는 스위치(20)가 미지의 패킷을 수신한 경우, 데이터 경로를 요구하기 위해, 오픈플로우 스위치(20)에서 SDN 제어기(10)로 전송되는 수신 패킷 또는 그 사본의 전부 또는 일부를 포함하는 메시지이다. 유입 패킷에 연관된 엔트리의 액션이 SDN 제어기로 보내라고 정해져 있을 때에도 패킷-인 메시지가 사용된다. 삭제된 플로우(flow-removed) 메시지는 플로우 테이브에서 삭제할 플로우 엔트리 정보를 SDN 제어기(10)로 전달하기 위해 사용된다. 이 메시지는 SDN 제어기(10)가 스위치(20)에 해당 플로우 엔트리 삭제를 요청하였거나 플로우 타임아웃(timeout)에 의한 플로우 만기 처리(flow expiry process)에서 발생한다.
대칭 메시지는 SDN 제어기(10) 및 스위치(20) 모두에서 생성되며, 상대방의 요청이 없어도 전송되는 특징이 있다. SDN 제어기와 스위치 간에 연결을 개시할 때 사용되는 헬로(hello), SDN 제어기 및 스위치 간 연결에 이상이 없음을 확인하기 위한 에코(echo), 및 SDN 제어기나 스위치에 의해 사용되며 문제를 반대측에 알리기 위한 에러 메시지(error message) 등을 포함할 수 있다. 에러 메시지는 대부분 SDN 제어기에 의해 개시된 요청에 따른 실패를 나타나기 위해 스위치에서 사용된다.
그룹 테이블은 그룹 엔트리들을 포함할 수 있다. 그룹 테이블은 플로우 엔트리에 의해 지시되어 추가적인 포워딩 방법들을 제시할 수 있다. 도 8(a)를 참조하면, 그룹 테이블의 그룹 엔트리는 다음과 같은 필드를 구비할 수 있다. 그룹 엔트리를 구분할 수 있는 그룹 식별자(group identifier), 그룹 엔트리에 정의된 액션 버킷들을 일부(select) 또는 전부(all) 수행할 것이 여부에 대한 규칙을 명시한 그룹 타입(group type), 플로우 엔트리의 카운터와 같이 통계를 위한 카운터(counters), 및 그룹을 위해 정의된 파라미터들과 연관된 액션들의 집합인 액션 버킷(action buckets)을 포함할 수 있다.
미터 테이블(meter table)은 미터 엔트리들(meter entries)로 구성되며, 플로우 미터-당(per-flow meters)를 정의한다. 플로우 미터-당은 오픈플로우가 다양한 QoS 작동을 적용될 수 있도록 할 수 있다. 미터(meter)는 패킷의 레이트(rate of packets)를 측정 및 제어할 수 있는 일종의 스위치 요소이다. 도 8(b)를 참조하면, 미터 테이블(meter table)은 미터를 식별하는 미터 식별자(meter identifier), 밴드(band)에 지정된 속도와 패킷 동작 방법을 나타내는 미터 밴드(meter bands), 및 패킷이 미터에서 동작될 때 업데이트되는 카운터(counters) 필드들로 구성된다. 미터 밴드(meter bands)는 패킷이 어떻게 처리되는 지를 나타내는 밴드 타입(band type), 미터에 의해 미터 밴드를 선택하는데 사용되는 레이트(rate), 미터 밴드에 의해 패킷들이 처리될 때 업데이트되는 카운터(counters), 및 선택적인 아규먼트(argument)를 가지는 배드 타입들인 특정 아규먼트 타입(type specific argument)과 같은 필드들로 구성될 수 있다.
도 9를 참조하면, 본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치(6)는 예를 들어, 제1 내지 제5 스위치(SW1-SW5, 20)를 구비하는 스위치 그룹, SDN 제어기(10), 및 레거시 라우팅 컨테이너(300)를 포함할 수 있다. 제1 내지 제5 스위치(SW1-SW5) 중 외부 네트워크와 연결된 에지 스위치인 제1 및 제3 스위치(SW1, SW5)는 오픈플로우 프로토콜을 지원하는 오픈플로우 스위치이다. 오픈플로우 스위치는 물리적인 하드웨어, 가상화된 소프트웨어, 또는 하드웨어와 소프트웨어가 혼합된 형태일 수 있다.
본 실시예에서, 제1 스위치(SW1)는 제11 포트(port 11)을 통해 제1 레거시 라우터(R1)에 연결된 에지 스위치이며, 제3 스위치(SW3)는 제32 및 제33 포트(port 32, port 33)를 통해 제2 및 제3 레거시 라우터(R2, R3)에 연결된 에지 스위치이다. 스위치 그룹은 제1 내지 제5 스위치에 연결된 복수의 네트워크 디바이스(2, 3, 4 또는 미도시)를 더 포함할 수 있다.
도 10을 참조하면, 레거시 라우팅 컨테이너(300)는 SDN 인터페이스 모듈(345), 가상 라우터 생성부(320), 가상 라우터(340), 라우팅 처리부(330), 및 라우팅 테이블(335)을 포함할 수 있다.
SDN 인터페이스 모듈(345)은 제어기(10)와 통신할 수 있다. 레거시 인터페이스 모듈(145) 및 SDN 인터페이스 모듈(345) 각각은 제어기(10)와 레거시 라우팅 컨테이너(300)의 인터페이스 역할을 할 수 있다. 레거시 인터페이스 모듈(145) 및 SDN 인터페이스 모듈(345)은 특정 프로토콜이나 특정 언어로 통신할 수 있다. 레거시 인터페이스 모듈(145) 및 SDN 인터페이스 모듈(345)은 제어기(10)와 레거시 라우팅 컨테이너(300)가 주고 받는 메시지를 번역하거나 해석할 수 있다.
가상 라우터 생성부(320)는 SDN 인터페이스 모듈(345)를 통해 수신한 스위치 그룹의 토폴로지 정보를 이용하여 가상 라우터(340)를 생성 및 관리할 수 있다. 가상 라우터(340)를 통해, 외부 레거시 네트워크 즉 제1 내지 제3 라우터(R1-R3)에서 스위치 그룹이 레거시 라우터로 취급될 수 있다.
가상 라우터 생성부(320)는 가상 라우터(340)가 스위치 그룹의 에지 스위치 즉 제1 및 제3 에지 스위치(SW1, SW3)의 에지 포트들과 대응하는 가상 라우터용 포트를 구비하도록 수 있다. 예를 들어 도 11(a)의 경우와 같이, v-R0 가상 레거시 라우터의 포트는 제1 스위치(SW1)의 제11 포트(port 11), 및 제3 스위치(SW3)의 제32 및 33 포트(port 32, port 33)의 정보를 그대로 이용할 수 있다.
가상 라우터(340)의 포트는 패킷의 식별 정보에 연관될 수 있다. 패킷의 식별 정보는 패킷의 vLAN 정보, 이동통 신망을 통해 접속되는 경우 패킷에 부가되는 터널(tunnel) 아이디 등의 태그 정보일 수 있다. 이 경우 오픈플로 우 에지 스위치의 실질적인 포트 하나로 다수의 가상 라우터 포트를 생성할 수 있다. 패킷의 식별 정보에 연관 되는 가상 라우터 포트는 가상 라우터(340)가 복수의 가상 레거시 라우터로 작동하도록 하는데 기여할 수 있다. 에지 스위치의 물리적 포트(실제 포트)만으로 가상 라우터를 생성하는 경우, 물리적 포트의 수에 제한을 받게 된다. 그러나 패킷 식별 정보에 연관시키는 경우, 이러한 제약 사항이 없어진다. 또한 기존의 패킷의 레거시 네 트워크에서의 흐름과 유사하게 작동되도록 할 수 있다. 또한 사용자 또는 사용자 그룹 별로 가상의 레거시 라우 터를 구동할 수 있다. 사용자 또는 사용자 그룹은 vLAN 또는 터널 아이디와 같은 패킷 식별 정보로 구분될 수 있다. 도 L(b)를 참조하면, 스위치 그룹은 복수의 가상 레거시 라우터(v-R1, v-R2)로 가상화되며, 복수의 가상 레거시 라우터(v-R1, v-R2)의 각 포트(vp 11~13, vp 21~23)는 패킷의 식별 정보에 각각 연관될 수 있다.
도 11(b)를 참조하면, 복수의 가상 레거시 라우터(v-R1, v-R2)와 레거시 라우터의 접속은 제1 레거시 라우터(R 1)의 하나의 실제 인터페이스가 분리된 여러개의 서브 인터페이스로 접속되거나, 제2 및 제3 레거시 라우터(R2, R3) 처럼 복수의 실제 인터페이스로 접속될 수 있다.
가상 라우터 생성부(320)는, 제1 내지 제3 라우터(R1-R3)가 제1 내지 제5 스위치(SW1-SW5)에 연결된 복수의 네트워크 디바이스를 가상 라우터(340)에 연결된 외부 네트워크(vN)로 취급되도록 할 수 있다. 이를 통해 레거시 네트워크는 오픈플로우 스위치 그룹의 네트워크 디바이스들에 접근할 수 있다. 도 7(a)의 경우, 가상 라우터 생 부(320)는 제0 가상 레거시 라우터(v-R0)에 제0 포트(port 0)를 생성하였다. 도 7(b)의 경우, 가상 라우터 생 성부(320)는 제1 및 제2 가상 레거시 라우터(v-R1, v-R2)에 제10 및 제20 포트(vp 10, vp 20)를 생성하였다. 생성된 각 포트(port 0, vp 10, vp 20)은 스위치 그룹의 복수의 네트워크 디바이스가 연결된 것과 같은 정보를 구비할 수 있다. 외부 네트워크(vN)은 복수의 네트워크 디바이스 전부 또는 그 일부로 구성될 수 있다.
가상 라우터용 포트(port 0, por 11v, port 32v, port 33v, vp 10~13, vp 20~23)의 정보는 레거시 라우터가 가지는 포트 정보를 가질 수 있다. 예를 들어, 가상 라우터용 포트 정보는 각 가상 라우터용 포트의 MAC 주소, IP 주소, 포트 이름, 연결되어 있는 네트워크 주소 범위, 레거시 라우터 정보를 포함하며, vLAN 범위, 터널 아이디 범위 등을 더 포함할 수 있다.이러한 포트 정보는 상술한 바와 같이 제1 및 제3 에지 스위치(SW1, SW3)의 에지 포트 정보를 상속 받거나, 가상 라우터 생성부(320)에 의해 지정될 수 있다.
가상 라우터(340)에 생성된 가상라우터(340)에 의한 도 9의 네트워크의 데이터 평면(data plane)은 도 11(a) 또는 도 11(b)와 같이 가상화될 수 있다. 예를 들어 도 11(a)의 경우, 가상화된 네트워크는 제1 내지 제5 스위치 (SW1~SW5)가 가상 레거시 라우터(v-R0)로 가상화되고, 제0 가상 레거시 라우터(v-R0)의 제11v, 제32v, 및 제 33v 포트(port 11v, 32v, 33v)는 제1 내지 제3 레거시 라우터(R1~R3)와 연결되고, 제0 가상 레거시 라우터(v- R0)의 제0 포트(port 0)는 복수의 네트워크 디바이스의 적어도 일부인 외부 네트워크(vN)와 연결될 수 있다.
라우팅 처리부(330)는 가상 라우터(340)가 생성되면 라우팅 테이블(335)을 생성할 수 있다. 라우팅 테이블(335)은 레거시 라우터에서 라우팅에 참조되기 위해 사용되는 테이블이다. 라우팅 테이블(335)은 RIB, FIB, 및 ARP 테이블 등의 일부 또는 전부로 구성될 수 있다. 라우팅 테이블(335)은 라우팅 처리부(330)에 의해 수정되거나 업데이트될 수 있다.
라우팅 처리부(330)는 제어기(10)에서 문의한 플로우에 대한 레거시 라우팅 경로를 생성할 수 있다. 라우팅 처리부(330)는 플로우에 구비된 오픈플로우 스위치에서 수신한 수신 패킷, 수신 패킷이 유입된 포트 정보, 가상 라우터(340) 정보, 및 라우팅 테이블(335) 등의 일부 또는 전부를 이용하여 레거시 라우팅 정보를 생성할 수 있다.
라우팅 처리부(330)는 레거시 라우팅을 결정하기 위해 서드 파티 라우팅 프로토콜 스택을 포함할 수 있다.
도 12는 SDN 제어기의 플로우에 대한 레거시 라우팅 여부 판단 방법에 대한 순서도이다.
플로우에 대한 레거시 라우팅 여부 판단 방법은, 제어기(10)가 오픈플로우 스위치로부터 수신한 플로우에 대해 일반적인 SDN 제어를 할 것인지 또는 레거시 라우팅 컨테이너(300)에 플로우 제어를 문의해야 하는지를 의미한다.
도 12를 참조하면, 제어기(10)는 플로우 인입 포트가 에지 포트인지 판단한다(S510). 플로우 인입 포트가 에지 포트가 아닌 경우, 제어기(10)는 일반적인 오픈플로우 패킷에 대한 경로를 계산하는 등 SDN 기반의 플로우 제어를 할 수 있다(S590).
플로우 인입 포트가 에지 포트인 경우, 제어기(10)는 해당 플로우의 패킷이 해석 가능한지 판단한다(S520). 패킷을 해석할 수 없는 경우, 제어기(10)는 플로우를 레거시 라우팅 컨테이너(300)로 전달할 수 있다(S550). 패킷이 레거시 네트워크에서만 사용하는 프로토콜 메시지의 경우, SDN 기반의 일반적인 제어기는 패킷을 해석을 할 수 없기 때문이다.
수신 패킷이 제1 레거시 네트워크에서 제2 레거시 네트워크로 전송되는 것과 같은 레거시 패킷인 경우, SDN 기반의 제어기(10)는 유입된 레거시 패킷의 라우팅 경로를 계산할 수 없다. 따라서 레거시 패킷과 같이 제어기(10)에서 경로를 계산할 수 없는 경우, 제어기(10)는 레거시 패킷을 레거시 라우팅 컨테이너(300)으로 보내야 바람직하다. 다만 레거시 패킷의 유출될 에지 포트와 레거시 패킷의 최종 처리 방법을 알면, 플로우 수정을 통해 제어기(10)에서 레거시 패킷을 처리할 수 있다. 이에 패킷을 해석할 수 있는 경우, 제어기(10)는 해당 플로우의 경로를 계산할 수 있는지 또는 엔트리 테이블에 엔트리가 있는지 등의 플로우 경로를 검색한다(S530). 경로를 검색할 수 없으면, 제어기(10)는 해당 플로우를 레거시 라우팅 컨테이너(300)으로 전달할 수 있다(S550). 경로를 검색할 수 있으면, 제어기(10)는 패킷의 출력을 지정하는 패킷-아웃 메시지를 생성하여 패킷 문의한 오픈플로우 스위치로 전송할 수 있다(S540). 이에 대한 자세한 예는 후술한다.
도 13은 레거시 프로토콜 메시지를 본 발명이 적용된 SDN 기반의 네트워크에서 처리하는 흐름을 도시한다. 도 N는 그 일례로 제1 에지 스위치(SW1)에서 OSPF(Open Shortest Path First) 프로토콜의 헬로 메시지를 받은 경우이다.
본 일례는 SDN 제어기(10) 및 레거시 라우팅 컨테이너(300)에 의해 오픈플로우 스위치 그룹은 도 J(a)와 같이 가상화되어 있다고 가정한다.
도 13을 참조하면, 제1 레거시 라우터(R1)와 제1 에지 스위치(SW1)가 연결되면 제1 레거시 라우터(R1)은 제1 에지 스위치(SW1)에게 OSPF 프로토콜의 헬로 메시지(Hello1)를 전송할 수 있다(S410).
제1 에지 스위치(SW1)의 테이블(291)에 수신 패킷에 대한 플로우 엔트리가 없으므로, 제1 에지 스위치(SW1)는 알지 못하는 패킷(unkown packet)을 알리는 패킷-인 메시지를 SDN 제어기(10)로 전송한다(S420). 패킷-인 메시지는 Hello1 패킷 및 인입 포트(port 11) 정보를 구비하는 플로우를 포함하는 것이 바람직하다.
SDN 제어기(10)의 메시지 관리 모듈(130)은 해당 플로우에 대한 처리 규칙을 생성할 수 있는지 판단할 수 있다(S430). 판단 방법에 대한 자세한 사항은 도 O를 참조한다. 본 예에서, OSPF 프로토콜 메시지는 SDN 제어기(10)가 해석할 수 없는 패킷이므로, SDN 제어기(10)는 레거시 라우팅 컨테이너(300)로 해당 플로우를 전달할 수 있다(S440).
레거시 라우팅 컨테이너(300)의 SDN 인터페이스 모듈(345)는 SDN 제어기(10)로부터 전달 받은 Hello1 패킷을 플로우에 구비된 제1 에지 스위치(SW1)의 인입 포트(port 11)와 대응하는 가상 라우터(340)의 포트(port 11v)로 전송할 수 있다. 가상 라우터(340)가 Hello1 패킷을 수신하면, 라우팅 처리부(330)는 라우팅 테이블(335)에 기반하여 Hello1 패킷의 레거시 라우팅 정보를 생성할 수 있다(S450). 본 실시예에서 라우팅 처리부(330)은 Hello1 메시지에 대응하는 Hello2 메시지를 생성하고, Hello2 패킷이 제1 레거시 라우터(R1)로 전송되도록 출력 포트를 제11v 포트(port 11v)로 지정하는 라우팅 경로를 생성할 수 있다. Hello2 메시지는 제1 레거시 라우터(R1)인 목적지 및 기지정된 가상 라우터 식별자를 구비한다. 레거시 라우팅 정보는 Hell2 패킷, 및 제11v 포트인 출력 포트를 포함할 수 있다. 본 실시예에서 가상 라우터(340)에 Hello1 패킷이 인입되는 것으로 기술하였지만 이에 한정되지 않고, 라우팅 처리부(330)가 가상 라우터(340)의 정보를 이용하여 레거시 라우팅 정보를 생성할 수 있다.
SDN 인터페이스 모듈(345)는 생성된 레거시 라우팅 정보를 SDN 제어기(10)의 레거시 인터페이스 모듈(145)로 전달할 수 있다(S460). SDN 인터페이스 모듈(345) 및 레거시 인터페이스 모듈(145) 중 어느 하나는 출력 포트인 제11v 포트(port 11v)를 제1 에지 스위치(SW1)의 제11 포트(port 11)로 변환할 수 있다. 또는 제11v 포트와 제11 포트의 이름을 동일하게 하여, 포트 변환을 생략할 수 있다.
SDN 제어기(10)의 경로 계산 모듈(125)은 레거시 인터페이스 모듈(145)를 통해 수신한 레거시 라우팅 정보를 이용하여 Hello2 패킷이 제1 레거시 라우터(R1)의 제11 포트(port 11)로 출력되도록 하는 경로를 설정할 수 있다(S470).
메시지 관리 모듈(130)은 설정된 경로와 레거시 라우팅 정보를 이용하여, Hello2 패킷이 인입 포트인 제11 포트(port 11)로 출력되도록 하는 패킷-아웃 메시지를 생성하여 제1 레거시 라우터(R1)로 전송할 수 있다(S480).
본 실시예에서, 외부 레거시 라우터의 Helle 메시지에 대응하는 것으로 서술하였지만 이에 한정되지 않는다. 예를 들어, 레거시 라우팅 컨테이너(300)는 능동적으로 에지 스위치의 에지 포트로 출력되도록 하는 OSPF 헬로 메시지를 생성하여, SDN 제어기(10)로 전송할 수 있다. 이 경우 SDN 제어기(10)는 패킷-아웃 메시지로 헬로 패킷을 오픈플로우 스위치로 전송할 수 있다. 그리고, 패킷-인 메시지에 대응하지 않는 패킷-아웃 메시지라도 오픈플로우 스위치가 패킷-아웃 메시지의 지시대로 하도록 세팅함으로써 본 실시예를 구현할 수 있다.
도 14는 일반적인 레거시 패킷이 제1 에지 스위치(SW1)에서 제3 에지 스위치(SW3)로 전송되는 경우를 도시한다.
제1 에지 스위치(SW1)은 제1 레거시 라우터(R1)로부터 목적지 IP 주소가 오픈플로우 스위치 그룹에 속하지 않는 레거시 패킷 P1을 수신하는 것으로 시작한다(S610).
제1 에지 스위치(SW1)는 패킷 P1에 대한 플로우 엔트리가 없으므로, 패킷 P1을 SDN 제어기(10)로 전송하며 플로우 처리를 문의(패킷-인 메시지)할 수 있다(S620).
SDN 제어기(10)의 메시지 관리 모듈(130)은 해당 플로우에 대한 SDN 제어가 가능한지 판단할 수 있다(S630). 본 예에서, 패킷 P1은 해석 가능하나 레거시 네트워크를 향하므로, SDN 제어기(10)는 패킷 P1의 경로를 생성할 수 없다. 이에 SDN 제어기(10)는 패킷 P1 및 인입 포트인 제11 포트를 경로 계산 모듈(125)를 통해 레거시 라우팅 컨테이너(300)으로 전송할 수 있다(S640).
레거시 라우팅 컨테이너(300)의 라우팅 처리부(330)는 SDN 제어기(10)로부터 전달 받은 패킷 P1을 가상 라우터(340)의 정보 및 라우팅 테이블(335)에 기초하여 레거시 라우팅 정보를 생성할 수 있다(S650). 본 예에서 패킷 P1이 가상 라우터의 제32v 포트(port 32v)로 출력되어야 한다고 가정한다. 이 경우, 레거시 라우팅 정보는 패킷 P1에 대해 제32v 포트(port 32v)인 출력 포트, 제2 레거시 라우터(R2)의 MAC 주소인 목적지 MAC 주소, 및 제32v 포트의 MAC 주소인 소스(source) MAC 주소를 포함할 수 있다. 이러한 정보는 레거시 라우터에서 출력되는 패킷의 헤더 정보이다. 예를 들어, 제1 레거시 라우터(R1)에서 가상 레거시 라우터(v-R0)를 레거시 라우터로 보고 패킷 P1을 전송하는 경우, 패킷 P1의 헤더 정보는 다음과 같다. 소스 및 목적지 IP 주소는 패킷 P1이 생성하였을 때의 헤더 정보와 동일하므로, 본 설명에서 제하기로 한다. 패킷 P1의 소스 MAC 주소는 라우터(R1)의 출력 포트의 MAC 주소이다. 패킷 P1의 목적지 MAC 주소는 가상 레거시 라우터(v-R0)의 제11v 포트(port 11v)의 MAC 주소이다. 기존의 라우터라면, 가상 레거시 라우터(v-R0)의 제32v 포트(port 32v)로 출력되는 패킷 P1'는 다음과 같은 헤더 정보를 가질 수 있다. 패킷 P1'의 소스 MAC 주소는 가상 레거시 라우터(v-R0)의 제32v 포트(port 32v)의 MAC 주소이고, 목적지 MAC 주소는 제2 레거시 라우터의 인입 포트의 MAC가 된다. 즉 레거시 라우팅시 패킷 P1의 헤더 정보의 일부가 변하게 된다.
레거시 라우팅과 대응되도록 하기 위해, 라우팅 처리부(330)는 패킷 P1의 헤더 정보를 조정한 패킷 P1'를 생성하여 레거시 라우팅 정보에 포함시킬 수 있다. 이 경우, 동일한 패킷, 또는 목적지 주소 범위가 동일한 유사한 패킷에 대해 매번 SDN 제어기(10) 또는 레거시 라우팅 컨테이너(300)에 유입 패킷을 처리해야 한다. 따라서, 패킷이 기존의 라우팅 이후의 포맷으로 변화시키는 단계는 레거시 라우팅 컨테이너(300) 보다 패킷을 외부 레거시 네트워크로 출력하는 에지 스위치(본 예에서, 제3 에지 스위치(SW3))에서 패킷 조작을 하는 것이 바람직하다. 이를 위해, 앞서 설명한 레거시 라우팅 정보는 소스 및 목적지 MAC 주소를 포함할 수 있다. SDN 제어기(10)는 이러한 라우팅 정보를 이용하여, 제3 에지 스위치에 패킷 P1'의 헤더 정보를 변경하도록 하는 플로우 변경(flow-Mod) 메시지를 전송할 수 있다.
SDN 인터페이스 모듈(345)는 생성된 레거시 라우팅 정보를 SDN 제어기(10)의 레거시 인터페이스 모듈(145)로 전달할 수 있다(S660). 본 단계에서 출력 포트 맵핑되는 에지 포트로 변환될 수 있다.
SDN 제어기(10)의 경로 계산 모듈(125)은 레거시 인터페이스 모듈(145)를 통해 수신한 레거시 라우팅 정보를 이용하여 제1 에지 스위치(SW1)에서 제3 에지 스위치(SW3)의 제32 포트로 출력되도록 하는 경로를 계산할 수 있다(S670).
메시지 관리 모듈(130)은 계산된 경로를 기초로, 제1 에지 스위치(SW1)에 패킷 P1에 대한 출력 포트를 지정하는 패킷-아웃 메시지를 전송하고(S680), 해당 경로의 오픈플로우 스위치에 플로우 변경(flow-Mod) 변경 메시지를 전송할 수 있다(S690, S700). 메시지 관리 모듈(130)은 제1 에지 스위치(SW1)로 동일한 플로우에 대한 처리를 규정하도록 플로우 변경(flow-Mod) 메시지도 전송할 수 있다.
패킷 P1에 대한 플로우 처리는 레거시 플로우임을 식별할 수 있는 식별자에 기초하여 이루어 지는 것이 바람직하다. 이를 위해 제1 에지 스위치(SW1)으로 전송되는 패킷-아웃 메시지에 레거시 식별자(tunnel ID)가 부가된 패킷 P1을 포함하도록 하고, 플로우 변경 메시지는 레거시 식별자(tunnel ID)가 부가되도록 하는 플로우 엔트리를 포함하도록 할 수 있다. 각 스위치의 플로우 테이블의 일례는 도 P을 참조한다. 도 P(a)는 제1 에지 스위치(SW1)의 플로우 테이블이다. 예를 들어, 도 P(a)의 테이블 0은 제2 레거시 라우터(R2)로 향하는 플로우에 레거시 식별자로 tunnel2를 플로우에 부가하고 테이블 1로 플로우가 이동되도록 한다. 레거시 식별자는 메타필드나 다른 필드에 기입될 수 있다. 테이블 1은 tunnel2를 가지는 플로우가 제14 포트(제4 스위치(SW4)와 연결된 제1 스위치(SW1)의 포트 정보)로 출력되도록 하는 플로우 엔트리를 구비한다. 도 P(b)는 제4 스위치(SW4)의 플로우 테이블의 예시이다. 도 15(b)의 테이블은 플로우 정보 중 레거시 식별자가 tunnel2인 플로우가 제3 스위치(SW3)와 연결된 제43 포트(port 43)로 출력되도록 한다. 도 P(c)는 제3 스위치(SW3)의 플로우 테이블의 예시이다. 도 15(c)의 테이블 0은 레거시 식별자가 tunnel2인 플로우의 레거시 식별자를 제거하고 해당 플로우를 테이블 1로 이동되도록 한다. 테이블 1은 해당 플로우를 제32포트로 출력하도록 한다. 이와 같이 다중 테이블을 이용하면, 경우의 수를 줄일 수 있다. 이는 신속한 검색을 가능하게 하고, 메모리 등의 자원 소모를 줄일 수 있다.
제1 에지 스위치(SW1)는 레거시 식별자(tunnel ID)를 패킷 P1에 부가하거나(S710), 레거시 식별자(tunnel ID)가 부가된 패킷을 코어 네트워크로 전송할 수 있다(S720). 코어 네트워크는 에지 스위치(SW1, SW3)가 아닌 오픈플로우 스위치(SW2, SW4, SW5)로 구성된 네트워크를 의미한다.
코어 네트워크는 해당 플로우를 제3 에지 스위치(SW3)로 전송할 수 있다(S730). 제3 에지 스위치(SW3)는 레거시 식별자를 제거하고 지정된 포트로 패킷 P1을 출력할 수 있다(S740). 이 경우, 도 15의 플로우 테이블에 도시하지는 않았지만, 제3 스위치(SW3)의 플로우 테이블은 패킷 P1의 목적지 및 소스 MAC 주소를 변경하도록 하는 플로우 엔트리를 구비하는 것이 바람직하다.
플로우 테이블은 오픈플로우의 파이프라인(pipeline)을 처리하기 위해 다중 플로우 테이블로 구성될 수 있다. 도 R을 참조하면, 플로우 테이블의 플로우 엔트리는 패킷과 매치하는 조건(대조 규칙)을 기술한 매치 필드(match fields), 우선 순위(priority), 매치되는 패킷이 있는 경우 업데이트되는 카운터(counters), 플로우 엔트리에 매치되는 패킷이 있으면 발생하는 다양한 액션들의 집합인 인스트럭션(instruction), 스위치에서 파기될 시간을 기술하는 타임아웃(timeouts), SDN 제어기에 의해 선택되어지는 오파큐(opaque) 타입으로, SDN 제어기에 의해 플로우 통계, 플로우 변경, 및 플로우 삭제를 필터하기 위해 사용될 수 있으며, 패킷 처리시 사용되지 않는 쿠키(cookie) 등의 튜플(tuple)을 포함할 수 있다. 인스트럭션(instruction)은 다른 플로우 테이블로 패킷을 전달하는 것과 같은 파이프라인 프로세싱의 변경할 수 있다. 또한 인스트럭션은 액션 셋(action set)에 액션을 더하는 액션(action)들의 집합, 또는 패킷에 바로 적용하기 위한 액션들의 리스트를 포함할 수 있다. 액션(action)은 특정 포트로 패킷을 전송하거나, TTL 필드를 감소시키는 것과 같이 패킷을 수정하는 작업을 의미한다. 액션은 플로우 엔트리와 연관된 인스트럭션 집합의 일부 또는 그룹 엔트리와 연관된 액션 버킷에 속할 수 있다. 액션 셋(action set)은 각 테이블에서 지시된 액션이 누적된 집합을 의미한다. 액션 셋은 매치되는 테이블이 없을 때 수행될 수 있다. 도 15는 플로우 엔트리에 의한 여러 패킷 처리를 예시한다.
도 16을 참조하면, 본 발명의 일 실시예에 따른 네트워크 어플리케이션 모듈(40)은, 네트워크 디바이스의 타임스탬프 값으로 패킷의 시각을 동기화하는, 시각 동기화 모듈(410)를 더 포함할 수 있다.
네트워크 패킷 중개 장치(6)은 프로세서(801)를 더 포함하고, 스위치(20)는 프로세서(801)를 더 포함하며, 네트워크 패킷 중개 장치(6)의 프로세서(801)는 시각값을 회신하는 클럭을 포함하고, 스위치(20)의 프로세서(801)는 프로세서 내에 기준 시간으로부터 경과된 시간 파라미터를 저장하는 레지스터를 포함하며, 시각 동기화 모듈(410)은 스위치(20)가 패킷의 타임 스탬프 부여 요청을 받는 경우, 기준 시간스위치의 프로세서의 레지스터로부터 시간 파라미터의 오버플로우을 보정하여 패킷에 타임 스탬프를 저장하는 것일 수 있다.
도 16을 참조하면, 본 발명의 일 실시예에 따른 네트워크 어플리케이션 모듈(40)은, QoS(Quality of Service)를 제어하는, 정책 관리자 모듈(420)을 더 포함할 수 있다. 정책 관리자 모듈(420)은 패킷의 정보에 따라 패킷의 흐름의 처리 방식을 저장하고 제어하는 것일 수 있다.
도 16을 참조하면, 본 발명의 일 실시예에 따른 네트워크 어플리케이션 모듈(40)은, 플로우 패킷의 GTP 헤더 또는 VxLAN 헤더를 추출, 수정, 제거 또는 삽입하는, 심층 패킷 매칭 모듈(430)을 더 포함할 수 있다.
도 16을 참조하면, 본 발명의 일 실시예에 따른 네트워크 어플리케이션 모듈(40)은, 플로우 패킷의 GTP-C 패킷과 GTP-U 패킷이 동일한 유출 포트로 전달될 수 있도록 연동하는, GTP 상관 관계 모듈(440)을 더 포함할 수 있다. GTP 상관 관계 모듈(440)은 GTP-U 트래픽을 분류하며, 구체적으로 GTP-U 패킷의 Src IP (상향 링크의 eNodeB IP 및 하향 링크의 SGW IP)로 GTP-U TEID를 식별하여 하나의 IMSI에 맵핑하는 것일 수 있다. 또한, GTP 상관 관계 모듈(440)은 패킷의 eNB IP 및 S1-U SGW GTP-U 인터페이스 터널 ID로 상향 링크 GTP-U 트래픽을 식별하고 S1-U eNodeB GTP-U 인터페이스 터널 ID를 가진 SGW IP로 하향 링크 트래픽을 식별하여, 둘 다 하나의 IMSI에 맵핑시킬 수 있다.
도 16을 참조하면, 본 발명의 일 실시예에 따른 네트워크 어플리케이션 모듈(40)은, 하나 이상의 가상 네트워크를 생성, 변경 및 처리 작업을 수행하는 네트워크 슬라이싱 모듈(470)을 더 포함할 수 있다.
도 16을 참조하면, 본 발명의 일 실시예에 따른 네트워크 어플리케이션 모듈(40)은, 맵핑된 네트워크 디바이스의 정보를 변경하는 프로시져를 해석하는 API 파서 모듈(450)을 더 포함할 수 있다.
도 16을 참조하면, 본 발명의 일 실시예에 따른 네트워크 어플리케이션 모듈(40)은, 맵핑된 네트워크 디바이스의 정보를 변경하는 프로시져에 따른 작업을 수행하는 API 서버 모듈(460)을 더 포함할 수 있다.
도 16을 참조하면, 본 발명의 일 실시예에 따른 네트워크 어플리케이션 모듈(40)은, 하나 이상의 가상 네트워크를 생성, 변경 및 처리 작업을 수행하는 네트워크 슬라이싱 모듈(470)을 더 포함할 수 있다.
도 16을 참조하면, 본 발명의 일 실시예에 따른 네트워크 어플리케이션 모듈(40)은, 스위치(20)의 포트(250)를 제어하는 포트 관리자 모듈(480)을 더 포함할 수 있다.
포트 관리자 모듈(480)는 스위치의 포트(250)를 인입(ingress), 유출(egress) 및 전달(transit) 상태로 설정하고, 포트를 단일 또는 군(group)으로 설정하는 것일 수 있다.
도 17을 참조하면, 본 발명의 본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치(6)의 제어부(800)는 프로세서(801), 메모리(803), 영구 저장 장치(805), 송수신기(802), 버스 시스템(804) 및 I/O 유닛(806)를 포함할 수 있 다. 본 예시적인 실시예에 따르면, 프로세서(801)는 마이크로 프로세서, 마이크로제어기, 복합 명령어 세트 컴퓨팅 마이크로프로세서, 축소된 명령어 세트 컴퓨팅 마이크로프로세서, 매우 긴 명령어 워드 마이크로프로세서, 명시적 병렬 명령어 컴퓨팅 마이크로프로세서, 그래픽 프로세서, 디지털 신호 프로세서, 집적 회로, 주문형 집적 회로, 또는 임의의 다른 타입의 유사한 및/또는 적절한 처리 회로와 같지만, 이에 한정되지 않는 임의의 타입의 물리적 계산 회로 또는 하드웨어일 수 있다. 프로세서(801)는 또한 범용 또는 프로그램 가능 로직 디바이스 또는 어레이, 주문형 집적 회로, 단일 칩 컴퓨터, 스마트 카드 등과 같은 내장형 제어기를 포함할 수 있다.
송수신기(802)는 다른 시스템 또는 셀룰러 네트워크에서의 다른 엔티티와의 통신을 지원한다. 예를 들어, 송수신기(802)는 네트워크 인터페이스 카드 또는 네트워크를 통해 통신을 용이하게 하는 유선/무선 송수신기를 포함할 수 있다. 통신 유닛(802)은 임의의 적절한 물리적 또는 통신 링크를 통해 통신을 지원할 수 있다.
메모리(803)는 휘발성 메모리 및 비휘발성 메모리일 수 있다. 다양한 컴퓨터 판독 가능 저장 매체는 메모리(803)의 메모리 요소에 저장되고 메모리(803)의 메모리 요소로부터 액세스될 수 있다. 메모리 요소는 ROM, 랜덤 액세스 메모리(Random Access Memory; RAM), EPROM(Erasable Programmable Read Only Memory), EEPROM((Electrically EPROM), 하드 드라이브, 메모리 카드를 취급하기 위한 착탈식 매체 드라이브, 메모리 스틱, 및 임의의 다른 유사한 및/또는 적절한 타입의 메모리 저장 디바이스 및/또는 저장 매체와 같이 데이터 및 기계 판독 가능 명령어를 저장하기 위한 임의의 수의 적절한 메모리 디바이스를 포함할 수 있다.
영구 저장 장치(persistent storage)(805)는 ROM(read only memory), 하드 드라이브, 플래시 메모리 또는 광학 디스크와 같은 데이터의 장기 저장(longer-term storage)을 지원하는 하나 이상의 구성 요소 또는 디바이스를 포함할 수 있다.
I/O 유닛(806)은 데이터의 입력 및 출력을 허용한다. 예를 들어, I/O 유닛(806)은 키보드, 마우스, 키패드, 터치 스크린, 또는 다른 적절한 입력 디바이스를 통해 사용자 입력을 위한 연결(connection)을 제공할 수 있다. I/O 유닛(806)은 또한 출력을 디스플레이, 프린터 또는 다른 적절한 출력 디바이스에 송신할 수 있다.
도 18은 본 발명의 일 실시예에 따른 패킷의 타임 스탬프 부여 방법의 일 실시예를 도시,
도 18을 참조하면, 본 발명의 일 실시예에 따른, 패킷의 타임 스탬프 부여 방법은,
네트워크 패킷 중개 장치(6)의 프로세서(801)의 클럭을 스위치(20)가 취득하는 단계(S1010);
스위치(20)의 기준 시간 파라미터 Tb을 취득한 클럭으로 갱신하는 단계(S1020);
의을 받는 단계(S1030);
시각 동기화 모듈(410)이 스위치(20)의 전 경과시간 파라미터 Tp를 현 경과시간 파라미터 Tc로 갱신하는 단계(S1040);
시각 동기화 모듈(410)이 스위치(20)로부터 파라미터 Tb 기준 경과한 시간값을 파라미터 Tc으로 취득하는 단계(S1050);
시각 동기화 모듈(410)이 파라미터 Tc와 파라미터 Tp의 크기를 비교하는 단계(S1060);
시각 동기화 모듈(410)이 파라미터 Tc가 파라미터 Tp보다 작은 경우, 파라미터 Tb를 파라미터 Tp 및 보정값의 합만큼 가산하여 갱신하는 단계(S1070);
시각 동기화 모듈(410)이 파라미터 Tc가 파라미터 Tp보다 크거나 같은 경우, 파라미터 Tb를 파라미터 Tp만큼 가산하여 갱신하는 단계(S1080); 및
시각 동기화 모듈(410)이 스위치(20)가 파라미터 Tb를 패킷에 타임 스탬프로 저장하는 단계(S1090)를 포함할 수 있다.
본 발명의 일 실시예에 따른 패킷의 타임 스탬프 부여 방법에 있어서, 상기패킷의 타임 스탬프 부여 방법은 IEEE 1588 PTP(Precision Time Protocol) 동기화 프로토콜을 이용하는 것일 수 있다.
본 발명의 일 실시예에 따른 패킷의 타임 스탬프 부여 방법에 있어서, 파라미터 Tp 및 파라미터 Tc는 스위치(20)의 프로세서(800)의 레지스터에 저장되는 것일 수 있다.
본 발명의 일 실시예에 따른 패킷의 타임 스탬프 부여 방법에 있어서, 상기 레지스터의 저장 단위는 64비트 미만일 수 있으며, 구체적으로, 48비트 또는 32비트일 수 있다.
본 발명의 일 실시예에 따른 패킷의 타임 스탬프 부여 방법에 있어서, 패킷에 타임 스탬프로 저장하는 단계 (S1090)의 타임 스탬프 저장 단위는 64비트일 수 있다. 이로 인하여, 패킷에 나노초(nano sec) 단위 타임 스탬프 부여가 가능하다.
본 발명의 일 실시예에 따른 패킷의 타임 스탬프 부여 방법에 있어서, 갱신하는 단계(S1070)의 보정값은 상기 레지스터의 저장 단위의 최대값일 수 있다. 예를 들어, 저장 단위가 48비트인 경우, 2^48-1, 즉, 281,474,976,710,655일 수 있으며, 저장 단위가 32비트인 경우, 2^32-1, 즉, 4,294,967,294일 수 있다. 상기 보정값은 스위치의 프로세서가 통상적으로 레지스터의 저장 단위가 64비트 보다 작은 경우, 경과시간 파라미터의 오버플로우가 발생하더라도 64 비트의 나노초(nano sec) 단위의 타임 스탬프의 부여가 가능하도록 한다.
본 발명의 일 실시예에 따른 패킷의 타임 스탬프 부여 방법에 있어서, 파라미터 Tp 및 파라미터 Tc는 스위치(20)의 프로세서(800)의 레지스터에 저장되는 것일 수 있다.
도 19를 참조하면, 타임 스탬프로 저장하는 단계(S1090)에서, ERSPAN 타입의 패킷인 경우, ERSPAN 헤더의 33번째 비트부터 32비트를 타임 스탬프의 LSB 32 비트 타임 스탬프로 저장하는 것이고, Platform specific subheader의 33번째 비트부터 32비트를 타임 스탬프의 MSB 32 비트 타임 스탬프로 저장하는 것일 수 있다. 이러한 저장 방식은 기존 시스템에 사용되던 표준이므로 호환성이 좋은 장점이 있으며, 패킷 분석 장비에서 별도의 수정이 요구되지 않는다.
도 20을 참조하면, 타임 스탬프로 저장하는 단계(S1090)에서, INT(In-band Network Telemetry) 타입의 패킷인 경우, 도 W를 참조하면, INT 헤더의 첫번째 비트부터 32비트를 타임 스탬프의 LSB 32 비트 타임 스탬프로 저장하는 것이고, 33번째 비트부터 32비트를 타임 스탬프의 LSB 32 비트 타임 스탬프로 저장하는 것일 수 있다. 이러한 저장 방식은 패킷 분석 장비에서 패킷 사이즈가 작아 처리 시 오버헤드 용량을 저감할 수 있다.
도 21을 참조하면, 본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치(6)는 4G LTE 또는 5G 셀룰러 네트워크 아키텍처의 각 연결단계에서 직접 또는 TAP(Test Application Protocol)을 통하여, 패킷을 전달받을 수 있다. 무선 셀룰러 네트워크 아키텍처는 UE(801), eNB(802), MME(Mobility Management Entity, 803), SGW(Serving Gateway, 805), PGW(Packet data network Gateway, 806) 및 PDN(Packet Data Network, 5)를 포함할 수 있다.
무선 셀룰러 네트워크 아키텍처에서 eNB(802)는 UE(801)와 X2 또는 Uu 인터페이스를 통해 통신할 수 있다. 또한, eNB(802)는 MME(803)와 S1AP 제어 또는 S1-MME 인터페이스를 통해 통신할 수 있다. Uu 인터페이스는 NAS(이동성(mobility) 관리, 베어러 제어), 무선 자원 제어(Radio Resource Control, RRC) 등을 위해 사용될 수 있다. S1AP 제어 인터페이스를 통해서는, EPS 베어러 설정 시 초기 단말 컨텍스트(UE context)의 전달, 이후의 이동성, 페이징(paging) 및 UE 컨텍스트 해제 등을 위해 사용될 수 있다.
GTP-U 인터페이스는 S1-U, S5, X2 인터페이스 상에서 사용자 트래픽을 전송하기 위해 사용될 수 있다. GTP-C 제어 인터페이스는 GTP 터널을 생성, 유지 및 삭제하기 위한 제어 메시지의 전송을 위해 사용될 수 있다.
SGW(805)는 PGW(806)와 GTP-U 인터페이스/GTP-C 제어 인터페이스를 통해 통신하며, PGW(806)는 PDN(5)과 IP 인터페이스를 통해 통신할 수 있다.
도 22는 본 발명의 일 실시예에 따른 무선 셀룰러 네트워크에서 제어 평면에서의 IP 주소 할당 및 사용자 평면에서의 TEID 할당을 지원하기 위한 호 흐름을 도시한다.
단계(S2101)에서, UE(801)는 초기 접속 요청을 하기 위해 PLMN(Public Land Mobile Network) 및 셀 탐색 과정을 거쳐 셀을 선택한다. 그리고, 선택된 셀과의 무선 링크 동기를 맞추기 위해, 기지국(802)과 RRC 연결 과정을 수행한다. RRC 연결 설정이 완료되면, UE(801)는 RRC Connection Setup Complete 메시지를 기지국(802)으로 전송한다. 이후, UE(801)는 접속 요청 메시지(Attach Request 메시지)를 MME(803)로 전송하기 위해, RRC Connection Setup Complete 메시지에 Attach Request 메시지를 포함시켜 eNodeB(802)에 전송한다.
단계(S2102)에서, eNodeB(802)는 Attach 절차의 일부로서 PDN 연결을 위한 요청을 MME(803)에 송신한다. 기지국(802)은 MME(803)와의 S1 시그널링 연결을 위해, UE(801)가 접속된 셀의 셀 ID 및 트래킹 영역(Tracking Area) 정보가 포함된 Initial UE 메시지를 MME(803)로 전송한다. 여기서, 기지국(802)은 UE(101)로부터 수신된 Attach Request 메시지를 MME(803)로 전달하기 위해, Initial UE 메시지 내에 Attach Request 메시지를 포함시켜 전송한다. 이와 같이, 기지국(802)이 MME(803)로 Initial UE 메시지를 전송함에 따라, 기지국(802)과 MME(803) 사이의 S1 시그널링 연결이 수립된다.
단계(S2103)에서, MME(803)는 PGW-C IP 주소와 함께 Create Session Request를 서빙 게이트웨이(805)의 제어 평면 기능부(serving gateway control plane function; SGW-C)에 송신함으로써 Default Bearer 생성을 요청한다. Create Session Request에는 MME(803)의 GTP-C TEID(901)가 포함될 수 있다. SGW(805)의 제어 평면 기능부는 예를 들어 UE의 위치, 사용자 데이터 송신을 위한 최적 경로와 같은 기준에 기초하여 복수의 사용자 평면 기능부(serving gateway user plane function, SGW-U) 중 하나의 SGW-U를 선택한다. SGW-C는 SGW-U 주소의 명시된 풀(designated pool)로부터 IP 주소를 할당한다. 일부 실시예에서, 이러한 IP 주소는 또한 오퍼레이터의 네트워크 내의 다른 수단에 의해, 즉 오퍼레이터 정의 정책 또는 프로비저닝(provisioning)에 기초하여 획득될 수 있다. IP 주소가 할당되면, SGW-C(253)는 Allocate Resource Request 메시지를 송신함으로써 TEID를 할당하도록 서빙 게이트웨이 사용자 평면 기능부(SGW-U)에 요청한다. SGW-C로부터 자원 할당 요청을 수신하면, SGW-U는 GTP 사용자 평면 및 제어 평면에 대한 로컬 풀로부터 PGW(다운링크 송신을 위한 SGW-U TEID) 및 또한 eNB(업링크 송신을 위한 SGW-U TEID)로 TEID를 할당한다. SGW-U는 또한 네트워크 오퍼레이터의 정책에 기초하여 이러한 정보를 획득할 수 있다. 업링크 및 다운링크 송신을 위해 할당된 TEID는 Allocate Resource Ack에서 SGW-C로 반환(return)된다.
단계(S2104)에서, SGW-C는 다운링크 송신을 위한 SGW-U IP 주소, SGW GTP-C TEID(902) 및 SGW GTP-U TEID(902)를 포함하는 Create Session Request를 SGW-U의 새롭게 할당된 IP 주소 및 PGW-U(256)를 향한 GTP 연결을 위한 TEID와 함께 PGW(806)의 제어 평면 기능부(PGW-C)로 송신한다. PGW-C는 IP 주소를 PGW-U 주소의 명시된 풀에 할당한다. 이러한 주소는 또한 오퍼레이터의 네트워크의 다른 수단에 의해, 즉 오퍼레이터 정의된 정책 또는 프로비저닝에 기초하여 획득될 수 있다. IP 주소가 할당되면, PGW-C는 다운링크 송신을 위한 SGW-U IP 주소 및 SGW-U TEID를 포함하는 Allocate Resource Request 메시지를 송신함으로써 TEID를 할당하도록 PGW-U에 요청한다. PGW-C로부터 자원 할당 요청을 수신하면, PGW-U는 로컬 풀로부터 TEID를 할당한다. PGW-U는 또한 네트워크 오퍼레이터의 정책에 기초하여 이러한 정보를 획득할 수 있다. 할당된 PGW-U TEID는 Allocate Resource Ack 메시지에서 PGW-C(255)로 반환된다.
단계(S2105)에서, 새롭게 할당된 TEID와 함께 PGW-U(256)로부터 응답을 수신하면, PGW-C(255)는 PCRF(Policy and Charging Rule Function)와 함께IP CAN(Internet Protocol connectivity access network) 세션 확립/수정(Session Establishment/Modification) 절차를 개시할 수 있다.
단계(S2106)에서, 응답은 PGW-U IP 주소, PGW GTP-C TEID(903) 및 PGW GTP-U TEID(903)를 포함하는 Create Session Response 메시지에서의 PGW-U TEID 및 또한 PGW-U IP 주소와 함께 SGW-C로 송신된다.
그 다음, 단계(S2107)에서, SGW-C(253)는 Modify Request 메시지를 송신함으로써 수신된 PGW-U TEID 및 PGW-U IP 주소를 SGW-U(254)로 전달한다. SGW-U(254)는 요청을 확인 응답(acknowledge)한다. Modify Request의 응답을 수신한 후, SGW-U IP 주소, SGW GTP-C TEID(904) 및 SGW GTP-U TEID(904)와 함께 Create Session Response 메시지가 MME(803)에 송신된다.
그 다음, 단계(S2108)에서, MME(803)는 eNB(802)를 통해 Attach Accept 메시지를 UE(801)에 송신한다. Attach Accept 메시지를 피기배킹(piggybacking)하는 Initial Context Setup 메시지는 SGW-U IP 주소 및 SGW-U TEID를 포함한다. MME(803)로부터 Initial Context Setup Request 메시지를 수신한 기지국(802)은, 무선 구간에서 UE(801)와의 안전한 통신을 위해 AS Security Setup 절차를 수행한다. AS Security Setup 절차를 통해 RRC 메시지는 무결성 보호 및 암호화되고, UE(801)의 사용자 트래픽도 암호화되어 전달될 수 있게 된다.
그 다음, 단계(S2109)에서, AS Security Setup 절차가 완료되면, 기지국(802)은 무선 구간 베어러 설정을 위해 RRC Connection Reconfiguration 메시지를 UE(801)로 전송한다.
그 다음, 단계(S2110)에서, 이를 수신한 UE(801)는 DRB 베어러 설정을 완료한다. 이에 따라, UE(801)로부터 P-GW(806)까지의 상향링크 EPS 베어러 설정이 완료되며, UE(801)는 RRC Connection Reconfiguration 메시지를 기지국(802)으로 전송한다.
그 다음, 단계(S2111)에서, AS Security Setup 절차 및 DRB 설정 절차가 완료되면, 기지국(802)은 하향링크 S1-MEC 베어러의 구성을 위해 S1 eNB TEID를 할당한다. 그리고, 이를 Initial Context Setup Response 메시지에 포함시켜 MME(803)로 전송한다.
단계(S2112)에서, UE(801)는 Attach Complete 메시지를 MME(803)로 전달하기 위해, UL Information Transfer 메시지에 Attach Complete 메시지를 포함시켜 기지국(802)로 전송한다.
그 다음, 단계(S2113)에서, 이를 수신한 기지국(802)은 Attach Complete 메시지를 UL NAS Transport 메시지에 포함시켜 MME(803)로 전달한다.
그 다음, 단계(S2114)에서, MME(803)는 기지국(802)으로부터 S1 eNB GTP-U TEID(905)를 수신함에 따라, 이를 Modify Bearer Request 메시지에 포함시켜, SGW(804)에 전송한다.
그 다음, 단계(S2115)에서, 이를 수신한 SGW(805)는 S1 eNB TEID를 이용하여 하향링크 S1-MEC 베어러 구성을 완료하고, Modify Bearer Request 메시지에 대한 응답으로 Modify Bearer Response 메시지를 MME(805)로 전송한다(S522). 이에 따라, 기지국(102)과 에지 서버(103) 사이에 상향링크 및 하향링크의 S1-MEC 베어러 구성이 모두 완료되어, 기지국(802)과 SGW(805) 사이의 상향링크 및 하향링크 트래픽 전송이 허용된다.
도 23을 참조하면, GTP 상관관계 모듈(440)은 GTP 세션 트래킹 모듈(4401), GTP 유저 평면 전달 모듈(4402) 및 저장부(4403)를 포함할 수 있다.
GTP 세션 트래킹 모듈(4401)은, MME(803), SGW(805) 및 PGW(806) 간의 다양한 GTP-C 트랜잭션, 예를 들어, CreateSession Request(S2103, S2104), Create Session Response(S2106, S2107), ModifyBearer Request(S2114) 등을 스누핑하여, GTP-U 및 GTP-C TEID에 대한 유저 IMSI 매핑을 부여 및 유지하도록 할 수 있다. 또한, GTP 상관관계 모듈(440)은 동일한 사용자 (IMSI)에 속하는 GTP-C 메시지를 GTP-U 메시지와 동일한 포트부(205) 또는 포트 그룹으로 전송시킬 수 있다.
GTP 세션 트래킹 모듈(4401)은 GTP 제어 평면 패킷의 정보에서 구독자 IMSI 및 구독자 세션 정보를 파싱하여, 구독자 테이블(44031) 및 GTP 세션 테이블(44032)를 각각 갱신할 수 있다.
GTP 세션 트래킹 모듈(4401)은 동일한 사용자에 대응하는 IMSI와 연관된 TEID를 동일한 유출 포트부(25) 또는 포트 그룹으로 유출 경로 를 재지정할 수 있다.
GTP 유저 평면 전달 모듈(4402)은 스위치(20)의 인입 포트부(205)로 들어온 GTP 유저 평면(GTP-U) 패킷을 GTP 상관관계 모듈(440)의 GTP 세션 테이블(44032)로부터 GTP-U TEID를 질의하여 GTP 세션 테이블(44032)의 유출 포트 정보를 갱신할 수 있다.
GTP 유저 평면 전달 모듈(4402)은 인입 패킷에서 GTP TEID 및 IP 주소를 조회하여 GTP-C 패킷인 경우, GTP 세션 트래킹 모듈(4401)로 전달할 수 있다.
도 24는 본 발명의 일 실시예에 따른 GTP 상관관계 모듈의 저장부의 일 실시예를 도시,
GTP 상관관계 모듈(440)의 저장부(4403)는 네트워크 패킷 중개 장치(6)의 제어부(800)의 메모리(803), 더 바람직하게는 프로세서(801)에 위치할 수 있다.
GTP 상관관계 모듈(440)의 저장부(4403)는 IMSI 테이블(44031), MME 컨텍스트 테이블(440321) 및 SGW 컨텍스트 테이블(440322)을 포함할 수 있다.
GTP 상관관계 모듈(440)의 저장부(4403)의 구독자 테이블(44031)은 IMSI 테이블(44031)일 수 있다.
GTP 상관관계 모듈(440)의 저장부(4403)의 GTP 세션 테이블(44032)은 MME 컨텍스트 테이블(440321) 및 SGW 컨텍스트 테이블(440322)을 포함할 수 있다.
GTP 상관관계 모듈(440)의 저장부(4403)의 GTP 세션 테이블(44032)은 IMSI 테이블(44031), MME 컨텍스트 테이블(440321) 및 SGW 컨텍스트 테이블(440322)의 상관관계를 저장하는 상관관계 테이블(44035)을 더 포함할 수 있다.
GTP 상관관계 모듈(440)의 저장부(4403)의 상관관계 테이블은 제1 상관관계 테이블(440323), 제2 상관관계 테이블(440324), 제3 상관관계 테이블(440325) 및 제4 상관관계 테이블(440326)을 포함할 수 있다.
IMSI 테이블(44031)은 IMSI, 패킷 출력 포트 및 베어러 ID 셋을 포함할 수 있다. IMSI 테이블(44031)은 IMSI를 주 키(primary key)로 할 수 있다. 베어러 ID 셋은 MME IP, 베어러 ID 및 시퀀스(sequence)를 포함할 수 있다.
GTP 상관관계 모듈(440)이 MME 컨텍스트 테이블(440321)에서, MME IP 주소를 키로 하고, MME IP, 베어러 ID 및 시퀀스(sequence)을 포함하는 베어러 ID 셋 및 MME S11 TEID(901)를 값으로 하는 레코드를 생성하는 단계(S3010);
GTP 상관관계 모듈(440)이 SGW 컨텍스트 테이블(440322)에서, SGW IP 주소를 키로 하는 레코드를 생성하는 단계(S3020);
GTP 상관관계 모듈(440)이 SGW 컨텍스트 테이블(440322)에서, SGW IP 주소를 키로 하는 레코드를 검색하여, SGW S11 TEID (902, 904) 및 SGW S1U TEID (902)를 갱신하는 단계(S3030);
GTP 상관관계 모듈(440)이 제1 상관관계 테이블(440323)에서, MME S11 TEID를 키로 하고, IMSI 컨텍스트 및 SGW S11 TEID 컨텍스트(902, 904) 를 값으로 갖는 레코드를 생성하는 단계(S3040);
GTP 상관관계 모듈(440)이 제2 상관관계 테이블(440324)에서, SGW S11 TEID(902, 904) 를 키로 하고, MME S11 컨텍스트(901)를 값으로 갖는 레코드를 생성하는 단계(S3050);
GTP 상관관계 모듈(440)이 제3 상관관계 테이블(440325)에서, SGW S11 TEID를 키로 하고, SGW S11 TEID 컨텍스트(902, 904)를 값으로 갖는 레코드를 생성하는 단계(S3060);
GTP 상관관계 모듈(440)이 제4 상관관계 테이블(440326)에서, eNB TEID(905) 및 eNB IP를 키로 하고, SGW S1U TEID 컨텍스트 값(902, 904)으로 갖는 레코드를 생성하는 단계(S3070);
GTP 상관관계 모듈(440)이 MME 컨텍스트 테이블(440321)에서, MME IP 주소를 키로 하는 레코드의 MME IP, 베어러 ID 및 시퀀스(sequence)을 포함하는 베어러 ID 셋 및 eNB S1U TEID(905) 값을 갱신하는 단계(S3080); 및
GTP 상관관계 모듈(440)이 IMSI 테이블(44031)에서, IMSI를 키로 하고, MME IP, 베어러 ID 및 시퀀스(sequence)을 포함하는 베어러 ID 셋을 값으로 하는 레코드를 생성하는 단계(S3090);
 
 
MME 컨텍스트 테이블(440321)은 MME IP 주소, 베어러 ID 셋, MME S11 TEID 및 eNB S1U TEID를 포함할 수 있다. MME 컨텍스트 테이블(440321)은 MMP IP 주소를 주 키로 할 수 있다. MME 컨텍스트 테이블(440321)은 베어러 ID 셋을 외부 키(foreign key)로 하여 제1 상관관계 테이블(440323)에 연결될 수 있다. MME 컨텍스트 테이블(440321)은 MME S11 TEID를 외부 키(foreign key)로 하여 IMSI 테이블(44031)에 연결될 수 있다. MME 컨텍스트 테이블(440321)은 eNB S1U TEID를 외부 키로 하여 제4 상관관계 테이블(440326)에 연결될 수 있다.
 
SGW 컨텍스트 테이블(440322)은 SGW IP 주소, SGW S11 TEID 및 SGW S1U TEID를 포함 할 수 있다. SGW 컨텍스트 테이블(440322)은 SGW IP 주소를 주 키로 할 수 있다. SGW 컨텍스트 테이블(440322)은 SGW S11 TEID 를 외부 키(foreign key)로 하여 제2 상관관계 테이블(440324)에 연결될 수 있다. SGW 컨텍스트 테이블(440322)은 SGW S1U TEID 를 외부 키(foreign key)로 하여 제3 상관관계 테이블(440325)에 연결될 수 있다.
 
제1 상관관계 테이블(440323)은 MME S11 TEID, IMSI 컨텍스트 및 SGW S11 TEID 컨텍스트를 포함할 수 있다. 제1 상관관계 테이블(440323)은 MME S11 TEID를 주 키로 할 수 있다. 제1 상관관계 테이블(440323)과 IMSI 테이블(44031)은 제1 상관관계 테이블(440323)의 IMSI 컨텍스트와 IMSI 테이블(44031)의 베어러 ID 셋으로 상호 참조될 수 있다.
 
제2 상관관계 테이블(440324)은 SGW S11 TEID 및 MME S11 컨텍스트를 포함할 수 있다. 제2 상관관계 테이블(440324)은 SGW S11 TEID 를 주 키로 할 수 있다. 제1 상관관계 테이블(440323)과 제2 상관관계 테이블(440324)은 제1 상관관계 테이블(440323)의 SGW S11 TEID 컨텍스트와 제2 상관관계 테이블(440324)의 MME S11 컨텍스트로 상호 참조될 수 있다.
 
제3 상관관계 테이블(440325)은 SGW S1U TEID 및 SGW S11 TEID 컨텍스트를 포함할 수 있다. 제3 상관관계 테이블(440325)은 SGW S1U TEID 를 주 키로 할 수 있다. 제2 상관관계 테이블(440324)과 제3 상관관계 테이블(440325)은 제2 상관관계 테이블(440324)의 MME S11 컨텍스트와 제3 상관관계 테이블(440325)의 SGW S11 TEID 컨텍스트로 상호 참조될 수 있다.
 
제4 상관관계 테이블(440326)은 eNB TEID 셋 및 SGW S1U TEID 컨텍스트를 포함할 수 있다. 제4 상관관계 테이블(440326)은 eNB TEID 셋을 주 키로 할 수 있다. eNB TEID 셋은 eNB S1U TEID 및 eNB IP를 포함할 수 있다. 제3 상관관계 테이블(440325)과 제4 상관관계 테이블(440326)은 제3 상관관계 테이블(440325)의 SGW S1U TEID와 제4 상관관계 테이블(440326)의 SGW S1U TEID 컨텍스트로 상호 참조될 수 있다.
도 24는 본 발명의 일 실시예에 따른 GTP 상관관계 모듈의 저장부의 일 실시예를 도시,
GTP 상관관계 모듈(440)의 저장부(4403)는 네트워크 패킷 중개 장치(6)의 제어부(800)의 메모리(803), 더 바람직하게는 프로세서(801)에 위치할 수 있다.
GTP 상관관계 모듈(440)의 저장부(4403)는 IMSI 테이블(44031), MME 컨텍스트 테이블(440321) 및 SGW 컨텍스트 테이블(440322)을 포함할 수 있다.
GTP 상관관계 모듈(440)의 저장부(4403)의 구독자 테이블(44031)은 IMSI 테이블(44031)일 수 있다.
GTP 상관관계 모듈(440)의 저장부(4403)의 GTP 세션 테이블(44032)은 MME 컨텍스트 테이블(440321) 및 SGW 컨텍스트 테이블(440322)을 포함할 수 있다.
GTP 상관관계 모듈(440)의 저장부(4403)의 GTP 세션 테이블(44032)은 IMSI 테이블(44031), MME 컨텍스트 테이블(440321) 및 SGW 컨텍스트 테이블(440322)의 상관관계를 저장하는 상관관계 테이블(44035)을 더 포함할 수 있다.
GTP 상관관계 모듈(440)의 저장부(4403)의 상관관계 테이블은 제1 상관관계 테이블(440323), 제2 상관관계 테이블(440324), 제3 상관관계 테이블(440325) 및 제4 상관관계 테이블(440326)을 포함할 수 있다.
IMSI 테이블(44031)은 IMSI, 패킷 출력 포트 및 베어러 ID 셋을 포함할 수 있다. IMSI 테이블(44031)은 IMSI를 주 키(primary key)로 할 수 있다. 베어러 ID 셋은 MME IP, 베어러 ID 및 시퀀스(sequence)를 포함할 수 있다.
GTP 상관관계 모듈(440)이 MME 컨텍스트 테이블(440321)에서, MME IP 주소를 키로 하고, MME IP, 베어러 ID 및 시퀀스(sequence)을 포함하는 베어러 ID 셋 및 MME S11 TEID(901)를 값으로 하는 레코드를 생성하는 단계(S3010);
GTP 상관관계 모듈(440)이 SGW 컨텍스트 테이블(440322)에서, SGW IP 주소를 키로 하는 레코드를 생성하는 단계(S3020);
GTP 상관관계 모듈(440)이 SGW 컨텍스트 테이블(440322)에서, SGW IP 주소를 키로 하는 레코드를 검색하여, SGW S11 TEID (902, 904) 및 SGW S1U TEID (902)를 갱신하는 단계(S3030);
GTP 상관관계 모듈(440)이 제1 상관관계 테이블(440323)에서, MME S11 TEID를 키로 하고, IMSI 컨텍스트 및 SGW S11 TEID 컨텍스트(902, 904) 를 값으로 갖는 레코드를 생성하는 단계(S3040);
GTP 상관관계 모듈(440)이 제2 상관관계 테이블(440324)에서, SGW S11 TEID(902, 904) 를 키로 하고, MME S11 컨텍스트(901)를 값으로 갖는 레코드를 생성하는 단계(S3050);
GTP 상관관계 모듈(440)이 제3 상관관계 테이블(440325)에서, SGW S11 TEID를 키로 하고, SGW S11 TEID 컨텍스트(902, 904)를 값으로 갖는 레코드를 생성하는 단계(S3060);
GTP 상관관계 모듈(440)이 제4 상관관계 테이블(440326)에서, eNB TEID(905) 및 eNB IP를 키로 하고, SGW S1U TEID 컨텍스트 값(902, 904)으로 갖는 레코드를 생성하는 단계(S3070);
GTP 상관관계 모듈(440)이 MME 컨텍스트 테이블(440321)에서, MME IP 주소를 키로 하는 레코드의 MME IP, 베어러 ID 및 시퀀스(sequence)을 포함하는 베어러 ID 셋 및 eNB S1U TEID(905) 값을 갱신하는 단계(S3080); 및
GTP 상관관계 모듈(440)이 IMSI 테이블(44031)에서, IMSI를 키로 하고, MME IP, 베어러 ID 및 시퀀스(sequence)을 포함하는 베어러 ID 셋을 값으로 하는 레코드를 생성하는 단계(S3090);
 
 
MME 컨텍스트 테이블(440321)은 MME IP 주소, 베어러 ID 셋, MME S11 TEID 및 eNB S1U TEID를 포함할 수 있다. MME 컨텍스트 테이블(440321)은 MMP IP 주소를 주 키로 할 수 있다. MME 컨텍스트 테이블(440321)은 베어러 ID 셋을 외부 키(foreign key)로 하여 제1 상관관계 테이블(440323)에 연결될 수 있다. MME 컨텍스트 테이블(440321)은 MME S11 TEID를 외부 키(foreign key)로 하여 IMSI 테이블(44031)에 연결될 수 있다. MME 컨텍스트 테이블(440321)은 eNB S1U TEID를 외부 키로 하여 제4 상관관계 테이블(440326)에 연결될 수 있다.
 
SGW 컨텍스트 테이블(440322)은 SGW IP 주소, SGW S11 TEID 및 SGW S1U TEID를 포함 할 수 있다. SGW 컨텍스트 테이블(440322)은 SGW IP 주소를 주 키로 할 수 있다. SGW 컨텍스트 테이블(440322)은 SGW S11 TEID 를 외부 키(foreign key)로 하여 제2 상관관계 테이블(440324)에 연결될 수 있다. SGW 컨텍스트 테이블(440322)은 SGW S1U TEID 를 외부 키(foreign key)로 하여 제3 상관관계 테이블(440325)에 연결될 수 있다.
 
제1 상관관계 테이블(440323)은 MME S11 TEID, IMSI 컨텍스트 및 SGW S11 TEID 컨텍스트를 포함할 수 있다. 제1 상관관계 테이블(440323)은 MME S11 TEID를 주 키로 할 수 있다. 제1 상관관계 테이블(440323)과 IMSI 테이블(44031)은 제1 상관관계 테이블(440323)의 IMSI 컨텍스트와 IMSI 테이블(44031)의 베어러 ID 셋으로 상호 참조될 수 있다.
 
제2 상관관계 테이블(440324)은 SGW S11 TEID 및 MME S11 컨텍스트를 포함할 수 있다. 제2 상관관계 테이블(440324)은 SGW S11 TEID 를 주 키로 할 수 있다. 제1 상관관계 테이블(440323)과 제2 상관관계 테이블(440324)은 제1 상관관계 테이블(440323)의 SGW S11 TEID 컨텍스트와 제2 상관관계 테이블(440324)의 MME S11 컨텍스트로 상호 참조될 수 있다.
 
제3 상관관계 테이블(440325)은 SGW S1U TEID 및 SGW S11 TEID 컨텍스트를 포함할 수 있다. 제3 상관관계 테이블(440325)은 SGW S1U TEID 를 주 키로 할 수 있다. 제2 상관관계 테이블(440324)과 제3 상관관계 테이블(440325)은 제2 상관관계 테이블(440324)의 MME S11 컨텍스트와 제3 상관관계 테이블(440325)의 SGW S11 TEID 컨텍스트로 상호 참조될 수 있다.
 
제4 상관관계 테이블(440326)은 eNB TEID 셋 및 SGW S1U TEID 컨텍스트를 포함할 수 있다. 제4 상관관계 테이블(440326)은 eNB TEID 셋을 주 키로 할 수 있다. eNB TEID 셋은 eNB S1U TEID 및 eNB IP를 포함할 수 있다. 제3 상관관계 테이블(440325)과 제4 상관관계 테이블(440326)은 제3 상관관계 테이블(440325)의 SGW S1U TEID와 제4 상관관계 테이블(440326)의 SGW S1U TEID 컨텍스트로 상호 참조될 수 있다.
도 26를 참조하면, GTP-U 패킷에서, Src IP가 SGW(805)의 IP 이고, DST IP가 eNB(802)의 IP이며, TEID가 SGW GTP-U TEID인 경우, GTP-U 패킷에 매칭되는 GTP-C 패킷의 패킷 출력 포트를 획득하는 과정은 다음과 같다.
 
제4 상관관계 테이블(440326)에서, eNB(802)의 IP를 키값으로 레코드를 검색한 후, 검색된 레코드에서 SGW S1U TEID를 획득한다.
다음으로, 제3 상관관계 테이블(440325)에서, 취득한 SGW S1U TEID을 키값으로 레코드를 검색한 후, 검색된 레코드에서 SGW S11 TEID 컨텍스트를 획득한다.
다음으로, 제2 상관관계 테이블(440324)에서, 취득한 SGW S11 TEID 컨텍스트를 키값으로 레코드를 검색한 후, 검색된 레코드에서 MME S11 TEID 컨텍스트를 획득한다.
다음으로, 제1 상관관계 테이블(440323)에서, 취득한 MME S11 TEID 컨텍스트를 키값으로 레코드를 검색한 후, 검색된 레코드에서 IMSI 컨텍스트를 획득한다.
다음으로, IMSI 테이블(44031)에서, 취득한 IMSI 컨텍스트를 키값으로 레코드를 검색한 후, 검색된 레코드에서 패킷 출력 포트를 획득한다.
GTP 상관관계 모듈(440)은 GTP 세션 트래킹 모듈(4401), GTP 유저 평면 전달 모듈(4402) 및 저장부(4403)를 포함할 수 있다.
심층 패킷 매칭 모듈(430)은 GTP 상관관계 모듈(440)을 제어하여 GTP 제어 평면 패킷과 GTP 유저 평면 패킷을 매칭할 수 있다.
도 27을 참조하면, GTP 상관관계 모듈(440)의 저장부(4403)는 GTP 제어 평면 흐름 테이블(44034) 및 GTP 제어 평면 상관 관계 테이블(44035)을 포함할 수 있다.
GTP 제어 평면 흐름 테이블(44034)은 GTP-C TEID과 유출 포트의 쌍을 저장할 수 있다.
GTP 상관관계 모듈(440)의 저장부(4403)는 빠른 질의 응답 처리를 위하여, 프로세서(801) 또는 메모리(803)에 위치할 수 있으며, 바람직하게는 프로세서(801)의 레지스터에 위치할 수 있다.
GTP 제어 평면 패킷은 GTP 제어 평면 유출 포트 매치 액션 테이블 (GTP Control plane-egress port Match Action Table,2911)에 저장된 패킷의 처리 액션에 따라 처리될 수 있으며, 초기에는 패킷이 매치 액션 테이블(2911)에 매칭되는 레코드가 존재하지 않으므로, 심층 패킷 매칭 모듈(430)이 GTP 제어 평면 흐름 테이블(44034)에 플로우를 질의하여 매치 액션 테이블(2911)을 업데이트할 수 있다. 매치 액션 테이블(2911)에서 처리된 GTP 제어 평면 패킷은 GTP 유저 평면 유출 포트 매치 액션 테이블 (GTP User plane-egress port Match Action Table,2912)에서 함께 처리될 수 있다.
GTP 제어 평면 상관 관계 테이블(44032)은 GTP 세션 테이블(44032)일 수 있다. GTP 제어 평면 상관 관계 테이블(44032)에서 해당 GTP TEID에 대응되는 유출 포트 정보를 GTP 유저 평면 유출 포트 매치 액션 테이블(2912)에서 갱신하여 심층 패킷을 매칭할 수 있다.
GTP 유저 평면 유출 포트 매치 액션 테이블(2912)에서 패킷에 매칭되는 흐름이 존재하지 않거나, 흐름에 대한 액션이 deny인 경우에는 해당 패킷은 탈락(drop)되어 처리되지 않을 수 있다.
도 28을 참조하면, 본 발명의 일 실시예에 따른 네트워크 패킷 중개 장치의 심층 패킷 매칭방법은 다음 단계들을 포함할 수 있다:
심층 패킷 매칭 모듈(430)이 스위치(205)의 인입 포트부(205)로 부터 패킷을 입력 받는 단계(S3010);
스위치(205)의 패킷 파싱 모듈(250)이 입력받은 패킷으로부터 심층 패킷 정보를 추출하는 인입 패킷 파싱 단계(S3020);
심층 패킷 매칭 모듈(430)이 획득한 정보로 패킷을 처리하는 인입 패킷 파이프라인 단계(S3030);
심층 패킷 매칭 모듈(430)이 획득한 패킷의 정보로 부터 패킷의 종류를 구별하는 단계(S3040);
구별된 패킷의 종류가 GTP 제어 평면 패킷인 경우, GTP 세션 트래킹 모듈(4401)이 패킷에 매칭되는 흐름을 GTP 제어 평면 유출 테이블(2911)에 질의하여 패킷을 보낼 유출 포트부(205) 또는 유출 포트 그룹을 획득하는 GTP 제어 평면 패킷 처리 단계(S3050); 및
구별된 패킷의 종류가 GTP 유저 평면 패킷인 경우, GTP 유저 평면 전달 모듈(4402)이 패킷에 매칭되는 흐름을 GTP 유저 평면 유출 테이블(2912)에 질의하여 패킷을 처리하는 유출 패킷 파이프라인 단계(S3060)
처리하는 유출 패킷 파이프라인 단계(S3060)는 유출 패킷의 정보를 추출하여 그 패킷의 흐름 정보를 GTP 유저 평면 유출 테이블(2912)에 저장하는 유출 패킷 파싱 단계(S3061); 및 유출 패킷의 흐름 정보를 GTP 유저 평면 유출 테이블(2912)에 질의하여 그 패킷에 대한 액션을 처리하는 단계(S3602)를 포함할 수 있다.
본 발명의 일 실시예에 따른 패킷 파싱 모듈(250)은 ethernet 헤더, vlan 헤더, ipv4 헤더, tcp 헤더, udp 헤더, icmp 헤더, sctp 헤더, gtp 헤더inner ether 헤더, inner ipv4 헤더,inner tcp 헤더 및 inner udp 헤더를 파싱할 수 있다.
도 29를 참조하면 ,본 발명의 일 실시예에 따른 심층 패킷 매칭 방법의 인입 패킷 파싱 단계(S3020)는 아래 단계들을 포함할 수 있다:
패킷 파싱 모듈(250)이 인입 패킷에서 인입 포트 정보를 추출하는 인입 포트 파싱 단계(S1101);
패킷 파싱 모듈(250)이 인입 패킷에서 Ethernet 프로토콜 정보를 추출하는 Ethernet 프로토콜 파싱 단계(S1102);
추출된 Ethernet 프로토콜 정보가 VLAN인 경우, 패킷 파싱 모듈(250)이 인입 패킷에서 VLAN 정보를 추출하는 VLAN 파싱 단계(S1104);
추출된 Ethernet 프로토콜 정보가 IPv4인 경우, 패킷 파싱 모듈(250)이 인입 패킷에서 IPv4 정보를 추출하는 IPv4 파싱 단계(S1105);
추출된 IPv4 프로토콜의 종류가 TCP인 경우, 패킷 파싱 모듈(250)이 인입 패킷에서 TCP 정보를 추출하는 TCP 파싱 단계(S1107);
추출된 IPv4 프로토콜의 종류가 IMCP인 경우, 패킷 파싱 모듈(250)이 인입 패킷에서 IMCP 정보를 추출하는 IMCP 파싱 단계(S1108);
추출된 IPv4 프로토콜의 종류가 SCTP 인 경우, 패킷 파싱 모듈(250)이 인입 패킷에서 SCTP 정보를 추출하는 SCTP 파싱 단계(S1109);
패킷 파싱 모듈(250)이 인입 패킷에서 UDP 프로토콜 번호 정보를 추출하는 UDP 파싱 단계(S1110);
추출된 UDP 프로토콜 번호가 VxLAN인 경우, 패킷 파싱 모듈(250)이 인입 패킷에서 VxLAN 정보를 추출하는 VxLAN 파싱 단계(S1112);
추출된 UDP 프로토콜 번호가 GTP인 경우, 패킷 파싱 모듈(250)이 인입 패킷에서 GTP 정보를 추출하는 GTP 파싱 단계(S1113);
패킷 파싱 모듈(250)이 인입 패킷에서 inner Ether 정보를 추출하는 inner Ether 파싱 단계(S1114);
패킷 파싱 모듈(250)이 인입 패킷에서 inner IPv4 정보를 추출하는 inner IPv4 파싱 단계(S1115); 및
패킷 파싱 모듈(250)이 인입 패킷에서 inner TCP 및 inner UDP 정보를 추출하는 inner TCP/UDP 파싱 단계(S1116);을 포함할 수 있다.
 
인입 포트 파싱 단계(S1101)는, 패킷의 인입 메타데이터에 인입 포트 정보 전달하는 단계(S11011) 및 인입 메타데이터에 디바이스 타임스탬프 정보를 전달하는 단계(S11012)를 더 포함할 수 있다.
 
IPv4 파싱 단계(S1105)는 src_ip, dst_ip, protocol을 인입 메타데이터의 룩업 테이블로 전달하는 단계(S11051)를 더 포함할 수 있다.
 
GTP 파싱 단계(S1113), inner Ether 파싱 단계(S1114), inner IPv4 파싱 단계(S1115) 및 inner TCP/UDP 파싱 단계(S1116)으로 추출된 Inner 정보는 모두 패킷의 오리지널 목적 주소 정보로서, 추출된 오리지널 목적 주소 정보로 엣지 클라우드에서 내부 트래픽의 형태에 따른 트래픽 분산(Traffic Steering)가 가능하며, 로드밸런싱 시 경유 주소 기준이 아닌 오리지널 목적 주소 기준으로 균형 있게 트래픽 부하를 분산할 수 있다.
도 30
도 30은 본 발명의 일 실시예에 따른 심층 패킷 매칭 모듈의 인입 파이프라인 단계를 도시,
도 30을 참조하면, 본 발명의 일 실시예에 따른 심층 패킷 매칭 방법의 인입 파이프라인 단계(S3030)는 다음 단계들을 포함할 수 있다:
심층 패킷 매칭 모듈(430)이 인입 물리 포트(250)를 Match Action 테이블에서 사용되는 논리 포트로 변환하는 인입 포트 매핑 단계(S1201);
심층 패킷 매칭 모듈(430)이 인입 패킷에서 추출된 GTP 정보에 대응하는 패킷의 처리를 유출 포트 매치 액션 테이블(2922)에 저장하는 GTP 필터 적용 단계(S1202); 및
심층 패킷 매칭 모듈(430)이 인입 패킷에서 추출된 Inner IPv4 정보가 존재하면(S1203), 추출된 Inner IPv4 정보에 대응하는 패킷의 처리를 유출 포트 매치 액션 테이블(2922)에 저장하는 Inner IPv4 필터 적용 단계(S1203);
inner ipv4 필터 적용 단계(S1203)는 심층 패킷 매칭 모듈(430)이 인입 패킷에 따른 GTP 유저 평면 유출 포트 매치 액션 테이블(2911)의 액션이 replication인 경우, 패킷을 복제하여 유출 포트부(205) 또는 유출 포트 그룹으로 전달하는 리플리케이션 단계(S12031); 및
심층 패킷 매칭 모듈(430)이 인입 패킷에 따른 GTP 유저 평면 유출 포트 매치 액션 테이블(2911)의 액션이 load balancing인 경우, 지정된 유출 포트 그룹으로 전달하는 로드 밸런싱 단계(S12032)를 포함할 수 있다.
GTP 필터 적용 단계(S1202)는 해당 패킷에 대하여 액션을 deny, permit, replication, strip_vxlan_and_permit 또는 strip_vxlan_and_replication으로 저장하는 것일 수 있다.
inner ipv4 필터 적용 단계(S1203)는 해당 패킷에 대하여 액션을 deny, permit 또는 replication으로 저장하는 것일 수 있다.
본 발명의 일 실시 상태에 있어서, 정책 관리 모듈(420)은 패킷의 헤더에 저장된 정보를 매칭하여, 매칭되는 패킷의 흐름을 제어하는 패킷 필터를 생성, 수정 또는 처리하는 것일 수 있다.
본 발명의 일 실시 상태에 있어서, 패킷 필터는 출발지(source, src) IP 매칭 필터, 도착지(destination, dst) IP 매칭 필터, TEID 매칭 필터일 수 있으며, GTP 필터 또는 IPv4 필터 일 수 잇다.
본 발명의 일 실시 상태에 있어서, GTP 필터는 GTP Outer 패킷 정보를 매칭하는 것일 수 있으며, 구체적으로 패킷의 eth_type, src_mac, dst_mac, src_ip, dst_ip, ip_proto, gtp_teid, gtp_metadata, l4_src_port, l4_dst_port 또는 port_group_label을 매칭하는 것일 수 있다.
본 발명의 일 실시 상태에 있어서, IPv4 필터는 GTP Inner 패킷 정보를 매칭하는 것일 수 있으며, 구체적으로 패킷의 src_mac, dst_mac, src_ip, dst_ip, ip_proto, l4_src_port, l4_dst_port 또는 port_group_label을 매칭하는 것일 수 있다.
도 31을 참조하면, 본 발명의 일 실시예에 따른 심층 패킷 매칭 방법의 유출 패킷 파싱 단계(S3061)는 다음 단계들을 포함할 수 있다:
심층 패킷 매칭 모듈(430)이 유출 패킷에서 인입 포트 필터 번호를 추출하는 인입 포트 필터 번호 파싱 단계(S1301);
심층 패킷 매칭 모듈(430)이 유출 패킷에서 추출된 인입 포트 필터 번호를 정책 관리자 모듈(420)에 질의하는 인입 포트 필터 매칭 단계(S1302);
매칭된 인입 포트 필터 번호가 존재하면, 정책 관리자 모듈(420)에서 매칭된 인입 포트 액션을 추출하는 단계(S1303);
심층 패킷 매칭 모듈(430)이 유출 패킷에서 GTP 필터 번호를 추출하는 GTP 필터 번호 파싱 단계(S1304);
심층 패킷 매칭 모듈(430)이 유출 패킷에서 추출된 GTP 필터 번호를 정책 관리자 모듈(420)에 질의하는 GTP 필터 매칭 단계(S1305);
매칭된 GTP 필터 번호가 존재하면, 정책 관리자 모듈(420)에서 매칭된 GTP 액션을 추출하는 단계(S1306);
심층 패킷 매칭 모듈(430)이 유출 패킷에서 Inner IPv4 정보를 추출하는 Inner IPv4 파싱 단계(S1307);
심층 패킷 매칭 모듈(430)이 유출 패킷에서 추출된 Inner IPv4 정보를 정책 관리자 모듈(420)에 질의하는 Inner IPv4 매칭 단계(S1308);
매칭된 Inner IPv4 정보가 존재하면, 정책 관리자 모듈(420)에서 매칭된 Inner IPv4 액션을 추출하는 단계(S1309); 및
심층 패킷 매칭 모듈(430)이 유출 패킷과 추출된 모든 액션 리스트 쌍을 GTP 유저 평면 유출 포트 매치 액션 테이블(2912)에 저장하는 액션 리스트 생성 단계(S1310)
상기 본 발명은 하드웨어 또는 소프트웨어에서 구현될 수 있다. 구현은 상기 본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명의 실시예들은 여기에 설명된 방법들 중 하나가 실행되는 프로그램가능 컴퓨터 시스템으로 운영될 수 있는, 전자적으로 판독가능한 제어 신호들을 갖는 캐리어 웨이브를 포함할 수 있다. 본 발명의 실시예들은 프로그램 코드를 갖는 컴퓨터 프로그램 제품으로서 구현될 수 있으며, 프로그램 코드는 컴퓨터 프로그램이 컴퓨터 상에서 구동될 때 방법들 중 하나를 실행하기 위하여 운영된다. 프로그램 코드는 예를 들면 기계 판독가능 캐리어 상에 저장될 수 있다. 본 발명의 일실시예는 컴퓨터 프로그램이 컴퓨터 상에 구동될 때, 여기에 설명된 방법들 중 하나를 실행하기 위한 프로그램 코드를 갖는 컴퓨터 프로그램일 수 있다. 본 발명은 위에서 설명한 방법들 중 하나를 실행하기 위한 컴퓨터, 또는 프로그램가능 논리 장치를 포함할 수 있다. 위에서 설명한 방법들의 일부 또는 모든 기능을 실행하기 위하여 프로그램가능 논리 장치(예를 들면, 필드 프로그램가능 게이트 어레이, 상보성 금속 산화물 반도체 기반 논리 회로)가 사용될 수 있다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져 서는 안 될 것이다.

Claims (13)

  1. 무선 엑세스 네트워크 또는 유선 엑세스 네트워크인 복수의 레거시 네트워크에 연결된 것으로, 오픈플로우(openflow) 에지 스위치인, 복수의 스위치;
    상기 복수의 스위치의 정보를 취득하는 SDN(Software Defined Network) 제어기;
    상기 복수의 스위치 중 적어도 일부의 스위치를 포함하는 스위치 군을 가상 라우터로 취급하여, 상기 스위치 군 중 어느 한 스위치에 인입되는 패킷에 대한 라우팅 정보를 생성하는 레거시 라우터 컨테이너; 및
    상기 제어기를 통하여, 요청에 따라 패킷의 조작과 흐름을 제어하는 기능을 수행하는 모듈들을 포함하는 네트워크 어플리케이션 모듈; 을 포함하는 네트워크 패킷 중개 장치로서,
    상기 레거시 라우터 컨테이너가, 상기 제어기의 플로우 처리 문의 메시지에 대한 레거시 라우팅 정보를 상기 적어도 하나의 가상 라우터의 정보를 기초로 생성하는 상기 복수의 오픈플로우 스위치에 연결된 복수의 네트워크 디바이스를 상기 가상 라우터에 직접 연결된 외부 네트워크 정보로 맵핑하는 것이며,
    상기 네트워크 어플리케이션 모듈은, 플로우 패킷의 GTP-C 패킷과 GTP-U 패킷이 동일한 유출 포트로 전달될 수 있도록 연동하는, GTP 상관 관계 모듈을 포함하고,
    상기 GTP 상관 관계 모듈은,
    구독자 IMSI를 저장하는 구독자 테이블 및 구독자 세션 정보를 저장하는 GTP 세션 테이블을 저장하는 저장부;
    상기 스위치의 포트부로부터 GTP 유저 평면 패킷을 전달 받아 미리 지정된 스위치의 포트부로 전달하고, 상기 저장부에서 상기 GTP 유저 평면 패킷의 GTPU TEID를 검색하여 상기 GTP 유저 평면 패킷의 유출 포트를 저장부에 연결하여 저장하는, GTP 유저 평면 전달 모듈; 및
    상기 스위치의 포트부로부터 GTP 제어 평면 패킷을 전달 받아, 상기 저장부에서 상기 GTP 제어 평면 패킷의 GTPU TEID와 연결된 GTP 유저 평면 패킷의 유출 포트를 검색하여, 상기 검색된 유출 포트와 동일한 상기 스위치의 포트부로 전달 받은 GTP 제어 평면 패킷을 전달하는, GTP 제어 평면 전달 모듈;을 포함하며,
    상기 네트워크 패킷 중개 장치는 프로세서를 더 포함하고,
    GTP 상관관계 모듈의 저장부는 프로세서에 위치하는 것이며,
    GTP 상관관계 모듈의 저장부는 IMSI 테이블, MME 컨텍스트 테이블 및 SGW 컨텍스트 테이블을 포함하고,
    GTP 상관관계 모듈의 저장부의 구독자 테이블은 IMSI 테이블이며,
    GTP 상관관계 모듈의 저장부의 GTP 세션 테이블은 MME 컨텍스트 테이블및 SGW 컨텍스트 테이블을 포함하고,
    GTP 상관관계 모듈의 저장부의 GTP 세션 테이블은 IMSI 테이블, MME 컨텍스트 테이블 및 SGW 컨텍스트 테이블의 상관관계를 저장하는 상관관계 테이블을 더 포함하며,
    GTP 상관관계 모듈의 저장부의 상관관계 테이블은 제1 상관관계 테이블, 제2 상관관계 테이블, 제3 상관관계 테이블 및 제4 상관관계 테이블을 포함하는, 네트워크 패킷 중개 장치.
  2. 제1항에 있어서,
    상기 제어기는, 상기 연결된 무선 엑세스 네트워크의 원격 무선 장비(RRH, Remote Radio Head)를 상기 가상 라우터에 직접 연결된 외부 네트워크 정보로 맵핑하는 가상 무선망 제어 모듈을 더 포함하는, 네트워크 패킷 중개 장치.
  3. 제1항에 있어서,
    상기 제어기는, 상기 연결된 유선 액세스 네트워크의 광 회선 단말(OLT; Optical Line Terminal)를 상기 가상 라우터에 직접 연결된 외부 네트워크 정보로 맵핑하는 가상 유선망 제어 모듈을 더 포함하는, 네트워크 패킷 중개 장치.
  4. 제1항에 있어서,
    상기 제어기는, 상기 연결된 무선 액세스 네트워크의 디지털 처리장치(DU, Digital Unit)를 상기 가상 라우터에 직접 연결된 외부 네트워크 정보로 맵핑하는 분산 무선망 제어 모듈을 더 포함하는, 네트워크 패킷 중개 장치.
  5. 무선 엑세스 네트워크 또는 유선 엑세스 네트워크인 복수의 레거시 네트워크에 연결된 것으로, 오픈플로우(openflow) 에지 스위치인, 복수의 스위치;
    상기 복수의 스위치의 정보를 취득하는 SDN(Software Defined Network) 제어기;
    상기 복수의 스위치 중 적어도 일부의 스위치를 포함하는 스위치 군을 가상 라우터로 취급하여, 상기 스위치 군 중 어느 한 스위치에 인입되는 패킷에 대한 라우팅 정보를 생성하는 레거시 라우터 컨테이너; 및
    상기 제어기를 통하여, 요청에 따라 패킷의 조작과 흐름을 제어하는 기능을 수행하는 모듈들을 포함하는 네트워크 어플리케이션 모듈; 을 포함하는 네트워크 패킷 중개 장치로서,
    상기 레거시 라우터 컨테이너가, 상기 제어기의 플로우 처리 문의 메시지에 대한 레거시 라우팅 정보를 상기 적어도 하나의 가상 라우터의 정보를 기초로 생성하는 상기 복수의 오픈플로우 스위치에 연결된 복수의 네트워크 디바이스를 상기 가상 라우터에 직접 연결된 외부 네트워크 정보로 맵핑하는 것이며,
    상기 네트워크 어플리케이션 모듈은 플로우 패킷의 GTP-C 패킷과 GTP-U 패킷이 동일한 유출 포트로 전달될 수 있도록 연동하는, GTP 상관 관계 모듈을 포함하고,
    GTP 상관관계 모듈의 저장부는 IMSI 테이블, MME 컨텍스트 테이블 및 SGW 컨텍스트 테이블을 포함하고,
    GTP 상관관계 모듈의 저장부의 구독자 테이블은 IMSI 테이블이며,
    GTP 상관관계 모듈의 저장부의 GTP 세션 테이블은 MME 컨텍스트 테이블및 SGW 컨텍스트 테이블을 포함하고,
    GTP 상관관계 모듈의 저장부의 GTP 세션 테이블은 IMSI 테이블, MME 컨텍스트 테이블 및 SGW 컨텍스트 테이블의 상관관계를 저장하는 상관관계 테이블을 더 포함하며,
    GTP 상관관계 모듈의 저장부의 상관관계 테이블은 제1 상관관계 테이블, 제2 상관관계 테이블, 제3 상관관계 테이블 및 제4 상관관계 테이블을 포함하는 네트워크 패킷 중개 장치의 GTP 상관관계 부여 방법으로서,
    상기 방법은,
    상기 스위치의 포트부로부터 GTP 유저 평면 패킷을 전달 받아 미리 지정된 스위치의 포트부로 전달하고, 상기 저장부에서 상기 GTP 유저 평면 패킷의 GTPU TEID를 검색하여 상기 GTP 유저 평면 패킷의 유출 포트를 저장부에 연결하여 저장하는, GTP 유저 평면 전달 단계;
    상기 스위치의 포트부로부터 GTP 제어 평면 패킷을 전달 받아, 상기 저장부에서 상기 GTP 제어 평면 패킷의 GTPU TEID와 연결된 GTP 유저 평면 패킷의 유출 포트를 검색하여, 상기 검색된 유출 포트와 동일한 상기 스위치의 포트부로 전달 받은 GTP 제어 평면 패킷을 전달하는, GTP 제어 평면 전달 단계;
    GTP 상관관계 모듈이 MME 컨텍스트 테이블에서, MME IP 주소를 키로 하고, MME IP, 베어러 ID 및 시퀀스를 포함하는 베어러 ID 셋 및 MME S11 TEID를 값으로 하는 레코드를 생성하는 단계;
    GTP 상관관계 모듈이 SGW 컨텍스트 테이블에서, SGW IP 주소를 키로 하는 레코드를 생성하는 단계;
    GTP 상관관계 모듈이 SGW 컨텍스트 테이블에서, SGW IP 주소를 키로 하는 레코드를 검색하여, SGW S11 TEID 및 SGW S1U TEID를 갱신하는 단계;
    GTP 상관관계 모듈이 제1 상관관계 테이블에서, MME S11 TEID를 키로 하고, IMSI 컨텍스트 및 SGW S11 TEID 컨텍스트를 값으로 갖는 레코드를 생성하는 단계;
    GTP 상관관계 모듈이 제2 상관관계 테이블에서, SGW S11 TEID를 키로 하고, MME S11 컨텍스트를 값으로 갖는 레코드를 생성하는 단계;
    GTP 상관관계 모듈이 제3 상관관계 테이블에서, SGW S11 TEID를 키로 하고, SGW S11 TEID 컨텍스트를 값으로 갖는 레코드를 생성하는 단계;
    GTP 상관관계 모듈이 제4 상관관계 테이블에서, eNB TEID 및 eNB IP를 키로 하고, SGW S1U TEID 컨텍스트 값으로 갖는 레코드를 생성하는 단계;
    GTP 상관관계 모듈이 MME 컨텍스트 테이블에서, MME IP 주소를 키로 하는 레코드의 MME IP, 베어러 ID 및 시퀀스를 포함하는 베어러 ID 셋 및 eNB S1U TEID 값을 갱신하는 단계; 및
    GTP 상관관계 모듈이 IMSI 테이블에서, IMSI를 키로 하고, MME IP, 베어러 ID 및 시퀀스를 포함하는 베어러 ID 셋을 값으로 하는 레코드를 생성하는 단계;를 포함하는, 네트워크 패킷 중개 장치의 GTP 상관관계 부여 방법.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
KR1020190133317A 2018-12-16 2019-10-24 유무선 통합 네트워크 패킷 중개 장치 및 그 gtp 상관관계 부여 방법 KR102073200B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PCT/KR2018/015965 WO2020130158A1 (ko) 2018-12-16 2018-12-16 오픈 프론트홀 네트워크 시스템
KRPCT/KR2018/015965 2018-12-16

Publications (1)

Publication Number Publication Date
KR102073200B1 true KR102073200B1 (ko) 2020-02-25

Family

ID=69647748

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020190133316A KR102073198B1 (ko) 2018-12-16 2019-10-24 유무선 통합 네트워크 패킷 중개 장치 및 그 심층 패킷 매칭 방법
KR1020190133315A KR102174651B1 (ko) 2018-12-16 2019-10-24 유무선 통합 네트워크 패킷 중개 장치 및 그 패킷 타임 스탬프 부여 방법
KR1020190133317A KR102073200B1 (ko) 2018-12-16 2019-10-24 유무선 통합 네트워크 패킷 중개 장치 및 그 gtp 상관관계 부여 방법
KR1020190153830A KR20200073996A (ko) 2018-12-16 2019-11-26 유무선 통합 네트워크 패킷 중개 장치 및 그 가상 라우터 슬라이싱 방법

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020190133316A KR102073198B1 (ko) 2018-12-16 2019-10-24 유무선 통합 네트워크 패킷 중개 장치 및 그 심층 패킷 매칭 방법
KR1020190133315A KR102174651B1 (ko) 2018-12-16 2019-10-24 유무선 통합 네트워크 패킷 중개 장치 및 그 패킷 타임 스탬프 부여 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020190153830A KR20200073996A (ko) 2018-12-16 2019-11-26 유무선 통합 네트워크 패킷 중개 장치 및 그 가상 라우터 슬라이싱 방법

Country Status (3)

Country Link
US (1) US20220070091A1 (ko)
KR (4) KR102073198B1 (ko)
WO (1) WO2020130158A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11831403B2 (en) 2021-11-23 2023-11-28 Sysmate Co., Ltd. Network interface card structure and clock synchronization method to precisely acquire heterogeneous PTP synchronization information for PTP synchronization network extension

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220337683A1 (en) * 2021-04-14 2022-10-20 Intel Corporation Multiple time domain network device translation
US11595263B1 (en) 2021-08-27 2023-02-28 Trento Systems, Inc. Dynamic construction of virtual dedicated network slice based on software-defined network
KR102359833B1 (ko) * 2021-08-27 2022-02-09 (주)트렌토 시스템즈 네트워크 제어장치 및 네트워크 제어장치의 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160373304A1 (en) * 2015-06-17 2016-12-22 Brocade Communications Systems, Inc. Configuration of rules in a network visibility system
KR20180058592A (ko) * 2016-11-24 2018-06-01 쿨클라우드(주) Sdn 제어기
KR20180058593A (ko) * 2016-11-24 2018-06-01 쿨클라우드(주) Sdn 화이트박스 스위치

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2445127A1 (fr) * 2010-10-22 2012-04-25 Alcatel Lucent Procédé non intrusif de synchronisation d'horloges maître et esclave d'un réseau à commutation de paquets, et dispositifs de synchronisation associés
KR102191368B1 (ko) * 2013-12-10 2020-12-15 주식회사 케이티 무선 프론트홀 지원을 위한 ccc 기반 무선 액세스 네트워크 가상화 시스템 및 제어 방법
US9736064B2 (en) * 2013-12-17 2017-08-15 Nec Corporation Offline queries in software defined networks
KR20150100027A (ko) * 2014-02-24 2015-09-02 연세대학교 산학협력단 소프트웨어 정의 네트워크에서 라우팅 설정 방법 및 장치
US10057167B2 (en) * 2014-04-09 2018-08-21 Tallac Networks, Inc. Identifying end-stations on private networks
KR101703088B1 (ko) * 2015-04-10 2017-02-22 쿨클라우드(주) Sdn 기반의 통합 라우팅 방법 및 그 시스템
GB2550844B (en) * 2016-05-23 2018-05-30 Zeetta Networks Ltd SDN interface device
GB201616763D0 (en) * 2016-10-03 2016-11-16 Global Invacom Ltd Apparatus and method relating to software defined networking for heterogeneneous access networks
KR20180058594A (ko) * 2016-11-24 2018-06-01 쿨클라우드(주) Sdn/tap 어플리케이션

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160373304A1 (en) * 2015-06-17 2016-12-22 Brocade Communications Systems, Inc. Configuration of rules in a network visibility system
KR20180058592A (ko) * 2016-11-24 2018-06-01 쿨클라우드(주) Sdn 제어기
KR20180058593A (ko) * 2016-11-24 2018-06-01 쿨클라우드(주) Sdn 화이트박스 스위치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11831403B2 (en) 2021-11-23 2023-11-28 Sysmate Co., Ltd. Network interface card structure and clock synchronization method to precisely acquire heterogeneous PTP synchronization information for PTP synchronization network extension

Also Published As

Publication number Publication date
WO2020130158A1 (ko) 2020-06-25
KR102073198B1 (ko) 2020-02-25
KR20200073996A (ko) 2020-06-24
US20220070091A1 (en) 2022-03-03
KR102174651B1 (ko) 2020-11-05
KR20200073983A (ko) 2020-06-24

Similar Documents

Publication Publication Date Title
KR102073200B1 (ko) 유무선 통합 네트워크 패킷 중개 장치 및 그 gtp 상관관계 부여 방법
US10904140B2 (en) Integrated wire and wireless network packet broker and method for GTP correlation assigning method of the same
US20230319639A1 (en) User-plane apparatus for edge computing
US9654395B2 (en) SDN-based service chaining system
CN104255046B (zh) 可定制的移动宽带网络系统和定制移动宽带网络的方法
KR20160121087A (ko) Sdn 기반의 통합 라우팅 방법 및 그 시스템
Jin et al. SoftCell: Taking control of cellular core networks
WO2017036248A1 (zh) 一种数据传输方法、装置及系统
KR102455902B1 (ko) 가상 머신 플랫폼 상의 다중 패킷 처리 코어를 통한 무선 가입자 패킷 처리의 로드 밸런싱
CN110166414B (zh) 一种通信方法、装置及系统
KR101320538B1 (ko) 네트워크 상호 연동 실현 방법 및 시스템
CN105531967B (zh) 一种报文传输方法、设备及通信系统
WO2016180020A1 (zh) 一种报文处理方法、设备和系统
KR101527377B1 (ko) Sdn 기반의 서비스 체이닝 시스템
KR101746105B1 (ko) 서비스 체이닝이 가능한 오픈플로우 스위치
KR20180058594A (ko) Sdn/tap 어플리케이션
CN109587826B (zh) 一种gtp数据包传输方法、相关装置及存储介质
KR20210064986A (ko) 오픈 프론트홀 네트워크 시스템 및 그 가상 라우터 슬라이싱 방법
KR20180058592A (ko) Sdn 제어기
KR20210064985A (ko) 오픈 프론트홀 네트워크 시스템 및 그 gtp 상관관계 부여 방법
KR20210064983A (ko) 오픈 프론트홀 네트워크 시스템 및 그 패킷 타임 스탬프 부여 방법
KR20210064984A (ko) 오픈 프론트홀 네트워크 시스템 및 그 심층 패킷 매칭 방법
KR101729945B1 (ko) Sdn 기반의 네트워크 시스템의 멀티 테넌트 지원 방법
KR101729939B1 (ko) Sdn 기반의 멀티 테넌트 지원 네트워크 시스템
KR101363338B1 (ko) 오픈플로우(OpenFlow)를 이용하여 사용자 단말 장치 사이의 통신을 지원하기 위한 방법, 장치, 시스템 및 컴퓨터 판독 가능한 기록 매체

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant