KR20150035519A - 네트워크 경로를 프로비저닝하는 변환된 세션 정보 - Google Patents

네트워크 경로를 프로비저닝하는 변환된 세션 정보 Download PDF

Info

Publication number
KR20150035519A
KR20150035519A KR1020147030626A KR20147030626A KR20150035519A KR 20150035519 A KR20150035519 A KR 20150035519A KR 1020147030626 A KR1020147030626 A KR 1020147030626A KR 20147030626 A KR20147030626 A KR 20147030626A KR 20150035519 A KR20150035519 A KR 20150035519A
Authority
KR
South Korea
Prior art keywords
session
network
server
session information
controller
Prior art date
Application number
KR1020147030626A
Other languages
English (en)
Other versions
KR101979058B1 (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 KR20150035519A publication Critical patent/KR20150035519A/ko
Application granted granted Critical
Publication of KR101979058B1 publication Critical patent/KR101979058B1/ko

Links

Images

Classifications

    • 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/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • H04L41/122Discovery or management of network topologies of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/087Jitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

시스템 및 방법은 서버와 연관된 세션에 대응하는 세션 정보를 수신하고, 세션 정보를 토폴로지 파라미터 및 데이터 파라미터를 포함하는 변환된 세션 정보로 변환한다. 변환된 세션 정보는 컨트롤러에게 변환된 세션 정보에 따라 네트워크 경로를 프로비저닝할 것을 명령할 것이다. 네트워크 경로는 토폴로지 파라미터 및 데이터 파라미터와 부합할 것이다.

Description

네트워크 경로를 프로비저닝하는 변환된 세션 정보{TRANSLATED SESSION INFORMATION TO PROVISION A NETWORK PATH}
네트워크 자원은 다양한 형태의 트래픽을 처리하기 위해 할당될 수 있다. 그러나, 특정 네트워크 트래픽 부하를 처리하기 위해 네트워크를 프로비저닝하는 것은 전체적으로 네트워크가 오버프로비저닝(overprovisioning)되고/되거나 덜 이용되는(underutilized) 상태에 있게 할 수 있다. 종단간(end-to-end) QoS(Quality of Service) 메커니즘이 구성을 위해 사용될 수 있지만, 네트워크 경로 상의 네트워크 장치는 적절한 QoS 파라미터를 사용하는 수동 구성을 필요로 한다. OpenFlow 컨트롤러는 접근법을 네트워크 구성에 제공하지만, 네트워크를 사용하려 시도하는 서버/애플리케이션으로부터 구성 명령어를 수신하도록 설정되지 않는다. 따라서, 애플리케이션 및/또는 서버는 특히 네트워크가 보이스, 데이터, 비디오 등과 같은 다른 트래픽을 반송하게 될 때 차선의 네트워크 효과/상황(패킷 손실, 레이턴시, 지터 및 다른 네트워크 효과)를 계속 처리하기 위해 그 자체의 내장 네트워크 보상 메커니즘을 사용할 필요가 있을 수 있다. 그러한 네트워크 효과는 다양한 네트워크 보상 메커니즘을 개발하는 요구로 애플리케이션 개발자에게 부담을 줄 뿐만 아니라, 네트워크의 사용에 악영향을 끼치고 애플리케이션 성능 및 사용자 경험에 영향을 줄 수 있다.
도 1은 일 예에 따른 변환 엔진을 포함하는 시스템의 블록도이다.
도 2는 일 예에 따른 변환 엔진을 포함하는 시스템의 타임 시퀀스도이다.
도 3은 일 예에 따른 변환 엔진을 포함하는 시스템의 블록도이다.
도 4는 일 예에 따른 변환 엔진을 포함하는 시스템의 블록도이다.
도 5는 일 예에 따른 변환 정보에 기초한 흐름도이다.
네트워크 아키텍처 프레임워크는 서버와 연관된 세션이 세션의 상이한 단계와 연관된 네트워크 요건을 변환 엔진(Translation Engine(TE))을 통해 컨트롤러에 직접 전달할 수 있는 곳에 제공될 수 있다. 변환 엔진은 서버와 컨트롤러 사이에 추상화 계층을 제공하여, 컨트롤러에게 변환 엔진으로부터의 입력에 기초하여 세션당 및/또는 단계당 입도로 클라이언트 및/또는 서버에 의한 사용을 위해 네트워크 및/또는 네트워크 경로를 구성(예를 들어, 프로비저닝 및/또는 디프로비저닝)할 것을 명령할 수 있다. 기본 네트워크는 보이스, 비디오, 데이터, 이메일 및 다른 형태의 네트워크 트래픽과 함께 특정 서버/애플리케이션을 위한 트래픽(예를 들어, 게임 트래픽)을 반송할 수 있다. 전형적으로 네트워크는 하나의 특정 전용 사용을 위해 전체 네트워크를 프로비저닝하는 것이 비실용적일 만큼 광범위하므로, 네트워크는 패킷 손실 및 레이턴시와 같은 현저한 네트워크 효과로 표시되는 성능 병목(performance bottleneck)으로 작용할 수 있다. 본 명세서에 설명된 다양한 예시적 변환 엔진을 사용함으로써, 사용자는 네트워크가 광범위하고 다른 소스의 트래픽을 포함할 때에도 다른 요소를 네트워크를 통해 연결하는 기본 네트워크에 의해 반송되는 풍부한 몰입 경험을 즐길 수 있다.
일 예에서, 변환 엔진은 서버와 연관된 세션에 대응하는 세션 정보를 수신하고 세션 정보를 변환된 세션 정보로 변환할 것이다. 변환된 세션 정보는 토폴로지 파라미터 및 데이터 파라미터를 포함할 수 있다. 변환된 세션 정보는 컨트롤러에게 변환된 세션 정보에 따라 토폴로지 파라미터 및 데이터 파라미터와 부합하는 네트워크 경로를 프로비저닝할 것을 명령할 것이다.
도 1은 일 예에 따른 변환 엔진(102)을 포함하는 시스템(100)의 블록도이다. 변환 엔진(102)은 네트워크 경로(130)를 제공하기 위해 서버(104) 및 컨트롤러(106)와 연관될 수 있다. 변환 엔진(102)은 서버(104)와 연관된 세션(111)에 대응하는 세션 정보(110)를 수신할 수 있다. 변환 엔진(102)은 토폴로지 파라미터(122) 및 데이터 파라미터(124)를 포함하는 변환된 세션 정보(120)를 제공할 수 있다. 변환된 세션 정보(120)는 네트워크 경로(130)에 영향을 미치도록 컨트롤러(106)에 의해 사용 가능하다.
서버(104)는 클라우드 스토리지, 가상 네트워킹, 데이터 센터, 매우 다양한 데이터 사용 및 프로토콜을 갖는 애플리케이션(예를 들어, 호텔 핸들링 멀티미디어 엔터테인먼트, 전화/VOIP(voice over internet protocol) 및 다른 데이터의 인프라스트럭처), 게이밍 등과 같은 다양한 애플리케이션과 연관될 수 있다. 호텔 인프라스트럭처의 예에서, 각각의 객실은 지원하는 여러 가지 가능한 프로토콜 및 데이터 요건을 포함하는 일반 웹 브라우징 및 다른 사용뿐만 아니라 IP 전화, Skype®과 같은 대량의 데이터를 위한 인터넷 접속 및 비디오 원격 회의를 제공할 수 있다. 사용 시나리오는 오디오/비디오 회의, 라이브 스트리밍 비디오 엔터테인먼트를 시청하는 것, 및 인터넷을 브라우징하는 것 및 호텔 인프라스트럭처에 의해 지원되는 총 수의 객실/사무실/등에 걸쳐 증대되는 여러 가지 상이한 네트워크 요건을 사용하는 것을 포함할 수 있다. 상이한 네트워크 사용(예를 들어, 단계 및/또는 요건)은 동시에 발생할 수 있고, 하나 사용은 다른 사용을 중단시킬 수 있다. 보이스 채팅은 저 레이턴시를 선호할 수 있지만, 스트리밍 비디오는 분실 패킷 및 레이턴시/지터/패킷 손실를 견딜 수 있는 고 처리량을 선호할 수 있다. 시스템(100)에 의해 제공되는 이득은 서버(104)의 다양한 세션(111)과 연관될 수 있는 모든 상이한 네트워크 요건을 동시에 충족시키기 위해 이용 가능 네트워크 인프라스트럭처 및/또는 아키텍처가 네트워크 경로(130)를 제공하지 않을 수 있는 상황에 특히 유리할 수 있다.
네트워크 사용은 서버(104) 및/또는 클라이언트(도 1에 도시되지 않은)가 서버(104)와 상호 작용하는 것에 의해 적어도 하나의 세션(111)에 기초할 수 있다. 세션(111)은 단계로 구분될 수 있다. 네트워크 요건은 단계 및/또는 세션(111)에 따라 다를 수 있으며, 그 결과 제 1 네트워크 경로는 제 1 단계 및/또는 세션(111)의 요구를 만족시킬 수 있지만, 반드시 제 2 단계 및/또는 세션(111)의 요구를 만족시킬 수 있는 것은 아니다.
컨트롤러(106)는 OpenFlow 컨트롤러일 수 있다(예를 들어, OpenFlow 사양 1.0.0 또는 추가적인 개정 참조). 예시적 시스템(100)은 표준 기반 OpenFlow 프로토콜로의 임의의 확장을 필요로 하지 않으면서 OpenFlow 컨트롤러와 상호 작용할 수 있으며, 그 결과 예시적 시스템(100)은 다양한 이종 멀티 벤더 네트워크와 호환 가능할 수 있다. 서버(104), 변환 엔진(102) 및 컨트롤러(106)가 개별 장치로서 도시되지만, 2개 이상의 장치는 동일한 장치 내에 함께 배치될 수 있다. 예를 들어, 하나의 물리 장치는 하나 이상의 프로세서(예를 들어, 하나 이상의 CPU(central processing unit))에 기반하여 프로그램 가능 소프트웨어 및/또는 하드웨어 및 처리 모듈을 사용하여 기능을 제공하는 것에 기초하여 서버(104), 변환 엔진(102), 및 컨트롤러(106)의 기능을 제공할 수 있다.
변환 엔진(102)은 여러 가지 상이한 세션(111)의 세션 정보(110)를 변환된 세션 정보(120)로 변환하며, 이는 네트워크 경로(130)를 프로비저닝할 때 고려될 수 있는 네트워크 요건을 포함하는 토폴로지 파라미터(122), 데이터 파라미터(124) 및/또는 다른 정보를 포함할 수 있다. 일 예에서, 토폴로지 파라미터(122)는 연결될 네트워크 어드레스 종점, 예를 들어 서버 및 클라이언트(들)의 네트워크 어드레스와 연관된다. 데이터 파라미터(124)는 레이턴시, 데이터 처리량, 지터, 래그(lag) 등에 대한 임계값 허용오차와 같은 요청된 성능 메트릭일 수 있다. 변환 엔진(102)(서버(104) 및/또는 컨트롤러(106))은 기능을 제공하기 위해 소프트웨어 프로그램, 함수 호출, 또는 여러 가지 다른 구현으로 제공될 수 있다. 변환 엔진(102)은 변환된 세션 정보(120)를 컨트롤러(106)로 송신하는 것이다.
컨트롤러(106)는 네트워크 및 그것의 네트워크 장치(예를 들어, 그것의 라우터, 스위치 등)와 연관된 정보에 액세스할 수 있으며, 그 결과 컨트롤러(106)는 클라이언트를 서버(104)에 연결하고, 제 1 호스트(예를 들어, 서버(104))를 제 2 호스트에 연결하는 등등과 같이 변환된 세션 정보(120)에 기초하여 네트워크 장비에 경로를 연결하는 방법을 결정할 수 있다. 게다가, 변환된 세션 정보(120)는 연결을 구성하기 위한, 예를 들어 네트워크 경로(130)를 프로비저닝하기 위한(및/또는 네트워크 경로(130)를 디프로비저닝하거나 그렇지 않으면 이 경로에 영향을 미치기 위한) 적당한 및/또는 최상의 네트워크 경로를 결정하는 기회를 컨트롤러(106)에 제공한다. 컨트롤러(106)는 다양한 기술에 기초하여 네트워크 경로(130)에 영향을 미칠 수 있다. 예를 들어, OpenFlow 컨트롤러(106)에 기반하여, 컨트롤러(106)는 컨트롤러(106)에 의해 그 네트워크 장치에 송신되는 규칙에 기초하여 그러한 장치를 네트워크 경로의 부분에 구성하기 위해 주어진 네트워크 장치를 프로그램할 수 있다. 따라서, 컨트롤러(106)는 변환 엔진(102)에 의해 제공되는 변환된 세션 정보(120)에 기초하여 네트워크 장치와 연관된 데이터 평면에 영향을 미칠 수 있다.
세션 정보(110)는 시간에 따라 변할 수 있다. 예를 들어, 세션(111)은 세션 정보(110)가 각각의 단계와 연관된 상태에서 다수의 단계와 연관될 수 있다. 따라서, 세션 정보(110)는 상이한 단계 및/또는 세션(111)에 대해 변할 수 있고, 상이한 정보(예를 들어, 주어진 네트워크 경로(130)에 대한 데이터 요건)는 변환 엔진(102)에 전달될 수 있다. 변환 엔진(102)은 컨트롤러(106)에 의해 사용 가능하게 될 세션 정보(110)를 변환하고/하거나 포맷할 수 있으며, 그 결과 컨트롤러(106)는 변환된 세션 정보(120)을 구현하는 방법을 (예를 들어, 네트워크 경로(130)를 프로비저닝하거나, 갱신하거나, 디프로비저닝하거나, 그렇지 않으면 영향을 미치는 것에 기초하여) 결정할 수 있다. 세션 정보(110)가 변함에 따라, 변환 엔진(102)은 컨트롤러(106)가 변환된 세션 정보(120)와 연관된 네트워크 경로(130)의 구현을 (적절하면) 변화시킬 수 있도록 변환된 세션 정보(120)를 제공한다. 세션 정보(110)는 예를 들어 세션(111)이 세션(111)과 연관된 상이한 단계 사이에서 변함에 따라 변화될 수 있어, 서버(104)가 변환 엔진(102)을 통해 컨트롤러(106)와 통신할 수 있게 하며, 그 결과 컨트롤러(106)는 네트워크 유용성을 개선하는 결정을 내릴 수 있다.
그 때문에, 변환 엔진(102)은 네트워크 요건이 서버 애플리케이션 요구로부터 분리되어 처리될 수 있게 하며, 그 결과 서버 애플리케이션은 네트워크 효과 또는 다른 타협을 보상할 필요가 없다. 변환 엔진(102)은 API(application programming interface)로서 서버(104)에 의한 (예를 들어, 서버(104)와 연관된 애플리케이션에 의한) 네트워크의 사용을 가능하게 하며, 그 결과 소프트웨어 구성요소는 컨트롤러(106)와 용이하게 통신할 수 있다. 시스템(100)이 표준에 기초할 수 있으므로, 독점 확장 또는 기술을 사용하는 소프트웨어 구성요소에 대한 요구가 없다. 예를 들어, 시스템(100)은 OpenFlow 컨트롤러(106)를 사용할 수 있고 네트워크(네트워크 경로(130)를 포함하는)는 OpenFlow 에이전트와 호환 가능하고 그것에 의해 프로그램 가능한 네트워크 장치(라우터, 스위치 등)에 기초할 수 있다. 따라서, 시스템(100)(변환 엔진(102)을 포함하는)은 그러한 표준과 호환 가능한 기존 네트워크 인프라스트럭처 상에 전개될 수 있다. 이것은 다양한 네트워크 효과를 처리하기 위해 이러한 프로그램/애플리케이션에 내장된 네트워크 보상 기술에 집중할 필요 없이 애플리케이션 개발자가 프로그램 및 애플리케이션 로직을 기록하는 그의 핵심 능력에 집중하는 것을 허용한다.
주어진 네트워크 경로(130)는 네트워크의 분산 특성에 기초할 수 있다. 스위치/라우터/등과 같은 각각의 네트워크 장치는 그 네트워크 장치와 연관된 데이터 평면 및 그것의 네트워크 트래픽의 핸들링을 구현하기 위해 그 자체의 제어 로직을 실행할 수 있다. 분산 특성은 단 대 단 경로를 용이하게 프로비저닝하기 위해 전체 네크워크에 하나의 관점이 있을 수 있다는 아이디어에 역행할 수 있다. 따라서, 분산 네트워크 및 그것의 프로토콜은 원하는 네트워크 경로(130)의 관점에서 각각의 네트워크 장치에 맞추어진 구성 정보 및 변환된 세션 정보(120)(또는 네트워크 경로(130)에 대한 다른 네트워트 요건)를 제공하는 것으로부터 이익을 얻을 수 있다. 주어진 구성이 네트워크 장치에 적용될 수 있는지에 관계없이, 각각의 네트워크 장치를 프로비저닝하고 테스팅하는 것에 대한 요구는 전체 네트워크를 구성하는 방법에 관한 전체 관점을 제공하지 않을 수도 있는 네트워크의 분산 특성의 문제를 제공한다. 변환 엔진(102)을 포함하는 시스템(100)은 각각의 서버(104)의 각각의 세션의 각각의 단계에 대해 각각의 네트워크 장치를 수동으로 구성할(예를 들어, CLI(command-line interface)를 사용하여 QoS(Quality of Service) 요건을 구성할) 필요의 비실용성을 회피할 수 있다. 따라서, 시스템(100)은 각각의 네트워크 장치를 수동으로 구성하는 것에 대한 요구의 단점 없이 단계/세션/서버 단위로 수동으로 맞추어진 네트워크 경로(130)의 이익을 가능하게 할 수 있다. 따라서, 시스템(100)은 수동 구성과 연관된 제한을 스케일링함으로써 부여되는 장애물을 극복할 수 있다. 예를 들어, 어느 클라이언트가 어느 서버/세션/단계와 연관되는지를 식별하고 유지하는 동안, 다수의 단계를 갖는 다수의 세션으로 다수의 서버를 수동으로 구성하는 것은 압도적으로 복잡할 수 있으며, 그 결과 장치당 QoS 파라미터를 구현하는 수동 CLI 프로그래밍을 사용하여 스케일링하는 것은 실질적으로 불가능할 것이다. 시스템(100)의 예는 예를 들어 다양한 세션(111)을 지원하는 네트워크 장치를 프로그램하기 위해 각각의 네트워크 장치(스위치/라우터/컨트롤러/노드 등)에 "통신하는(talk)" 방법에 관한 상세의 지식을 갖는 서버(104)와 연관된 각각의 애플리케이션/프로그램을 프로그램할 필요를 회피하는 변환 엔진(102)에 기초하는 데이터 추상화를 제공함으로써 그러한 스케일링 제한을 회피할 수 있다.
다른 장점은 애플리케이션, 네트워크 장치, 클라이언트 등에 관한 지능(intelligence)이 시스템(100)의 서버 측 상에 있다는 것이다. 서버(104)는 어떤 정보가 네트워크를 통해 클라이언트와 교환되는 데 요구되는 것에 관한 서버가 갖는 가시성으로 인해 애플리케이션과 연관된 정보 및 네트워크로부터 요구되는 것을 캡처하는 최상의 위치일 수 있다. 따라서, 시스템(100)은 서버 측 상에서 정보를 변화시키는 것에 기초하여 변화(예를 들어, 하나의 애플리케이션으로부터 다른 애플리케이션으로의 변화)될 수 있다. 따라서, 시스템(100)은 클라이언트 측을 변화시킬 필요가 없으며, 예를 들어 변화가 이루어질 때 패치를 각각의 클라이언트/네트워크 장치/등에 푸시 할 필요가 없다. 변화는 클라이언트가 변화에 응답하는 것의 네트워크 측 상의 클라이언트/서버 사이의 메시지를 업그레이드하거나 교환하는 것을 필요로 하는 것과 같이 클라이언트에 부담을 주지 않으면서 이루어질 수 있어서, 전체 효율을 개선한다.
게임의 예에서, 서버(104)는 다수의 단계를 포함할 수 있는 게임 세션(111)을 갖는 게임 애플리케이션과 연관될 수 있다. 상이한 단계는 네트워크 인식 서버/애플리케이션과 같은 게임 서버에 알려져 있을 수 있다. 단계는 상이한 세트의 네트워크 요건과 연관될 수 있고, 설정 단계, 동기 단계, 플레이 단계, 및/또는 전이 단계를 포함할 수 있다. 단계는 변환 엔진(102)에 전달될 수 있고, 변환 엔진(102)은 단계를 하나 이상의 네트워크 파라미터 및/또는 요건으로 변환시킬 수 있다. 다수의 클라이언트/사용자는 게임을 하려는 의도로 세션(111)에 참여하여, 설정 단계 동안 클라이언트의 리스트를 형성할 수 있다. 플레이어는 설정 단계 동안 플레이할 맵을 선택하고, 팀을 참여/형성하고/하거나, 무기 등과 같은 게임 옵션을 선택할 수 있다. 설정 단계는 설정을 위한 강화된 처리량 요건과 연관될 수 있다. 동기 단계는 다양한 플레이어/클라이언트 및 게임 서버(104) 사이에서 게임 상태 및 다양한 게임 파라미터를 동기화하기 위해 설정 단계 후에 및 플레이 단계 전에 발생할 수 있다. 동기 단계는 게임 세션(111)에 참여하기 위해 서명된 클라이언트의 수에 따라 증가하는 것이 가능한 높은 데이터 처리량과 연관될 수 있다. 예를 들어, 모든 플레이어가 네비게이트/플레이할 커스텀 맵의 교환, 또는 플레이어/클라이언트 사이에서 서버(104)로부터 송신되는 플레이어/클라이언트의 특정 팀의 선택을 고려한다. 따라서, 동기 단계에 대해, 변환 엔진(102)은 높은 데이터 처리량을 지원할 수 있는 네트워크 경로(130)에 대한 요구를 표시하는 데이터 파라미터(124)를 포함하는 변환된 세션 정보(120)를 제공할 수 있다. 동기 단계 변환된 세션 정보(120)는 레이턴시와 같은 다른 고려 사항이 그 단계에 대한 우선권이 아닌 것을 표시할 수 있다. 플레이 단계에서, 게이머는 게임을 플레이한다. 동기 단계와 대조적으로, 플레이 단계는 게임의 과정 동안에 서로 상호 작용하는 몇몇의 사용자/클라이언트와 연관될 수 있다. 플레이 단계 동안, 저 레이턴시가 데이터 처리량에 우선하여 주어질 수 있으며, 그 결과 사용자는 그의 게임 성능에 악영향을 미치는 지터/레이턴시/래그와 같은 네트워크 효과의 영향을 느끼지 못한다. 따라서, 플레이 단계와 연관된 데이터 파라미터(124)는 그러한 데이터 요건을 적절히 표시할 수 있다. 전이 단계 동안의 게임 후에, 모든 통계는 공유되고 세션은 지속될 수 있거나 해체를 겪을 수 있다. 전이 단계는 종결 단계, 기존 세션에 가입하고/하거나 떠나는 단계, 및/또는 용어 '전이 단계' 내에 포함되는 여러 가지 다양한 단계를 나타낼 수 있다. 전이 단계 동안 네트워크 요건은 정상 처리량/레이턴시일 수 있다. 전이는 종결을 야기할 수 있거나 종결을 초래하지 않을 수 있다. 게임 상황에서의 전이는 게임 세션이 게임의 순간에 유지되도록 세션이 다시 플레이되는 것일 수 있다. 세션은 적어도 하나의 플레이어가 중지하거나 더 이상 플레이하지 않을 때와 같은, 전이 단계에 기초하여 종결될 수 있다. 그러한 전이는 현재 게임을 완료한 후에 발생할 수 있다. 전이는 종결을 초래할 수 있거나 종결을 초래하지 않을 수 있다. 종결은 이전에 프로비전된 네트워크 자원을 필요로 하지 않는 것과 연관될 수 있어, 네트워크 경로(130)에 프로비전되었던 자원의 포기를 가능하게 한다.
세션(111)과 연관된 단계, 및/또는 세션(111)은 다양한 고려 사항에 기초하여 변할 수 있다. 이벤트는 하나의 단계/세션의 종료 및 상이한 단계/세션의 시작을 트리거할 수 있다. 그러나, 동일한 이벤트는 주어진 단계/세션의 수정을 트리거하기 위해 사용될 수 있다. 따라서, 시스템(100)의 예는 이벤트의 핸들링에 기초하여, 상이한 단계/세션(111), 및 응답 세션 정보(110)와 연관될 수 있다. 게임 예를 계속하면, 8명의 플레이어가 있고, 1명의 플레이어가 분리된 경우, 분리 이벤트는 기존 세션/단계를 수정하고/하거나 종료하고/하거나, 상이한 세션/단계를 시작하기 위해 사용될 수 있다. 세션 정보(110)는 변환 엔진(102)이 대응하는 변환된 세션 정보(120)로 변환하는 상이한 세트의 요구를 반영하기 위해 변화될 수 있다. 일 예에서, 서버(104)는 새로운 단계/세션(111)에 응답하여 새로운 세션 정보(110)를 포함하는, 나머지 7명의 플레이어에 대한 새로운 단계/세션을 생성할 수 있다. 서버(104)는 8명 대신에 7명의 플레이어/클라이언트를 반영하기 위해 기존 게임 세션(111)을 유지하고 세션 정보(110)를 수정할 수 있다. 따라서, 서버(104)는 서버 측 변화에 더하여, 클라이언트 측 변화에 반응할 수 있다. 주어진 단계/세션(111)은 이벤트(플레이어 중지와 같은)에 응답하여 재평가될 수 있다. 일 예에서, 시스템(100)은 주기적으로 단계/세션 및 그것의 연관된 상태(예를 들어, 클라이언트/플레이어 및 게임/서버 상태)를 재평가할 수 있고, 단계/세션(111)에 대한 세션 정보(110)(클라이언트 측 변화를 포함하는)를 갱신하는 것과 연관될 수 있는 임의의 변화에 폴링(poll)할 수 있다. 세션(111)과 연관된 전이 단계는 변화/갱신이 있을 가능성이 더 많은 것을 표시할 수 있다. 단계/세션(111)은 또한 재평가에 대한 필요 없이, 얼마나 많은 클라이언트/플레이어가 세션을 가입하고/하거나 떠났는지에 관계없이 지속적으로 처리될 수 있다. 따라서, 예시적 시스템(100)은 세션 지속이 어떻게 핸들링되는지의 변환을 포함하는, 단계/세션(111)을 핸들링하는 많은 상이한 방법을 포함한다. 단계/세션(111)은 원하는 레벨의 입도 및/또는 제어에 따라, 그룹화 기초(예를 들어, 주어진 게임, 서버, 및/또는 클라이언트 등과 연관된 모든 단계)로, 또는 개별적 기초로 핸들링될 수 있다. 세션(111)은 변환 엔진(102)을 통해 전달하는 것에 기초하여, 그것의 요구에 따라 네트워크 경로(130)를 프로비저닝할 수 있도록 네트워크 인식일 수 있다. 세션(111)은 또한 컨트롤러(106)와 연관될 수 있는 다양한 트래픽 흐름(예를 들어, 게임 흐름) 및 네트워크 경로(130)와 함께 동작하고 이 경로를 조직하고/이 경로에 영향을 미치는 그것의 능력과 연관될 수 있다.
따라서, 변환 엔진(102)은 세션에 대해 적당한 네트워크 경로(130)(예를 들어, 세션(111)의 다양한 단계에 대한 다수의 상이한 네크워크 경로(130)를 포함하는)에 영향을 미치기 위해 세션(111)(예를 들어, 세션 정보(110)로 표현되는 바와 같은)의 요구를 컨트롤러(106)에 의해 사용 가능한 정보로 변환한다. 서버(104) 및 그것의 연관된 애플리케이션/프로그램은 다양한 네트워크 효과를 처리하는 요구에서 벗어난다. 애플리케이션 개발자는 네트워크 성능/능력 또는 이용 가능 네트워크 자원을 핸들링하는 방법을 걱정할 필요가 없다. 예를 들어, 변환 엔진(102)은 네트워크 경로(130)와 연관된 각각의 노드를 구성하는 서버에 대한 요구 없이 및/또는 네트워크 보상 메커니즘을 사용하는 애플리케이션에 대한 요구 없이, 서버(104)에 의해 이용 가능 네트워크 자원의 강화된 사용을 가능하게 하기 위해 서버(104)와 컨트롤러(106) 사이에 추상화 계층을 제공할 수 있다.
다시 게임 예를 참조하면, 게임 애플리케이션은 레이턴시/지터와 같은 네트워크 효과를 핸들링하는 내장된 보상 메커니즘을 포함하도록 프로그램될 수 있다. 예를 들어, 게임이 과도한 레이턴시에 직면할 때, 플레이어/클라이언트는 그/그녀의 이동에 적용되는 러버 밴딩 효과(rubber-banding effect) 및 게임과의 상호 작용을 경험할 수 있다. 그러한 러버 밴딩은 각각의 사용자가 플레이어 사이에서 레이턴시의 가변 정도로 심지어 참여할 수 있도록(예를 들어, 그것에 의해 레이턴시 핸들리 효과를 모든 플레이어에 분산시킴) 게임 애플리케이션에 의해 수행되는 레이턴시 균등화의 일 예이다. 보상 메커니즘에 대한 불리한 면은 보상의 타입에 따라, 더 낮은 레이턴시를 갖는 그러한 플레이어가 하나의 보상 메커니즘 하에 장점을 가질 수는 있지만, 다른 보상 메커니즘 하에 장점을 가질 수 없다는 것이다. 따라서, 예시적 시스템(100)은 임의의 레이턴시의 영향(또는 데이터 파라미터(124)에 대한 다른 영향)을 감소시키는 네트워크 경로(130)를 제공할 수 있으며, 그 결과 각각의 클라이언트의 연결 타입은 게임플레이에 불공평하게 영향을 주지 않고, 플레이어/클라이언트는 불공평하게 분산된 네트워크 효과와 연관된 좌절을 회피할 수 있다.
일 예에서, 네트워크 보상 메커니즘은 컨트롤러(106)가 이용 가능한(예를 들어, 프로비저닝 가능한) 네트워크 경로(130)가 변환된 세션 정보(120)에 의해 표시된 모든 파라미터를 충족시키지 못한다고 판단할 때 메커니즘을 (예를 들어, 서버(104) 및/또는 서버(104)와 통신하는 클라이언트(도시되지 않음)에서) 트리거링하는 것과 같이 여전히 사용될 수 있다. 대안 예에서, 네트워크 보상 메커니즘은 성능을 강화하기 위해 사용될 수 있지만, 단계/세션(111)에 의해 요청되는 모든 파라미터는 적어도 하나의 네트워크 경로(130)에 의해 충족될 수 있다.
예시적 시스템(100)은 네트워크 자원이 액세스될 수 있게 하고 API에 액세스하는 것처럼 사용될 수 있게 한다. 예를 들어, 서버(104)와 연관된 프로그램은 지정된 네트워크 장치 사이에서 제 1 레벨의 데이터 처리량 및 제 2 레벨의 레이턴시를 필요로 하는 것과 같이 네트워크 요건을 간단히 요청할 수 있다. 프로그램은 컨트롤러(106)가 요청을 만족시킬 수 있는지에 관한 확인을 요청할 수 있다. 요청이 만족될 수 있으면(예를 들어, 컨트롤러(106)가 변환된 세션 정보(120)와 일관되게 프로비저닝되고/영향을 받을 수 있는 네트워크 경로(130)를 식별했다면), 프로그램(예를 들어, 세션(111))은 진행할 수 있다. 컨트롤러(106)가 변환된 세션 정보(120)(예를 들어, 네트워크 충돌 또는 네트워크 데이터 정체/오버로드)를 만족시키는 네트워크 경로(130)를 제공할 수 없으면, 컨트롤러(106)는 변환 엔진(102) 및/또는 서버(104)에 통지할 수 있으며, 그 결과 애플리케이션은 보상 메커니즘을 사용하고/하거나 변환된 세션 정보(120)와 연관된 파라미터의 전부를 만족시키지 않는 네트워크 경로(130)를 사용할지를 판단할 수 있다. 따라서, 보상 메커니즘은 필요한 바에 따라 제공될 수 있다. 그것에 의해, 예시적 시스템(100)은 그에 의해 네트워크 인식을 서버(104) 및/또는 변환 엔진(102)과 연관된 애플리케이션에 제공할 수 있다. 통신은 보상 메커니즘이 사용될 수 있는 때를 식별하기 위해 시스템(100)의 변환 엔진(102), 서버(104), 컨트롤러(106), 클라이언트, 또는 다른 부분 사이에서 감시/교환될 수 있다. 따라서, 시스템(100)은 게임에 대해 생각하고 애플리케이션/게임을 지원하는 기본 네트워크에 집중하지 않도록 자유를 애플리케이션/게임 설계자에게 제공한다. 예시적 시스템(100)은 다양한 네트워크 요구가 만족되는 다른 산업 뿐만 아니라, 게임 산업에 이익을 제공할 수 있다.
서버(104)는 세션 정보(110)를 변환 엔진(102)에 송신할 것이다. 세션 정보(110)는 클라이언트 리스트 및 세션 상태를 포함할 수 있다. 네트워크 인식 애플리케이션/서버(104)는 어떤 프로그램이 실행중인지 및 그러한 프로그램과 연관된 정보를 전달하는 방법 및 네트워크가 그러한 자원 요구를 어떻게 만족시키는지를 인식한다. 변환 엔진(102)은 세션/단계에 기초하여, 어떤 네트워크 파라미터/요건이 주어진 요구에 대응하는지를 인식한다. 예를 들어, 변환 엔진(102)은 플레이 단계가 저 레이턴시 데이터 파라미터(124)에 대응하는 것을 식별할 수 있다. 따라서, 애플리케이션은 플레이 상태를 단순히 식별하는 세션 정보(110)를 제공할 수 있고, 변환 엔진(102)은 저 레이턴시 데이터 파라미터(124)에 대응하는 변환된 세션 정보(120)를 컨트롤러(106)에 전달하는 것을 알 수 있다.
변환 엔진(102)은 다양한 형태의 변환을 제공할 수 있으며, 즉 서버(104) 또는 특정 애플리케이션의 상황에 따라 주어진 세션 정보(110)에 상이하게 응답할 수 있다. 예를 들어, 변환 엔진(102)은 제 2 애플리케이션으로부터의 동일한 플레이 단계를 제 2 임계 데이터 파라미터(124)로 변환하는 동안, 제 1 애플리케이션에 대한 플레이 단계를 제 1 임계 데이터 파라미터(124)로 변환할 수 있다. 각각의 애플리케이션은 변환 엔진(102)에 의해 식별되는 바와 같은 상이한 설정을 가질 수 있으며, 이는 각각의 서버(104) 및/또는 애플리케이션/세션(111)/상태에 대한 변환을 조정하기 위해 맞춤화될 수 있다. 유사하게, 변환 엔진(102)은 서버(104)와 상호 작용하고/하거나 이에 연결하는 클라이언트에 대한 특정 맞춤을 식별할 수 있어, 맞춤화된 응답을 네트워크 클라이언트 및 심지어 다른 장치에 가능하게 한다.
변환 엔진(102)은 컨트롤러(106)에 대한 로직의 상부 위에 있는 추가 모듈(add-on module)을 인에이블하는 OpenFlow 컨트롤러(106)와 같은 컨트롤러(106)의 부분일 수 있다. 변환 엔진(102)은 개별/독립 애플리케이션으로서 제공될 수 있으며, 그것은 컨트롤러(106)에 의해 사용 가능한 특정 메시지를 컨트롤러(106)에 푸시하기 위해 특정 API를 사용하여 호출될 수 있다. 변환 엔진(102)은 상이한 기술을 사용하여 제공될 수 있으며, 그것은 컨트롤러(106)가 제공하는 어떤 메커니즘에 의존할 수 있다. 예를 들어, 변환 엔진(102)은 소프트웨어 매핑 기능, 프로그램, 및/또는 API일 수 있다. 변환 엔진(102)은 컨트롤러(106)와 함께 배치될 수 있고, 개별 프로그램으로서 제공될 수 있고, 컨트롤러(106)의 API에 대한 플러그 인으로서 제공될 수 있다. 변환 엔진(102)은 소프트웨어 매핑 기능으로서 제공될 수 있다. 시스템(100)(예를 들어, 서버(104), 컨트롤러(106))의 다른 부분은 유사하게 제공되고/되거나 결합될 수 있다.
따라서, 서버(104) 및 연관된 애플리케이션은 변환 엔진(102)이 서버(104)가 네트워크와 어떻게 호환 가능할 수 있는지를 용이하게 하는 지능형 추상화 계층 및 각각의 특정 컨트롤러/노드/네트워크 장치를 설정하는 데 사용되는 세션 정보(110)의 포맷팅/변환을 제공하기 때문에, 네트워크에서(예를 들어, 네트워크 경로(130)를 따라) 모든 네트워크 장치/컨트롤러에 통신하는 방법을 알 필요가 없다. 변환 엔진(102)은 서버(104)에 의해(예를 들어, 네트워크 인식 애플리케이션에 의해) 표현되는 요구를 취하고, 그것을 네트워크 요건으로 변환하고, 컨트롤러(106)가 이해하고 네트워크 경로(130)를 프로비저닝하는 것을 향해 적용할 수 있는 포맷으로 네트워크 요건을 컨트롤러(106)에 전달할 수 있다. 변환 엔진(102)은 상이한 타입의 서버(104)를 처리하는 방법, 그 자체를 상이한 서버에 맞춤화하는 것을 이해하고 상이한 세션(111) 및/또는 단계를 컨트롤러(106)가 요구된 네트워크 자원을 획득하기 위해 이해하고 구현할 수 있는 네트워크 요건으로 변환하는 방법을 인식한다. 컨트롤러(106)는 네트워크를 인식하고 주어진 데이터 속도를 지원하기 위해 네트워크 클라이언트 및/또는 서버(104) 사이에 네트워크 경로(130)를 설정하는 방법을 인식한다. 컨트롤러(106)는 요청된 네트워크 경로(130)를 프로비저닝하기 위해 (예를 들어, 컨트롤러(106)와 상호 작용하는 메커니즘을 포함하는 개방 소스 네트워크 장치/스위치/컨트롤러와 호환 가능한 OpenFlow 표준에 기초하여) 그 자체의 기술을 사용할 수 있다.
도 2는 일 예에 따른 변환 엔진(202)을 포함하는 시스템(200)의 타임 시퀀스도이다. 시스템(200)은 또한 적어도 하나의 서버(204), 컨트롤러(206), 네트워크(208), 및/또는 클라이언트(209) 사이의 상호 작용을 포함할 수 있다. 서버(204)는 서버 대기 상태(241)에 기초하여, 세션 정보를 수신하기 위해 대기할 수 있다. 클라이언트(209)는 클라이언트 통신(242)을 서버(204)에 송신할 수 있다. 변환 엔진(202), 및/또는 컨트롤러(206)는 대기 상태(243)에 기초하여 서버(204)로부터 입력을 수신하기 위해 대기할 수 있다.
시스템(200)은 서버(204) 상의 세션이 세션의 상이한 단계의 네트워크 요건을 변환 엔진(202)을 통해 컨트롤러(206)에 직접 전달할 수 있는 아키텍처 프레임워크를 제공할 수 있다. 변환 엔진(202)은 서버(204)와 컨트롤러(206) 사이에 추상화 계층을 제공하기 위한 것이다.
일 예에서, 서버(204)는 세션 초기에 세션 정보, 예를 들어 {SessionID, ClientList, SessionState}를 변화 엔진(202)에 송신할 수 있다. 예를 들어, 서버 통신(244)은 세션 정보를 송신하는 것을 수반할 수 있다. ClientList(어느 클라이언트가 이러한 세션의 일부인 리스트)는 초기에 송신될 수 있고, 다음과 같이 이러한 세션 동안 이후의 전송에서 송신되는 것으로부터 생략될 수 있다. 변환 엔진(202)은 ClientList에 SessionID의 매핑을 저장할 수 있다. 따라서, 서버(204)는 변환 엔진(202)에 전달된, 세션 정보를 인식하며, 이는 주어진 네트워크 경로와 연관된 각각의 네트워크 장치/클라이언트에 대한 세션 정보를 변환한다. 그 다음, 서버(204)는 변환 엔진(202)으로의 후속 통신에서 SessionID를 사용함으로써, 후속 통신으로부터 ClientList를 생략할 수 있다. 서버(204)는 ClientList를 변환 엔진(202)에 매회 송신해야 하지 않으면서 후속 통신에서 SessionID의 사용을 가능하기 하기 위해 그 세션에 대한 제 1 시간에 ClientList가 이미 변환 엔진(202)에 송신되었는지를 식별하는 로직을 포함할 수 있다. 변환 엔진(202)은 SessionID를 ClientList로 변환하고 그것을 사용하여 각각의 클라이언트에 대한 네트워크 종점(예를 들어, 클라이언트 IP(Internet Protocol) 어드레스)을 식별할 수 있다. 변환 엔진(202)은 또한 SessionState로부터 네트워크 요건을 결정하고, 그 다음 네트워크 요건(예를 들어, 토폴로지 파라미터 및 데이터 파라미터)을 컨트롤러(206)에 전달할 수 있다.
따라서, 서버(204)는 세션과 연관된 클라이언트 및 IP 어드레스의 리스트를 제공할 수 있다. 변환 엔진(202)은 제공된 세션 정보를 적어도 2개의 네트워크 어드레스 종점의 그룹을 포함하는 토폴로지 정보와 같은, 컨트롤러(206)에 의해 사용 가능한 정보로 변환할 수 있으며, 각각의 쌍은 품질/데이터 파라미터와 연관된다. 변환 엔진(202)은 서버로부터의 API 콜에 응답하여 세션 정보를 변환할 수 있고, 변환 엔진(202)은 변환된 세션 정보를 컨트롤러(206)에 전달하는 API 계층을 사용할 수 있다. 변환 엔진(202)은 서버(204)로부터 수신된 세션 정보를 컨트롤러에 전달될 파라미터에 매핑함으로써, 매핑 엔진의 역할을 할 수 있다. 변환 엔진(202)은 함수 호출에 응답하고, 함수 호출로 동작할 수 있다. 그러한 예에서, 서버(204)가 변환 엔진(202)을 함수로서 호출하고 파라미터(예를 들어, 세션 정보)를 변환 엔진(202)에 전달하면, 변환 엔진(202)은 컨트롤러(206)에 의해 사용 가능한 변환된 세션 정보를 반환할 것이다. 변환 엔진 함수 호출에 의해 반환된 값은 컨트롤러(206)로의 다른 API 호출에 기초하여 컨트롤러(206)에 전달될 수 있다. 다른 예에서, 변환 엔진(202)은 네트워크 인터페이스로 제공될 수 있다. 서버로(204)부터의 세션 정보는 네트워크 패킷으로 번들링되고(bundled), 네트워크를 통해 변환 엔진에 송신될 수 있으며, 그것은 그러한 패킷을 수신하는 완전한 소프트웨어 프로그램일 수 있다. 예시적 변환 엔진(202)은 패킷을 번들링하지 않고, 그것을 컨트롤러(206)를 위해 변환하고, 변환된 패킷을 컨트롤러(206)에 송신할 수 있다. 따라서, 예시적 변환 엔진(202)은 정보를 수신하고 조작하기 위해 완전한 소프트웨어 패키지로 제공될 수 있다. 변환 엔진(202)은 완전한(pure) API, 또는 그것에 소프트웨어 구성요소를 갖는 API 구성요소로 제공될 수 있다. 예는 상이한 방법으로 구현될 수 있다.
변환 엔진(202)이 클라이언트 리스트 및 IP 어드레스를 수신할 때, 그것은 토폴로지 파라미터(종점 어드레스) 및 데이터 파라미터를 그룹에 제공할 수 있다. 그 다음, 컨트롤러(206)는 제 1 클라이언트에서 서버까지의 예시적 네트워크 경로에 대해, 제 1 임계값의 데이터 속도가 요구되는 것을 이해할 것이다. 유사하게, 컨트롤러(206)는 추가 클라이언트(들) 및 서버(들)에 대한 파라미터를 적절하게 이해할 수 있다. 변환 엔진(202)은 다수 세트의 정보를 컨트롤러(206)에 제공할 수 있어, 경로에 대한 요청된 네트워크 자원/성능을 방해하지 않으면서 컨트롤러(206)가 복잡한 네트워크 경로를 준비할 수 있게 한다. 세션 동안 단일 서버(204)에 연결된 다수의 클라이언트의 경우에, 서버(204)는 서버 자체의 IP 어드레스와 함께, 그 각각의 IP 어드레스를 갖는 클라이언트 리스트를 제공할 수 있다. 다수의 서버(204)를 통해 연결된 다수의 클라이언트의 경우에, 각각의 서버(204)는 서버 자체의 IP 어드레스와 함께, 서버(204) 상에서 실행하는 세션에 연결된 클라이언트 리스트를 제공할 수 있다.
따라서, 서버(204)는 세션 식별, 클라이언트 리스트, 세션 상태, 및 다른 정보를 포함하는 세션 정보와 같은, 서버 통신(244)을 변환 엔진(202)에 송신할 수 있다. 변환 엔진(202)은 세션 상태를 데이터 및/또는 토폴로지 파라미터에 매핑하는 것과 같은, 변환(245)을 수행할 수 있다. 변환 엔진(202)은 클라이언트 리스트 및 다른 파라미터와 같은, 변환 엔진 통신(246)을 컨트롤러(206)에 전달할 수 있다.
컨트롤러(206)(예를 들어, OpenFlow 컨트롤러)는 규칙{규칙: 일치, 동작}을 네트워크 경로를 따라 다양한 네트워크 장치(예를 들어, 네트워크 라우터/스위치)로 푸시 다운함으로써 필요한 네트워크 경로를 프로비저닝할 수 있다. 서버(204), 변환 엔진(202), 및 컨트롤러(206)(및 다른 요소)가 개별 장치로 도시되지만, 그것은 동일한 장치 내에 함께 배치될(예를 들어, 프로세서에 의해 실행 가능한 소프트웨어 프로그램으로 구현될) 수 있다.
컨트롤러(206)는 세션과 연관된 클라이언트 리스트에서 각각의 클라이언트에 대한 네트워크 노드(들)를 식별하는 것과 같은, 컨트롤러 활동(247)을 수행할 수 있다. 컨트롤러(206)는 네트워크 노드에 대한 구성 파라미터와 같은 컨트롤러 통신(248)을 네트워크(208)에 송신할 수 있다. 예를 들어, 컨트롤러 통신(248)은 변환 엔진(202)에 의해 식별되는 바와 같이, 네트워크 경로 상의 각각의 네트워크 노드로 송신될 수 있으며, 네트워크 경로는 적어도 하나의 네트워크(208)의 적어도 하나의 클라이언트(209) 및/또는 서버(204)와 연관된다.
도 3은 일 예에 따른 변환 엔진(302)를 포함하는 시스템(300)의 블록도이다. 변환 엔진(302)은 제 1 클라이언트(309a), 제 2 클라이언트(309b), 및/또는 서버(304)에 의해 네트워크(308)의 사용을 관리하기 위해, 서버(304) 및/또는 컨트롤러(306)와 연관될 수 있다. 클라이언트는 제 1 단계(312a)(예를 들어, 동기) 및 제 2 단계(312b)(예를 들어, 플레이)와 같은, 적어도 하나의 단계와 연관될 수 있다. 변환 엔진(302)은 토폴로지 파라미터(322) 및 데이터 파라미터(324)에 기초하여 서버(304) 및/또는 컨트롤러(306)와 상호 작용할 수 있다. 시스템(300)은 구체적으로 도시된 것을 넘어 추가 네트워크 노드(332) 및/또는 네트워크 경로(330)를 포함할 수 있다.
컨트롤러(306)는 제 1 흐름(334a)(예를 들어, 고 처리량), 및/또는 제 2 흐름(334b)(예를 들어, 저 레이턴시)과 같은, 적어도 하나의 흐름에 기초하여 네트워크(308)와 상호 작용할 수 있다. 적어도 하나의 흐름은 적어도 하나의 단계(312) 및/또는 세션과 연관될 수 있다. 네트워크(308)는 적어도 하나의 네트워크 노드(332) 및 제 1 네트워크 경로(330a) 및 제 2 네트워크 경로(330b)와 같은 네트워크 경로를 포함할 수 있다.
예시된 바와 같이, 변환 엔진(302)은 제 1 단계(312a)에 대응하는 제 1 토폴로지 파라미터(322) 및 데이터 파라미터(324)를 제공할 수 있다. 컨트롤러(306)는 변환 엔진(302)에 의해 제공되는 변환된 세션 정보(제 1 토폴로지 파라미터(322) 및 데이터 파라미터(324))에 응답하여 컨트롤러(306)에 의해 구성된 바와 같은 대응하는 네트워크 노드에 기초하여 제 1 단계(312a)(싱크)와 연관된 고 처리량을 제공하기 위해 제 1 경로(312a)를 설정한다. 유사하게, 변환 엔진(302)은 컨트롤러가 제 2 단계(312b)(플레이)에 대응하는 컨트롤러에 저 레이턴시 제 2 네트워크 경로(330b)를 설정하기 위해 제 2 변환된 세션 정보(제 2 토폴로지 파라미터(322) 및 데이터 파라미터(324))를 제공할 수 있다. 따라서, 제 1 클라이언트(309a)는 고 처리량을 이용하는 단계(싱크)에 있을 때 고 처리량 경로를 이용할 수 있고, 제 2 클라이언트(309b)는 저 레이턴시를 이용하는 단계(플레이)에 있을 때 저 레이턴시 경로를 이용할 수 있다. 다수의 상이한 클라이언트는 주어진 세션 동안 상이한 단계/경로를 이용할 수 있다.
도 4는 일 예에 따른 변환 엔진(402)을 포함하는 시스템(400)의 블록도이다. 변환 엔진(402)은 서버(404) 및/또는 컨트롤러(406)와 연관될 수 있다. 통신은 변환 엔진(402), 서버(404), 및/또는 컨트롤러(406)로부터 네트워크를 통해 제 1 클라이언트(409a), 제 2 클라이언트(409b), 및/또는 제 3 클라이언트(409c)로 전달될 수 있다. 네트워크 통신은 제 1 네트워크 노드(432a), 제 2 네트워크 노드(432b), 제 3 네트워크 노드(432c), 및/또는 제 4 네트워크 노드(432d)와 같은 적어도 하나의 네트워크 노드, 및 제 1 네트워크 경로(430a), 제 2 네트워크 경로(430b), 및/또는 제 3 네트워크 경로(430c)와 같은 적어도 하나의 네트워크 경로에 기초할 수 있다. 통신은 네트워크와 연관된 텔레포니, 비디오/멀티미디어, 및 다른 트래픽 소스/목적지와 같은 다른 트래픽(405)를 고려하여 제공될 수 있다. 추가 노드/경로 및 다른 요소는 구체적으로 도시된 것 이상으로 제공될 수 있다.
종점 사이의 각각의 경로는 노드(432a-432d)와 같은, 다양한 네트워크 장치를 수반할 수 있다. 일 예에서, 네트워크 노드는 그 네트워크 노드를 통과하는 네트워킹 트래픽에 관한 전송 결정을 할 수 있는 라우터와 같은 네트워크 스위치이다. 라우터는 그것이 라우터에서 수신된 후에 패킷(즉, 네트워크 트래픽)을 송신하는 방법을 인식하는 것이다. 패킷을 송신하는 곳의 결정 로직은 특정 네트워크 노드(432a-432d) 내에 있을 수 있고, 네트워크 노드(432a-432d)는 OpenFlow 프로토콜과 같은 제어 표준과 호환가능한 프로토콜을 실행할 수 있다. 네트워크 노드는 패킷을 수신하고, 그것을 컨트롤러(406)에 의해 네트워크 노드로 푸시 다운된 규칙에 따라 송신할 수 있다. 네트워크 노드당 패킷을 라우팅하는 방법의 로직은 컨트롤러(406)(및/또는 변환 엔진(402) 또는 서버(404))에서 원격으로 수용될 수 있다.
아키텍처는 또한 보이스, 비디오, 일반 데이터, 및 다른 네트워크 트래픽(405)을 반송하면서 데이터를 반송할 수 있다. (예를 들어, 네트워크 상에서 게임을 플레이하기 위해) 서버(404)에 연결될 3개의 클라이언트(409a, 409b, 및 409c)가 도시된다. 네트워크에 의해 반송되는 보이스, 비디오 및 데이터 트래픽(405)은 또한 네트워크 노드(432a-432d) 중 적어도 하나를 통해 전달된다. 따라서, 다양한 네트워크 노드(432a-432d)는 클라이언트(409a-409c) 및 서버(404)에 의해 공유되는 연결에 부정적 영향을 미치지 않으면서, 추가 트래픽(405)에 의해 부담되는 것을 처리해야 한다.
클라이언트(409a-409c)가 연결하고 세션이 다양한 단계를 통해 진행함에 따라, 서버(404) 및 컨트롤러(406)는 네트워크 요건 및 다른 정보를 변환 엔진(402)을 통해 전달하기 위해 서로 통신할 수 있다. 게임 예에서, 플레이 단계에서, 게임 서버(404)는 클라이언트(409a-409c)의 리스트, 게임 서버 ID 및 이러한 플레이 단계의 최대 허용 레이턴시 요건을 전달할 수 있다. 네트워크 토폴로지를 인식하는 OpenFlow 컨트롤러(406)는 게임 클라이언트(409a-409c)를 게임 서버(404)에 연결하는 다양한 네트워크 장치/노드(432a-432d) 상에 OpenFlow 규칙을 프로그램함으로써 플레이 단계 동안 네트워크 경로(예를 들어, 저 레이턴시와 연관된 네트워크 경로(430c))를 카브 아웃(carve out)할 수 있다. 규칙은 OpenFlow 컨트롤러(404)에 의해 송신되고, 스위치/노드(432a-432d)(예를 들어, 규칙을 서버 측/컨트롤러(406) 상의 제어 평면으로부터의 규칙을, 데이터 평면 요소/노드(432a-432d)에 전달하는) 상에 저장된다. 컨트롤러(406)는 노드(432a-432d)의 모두보다 더 적게 영향을 미치는 제어 기술을 구현할 수 있으며, 예를 들어 컨트롤러(406)는 한 노드(432)에 기초하여 경로를 생성할 수 있다.
노드(432)는 각각의 노드(432) 상에 구현되는, 일치/행동 쌍과 같은, 규칙에 기초하여 프로그램될 수 있다. 표 1은 노드 1, 예를 들어 노드(432a)에 대한 일 예를 나타낸다. 노드(432a)에서 수신된 패킷은 제 1 행의 일치 기준에 따른 목적지 IP 어드레스를 위해 체크될 수 있다. 목적지 IP가 일치하면, 취해질 동작은 노드(432a)의 포트 8로부터 수신된 패킷을 송신하고 있다. 제 2 행 일치에 따라, 패킷이 노드(432a)의 포트 3으로부터 착신 수신되면, 그 패킷은 노드(432a)의 포트 4에서 발신 송신된다. 따라서, 규칙 기반 일치/동작은 OpenFlow 표준이 변환 엔진(402)으로부터의 변환된 세션 정보를 위한 컨트롤러(406)에 의해 푸시 아웃되는 바와 같은 각각의 규칙을 어떻게 정의하는지에 기초하여 각각의 스위치/노드(432)로 프로그램될 수 있다.
Figure pct00001
즉, 표 1에서의 규칙은 노드 1(노드(432a))이 게임 서버(404)로 가는 임의의 IP 트래픽을 수신하면, 그 트래픽을 게임 클라이언트(409a-409c)로부터 저 레이턴시 경로(430c)로서의 OpenFlow 컨트롤러(406)에 의해 선택되었던 포트 8을 통해 게임 서버(404)로 전송하는 것을 의미한다. 게임 서버(404)로 가지 않는 트래픽은 표 1의 제 2 행에 도시된 행마다 정상 경로, 즉 이 경우에 발신 포트 4를 계속 사용할 것이다.
도 4에 도시된 예는 표 1에 따른 규칙을 전송할 것이다. 게임 서버(404)의 어드레스로 가는 모든 트래픽은 변환 엔진(402)에 의해 표시된 바와 같은 데이터 파라미터 및 토폴로지 파라미터에 따라 서버(404)와 통신하는데, 즉 게임하는 데 도움이 되는 경로 상에 있는 바와 같은 컨트롤러(406)에 의해 식별되는 특정 포트로부터 스위칭된다. 모든 다른 트래픽은 노드(432a)의 상이한 포트로부터 스위칭되며, 그에 의해 원하는 데이터 파라미터를 지원하는 것으로 알려져 있는 선택된 포트를 통해 선택된 경로에 기초하여 게임 트래픽에 우선권을 제공할 수 있다. 도시된 예는 임의의 수의 클라이언트(409), 노드(432), 서버(404), 및/또는 다른 요소를 포함하도록 확장될 수 있다.
도 5는 일 예에 따른 변환 정보에 기초한 흐름도(500)이다. 블록(510)에서, 서버와 연관된 세션에 대응하는 세션 정보가 수신된다. 예를 들어, 서버는 서버와 연관된 애플리케이션에 의해 요구되는 것에 관한 정보를 송신할 수 있다. 블록(520)에서, 세션 정보는 토폴로지 파라미터 및 데이터 파라미터를 포함하는 변환된 세션 정보로 변환된다. 예를 들어, 변환은 서버에 의해 표현되는 요구를 취하고, 그것을 연결될 네트워크 종점(토폴로지 파라미터), 및 그러한 종점 사이에 제공될 타겟 레벨의 서비스(데이터 파라미터)를 표현하는 형태로 변환할 수 있다. 이것은 임의의 수의 종점/경로를 지원하기 위해 다수 회 반복될 수 있다. 블록(530)에서, 변환된 세션 정보는 토폴로지 파라미터 및 데이터 파라미터를 만족시키는 네트워크 경로를 프로비저닝하기 위해 컨트롤러에 의한 사용을 위해 포맷된다. 예를 들어, 정보는 OpenFlow 컨트롤러와 호환 가능한 형태로 포맷될 수 있다. 블록(540)에서, 네트워크 경로는세션의 전이 단계에 응답하여 동적으로 디프로비저닝될 수 있다. 예를 들어, 동적 디프로비저닝은 종결 단계와 연관될 수 있다(예를 들어, 종결 단계는 한 타입의 전이 단계일 수 있음). 대안 예에서, 세션이 지속될 수 있고, 네트워크 경로는 다른 단계/세션에서의 사용을 위해 지속될 수 있다.
예는 하드웨어, 소프트웨어, 또는 둘 다의 조합으로 구현될 수 있다. 예시적 시스템은 유형의 비일시적 매체(예를 들어, 휘발성 메모리, 비휘발성 메모리, 및/또는 컴퓨터 판독 가능 매체)에 저장된 명령어를 실행하는 프로세서 및 메모리 자원을 포함할 수 있다. 비일시적 컴퓨터 판독 가능 매체는 유형이고 본 개시에 따른 예를 구현하기 위해 프로세서에 의해 실행 가능한 컴퓨터 판독 가능 명령어를 저장할 수 있다.
예시적 시스템(예를 들어, 컴퓨팅 장치)은 한 세트의 컴퓨터 판독 가능 명령어(예를 들어, 소프트웨어)를 저장하는 유형의 비일시적 컴퓨터 판독 가능 매체를 포함하고/하거나 수용할 수 있다. 본 명세서에 사용된 바와 같이, 프로세서는 병렬 처리 시스템에서와 같이 하나 또는 복수의 프로세서를 포함할 수 있다. 메모리는 컴퓨터 판독 가능 명령어의 실행을 위한 프로세서에 의해 어드레스 가능한 메모리를 포함할 수 있다. 컴퓨터 판독 가능 매체는 RAM(random access memory)과 같은 휘발성 및/또는 비휘발성 메모리, 하드 디스크, 플로피 디스크, 및/또는 테이프 메모리와 같은 자기 메모리, SSD(solid state drive), 플래시 메모리, 상 변화 메모리 등을 포함할 수 있다.
예는 애플리케이션/세션/단계 단위로 네트워크 자원을 프로비저닝하는, 예를 들어 컨트롤러와 함께 게임 요구를 처리하는 중앙 집중 접근 방법을 가능하게 한다. 예시적 아키텍처 프레임워크는 패킷 손실, 레이턴시 및 지터와 같은 네트워크 효과를 보상하는 것에 집중하지 않으면서 게임과 같은 애플리케이션이 동작될 수 있게 한다. 예는 게임 설계자가 게임에 집중할 수 있게 해주고 그 게임을 지원할 수 있는 기본 네트워크에 집중하지 않게 한다. 예는 OpenFlow 프로토콜과 같은 표준에 대한 특정 확장을 필요로 하지 않으며, 따라서 예가 이종 멀티 벤더 네트워크와 호환 가능한 것을 보장한다.

Claims (15)

  1. 변환 엔진(a translation engine)에서, 서버와 연관된 세션에 대응하는 세션 정보를 수신하는 단계와,
    상기 세션 정보를 토폴로지 파라미터(a topology parameter) 및 데이터 파라미터를 포함하는 변환된 세션 정보로 변환하는 단계와,
    상기 토폴로지 파라미터 및 상기 데이터 파라미터를 만족시키는 네트워크 경로를 프로비저닝(provision)하기 위해 컨트롤러에 의한 사용을 위해 상기 변환된 세션 정보를 포맷하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 세션의 제 1 단계는 고 처리량 데이터 파라미터(a high throughput data parameter)를 포함하는 제 1 세션 정보와 연관되고, 상기 세션의 제 2 단계는 저 레이턴시 데이터 파라미터(a low latency data paprameter)를 포함하는 제 2 세션 정보와 연관되는
    방법.
  3. 제 1 항에 있어서,
    상기 세션의 제 1 단계는 상기 토폴로지 파라미터를 만족시키는 제 1 네트워크 경로와 연관되고, 상기 세션의 제 2 단계는 상기 토폴로지 파라미터를 만족시키는 제 2 네트워크 경로와 연관되는
    방법.
  4. 제 1 항에 있어서,
    상기 세션의 전이 단계(a transition phase)에 응답하여 상기 네트워크 경로를 동적으로 디프로비저닝(deprovisioning)하는 단계를 더 포함하는
    방법.
  5. 제 1 항에 있어서,
    상기 세션 정보는 세션 ID, 클라이언트 리스트, 및 세션 상태 중 적어도 하나를 포함하는
    방법.
  6. 제 1 항에 있어서,
    상기 토폴로지 파라미터는 상기 네트워크 경로의 제 1 종점에 대응하는 제 1 네트워크 어드레스, 및 상기 네트워크 경로의 제 2 종점에 대응하는 제 2 네트워크 어드레스를 포함하는
    방법.
  7. 제 1 항에 있어서,
    상기 데이터 파라미터는 레이턴시(latency), 처리량(throughput), 지터(jitter), 및 패킷 손실 중 적어도 하나와 연관된 데이터 요건을 포함하는
    방법.
  8. 변환 엔진으로서,
    서버와 연관된 세션에 대응하는 세션 정보를 수신하고,
    상기 세션 정보를 토폴로지 파라미터 및 데이터 파라미터를 포함하는 변환된 세션 정보로 변환하고,
    컨트롤러에게 상기 변환된 세션 정보에 따라 상기 토폴로지 파라미터 및 데이터 파라미터와 부합하는 네트워크 경로를 프로비저닝할 것을 명령하는
    변환 엔진.
  9. 제 8 항에 있어서,
    상기 변환 엔진은 API(application programming interface) 호출과 연관되는
    변환 엔진.
  10. 제 8 항에 있어서,
    상기 변환 엔진은 상기 세션 정보에 포함된 세션 ID를 상기 세션과 연관된 네트워크 클라이언트의 리스트를 포함하는 클라이언트 리스트에 매핑하는 매핑 정보를 포함하고, 상기 변환 엔진은 상기 매핑 정보에 기초하여 상기 네트워크 클라이언트 각각에 대해 적어도 하나의 네트워크 종점을 식별하는
    변환 엔진.
  11. 제 8 항에 있어서,
    상기 컨트롤러는 OpenFlow 컨트롤러이고, 상기 변환된 세션 정보는 상기 OpenFlow 컨트롤러에게 상기 OpenFlow 컨트롤러와 연관된 흐름에 따라 네트워크 경로를 동적으로 프로비저닝할 것을 명령하는
    변환 엔진.
  12. 제 8 항에 있어서,
    상기 변환 엔진은 상기 네트워크 경로가 상기 데이터 파라미터와 연관된 서비스 레벨과 부합하지 않는 것에 응답하여 상기 컨트롤러에게 대체 네트워크 경로를 프로비저닝할 것을 명령하는
    변환 엔진.
  13. 제 8 항에 있어서,
    상기 변환 엔진은 상기 네트워크 경로가 상기 데이터 파라미터와 연관된 서비스 레벨과 부합하지 않는 것에 응답하여 상기 서버에게 보상 메커니즘을 상기 서버에서 트리거할 것을 명령하는
    변환 엔진.
  14. 한 세트의 명령어를 저장하는 유형의 비일시적 컴퓨터 판독 가능 매체로서,
    상기 명령어는 프로세서에 의해 실행될 때
    서버와 연관된 세션에 대응하는 세션 정보를 수신하고,
    상기 세션 정보를 토폴로지 파라미터 및 데이터 파라미터를 포함하는 변환된 세션 정보로 변환하고,
    상기 토폴로지 파라미터 및 상기 데이터 파라미터를 만족시키는 네트워크 경로를 프로비저닝하기 위해 컨트롤러에 의한 사용을 위해 상기 변환된 세션 정보를 포맷하는 방법을 수행하는
    유형의 비일시적 컴퓨터 판독 가능 매체.
  15. 제 14 항에 있어서,
    상기 서버에 대응하는 서버 변환 정보에 기초하여 상기 세션 정보를 변환하는 명령어를 더 포함하는
    유형의 비일시적 컴퓨터 판독 가능 매체.
KR1020147030626A 2012-06-25 2012-06-25 네트워크 경로를 프로비저닝하는 변환된 세션 정보 KR101979058B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/043932 WO2014003700A1 (en) 2012-06-25 2012-06-25 Translated session information to provision a network path

Publications (2)

Publication Number Publication Date
KR20150035519A true KR20150035519A (ko) 2015-04-06
KR101979058B1 KR101979058B1 (ko) 2019-05-15

Family

ID=49783657

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147030626A KR101979058B1 (ko) 2012-06-25 2012-06-25 네트워크 경로를 프로비저닝하는 변환된 세션 정보

Country Status (7)

Country Link
US (1) US20150134842A1 (ko)
EP (1) EP2865136A4 (ko)
JP (1) JP5872733B2 (ko)
KR (1) KR101979058B1 (ko)
CN (1) CN104272661B (ko)
TW (1) TWI510040B (ko)
WO (1) WO2014003700A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015147850A1 (en) 2014-03-28 2015-10-01 Hewlett-Packard Development Company, L.P. Controlled node configuration
US9491031B2 (en) * 2014-05-06 2016-11-08 At&T Intellectual Property I, L.P. Devices, methods, and computer readable storage devices for collecting information and sharing information associated with session flows between communication devices and servers
US20160112271A1 (en) * 2014-10-15 2016-04-21 Juniper Networks, Inc. Controller-to-controller interface for multi-layer network abstraction
TWI635728B (zh) * 2016-12-13 2018-09-11 中華電信股份有限公司 System and method for mapping transmission network resources in software defined network
KR20210128096A (ko) * 2020-04-16 2021-10-26 세종대학교산학협력단 사물인터넷 플랫폼 간 연동 방법 및 장치
CN114553707B (zh) * 2020-11-26 2023-09-15 腾讯科技(深圳)有限公司 网络的拓扑信息的生成和网络故障的定界方法、装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7843843B1 (en) * 2004-03-29 2010-11-30 Packeteer, Inc. Adaptive, application-aware selection of differntiated network services
US20110261825A1 (en) * 2009-03-09 2011-10-27 Nec Corporation OpenFlow COMMUNICATION SYSTEM AND OpenFlow COMMUNICATION METHOD
US20120005362A1 (en) * 2010-06-30 2012-01-05 Hitachi, Ltd. Streaming data delivery system and method thereof

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6912276B1 (en) * 1999-04-12 2005-06-28 Silicon Laboratories, Inc. Modem on hold
US7010611B1 (en) * 1999-12-21 2006-03-07 Converged Access, Inc. Bandwidth management system with multiple processing engines
US7545755B2 (en) * 2000-03-03 2009-06-09 Adtran Inc. Routing switch detecting change in session identifier before reconfiguring routing table
US6766373B1 (en) * 2000-05-31 2004-07-20 International Business Machines Corporation Dynamic, seamless switching of a network session from one connection route to another
US6922557B2 (en) * 2000-10-18 2005-07-26 Psion Teklogix Inc. Wireless communication system
US20030033467A1 (en) * 2001-08-08 2003-02-13 Satoshi Yoshizawa Method and apparatus for resource allocation in network router and switch
US7133360B2 (en) * 2001-12-17 2006-11-07 Alcatel Conditional bandwidth subscriptions for multiprotocol label switching (MPLS) label switched paths (LSPs)
EP2262175B1 (en) * 2003-06-12 2018-01-17 Camiant, Inc. Dynamic service delivery with topology discovery for communication networks
US7496661B1 (en) * 2004-03-29 2009-02-24 Packeteer, Inc. Adaptive, application-aware selection of differentiated network services
CN1268089C (zh) * 2004-07-26 2006-08-02 华为技术有限公司 多媒体广播/组播服务业务数据传输的方法
US7760668B1 (en) * 2006-06-20 2010-07-20 Force 10 Networks, Inc. Self-reconfiguring spanning tree
US8089882B2 (en) * 2007-03-23 2012-01-03 Hewlett-Packard Development Company, L.P. Load-aware network path configuration
CA2926677C (en) * 2007-09-26 2020-07-14 Nicira, Inc. Network operating system for managing and securing networks
US8856909B1 (en) * 2009-01-23 2014-10-07 Juniper Networks, Inc. IF-MAP provisioning of resources and services
US8971335B2 (en) * 2009-07-02 2015-03-03 Exafer Ltd System and method for creating a transitive optimized flow path
JP5300076B2 (ja) * 2009-10-07 2013-09-25 日本電気株式会社 コンピュータシステム、及びコンピュータシステムの監視方法
US8335163B2 (en) * 2009-10-27 2012-12-18 Microsoft Corporation Quality of service (QOS) based systems, networks, and advisors
JP5644775B2 (ja) * 2009-12-28 2014-12-24 日本電気株式会社 通信システムおよびトポロジー情報作成方法
CN103069754B (zh) * 2010-08-17 2015-09-02 日本电气株式会社 通信单元、通信系统、通信方法、以及记录介质
RU2562438C2 (ru) * 2010-09-09 2015-09-10 Нек Корпорейшн Сетевая система и способ управления сетью
WO2012070173A1 (en) * 2010-11-22 2012-05-31 Nec Corporation Communication system, communication device, controller, and method and program for controlling forwarding path of packet flow
US9185170B1 (en) * 2012-12-31 2015-11-10 Juniper Networks, Inc. Connectivity protocol delegation
EP2838231B1 (en) * 2013-05-15 2017-02-01 NTT DoCoMo, Inc. Network system and access controller and method for operating the network system
CN105049541B (zh) * 2014-04-17 2018-06-22 财团法人资讯工业策进会 用于实时通信的网络地址转换穿透系统与方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7843843B1 (en) * 2004-03-29 2010-11-30 Packeteer, Inc. Adaptive, application-aware selection of differntiated network services
US20110261825A1 (en) * 2009-03-09 2011-10-27 Nec Corporation OpenFlow COMMUNICATION SYSTEM AND OpenFlow COMMUNICATION METHOD
US20120005362A1 (en) * 2010-06-30 2012-01-05 Hitachi, Ltd. Streaming data delivery system and method thereof

Also Published As

Publication number Publication date
TW201406114A (zh) 2014-02-01
EP2865136A4 (en) 2016-03-16
TWI510040B (zh) 2015-11-21
EP2865136A1 (en) 2015-04-29
KR101979058B1 (ko) 2019-05-15
WO2014003700A1 (en) 2014-01-03
JP2015518695A (ja) 2015-07-02
JP5872733B2 (ja) 2016-03-01
CN104272661B (zh) 2018-05-01
CN104272661A (zh) 2015-01-07
US20150134842A1 (en) 2015-05-14

Similar Documents

Publication Publication Date Title
KR101979058B1 (ko) 네트워크 경로를 프로비저닝하는 변환된 세션 정보
US10680928B2 (en) Multi-stream transmission method and device in SDN network
US10972510B2 (en) Media session between network endpoints
JP6538986B2 (ja) 仮想マシンパケット制御
Govindarajan et al. Realizing the quality of service (QoS) in software-defined networking (SDN) based cloud infrastructure
US9065768B2 (en) Apparatus for a high performance and highly available multi-controllers in a single SDN/OpenFlow network
CN114756340A (zh) 算力调度系统、方法、装置和存储介质
US10079863B2 (en) Media session between network endpoints
US10601879B2 (en) Media session between network endpoints
KR20170070143A (ko) 소프트웨어 정의 네트워크를 기반으로 내용 배포 네트워크를 구현하는 방법 및 시스템
US9350666B2 (en) Managing link aggregation traffic in a virtual environment
US9686178B2 (en) Configuring link aggregation groups to perform load balancing in a virtual environment
JP2023508061A (ja) アカウントアクセス方法及びその装置、記憶媒体、並びに電子機器
TWI625050B (zh) 基於軟體定義網路的網路傳輸方法與系統
WO2014133025A1 (ja) 通信システム、上位コントローラ、ネットワークの制御方法及びプログラム
CN114095417B (zh) 一种可编程的路由交换机、系统及方法
US10361922B2 (en) Software defined network (SDN) proxy correlation index (PCI) data-plane control

Legal Events

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