KR20190107709A - 가상 머신 플랫폼 상의 다중 패킷 처리 코어를 통한 무선 가입자 패킷 처리의 로드 밸런싱 - Google Patents

가상 머신 플랫폼 상의 다중 패킷 처리 코어를 통한 무선 가입자 패킷 처리의 로드 밸런싱 Download PDF

Info

Publication number
KR20190107709A
KR20190107709A KR1020197024249A KR20197024249A KR20190107709A KR 20190107709 A KR20190107709 A KR 20190107709A KR 1020197024249 A KR1020197024249 A KR 1020197024249A KR 20197024249 A KR20197024249 A KR 20197024249A KR 20190107709 A KR20190107709 A KR 20190107709A
Authority
KR
South Korea
Prior art keywords
identifier
packet
session
downstream
data packet
Prior art date
Application number
KR1020197024249A
Other languages
English (en)
Other versions
KR102455902B1 (ko
Inventor
아시마 마하파트라
Original Assignee
어펌드 네트웍스, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 어펌드 네트웍스, 인크. filed Critical 어펌드 네트웍스, 인크.
Publication of KR20190107709A publication Critical patent/KR20190107709A/ko
Application granted granted Critical
Publication of KR102455902B1 publication Critical patent/KR102455902B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/08Load balancing or load distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/08Load balancing or load distribution
    • H04W28/0827Triggering entity
    • H04W28/0831Core entity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/11Allocation or use of connection identifiers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5016Session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/16Gateway arrangements

Abstract

시스템 및 방법은 통신 시스템의 처리량을 향상시키고 캐시 미스의 확률과 발생률을 줄이기 위해, 단일 "패킷 핸들러" 코어에 대한 특정 무선 가입자에 대한 패킷 처리의 제한 또는 "피닝"에 관한 것이다. 패킷 핸들러 데이터는 가입자의 터널 종단 식별자("TEID") 및/또는 세션 식별자를 포함할 수 있다. 로드 밸런서 코어는 패킷의 양방향 트래픽이 전달되는 패킷 핸들러 코어를 선택하기 위해 하나 또는 둘 모두의 식별자를 사용할 수 있다. 해싱 알고리즘은 복수의 UE들을 복수의 패킷 핸들러 코어들 각각에 배분하는데 사용될 수 있다. 다른 실시예들은 분할된 다중 프로토콜 레이블 스위칭("MPLS") 레이블 공간을 이용하여 시스템-시작 프록시 트래픽과 다운스트림 UE 트래픽 간의 구별에 관한 것이다. 예를 들어, MPLS 레이블 공간은 UE 풀 어드레스 도메인과 프록시 루프백 어드레스 도메인으로 분리될 수 있다.

Description

가상 머신 플랫폼 상의 다중 패킷 처리 코어를 통한 무선 가입자 패킷 처리의 로드 밸런싱
관련 출원들에 대한 상호 참조
본 출원은 여기에 참조로 통합된, 2017년 1월 25일 출원된 미국 가출원 번호 62/450,162에 대한 우선권을 주장한다.
본 발명의 실시예는 일반적으로 통신 시스템에 관한 것으로, 특히 통신 시스템에서 데이터 패킷의 처리 및 라우팅에 관한 것이다.
데이터 파일이 텔레커뮤니케이션 네트워크를 통해 전송되면, 그것들은 소스에서 목적지로 라우팅되는 데이터 "패킷(packets)"으로 분리될 수 있다. 패킷 네트워크 어플리케이션의 복잡성이 증가함에 따라, 다중 프로세서 코어 아키텍쳐("다중-코어 네트워크(multi-core networks"))의 사용이 점차 확산되고 있다.
개시된 주제에 따르면, 통신 시스템에서 패킷 핸들러 코어(packet hander core)에 패킷을 전송하는 시스템 및 방법이 제공된다. 일부 실시예들에서, 개시된 주제는 세션을 생성하기 위해 가입자에 대응하는 요청을 수신하는 컴퓨팅 장치를 포함한다. 일부 실시예에서, 컴퓨팅 장치는 세션에 다운스트림 식별자와 업스트림 식별자를 할당하고 세션과 세션 식별자를 연관시킨다. 일부 실시예들에서, 세션 식별자는 가입자와 관련된 세션을 고유하게 식별한다. 일부 실시예들에서, 컴퓨팅 장치는 다운스트림 식별자 또는 업스트림 식별자를 포함하는 데이터 패킷을 수신하고, 수신된 다운스트림 식별자 또는 업스트림 식별자에 기반하여 데이터 패킷과 연관된 세션 식별자를 식별한다. 일부 실시예들에서, 컴퓨팅 장치는 그런 다음 세션 식별자에 기반하여 데이터 패킷을 패킷 핸들러 코어로 라우팅한다.
일부 실시예들에서, 업스트림 식별자는 터널 종단 식별자(Tunnel Endpoint Identifier; "TEID") 또는 암호화 키를 포함한다. 일부 실시예들에서, 프로세서는 암호화 키를 사용하여 데이터 패킷을 암호화 또는 복호화할 수 있다. 일부 실시예들에서, 다운스트림 식별자는 사용자 장치(user equipment; "UE") 인터넷 프로토콜(internet Protocol; "IP") 어드레스 또는 TEID를 포함한다. 일부 실시예들에서, 업스트림 식별자와 다운스트림 식별자는 공통 값을 공유한다. 예를 들어, 공통 값은 업스트림 식별자 및 다운스트림 식별자의 처음 24-비트 부분을 포함할 수 있다. 일부 실시예들에서, 프로세서는 패킷 핸들러 코어를 결정하기 위해 세션 식별자에 해싱 알고리즘(hashing algorithm)을 적용할 수 있다. 일부 실시예들에서, 프로세서는 데이터 패킷에 대한 프록시 서비스를 식별하고, 데이터 패킷을 프록시 서비스 모듈로 라우팅하며, 패킷 핸들러 코어에 대한 식별자와 세션 식별자를 상관시킬 수 있다. 일부 실시예들에서, 프로세서는 패킷 핸들러 코어에 대한 식별자에 기반하여 데이터 패킷을 패킷 핸들러 코어로 라우팅할 수 있다.
일부 실시예들에서, 시스템-시작 프록시 트래픽은 분할된(partitioned) 다중-프로토콜 레이블 스위칭(multi-protocol label switching; "MPLS") 레이블 공간을 사용하여 다운스트림 가입자 트래픽과 구별될 수 있다. 일부 실시예들에서, MPLS 공간은 UE 풀 어드레스 도메인(UE Pool Address Domain)과 프록시 루프백 어드레스 도메인(Proxy Loopback Address Domain)으로 분리될 수 있다.
개시된 주제의 이러한 그리고 다른 기능은 다음의 도면, 상세한 설명 및 청구 범위에 대한 검토 후 더욱 완전히 이해될 것이다. 본 명세서에 사용된 문구와 용어는 설명 목적을 위한 것이며 제한하는 것으로 간주되어서는 안된다는 것을 이해해야 한다.
개시된 주제의 다양한 실시예들에 대한 더욱 완벽한 이해를 위해, 이제 첨부된 도면들과 관련된 다음의 설명이 참조된다:
도 1은 개시된 주제의 일부 실시예들에 따른, 다중-코어 통신 시스템을 통한 패킷 흐름을 예시하는 도면이다.
도 2는 개시된 주제의 일부 실시예들에 따른, 단일 루트 입/출력 가상화("SR-IOV")를 이용한 데이터 평면 개발 키트(Data Plane Development Kit; "DPDK") 포트 비트 마스크를 예시한다.
도 3은 개시된 주제의 일부 구현예들에 따른, SR-IOV 데이터 포트 연결성을 예시하는 도면이다.
도 4는 개시된 주제의 일부 구현예들에 따른, SR-IOV 코어 매핑을 예시하는 도면이다.
도 5는 기존 로드 밸런싱 방법을 예시하는 도면이다.
도 6은 개시된 주제의 일부 실시예들에 따른, 모바일 콘텐트 클라우드(mobile content cloud; "MCC")를 이용한 비-프록시 어플리케이션에 대한 로드 밸런스 해싱을 예시하는 도면이다.
도 7은 개시된 주제의 일부 실시예들에 따른, 독립형 패킷 데이터 네트워크 게이트웨이("PGW") 및 독립형 서빙 게이트웨이("SGW")가 있는 비-프록시 MCC 어플리케이션에 대한 로드 밸런스 해싱을 예시하는 도면이다.
도 8은 개시된 주제의 일부 실시예들에 따른, MCC를 " Gi" 게이트웨이로 사용하는 비-프록시 어플리케이션에 대한 로드 밸런스 해싱을 예시하는 도면이다.
도 9는 개시된 주제의 일부 실시예들에 따른, 신뢰할 수 있는 무선 액세스 게이트웨이("WAG")를 이용한 비-프록시 어플리케이션에 대한 로드 밸런스 해싱을 예시하는 도면이다.
도 10은 개시된 주제의 일부 실시예들에 따른, 인터넷 프로토콜 보안("IPsec") 암호화에 의한 신뢰할 수 있는 WAG를 이용한 비-프록시 어플리케이션에 대한 로드 밸런스 해싱을 예시하는 도면이다.
도 11은 개시된 주제의 일부 실시예들에 따른, 진화된 패킷 데이터 게이트웨이("ePDG")를 이용한 로드 밸런스 해싱을 예시하는 도면이다.
도 12는 개시된 주제의 일부 실시예들에 따른, 프록시 트래픽 어플리케이션에 대한 로드 밸런스 해싱을 예시하는 도면이다.
도 13은 개시된 주제의 실시예들에 따른, 프록시 및 비-프록시 다중 프로토콜 레이블 스위칭("MPLS") 트래픽 어플리케이션에 대한 로드 밸런스 해싱을 예시하는 도면이다.
도 14는 개시된 주제의 일부 실시예들에 따른 예시적인 네트워크 아키텍쳐를 예시하는 도면이다.
도 15는 개시된 주제의 일부 실시예들에 따른, MCC의 예시적인 구성을 예시하는 도면이다.
도 16은 개시된 주제의 일부 실시예들에 따른 세션 수립과 관련된 흐름도이다.
도 17은 개시되 주제의 일부 실시예들에 따른 세션을 수립하는 방법을 예시하는 흐름도이다.
도 18은 개시된 주제의 일부 실시예들에 따른 업스트림 데이터 패킷을 처리하는 방법을 예시하는 흐름도이다.
도 19는 개시된 주제의 일부 실시예들에 따른 다운스트림 데이터 패킷을 처리하는 방법을 예시하는 흐름도이다.
도 20은 개시된 주제의 일부 실시예들에 따른, 프록시 서비스를 수반하는 데이터 패킷을 처리하는 방법을 예시하는 흐름도이다.
본 명세서에 기술된 일부 실시예들은 단일 "패킷 핸들러" 코어에 대한 특정 무선 가입자에 대한 패킷 처리의 제한(confinement) 또는 "피닝(pinning)"에 관한 것으로, 이에 따라 통신 시스템의 처리량을 향상시키고 캐시 미스(cache misses)의 확률과 발생률을 줄일 수 있다. 예를 들어, 패킷 헤더 데이터는 가입자의 터널 종단 식별자(tunnel endpoint identifier; "TEID") 및/또는 세션 식별자("세션 ID" 또는 "워크플로우 세션 ID")를 포함할 수 있으며, 로드 밸런서 코어는 패킷의 양방향 트래픽이 전달되는 패킷 핸들러 코어를 선택하기 위해 하나 또는 두 개의 식별자 모두를 사용할 수 있다. 일부 이러한 실시예에서, 해싱 알고리즘은 다수의 코어들에 걸친 집합적 부하의 균형을 맞추기 위해 복수의 UE들을 각각의 다수의 패킷 핸들러 코어들로 배분하는데 사용된다.
다른 실시예들은 분할된 다중 프로토콜 레이블 스위칭(multiprotocol label switching; "MPLS") 레이블 공간을 이용하여 시스템-시작 프록시 트래픽과 다운스트림 UE(예컨대, 비-프록시) 트래픽 간의 구별에 관한 것이다. 예를 들어, MPLS 레이블 공간은 UE 풀 어드레스 도메인과 프록시 루프백 어드레스 도메인으로 분리될 수 있다.
업스트림과 다운스트림 트래픽을 식별하기 위한 TEID 및 워크플로우 세션 ID의 사용
액세스 네트워크와 패킷 데이터 네트워크 사이의 텔레커뮤니케이션 트래픽을 라우팅하는 전통적인 방법은 패킷 소스 데이터와 패킷 목적지 데이터에 대한 패킷 처리 코어들의 선택에 기반했다. 이에 반해, 본 개시의 실시예에서는, 특정 무선 가입자의 사용자 장치("UE")에 대해, 네트워크의 액세스 측으로부터 수신된 패킷 및 인터넷 코어로부터 들어오는 해당 응답 패킷이 해당 가입자의 터널 종단 식별자("TEID") 및 워크플로우 세션 ID에 기반하여 식별되고 처리 코어로 라우팅된다. DPDK 로드 밸런서 코어는 특정 코어를 선택/할당하기 위해 TEID 및 워크플로우 세션 ID의 공통 값(예들 들어, 각각 처음 24 비트)을 사용하며, 이에 따라 워크플로우 세션 ID에 해당하는 UE 가입자 세션이 활성화되어 있는 한 해당 UE에서 해당 코어로 패킷 처리를 피닝(pining)할 수 있다. 일부 구현예들에서, TEID는 이동성 관리 엔터티(mobility management entity; "MME") 또는 진화 노드(Evolved Node B; "eNodeB")와 본 개시의 MCC 간 협상되는 가입자-특정 식별자이다. 예를 들어, 일부 실시예에서, 초기 "세션 생성(create session)" 요청은 MME/eNodeB에서 MCC로 전송된다. MCC는 워크플로우 세션 ID(예를 들어, 24 비트), 워크플로우 세션 ID과 UE IP 어드레스를 포함하는 터널링 ID("TEID")(예를 들어, 24-비트 워크플로우 세션 ID를 포함하는 32 비트)를 할당한다. 다시 말해, 워크플로우 세션 ID의 할당은 TEID의 처음 24 비트를 워크플로우 세션 ID의 24 비트로 복제(각 매치의 처음 24비트를 보장)하는 것을 포함할 수 있다. MCC에서의 이러한 할당은 본 명세서에 기술된 하나 이상의 시스템들에 의해 수행될 수 있다. MCC는 TEID 및 UE IP 어드레스를 다시 MME/eNodeB로 전송하고, MME/eNodeB는 수정된 TEID를 다시 MCC로 전송한다. 일부 이러한 실시예들에서, 수정된 TEID는 원래 제안된 TEID의 TEID와 동일한 24-비트 워크플로우 세션 ID를 포함한다. MME/eNodeB와 MCC 간 이러한 전후 협상은 추후 관련 세션 동안 특정된 사용자에게 할당된 데이터 패킷의 식별 및/또는 라우팅에 사용될 최종 TEID로 생성된다. 최종 TEID는, MCC에서, 제어 평면에서 WSM으로 전달되고, 나중에 사용을 위해 데이터 평면의 하나 이상의 IOM들로 전달된다. TEID는 입출력 멀티플렉싱(input-output multiplexing; "IOM") 단계에서 패킷 헤더에 추가될 수 있다. 일단 협상된 TEID가 수립되면, 하나 이상의 UE들로부터 발생되고 TEID-함유 헤더를 가지는 가입자 데이터 패킷은 사실상 MCC로 GTP-U터널링될 수 있다. 해싱 알고리즘은 그런 다음 패킷 헤더에 기반하여 모든 이용 가능한 코어들에 걸쳐 복수의 UE들을 할당하거나 배분하는데 사용될 수 있다.
도 14는 일부 실시예들에 따라 예시적인 네트워크 아키텍쳐를 예시하는 도면이다. 사용자 장치("UE")(1402)는 이동성 관리 엔터티("MME")(1406) 및 모바일 콘텐트 클라우드("MCC")(1406)와 교대로 통신하는 eNodeB(1404)와 통신한다. MCC(1416)는 서빙 게이트웨이((standalone serving gateway; "SGW")(1408), 패킷 데이터 네트워크 게이트웨이(Packet Data Network Gateway; "PGW")(1410), 일련의 워크플로우 서비스 모듈(Workflow Service Modules; "WSM"), 및 일련의 입/출력 멀티플렉서(Input/Output Multiplexors; "IOM")(1414)를 포함하는 몇몇의 논리 노드들을 포함한다. MCC(1416)은 그것이 외부 서버(1424)에 액세스할 수 있는 인터넷(1422)와 같은 패킷 데이터 네트워크에 추가로 연결된다. MCC(1416)는 UE(1402)와 연관되는 업스트림 데이터 패킷(1418)을 수신한다. MCC(1416)는 또한 UE(1402)와 연관되는 다운스트림 패킷(1420)을 수신한다. 일부 실시예들에서, 업스트림 패킷은 일반적으로 UE(1402)로부터 멀리 흐르는(flowing) 패킷을 지칭하고, 다운스트림 패킷은 일반적으로 UE(1402)를 향해 흐르는 패킷을 지칭한다. 이하에 더 상세히 기술된 바와 같이, MCC(1416)은 UE(1402)와 연관된 업스트림 및 다운스트림 패킷 둘 다의 라우팅 및 처리를 MCC 내 특정 패킷 핸들러 코어에 피닝하기 위해 TEID, UP IP 어드레스 및 세션 ID를 사용한다.
도 15는 MCC(1416)의 예시적인 구성을 예시하는 도면이다. MCF(1416)는 하나 이상의 물리적 또는 가상 처리 코어를 가지는 처리 머신에서 구현될 수 있다. 예시된 바와 같이, 논리 노드들은 스위치(1502)를 통해 연결된다. 예를 들어, 일련의 워크플로우 서비스 모듈("WSM")(1412), 일련의 입/출력 멀티플렉서("IOM")(1414), 및 일련의 SGW(1408)/PGW(1410) 모듈이 스위치(1502)를 통해 연결된다.
각각의 일련의 워크플로우 서비스 모듈("WSM")(1412)은 로드 밸런싱 코어(Load Balancing Core; "LBC")(1504) 및 일련의 패킷 핸들러 코어(Packet handler Cores; "PHC")(1506)를 포함한다. 입/출력 멀티플렉서는 업스트림 데이터 패킷(1418) 및 다운스트림 데이터 패킷(1420)을 수신하도록 구성된다. 각각의 일련의 입/출력 멀티플렉서("IOM")(1414)는 또한 들어오는 데이터 패킷에 대한 특정 WSM 및 PHC를 선택하고 할당하는데 사용되는 하나 이상의 테이블을 포함한다.
도 16은 일부 실시예들에 따른 흐름도를 예시한다. 단계 1602에서, MCC(1416)는 MME(1406)로부터 사용자 장치에 대한 세션을 생성하기 위한 요청을 수신한다. 요청은 MCC(1416)가 추후에 사용자 장치(지징된 "TEID_D")로 향하는 다운스트림 트래픽에 사용할 TEID을 포함한다. 단계 1604에서, MCC(1416)는 eNodeB(1404)/MME(1406)가 사용자 장치(지정된 "TEID_U")와 연관된 업스트림 트래픽에 사용될 신규 세션과 연관되는 TEID를 생성한다. MCC(1416)는 또한 신규 세션과 연관되는 세션 ID를 생성한다. 일부 실시예들에서, TEID_U와 세션 ID는 공통 값을 공유한다. 예를 들어, TEID_U의 처음 24 비트는 세션 ID의 처음 24 비트와 일치할 수 있다. 일단 TEID_U와 세션 ID가 생성되면, MCC(1416)는 새로 생성된 TEID_U가 새로 생성된 세션 ID에 대응한다는 것을 MCC(1416) 내 모든 IOM들에 통지한다. 일부 실시예들에서, 개별 IOM들은 테이블에서 이 정보의 기록을 유지할 수 있다.
MCC(1416)은 또한 신규 세션과 연관되는 UE IP 어드레스를 할당한다. 이 UE IP 어드레스는 인터넷(1422)과 같은 외부 데이터 네트워크로 나가는 트래픽에 대한 소스 IP 어드레스로 사용될 것이다. 또한 외부 데이터 네트워크로부터 사용자 장치에 대한 들어오는 트래픽에 대한 목적지 IP 어드레스로도 사용될 것이다. UE IP 어드레스 생성 시, MCC(1416)는 새로 생성된 UE IP 어드레스가 새로 생성된 세션 ID와 상관된다는 것을 MCC(1416) 내 모든 IOM들에게 통지한다. 일부 실시예들에서, 개별 IOM들은 테이블에서 이 상관성의 기록을 유지할 수 있다. 단계 1606에서, MCC(1416)는 eNodeB(1404)/MME(1406)로 생성 세션 응답을 전송한다. 세션 생성 응답은 TEID_U를 포함한다.
단계 1608에서, MCC는 eNodeB(1404)/MME(1406)로부터 업스트림 데이터 패킷을 수신한다. 업스트림 데이터 패킷은 이전에 수립된 TEID_U를 포함한다. 단계 1610에서, MCC(1416)는 TEID_U에 대응하는 세션 ID를 식별한다. 일부 실시예들에서, IOM는 테이블의 인덱스로 TEID_U를 사용하여 세션 ID를 식별한다. IOM은 그런 다음 업스트림 데이터 패킷을 처리하기 위한 세션 ID에 기반하여 워크플로우 서비스 모듈("WSM")을 선택하고, 선택된 WSM로 업스트림 데이터 패킷을 라우팅할 것이다. WSM은 세션 ID에 기반하여 특정 패킷 핸들러 코어("PHC")를 선택한다. 일부 실시예들에서, 해싱 알고리즘은 세션 ID에 기반하여 PHC로 업스트림 데이터 패킷을 배분하는데 사용된다. 단계 1612에서, 업스트림 데이터 패킷은 외부 데이터 네트워크(예컨대, 인터넷(1422))에서 그 목적지 어드레스로 라우팅된다.
단계 1614에서, MCC(1416)는 UE IP 어드레스를 포함하는 다운스트림 데이터 패킷을 수신한다. UE IP 어드레스는 다운스트림 데이터 패킷이 장치 사용자와 연관된다는 것을 나타낸다. 단계 1616에서, MCC(1416)는 UE IP 어드레스에 해당하는 세션 ID를 식별한다. 일부 실시예들에서, IOM는 테이블의 인덱스로 UE IP 어드레스를 사용하여 세션 ID를 식별한다. IOM은 그런 다음 다운스트림 데이터 패킷을 처리하기 위한 세션 ID에 기반하여 워크플로우 서비스 모듈("WSM")을 선택하고, 선택된 WSM로 다운스트림 데이터 패킷을 라우팅할 것이다. WSM은 세션 ID에 기반하여 특정 패킷 핸들러 코어("PHC")를 선택한다. 일부 실시예들에서, 해싱 알고리즘은 세션 ID에 기반하여 PHC로 다운스트림 데이터 패킷을 배분하는데 사용된다. 이 다운스트림 데이터 패킷에 대해 식별된 세션 ID는 업스트림 데이터 패킷에 대해 식별된 세션 ID와 일치하므로, 장치 사용자와 연관된 트래픽은 특정 패킷 핸들러 코어로 제한되거나 또는 "피닝"될 것이다. 대안적으로, 일부 실시예들에서, 단계 1614에서 수신된 UI IP 어드레스는 패킷 핸들러 코어로 직접 매핑된다. 예를 들어, IOM은 해당 세션 ID에 대해 이전에 식별된 패킷 핸들러 코어와 UE IP 어드레스를 상관시키는 테이블을 유지할 수 있다. 패킷 핸들러 코어는 다운스트림 데이터 패킷을 처리한다. 단계 1618에서, 다운스트림 데이터 패킷은 TEID_D를 사용하여 eNodeB(1404)/MME(1406)로 라우팅된다.
도 17은 일부 실시예들에 따른 세션을 수립하는 방법을 예시하는 흐름도이다. 단계 1702에서, 세션을 생성하기 위한 요청이 수신된다. 단계 1704에서, 신규 세션과 연관된 TEID_U 및 세션 ID 둘 다 생성된다. 단계 1706에서, IOM은 상관된 TEID_U와 세션 ID를 통지받는다. 일부 실시예들에서, IOM들은 테이블에서 이 상관성의 기록을 유지할 수 있다. 단계 1708에서, 신규 세션에 해당하는 UE IP 어드레스가 생성된다. 단계 1710에서, IOM은 UE IP 어드레스 및 신규 세션과 세션 ID와의 상관성을 통지받는다. 일부 실시예들에서, 개별 IOM들은 테이블에서 이 상관성의 기록을 유지할 수 있다. 일부 실시예들에서, UE IP 어드레스는 패킷 핸들러 코어에 직접 매핑된다. 단계 1712에서, TEID_U를 포함하는 생성 세션 응답이 전송된다.
도 18은 일부 실시예들에 따른 다운스트림 데이터 패킷을 처리하는 방법을 예시하는 흐름도이다. 단계 1802에서, 업스트림 데이터 패킷이 수신된다. 업스트림 데이터 패킷은 세션 ID에 해당하는 TEID_U를 포함한다. 단계 1804에서, TEID_U는 업스트림 데이터 패킷으로부터 추출된다. 단계 1806에서, TEID_U에 해당하는 세션 ID는 룩업 테이블에 기반하여 식별된다. 단계 1808에서, 업스트림 데이터 패킷은 식별된 세션 ID에 기반하여 WSM에 할당된다. 단계 1810에서, 업스트림 데이터 패킷은 세션 ID에 기반하여 패킷 핸들러 코어에 추가로 할당된다. 일부 실시예들에서, 업스트림 데이터 패킷은 세션 ID의 해시 값에 기반하여 특정 핸들러 코어에 할당된다.
도 19는 일부 실시예들에 따른 다운스트림 데이터 패킷을 처리하는 방법을 예시하는 흐름도이다. 단계 1902에서, 다운스트림 데이터 패킷이 수신된다. 다운스트림 데이터 패킷은 세션 ID에 해당하는 UE IP 어드레스를 포함한다. 단계 1904에서, UE IP 어드레스는 다운스트림 데이터 패킷으로부터 추출된다. 단계 1906에서, UE IP 어드레스에 해당하는 세션 ID는 룩업 테이블에 기반하여 식별된다. 단계 1908에서, 업스트림 데이터 패킷은 식별된 세션 ID에 기반하여 WSM에 할당된다. 단계 1910에서, 업스트림 데이터 패킷은 세션 ID에 기반하여 패킷 핸들러 코어에 추가로 할당된다. 일부 실시예들에서, 다운스트림 데이터 패킷은 세션 ID의 해시 값에 기반하여 특정 핸들러 코어에 할당된다.
인터넷 코어를 연결하는 인터페이스에서 시스템 시작 프록시 트래픽과 UE 트래픽을 구별하기 위한 MPLS 레이블 공간의 분리
일부 실시예들에서, 다중 프로토콜 레이블 스위칭("MPLS")이 코어 측에 사용될 경우, 시스템-시작 프록시 트래픽을 다운스트림 UE 트래픽과 구별하기 위해, MPSL 레이블 공간은 두 개의 다른 도메인으로, 예컨대, UE 풀 어드레스 도메인과 프록시 루프백 어드레스 도메인으로 분리될 수 있다. 소정의 UE의 IP 어드레스에 해당하는 고정 루트(static routes)는 UE 도메인으로부터의 레이블을 사용하여 애드버타이징될(be advertised) 수 있으며, 프록시 루프백 어드레스에 해당하는 고정 루트는 다중 프로토콜 경계 게이트웨이 프로토콜(multi-protocol border gateway protocol; "MP-BGP")에 의해 루프백 어드레스 도메인으로부터의 레이블을 사용하여 애드버타이징될 수 있다. DPDK 로드 밸런서 코어는 그런 다음 프록시 트래픽을 다운스트림 UE 트래픽과 구별하는데 레이블 범위 정보를 사용할 수 있다. 예를 들어, UE 패킷은 다운스트림 프록시 트래픽 패킷이 5-투플 값(예를 들어, 소스 어드레스, 목적지 어드레스, 소스 포트, 목적지 포트 및 이더 타입(ether type) 중 하나 이상)에 기반하여 로드될 때 세션 ID에 기반하여 로드 밸런싱될 수 있다.
다운스트림 프록시 트래픽을 피닝하는 IPv4 소스 네트워크 어드레스 변환("NAT") 어드레스에 코어 ID 정보를 임베딩
시스템이 가입자/UE에 대한 프록시 서비스를 식별하면, 그 가입자/UE로부터의 모든 패킷은 프록시 서비스를 위한 부가 가치 서비스(Value Added Service; "VAS") 모듈로 조정된다. 워크플로우 서비스 모듈은 VAS 모듈과 통신하기 위해 IPv4 기반 소스 NAT를 사용한다. NAT 어드레스의 세 번째 바이트는 코어 ID 정보를 전달하도록 인코딩된다. 리턴 경로에서, 워크플로우 서비스 모듈 상의 로드 밸런서 코어는 NAT 어드레스로부터 코어 정보를 추출하고 다운스트림 처리를 위해 해당 코어로 패킷을 전달한다. 이는 업스트림 및 다운스트림 UE 프록시 트래픽이 L2 캐시 활용을 극대화하고 시스템의 성능을 증가시키는 동일한 코어에서 처리되는 것을 보장한다.
이전 솔루션들은 패킷 코어를 선택하기 위한 해시 값으로 UE 어드레스에 기반한다. 그러나 이 솔루션은 다양한 서비스 플랫폼에 걸쳐 작동하지 않는다. 게다가, MPLS 레이블에 기반하여 프록시 대 비-프록시를 식별하는 것뿐만 아니라 워크플로우 서비스 모듈 상의 프록시 트래픽 로드 밸런싱에 대한 솔루션도 없었다.
TEID 및 세션 ID에 기반하여 UE 트래픽을 피닝하는 것은 데이터 처리량을 증가시키기 위한 모든 서비스 플랫폼에 걸친 포괄적인(catch-all) 솔루션이다. 다운스트림 UE 트래픽을 식별하기 위한 MPLS 레이블의 사용과 NAT 어드레스에 코어 정보를 임베딩하는 것은 또한 특정 코어에 UE를 바인딩하는 것을 도움에 따라 사용자 경험을 더 향상시킬 수 있다.
이제 도면들을 참조하면, 도 1은 개시된 주제의 일부 실시예들에 따른, 다중-코어 통신 네트워크를 통한 패킷 흐름을 예시하는 도면이다. 예를 들어, WSM 모듈, IOM 모듈 또는 조합된 WSM/IOM 모듈이 예시된 바와 같이 구현될 수 있다. 도 1에 도시된 바와 같이, 다중 -코어 시스템(100)은 디바이스 층, 입/출력("I/O") 층, 및 패킷 핸들러 층("패스트 패스(fast path)" 층으로도 지칭된다)을 포함한다. 일반적으로, 본 명세서에서 사용된 것처럼, 서버로부터 시작하여 데이터 센터 내의 다른 서버로 전달되는 패킷은 동-서("E/W") 방향으로 이동하고, E/W 포트(112A, 112B)를 통과한다. 반면에, 모바일 장치나 컴퓨터와 같은 네트워크 가입자의 사용자 장치(UE)와 패킷 데이터 네트워크 목적지(예컨대, 인터넷) 사이를 통과하는 패킷은 북-남("N/S") 방향으로 이동하고, N/S 포트(114A, 114B)를 통과한다. 다중-코어 시스템(100)에서, E/W 포트(112B)와 N/S 포트(114B)는 선택적이다. 패킷 트래픽이 E/W인지 N/W인지에 관계없이, 해당 패킷은 데이터 평면 개발 키트("DPDK") 폴 모드(poll mode) 드라이버(110A, 11B)를 통해 I/O 층으로 전달되고, 수신(Rx) 코어(106A, 106B)에 의해 I/O 층에서 수신된다. 수신 코어(들)은 패킷(들)을 그에 동작 가능하게 커플된 연관 로드 밸런서("LB") 코어(104A, 104B)로 전달한다. LB 코어(들)은 그런 다음 각 LB 코어(들)에 의해 수정되었을 수 있는 패킷을 서비스 품질(quality of service; "QoS") 큐(queue)를 통해 복수의 패킷 핸들러("HD") 코어들(102A, 102B) 중 하나로 전달한다. 다중 패킷 핸들러 코어(예컨대, 단축 경로 층)의 이용 가능성과 라우팅으로 인해, 패킷 데이터 서브셋은 동일한 데이터 서브셋에 대해 조정되지 않은 편집으로 인해 손상될 수 있으며, 데이터 손상 위험을 완화하기 위해 데이터 구조를 "잠금(locking)"하는 메커니즘이 필요할 수 있다. 패킷이 다중 코어를 통해 라우팅되면, 처리 요청된 데이터가 캐시 메모리에서 발견되는 않는 캐시 미스도 발생할 수 있으며, 이에 따라 처리 지연을 초래할 수 있다. 본 명세서에 기술된 기술을 사용하면, 캐시 미스와 메커니즘 잠금에 대한 필요성은 다중-코어 시스템 내 단일 패킷 핸들러 코어로 소정의 가입자/UE에 대한 패킷 트래픽의 "피닝"에 의해 감소되거나 배제되며, 이에 따라 모든 해당 노스 바운드 및 사우스 바운드 트래픽은 동일한 패킷 핸들러 코어를 통해 전달된다. 본 명세서에 기술된 방법은 또한 프록시 어플리케이션에 구현될 수도 있다. 예를 들어, N/S 포트(114)를 통해 UE로부터 오는 패킷은 Rx 코어(106B)를 거쳐 LB 코어(104B)로 전달할 수 있다. LB 코어(104B)는 패킷 핸들러 코어들(102B) 중 하나를 패킷에 할당할 수 있다. 또한, 패킷이 프록시 패킷인 것으로 결정 시, LB 코어(104B)는 처리를 위해 내부 프록시로 라우팅될 패킷을 지시하는 IP 어드레스와 소스 포트를 임베딩하도록 패킷의 내부 네트워크 어드레스 변환(internal network address translation; "NAT") 변환을 수행할 수 있다. 패킷을 처리하는 동안, 패킷 핸들러 코어(102B)는 (예를 들어, LB 코어(104B)에 의해 패킷에 행해진 변경에 기반하여) 패킷이 프록시 패킷인 것으로 결정하고, 처리를 위해 패킷 핸들러 코어(102B)가 함께 위치되거나 멀리 떨어져 있는 다른 서버로 패킷을 전송할 수 있다. 리턴 경로를 정의하기 위해, 서버는 패킷이 패킷 핸들러 코어(102B)를 통해 다시 N/S 포트로 라우팅되도록 하기 위해 패킷으로부터 IP 어드레스와 목적지 포트 넘버를 추출한다.
도 2는 개시된 주제의 일부 실시예들에 따른, 단일 루트 입/출력 가상화(single root input/output virtualization; "SR-IOV")를 이용한 데이터 평면 개발 키트("DPDK") 포트 220-비트 마스크를 예시한다. 일부 구현예들에서, 시스템은 내부 사용을 위해 어느 포트가 N/S 포트이고 어느 포트가 E/W 포트인지에 대한 매핑을 저장한다. 이 매핑은 각 이더넷 포트를 "Gi" (예컨대, 인터넷-연결) 포트 또는 "Gn"(예컨대, 가입자로부터의 트래픽) 포트로 정의하는데 사용될 수 있다. 이 포트 매핑의 XML 코드로 작성된 예제 일부는 다음과 같다:
/etc/platform/platform.xml
platform.xml -> /etc/platform/platform_SRIOV_RED.xml
<!-- Variables fDPDK -->
<dpdk>
<sriov>true</sriov>
<loadbalDpdkPorts>3c</loadbalDpdkPorts>
<loadbalThreadsCount>1</loadbalThreadsCount>
<loadbalHugePageSize>25</loadbalHugePageSize>
<loadbalHugePageCount>1500</loadbalHugePageCount>
<loadbalCoreCount>fffffff0</loadbalCoreCount>
<loadbalIoCorePortMask0>24</loadbalIoCorePortMask0>
<loadbalIoCorePortMask1>18</loadbalIoCorePortMask1>
<loadbalIoFctGrouping>all-separated</loadbalIoFctGrouping>
<workflowDpdkPorts>24</workflowDpdkPorts>
<workflowThreadsCount>1</workflowThreadsCount>
<workflowHugePageSize>25</workflowHugePageSize
<workflowHugePageCount>1500</workflowHugePageCount>
<workflowCoreCount>fffffff0</workflowCoreCount>
<workflowIoCorePortMask0>24</workflowIoCorePortMask0>
<workflowIoFctGrouping>all-separated</workflowIoFctGrouping>
도 3은 개시된 주제의 일부 구현예들에 따른, SR-IOV 데이터 포트 연결성을 예시하는 도면이다. 도 3에 도시된 바와 같이, 리던던트 E/W 스위치(312A, 312B)와 리던던트 N/S 스위치(314A, 314B)는 복수의 서버들(322)(예컨대, C7000 블레이드 서버들)에 각각 동작 가능하게 커플된다. 일부 구현예들에서, 각 서버(322)는 단일 N/S 스위치에 연결된다. 각 스위치는 복수의 관련 가상 기능들(virtual functions; "VF들")이 있는 단일 물리적 기능("PF": 328A-328D)을 가질 수 있으며, 이러한 VF들은 관련 VM(들)의 인스턴스화 할 때 각 PF에 매핑될 수 있다. 각 서버(322)는 (1) 그것이 내부 가상 머신이기 때문에, 예를 들어 E/W 스위치에만 연결된 디지털 제어 모듈("DCM") VM(324)과 같은 복수의 가상 머신(virtual machines; "VM들"); 및 (2) 입/출력 멀티플렉서("IOM") VM(326)을 포함할 수 있다. 각 VM은 도 3에 도시된 바와 같이 복수의 논리 인터페이스들("Eth-3", "Eth-4" 등)을 포함할 수 있으며, 이러한 논리 인터페이스들은 예를 들어 관련 VM이 인스턴스화 될 때 Gi 또는 Gn 인터페이스로 할당될 수 있다. 일부 실시예들에서, 각 VF는 이러한 논리 인터페이스 하나에만 대응한다.
도 4는 개시된 주제의 일부 구현예들에 따른, SR-IOV 코어 매핑을 예시하는 도면이다. 도 4에 제시된 바와 같이, 코어 0-3은 VM에서 실행하는 리눅스 동작들을 위해 예약되어 있다. 코어 4는 초기화 동안 DPDK(인텔(Intel)-제공 라이브러리)에 의해 사용된 다음 리눅스로 연결된다. 코어 5는 DPDK에 의해 버퍼 풀(buffer pool)을 주기적으로 모니터링하는데 사용되며, 그 외에는 리눅스에 의해 사용된다. 코어 6, 8 및 10은 도 2를 참조하여 앞에서 도시 및 기술된 바와 같이, 포트 마스크 그룹 0에 해당하는 E/W 패브릭 포트에 대해 각각 Rx, Tx 및 LB에 대응한다. 코어 7, 9 및 11은 도 2를 참조하여 앞에서 도시 및 기술된 바와 같이, 포트 마스크 그룹 1에 해당하는 N/S 패브릭 포트에 대해 각각 Rx, Tx 및 LB에 대응한다. 코어 12-19(7개의 코어 모두)는 패킷 처리에 사용된다. 코어 10 및 11은 로드 밸런싱 알고리즘을 포함하며, 로드 밸런싱은 코어 12-19에 걸쳐 구현된다.
일부 기존 구성들에서, 디폴트 로드 밸런싱 알고리즘은 소스 및 목적지 어드레스에 기반하며, 두 단계로 수행된다. 첫 번째 단계에서, LB 코어는 이더-타입에 기반하여 내부 IP 패킷에 대한 프로토콜을 결정한다. MPLS 패킷은 이 단계 동안 식별될 수 있으며, 로드 밸런싱 알고리즘은 내부 IP 패킷에 대해 5-투플로 설정될 수 있다. 패브릭 패킷 및 다른 패킷(또는 "페이로드") 타입은 이더-타입을 보고 식별될 수 있다. 이더 타입은 패킷의 방향성(예를 들어, 인터넷-바운드 또는 액세스측 바운드)을 결정하고/하거나 이더넷 프레임의 페이로드에 캡슐화된 페이로드를 나타내는 것뿐만 아니라, IOM과 WSM 사이의 패킷 라우팅을 목적으로 사용될 수 있다. 예를 들어, IOM은 패킷이 적절히 목적지 WSM으로 스위칭/라우팅되도록 UE로부터 수신된 패킷을 추출하고, 목적지 WSM에 대한 MAC 어드레스를 결정하고, 패킷에 이더넷 헤더를 추가할 수 있다.
이제 도 5를 참조하면, 워크플로우 서비스 모듈("WSM")(530)에서, 이더 타입의 일반 패킷 무선 서비스(General Packet Radio Service; GPRS) 터널링 프로토콜("GTP") 네트워크 플로우 모듈 대 워크플로우 모듈(GnFM-대-WFM)(즉 UE-대-인터넷 패킷 이동 - IOM(526A)에서 WSM(530)로 가리키는 화살표 참조)의 경우, 로드 밸런싱 알고리즘에 의해 지시된 라우팅은 소스 어드레스("SrcAddr") 또는 소스와 목적지 어드레스의 조합("(Src+Dst)Addr" 또는 "(S+D)Addr")을 기반으로 할 수 있다. IOM(526B)에서, 이더-타입의 WFM-대-GiFM(WSM(530)에서 IOM(526B)로 가리키는 화살표 참조)의 경우, 로드 밸런싱 알고리즘에 의해 지시된 라우팅은 소스 어드레스("SrcAddr") 또는 5-투플을 기반으로 할 수 있다. 두 번째 단계에서는, 첫 번째 동안 내부 IP 패킷에 대해 결정된 프로토콜을 가지는 LB 코어가 일반 라우팅 캡슐화(generic routing encapsulation; "GRE") 패킷, 보안 페이로드 캡슐화(encapsulating security payload; "ESP"), 계층 2 터널링 프로토콜(layer 2 tunneling protocol; "L2TP") 패킷 및/또는 일반 패킷 무선 서비스(GPRS) 터널링 프로토콜("GTP") 패킷을 식별한다. 일부 구현예들에서, L2TP 패킷은, 패킷이 다운스트림 UE 패킷인 것으로 가정되므로, 목적지 어드레스("DstAddr" 또는 "DAddr")에 기반하여 로드 밸런싱된다. 이러한 로드 밸런싱은 또한 도 5에서 GiFM-대-WFM 화살표에 도시된 IP 패킷에 적용될 수 있다. GTP-U 패킷(즉, 사용자 데이터를 운반하는 GTP 패킷 - WSM(530)에서 IOM(526A)로 가리키는 화살표 참조)의 경우, 로드 밸런싱 알고리즘에 의해 지시된 라우팅은 SrcAddr 또는 (Src+Dst)Addr을 기반으로 할 수 있다. 프로토콜이 ESP인 경우, 로드 밸런싱 알고리즘에 의해 지시된 라우팅은 라운드-로빈(round-robin) 또는 (Src+Dst)Addr을 기반으로 할 수 있다. 그러나, 이 문단에서 기술된 접근방법을 사용하면, 들어오는 프록시 패킷을 다운스트림 UE 패킷과 구별하기 위한 메커니즘이 Gi 인터페이스에 없다. 두 경우 모두 5-투플을 사용하여 로드 밸런싱이 수행된다. IP 프래그먼트(fragment) 가 수신되면 이 방법은 작동하지 않을 수 있다. 게다가, 독립형 SGW/PGW 어플리케이션의 경우, 패킷이 SGW용인지 PGW용인지에 대해 S5/S8 인터페이스의 구별이 없다. GTP-U 패킷은 (Src+Dst)Addr을 사용하여 로드 밸런싱된다. WSM/SSM에서, 다운스트림 UE 프록시 패킷은 5-투플을 사용하여 로드 밸런싱된다. NAT 변환으로 인해, UE 어드레스는 DPDK 레벨에서 이용 가능하지 않다.
위에서 논의된 바와 같이, 기존 통신 아키텍쳐에서는, 액세스 네트워크로부터 WSM에 도착하는 패킷은 소스와 목적지 어드레스에 기반하여 식별되고 하나 이상의 패킷 처리 코어들로 라우딩되며, 패킷 데이터 네트워크로부터 WSM에 도착하는 패킷은 목적지 어드레스에 의해 식별되고/되거나 라우팅된다. 이러한 설계는 모든 네트워킹 아키텍쳐와 호환되지 않는다는 점에서 유연성이 부족하다. 이에 반해, 본 명세서에서 기술된 방법에서(예를 들어, 다음의 예시적인 실시예들에서)는, 액세스 네트워크로부터 WSM에 도착하는 패킷은 TEID에 기반하여 식별되고 하나 이상의 패킷 처리 코어들로 라우팅되며, 패킷 데이터 네트워크로부터 WSM에 도착하는 패킷은 세션 ID에 기반하여 식별되고 하나 이상의 패킷 처리 코어들로 라우팅된다. TEID와 세션 ID는 동일한 처음 24 비트를 각각 포함한다. 그 결과, 본 명세서에 기술된 방법 및 시스템의 (패킷 관점에서의) 로드 밸런싱 성능은 네트워크 구성과 무관한 방식으로 구현될 수 있다.
본 명세서에서 사용된 바와 같이, "일반 패킷 무선 서비스(GPRS) 터널링 프로토콜("GTP") 네트워크 플로우 모듈 대 워크플로우 모듈" 이더 타입을 나타내는, "GnFM-대-WFM" 이더 타입은 네트워크 플로우 모듈(예컨대, 액세스/사용자 측의 네트워크) 및 워크플로우 모듈 간 통신을 용이하게 하는 사용자 데이터를 캡슐화하는 임의의 이더 타입을 지칭한다. 마찬가지로, "WFM-대-GnFM" 이더 타입은 워크플로우 모듈과 네트워크 플로우 모듈 간 통신을 용이하게 하는 사용자 데이터를 캡슐화하는 임의의 이더 타입을 지칭한다.
본 명세서에서 사용된 바와 같이, "WFM-대-GiFM" 이더 타입은 워크플로우 모듈과 인터넷-연결 모듈(예컨대, 패킷 데이터 네트워크와 통신하는 IOM) 간 통신을 용이하게 하는 사용자 데이터를 캡슐화하는 임의의 이더 타입을 지칭한다. 마찬가지로, "GiFM-대-WFM" 이더 타입은 인터넷-연결 모듈과 워크플로우 모듈 간 통신을 용이하게 하는 사용자 데이터를 캡슐화하는 임의의 이더 타입을 지칭한다.
본 명세서에서 사용된 바와 같이, "SECM-대-SECM" 이더 타입은 통신 네트워크 내 네트워킹된 보안 모듈들 간 통신을 용이하게 하는 임의의 이더 타입을 지칭한다.
본 명세서에서 사용된 바와 같이, "SECM-대-IOM" 이더 타입은 통신 네트워크 내 보안 모듈과 입-출력 멀티플렉서 모듈 간 통신을 용이하게 하는 임의의 이더 타입을 지칭한다
도 6은 개시된 주제의 일부 실시예들에 따른, 모바일 콘텐트 클라우드("MCC")(100) 내에서 일어나는 비-프록시(예를 들어, UE와 인터넷 간 직접적인 패킷 트래픽) 어플리케이션에 대한 로드 밸런스 해싱을 예시하는 도면이다. 도 6에 도시된 바와 같이, UE로부터 발생되고 액세스 네트워크(615)의 "S1 U" 인터페이스/포트에 도착하는 데이터 패킷은 IOM(626A)로 GTP-U터널링 될 수 있다. IOM(626A)에서의 패킷은 소스 및 목적지 어드레스("(Src+Dst)Addr")의 해싱을 통해 식별되며, 협상된 TEID(GTP-U 헤더 터널 ID)를 포함한다. 일부 구현예들에서, 모든 IOM들은 리턴 목적지 IP 어드레스에 기반하여 UE와 세션 ID를 연관시킨 데이터를 수신한다. TEID는 이 IOM 단계에서 패킷 헤더에 추가된다(예를 들어, 제어 평면에서 eNodeB에 의해 추가된 다음 데이터 평면에서 IOM으로 전송된다). 패킷은 (위에서 언급한 바와 같이, 일반 패킷 무선 서비스(GPRS) 터널링 프로토콜 ("GTP") 네트워크 플로우 모듈 대 워크플로우 모듈을 나타내는) GnFM-대-WFM 이더 타입을 사용하여 IOM(626A)에 의해 WSM 상의 WFM으로 포워딩된다. 패킷은 WSM 상의 로드 밸런서 코어에 의해 수신되며, WSM(630)은 패킷을 할당하기 위한 패킷 핸들러 코어를 결정한다. GnFM-대-WFM 패킷 내부에는 GTP 헤더가 추출될 수 있는 UE 패킷이 있다. GTP 헤더는 TEID(세션 ID의 처음 24 비트와 동일한 처음 24비트)를 운반한다. 패킷은 그 24-비트 TEID에 의해 WSM(630)에서 식별되며, TEID는 패킷이 라우팅될 적절한 패킷 핸들러 코어를 식별하기 위해 해싱된다. 패킷은 5-투플(예컨대, 소스 어드레스, 목적지 어드레스, 소스 포트, 목적지 포트 및 이더 타입)을 사용하여 식별되면, WFM-대-GiFM 이더 타입을 사용하여 WSM(630)에 의해 IOM(626B)로(즉, IOM(626B)의 IP 어드레스로) 포워딩되고, 5-투플을 사용하여 다시 식별되면 IOM(626B)로 리턴되기 전에 (예를 들어, 네트워크 액세스 식별을 포함하는) 추가 처리를 위해 패킷 데이터 네트워크(625)로 전송될 수 있다. IOM(526B)는 룩업 테이블을 사용하여 패킷 헤더에 추가할 적절한 세션 ID를 결정한다. 일부 구현예에서, 룩업 테이블은 IOM에서 유지되며, 서비스된 모든 가입자에 대한 데이터를 포함한다. 이 룩업 테이블은 예를 들어, 가입자에 대한 세션 생성시 채워질 수 있다. 본 명세서에서 기술된 바와 같이, 세션은 TEID와 세션 ID 둘 다 전달한다. 패킷이 인터넷 측에서 MCC로 들어가면, 그 목적지 어드레스는 가입자 IP 어드레스이다(이는 가입자를 향해 가는 다운스트림 패킷이다). 이 IP 어드레스는 연관된 가입자의 세션 ID를 식별하기 위해 룩업 테이블과 상호 참조하는데 사용될 수 있다. 패킷이 액세스 측으로 들어가면, 그 소스 어드레스는 가입자 어드레스이고, 그 목적지 어드레스는 사용자가 액세스 하려고 하는 인터넷의 서버의 어드레스이다. 이 소스 어드레스는 룩업 테이블과 상호 참조하여 관련 TEID를 식별하는데 사용될 수 있다. 4G 네트워크의 특성 때문에, 일부 실시예들에서 세션 ID는 액세스 측에서 항상 획득되지 않을 수 있지만, TEID에 액세스될 수 있다. 마찬가지로, PDN측에서, 세션 ID에 액세스될 수 있다. 이와 같이, 일부 구현예들에서, 패킷 식별 및/또는 라우팅을 위해 TEID는 액세스 측에서 사용되고 세션 ID는 PDN에서 사용된다. TEID와 세션 ID 둘 모두의 상위 24 비트는 동일하도록 설계되므로, 이러한 비트는 동일한 코어에 해싱되며, 이에 따라 가입자를 특정 코어에 피닝할 수 있다.
IOM(526B)는 패킷 헤더에 적절한 세션 ID를 추가한다. 그런 다음, 그 리턴 경로를 따라 계속, 패킷이 GiFM-대-WFM 이더 타입을 사용하여 IOM(626B)에 의해 WSM(630) 상의 WFM으로 포워딩 되며, 패킷은 그 24-비트 세션 ID에 기반하여 식별되고 WSM(630)에 있는 처리 코어로 라우팅된다. WSM(630)은 해당 TEID를 식별하기 위해 세션 ID를 해싱한다. 그런 다음, 패킷은 액세스 네트워크(615)와 패킷-발생 UE로 리턴되기 전 WFM-대-GnFM을 사용하여 WSM(630)에서 다시 IOM(626A)로 GTP-U 터널링될 수 있다. 일부 실시예들에서, IOM(626A)와 IOM(626B)는 동일한 물리적 위치에 존재한다. 일부 실시예들에서, IOM(626A)와 IOM(626B)는 단일 IOM을 나타낸다.
도 7은 개시된 주제의 일부 실시예들에 따른, 독립형 패킷 데이터 네트워크 게이트웨이("PGW")(이는 게이트웨이 GPRS 지원 노드(gateway GPRS support node; "GGSN") 역할도 할 수 있음) 및 독립형 서빙 게이트웨이("SGW")(이는 서빙 GPRS 지원 노드(serving GPRS support node; "SGSN") 역할도 할 수 있음)가 있는 비-프록시 MCC 어플리케이션에 대한 로드 밸런스 해싱을 예시하는 도면이다. 도 7에 도시된 바와 같이, 독립형 PGW/GGSN 경로에 따르면, UE로부터 발생하는 데이터 패킷은 액세스 네트워크(715)의 "S5/S8" 인터페이스/포트를 거쳐 통과하여 IOM(726A)로 GTP-U터널링될 수 있고, 그 (Src+Dst)Addr을 사용하여 식별되며, 협상된 TEID(GTP-U 헤더 터널 ID)를 포함할 수 있다. 그 패킷은 GnFM-대-WFM 이더 타입을 사용하여, IOM(726A)에 의해 WSM(730A) 상의 WFM로(즉, WSM(730A)의 IP 어드레스로) 포워딩되며, 그 TEID에 기반하여 식별되고 처리 코어로 라우팅된다. 패킷은 5-투플(예컨대, 소스 어드레스, 목적지 어드레스, 소스 포트, 목적지 포트 및 이더 타입)을 사용하여 식별 및 라우팅되는 경우, WFM-대-GiFM 이더 타입을 사용하여 WSM(730A)에 의해 IOM(726B)로(즉, IOM(726B)의 IP 어드레스로) 포워딩되고, 5-투플을 사용하여 다시 식별되는 경우 IOM(726B)로 리턴되기 전에 추가 처리를 위해 패킷 데이터 네트워크(725)로 전송될 수 있다. 리턴 경로를 따라 계속 진행하면, 패킷은 GiFM-대-WFM 이더 타입을 사용하여 IOM(726B)에 의해 WSM(730A) 상의 WFM으로 포워딩되며, 그 세션 ID에 기반하여 식별되고 처리 코어로 라우팅된다. 그런 다음, 패킷은 액세스 네트워크(715)와 패킷-발생 UE로 리턴되기 전 WFM-대-GnFM을 사용하여 WSM(730A)에서 다시 IOM(726A)로 GTP-U 터널링될 수 있다.
도 7의 독립형 SGW/SGSN 경로에 따르면, UE로부터 발생하는 데이터 패킷은 액세스 네트워크(715)의 "S1U" 인터페이스/포트를 거쳐 통과하고, 그 (Src+Dst)Addr을 사용하여 식별되며, 협상된 TEID(GTP-U 헤더 터널 ID)를 포함할 수 있다. 패킷은 GnFM-대-WFM 이더 타입을 사용하여, IOM(726C)에 의해 WSM(730B) 상의 WFM로(즉, WSM(730B)의 IP 어드레스로) 포워딩되며, 그 TEID에 기반하여 식별되고 처리 코어로 라우팅된다. 패킷은 그 (Src+Dst)Addr을 사용하여 식별되는 경우, WFM-대-GiFM 이더 타입을 사용하여 WSM(730B)에 의해 IOM(726D)로 터널링되며, 그 (Src+Dst)Addr을 사용하여 다시 식별되는 경우 IOM(726D)로 리턴되기 전 추가 처리를 위해 패킷 데이터 네트워크(725)로 전송될 수 있다. IOM(726D)로부터 패킷 데이터 네트워크(725)로의 이 전송은 S5/S8 인터페이스로 GTP-U 터널링될 수 있으며, GGSN, PGW("4G" 표준) 및/또는 G1 서비스들이 적용될 수 있다. 독립형 SGW를 통한 리턴 경로에서, 패킷은 GiFM-대-WFM 이더 타입을 사용하여 IOM(726D)에 의해 WSM(730B) 상의 WFM으로 포워딩되며, 그 세션 ID에 기반하여 식별되고 처리 코어로 라우팅된다. 그런 다음, 패킷은 액세스 네트워크(715)와 패킷 발생 UE로 리턴되기 전 WFM-대-GnFM을 사용하여 WSM(730B)에서 다시 IOM(726C)로 GTP-U 터널링될 수 있다.
도 8은 개시된 주제의 일부 실시예들에 따른, MCC를 " Gi" 게이트웨이(예를 들어, "Gi 서비스"로 알려진 부가가치 서비스를 제공할 수 있는 인터넷-연결 게이트웨이)로 사용하는 비-프록시 어플리케이션에 대한 로드 밸러스 해싱을 예시하는 도면이다. 도 8에 도시된 바와 같이, 패킷은 액세스 네트워크 측에서든 패킷 데이터 네트워크 측에서든 들어올 수 있다. 들어오는 데이터 패킷의 소스를 명확하게 하기 위해, 패킷이 액세스 측(이 경우, 소스 어드레스가 해싱에 사용될 것이다)에서 도착하는지 인터넷/패킷 데이터 네트워크 측(이 경우, 목적지 어드레스가 해싱에 사용될 것이다)에서 도착하는지를 식별하기 위한 인터페이스 액세스 속성이 전달된다. 일부 이러한 구현예들에서, UE로부터 발생하는 데이터 패킷은 Gi 액세스 인터페이스를 통해 액세스 네트워크(815)에서 IOM(826A)로 전달하고, 인터페이스 액세스 속성이 액세스 네트워크로부터 들어오는 패킷에 대응하기 때문에 그 소스 어드레스("SAddr")를 이용하여 식별된다. 이 전송의 일부로서, Gi 액세스 인터페이스를 식별하기 위한 인터페이스 속성이 DPDK에 푸시될 수 있다. 패킷은 GnFM-대-WFM 이더 타입을 사용하여, IOM(826A)에 의해 WSM(830) 상의 WFM로(즉, WSM(830A)의 IP 어드레스로) 포워딩되며, 그 TEID에 기반하여 식별되어 처리 코어로 라우팅된다. 패킷은 5-투플을 사용하여 식별되는 경우 WFM-대-GiFM을 사용하여 WSM(830)에 의해 IOM(826B)로 (즉, IOM(826B)의 IP 어드레스로) 포워딩되고, 그 DAddr을 사용하여 식별되는 경우IOM((826B)로 리턴되기 전 추가 처리를 위해 패킷 데이터 네트워크(825)로 전송될 수 있다. 리턴 경로를 따라 계속 진행하면, 패킷은 GiFM-대-WFM 이더 타입을 사용하여 IOM(826B)에 의해 WSM(830) 상의 WFM으로 포워딩되며, 그 세션 ID를 사용하는 것에 기반하여 식별되고 처리 코어로 라우팅된다. 그런 다음, 패킷은 액세스 네트워크(815)와 패킷-발생 UE로 리턴되기 전 WFM-대-GnFM을 사용하여 WSM(830)에서 다시 IOM(826A)로 전달된다.
매크로셀룰러(macrocellular) 네트워크에 대한 네트워크 커버리지를 확장하고 트래픽을 줄이기 위해 Wi-Fi 네트워크를 사용하는 것은 서비스 제공자들에게는 비용상 이점이 있다. 신뢰할 수 있는 Wi-Fi 네트워크는, 예를 들어, 서비스 제공자가 유지하거나 또는 제공자와 협력하여 배치된 핫스팟(예를 들어, 공항에서 호스팅된 핫스팟)일 수 있다. 서비스 제공자는 모바일이나 고정된 네트워크 운영자일 수 있다. 케이블 제공자 컴캐스트(Comcast)는 예를 들어, 현재 미국에 배치했던 수 천개의 무선 핫스팟을 통한 무선 음성 및 데이터 서비스 모두를 제공한다.
신뢰할 수 있는 네트워크는 서비스 제공자가 기본 사용자 정보를 검증하고 액세스 포인트에 걸쳐 어느 정도 수준의 제어를 발휘할 수 있는 네트워크로 정의될 수 있다. 예를 들어, Wi-Fi 사용자는 신뢰할 수 있는 WLAN 프록시(Trusted WLAN Proxy; "TWAP")를 통해 서비스 제공자의 인증, 권한부여 및 계정관리(Authentication, Authorization, and Accounting; AAA) 시스템에 의해 인증될 수 있으며, 음성/데이터 트래픽 자체는 신뢰할 수 있는 WLAN 액세스 게이트웨이(Trusted WLAN Access Gateway; "TWAG")를 통과하여 백홀(backhaul)을 위해 데이터 네트워크에 오프로드될 수 있다. 본 명세서에서 기술된 일부 실시예들에서, 가입자-발생 패킷에 대해 정책 실행(예를 들어, 서비스 품질("QoS") 정책), 콘텐트 필터링, 웹/비디오 최적화와 같은 Gi 서비스와 NAT, 방화벽 및 인터넷 프로토콜 보안(internet protocol security; "IPSec")과 같은 보안 서비스가 수행된다.
일부 구현예들에서, 부가가치 서비스와 원활한 세션 핸드오프를 포함하여 가입자의 네트워크 경험을 신뢰할 수 있는 Wi-Fi 네트워크로 확장시키는 것은 서비스 제공자의 코어 네트워크와 긴밀한 통합을 수반한다. 신뢰할 수 있는 Wi-Fi 액세스의 예로는 모바일 가입자들이 몰 외부의 매크로셀룰러 네트워크에서 몰 내부의 무선 LAN(WLAN)으로 원활하게 이동할 수 있는 대형 쇼핑몰에서의 무선 로밍이 있다. 이러한 시나리오에서는, 가입자들이 네트워크에 로그온할 필요 없이 또는 기존 세션을 방해하지 않고 실내에서 더 나은 무선 수신을 즐길 수 있을 것이다. 위에서 논의된 바와 같이, TWAP는 인증/권한부여를 위한 AAA 서버와의 통신을 보안할 수 있는 반면, TWAG는 음성/데이터 트래픽을 패킷 데이터 네트워크로 오프로드 (그리고 선택적으로 그 트래픽에 대한 정책을 시행)할 수 있을 것이다. 그러나 모든 트래픽이 인터넷으로 직접 라우팅될 수 있는 것은 아니다. 특정 트래픽이 TWAG를 통해 패킷 코어 네트워크로 라우팅될 수 있다. 본 명세서에서 기술된 실시예들은 로컬 가상 EPC 솔루션의 일부이든 또는 기존 제3자 EPC 솔로션의 일부이든, TWAG가 임의의 산업 표준 진화된 패킷 코어(industry-standard evolved packet core; "EPC") 게이트웨이와 직접 통신할 수 있도록 하는 산업 표준 S2a 인터페이스를 지원할 수 있다.
수백만의 Wi-Fi 액세스 포인트들이 있는 세계에서는, 서비스 제공자가 사용자들을 인증할 수 없거나 네트워크에 걸쳐 트래픽의 흐름을 제어할 수 없는 신뢰할 수 없는 Wi-Fi 네트워크가 흔히 발생한다. 신뢰할 수 없는 네트워크의 예로는 커피숍의 Wi-Fi 네트워크 또는 경쟁업체에 의해 호스팅된 네트워크가 있을 수 있다. 본 명세서에 기술된 일부 실시예들에서, 신뢰할 수 없는 Wi-Fi 네트워크를 코어 네트워크로 가져오는 것을 용이하게 하기 위해, 진화된 패킷 데이터 게이트웨이(evolved packet data gateway; "ePDG")가 배치될 수 있다.
신뢰할 수 없는 네트워크들을 통한 통신은 인터넷 프로토콜 보안("IPSec") 암호화로 알려진 추가 보안 수준으로 보호될 수 있다. 산업 표준은 모든 모바일 장치들이 장치 상에서 IPSec 클라이언트를 사용해야 하는 것을 의무화한다. 이런 경우, 음성 및 데이터 세션은 IPSec 터널을 통해 안전하게 전달한다. 이러한 터널은 종종 착신 또는 발신 콜을 예상하여 열어 두어야 할 필요가 있으며, 이에 따라 임의의 주어진 시간에 수백만 개의 IPSec 터널들을 네트워크에서 열어 둘 필요가 있다. 하드웨어-기반 ePDG들은 개방형 IPSec 터널에 대한 높은 수요를 처리하도록 설계되지만, 가상화된 ePDG 인스턴스의 경우 이와 동일한 높은 암호화 요구사항은 역사적으로 문제가 있음이 입증되었다. 본 명세서에 기술된 일부 실시예들에 따르면, 단일 서버에서 5G 레벨의 IPSec-암호화된 통신을 전달할 수 있는 강력한(robust) 가상 ePDG들이 구현된다.
도 9는 개시된 주제의 일부 실시예들에 따른, Gi 서비스와 함께 신뢰할 수 있는 무선 액세스 게이트웨이(wireless access gateway; "WAG")를 사용한 비-프록시 어플리케이션에 대한 로드 밸런스 해싱을 예시하는 도면이다. 도 9의 상단 부분에 도시된 바와 같이, UE는 신뢰할 수 있는 Wi-Fi 연결을 통해 또는 3G/4G 연결을 통해 패킷 네트워크에 연결될 수 있으며, Gi 서비스(예를 들어, TWAP를 통한 AAA 인증)를 제공할 수 있는 TWAG("GiSvcs")(927) 또는 SGW를 통해 패킷 데이터 네트워크로 패킷을 각각 전달할 수 있다. 도 9의 하단 부분은 TWAG(927)에서 액세스 네트워크를 통해 UE로부터 발생하는 데이터 패킷의 처리를 예시한다. 패킷은 그 SAddr을 사용하여 식별된 GRE 캡슐화된 투명 이더넷 브릿징("TEB")를 통해 IOM(926A)에 도착한다. 패킷은 GnFM-대-WFM 이더 타입을 사용하여, IOM(926A)에 의해 WSM(930) 상의 WFM로(즉, WSM(830A)의 IP 어드레스로) 포워딩되며, 그 TEID에 기반하여 식별되어 처리 코어로 라우팅된다. 그런 다음, 패킷은 5-투플 또는 그 소스와 목적지 어드레스("(Src+Dst)Addr")를 사용하여 식별되는 경우, WFM-대-GiFM 이더 타입을 사용하여, WSM(930)에 의해 IOM(926B)로 (예를 들어, IOM(926B)의 IP 어드레스 또는 GTP-U 터널로)포워딩되며, 그 5-투플 또는 그 소스와 목적지 어드레스("(Src+Dst)Addr")을 사용하여 식별되는 경우, IOM(926B)로 리턴되기 전 추가 처리를 위해 (사용자 구성인, (1) TWAG(927)이 Gi 서비스를 제공하는 경우 직접 PDN으로의 IP 패킷에 따라, 또는 (2) TWAG(927)이 Gi 서비스를 제공하지 않는 경우 S2A 인터페이스에 따라) 패킷 데이터 네트워크로 전송될 수 있다. 리턴 경로를 따라 계속 진행하면, 패킷은 GiFM-대-WFM 이더 타입을 사용하여 IOM(926B)에 의해 WSM(930) 상의 WFM으로 포워딩되며, 그 세션 ID를 사용하는 것에 기반하여 식별되고 처리 코어로 라우팅된다. 그런 다음, 패킷은 패킷이 액세스 네트워크 및 패킷-발생 UE로 리턴되기 전에 그 SAddr에 의해 식별되는 시점에서 GRE-캡슐화된 TEB를 통해 WFM-대-GnFM을 사용하여 WSM(930)에서 다시 IOM(926A)로 전달된다.
도 10은 개시된 주제의 일부 실시예들에 따른, 인터넷 프로토콜 보안("IPsec") 암호화에 의한 신뢰할 수 있는 WAG를 이용한 비-프록시 어플리케이션에 대한 로드 밸런스 해싱을 예시하는 도면이다. 도 10의 상단 부분에 도시된 바와 같이, UE는 신뢰할 수 있는 Wi-Fi 연결을 통해 또는 3G/4G 연결을 통해 패킷 네트워크에 연결될 수 있으며, Gi 서비스(예를 들어, TWAP를 통한 AAA 인증)를 제공할 수 있는 TWAG("GiSvcs")(1027) 또는 SGW를 통해 패킷 데이터 네트워크로 패킷을 각각 전달할 수 있다. 도 10의 하단 부분은 TWAG(1027)에서 그 소스와 목적지 어드레스((Src+Dst)Addr)를 사용하여 식별된, IP 보안 페이로드 캡슐화("ESP")를 통해 액세스 네트워크로부터 IOM(1026A)로 UE로부터 발생한 데이터 패킷의 처리를 예시한다. 패킷은 IOM(1026A)에 의해 WSM(1030a) 상의 다른 SECM로 (즉, WSM(1030)의 IP 어드레스로) 그리고 IP 보안 페이로드 캡슐화("IP ESP") 프로토콜로 포워딩 되기 전에 IOM(1026A) 내부에 있는 보안 모듈("SECM")에 의해 처리(즉, SECM-대-SECM 전달)되며, 그 세션 ID에 기반하여 식별되고 처리 코어로 라우팅된다. WSM(1030A) 내부로, 패킷이 SECM에서 IOM으로 전달된다. 그런 다음, 패킷은 GnFM-대-WFM을 사용하여 WSM(1030A)에 의해 WSM(1030B) 상의 WFM로 포워딩되며, 그 세션 ID에 기반하여 다시 식별되고 처리 코어로 라우팅된다. WSM(1030B)는 5-투플 또는 그 소스와 목적지 어드레스((Src+Dst)Addr)을 사용하여 식별되는 경우, WFM-대-GiFM 이더 타입을 사용하여 패킷을 IOM(1026B)로, (예를 들어, IOM(1026B)의 IP 어드레스 또는 GTP-U 터널로) 전달하고, 그 5-투플 또는 (Src+Dst)Addr를 사용하여 다시 식별되는 경우, IOM(1026B)로 라우팅되기 전 추가 처리를 위해 패킷 데이터 네트워크로 전송될 수 있다. 리턴 경로를 따라 계속 진행하면, 패킷은 GiFM-대-WFM 이더 타입을 사용하여 IOM(026B)에 의해 WSM(930) 상의 WFM으로 포워딩되며, 그 TEID에 기반하여 식별되고 처리 코어로 라우팅된다. 그런 다음, 패킷은 패킷이 그 SADDR에 의해 식별되는 시점에서 GRE 캡슐화된 TEB를 통해 WFM-대-GnFM을 사용하여 WSM(1030B)에서 다시 IOM(026A)로 전송된다. 그런 다음, IOM(1026A)의 SECM이 암호화를 위한 SECM-대-SECM 전송에 의해 WSM(030A)의 SECM으로 패킷을 다시 보내고, 액세스 네트워크와 패킷 발생 UE로 리턴되기 전 SECM-대-IOM으로 다시 전달된다.
도 11은 개시된 주제의 일부 실시예들에 따른, ePDG를 사용한 로드 밸런스 해싱을 예시하는 도면이다. 도 11도의 상단 부분에 도시된 바와 같이, UE는 신뢰할 수 없는 Wi-Fi 연결 또는 3G/4G 연결을 통해 패킷 네트워크에 연결될 수 있으며, ePDG(1129)를 통해 패킷 데이터 네트워크로 패킷을 전송한다. 도 11의 하단 부분은 ePDG(1129)에서 IP ESP 이더 타입을 사용하여 액세스 네트워크로부터 IOM(1126A)로 UE로부터 발생한 데이터 패킷의 처리를 예시하며, 그 (Src+Dst)Addr을 사용하여 IOM(1126A)에서 식별된다. IOM(1126A)는 세션을 생성하고 세션 ID를 결정하기 위한 패킷의 주요 값을 그 로컬 세션 데이터에 매핑한다. 패킷은 IP ESP 이더 타압을 사용하여 IOM(1126A)에 의해 WSM(1130)상의 SECM으로 (즉, SECM-대-SECM 전달) 포워딩되기 전 IOM(1126A) 내부에 있는 SECM에 의해 처리되고, 그 세션 ID에 기반하여 식별되고 라이팅되며 복호화된다. WSM(1130A) 내부로, 패킷은 SECM에서 WFM으로 전달되며, 이 경우 세션 ID는 처리 코어로 패킷의 라우팅을 위해 WFM에 의해 사용될 수 있다. 그런 다음, 패킷은 그 (Src+Dst)Addr을 사용하여 식별되고 라우팅되는 경우, WFM-대-GiFM 이더 타입을 사용하여 WSM(1130)에 의해 IOM(1126B)로 포워딩되며, 그 (Src+Dst)Addr을 사용하여 식별되고 라우팅되는 경우, IOM(1126B)로 리턴되기 전 추가 처리를 위해 패킷 데이터 네트워크로 전송될 수 있다. 리턴 경로를 따라 계속 진행하면, 패킷은 GiFM-대-WFM 이더 타입을 사용하여 IOM(1126B)에 의해 WSM(930) 상의 WFM으로 포워딩되며, 그 TEID를 사용하여 식별되고 라우팅된다. WSM(1130A) 내부로, 패킷은 암호화를 위해 WFM에서 SECM으로 전달되며, IP ESP가 적용된다. 그런 다음, 패킷은 액세스 네트워크 및 패킷-발생 UE로 리턴되기 전 패킷이 그 (Src+Dst)Addr에 의해 식별되고 라우팅되는 시점에서, SECM-대-IOM 및 IP ESP 이더 타입을 사용하여 WSM(1130)에서 다시 IOM(1126A)로 전달된다.
도 12는 개시된 주제의 일부 실시예들에 따른, 프록시 트래픽 어플리케이션에 대한 로드 밸런스 해싱을 예시하는 도면이다. 도 12에 도시된 바와 같이, UE로부터 발생하여 액세스 네트워크(1215)의 "S1 U" 인터페이스/포트에 도착하는 데이터 패킷은 IOM(1226A)로 GTP-U 터널링된다. 패킷은 GnFM-대-WFM 이더 타입을 사용하여, IOM(1226A)에 의해 WSM(1230) 상의 WFM으로 (즉, WSM(1230)의 IP 어드레스로) 포워딩되며, 그 TEID에 의해 식별된다. WSM(1230)에서, TEID는 코어 선택의 목적으로 해시된다. WSM(1230) 내부로, 패킷은 프록시 서비스가 필요한 것으로 결정되고, WFM에서 패킷 트래픽이 (UE IP 어드레스를 제거하는) 이 패킷에 할당되어 있는 사용자 소스 IP 어드레스 및 목적지 MAC 어드레스의 매핑에 기반하여 전환되는 네트워크 어드레스 변환("NAT")을 수행하는 워크플로우 전환 모듈로 전달된다. 따라서, 패킷이 PM으로부터 리턴하면, 워크플로우 전환 모듈은 역 조회를 수행하고 UE IP 어드레스를 다시 넣을 수 있다. 패킷 트래픽을 전환할 때, 워크플로우 전환 모듈은 이더 타입(예를 들어, DEA8-DEAF)를 가지는 패킷을 HTTP 프록시 서비스 (및/또는 비디오 적응 서비스와 같은 다른 서비스)를 위한 하나 이상의 서비스 모듈 블레이드 PM 프록시 모듈("PM")(1232)로 전달한다. 전환된 패킷이 PM에 도착하면, TCP 연결은 NAT로 인해 종료될 수 있다(즉, PM은 목적지 IP 어드레스를 자체 IP 어드레스로 인식한다). WSM(1230)에서 PM(1232)로 패킷을 전송할 때, WSM(1230)은 UE IP 어드레스 대신 "로컬" IP 어드레스를 사용한다. 이 로컬 IP 어드레스는 로컬 IP 어드레스에 UE IP 어드레스를 매핑함으로써 NAT 변환을 통해 생성된다. 이는 (WSM(1230)을 떠날 경우) 소스 어드레스로, 그리고 (패킷 리턴 경로를 따라 WSM(1230)에 도착할 경우) 목적지 어드레스로의 역할을 하며, IP 어드레스는 그 비트의 서브세에 코어 정보를 포함한다. 다시 말해, WSM(1230)에 의해 선택된 "로컬 IP 어드레스"는 이용 가능한 IP 어드레스 리스트로부터 선택되며, 패킷의 TEID의 해싱에 기반하여 패킷에 대해 WSM(1230)에 의해 선택된 코어에 대응한다.
패킷은 5-투플을 사용하여 식별되는 경우 정해진 이더 타입(예컨대, "BEEF")으로, PM(1232)에 의해 IOM(1226B)로 포워딩되며, 5-투플을 사용하여 다시 식별되는 경우, IOM(1226B)로 리턴되기 전 추가 처리를 위해 패킷 데이터 네트워크(1225)로 전송될 수 있다. 그 리턴 경로를 따라 계속 진행하면, 패킷은 이더 타입(예컨대, IOM(1226B)에 패킷이 프록시 패킷임을 나타내는 DEA8-DEAF)으로, PM(1232)상의 루프백 IP 어드레스(외부 세계가 그와 통신할 수 있도록 하고 패킷이 WSM이 아닌 PM으로 루프백 =하도록 PM이 사용하는 IP 어드레스)를 사용하여 IOM(1226B)에 의해 HTTP 프록시로 포워딩된다. 그런 다음, 패킷은 패킷의 방향성(과 그에 따라 패킷이 라우팅되고 처리되어야 하는 방법 등)을 나타내는 이더 타입 BEEF으로, PM(1232)에서 다시 WSM(1230)의 워크플로우 전환 모듈로 라우팅된다. 일부 실시예들에서, WFM 및 워크플로우 전환 모듈 소프트웨어는 관련된 코어가 항상 사용되도록 (예컨대, TEID, 세션ID 등과 연관된) 공통 코어 상에서 실행되고 있다. MAC IP 어드레스가 생성되기 전, 코어 정보는 PM으로 전송되는 MAC 패킷을 생성하는 코어를 나타내기 위해 IP 어드레스에 임베딩될 수 있다. 그런 다음, LB 코어는 그것이 프록시 패킷(예를 들어, 이는 코어를 식별하기 위해 ~7 비트를 차지할 수 있다)임을 인식할 수 있다. WSM(1230) 내부로, 패킷은 워크플로우 전환 모듈에서 WFM으로 전달된다. 패킷은 액세스 네트워크(1215)(또한 GTP-U 터널링을 통해) 및 패킷-발생 UE로 리턴되기 전 그 (Src+Dst)Addr을 사용하여 식별되는 경우 WFM-대-GnFM 이더 타입을 사용하여 WSM(1230)에 의해 IOM(1226A)로 GTP-U 터널링된다.
도 13은 개시된 주제의 실시예들에 따른, 프록시 및 비-프록시 다중 프로토콜 레이블 스위칭(multiprotocol label switching; "MPLS") 트래픽 어플리케이션 둘 모두에 대한 로드 밸런스 해싱을 예시하는 도면이다. 도 13에 도시된 실시예의 일부 구현예들에서, WSM(1330)은 IOM(1326A)로부터 수신되는 패킷을 PM(1332)으로 전환할지 여부에 대해 결정한다. 도 13에 도시된 바와 같이, UE로부터 발생하여 액세스 네트워크(1315)의 "S1 U" 인터페이스/포트에 도착하는 데이터 패킷은 IOM(1326A)으로 GTP-U 터널링되며, (Src+Dst)Addr을 통해 식별된다. 패킷은 GnFM-대-WFM 이더 타입을 사용하여, IOM(1326A)에 의해 WSM(1330)으로 포워딩되며, 그 TEID에 기반하여 다시 식별되고 처리 코어로 라우팅된다.
WSM(1330) 내부로, 패킷이 프록시 서비스가 필요한 것으로 결정되면, 패킷은 HTTP 프록시 서비스를 위해 WSM(1330)으로부터 DEA8-DEAF 이더 타입을 통해 하나 이상의 PM들(1332)로 전달되고, 네트워크 어드레스 변환("NAT")이 수행된다. (점선으로 표시된) 프록시 경로에 따르면, 패킷은 5-투플을 사용하여 식별되는 경우 BEEF 이더 타입과 다중 프로토콜 레이블 스위칭("MPLS")을 사용하여, PM(1332)에 의해 IOM(1326B)로 (즉, IOM(1326B)의 IP 어드레스로) 포워딩되고, 추가 처리를 위해 IOM(1326B)에서 패킷 데이터 네트워크(1325)로 전송될 수 있다. 일단 IOM(1326B)로 리턴되면, 패킷은 5-투플을 사용하여 다시 식별된다. 그 리턴 경로를 따라 계속 진행하면, 패킷은 PM(1332) 상의 루프백 IP를 사용하여, DEA8-DEAF 이더 타입을 사용하여 IOM(1326B)에 의해 HTTP 프록시로 포워딩된다. 그런 다음, 패킷은 BEEF 이더 타입을 사용하여 PM(1332)로부터 다시 WSM(1330)으로 라우팅된다. 패킷은 액세스 네트워크(1315) 및 패킷-발생 UE로 다시 GTP-U 터널링되기 전 그 (Src+Dst)Addr을 사용하여 식별되는 경우 WSM(1330)에 의해, WFM-대-GnFM 이더 타입을 사용하여, 다시 IOM(1326A)로 GTP-U 터널링된다.
WSM(1330)에서 노스바운드 패킷이 플록시 서비스가 필요하지 않은 것으로 결정되면, 패킷은 5-투플을 사용하여 식별되는 경우 WFM-대-GnFM을 사용하여, WSM(1330)에 의해 직접 IOM(1326B)로 (즉, IOM(1326B)의 IP 어드레스로) 포워딩되며, 추가 처리를 위해 IOM(1326B)로부터 패킷 데이터 네트워크(1325)로 전송될 수 있다. 일단 IOM(1326B)로 리턴되면, 패킷은 5-투플을 사용하여 다시 식별된다. 리턴 경로를 따라 계속 진행하면, 패킷은 GiFM-대-WFM을 사용하여, IOM(1326B)에 의해, 그 세션 ID에 기반하여 식별되고 처리 코어로 라우팅되는 WSM(1330)으로 포워딩된다. 프록시 리턴 경로에서와 같이, 패킷은 WSM(1330)에 의해, WFM-대-GnFM 이더 타입을 사용하여, 액세스 네트워크(1315) 및 패킷-발생 UE로 다시 GTP-U 터널링되기 전 그 (Src+Dst)Addr을 사용하여 식별되는 IOM(1326A)로 다시 GTP-U 터널링된다.
도 20은 위에서 설명된 바와 같은 프록시 서비스를 수반하는 일부 실시예들에 따른 흐름도를 예시한다. 단계 2002에서, MCC(1416)는 MME(1406)로부터 사용자 장치에 대한 세션을 생성하기 위한 요청을 수신한다. 요청은 MCC(1416)가 추후에 사용자 장치(지정된 "TEID_D")로 향하는 다운스트림 트래픽에 사용할 TEID을 포함한다. 단계 2004에서, MCC(1416)는 eNodeB(1404)/MME(1406)가 사용자 장치(지정된 "TEID_U")와 연관된 업스트림 트래픽에 사용될 신규 세션과 연관되는 TEID를 생성한다. MCC(1416)는 또한 신규 세션과 연관되는 세션 ID를 생성한다. 일부 실시예들에서, TEID_U와 세션 ID는 공통 값을 공유한다. 예를 들어, TEID_U의 처음 24 비트는 세션 ID의 처음 24 비트와 일치할 수 있다. 일단 TEID_U와 세션 ID가 생성되면, MCC(1416)는 새로 생성된 TEID_U가 새로 생성된 세션 ID에 대응한다는 것을 MCC(1416) 내 모든 IOM들에 통지한다. 일부 실시예들에서, 개별 IOM들은 테이블에서 이 정보의 기록을 유지할 수 있다.
단계 2006에서, MCC(1416)는 eNodeB(1404)로부터 업스트림 데이터 패킷을 수신한다. 업스트림 데이터 패킷은 이전에 수립된 TEID_U를 포함한다. 단계 2010에서, MCC(1416)는 TEID_U에 대응하는 세션 ID를 식별한다. 일부 실시예들에서, IOM는 테이블의 인덱스로 TEID_U를 사용하여 세션 ID를 식별한다. IOM은 그런 다음 업스트림 데이터 패킷을 처리하기 위한 세션 ID에 기반하여 워크플로우 서비스 모듈("WSM")을 선택하고, 선택된 WSM으로 업스트림 데이터 패킷을 라우팅할 것이다. WSM은 세션 ID에 기반하여 특정 패킷 핸들러 코어("PHC")를 선택한다. 일부 실시예들에서, 해싱 알고리즘은 세션 ID에 기반하여 PHC로 업스트림 데이터 패킷을 배분하는데 사용된다.
MCC(1416)는 업스트림 데이터 패킷이 프록시 서비스를 필요로 하는지를 결정한다. 예를 들어, 업스트림 데이터 패킷은 특정 비디오 인코딩, 캐싱된 콘텐트로의 액세스, SMPT 및 다른 프록시 서비스를 필요로 할 수 있다. 프록시 모듈은 이 데이터의 처리를 향상시키는데 사용될 수 있다. MCC(1416)는 그런 당므 기존 IP 콜을 종료하고, 예를 들어 외부 패킷 데이터 네트워크와 통신하기 위한 신규 루프백 IP 어드레스를 생성할 수 있다. 루프백 IP 어드레스는 사용자 장치와 관련된 송신 트래픽의 경우 소스 어드레스로 사용될 것이고, 사용자 장치와 관련된 들어오는 트래픽의 경우 목적지 어드레스로 사용될 것이다. MCC(1416)는 그런 다음 선택된 패킷 핸들러 코어에 해당하는 식별자에 루프백 IP 어드레스를 매핑하고, 선택적으로 네트워크 어드레스 변환 테이블("NAT")에 이 상관성을 저장할 수 있다.
단계(2012)에서, 업스트림 데이터 매핑은 소스 ip 어드레스로 루프백 IP 어드레스를 사용하여 인터넷(1422)으로 전송된다. 단계 2014에서, 다운스트림 데이터 패킷은 목적지 어드레스로 루프백 IP 어드레스와 함께 수신된다. 단계 2016에서, MCC(1416)는 루프백 IP 어드레스에 기반하여 프록시 서비스 모듈로 다운스트림 데이터 패킷을 라우팅한다. MCC(1416)는 루프백 IP 어드레스에 기반하여 선택된 패킷 핸들러 코어에 다운스트림 데이터 패킷을 매핑하기 위해 NAT에 저장된 상관성을 사용한다. 단계 2018에서, 다운스트림 데이터 패킷은 TEID_D를 사용하여 eNodeB(1404)로 다시 라우팅된다.
본 명세서에서 설명된 기술 및 시스템은 네트워크, 컴퓨터 시스템 토는 컴퓨터화 된 전자 장치와 함께 사용하기 위한 컴퓨터 프로그램 제품으로 구현될 수 있다. 이러한 구현예들은 컴퓨터 판독 가능한 매체(예를 들어, 디스켓, CD-ROM, ROM, 플래시 메모리 또는 다른 메모리 또는 고정 디스크)와 같은 유형의 매체 상에 고정되거나, 매체를 통해 네트워크에 연결되는 통신 어댑터와 같은 모뎀 또는 다른 인터페이스 장치를 통해 네트워크, 컴퓨터 시스템 또는 장치에 전송 가능한 일련의 컴퓨터 명령 또는 로직 등을 포함할 수 있다.
매체는 유형 매체 (예를 들어, 광 또는 아날로그 통신 라인) 또는 무선 기술(예를 들어, Wi-Fi, 셀룰러, 마이크로파, 적외선 또는 다른 전송 기술)로 구현매체 일 수 있다. 일련의 컴퓨터 명령어는 본 명세서에서 시스템과 관련하여 기술된 기능의 적어도 일부를 구현한다. 당업자는 그러한 컴퓨터 명령어가 많은 컴퓨터 아키텍처 또는 운영 시스템과 함께 사용하기 위한 복수의 프로그래밍 언어로 작성될 수 있다는 것을 이해할 것이다.
또한, 이러한 명령은 반도체, 자기, 광학 또는 다른 메모리 장치와 같은 임의의 유형의 메모리 장치에 저장될 수 있으며, 광학, 적외선, 마이크로파 또는 다른 전송 기술과 같은 임의의 통신 기술을 사용하여 전송될 수 있다.
이러한 컴퓨터 프로그램 제품은 인쇄물 또는 전자 문서 (예를 들어, 축소 포장된 소프트웨어), 컴퓨터 시스템 (예를 들어, 시스템 ROM 또는 고정 디스크)을 미리 로드하거나 이동식 디스크로 배포할 수 있는 이동식 매체로 배포할 수 있습니다. 서버 또는 전자 게시판 (예를 들어, 인터넷 또는 월드 와이드 웹)을 통해 전송할 수 있습니다. 물론, 본 발명의 일부 실시 예들은 소프트웨어 (예를 들어, 컴퓨터 프로그램 제품) 및 하드웨어의 조합으로 구현될 수 있다. 본 발명의 또 다른 실시예들은 전부 하드웨어, 또는 전부 소프트웨어 (예를 들어, 컴퓨터 프로그램 제품)로 구현된다.
상술한 설명에서, 특정 단계 또는 프로세스는 특정 서버상에서 또는 특정 엔진의 일부로서 수행될 수 있다. 이러한 설명은 서버 시스템 및/또는 모바일 장치를 포함하지만 이에 제한되지 않는 다양한 하드웨어 장치에서 특정 단계가 수행될 수 있기 때문에 단지 예시적인 것이다. 유사하게, 특정 단계가 수행되는 부분의 구분은 다양 할 수 있으며, 분할 또는 상이한 분할이 본 발명의 범위 내에 있음을 이해할 수 있다. 또한, 컴퓨터 시스템 처리를 설명하는데 사용되는 "모듈" 및/또는 다른 용어의 사용은 상호 교환 가능하고 기능이 실행될 수 있는 논리 또는 회로를 나타내기 위한 것이다.

Claims (28)

  1. 통신 시스템에서 패킷을 패킷 핸들러 코어로 전송하는 컴퓨팅 시스템에 있어서,
    프로세서; 및
    상기 프로세서에 연결되며, 컴퓨터-판독 가능한 인스트럭션들을 포함하는 메모리를 포함하며, 상기 메모리는, 상기 프로세서에 의해 수행 시, 상기 프로세서가,
    세션을 생성하기 위한 요청을 수신하되, 상기 요청은 가입자에 대응하고,
    다운스트림 식별자와 업스트림 식별자를 상기 세션에 할당하고,
    상기 다운스트림 식별자와 상기 업스트림 식별자를 세션 식별자에 연관시키되, 상기 세션 식별자는 상기 세션을 고유하게 식별하고,
    상기 다운스트림 식별자 또는 상기 업스트림 식별자를 포함하는 데이터 패킷을 수신하고,
    상기 다운스트림 식별자 또는 상기 업스트림 식별자에 기반하여 상기 데이터 패킷과 연관된 상기 세션 식별자를 식별하고,
    상기 세션 식별자에 기반하여 상기 데이터 패킷을 패킷 핸들러 코어로 라우팅하도록 하는 인스트럭션들을 포함하는 컴퓨팅 시스템.
  2. 제1항에 있어서, 상기 업스트림 식별자는 터널 종단 식별자("TEID") 또는 암호화 키를 포함하는 컴퓨팅 시스템.
  3. 제2항에 있어서, 상기 프로세서가 상기 암호화 키를 사용하여 상기 데이터 패킷을 암호화하거나 복호화 하도록 하는 컴퓨팅 시스템.
  4. 제1항에 있어서, 상기 다운스트림 식별자는 사용자 장치("UE") 인터넷 프로토콜("IP") 어드레스 또는 TEID 중 하나를 포함하는 컴퓨팅 시스템.
  5. 제1항에 있어서, 업스트림 식별자와 다운스트림 식별자는 공통 값을 공유하는 컴퓨팅 시스템.
  6. 제5항에 있어서, 상기 공통 값은 상기 업스트림 식별자와 다운스트림 식별자의 처음 24-비트 부분을 포함하는 컴퓨팅 시스템.
  7. 제1항에 있어서, 상기 프로세서가 상기 패킷 핸들러 코어를 결정하기 위해 상기 세션 식별자에 해싱 알고리즘을 적용하도록 하는 컴퓨팅 시스템.
  8. 제1항에 있어서, 상기 프로세서가,
    상기 데이터 패킷에 대한 프록시 서비스를 식별하고,
    상기 데이터 패킷을 프록시 서비스 모듈로 라우팅하고,
    상기 패킷 핸들러 코어에 대한 식별자와 상기 세션 식별자를 상관시키도록 하는 컴퓨팅 시스템.
  9. 제8항에 있어서, 상기 프로세서가, 상기 패킷 핸들러 코어에 대한 상기 식별자에 기반하여 상기 데이터 패킷을 상기 패킷 핸들러 코어로 라우팅하도록 하는 컴퓨팅 시스템.
  10. 통신 시스템에서 패킷을 패킷 핸들러 코어로 전송하는 방법에 있어서,
    컴퓨팅 장치에 의해, 세션을 생성하기 위한 요청을 수신하는 단계로서, 상기 요청은 가입자에 대응하는 단계;
    상기 컴퓨팅 장치에 의해, 다운스트림 식별자와 업스트림 식별자를 상기 세션에 할당하는 단계;
    상기 다운스트림 식별자와 상기 업스트림 식별자를 세션 식별자에 연관시키는 단계로서, 상기 세션 식별자는 상기 세션을 고유하게 식별하는 단계;
    상기 컴퓨팅 장치에 의해, 상기 다운스트림 식별자 또는 상기 업스트림 식별자를 포함하는 데이터 패킷을 수신하는 단계;
    상기 컴퓨팅 장치에 의해, 상기 다운스트림 식별자 또는 상기 업스트림 식별자에 기반하여 상기 데이터 패킷과 연관된 상기 세션 식별자를 식별하는 단계; 및
    상기 컴퓨팅 장치에 의해, 상기 세션 식별자에 기반하여 상기 데이터 패킷을 패킷 핸들러 코어로 라우팅하는 단계를 포함하는 방법.
  11. 제10항에 있어서, 상기 업스트림 식별자는 터널 종단 식별자("TEID") 또는 암호화 키를 포함하는 컴퓨팅 시스템.
  12. 제11항에 있어서, 상기 프로세서가 상기 암호화 키를 사용하여 상기 데이터 패킷을 암호화하거나 복호화 하도록 하는 컴퓨팅 시스템.
  13. 제10항에 있어서, 상기 다운스트림 식별자는 사용자 장치("UE") 인터넷 프로토콜("IP") 어드레스 또는 TEID 중 하나를 포함하는 컴퓨팅 시스템.
  14. 제10항에 있어서, 업스트림 식별자와 다운스트림 식별자는 공통 값을 공유하는 컴퓨팅 시스템.
  15. 제14항에 있어서, 상기 공통 값은 상기 업스트림 식별자와 다운스트림 식별자의 처음 24-비트 부분을 포함하는 컴퓨팅 시스템.
  16. 제10항에 있어서, 상기 프로세서가 상기 패킷 핸들러 코어를 결정하기 위해 상기 세션 식별자에 해싱 알고리즘을 적용하도록 하는 컴퓨팅 시스템.
  17. 제10항에 있어서, 상기 프로세서가,
    상기 데이터 패킷에 대한 프록시 서비스를 식별하고,
    상기 데이터 패킷을 프록시 서비스 모듈로 라우팅하고,
    상기 패킷 핸들러 코어에 대한 식별자와 상기 세션 식별자를 상관시키도록 하는 컴퓨팅 시스템.
  18. 제17항에 있어서, 상기 프로세서가, 상기 패킷 핸들러 코어에 대한 상기 식별자에 기반하여 상기 데이터 패킷을 상기 패킷 핸들러 코어로 라우팅하도록 하는 컴퓨팅 시스템.
  19. 통신 시스템에서 패킷을 패킷 핸들러 코어로 전송하는 컴퓨팅 시스템에 있어서,
    프로세서; 및
    상기 프로세서에 연결되며, 컴퓨터-판독 가능한 인스트럭션들을 포함하는 메모리를 포함하며, 상기 메모리는, 상기 프로세서에 의해 수행 시, 상기 프로세서가,
    세션을 생성하기 위한 요청을 수신하되, 상기 요청은 가입자에 대응하고,
    다운스트림 식별자와 업스트림 식별자를 상기 세션에 할당하고,
    상기 다운스트림 식별자와 상기 업스트림 식별자를 세션 식별자에 연관시키되, 상기 세션 식별자는 상기 세션을 고유하게 식별하고,
    상기 다운스트림 식별자 또는 상기 업스트림 식별자를 포함하는 데이터 패킷을 수신하고,
    상기 데이터 패킷은 프록시 서비스를 필요로 하는 것으로 결정하고,
    상기 데이터 패킷이 상기 다운스트림 식별자 또는 상기 업스트림 식별자를 포함하는지를 판단하고,
    상기 데이터 패킷이 상기 업스트림 식별자를 포함하는 경우, 상기 업스트림 식별자에 기반하여 상기 데이터 패킷과 연관된 상기 세션 식별자를 식별하고, 상기 세션 식별자에 기반하여 상기 데이터 패킷을 패킷 핸들러 코어로 라우팅하고,
    상기 데이터 패킷이 상기 다운스트림 식별자를 포함하는 경우, 상기 다운스트림 식별자에 기반하여 상기 데이터 패킷을 상기 패킷 핸들러 코어로 라우팅하도록 하는 인스트럭션들을 포함하는 컴퓨팅 시스템.
  20. 제19항에 있어서, 상기 다운스트림 식별자는 UE 루프백 IP 어드레스를 포함하는 컴퓨팅 시스템.
  21. 제19항에 있어서, 상기 업스트림 식별자는 TEID를 포함하는 컴퓨팅 시스템.
  22. 제19항에 있어서, 시스템-시작 프록시 트래픽은 분할된 다중 프로토콜 레이블 스위칭("MPLS") 레이블 공간을 사용하여 다운스트림 가입자 트래픽과 구별되는 컴퓨팅 시스템.
  23. 제22항에 있어서, 상기 MPLS 레이블 공간은 UE 풀 어드레스 도메인과 프록시 루프백 어드레스 도메인으로 분리되는 컴퓨팅 시스템.
  24. 통신 시스템에서 패킷을 패킷 핸들러 코어로 전송하는 방법에 있어서,
    컴퓨팅 장치에 의해, 세션을 생성하기 위한 요청을 수신하는 단계로서, 상기 요청은 가입자에 대응하는 단계;
    상기 컴퓨팅 장치에 의해, 다운스트림 식별자와 업스트림 식별자를 상기 세션에 할당하는 단계;
    상기 다운스트림 식별자와 상기 업스트림 식별자를 세션 식별자에 연관시키는 단계로서, 상기 세션 식별자는 상기 세션을 고유하게 식별하는 단계;
    상기 컴퓨팅 장치에 의해, 상기 다운스트림 식별자 또는 상기 업스트림 식별자를 포함하는 데이터 패킷을 수신하는 단계;
    상기 컴퓨팅 장치에 의해, 상기 데이터 패킷은 프록시 서비스를 필요로 하는 것으로 결정하는 단계;
    상기 컴퓨팅 장치에 의해, 상기 데이터 패킷이 상기 다운스트림 식별자 또는 상기 업스트림 식별자를 포함하는지를 판단하는 단계; 및
    상기 데이터 패킷이 상기 업스트림 식별자를 포함하는 경우, 상기 업스트림 식별자에 기반하여 상기 데이터 패킷과 연관된 상기 세션 식별자를 식별하고, 상기 세션 식별자에 기반하여 상기 데이터 패킷을 패킷 핸들러 코어로 라우팅하고,
    상기 데이터 패킷이 상기 다운스트림 식별자를 포함하는 경우, 상기 다운스트림 식별자에 기반하여 상기 데이터 패킷을 상기 패킷 핸들러 코어로 라우팅하도록 하는 방법.
  25. 제24항에 있어서, 상기 다운스트림 식별자는 UE 루프백 IP 어드레스를 포함하는 방법.
  26. 제24항에 있어서, 상기 업스트림 식별자는 TEID를 포함하는 방법.
  27. 제24항에 있어서, 시스템-시작 프록시 트래픽은 분할된 다중 프로토콜 레이블 스위칭("MPLS") 레이블 공간을 사용하여 다운스트림 가입자 트래픽과 구별되는 방법.
  28. 제27항에 있어서, 상기 MPLS 레이블 공간은 UE 풀 어드레스 도메인과 프록시 루프백 어드레스 도메인으로 분리되는 방법.
KR1020197024249A 2017-01-25 2018-01-25 가상 머신 플랫폼 상의 다중 패킷 처리 코어를 통한 무선 가입자 패킷 처리의 로드 밸런싱 KR102455902B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762450162P 2017-01-25 2017-01-25
US62/450,162 2017-01-25
PCT/US2018/015276 WO2018140621A1 (en) 2017-01-25 2018-01-25 Load balancing of wireless subscriber packet processing over multiple packet processing cores

Publications (2)

Publication Number Publication Date
KR20190107709A true KR20190107709A (ko) 2019-09-20
KR102455902B1 KR102455902B1 (ko) 2022-10-17

Family

ID=61231311

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197024249A KR102455902B1 (ko) 2017-01-25 2018-01-25 가상 머신 플랫폼 상의 다중 패킷 처리 코어를 통한 무선 가입자 패킷 처리의 로드 밸런싱

Country Status (6)

Country Link
US (1) US10321360B2 (ko)
EP (1) EP3574629B1 (ko)
JP (1) JP7100061B2 (ko)
KR (1) KR102455902B1 (ko)
CN (1) CN110383792B (ko)
WO (1) WO2018140621A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109787912A (zh) * 2019-03-04 2019-05-21 南京邮电大学 一种dpdk环境下基于nat的负载均衡方法
US11444877B2 (en) * 2019-03-18 2022-09-13 At&T Intellectual Property I, L.P. Packet flow identification with reduced decode operations
CN109995672B (zh) * 2019-03-22 2022-03-25 烽火通信科技股份有限公司 基于dpdk的虚拟家庭网关带宽调度控制方法及系统
KR20200112439A (ko) * 2019-03-22 2020-10-05 삼성전자주식회사 멀티 코어를 포함하는 전자 장치 및 이의 패킷 처리를 위한 방법
GB2592315B (en) * 2019-04-04 2023-07-19 Pismo Labs Technology Ltd Methods and systems for sending packets through a plurality of tunnels
US11425043B2 (en) * 2020-06-16 2022-08-23 T-Mobile Usa, Inc. Duplex load balancing for massive IoT applications
US20220394017A1 (en) * 2021-06-07 2022-12-08 Vmware, Inc. Ipsec processing on multi-core systems

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110320608A1 (en) * 2010-06-29 2011-12-29 Sathyender Nelakonda Method and apparatus for allocating bundles of sessions in a network element

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7003574B1 (en) * 2000-11-01 2006-02-21 Microsoft Corporation Session load balancing and use of VIP as source address for inter-cluster traffic through the use of a session identifier
US8079077B2 (en) * 2006-08-08 2011-12-13 A10 Networks, Inc. System and method for distributed multi-processing security gateway
US8135850B2 (en) * 2008-11-25 2012-03-13 Citrix Systems, Inc. Systems and methods for load balancing real time streaming
EP2843885A1 (en) * 2013-08-29 2015-03-04 NTT DoCoMo, Inc. Apparatus and method for implementing a packet gateway user plane
CN105981345B (zh) * 2013-09-27 2019-06-18 瑞典爱立信有限公司 Wi-fi/分组核心网接入的合法侦听
US9854051B2 (en) * 2014-04-25 2017-12-26 Wilmerding Communications Llc Using proxy devices as dynamic data relays

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110320608A1 (en) * 2010-06-29 2011-12-29 Sathyender Nelakonda Method and apparatus for allocating bundles of sessions in a network element

Also Published As

Publication number Publication date
WO2018140621A1 (en) 2018-08-02
US20180213440A1 (en) 2018-07-26
EP3574629A1 (en) 2019-12-04
EP3574629B1 (en) 2022-12-21
JP2020507289A (ja) 2020-03-05
KR102455902B1 (ko) 2022-10-17
US10321360B2 (en) 2019-06-11
CN110383792B (zh) 2022-05-24
CN110383792A (zh) 2019-10-25
JP7100061B2 (ja) 2022-07-12

Similar Documents

Publication Publication Date Title
KR102455902B1 (ko) 가상 머신 플랫폼 상의 다중 패킷 처리 코어를 통한 무선 가입자 패킷 처리의 로드 밸런싱
US11765686B2 (en) Packet transmission method and apparatus for communicating between terminals of a same 5G LAN group
CN108886825B (zh) 分布式软件定义无线分组核心系统
US10237230B2 (en) Method and system for inspecting network traffic between end points of a zone
CA2847103C (en) Implementing a 3g packet core in a cloud computer with openflow data and control planes
US10798638B2 (en) Apparatus and method for controller and slice-based security gateway for 5G
US20220209993A1 (en) CLOUD SCALE MULTI-TENANCY FOR RDMA OVER CONVERGED ETHERNET (RoCE)
KR100894074B1 (ko) 패킷 데이터 네트워크에서 액세스 베어러 관련 정보를제공하는 방법 및 시스템
US20130305344A1 (en) Enterprise network services over distributed clouds
WO2021073565A1 (zh) 业务服务提供方法及系统
CN104412621B (zh) 方法和设备
US20220239629A1 (en) Business service providing method and system, and remote acceleration gateway
CN114651477A (zh) 用于用户面处理的系统和方法
US20180176264A1 (en) Apparatus and method for lawful interception
WO2016180020A1 (zh) 一种报文处理方法、设备和系统
US11323410B2 (en) Method and system for secure distribution of mobile data traffic to closer network endpoints
CN116488958A (zh) 网关处理方法、虚拟接入网关、虚拟业务网关及相关设备
CN113973045B (zh) 一种报文传输方法及装置
WO2022146466A1 (en) Class-based queueing for scalable multi-tenant rdma traffic
WO2022103172A1 (ko) 통신 시스템에서 소프트웨어-정의 광역 네트워크를 구성하는 방법 및 장치
WO2017084688A1 (en) Technique for enhanced routing of data packets
WO2022262951A1 (en) Coordination of segmented service chains
EP4272083A1 (en) Class-based queueing for scalable multi-tenant rdma traffic
JP2015041970A (ja) 通信システム、通信方法、および、通信プログラム

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant