KR102261758B1 - 모바일 네트워크에서 일반 패킷 무선 서비스 터널링 프로토콜 사용자 평면 패킷의 고속 처리방법 및 그 장치 - Google Patents

모바일 네트워크에서 일반 패킷 무선 서비스 터널링 프로토콜 사용자 평면 패킷의 고속 처리방법 및 그 장치 Download PDF

Info

Publication number
KR102261758B1
KR102261758B1 KR1020200155916A KR20200155916A KR102261758B1 KR 102261758 B1 KR102261758 B1 KR 102261758B1 KR 1020200155916 A KR1020200155916 A KR 1020200155916A KR 20200155916 A KR20200155916 A KR 20200155916A KR 102261758 B1 KR102261758 B1 KR 102261758B1
Authority
KR
South Korea
Prior art keywords
gtp
packet
information
learning table
encapsulation
Prior art date
Application number
KR1020200155916A
Other languages
English (en)
Inventor
송병곤
이유경
최간호
장희진
Original Assignee
(주) 시스메이트
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주) 시스메이트 filed Critical (주) 시스메이트
Priority to KR1020200155916A priority Critical patent/KR102261758B1/ko
Priority to US17/101,269 priority patent/US11464057B2/en
Application granted granted Critical
Publication of KR102261758B1 publication Critical patent/KR102261758B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • 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/10Streamlined, light-weight or high-speed protocols, e.g. express transfer protocol [XTP] or byte stream
    • 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/22Parsing or analysis of headers
    • 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/28Timers or timing mechanisms used in protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/12Setup of transport tunnels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
    • H04W8/08Mobility data transfer
    • H04W8/082Mobility data transfer for traffic bypassing of mobility servers, e.g. location registers, home PLMNs or home agents
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/11Allocation or use of connection identifiers

Landscapes

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

Abstract

모바일 네트워크에서 GTP-U 패킷의 고속 처리방법 및 그 장치가 개시된다. 일 실시 예에 따른 패킷 처리방법 및 그 장치는, 모바일 네트워크에서 GTP-U 패킷의 캡슐화 또는 역캡슐화 처리를 하드웨어 기반 구조로 구현하여 GTP-U 패킷의 LBO를 고속으로 처리함에 따라 패킷 저 지연 및 고속 처리를 달성하고, 모바일 코어망의 도움 없이 독립적으로 GTP-U 패킷의 캡슐화 또는 역캡슐화 처리를 위한 정보를 자가학습을 통해 획득함에 따라 모바일 코어망과의 프로토콜 연동의 어려움을 해결한다.

Description

모바일 네트워크에서 일반 패킷 무선 서비스 터널링 프로토콜 사용자 평면 패킷의 고속 처리방법 및 그 장치 {High-speed processing method and apparatus for GTP-U packet in mobile network}
본 발명은 패킷 처리기술에 관한 것으로, 보다 상세하게는 모바일 네트워크에서 GTP-U 패킷 데이터의 고속 처리기술에 관한 것이다.
모바일 통신망에서 사용자 패킷이 로컬 서버(Local Server)로 전송하는 경우, 패킷 저 지연(Low delay)을 실현하고 고속으로 패킷을 처리하기 위하여 모바일 엣지 컴퓨팅(Mobile Edge Computing: MEC, 이하 'MEC'라 칭함)과 로컬 브레이크 아웃(Local Break OUT: LBO, 이하 'LBO'라 칭함) 개념이 도입되어 적용되고 있다.
인터넷 서비스 서버가 사용자 액세스 영역에 위치하고 서비스 연결 경로(Path)를 LBO를 통하여 직접(Direct) 연결함으로써, MEC는 저 지연 및 고성능 트래픽 처리를 효과적으로 수행할 수 있다.
MEC 및 LBO 기능은 앞으로 확산되고 있는 스마트 자동차, 스마트 팩토리 등의 새로운 서비스에서 필요한 저 지연 및 고 성능 패킷 처리를 위해 매우 유용하다.
MEC 및 LBO 기능을 구현하는 데는 모바일 코어(Core) 망과의 연동이 필요하고, 관련 프로토콜의 처리가 요구되는데, 기존에는 일반적으로 MEC 내 LBO를 CPU 및 소프트웨어를 이용하여 구현한다. 그러나 소프트웨어 구현방식은 CPU 처리 성능에 의존하게 되어 저 지연 및 고성능 처리에 한계가 있다.
일 실시 예에 따라, MEC에서 모바일 코어 망과 독립적으로 GTP-U 패킷의 LBO를 고속으로 처리할 수 있는 패킷 처리방법 및 그 장치를 제안한다.
일 실시 예에 따른 모바일 네트워크에서 패킷 처리장치를 이용한 일반 패킷 무선 서비스(General Packet Radio Service: GPRS, 이하 'GPRS'라 칭함) 터널링 프로토콜 사용자 평면(GPRS Tunneling Protocol User Plane: GTP-U, 이하 'GTP-U'라 칭함) 패킷 처리방법은, 패킷 처리장치가 GTP-U 패킷의 캡슐화 또는 역캡슐화를 위한 정보를 획득하는 단계와, GTP-U 패킷을 역캡슐화 하고 획득된 정보를 이용하여 학습 테이블을 생성하는 단계와, 생성된 학습 테이블을 이용하여 GTP-U 패킷으로 캡슐화 하는 단계를 포함한다.
캡슐화 또는 역캡슐화를 위한 정보를 획득하는 단계에서, 입력 GTP-U 패킷으로부터 외부 IP Header(IP-H, 이하 'IP-H'라 칭함)의 IP 정보, 터널링 종점 식별자(tunneling endpoint identifier: TEID, 이하 'TEID'라 칭함) 정보 및 내부 IP-H의 IP 정보를 획득할 수 있고, 외부 IP-H의 IP 정보는 기지국의 IP 어드레스이고, 내부 IP-H의 IP 정보는 사용자 장비의 IP 어드레스이며, TEID 정보는 각 사용자 장비 별로 구별되는 터널 아이디일 수 있다.
캡슐화 또는 역캡슐화를 위한 정보를 획득하는 단계는, 입력 GTP-U 패킷에서 UDP Header(UDP-H, 이하 'UDP-H'라 칭함) 목적지 포트 값이 소정의 값을 가지는 GTP-U 패킷을 IP-H 분리 로직으로 전송하고 나머지 패킷은 바이패스 하는 단계와, IP-H 분리 로직을 이용하여 GTP-U 패킷으로부터 외부 IP-H 정보를 추출하는 단계와, GTP Header(GTP-H, 이하 'GTP-H'라 칭함) 분리 로직을 이용하여 GTP-U 패킷으로부터 TEID 정보를 추출하는 단계와, 내부 IP-H 분리 로직을 이용하여 GTP-U 패킷으로부터 내부 IP-H 정보를 추출하는 단계를 포함할 수 있다.
캡슐화 또는 역캡슐화를 위한 정보를 획득하는 단계에서, GPRS 터널링 프로토콜 제어(GPRS Tunneling Protocol Control: GTP-C, 이하 'GTP-C'라 칭함) 패킷을 이용하여 GTP-U 패킷의 캡슐화 또는 역캡슐화를 위한 정보를 획득할 수 있다.
캡슐화 또는 역캡슐화를 위한 정보를 획득하는 단계는, UDP-H Port GTP 패킷 확인 로직이, 입력 패킷으로부터 GTP-C 패킷을 판단하는 단계와, GTP-C 패킷 헤더의 메시지 타입 값을 확인하여 메시지 타입 값에 따라 입력 GTP-C에서 GTP-U 패킷 캡슐화 또는 역캡슐화를 위한 정보를 획득하는 단계를 포함할 수 있다.
GTP-U 패킷으로 캡슐화 하는 단계는, 입력 패킷의 IP 헤더의 목적지 IP 어드레스와 매칭되는 내부 IP 헤더의 소스 IP 어드레스를 학습 테이블에서 탐색하는 단계와, 탐색 결과에 따라 매칭되는 학습 테이블에 있는 TEID 값과 IP-H IP 정보를 가지고 GTP-U 패킷으로 캡슐화 하는 단계를 포함할 수 있다.
학습 테이블에서 탐색하는 단계에서, 학습 테이블에서 입력 패킷의 IP-H의 목적지 IP 값과 일치하는 학습 테이블의 내부 IP-H의 소스 IP 값을 가지는 인덱스 값을 탐색하고, GTP-U 패킷으로 캡슐화 하는 단계는, GTP 헤더 가산 로직이, 탐색된 인덱스 값을 가진 학습 테이블의 TEID 값을 이용하여 입력 패킷에 GTP-H를 생성한 후 캡슐화 하는 단계와, UDP 헤더 가산 로직이, 입력 패킷에 UDP-H를 생성한 후 캡슐화 하는 단계와, 외부 IP 헤더 가산 로직이, 탐색된 인덱스 값을 가진 학습 테이블의 외부 IP-H 값을 이용하여 입력 패킷에 외부 IP-H를 생성한 후 캡슐화 하는 단계와, Ether 헤더(Ether-H, 이하 'Ether-H'라 칭함) 가산 로직이 입력 패킷에 Ether-H를 생성한 후 캡슐화 하여 출력 GTP-U 패킷을 생성하는 단계를 포함할 수 있다.
패킷 처리방법은, GTP-U 패킷의 내부 IP-H의 목적지 IP 어드레스가 LBO 영역의 어드레스에 해당하면 GTP-U 패킷을 역캡슐화 하여 생성된 로컬 IP 패킷을 로컬 서버로 전송하는 단계를 더 포함할 수 있다.
패킷 처리방법은, 학습 테이블에 데이터가 등록되면, 외부 타이머를 이용하여 미리 설정된 디폴트 시간으로 학습 테이블의 카운트 값을 체크하여 카운트 값이 미리 설정된 디폴트 값 이상이면 해당하는 학습 테이블의 인덱스를 삭제하는 단계를 더 포함할 수 있다.
패킷 처리방법은, 입력 패킷으로부터 GTP-C 패킷을 판단하는 단계와, GTP-C 패킷 헤더의 메시지 타입(Message Type) 값을 확인하여 소정의 메시지 타입 값을 가지는 학습 테이블의 인덱스를 삭제하는 단계를 더 포함할 수 있다.
다른 실시 예에 따른 패킷 처리장치는, 패킷을 송수신 하는 네트워크 인터페이스와, 네트워크 인터페이스를 통해 수신된 GTP-U 패킷의 역캡슐화 또는 네트워크 인터페이스를 통해 송신할 GTP-U 패킷으로의 캡슐화를 위한 정보를 획득하고, GTP-U 패킷을 역캡슐화 하여 획득된 정보를 이용하여 학습 테이블을 생성하거나 생성된 학습 테이블을 이용하여 GTP-U 패킷으로 캡슐화 하는 FPGA부와, 학습 테이블이 저장되는 메모리를 포함한다.
FPGA부는, 입력 GTP-U 패킷으로부터 외부 IP-H의 IP 정보, TEID 정보 및 내부 IP-H의 IP 정보를 획득할 수 있고, 외부 IP-H의 IP 정보는 기지국의 IP 어드레스이고, 내부 IP-H의 IP 정보는 사용자 장비의 IP 어드레스이며, TEID 정보는 각 사용자 장비 별로 구별되는 터널 아이디일 수 있다.
FPGA부는, 입력 패킷의 IP 헤더의 목적지 IP 어드레스와 매칭되는 내부 IP 헤더의 소스 IP 어드레스를 학습 테이블에서 탐색하고, 탐색 결과에 따라 매칭되는 학습 테이블에 있는 TEID 값과 IP-H IP 정보를 가지고 GTP-U 패킷으로 캡슐화 할 수 있다.
FPGA부는, 학습 테이블에 데이터가 등록되면, 외부 타이머를 이용하여 미리 설정된 디폴트 시간으로 학습 테이블의 카운트 값을 체크하여 카운트 값이 미리 설정된 디폴트 값 이상이면 해당하는 학습 테이블의 인덱스를 삭제할 수 있다.
FPGA부는, GTP-C 패킷을 이용하여 GTP-U 패킷의 캡슐화 또는 역캡슐화를 위한 정보를 획득할 수 있다.
모바일 네트워크에서 GTP-U 패킷의 캡슐화 또는 역캡슐화 처리를 하드웨어 기반 구조로 구현함에 따라, GTP-U 패킷의 LBO를 고속으로 처리할 수 있어 패킷 저 지연 및 고속 처리를 달성할 수 있다.
모바일 코어망의 도움 없이 독립적으로 GTP-U 패킷의 캡슐화 또는 역캡슐화 처리를 위한 정보를 자가학습(self-Learning)을 통해 획득함에 따라, 모바일 코어망과의 프로토콜 연동의 어려움을 해결할 수 있다.
구축된 학습 테이블을 대상으로 미리 설정된 시간 이후의 정보는 삭제함에 따라 저장 여유 공간을 확보할 수 있다.
GPRS 터널링 프로토콜 제어(GPRS Tunneling Protocol Control: GTP-C, 이하 'GTP-C'라 칭함) 패킷을 이용하여 GTP-U 패킷의 캡슐화 또는 역캡슐화를 위한 정보를 획득할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 패킷 처리 시스템의 구성을 도시한 도면,
도 2는 본 발명의 일 실시 예에 따른 GTP 엔진에서의 패킷 캡슐화 또는 역캡슐화 처리 방법을 도식화한 도면,
도 3은 본 발명의 일 실시 예에 따른 GTP-U 패킷을 처리하기 위한 정보를 획득하여 자가 학습(Self-Learning)을 통해 학습 테이블(Learning Table)을 생성하는 방법을 도식화한 도면,
도 4는 본 발명의 일 실시 예에 따른 학습 테이블을 이용하여 GTP-U 패킷으로 캡슐화 하는 방법을 설명하기 위한 도면,
도 5는 본 발명의 일 실시 예에 따른 하드웨어를 이용한 학습 테이블 구축 및 처리 예를 도시한 도면,
도 6은 본 발명의 일 실시 예에 따른 입력 GTP-U 패킷에서 학습 테이블을 생성하는 과정을 도식화한 도면,
도 7은 본 발명의 일 실시 예에 따른 생성된 학습 테이블을 이용하여 GTP-U 패킷을 생성하는 과정을 도식화한 도면,
도 8은 본 발명의 일 실시 예에 따른 Time Out을 이용하여 학습 테이블 내의 인덱스를 제거하는 과정을 도식화한 도면,
도 9는 본 발명의 일 실시 예에 따른 GTP-C 패킷을 이용하여 학습 테이블 내의 정보를 제거하는 과정을 도식화한 도면,
도 10은 본 발명의 일 실시 예에 따른 GTP-C 패킷을 이용하여 GTP-U 패킷의 캡슐화 또는 역캡슐화를 위한 정보를 획득하는 과정을 도식화한 도면,
도 11은 본 발명의 일 실시 예에 따른 패킷 처리장치의 구성을 도시한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이며, 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램인스트럭션들(실행 엔진)에 의해 수행될 수도 있으며, 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장치의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장치의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다.
이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장치를 지향할 수 있는 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다.
그리고 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장치 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장치 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장치를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명되는 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록 또는 각 단계는 특정된 논리적 기능들을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있으며, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하며, 또한 그 블록들 또는 단계들이 필요에 따라 해당하는 기능의 역순으로 수행되는 것도 가능하다.
이하, 첨부 도면을 참조하여 본 발명의 실시 예를 상세하게 설명한다. 그러나 다음에 예시하는 본 발명의 실시 예는 여러 가지 다른 형태로 변형될 수 있으며, 본 발명의 범위가 다음에 상술하는 실시 예에 한정되는 것은 아니다. 본 발명의 실시 예는 이 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위하여 제공된다.
도 1은 본 발명의 일 실시 예에 따른 패킷 처리 시스템의 구성을 도시한 도면이다.
도 1을 참조하면, 패킷 처리 시스템(1)은 모바일 엣지 컴퓨팅(Mobile Edge Computing: MEC, 이하 'MEC'이라 칭함) 장치(100), 기지국(gNodeB: gNB, 이하 'gNB'라 칭함)(110), 사용자 평면 기능(User Plane Function: UPF, 이하 'UPF'라 칭함)(120), 로컬 서버(Local server)(130) 및 CPU(140)를 포함한다.
MEC 장치(100)는 모바일 네트워크 에지(Mobile Network Edge)에서 클라우드 컴퓨팅 능력과 IT 서비스 환경을 제공함에 따라, 모바일 코어망의 혼잡을 완화하고 새로운 로컬 서비스를 창출한다. 일 실시 예에 따른 MEC 장치(100)는 소프트웨어가 아닌 하드웨어로 구현되며, 모바일 엣지 컴퓨팅 데이터 평면(Mobile Edge Computing-Data Plane: MEC-DP, 이하 'MEC-DP'라 칭함)에서 모바일 코어망과는 독립적으로 로컬 브레이크 아웃(Local Break OUT: LBO, 이하 'LBO'라 칭함)을 고속으로 처리한다. 도 1에서 하드웨어 기반의 MEC 장치(100)가 소프트웨어 기반인 CPU(140)와 분리되어 있음을 유의한다.
LBO는 모바일 네트워크 사업자(Mobile Network Operator: MNO)가 사용자에게 방문한 모바일 네트워크에서 직접 제공하는 데이터 주문 기능을 제공할 수 있도록 하는 것이다. LBO를 통해 사용자는 방문한 모바일 네트워크에서 직접 데이터 서비스를 받을 수 있다.
일 실시 예에 따른 MEC 장치(100)는 모바일 코어망과는 독립적으로 일반 패킷 무선 서비스(General Packet Radio Service: GPRS, 이하 'GPRS'라 칭함) 터널링 프로토콜 사용자 평면(GPRS Tunneling Protocol User Plane: GTP-U, 이하 'GTP-U'라 칭함) 패킷에 대해 LBO를 고속 및 저 지연으로 처리한다. GTP-U 패킷은 모바일 통신망 내에서 GPRS를 전달하는 데 사용되는 IP 기반 통신 프로토콜 패킷이다.
일 실시 예에 따른 MEC 장치(100)는 GTP-U 패킷의 캡슐화(Capsulation) 또는 역캡슐화(Decapsulation)를 통하여 GTP-U 패킷으로부터 LBO를 고속 및 저 지연으로 처리하기 위한 하드웨어 구조를 가진다. MEC 장치(100)는 GTP-U 패킷의 캡슐화 또는 역캡슐화를 수행하기 위해 필요한 정보를 획득하고 획득한 정보를 이용하여 모바일 코어망의 도움없이 패킷을 자가 학습(Self-Learning) 하여 학습 테이블(Learning Table)을 구성할 수 있다. MEC 장치(100)는 GPRS 터널링 프로토콜 제어(GPRS Tunneling Protocol Control: GTP-C, 이하 'GTP-C'라 칭함) 패킷을 이용하여 GTP-U 패킷의 캡슐화 또는 역캡슐화를 위한 정보를 획득할 수 있다.
MEC 장치(100)는 GTP-U 패킷의 캡슐화 또는 역캡슐화를 수행하기 위해 필요한 정보로, gNB(110)의 IP 어드레스와, 사용자 장비(User Element: UE, 이하 'UE'라 칭함)의 IP 어드레스와, 각 UE별로 구별되는 터널링 종점 식별자(tunneling endpoint identifier: TEID, 이하 'TEID'라 칭함)를 정의하며, 정의된 정보를 획득한다.
MEC 장치(100)는 학습한 정보의 신뢰성을 높이기 위하여, Time Out을 설정하고 Time Out 이후의 정보는 삭제할 수 있으며, GPRS 터널링 프로토콜 제어(GPRS Tunneling Protocol Control: GTP-C, 이하 'GTP-C'라 칭함)를 통하여 TEID 등의 종료정보를 획득할 수 있다.
도 1의 gNB(110), UPF(120), N3, N6는 5G 레퍼런스 모델에서 표시되는 기능(Function) 및 레퍼런스 포인트(Reference Point)를 예로 들어 도시한 것이다. N3는 gNB(110)와 UPF(120) 사이에 형성되는 GTP 터널 인터페이스이다. UPF(120)는 모바일 코어망의 기능 예로서, 다른 기능으로 대체될 수 있다.
MEC 장치(100)는 모바일 통신 구조에서 MEC LBO 기능 구현을 위한 패킷 처리 기능 블럭을 나타내며, GTP 엔진(102)과 패킷 스위치(104)를 포함할 수 있다.
패킷 고속처리를 위하여 GTP 엔진(102)은 FPGA(field programmable gate array) 하드웨어로 구현되고, 패킷 스위치(104)는 일반 사용 칩을 이용하여 구현될 수 있다. 예를 들어, GTP 엔진(102)은 40Gbps급 이상의 GTP 패킷 처리 및 100usec 이하의 패킷 지연(delay)을 달성하기 위하여 하드웨어 설계로 구현한다.
CPU(140)는 MEC 장치(100)의 GTP 엔진(102) 및 패킷 스위치(104)를 제어하기 위하여 PCIe 인터페이스로 연결되고, 필요시 소프트웨어로 제어한다.
이하, 도 1을 참조로 하여 모바일 통신망 구조 하 MEC 위치에서 GTP 엔진(102)의 입출력 패킷 처리 프로세스 ① ~ ⑧ 경로를 후술한다.
경로 ①: 이 경로를 통하여 전달되는 패킷 형태는 GTP-U 타입의 패킷이다. 이 패킷은 N6 및 경로 ③을 통하여 입력된 사용자 IP 패킷으로부터 GTP-U 패킷으로 캡슐화 된 패킷이거나, 제2 N3 및 경로 ⑤를 통하여 입력된 패킷이 바이패스(Bypass) 된 패킷이다. GTP 엔진(102)은 제1 N3 및 경로 ①을 통하여 GTP-U 패킷을 gNB(110)로 전송한다. N6로부터 입력된 사용자 IP 패킷으로부터 제1 N3의 GTP-U 패킷으로 캡슐화 하는 방식은 도 2를 참조로 하여 후술한다.
경로 ②: 사용자로부터 유입된 패킷으로서 제1 N3로부터 입력된 패킷을 GTP 엔진(102)으로 전송한다. 이 패킷은 GTP-U 타입인 경우만 해당되고, 이외의 패킷은 제2 N3로 바이패스 된다. 경로 ②를 통하여 GTP 엔진(102)으로 입력된 패킷은 GTP-U 타입으로, 이 패킷의 내부 IP Header(IP-H, 이하 'IP-H'라 칭함)의 목적지(Destination) IP 어드레스를 확인하여, 목적지 IP 어드레스가 LBO(Local Break Out) 영역의 어드레스에 해당하면, 역캡슐화 하여 N6로 로컬 IP 패킷 형태로 패킷 스위치(104)를 통하여 전송한다.
경로 ③: N6로부터 입력된 패킷으로서 사용자 IP 패킷을 GTP 엔진(102)에서 GTP-U 패킷 형태로 캡슐화 한 후, 경로 ①을 통해 gNB(110)로 전송한다. GTP 엔진(102)에서 패킷을 캡슐화 하는 방법은 도 2를 참조로 하여 후술한다.
경로 ④: GTP 엔진(102)에서 패킷을 N6로 전송하는 경로이다. GTP 엔진(102)이 gNB(110)에서 유입된 패킷 중 GTP-U 패킷에서 내부 IP-H의 목적지 IP 어드레스를 분석하여 목적지 IP 어드레스가 LBO 영역의 어드레스에 해당되는지를 판단한다. 판단 결과에 따라, LBO 영역의 어드레스이면 GTP-U 패킷을 역캡슐화 한 후, 경로 ④를 통하여 N6로 전송함에 따라, LBO를 효과적으로 수행한다. GTP 엔진(102) 내에서 패킷을 역캡슐화 하는 방법은 도 2를 참조로 하여 후술한다.
경로 ⑤: UPF(120)에서 입력된 패킷 중에서 GTP 타입에 해당되는 패킷을 GTP 엔진(102)으로 전송하는 경로이다. 해당 패킷들은 GTP 엔진(102)에서 GTP 헤더 정보를 추출하는데 사용되고, 이 패킷들은 경로 ①을 통하여 gNB(110)로 변경없이 전달된다.
경로 ⑥: GTP 엔진(102)에서 GTP-U 타입 형태의 패킷을 UPF(120)로 전달하는 경로이다. GTP 엔진(102)은 gNB(110)에서 경로 ②를 통하여 입력된 GTP-U 패킷 중에서 LBO 영역의 패킷이 아닌 패킷을 변경없이 경로 ⑥을 통하여 UPF(120)로 전달한다.
경로 ⑦: GTP 엔진(102)에서 검사 및 변경 필요가 없는, UPF(120)로부터 입력된 패킷은 바로 gNB(110)로 전송된다.
경로 ⑧: gNB(110)로부터 입력된 패킷 중에서 GTP 패킷이 아닌 패킷은 경로 ⑧을 통하여 바로 UPF(120)로 전송된다.
도 2는 본 발명의 일 실시 예에 따른 GTP 엔진에서의 패킷 캡슐화 또는 역캡슐화 처리 방법을 도식화한 도면이다.
도 1 및 도 2를 참조하면, GTP 엔진(102)은 GTP-U 타입 형태의 입력 패킷(이하, '입력 GTP-U 패킷'이라 칭함)으로부터 내부(Inner) IP-H의 목적지 IP 어드레스를 판단하여 UPF(120) 방향이면 변경 없이 바이패스 시킨다(바이패스 패킷). 이해 비해, 로컬 서버(130) 방향이면, 입력 GTP-U 패킷을 역캡슐화 한 후 역캡슐화를 통해 추출된 로컬 IP 패킷을 로컬 서버(130)로 전송한다.
한편, GTP 엔진(102)은 로컬 IP 패킷을 입력 받으면, GTP Header(GTP-H, 이하 'GTP-H'라 칭함) ADDER를 통해 GTP-H TEID를 캡슐화 하고, UTP Header(UTP-H, 이하 'UTP-H'라 칭함) ADDER를 통해 UTP-H를 캡슐화 하며, 외부(Outer) IP ADDER를 통해 외부 IP-H를 캡슐화 하며, 최종적으로 Ether Header(Ether-H, 이하 'Ether-H'라 칭함)를 캡슐화 하여 출력 GTP-U 패킷을 생성한다.
도 3은 본 발명의 일 실시 예에 따른 GTP-U 패킷을 처리하기 위한 정보를 획득하여 자가 학습(Self-Learning)을 통해 학습 테이블(Learning Table)을 생성하는 방법을 도식화한 도면이다.
도 1 및 도 3을 참조하면, GTP 엔진(102)은 모바일 코어망의 개입 없이 패킷을 자가 학습하여 학습 테이블을 생성한다. GTP 엔진(102)은 gNB(110)에서 유입된 입력 GTP-U 패킷을 캡처하여 캡슐화 또는 역캡슐화를 위해 필요한 정보를 획득한다. 이때, 필요한 정보는, 외부 IP-H의 소스 IP 정보, 외부 IP-H의 목적지 IP 정보, GTP-H 정보, 내부 IP-H의 소스 IP 정보, 내부 IP-H의 목적지 IP 정보를 포함할 수 있다. 외부 IP-H의 소스 IP 정보는 gNB(110)의 IP 어드레스이고, 외부 IP-H의 목적지 IP 정보는 로컬 서버(130)의 IP 어드레스 또는 UPF(120)의 어드레스이고, GTP-H 정보는 각 사용자 장비(UE) 별 구별되는 터널 아이디인 터널링 종점 식별자(tunneling endpoint identifier: TEID, 이하 'TEID'라 칭함)이고, 내부 IP-H의 소스 IP 정보 및 내부 IP-H의 목적지 IP 정보는 사용자 장비(UE)의 IP 어드레스일 수 있다.
GTP 엔진(102)은 입력 GTP-U 패킷을 역캡슐화 하여 상기 획득한 정보를 포함하는 학습 테이블을 생성하며, 학습 테이블의 예는 도 3에 도시된 바와 같다.
도 4는 본 발명의 일 실시 예에 따른 학습 테이블을 이용하여 GTP-U 패킷으로 캡슐화 하는 방법을 설명하기 위한 도면이다.
도 1 및 도 4를 참조하면, GTP 엔진(102)은 입력 패킷의 IP-H의 목적지 IP 어드레스와 매칭되는 내부 IP 헤더의 소스 IP 어드레스를 학습 테이블에서 탐색한다.
탐색 결과에 따라 매칭되는 학습 테이블에 있는 TEID 값과 IP-H IP 정보를 가지고 GTP-U 패킷으로 캡슐화 한다. 예를 들어, 학습 테이블에 있는 TEID 값을 이용하여 GTP-U 패킷의 GTP-H TEID를 구성하고, 학습 테이블에 있는 IP-H IP 정보를 이용하여 GTP-U 패킷의 외부 IP-H를 구성한다.
도 5는 본 발명의 일 실시 예에 따른 하드웨어를 이용한 학습 테이블 구축 및 처리 예를 도시한 도면이다.
기존 소프트웨어 방식의 데이터 처리방식에 따르면, 입력된 패킷 데이터를 CPU에서 메모리에 write 하고 read 한다. 이 경우, CPU의 성능 및 메모리 속도에 의존하게 된다. 이에 비해, 일 실시 예에 따른 하드웨어 방식의 데이터 처리방식은, CPU 대비 로직 구현에 의한 설계로 초고속 처리가 가능하고, 고성능 및 초저지연 처리를 구현할 수 있다. 이때, 하드웨어는 도 1의 MEC 장치(100)일 수 있다.
도 5를 참조하면, 하드웨어 방식의 패킷 처리 로직을 이용하여 학습 테이블을 구축하고, 역으로 학습 테이블로부터 정보를 이용하여 GTP 패킷을 생성할 수 있다. 예를 들어, GTP-U 패킷을 입력 받으면, 패킷 역캡슐화를 위한 고속 하드웨어 로직(예를 들어, 도 1의 GTP 엔진)이 입력 GTP-U 패킷으로부터 추출한 정보를 가지고 학습 테이블을 생성한다. 역으로, Local IP 패킷을 입력 받으면, 패킷 캡슐화를 위한 고속 하드웨어 로직(예를 들어, 도 1의 GTP 엔진)이 학습 테이블을 참조하여 출력 GTP-U 패킷을 생성한다.
도 6은 본 발명의 일 실시 예에 따른 입력 GTP-U 패킷에서 학습 테이블을 생성하는 과정을 도식화한 도면이다.
도 1 및 도 6을 참조하면, MEC 장치(100)는 하드웨어 로직인 GTP 엔진(102)을 이용하여 학습 테이블을 생성한다. 이하, GTP 엔진(102)의 학습 테이블 생성 프로세스를 도 6을 참조로 하여 상세히 후술한다.
GTP 엔진(102)은 ①입력 GTP-U 패킷에서 UDP-H 목적지 포트 값이 소정의 값(예를 들어, 2152)인 GTP-U 패킷만 IP-H 분리 로직으로 전송하고, 나머지 패킷은 바이패스 한다. ②IP-H 분리 로직에서, GTP-U 패킷으로부터 외부 IP-H 정보를 추출 및 저장한다. ③GTP-H 분리 로직에서, GTP-U 패킷으로부터 TEID 정보를 추출 및 저장한다. ④내부 IP-H 분리 로직에서, GTP-U 패킷으로부터 내부 IP-H 정보를 추출 및 저장한다. 이어서, 외부 IP-H 정보, TEID 정보 및 내부 IP-H 정보로 구성되는 학습 테이블을 생성한다.
도 7은 본 발명의 일 실시 예에 따른 생성된 학습 테이블을 이용하여 GTP-U 패킷을 생성하는 과정을 도식화한 도면이다.
도 1 및 도 7을 참조하면, GTP 엔진(102)은 ①학습 테이블에서, 입력 패킷의 IP-H의 목적지 IP 값과 일치하는 학습 테이블의 내부 IP-H의 소스 IP 값(IP-H의 목적지 IP = 내부 IP-H의 소스 IP)을 가지는 인덱스 값을 탐색한다. ②GTP 헤더 가산(Adder) 로직이, 탐색된 인덱스 값을 가진 학습 테이블의 TEID 값을 이용하여 입력 패킷에 GTP-H를 생성한 후 캡슐화 한다. ③UDP 헤더 가산 로직이, 입력 패킷에 UDP-H를 생성한 후 캡슐화 한다. ④외부 IP 헤더 가산 로직이, 탐색된 인덱스 값을 가진 학습 테이블의 외부 IP-H 값을 이용하여 입력 패킷에 외부 IP-H를 생성한 후 캡슐화 한다. ⑤최종적으로 Ether-H 가산 로직이, 입력 패킷에 Ether-H를 생성한 후 캡슐화 하여 출력 GTP-U 패킷을 생성한다.
도 8은 본 발명의 일 실시 예에 따른 Time Out을 이용하여 학습 테이블 내의 인덱스를 제거하는 과정을 도식화한 도면이다.
도 1 및 도 8을 참조하면, 학습 테이블에 데이터가 등록되면 정보가 지속적으로 증가한다. 따라서, 세션종료 시 학습 테이블에서 소정의 정보를 삭제하여 저장 여유 공간을 확보할 필요가 있다. 그 방안으로, GTP-U 패킷이 입력되고 캡슐화 또는 역캡슐화에 필요한 정보들이 학습 테이블에 등록되는데, 이때 GTP 엔진(102)은 인덱스의 카운트 값을 초기화한다. 이후, 외부 타이머를 이용하여 미리 설정된 디폴트 시간(예를 들어, 5분 간격)으로 학습 테이블의 카운트 값을 체크한 후, 지속적으로 패킷이 입력되어 카운트 값이 미리 설정된 디폴트 값(예를 들어, 1,000) 미만인 인덱스는 그대로 두고, 카운트 값이 미리 설정된 디폴트 값(예를 들어, 1,000) 이상인 인덱스는 삭제할 수 있다. 도 8에서는 인덱스 #4가 삭제되는 것을 도시하고 있다. 이때, 디폴트 시간과 디폴트 값은 사용자가 설정 가능하다.
도 9는 본 발명의 일 실시 예에 따른 GTP-C 패킷을 이용하여 학습 테이블 내의 정보를 제거하는 과정을 도식화한 도면이다.
도 1 및 도 9를 참조하면, GTP 엔진(102)은 세션종료 시 학습 테이블에서 소정의 정보를 삭제하여 저장 공간을 확보할 수 있다. 예를 들어, UDP-H Port GTP 패킷 확인 로직이, 입력 패킷으로부터 UDP-H의 목적지 Port의 포트 값이 2152이면 GTP-U으로 판단하고 2123이면 GTP-C 패킷으로 판단한다. 이어서, GTP-C 패킷 헤더의 메시지 타입(Message Type: MT) 값을 확인하여 소정의 메시지 타입 값(예를 들어, 21)을 가지는 학습 테이블의 인덱스를 삭제한다. 삭제를 위한 메시지 타입 값은 입력 GTP-U 패킷의 버전에 따라 달라질 수 있다. 이때, 학습 테이블의 외부 IP-H의 소스 IP 어드레스를 참조하여 해당 인덱스를 삭제할 수 있다. 도 9에서는 인덱스 #1이 삭제되는 것을 도시하고 있다.
도 10은 본 발명의 일 실시 예에 따른 GTP-C 패킷을 이용하여 GTP-U 패킷의 캡슐화 또는 역캡슐화를 위한 정보를 획득하는 과정을 도식화한 도면이다.
도 1 및 도 10을 참조하면, GTP-C 패킷은 gNB와 코어망의 UPF(User Plane Function), SMF(Session Management Function) 사이에서 GTP 세션을 설정하기 위한 프로토콜 패킷이다. GTP 엔진(102)은 GTP-C의 세션설정 패킷을 분석하여 직접 GTP-U 캡슐화 또는 역캡슐화를 위한 정보를 획득하고 획득된 정보를 이용하여 GTP-U 패킷을 역캡슐화 하거나 GTP-U 패킷으로 캡슐화 한다.
예를 들어, 도 10에 도시된 바와 같이, GTP 엔진(102)은 UDP-H Port GTP 패킷 확인 로직이, 입력 패킷으로부터 UDP-H의 목적지 Port의 포트 값이 2152이면 GTP-U으로 판단하고 2123이면 GTP-C 패킷으로 판단한다. 이어서, GTP-C 패킷 헤더의 메시지 타입(Message Type) 값을 확인하여 메시지 타입 값에 따라 입력 GTP-C에서 GTP-U 패킷 캡슐화 또는 역캡슐화를 위한 정보를 획득한다. GTP-C 패킷의 GTP-U 세션 설정정보 분석은 하드웨어 GTP 엔진 내에서 수행하는 방식과, 외부의 CPU에서 수행하는 방식을 선택적으로 사용할 수 있다. GTP-U 패킷 캡슐화 또는 역캡슐화를 위한 정보는 외부 IP-H의 IP 정보, TEID 정보 및 내부 IP-H의 IP 정보가 있다.
도 11은 본 발명의 일 실시 예에 따른 패킷 처리장치의 구성을 도시한 도면이다.
도 11을 참조하면, 패킷 처리장치(200)는 네트워크 인터페이스(210), FPGA부(220) 및 메모리(230)를 포함한다. 패킷 처리장치(200)는 도 1의 하드웨어 기반의 MEC 장치(100)일 수 있다. 세부적으로는 GTP 엔진(102)일 수 있다.
네트워크 인터페이스(210)는 입력 패킷을 수신하고 출력 패킷을 송신한다. 입력 패킷은 입력 GTP-U 패킷을 포함하고, 출력 패킷은 출력 GTP-U 패킷을 포함한다. 패킷 송수신의 예는 도 1을 참조로 하여 전술한 바 있다.
FPGA부(220)는 네트워크 인터페이스(210)를 통해 수신된 GTP-U 패킷의 역캡슐화 또는 네트워크 인터페이스(210)를 통해 송신할 GTP-U 패킷으로의 캡슐화를 위한 정보를 획득한다. 그리고 GTP-U 패킷을 역캡슐화 하여 획득된 정보를 이용하여 학습 테이블을 생성하거나, 생성된 학습 테이블을 이용하여 GTP-U 패킷으로 캡슐화 한다.
FPGA부(220)는 GTP-U 패킷의 캡슐화 또는 역캡슐화를 통하여 GTP-U 패킷으로부터 LBO를 고속 및 저 지연으로 처리할 수 있다. FPGA부(220)는 GTP-U 패킷의 캡슐화 또는 역캡슐화를 수행하기 위한 정보를 이용하여 모바일 코어망의 도움없이 패킷을 자가 학습함에 따라 학습 테이블을 생성할 수 있다.
FPGA부(220)는 모바일 코어망의 도움없이, GTP-U 패킷을 역캡슐화 하여 학습 테이블을 생성할 수 있다. 이를 위해, 입력 GTP-U 패킷을 캡처하여 역캡슐화 하고, 역캡슐화 된 GTP-U 패킷으로부터 외부 IP-H의 IP 정보, TEID 정보 및 내부 IP-H의 IP 정보를 획득한 후, 획득된 정보들을 포함하는 학습 테이블을 구성할 수 있다.
예를 들어, FPGA부(220)는 입력 GTP-U 패킷에서 UDP-H 목적지 포트 값이 소정의 값을 가지는 GTP-U 패킷을 IP-H 분리 로직으로 전송하고 나머지 패킷은 바이패스 한다. 이어서, IP-H 분리 로직을 이용하여 GTP-U 패킷으로부터 외부 IP-H 정보를 추출하고, GTP-H 분리 로직을 이용하여 GTP-U 패킷으로부터 TEID 정보를 추출하며, 내부 IP-H 분리 로직을 이용하여 GTP-U 패킷으로부터 내부 IP-H 정보를 추출할 수 있다.
FPGA부(220)는 생성된 학습 테이블을 이용하여 입력 패킷을 GTP-U 패킷으로 캡슐화 할 수 있다. 이를 위해, FPGA부(220)는 입력 패킷의 IP 헤더의 목적지 IP 어드레스와 매칭되는 내부 IP 헤더의 소스 IP 어드레스를 학습 테이블에서 탐색하고, 탐색 결과에 따라 매칭되는 학습 테이블에 있는 TEID 값과 IP-H IP 정보를 가지고 GTP-U 패킷으로 캡슐화 할 수 있다.
학습 테이블에서의 탐색 단계에서, FPGA부(220)는 학습 테이블에서, 입력 패킷의 IP-H의 목적지 IP 값과 일치하는 학습 테이블의 내부 IP-H의 소스 IP 값을 가지는 인덱스 값을 탐색할 수 있다. 그리고 GTP-U 패킷으로 캡슐화 하는 단계에서, FPGA부(220)는 GTP 헤더 가산 로직이, 탐색된 인덱스 값을 가진 학습 테이블의 TEID 값을 이용하여 입력 패킷에 GTP-H를 생성한 후 캡슐화 한다. 이어서, UDP 헤더 가산 로직이, 입력 패킷에 UDP-H를 생성한 후 캡슐화 한다. 이어서, 외부 IP 헤더 가산 로직이, 탐색된 인덱스 값을 가진 학습 테이블의 외부 IP-H 값을 이용하여 입력 패킷에 외부 IP-H를 생성한 후 캡슐화 한다. 이어서, Ether-H 가산 로직이 입력 패킷에 Ether-H를 생성한 후 캡슐화 하여 출력 GTP-U 패킷을 생성한다.
FPGA부(220)는 GTP-U 패킷의 내부 IP-H의 목적지 IP 어드레스가 LBO 영역의 어드레스에 해당하면, GTP-U 패킷을 역캡슐화 하여 생성된 로컬 IP 패킷을 네트워크 인터페이스(210)를 거쳐 로컬 서버로 전송하도록 결정할 수 있다.
FPGA부(220)는 학습 테이블에 데이터가 등록되면, 외부 타이머를 이용하여 미리 설정된 디폴트 시간으로 학습 테이블의 카운트 값을 체크함에 따라, 카운트 값이 미리 설정된 디폴트 값 이상이면 해당하는 학습 테이블의 인덱스를 삭제할 수 있다. 다른 예로, FPGA부(220)는 입력 패킷으로부터 GTP-C 패킷을 판단하고, GTP-C 패킷 헤더의 메시지 타입(Message Type) 값을 확인하여 소정의 메시지 타입 값을 가지는 학습 테이블의 인덱스를 삭제할 수 있다.
FPGA부(220)는 GTP-C 패킷을 이용하여 GTP-U 패킷의 캡슐화 또는 역캡슐화를 위한 정보를 획득할 수 있다. 예를 들어, FPGA부(220)는 UDP-H Port GTP 패킷 확인 로직을 통해, 입력 패킷으로부터 GTP-C 패킷을 판단한다. 이어서, GTP-C 패킷 헤더의 메시지 타입 값을 확인하여 메시지 타입 값에 따라 입력 GTP-C에서 GTP-U 패킷 캡슐화 또는 역캡슐화를 위한 정보를 획득할 수 있다.
메모리(230)는 FPGA부(220)를 통해 생성된 학습 테이블을 저장하고, FPGA부(220)의 요청에 따라 학습 테이블을 제공한다.
이제까지 본 발명에 대하여 그 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (15)

  1. 모바일 네트워크에서 패킷 처리장치를 이용한 일반 패킷 무선 서비스(General Packet Radio Service: GPRS, 이하 'GPRS'라 칭함) 터널링 프로토콜 사용자 평면(GPRS Tunneling Protocol User Plane: GTP-U, 이하 'GTP-U'라 칭함) 패킷 처리방법에 있어서,
    패킷 처리장치는 GTP 엔진을 포함하고,
    GTP 엔진은 하드웨어 로직인 FPGA부를 포함하며,
    패킷 처리장치가
    FPGA부에서, GTP-U 패킷의 캡슐화 또는 역캡슐화를 위한 정보를 획득하는 단계;
    FPGA부에서, GTP-U 패킷을 역캡슐화 하고 획득된 정보를 이용하여 학습 테이블을 생성하는 단계; 및
    FPGA부에서, 생성된 학습 테이블을 이용하여 GTP-U 패킷으로 캡슐화 하는 단계;
    를 포함함에 따라, GTP-U 패킷의 처리를 하드웨어로 구현하는 것을 특징으로 하는 패킷 처리방법.
  2. 제 1 항에 있어서, 캡슐화 또는 역캡슐화를 위한 정보를 획득하는 단계는
    입력 GTP-U 패킷으로부터 외부 IP Header(IP-H, 이하 'IP-H'라 칭함)의 IP 정보, 터널링 종점 식별자(tunneling endpoint identifier: TEID, 이하 'TEID'라 칭함) 정보 및 내부 IP-H의 IP 정보를 획득하고,
    외부 IP-H의 IP 정보는 기지국의 IP 어드레스이고, 내부 IP-H의 IP 정보는 사용자 장비의 IP 어드레스이며, TEID 정보는 각 사용자 장비 별로 구별되는 터널 아이디인 것을 특징으로 하는 패킷 처리방법.
  3. 제 1 항에 있어서, 캡슐화 또는 역캡슐화를 위한 정보를 획득하는 단계는
    입력 GTP-U 패킷에서 UDP Header(UDP-H, 이하 'UDP-H'라 칭함) 목적지 포트 값이 소정의 값을 가지는 GTP-U 패킷을 IP-H 분리 로직으로 전송하고 나머지 패킷은 바이패스 하는 단계;
    IP-H 분리 로직을 이용하여 GTP-U 패킷으로부터 외부 IP-H 정보를 추출하는 단계;
    GTP Header(GTP-H, 이하 'GTP-H'라 칭함) 분리 로직을 이용하여 GTP-U 패킷으로부터 TEID 정보를 추출하는 단계; 및
    내부 IP-H 분리 로직을 이용하여 GTP-U 패킷으로부터 내부 IP-H 정보를 추출하는 단계;
    를 포함하는 것을 특징으로 하는 패킷 처리방법.
  4. 제 1 항에 있어서, 캡슐화 또는 역캡슐화를 위한 정보를 획득하는 단계는
    GPRS 터널링 프로토콜 제어(GPRS Tunneling Protocol Control: GTP-C, 이하 'GTP-C'라 칭함) 패킷을 이용하여 GTP-U 패킷의 캡슐화 또는 역캡슐화를 위한 정보를 획득하는 것을 특징으로 하는 패킷 처리방법.
  5. 제 4 항에 있어서, 캡슐화 또는 역캡슐화를 위한 정보를 획득하는 단계는,
    UDP-H Port GTP 패킷 확인 로직이, 입력 패킷으로부터 GTP-C 패킷을 판단하는 단계; 및
    GTP-C 패킷 헤더의 메시지 타입 값을 확인하여 메시지 타입 값에 따라 입력 GTP-C에서 GTP-U 패킷 캡슐화 또는 역캡슐화를 위한 정보를 획득하는 단계;
    를 포함하는 것을 특징으로 하는 패킷 처리방법.
  6. 제 1 항에 있어서, GTP-U 패킷으로 캡슐화 하는 단계는
    입력 패킷의 IP 헤더의 목적지 IP 어드레스와 매칭되는 내부 IP 헤더의 소스 IP 어드레스를 학습 테이블에서 탐색하는 단계; 및
    탐색 결과에 따라 매칭되는 학습 테이블에 있는 TEID 값과 IP-H IP 정보를 가지고 GTP-U 패킷으로 캡슐화 하는 단계;
    를 포함하는 것을 특징으로 하는 패킷 처리방법.
  7. GPRS GTP-U 패킷 처리방법에 있어서, 패킷 처리장치가
    GTP-U 패킷의 캡슐화 또는 역캡슐화를 위한 정보를 획득하는 단계;
    GTP-U 패킷을 역캡슐화 하고 획득된 정보를 이용하여 학습 테이블을 생성하는 단계; 및
    생성된 학습 테이블을 이용하여 GTP-U 패킷으로 캡슐화 하는 단계; 를 포함하고,
    GTP-U 패킷으로 캡슐화 하는 단계는
    입력 패킷의 IP 헤더의 목적지 IP 어드레스와 매칭되는 내부 IP 헤더의 소스 IP 어드레스를 학습 테이블에서 탐색하는 단계; 및
    탐색 결과에 따라 매칭되는 학습 테이블에 있는 TEID 값과 IP-H IP 정보를 가지고 GTP-U 패킷으로 캡슐화 하는 단계; 를 포함하며,
    학습 테이블에서 탐색하는 단계는
    학습 테이블에서, 입력 패킷의 IP-H의 목적지 IP 값과 일치하는 학습 테이블의 내부 IP-H의 소스 IP 값을 가지는 인덱스 값을 탐색하고,
    GTP-U 패킷으로 캡슐화 하는 단계는
    GTP 헤더 가산 로직이, 탐색된 인덱스 값을 가진 학습 테이블의 TEID 값을 이용하여 입력 패킷에 GTP-H를 생성한 후 캡슐화 하는 단계;
    UDP 헤더 가산 로직이, 입력 패킷에 UDP-H를 생성한 후 캡슐화 하는 단계;
    외부 IP 헤더 가산 로직이, 탐색된 인덱스 값을 가진 학습 테이블의 외부 IP-H 값을 이용하여 입력 패킷에 외부 IP-H를 생성한 후 캡슐화 하는 단계; 및
    Ether 헤더(Ether-H, 이하 'Ether-H'라 칭함) 가산 로직이 입력 패킷에 Ether-H를 생성한 후 캡슐화 하여 출력 GTP-U 패킷을 생성하는 단계;
    를 포함하는 것을 특징으로 하는 패킷 처리방법.
  8. GPRS GTP-U 패킷 처리방법에 있어서, 패킷 처리장치가
    GTP-U 패킷의 캡슐화 또는 역캡슐화를 위한 정보를 획득하는 단계;
    GTP-U 패킷을 역캡슐화 하고 획득된 정보를 이용하여 학습 테이블을 생성하는 단계;
    생성된 학습 테이블을 이용하여 GTP-U 패킷으로 캡슐화 하는 단계; 및
    GTP-U 패킷의 내부 IP-H의 목적지 IP 어드레스가 LBO 영역의 어드레스에 해당하면 GTP-U 패킷을 역캡슐화 하여 생성된 로컬 IP 패킷을 로컬 서버로 전송하는 단계;
    를 포함하는 것을 특징으로 하는 패킷 처리방법.
  9. GPRS GTP-U 패킷 처리방법에 있어서, 패킷 처리장치가
    GTP-U 패킷의 캡슐화 또는 역캡슐화를 위한 정보를 획득하는 단계;
    GTP-U 패킷을 역캡슐화 하고 획득된 정보를 이용하여 학습 테이블을 생성하는 단계;
    생성된 학습 테이블을 이용하여 GTP-U 패킷으로 캡슐화 하는 단계; 및
    학습 테이블에 데이터가 등록되면, 외부 타이머를 이용하여 미리 설정된 디폴트 시간으로 학습 테이블의 카운트 값을 체크하여 카운트 값이 미리 설정된 디폴트 값 이상이면 해당하는 학습 테이블의 인덱스를 삭제하는 단계;
    를 포함하는 것을 특징으로 하는 패킷 처리방법.
  10. GPRS GTP-U 패킷 처리방법에 있어서, 패킷 처리장치가
    GTP-U 패킷의 캡슐화 또는 역캡슐화를 위한 정보를 획득하는 단계;
    GTP-U 패킷을 역캡슐화 하고 획득된 정보를 이용하여 학습 테이블을 생성하는 단계;
    생성된 학습 테이블을 이용하여 GTP-U 패킷으로 캡슐화 하는 단계;
    입력 패킷으로부터 GTP-C 패킷을 판단하는 단계; 및
    GTP-C 패킷 헤더의 메시지 타입(Message Type) 값을 확인하여 소정의 메시지 타입 값을 가지는 학습 테이블의 인덱스를 삭제하는 단계;
    를 포함하는 것을 특징으로 하는 패킷 처리방법.
  11. 패킷 처리장치에 있어서,
    GTP 엔진; 을 포함하고,
    GTP 엔진은
    패킷을 송수신 하는 네트워크 인터페이스;
    네트워크 인터페이스를 통해 수신된 GTP-U 패킷의 역캡슐화 또는 네트워크 인터페이스를 통해 송신할 GTP-U 패킷으로의 캡슐화를 위한 정보를 획득하고, GTP-U 패킷을 역캡슐화 하여 획득된 정보를 이용하여 학습 테이블을 생성하거나 생성된 학습 테이블을 이용하여 GTP-U 패킷으로 캡슐화 하는 하드웨어 로직의 FPGA부; 및
    학습 테이블이 저장되는 메모리;
    를 포함함에 따라, FPGA부를 통해 GTP-U 패킷의 처리를 하드웨어로 구현하는 것을 특징으로 하는 패킷 처리장치.
  12. 제 11 항에 있어서, FPGA부는
    입력 GTP-U 패킷으로부터 외부 IP-H의 IP 정보, TEID 정보 및 내부 IP-H의 IP 정보를 획득하고,
    외부 IP-H의 IP 정보는 기지국의 IP 어드레스이고, 내부 IP-H의 IP 정보는 사용자 장비의 IP 어드레스이며, TEID 정보는 각 사용자 장비 별로 구별되는 터널 아이디인 것을 특징으로 하는 패킷 처리장치.
  13. 제 11 항에 있어서, FPGA부는
    입력 패킷의 IP 헤더의 목적지 IP 어드레스와 매칭되는 내부 IP 헤더의 소스 IP 어드레스를 학습 테이블에서 탐색하고,
    탐색 결과에 따라 매칭되는 학습 테이블에 있는 TEID 값과 IP-H IP 정보를 가지고 GTP-U 패킷으로 캡슐화 하는 것을 특징으로 하는 패킷 처리장치.
  14. 패킷을 송수신 하는 네트워크 인터페이스;
    네트워크 인터페이스를 통해 수신된 GTP-U 패킷의 역캡슐화 또는 네트워크 인터페이스를 통해 송신할 GTP-U 패킷으로의 캡슐화를 위한 정보를 획득하고, GTP-U 패킷을 역캡슐화 하여 획득된 정보를 이용하여 학습 테이블을 생성하거나 생성된 학습 테이블을 이용하여 GTP-U 패킷으로 캡슐화 하는 FPGA부; 및
    학습 테이블이 저장되는 메모리; 를 포함하며,
    FPGA부는
    학습 테이블에 데이터가 등록되면, 외부 타이머를 이용하여 미리 설정된 디폴트 시간으로 학습 테이블의 카운트 값을 체크하여 카운트 값이 미리 설정된 디폴트 값 이상이면 해당하는 학습 테이블의 인덱스를 삭제하는 것을 특징으로 하는 패킷 처리장치.
  15. 제 11 항에 있어서, FPGA부는
    GTP-C 패킷을 이용하여 GTP-U 패킷의 캡슐화 또는 역캡슐화를 위한 정보를 획득하는 것을 특징으로 하는 패킷 처리장치.
KR1020200155916A 2020-11-19 2020-11-19 모바일 네트워크에서 일반 패킷 무선 서비스 터널링 프로토콜 사용자 평면 패킷의 고속 처리방법 및 그 장치 KR102261758B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020200155916A KR102261758B1 (ko) 2020-11-19 2020-11-19 모바일 네트워크에서 일반 패킷 무선 서비스 터널링 프로토콜 사용자 평면 패킷의 고속 처리방법 및 그 장치
US17/101,269 US11464057B2 (en) 2020-11-19 2020-11-23 Method and apparatus for high speed processing of GTP-U packet in a mobile network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200155916A KR102261758B1 (ko) 2020-11-19 2020-11-19 모바일 네트워크에서 일반 패킷 무선 서비스 터널링 프로토콜 사용자 평면 패킷의 고속 처리방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR102261758B1 true KR102261758B1 (ko) 2021-06-07

Family

ID=76374085

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200155916A KR102261758B1 (ko) 2020-11-19 2020-11-19 모바일 네트워크에서 일반 패킷 무선 서비스 터널링 프로토콜 사용자 평면 패킷의 고속 처리방법 및 그 장치

Country Status (2)

Country Link
US (1) US11464057B2 (ko)
KR (1) KR102261758B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102403784B1 (ko) * 2021-12-03 2022-05-30 (주) 시스메이트 Mec-dp lbo 장치 및 이동통신망 네트워크 보안을 위한 메타 데이터 생성과 pfcp 정보를 이용한 gtp-u 패킷의 디캡슐레이션 및 ip 패킷의 인캡슐레이션 고속 처리방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180034632A (ko) * 2015-08-17 2018-04-04 후아웨이 테크놀러지 컴퍼니 리미티드 Gtp-u 다운링크 패킷 전송 방법 및 장치
KR20190098693A (ko) * 2018-02-14 2019-08-22 주식회사 케이티 릴레이 노드에서 상향링크 사용자 데이터를 처리하는 방법 및 그 장치

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012040608A2 (en) * 2010-09-24 2012-03-29 Movik Networks Destination learning and mobility detection in transit network device in lte & umts radio access networks
JPWO2018186000A1 (ja) * 2017-04-07 2020-02-13 日本電気株式会社 ネットワーク装置及びその方法
EP3637817B1 (en) * 2017-06-30 2023-07-26 Huawei Technologies Co., Ltd. Communication method
US11683714B2 (en) * 2019-01-29 2023-06-20 Cisco Technology, Inc. Mobile edge computing with low latency traffic segregation within a PDN using dedicated bearers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180034632A (ko) * 2015-08-17 2018-04-04 후아웨이 테크놀러지 컴퍼니 리미티드 Gtp-u 다운링크 패킷 전송 방법 및 장치
KR20190098693A (ko) * 2018-02-14 2019-08-22 주식회사 케이티 릴레이 노드에서 상향링크 사용자 데이터를 처리하는 방법 및 그 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102403784B1 (ko) * 2021-12-03 2022-05-30 (주) 시스메이트 Mec-dp lbo 장치 및 이동통신망 네트워크 보안을 위한 메타 데이터 생성과 pfcp 정보를 이용한 gtp-u 패킷의 디캡슐레이션 및 ip 패킷의 인캡슐레이션 고속 처리방법

Also Published As

Publication number Publication date
US20220159750A1 (en) 2022-05-19
US11464057B2 (en) 2022-10-04

Similar Documents

Publication Publication Date Title
JP6034979B2 (ja) パケット転送方法と装置及びデータセンターネットワーク
JP5027320B2 (ja) 無線通信デバイス上でアプリケーションを効率的に実行させる装置及び方法
CN107925623A (zh) 覆盖网络的互连
JP6269999B2 (ja) パケット処理方法および装置
CN109088820B (zh) 一种跨设备链路聚合方法、装置、计算装置和存储介质
US11689501B2 (en) Data transfer method and virtual switch
CN114727291B (zh) 本地分流系统、方法、装置、网络设备和存储介质
KR102383782B1 (ko) 데이터 통신에서의 터널 데이터 업데이트 처리방법
CN112929419B (zh) 一种数据包传输方法、装置、电子设备及可读存储介质
KR101477012B1 (ko) Sdn 스위칭 방법, 장치, 시스템 및 컴퓨터 판독 가능한 기록 매체
CN113746749A (zh) 网络连接设备
WO2022143989A1 (zh) 基于srv6协议的sid压缩方法和装置
CN109743244A (zh) 一种基于sdn与nfv技术实现高速互联互通的系统和方法
KR102261758B1 (ko) 모바일 네트워크에서 일반 패킷 무선 서비스 터널링 프로토콜 사용자 평면 패킷의 고속 처리방법 및 그 장치
WO2015027401A1 (zh) 报文处理方法、设备及系统
Mueller et al. Design and implementation of a carrier grade software defined telecommunication switch and controller
WO2020125650A1 (zh) 报文采样方法及解封装方法、节点、系统及存储介质
CN108848202B (zh) 电子装置、数据传输方法及相关产品
US9998376B2 (en) Control device, communication system, control method, and non-transitory recording medium
CN114615197A (zh) 报文转发方法、装置、电子设备及存储介质
CN113973134A (zh) 数据传输方法、装置、电子设备及计算机存储介质
KR102403784B1 (ko) Mec-dp lbo 장치 및 이동통신망 네트워크 보안을 위한 메타 데이터 생성과 pfcp 정보를 이용한 gtp-u 패킷의 디캡슐레이션 및 ip 패킷의 인캡슐레이션 고속 처리방법
CN104871497A (zh) 流表处理方法和装置
US20240106845A1 (en) Mobile edge computing system and method of constructing traffic data feature set using the same
CN115529180B (zh) IPSec加解密卸载方法

Legal Events

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