KR20150039877A - 스위치 시스템, 스위치 제어 방법 및 기억 매체 - Google Patents
스위치 시스템, 스위치 제어 방법 및 기억 매체 Download PDFInfo
- Publication number
- KR20150039877A KR20150039877A KR1020157007618A KR20157007618A KR20150039877A KR 20150039877 A KR20150039877 A KR 20150039877A KR 1020157007618 A KR1020157007618 A KR 1020157007618A KR 20157007618 A KR20157007618 A KR 20157007618A KR 20150039877 A KR20150039877 A KR 20150039877A
- Authority
- KR
- South Korea
- Prior art keywords
- packet
- action
- open
- flow
- unit
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000012545 processing Methods 0.000 claims abstract description 49
- 230000008569 process Effects 0.000 claims abstract description 17
- 238000004891 communication Methods 0.000 claims description 31
- 230000006870 function Effects 0.000 description 185
- 230000009471 action Effects 0.000 description 180
- 238000010586 diagram Methods 0.000 description 22
- 230000007246 mechanism Effects 0.000 description 11
- 238000003860 storage Methods 0.000 description 9
- 238000005111 flow chemistry technique Methods 0.000 description 6
- 230000007704 transition Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/34—Signalling channels for network management communication
- H04L41/342—Signalling channels for network management communication between virtual entities, e.g. orchestrators, SDN or NFV entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/252—Store and forward routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3009—Header conversion, routing tables or routing tags
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
스위치 시스템은, 기존의 리소스로서 스위치의 테이블들을 사용해서 오픈플로우 테이블의 엔트리 수 확장을 실현한다. 구체적으로는, 스위치는 주어진 패킷에 대한 처리를 각각 정의한 복수의 테이블을, 각 테이블에 정의된 조건 및 처리 내용에 기초하여 논리적으로 통합함으로써 오픈플로우 테이블을 구성한다. 스위치는 오픈플로우 테이블을 참조하여, 수신 패킷에 대한 처리 내용을 결정한다. 스위치는 결정된 처리 내용에 기초하여, 수신 패킷에 대한 처리를 실행한다.
Description
본 발명은, 스위칭 시스템에 관한 것으로, 특히 개개의 스위치가 복수의 테이블을 갖는 스위칭 시스템에 관한 것이다.
네트워크 시스템에서의 통신 경로를 제어하기 위해, 통신 기기의 제어 프로토콜로서 오픈플로우(OpenFlow) 기술을 사용한 경로 제어 방법이 최근 개발되었다. 오픈플로우 기술에 따라 경로 제어가 행해지는 네트워크를, 오픈플로우 네트워크(OpenFlow Network)라고 칭한다.
오픈플로우 네트워크에서는, OFC(OpenFlow Controller) 등의 컨트롤러가 OFS(OpenFlow Switch) 등의 스위치의 각각의 오픈플로우 테이블(OpenFlow Table)을 조작하여 스위치의 거동을 제어한다. 컨트롤러는 오픈플로우 프로토콜(OpenFlow Protocol)에 준거한 제어 메시지를 사용해서 스위치를 제어하기 위해 보안 채널(Secure Channel)을 통해 스위치에 접속되어 있다.
오픈플로우 네트워크에 있어서의 스위치는, 오픈플로우 네트워크를 형성하고, 컨트롤러의 제어 하에 있는 에지 스위치 또는 코어 스위치이다. 오픈플로우 네트워크 내의 입력측 에지 스위치에서의 패킷의 수신으로부터 오픈플로우 네트워크 내의 출력측 에지 스위치에서의 송신까지의 일련의 패킷 처리 유형들을 플로우(flow)라고 칭한다.
오픈플로우 테이블은, 미리 결정된 매치 조건(룰)에 적합한 패킷(통신 데이터)에 대하여 행해야 할 미리 결정된 처리 내용(액션)을 정의한 플로우 엔트리(Flow Entry)가 등록된 테이블이다.
플로우 엔트리의 룰은, 패킷의 프로토콜 계층구조의 각 계층의 헤더 필드에 포함되는 수신처 어드레스(Destination Address), 송신원 어드레스(Source Address), 수신처 포트(Destination Port), 및 송신원 포트(Source Port) 중 일부 또는 전부의 다양한 조합에 따라 정의되고, 구별가능하다. 또한, 상기 어드레스는 MAC 어드레스(Media Access Control Address) 및 IP 어드레스(Internet Protocol Address)를 포함한다. 또한, 입구 포트(Ingress Port)의 정보도 플로우 엔트리의 룰로서 사용가능하다.
플로우 엔트리의 액션은 "특정한 포트에 출력한다", "폐기한다", "헤더를 재기입한다"와 같은 동작을 나타낸다. 예를 들어, 스위치는, 플로우 엔트리의 액션에 출력 포트의 식별 정보(예를 들어, 출력 포트 번호)가 표시되어 있으면 그 포트에 패킷을 출력하고, 출력 포트의 식별 정보가 표시되어 있지 않으면 패킷을 파기한다. 대안적으로, 스위치는, 플로우 엔트리의 액션에 헤더 정보가 표시되어 있으면, 그 헤더 정보에 기초하여 패킷의 헤더를 재기입한다.
오픈플로우 네트워크 내의 스위치는, 플로우 엔트리의 룰을 따르는 패킷 군(패킷 계열)에 대하여 플로우 엔트리의 액션을 실행한다.
오픈플로우 스위치의 상세에 대해서는, 비특허 문헌 1 및 2에 기재되어 있다.
네트워크 상의 대량의 플로우를 제어하기 위해서는 대용량의 오픈플로우 테이블이 요구된다. 현 상황에서는, 오픈플로우 테이블에 사용되는 TCAM(Ternary Content Addressable Memory)은 대용량을 갖지 않으므로, 필요 충분한 용량이 보장되지 않는다. 또한, 오픈플로우 테이블에서 사용되고 있는 스위치의 각 테이블(주로 TCAM)의 용량 자체를 증가시키는 것은 어렵다.
상기 과제의 해결 방법의 하나로서 외부 TCAM이 사용될 수 있지만, 이것에는 비용이 든다. 또한, 10G 멀티포트와 같은 고속 전송의 기기(데이터 전송속도 10G 비트/초에 대응할 수 있는 복수의 포트를 갖는 네트워크 기기)에서는, 외부 TCAM이 이용될 수 없다. 적어도 현 상황에서는 10G 스위치에서 동작가능한 외부 TCAM은 존재하지 않는다.
"The OpenFlow Switch Consortium" <http://www.openflowswitch.org/>
"OpenFlow Switch Specification Version 0.9.0(Wire Protocol 0x98), 2009년 7월 20일, Current Maintainer: Brandon Heller(brandonh@stanford.edu)" <http://www.openflowswitch.org/documents/openflow-spec-v0.9.0.pdf>
본 발명의 목적은 기존의 리소스로서 스위치의 테이블들을 사용해서 오픈플로우 테이블의 엔트리 수 확장을 실현하는 것에 있다.
본 발명의 스위칭 시스템은, 미리 결정된 수신 패킷에 대한 처리를 각각 정의한 복수의 테이블을, 각 테이블에 정의된 조건 및 처리 내용에 기초하여 논리적으로 통합해서 오픈플로우 테이블을 구성하고, 오픈플로우 테이블을 참조하여, 수신 패킷에 대한 처리 내용을 결정하는 오픈플로우 기능부와, 결정된 처리 내용에 기초하여, 수신 패킷에 대한 처리를 실행하는 액션 기능부를 포함한다.
본 발명의 스위치 제어 방법은 오픈플로우 스위치에서 실시되며, 수신 패킷에 대한 처리를 각각 정의한 복수의 테이블을, 각 테이블에 정의된 조건 및 처리 내용에 기초하여 논리적으로 통합해서 오픈플로우 테이블을 구성하는 단계; 오픈플로우 테이블을 참조하여, 수신 패킷에 대한 처리 내용을 결정하는 단계; 및 결정된 처리 내용에 기초하여, 수신 패킷에 대한 처리를 실행하는 단계를 포함한다.
본 발명에 따른 프로그램은, 스위치로서 사용되는 컴퓨터로 하여금, 전술한 스위치 제어 방법에 있어서의 처리를 실행하게 하는 프로그램이다. 본 발명에 따른 프로그램은 저장 유닛 및 저장 매체에 저장하는 것이 가능하다는 점에 유의해야 한다.
본 발명은 컨트롤러가 스위치 내부의 복수의 테이블을 1개의 대용량의 오픈플로우 테이블로서 사용할 수 있게 하는 것을 허용한다.
도 1은 본 발명에 따른 스위칭 시스템의 구성예를 나타내는 개념도이다.
도 2는 본 발명의 제1 실시 형태에 따른 오픈플로우 기능부의 상세를 나타내는 개념도이다.
도 3은 본 발명의 제1 실시 형태에 따른 오픈플로우 액션 해결부의 상세를 나타내는 개념도이다.
도 4는 오픈플로우 테이블 제어의 개요를 도시하는 도면이다.
도 5는 오픈플로우 테이블 제어의 제1 방식의 예의 상세를 도시하는 도면이다.
도 6은 오픈플로우 테이블 제어의 제2 방식의 예의 상세를 도시하는 도면이다.
도 7a는 패킷 유입 시의 스위칭 시스템의 제1 동작예를 도시하는 도면이다.
도 7b는 패킷 유입 시의 스위칭 시스템의 제1 동작예를 도시하는 도면이다.
도 8a는 패킷 유입 시의 스위칭 시스템의 제2 동작예를 도시하는 도면이다.
도 8b는 패킷 유입 시의 스위칭 시스템의 제2 동작예를 도시하는 도면이다.
도 9는 오픈플로우 테이블 제어의 제1 방식의 구체예를 설명하기 위한 도면이다.
도 10은 오픈플로우 테이블 제어의 제2 방법의 구체예를 설명하기 위한 도면이다.
도 11은 본 발명의 제2 실시 형태에 따른 스위칭 시스템의 실시예 1의 상세를 나타내는 개념도이다.
도 12는 본 발명의 제2 실시 형태에 따른 스위칭 시스템의 실시예 2의 상세를 나타내는 개념도이다.
도 13은 본 발명의 제2 실시 형태에 따른 스위칭 시스템의 실시예 3의 상세를 나타내는 개념도이다.
도 2는 본 발명의 제1 실시 형태에 따른 오픈플로우 기능부의 상세를 나타내는 개념도이다.
도 3은 본 발명의 제1 실시 형태에 따른 오픈플로우 액션 해결부의 상세를 나타내는 개념도이다.
도 4는 오픈플로우 테이블 제어의 개요를 도시하는 도면이다.
도 5는 오픈플로우 테이블 제어의 제1 방식의 예의 상세를 도시하는 도면이다.
도 6은 오픈플로우 테이블 제어의 제2 방식의 예의 상세를 도시하는 도면이다.
도 7a는 패킷 유입 시의 스위칭 시스템의 제1 동작예를 도시하는 도면이다.
도 7b는 패킷 유입 시의 스위칭 시스템의 제1 동작예를 도시하는 도면이다.
도 8a는 패킷 유입 시의 스위칭 시스템의 제2 동작예를 도시하는 도면이다.
도 8b는 패킷 유입 시의 스위칭 시스템의 제2 동작예를 도시하는 도면이다.
도 9는 오픈플로우 테이블 제어의 제1 방식의 구체예를 설명하기 위한 도면이다.
도 10은 오픈플로우 테이블 제어의 제2 방법의 구체예를 설명하기 위한 도면이다.
도 11은 본 발명의 제2 실시 형태에 따른 스위칭 시스템의 실시예 1의 상세를 나타내는 개념도이다.
도 12는 본 발명의 제2 실시 형태에 따른 스위칭 시스템의 실시예 2의 상세를 나타내는 개념도이다.
도 13은 본 발명의 제2 실시 형태에 따른 스위칭 시스템의 실시예 3의 상세를 나타내는 개념도이다.
<제1 실시 형태>
이하에, 본 발명의 제1 실시 형태에 대해서 첨부 도면을 참조하여 설명한다.
[시스템 구성]
도 1에 도시한 바와 같이, 본 발명에 따른 스위칭 시스템은 컨트롤러(101)와 스위치(102)를 포함한다.
컨트롤러(101)는, 오픈플로우 프로토콜에 준거한 처리에서 스위치(102)를 제어한다.
[스위치의 구조]
스위치(102)는, 프로토콜 제어부(103), 입력 포트(104), 오픈플로우 기능부(105), 레거시(Legacy) 기능부(108), 액션(Action) 기능부(111) 및 출력 포트(112)를 포함한다.
프로토콜 제어부(103)는, 컨트롤러(101)가 오픈플로우 프로토콜에 준거한 처리에서 스위치(102)를 제어하기 위한 통신을 행할 때에, 컨트롤러(101)와 스위치(102) 사이에서 프로토콜 제어를 행한다. 프로토콜 제어부(103)는 스위치(102) 내에 제공될 필요는 없고, 스위치(102) 이전의 스테이지에서 제공될 수 있다.
입력 포트(104)는 패킷 입력용 인터페이스이다. 입력 포트(104)는 오픈플로우 유효 포트와 오픈플로우 무효 포트를 갖는다. 오픈플로우 유효 포트는 오픈플로우 프로토콜을 따르는 입력 포트이며, 오픈플로우 무효 포트는 오픈플로우 프로토콜을 따르지 않는 입력 포트이다.
오픈플로우 기능부(105)는 오픈플로우 유효 포트로부터 입력한 패킷을 처리한다.
오픈플로우 기능부(105)는 오픈플로우 테이블 관리부(106) 및 오픈플로우 액션 해결부(OpenFlow Action Resolver)(107)를 포함한다.
오픈플로우 테이블 관리부(106)는 스위치(102)가 사용하는 오픈플로우 테이블을 유지한다. 오픈플로우 테이블에는, 오픈플로우 프로토콜을 따르는 패킷에 대한 액션(오픈플로우 처리의 액션)이 정의되어 있다.
오픈플로우 액션 해결부(107)는 오픈플로우 테이블 관리부(106)의 검색(Lookup) 결과를 기초로 오픈플로우 처리의 액션을 결정한다.
레거시 기능부(108)는 오픈플로우 무효 포트로부터 입력된 패킷을 처리한다.
레거시 기능부(108)는 레거시 테이블 관리부(109) 및 레거시 액션 해결부(110)를 포함한다.
레거시 테이블 관리부(109)는 스위치(102)가 사용하는 레거시 테이블이다. 레거시 테이블 관리부(109)는 오픈플로우 프로토콜을 따르지 않는 패킷(통상의 패킷 등)에 대한 액션(레거시 처리의 액션)을 정의하고 있다.
레거시 액션 해결부(110)는 레거시 테이블 관리부(109)의 검색 결과를 기초로 레거시 처리의 액션을 결정한다. 레거시 처리에서는, 통상의 스위치 기능을 사용한다.
액션 기능부(111)는 오픈플로우 기능부(105) 또는 레거시 기능부(108)에서 결정된 액션을 수행한다.
출력 포트(112)는 패킷 출력용 인터페이스이다.
[오픈플로우 처리와 레거시 처리의 차이]
오픈플로우 처리에서는, 패킷의 경로가 외부의 컨트롤러를 통하여 제어된다. 컨트롤러는 전체 네트워크에서 최적인 경로를 선택한다. 한편, 레거시 처리에서는, 통상의 스위치 및 라우터에서와 같이, 자율 분산으로 경로가 제어된다. 통상의 스위치 및 라우터는 자신의 환경에 관한 정보로부터 네트워크 상태를 결정하여 최적 경로를 선택한다.
오픈플로우 처리에서는, 최대 12종류의 정보의 조합에 기초하여 패킷 식별을 행할 수 있다. 한편, 레거시 처리에서는, L2 네트워크의 경우에서의 수신처 MAC 어드레스 및 L3 네트워크의 경우에서의 수신처 IP 어드레스와 같이, 패킷 식별에 사용할 수 있는 정보 종류의 수가 적다. 이로 인해, 섬세한 플로우 제어를 행하는 것이 어렵다. 예를 들어, 레거시 처리에서는, 동일한 수신처 IP 어드레스에서도, 송신원 TCP 포트 번호가 상이하면, 다른 플로우로 판단해서 다른 경로를 선택한다.
[스위칭 시스템의 전체 동작]
이하에, 도 1의 스위칭 시스템의 전체 동작에 대해서 설명할 것이다.
[패킷 입력]
스위치(102)에 신규 패킷이 유입했을 때, 스위치(102)는 입력 포트(104)에서 이 패킷을 수취한다.
스위치(102)는 패킷을 수취한 입력 포트(104)가 오픈플로우 유효 포트인지 아닌지 확인한다. 예를 들어, 스위치(102)는 스위치(102) 자체 또는 입력 포트(104)의 설정 정보(config)를 참조하여, 입력 포트(104)가 오픈플로우 유효 포트인지 아닌지 확인한다.
[패킷 입력으로부터 오픈플로우 처리로의 이행]
입력 포트가 오픈플로우 유효 포트인 경우, 스위치(102)는 패킷을 입력 포트(104)로부터 오픈플로우 기능부(105)에 전달한다.
[오픈플로우 처리]
오픈플로우 기능부(105)는 전달받은 패킷에 대해서, 스위치(102)의 복수의 테이블을 유지하는 오픈플로우 테이블 관리부(106)에서 검색 처리를 행한다.
이어서, 오픈플로우 기능부(105)는, 오픈플로우 액션 해결부(107)에서, 검색 결과 및 각 테이블의 우선 순위(Priority)에 기초하여 패킷의 액션을 결정한다. 우선 순위는 우선 레벨로도 지칭될 수 있다.
[오픈플로우 처리로부터 액션 실행으로의 이행]
결정된 액션이 "Packet-IN"(컨트롤러에 대한 패킷의 액션 문의)이었을 경우(예를 들어, 플로우 엔트리가 존재하지 않고 액션을 결정할 수 없었을 경우), 오픈플로우 기능부(105)는 프로토콜 제어부(103)를 통해서 컨트롤러(101)에 문의(해당 패킷의 전송 등)를 행한다. 처음에는, 레거시 처리의 대상으로 되는 패킷 이외의 모든 패킷의 액션이 무조건 "Packet-IN"이라고 설정될 수 있다. 오픈플로우 기능부(105)는 문의에 대한 응답으로서 "Packet-OUT"(컨트롤러로부터의 액션 문의 결과)을 수취하고, 그 내용을 해당 패킷의 액션으로서 결정하고, 오픈플로우 테이블 관리부(106)가 유지하는 테이블에 등록한다. 이후, 오픈플로우 기능부(105)는 오픈플로우 액션 해결부(107)에서 전술한 패킷과 동일한 룰을 따르는 패킷에 대하여 이 액션을 결정하게 된다.
오픈플로우 기능부(105)는 결정된 액션에 기초하여 패킷을 액션 기능부(111)로 보낸다. 즉, 패킷의 처리의 주체가 오픈플로우 기능부(105)로부터 액션 기능부(111)로 이행한다.
[오픈플로우 처리로부터 레거시 처리로의 이행]
오픈플로우 기능부(105)는, 결정된 액션이 "NORMAL"(레거시 기능부(108)를 사용한 패킷 처리)이었던 경우에는, 패킷을 레거시 기능부(108)로 보낸다. 즉, 패킷의 처리의 주체가, 오픈플로우 기능부(105)로부터 레거시 기능부(108)로 이행한다.
[패킷 입력으로부터 레거시 처리로의 이행]
또한, 스위치(102)는, 입력 포트(104)가 오픈플로우 무효 포트인 경우 또는 당해 패킷에 대하여 먼저(이전에) 오픈플로우 기능부(105)에서 결정된 액션이 "NORMAL"이었을 경우, 패킷을 입력 포트(104)로부터 레거시 기능부(108)로 보낸다. 즉, 패킷의 처리의 주체가 입력 포트(104)로부터 레거시 기능부(108)로 이행한다.
[레거시 처리]
레거시 기능부(108)는 수취한 패킷에 대해서, 스위치(102)의 복수의 테이블로 구성되는 레거시 테이블 관리부(109)에 있어서 검색 처리를 행한다.
[레거시 처리로부터 액션 실행으로의 이행]
이어서, 레거시 기능부(108)는 레거시 액션 해결부(110)에 있어서 검색 결과 및 각 테이블의 우선 순위에 기초하여 패킷의 액션을 결정한다. 즉, 패킷의 처리의 주체가 레거시 기능부(108)로부터 액션 기능부(111)로 이행한다.
레거시 기능부(108) 내지 레거시 액션 해결부(110)에서의 레거시 처리에서는 통상의 스위치 기능을 사용하므로, 그의 상세한 설명은 생략된다.
[액션 실행]
액션 기능부(111)는 패킷에 대하여 오픈플로우 기능부(105) 또는 레거시 기능부(108)에서 결정된 액션을 실행한다.
오픈플로우 기능부(105)에서 결정된 액션의 예로서, 헤더 정보의 재기입, 지정된 출력 포트로부터의 패킷 출력, 패킷 파기 등을 생각할 수 있다. 레거시 기능부(108)에서 결정된 액션의 예로서, 라우팅(routing)에 의한 패킷 전송 등을 생각할 수 있다. 그러나, 본 발명은 이들 예에 한정되지 않는다.
마지막으로, 액션 기능부(111)는 실행될 액션이 "패킷 출력"을 포함할 때, 그 액션의 내용에 따라, 적절한 출력 포트(112)로부터 패킷을 출력한다.
[컨트롤러에 의한 오픈플로우 테이블의 제어]
또한, 컨트롤러(101)는 프로토콜 제어부(103)를 통해서 스위치(102)의 오픈플로우 테이블 관리부(106)를 제어할 수 있다. 여기서, "오픈플로우 테이블 관리부(106)의 제어"는, 오픈플로우 테이블 내의 플로우 엔트리의 등록/변경/삭제/일괄 삭제 등을 의미한다.
오픈플로우 테이블 관리부(106)가 오픈플로우 테이블로서 유지하는 스위치(102)의 각 테이블은, 반드시 오픈플로우 사양에서 규정되어 있는 모든 조작을 따를 필요는 없다.
이로 인해, 컨트롤러(101)는, 오픈플로우 테이블에 대해 오픈플로우 테이블에 관리부(106)에 의해 유지되는 각 테이블에 의해 실현 가능할 수 있는 기능(설정 가능한 액션들)을 고려하여, 오픈플로우 테이블 관리부(106)를 제어할 필요가 있다.
[오픈플로우 기능부의 상세]
도 2는, 본 발명의 오픈플로우 기능부(105)의 상세에 대해서 설명하기 위한 도면이다.
오픈플로우 기능부(105), 오픈플로우 테이블 관리부(106), 오픈플로우 액션 해결부(107) 및 액션 기능부(111)는 도 1에 도시되어 있는 것과 동일한 메커니즘 및 기능을 갖는다.
오픈플로우 기능부(105)는 오픈플로우 테이블 관리부(106) 및 오픈플로우 액션 해결부(107)를 포함한다.
오픈플로우 테이블 관리부(106)는 테이블 군(113) 및 검색 기능부(114)를 포함한다.
테이블 군(113)은 오픈플로우 테이블을 구성하는 테이블 군이다.
검색 기능부(114)는 테이블 군(113)에 기초하여 입력 패킷의 데이터를 검색한다.
검색 기능부(114)는 L2/L3/기타 테이블(OF) 검색 기능부(115) 및 TCAM(OF) 검색 기능부(116)를 포함한다.
"OF"는 "OpenFlow"의 약어이다.
L2/L3/기타 테이블(OF) 검색 기능부(115)는 입력 패킷에 대해서 L2 테이블(OF), L3 테이블(OF) 및 기타 테이블(OF)을 참조하여 엔트리를 검색한다. 기타 테이블(OF)의 일례로서, 멀티캐스트 라우팅 테이블을 들 수 있다. 즉, L2/L3/기타 테이블(OF) 검색 기능부(115)는 입력 패킷에 대해서 프로토콜 단위로 테이블의 검색을 실행한다.
TCAM(OF) 검색 기능부(116)는 입력 패킷에 대해서 TCAM(OF)을 참조하여, 엔트리를 검색한다. 즉, TCAM(OF) 검색 기능부(116)는 입력 패킷에 대해서 TCAM을 검색한다.
[오픈플로우 기능부의 동작]
이하에, 도 2에 도시된 오픈플로우 기능부(105)의 동작에 대해서 설명한다.
입력 포트(104)는 오픈플로우 유효 포트로부터 입력된 패킷을, 오픈플로우 기능부(105)로 보낸다.
오픈플로우 기능부(105)는 받은 패킷에 대해서 스위치(102)의 복수의 테이블로 구성되는 오픈플로우 테이블 관리부(106)에서 검색 처리를 행한다.
이 때, 오픈플로우 테이블 관리부(106)의 검색 기능부(114)는, 오픈플로우 테이블을 구성하는 테이블 군(113)에 등록된 엔트리 정보에 기초하여 검색 처리를 행한다.
구체적으로, 검색 기능부(114)에서, L2/L3/기타 테이블(OF) 검색 기능부(115)가 먼저 검색 처리를 행하고, 계속해서, TCAM(OF) 검색 기능부(116)가 검색 처리를 행한다.
검색 기능부(114)는 검색 결과를 오픈플로우 액션 해결부(107)로 보낸다.
오픈플로우 액션 해결부(107)는 검색 결과 및 각 테이블의 우선 순위에 기초하여 패킷의 액션을 결정한다.
[하드웨어의 예시]
이하에, 본 발명에 따른 스위칭 시스템을 실현하기 위한 구체적인 하드웨어의 예에 대해서 설명할 것이다.
컨트롤러(101)의 예로서, PC(퍼스널 컴퓨터), 워크스테이션, 메인 프레임, 슈퍼컴퓨터 등의 컴퓨터를 상정하고 있다. 컨트롤러(101)는, 컴퓨터에 탑재되는 확장 보드나, 물리 머신 위에 구축된 가상 머신(VM: Virtual Machine)일 수 있다.
스위치(102)의 예로서, L3 스위치(layer 3 switch), L4 스위치(layer 4 switch), L7 스위치/어플리케이션 스위치(layer 7 switch) 또는 멀티레이어 스위치(multi-layer switch) 등의 네트워크 스위치(network switch)를 상정하고 있다. 그 밖에도, 스위치(102)의 예로서, 라우터(router), 프록시(proxy), 게이트웨이(gateway), 방화벽(firewall), 로드 밸런서(load balancer: 부하 분산 장치), 대역 컨트롤러/보안 감시 컨트롤러(게이트키퍼), 기지국, 액세스 포인트(AP: Access Point), 통신 위성(CS: Communication Satellite) 및 복수의 통신 포트를 갖는 컴퓨터를 생각할 수 있다.
프로토콜 제어부(103), 오픈플로우 기능부(105), 오픈플로우 테이블 관리부(106), 오픈플로우 액션 해결부(107), 레거시 기능부(108), 레거시 테이블 관리부(109), 레거시 액션 해결부(110) 및 액션 기능부(111)는, 프로그램에 기초하여 구동되어 미리 결정된 처리를 실행하는 프로세서, 및 프로그램 및 각종 데이터를 저장하는 메모리에 의해 실현된다.
전술한 프로세서의 예로서, CPU(Central Processing Unit), 네트워크 프로세서(NP: Network Processor), 마이크로프로세서(microprocessor), 마이크로컨트롤러 또는 전용의 기능을 갖는 반도체 집적 회로(IC: Integrated Circuit)를 생각할 수 있다.
전술한 메모리의 예로서, RAM(Random Access Memory), ROM(Read Only Memory), EEPROM(Electrically Erasable and Programmable Read Only Memory) 및 플래시 메모리 등의 반도체 저장 장치, HDD(Hard Disk Drive) 및 SSD(Solid State Drive) 등의 보조 저장 장치, DVD(Digital Versatile Disk)와 같은 이동식 디스크, 및 SD 메모리 카드(Secure Digital memory card) 등의 저장 매체(media) 등을 생각할 수 있다. 버퍼 및 레지스터가 채택될 수 있다. 대안적으로, DAS(Direct Attached Storage), FC-SAN(Fibre Channel-Storage Area Network), NAS(Network Attached Storage), IP-SAN(IP-Storage Area Network) 등을 사용한 저장 장치도 채택될 수 있다.
프로세서 및 메모리는 일체화될 수 있다. 예를 들어, 최근에는 마이크로컴퓨터 등이 1칩으로 일체화하고 있다. 따라서, 전자 기기에 탑재되는 1칩 마이크로컴퓨터가 프로세서 및 메모리를 구비할 수 있다.
대안적으로, 프로토콜 제어부(103), 오픈플로우 기능부(105), 오픈플로우 테이블 관리부(106), 오픈플로우 액션 해결부(107), 레거시 기능부(108), 레거시 테이블 관리부(109), 레거시 액션 해결부(110) 및 액션 기능부(111)는, 컴퓨터에 탑재되는 확장 보드 또는 물리 머신 위에 구축된 가상 머신(VM)일 수 있다.
입력 포트(104) 및 출력 포트(112)의 예로서, 네트워크 통신을 따르는 기판(마더보드나 I/O 기판) 등의 반도체 집적 회로, NIC(Network Interface Card) 등의 네트워크 어댑터나 마찬가지의 확장 카드, 안테나 등의 통신 장치, 접속 포트(커넥터) 등의 통신 포트 등을 생각할 수 있다.
또한, 입력 포트(104) 및 출력 포트(112)가 이용하는 네트워크의 예로서, 인터넷, LAN(Local Area Network), 무선 LAN(Wireless LAN), WAN(Wide Area Network), 백본(Backbone), 케이블 TV(CATV) 회선, 유선 전화망, 휴대 전화망, WiMAX(IEEE 802.16a), 3G(3rd Generation), 전용선(lease line), IrDA(Infrared Data Association), Bluetooth(등록 상표), 시리얼 통신 회선, 데이터 버스 등을 생각할 수 있다.
프로토콜 제어부(103), 오픈플로우 기능부(105), 오픈플로우 테이블 관리부(106), 오픈플로우 액션 해결부(107), 레거시 기능부(108), 레거시 테이블 관리부(109), 레거시 액션 해결부(110) 및 액션 기능부(111) 각각은 모듈(module), 컴포넌트(component) 또는 전용 디바이스, 또는 이들의 기동(호출) 프로그램일 수 있음에 주목해야 한다.
그러나, 본 발명은 이들의 예에 한정되지 않는다.
[오픈플로우 액션 해결부의 상세]
도 3은 본 발명의 오픈플로우 액션 해결부(107)의 상세를 보여주는 도면이다.
오픈플로우 액션 해결부(107) 및 TCAM(OF) 검색 기능부(116)는 도 2에서와 동일한 메커니즘 및 기능을 갖는다.
오픈플로우 액션 해결부(107)는, TCAM(OF)의 엔트리 맵핑을 조정함으로써 TCAM(OF) 검색 기능부(116)의 일부로서 실현된다.
이로 인해, 오픈플로우 액션 해결부(107) 및 TCAM(OF) 검색 기능부(116)는 실질적으로는 1개의 기능 블록(TCAM(OF) 검색 & 오픈플로우 액션 해결부)을 구성한다. 이 기능 블록은 테이블 간 우선 순위(117) 및 TCAM(OF) 내의 엔트리(118)를 갖는다.
테이블 간 우선 순위(117)는 예상되는 액션 우선 순위를 나타낸다. TCAM(OF) 내의 엔트리(118)는, 우선 순위에 대응하는 TCAM(OF) 내의 엔트리 맵핑을 나타낸다.
TCAM(OF) 내의 엔트리(118)는, TCAM(OF) 검색용 엔트리 군(119), L2 테이블(OF) 검색 결과 참조용 엔트리(120), L3 테이블(OF) 검색 결과 참조용 엔트리(121), 기타 테이블(OF) 검색 결과 참조용 엔트리(122), 미스히트(Miss-hit)용 엔트리(123)를 포함한다.
TCAM(OF) 검색용 엔트리 군(119)은 TCAM(OF) 검색 기능부(116)에서의 TCAM(OF) 검색을 실현하기 위한 엔트리의 집합이다. L2 테이블(OF) 검색 결과 참조용 엔트리(120)는, L2 테이블(OF)의 검색 결과를 참조하기 위한 엔트리이다. L3 테이블(OF) 검색 결과 참조용 엔트리(121)는 L3 테이블(OF)의 검색 결과를 참조하기 위한 엔트리이다. 기타 테이블(OF) 검색 결과 참조용 엔트리(122)는, 기타 테이블(OF)의 검색 결과를 참조하기 위한 엔트리이다. 미스히트용 엔트리(123)는 어느 엔트리에도 히트(hit)하지 않은 패킷을 "미스히트"로서 취급하기 위한 엔트리이다. 즉, 이들은 전술한 각각의 액션을 정의한 엔트리이다.
[오픈플로우 액션 해결부의 동작]
이하에, 도 3의 오픈플로우 액션 해결부(107)의 동작에 대해서 설명할 것이다.
오픈플로우 테이블 내의 검색 순서로서, 마지막으로, TCAM(OF) 검색 기능부(116)가 검색을 행한다. 또한, TCAM(OF) 검색 기능부(116)에의한 검색 시에, L2/L3/기타 테이블의 검색 결과를 참조하는 것이 가능한 스위치에서는, TCAM(OF)의 엔트리 맵핑을 조정함으로써, 오픈플로우 액션 해결부(107)를 실현하는 것이 가능하다는 점에 유의해야 한다.
예를 들어, 테이블 간 우선 순위(117)에서와 같은 테이블마다의 예상되는 액션 우선 순위는 TCAM(OF) 내의 엔트리(118)와 같이 맵핑함으로써 다루어질 수 있다.
도 3에 도시된 예의 경우에는, 액션 우선 순위(117)는 우선 순위가 높은 순으로부터, "전부 호환가능(TCAM(OF)에 등가)", "L2 호환가능(L2 테이블(OF)에 등가)", "L3 호환가능(L3 테이블(OF)에 등가)", "기타 호환가능(기타 테이블에 등가)"이 되어 있다.
오픈플로우 액션 해결부(107)는, TCAM(OF) 내의 엔트리 맵핑으로서 사용하여, TCAM(OF)의 검색 우선 순위가 높은 순으로부터, "TCAM(OF) 검색 기능 실현용 엔트리 군(119)", "L2 테이블(OF) 검색 결과 참조용 엔트리(120)", "L3 테이블(OF) 검색 결과 참조용 엔트리(121)", "기타 테이블(OF) 검색 결과 참조용 엔트리(122)", 및 "미스히트용 엔트리(123)"의 순서대로 배열할 수 있다.
[TCAM(OF) 검색용 엔트리 군]
TCAM(OF) 검색 기능 실현용 엔트리 군(119)은 검색 기능의 TCAM(OF) 검색 기능부(116)를 실현하기 위한 엔트리 군이다. 오픈플로우 액션 해결부(107)는, 입력 패킷이 TCAM(OF) 검색 기능 실현용 엔트리 군(119) 중의 임의의 엔트리에 히트했을 경우, 그 엔트리의 액션을 패킷에 대한 액션으로서 선택한다.
[L2 테이블(OF) 검색 결과 참조용 엔트리]
L2 테이블(OF) 검색 결과 참조용 엔트리(120)는, 사전에 행해진 L2 테이블(OF)의 검색 결과를 기초로 하여, 입력 패킷에 대응하는 엔트리가 L2 테이블(OF) 상에 존재할 경우에 히트하도록 결정된 것이다.
예를 들어, L2 테이블(OF)의 검색 시에 입력 패킷에 대응하는 엔트리가 있었던 경우에는, 플래그 "X=1"이 설정되고, TCAM(OF)의 L2 테이블(OF) 검색 결과 참조용 엔트리(120)에서는, 플래그 "X=1"이 설정된 경우에 그 엔트리가 히트하도록 결정된다.
오픈플로우 액션 해결부(107)는, L2 테이블(OF) 검색 결과 참조용 엔트리(120)가 히트하도록 결정된 경우, L2 테이블(OF)의 그 엔트리의 액션을 패킷에 대한 액션으로서 선택한다.
[L3 테이블(OF) 검색 결과 참조용 엔트리]
검색 결과 참조용 엔트리(121)는 사전에 행해진 L3 테이블(OF)의 검색의 결과를 기초로 하여, 입력 패킷에 대응하는 엔트리가 L3 테이블(OF) 상에 존재할 경우에 히트하도록 결정된 엔트리이다.
예를 들어, L3 테이블(OF) 검색 시에 입력 패킷에 대응하는 엔트리가 있었던 경우에는, 플래그 "Y=1"이 설정되고, TCAM(OF) 상의 L3 테이블(OF) 검색 결과 참조용 엔트리(121)에서는, 플래그 "Y=1"이 설정된 경우에 그 엔트리가 히트하도록 결정된다.
오픈플로우 액션 해결부(107)는, L3 테이블(OF) 검색 결과 참조용 엔트리(121)가 히트하도록 결정된 경우, L3 테이블(OF)의 그 엔트리의 액션을 패킷에 대한 액션으로서 선택한다.
[기타 테이블(OF) 검색 결과 참조용 엔트리]
검색 결과 참조용 엔트리(122)는, 사전에 행해진 기타 테이블(OF)의 검색의 결과를 기초로 하여, 입력 패킷에 대응하는 엔트리가 기타 테이블(OF) 상에 존재할 경우에 히트하도록 결정된다.
예를 들어, 기타 테이블(OF) 검색 시에 입력 패킷에 대응하는 엔트리가 있었던 경우에는, 플래그 "Z=1"이 설정되고, TCAM(OF) 상의 기타 테이블(OF) 검색 결과 참조용 엔트리(122)에서는, 플래그 "Z=1"이 설정된 경우에 그 엔트리가 히트하도록 결정된다.
오픈플로우 액션 해결부(107)는, 기타 테이블(OF) 검색 결과 참조용 엔트리(122)가 히트하도록 결정된 경우, 기타 테이블(OF)의 해당 엔트리의 액션을 패킷에 대한 액션으로서 선택한다.
[미스히트용 엔트리]
미스히트용 엔트리(123)는, 입력 패킷이 TCAM(OF)의 어느 엔트리에도 히트하지 않았을 경우에 히트하도록 결정된 엔트리이다.
여기에서는, 미스히트용 엔트리(123)는 어떤 패턴을 갖는 패킷이라도 히트하는 엔트리이다. 오픈플로우 액션 해결부(107)는, 입력 패킷이 TCAM(OF)의 어느 엔트리에도 히트하지 않고, 미스히트용 엔트리(123)에만 히트할 경우, 오픈플로우의 설정에 따라, "Packet-IN"(컨트롤러에 대한 해당 패킷의 액션 문의) 또는 "NORMAL"(레거시 기능부를 사용한 패킷 처리)을 패킷에 대한 액션으로서 선택한다.
사용자가 각 테이블의 액션 우선 순위를 변경하려고 시도할 때, TCAM(OF) 내의 엔트리의 순서가 변경될 수 있다.
[오픈플로우 테이블 제어의 개요]
도 4는 본 발명에 따른 컨트롤러에 의한 오픈플로우 테이블 제어의 개요도이다. 컨트롤러(101), 스위치(102), 프로토콜 제어부(103) 및 테이블 군(113)은, 도 1 및 도 2에서와 동일한 메커니즘 및 기능을 갖는다.
스위치(102)는 TCAM(124), L2 테이블(125), L3 테이블(126) 및 기타 테이블(127)을 포함한다.
TCAM(124)은 TCAM(OF) 및 TCAM(Legacy)을 포함한다. L2 테이블(125)은 L2 테이블(OF) 및 L2 테이블(Legacy)을 포함한다. L3 테이블(126)은 L3 테이블(OF) 및 L3 테이블(Legacy)을 포함한다. 기타 테이블(127)은 기타 테이블(OF) 및 기타 테이블(Legacy)을 포함한다.
TCAM(OF), L2 테이블(OF), L3 테이블(OF) 및 기타 테이블(OF)은 오픈플로우 테이블을 구성한다.
TCAM(Legacy), L2 테이블(Legacy), L3 테이블(Legacy) 및 기타 테이블(Legacy)은 레거시 테이블을 구성한다.
통상의 경우, 스위치(102) 상의 TCAM(124), L2 테이블(125), L3 테이블(126) 및 기타 테이블(127)은 물리적으로는 1개의 테이블이다.
본 발명에 따른 스위치(102)는 물리적으로 1개인 테이블(TCAM(124), L2 테이블(125), L3 테이블(126) 및 기타 테이블(127))을, 오픈플로우 테이블을 구성하는 테이블 군(113)과 레거시 테이블을 구성하는 테이블 군(128)으로 논리적으로 나누는 기능을 갖는다. 즉, 스위치(102)는 물리적으로 1개인 테이블(TCAM(124), L2 테이블(125), L3 테이블(126) 및 기타 테이블(127))을 각 테이블에 대해 정의된 조건 및 처리 내용에 기초하여 나누고 논리적으로 통합해서 오픈플로우 테이블(테이블 군(113))과 레거시 테이블(테이블 군(128))을 구축한다.
오픈플로우 테이블을 구성하는 테이블 군(113)은 TCAM(OF), L2 테이블(OF), L3 테이블(OF) 및 기타 테이블(OF)을 포함한다.
레거시 테이블을 구성하는 테이블 군(128)은, TCAM(Legacy), L2 테이블(Legacy), L3 테이블(Legacy) 및 기타 테이블(Legacy)을 포함한다.
[오픈플로우 테이블 제어의 개요]
이하에, 도 4의 컨트롤러에 의한 오픈플로우 테이블 제어의 개요에 대해서 설명할 것이다.
컨트롤러(101)는 프로토콜 제어부(103)를 통해서, 스위치(102)의 오픈플로우 테이블을 제어하는 것이 가능하다.
통상의 경우, 스위치 상의 TCAM(124), L2 테이블(125), L3 테이블(126) 및 기타 테이블(127)은 물리적으로는 각각 1개의 테이블이다.
본 발명에 따른 스위치는 테이블의 리소스의 일부를 오픈플로우용으로 잘라내서 사용하고, 오픈플로우 테이블을 구성하는 테이블 군(113)과 레거시 테이블을 구성하는 테이블 군(128)을 논리적으로 구축하는 기능을 갖는다. 즉, 스위치(102)는, TCAM(124), L2 테이블(125), L3 테이블(126) 및 기타 테이블(127)을 기초로, 논리적인 오픈플로우 테이블(테이블 군(113))과 레거시 테이블(테이블 군(128))을 구축한다.
오픈플로우 테이블을 구성하는 테이블들은 각각 실현할 수 있는 오픈플로우 기능이 상이하다.
이로 인해, 컨트롤러(101)는, "1: 각 테이블에서 수행 가능한 오픈플로우 기능은 어떤 것인가", "2: 제어될 엔트리는 오픈플로우 테이블을 구성하는 어느 테이블에 속하는 것인가"를 고려하여 오픈플로우 테이블 제어를 행할 필요가 있다.
예컨대 "1"에 대해서는, "컨트롤러는 다음의 메커니즘을 갖는다: 미리 각 테이블에서 실현 가능한 기능을 입력(Input)해 두고, 그 외의 제어를 행하고자 했을 경우에 에러를 반환한다", 그리고 "스위치는 다음의 메커니즘을 갖는다: 컨트롤러로부터의 제어 명령에 대해서, 대상으로 되는 테이블이 제어에 대응하는 기능을 갖고 있지 않은 경우에 에러를 되돌린다".
예컨대 "2"에 대해서는, "오픈플로우 테이블에 있어서의 우선 순위(0-64k)의 일정 범위씩을 각 테이블에 할당하고, 컨트롤러로부터 제어를 행할 때는 이 우선 순위의 범위를 기초로 사용될 테이블을 판별한다", 또는 "오픈플로우 테이블을 구성하는 각 테이블에 ID를 할당하고, 컨트롤러로부터 제어를 행할 때는 이 ID를 기초로 사용될 테이블을 판별한다".
[오픈플로우 테이블 제어의 상세(1)]
도 5는 본 발명에 따른 컨트롤러에 의한 오픈플로우 테이블 제어의 제1 방식의 예의 상세에 대해서 설명하기 위한 도면이다. 여기에서는, 우선 순위 범위를 이용하여 테이블을 지정할 경우에 대해서 설명한다.
컨트롤러(101), 스위치(102), 오픈플로우 테이블 관리부(106) 및 테이블 군(113)은 도 1 및 도 2에서와 동일한 메커니즘 및 기능을 갖는다.
오픈플로우 기능부(105)의 오픈플로우 테이블 관리부(106)는, 오픈플로우 테이블을 구성하는 테이블 군(113) 각각의 테이블에 우선 순위 범위를 할당한다.
우선 순위 범위를 기초로 하여 테이블을 지정할 경우, 테이블들의 우선 순위 범위는 중복해서는 안 된다. 또한, 우선 순위 범위들의 합계는, 오픈플로우에서 규정되어 있는 우선 순위 범위를 초과해서는 안 된다.
컨트롤러(101)는 각 테이블에 할당된 우선 순위 범위 내의 값에 기초하여 테이블을 지정한다.
오픈플로우 기능부(105)의 오픈플로우 테이블 관리부(106)는, 컨트롤러(101)에 의해 지정된 우선 순위 범위 내의 값을 기초로, 사용될 테이블을 판별한다.
[오픈플로우 테이블 제어의 상세(2)]
도 6은 본 발명에 따른 컨트롤러에 의한 오픈플로우 테이블 제어의 제2 방식의 예의 상세에 대해서 설명하기 위한 도면이다. 여기에서는, 테이블 ID를 이용하여 테이블을 지정할 경우에 대해서 설명한다.
컨트롤러(101), 스위치(102), 오픈플로우 테이블 관리부(106) 및 테이블 군(113)은 도 1 및 도 2에서와 동일한 메커니즘 및 기능을 갖는다.
오픈플로우 기능부(105)의 오픈플로우 테이블 관리부(106)는, 오픈플로우 테이블을 구성하는 테이블 군(113)의 각 테이블에 테이블 ID(129)를 할당한다.
테이블 ID에 기초하여 테이블을 지정할 경우, 테이블 ID들은 중복해서는 안 된다. 한편, 테이블들에 대해 설정되는 우선 순위 범위는 중복해도 문제 없다. 각 테이블은 테이블 ID(129)에 따라 개별 테이블로서 식별되고, 각각의 테이블의 우선 순위는 오픈플로우 액션 해결부(107)에 의해 결정되기 때문이다.
컨트롤러(101)는 각 테이블에 할당된 테이블 ID(129)에 따라 테이블을 지정한다.
오픈플로우 기능부(105)의 오픈플로우 테이블 관리부(106)는 컨트롤러(101)에 의해 지정된 테이블 ID(129)를 기초로, 사용될 테이블을 판별한다.
[패킷 유입 시의 처리의 동작예(1)]
도 7a 및 도 7b는 본 발명에 따른 패킷 유입 시의 스위칭 시스템의 제1 동작예를 보여준다. 단순화를 위하여, 동작에 관련된 기능 블록만 도시되어 있다. 단계 S101 내지 단계 S107은, 패킷 유입으로부터의 전체 동작의 흐름을 나타낸다.
(1) 단계 S101
컨트롤러(101)는 스위치(102)에 대하여 {매치 조건: 수신처 IP=AA, 액션: Drop}이라고 하는 TCAM(OF) 엔트리(1)의 등록을 미리 행한다. 스위치(102)는 테이블 군(113)의 TCAM(OF)에, TCAM(OF) 엔트리(1)의 등록을 행한다.
"매치 조건"은 L1 내지 L4까지의 선택적인 헤더 정보의 조합에 기초하여 정의된다. "Action"은, 매치 조건에 적합한 패킷에 대한 헤더 정보의 중계/파기/재기입 등의 액션을 정의한 것이다.
(2) 단계 S102
컨트롤러(101)는 스위치(102)에 대하여, {매치 조건: 수신처 IP=AA, 액션: Port 1로부터 출력}이라고 하는 L3 테이블(OF) 엔트리(1)와, {매치 조건: 수신처 IP=BB, 액션: Port 2로부터 출력}이라고 하는 L3 테이블(OF) 엔트리(2)의 등록을 미리 행한다. 스위치(102)는 테이블 군(113)의 L3 테이블(OF)에 L3 테이블(OF) 엔트리(1) 및 L3 테이블(OF) 엔트리(2)를 등록한다.
(3) 단계 S103
입력 포트(104)는 패킷 유입 시에, 오픈플로우 유효 포트에 수신처 IP=AA의 패킷이 유입했을 경우, 그 패킷을 오픈플로우 기능부(105)에 송신한다.
(4) 단계 S104
오픈플로우 기능부(105)는 오픈플로우 유효 포트에 수신처 IP=AA의 패킷이 유입했을 경우, 그 패킷을 처리한다.
(5) 단계 S105
우선, 오픈플로우 기능부(105)에 있어서, L2/L3/기타 테이블(OF) 검색 기능부(115)는 유입한 패킷에 대해서 L2/L3/기타 테이블(OF)에서의 검색을 행한다. 이 검색에 있어서, 당해 패킷은, L3 테이블(OF) 엔트리(1)에 히트한다.
(6) 단계 S106
L2/L3/기타 테이블(OF) 검색 기능부(115)는 검색 결과를 오픈플로우 액션 해결부(107)에 통지한다. 도 7b에서, 오픈플로우 액션 해결부(107)와 TCAM(OF) 검색 기능부(116)는 1개의 기능 블록(TCAM(OF) 검색 & 오픈플로우 액션 해결부)으로서 나타난다.
(7) 단계 S107
TCAM(OF) 검색 기능부(116)는 유입한 패킷에 대해서 TCAM(OF)에서의 검색을 행한다. 이 검색에 있어서, 패킷은 TCAM(OF) 엔트리(1)에 최초로 히트한다. 이 시점에서 TCAM(OF)의 검색 처리는 종료한다. TCAM(OF) 검색 기능부(116)는 검색 결과를 오픈플로우 액션 해결부(107)에 통지한다.
(8) 단계 S108
오픈플로우 액션 해결부(107)는 L2/L3/기타 테이블(OF) 검색 기능부(115)와 TCAM(OF) 검색 기능부(116) 각각으로부터 검색 결과를 수취하고, 테이블 간 우선 순위에 따라, 유입한 패킷에 대한 액션을 결정한다. 여기에서는, TCAM(OF)의 우선 순위가 가장 높다. 그로 인해, 오픈플로우 액션 해결부(107)는, TCAM(OF) 엔트리(1)의 액션(Drop)을 유입한 패킷에 대한 액션으로서 결정하고, 결정한 액션(Drop)을 액션 기능부(111)에 통지한다.
(9) 단계 S109
액션 기능부(111)는 오픈플로우 액션 해결부(107)에서 결정된 액션(Drop)을 실행한다. 여기에서는, 액션 기능부(111)는, 액션이 "Drop"이기 때문에, 패킷의 출력을 행하지 않는다. 액션 기능부(111)는 유입한 패킷 및 동일 플로우에 속하는 후속 패킷들을 파기한다.
[패킷 유입 시의 처리의 동작예(2)]
도 8a 및 도 8b는, 본 발명에 따른 패킷 유입 시의 스위칭 시스템의 제2 동작예이다. 단순화를 위하여, 동작에 관련된 기능 블록만 기재하고 있다. 단계 S201 내지 단계 S210은 패킷 유입으로부터의 전체 동작의 흐름을 나타낸다.
(1) 단계 S201
컨트롤러(101)는 스위치(102)에 대하여, {매치 조건: 수신처 IP=AA, 액션: Drop}이라고 하는 TCAM(OF) 엔트리(1)의 등록을 미리 행한다. 스위치(102)는 테이블 군(113)의 TCAM(OF)에 TCAM(OF) 엔트리(1)의 등록을 행한다.
(2) 단계 S202
컨트롤러(101)는 스위치(102)에 대하여, {매치 조건: 수신처 IP=AA, 액션: Port 1로부터 출력}이라고 하는 L3 테이블(OF) 엔트리(1)와, {매치 조건: 수신처 IP=BB, 액션: Port 2로부터 출력}이라고 하는 L3 테이블(OF) 엔트리(2)의 등록을 미리 행한다. 스위치(102)는 테이블 군(113)의 L3 테이블(OF)에 L3 테이블(OF) 엔트리(1) 및 L3 테이블(OF) 엔트리(2)를 등록한다.
(3) 단계 S203
입력 포트(104)는 패킷 유입 시에, 오픈플로우 유효 포트에 대하여 수신처 IP=BB의 패킷이 유입했을 경우, 그 패킷을 오픈플로우 기능부(105)에 송신한다.
(4) 단계 S204
오픈플로우 기능부(105)는 오픈플로우 유효 포트에 대하여 수신처 IP=BB의 패킷이 유입했을 경우, 그 패킷을 처리한다.
(5) 단계 S205
우선, 오픈플로우 기능부(105)에 있어서, L2/L3/기타 테이블(OF) 검색 기능부(115)는 패킷에 대해서 L2/L3/기타 테이블(OF)에서의 검색을 행한다. 이 검색에 있어서, 패킷은 L3 테이블(OF) 엔트리(2)에 히트한다.
(6) 단계 S206
L2/L3/기타 테이블(OF) 검색 기능부(115)는 검색 결과를 오픈플로우 액션 해결부(107)에 통지한다. 도 8b에서, 오픈플로우 액션 해결부(107)와 TCAM(OF) 검색 기능부(116)는 1개의 기능 블록(TCAM(OF) 검색 & 오픈플로우 액션 해결부)으로서 나타난다.
(7) 단계 S207
TCAM(OF) 검색 기능부(116)는 유입한 패킷에 대해서 TCAM(OF)에서의 검색을 행한다. 그러나, 유입한 패킷은 수신처 IP=BB의 패킷이기 때문에, TCAM(OF)에는 그 패킷이 히트하는 엔트리가 없다. 이 시점에서 TCAM(OF)의 검색 처리는 종료한다. TCAM(OF) 검색 기능부(116)는, 이 검색 결과를 오픈플로우 액션 해결부(107)에 통지한다. 이 시점에서 TCAM(OF)의 검색 처리는 종료한다. TCAM(OF) 검색 기능부(116)는 검색 결과를 오픈플로우 액션 해결부(107)에 통지한다.
(8) 단계 S208
오픈플로우 액션 해결부(107)는, L2/L3/기타 테이블(OF) 검색 기능부(115)와 TCAM(OF) 검색 기능부(116) 각각으로부터 검색 결과를 수취하고, 테이블 간 우선 순위에 따라, 유입한 패킷에 대한 액션을 결정한다. 여기에서는, 대상이 되는 엔트리가 L3 테이블(OF) 엔트리(2)에만 존재한다. 그로 인해, 오픈플로우 액션 해결부(107)는 L3 테이블(OF) 엔트리(2)의 액션(Port 2로부터 출력)을 유입한 패킷에 대한 액션으로서 결정하고, 결정한 액션(Port 2로부터 출력)을 액션 기능부(111)에 통지한다.
(9) 단계 S209
액션 기능부(111)는, 오픈플로우 액션 해결부(107)에서 결정된 액션(Port 2로부터 출력)을 실행한다.
(10) 단계 S210
액션 기능부(111)는, 유입한 패킷 및 동일 플로우에 속하는 후속 패킷들을 Port 2를 갖는 출력 포트(112)에 출력한다.
(11) 단계 S211
출력 포트(112)는 액션 기능부(111)로부터 출력된 패킷을 Port 2에 출력한다.
(12) 단계 S212
Port 2로부터 출력된 패킷은 네트워크로 유출되고, 수신처 IP=BB를 향해서 전송된다.
도 8a 및 도 8b에서, L2/L3/기타 테이블(OF) 검색 기능부(115)는 유입한 패킷이 복수의 테이블의 임의의 엔트리에 히트하는 경우에는, 히트 한 모든 엔트리를 검색 결과로서 오픈플로우 액션 해결부(107)에 통지한다. 오픈플로우 액션 해결부(107)는, 유입한 패킷이 우선 순위가 가장 높은 TCAM(OF) 내의 어느 엔트리에도 히트하지 않는 경우, L2/L3/기타 테이블(OF) 검색 기능부(115)의 검색 결과 중에서 우선 순위가 가장 높은 테이블에 히트하는 엔트리를 채용한다.
도 8a 및 도 8b에 있어서, L2/L3/기타 테이블(OF) 검색 기능부(115)는, 유입한 패킷이 복수의 테이블 내의 엔트리들에 히트하는 경우에는, 테이블 간 우선 순위(117)에 따라, 이들 테이블 중 우선 순위가 가장 높은 테이블 내의 히트하는 엔트리를 검색 결과로서 오픈플로우 액션 해결부(107)에 통지할 수 있다.
[오픈플로우 테이블 제어 예(1)]
도 9는 우선 순위 범위에서 테이블을 지정할 경우에 있어서의 컨트롤러에 의한 오픈플로우 테이블 제어의 제1 방식의 예를 도시한다.
등록 정보(132)는 컨트롤러(101)로부터의 스위치(102)의 오픈플로우 테이블 관리부(106)에의 정보이다. 등록 결과(133)는 오픈플로우 테이블을 구성하는 테이블 군(113)에의 등록 결과이다.
오픈플로우 테이블을 구성하는 테이블 군(113)을 1개의 테이블로 가정할 때, 스위치(102)는 우선 순위에 따라 예상되는 테이블에의 제어를 행한다.
(1) 단계 S301
컨트롤러(101)는, 스위치(102)에 대하여, {우선 순위: 50001, 매치 조건: XXXX, 액션: YYYY}이라고 하는 엔트리의 등록을 행한다.
(2) 단계 S302
스위치(102)는 컨트롤러(101)로부터 엔트리가 등록되었을 경우, 엔트리의 우선 순위에 따른 테이블인 L2 테이블(OF)을 선택하고, 이 L2 테이블(OF)에 엔트리를 등록한다.
[오픈플로우 테이블 제어 예(2)]
도 10은, 테이블 ID에 기초하여 테이블을 지정할 경우에 있어서의 컨트롤러에 의한 오픈플로우 테이블 제어의 제2 방식의 예이다.
등록 정보(134)는 컨트롤러로부터의 오픈플로우 테이블에의 등록 정보이다. 등록 결과(135)는 오픈플로우 테이블을 구성하는 테이블 군에의 등록 결과이다.
오픈플로우 테이블을 구성하는 테이블 군의 테이블들을 각각 다른 오픈플로우 테이블로 가정한 경우, 스위치(102)는 테이블 ID에 따라 예상되는 테이블에의 제어를 행한다.
(1) 단계 S401
컨트롤러(101)는 스위치(102)에 대하여 {테이블 ID: #2, 우선 순위: 1, 매치 조건: XXXX, 액션: YYYY}이라고 하는 엔트리의 등록을 행한다.
(2) 단계 S402
스위치(102)는 컨트롤러(101)로부터 엔트리가 등록되었을 경우, 테이블 ID에 따른 테이블인 L2 테이블(OF)을 선택하고, L2 테이블(OF)에 엔트리를 등록한다.
[제1 실시 형태의 특징]
본 실시 형태에 따르면, 오픈플로우 액션 해결부는 복수의 테이블의 리소스를 통합하고, 또한, 테이블들의 우선 순위를 서로 비교해서 액션(Action) 해결을 행할 수 있다.
따라서, 스위치의 복수의 테이블의 리소스를 사용해서 대용량의 오픈플로우 테이블을 구축할 수 있다. 이에 의해, 스위치에 의해 대량의 플로우를 제어하는 것이 가능하게 된다.
본 실시 형태에서, 오픈플로우 테이블을 1개의 대용량의 오픈플로우 테이블로서 사용하는 경우에 있어서의 "우선 순위 범위"나, 오픈플로우 테이블을 구성하는 테이블 군의 각 테이블을 복수의 다른 오픈플로우 테이블로서 사용하는 경우에 있어서의 "테이블 ID"에 기초하여, 오픈플로우 테이블을 구성하는 각 테이블을 식별할 수 있다.
따라서, 스위치의 복수의 테이블로 구성되는 오픈플로우 테이블을 1개의 대용량의 오픈플로우 테이블 또는 복수의 다른 오픈플로우 테이블로서 사용할 수 있다. 이에 의해, 복수의 테이블로 구성되는 오픈플로우 테이블을 유연하게 제어하는 것이 가능하게 된다.
<제2 실시 형태>
이하에, 본 발명의 제2 실시 형태에 대해서 첨부 도면을 참조하여 설명할 것이다. 제2 실시 형태는, TCAM(OF) 검색 기능부가 오픈플로우 액션 해결부를 포함하지 않을 경우의 오픈플로우 액션 해결부의 실시예이다.
[실시예 1]
도 11은, "TCAM(OF) 검색 기능부(116)"와 "L2/L3 기타 테이블(OF) 검색 기능부(115)"의 순서대로 검색이 실시될 경우의 오픈플로우 기능부(105)의 상세에 대해서 설명하기 위한 도면이다.
오픈플로우 기능부(105), 오픈플로우 테이블 관리부(106), 오픈플로우 액션 해결부(107), 액션 기능부(111), 테이블 군(113), 검색 기능부(114), L2/L3/기타 테이블(OF) 검색 기능부(115), 및 TCAM(OF) 검색 기능부(116)는, 도 2에서와 동일한 메커니즘 및 기능을 갖는다.
도 11을 참조하여, "TCAM(OF) 검색 기능부(116)"와 "L2/L3 기타 테이블(OF) 검색 기능부(115)"의 순서대로 검색이 실시될 경우의 오픈플로우 기능부(105)의 동작에 대해서 설명할 것이다.
도 11은 오픈플로우 테이블 관리부(106)의 검색 기능부(114)에 있어서, TCAM(OF) 검색 기능부(116)가 마지막으로 검색을 행하지 않는 사례를 보여준다.
도 11에서는, "TCAM(OF) 검색 기능부(116)"와 "L2/L3 기타 테이블(OF) 검색 기능부(115)"의 순서대로 검색이 실시되기 때문에, TCAM(OF) 검색 기능부(116)는 오픈플로우 액션 해결부(107)를 포함할 수 없다.
[실시예 2]
도 12는 L2/L3 기타 테이블(OF) 검색 기능부(115)와 TCAM(OF) 검색 기능부(116)의 검색이 동시에 실시될 경우의 오픈플로우 기능부(105)의 상세에 대해서 설명하는 도면이다.
오픈플로우 기능부(105), 오픈플로우 테이블 관리부(106), 오픈플로우 액션 해결부(107), 액션 기능부(111), 테이블 군(113), 검색 기능부(114), L2/L3/기타 테이블(OF) 검색 기능부(115) 및 TCAM(OF) 검색 기능부(116)는, 도 2에서와 동일한 메커니즘 및 기능을 갖는다.
도 12를 참조하여, L2/L3 기타 테이블(OF) 검색 기능부(115)와 TCAM(OF) 검색 기능부(116)의 검색이 동시에 실시될 경우의 오픈플로우 기능부(105)의 동작에 대해서 설명할 것이다.
도 12는, 오픈플로우 테이블 관리부(106)의 검색 기능부(114)에 있어서, TCAM(OF) 검색 기능부(116)가 마지막으로 검색을 수행하지 않는 사례를 보여준다.
L2/L3 기타 테이블(OF) 검색 기능부(115)와 TCAM(OF) 검색 기능부(116)의 검색이 동시에 실시되기 때문에, TCAM(OF) 검색 기능부(116)는 오픈플로우 액션 해결부(107)를 포함할 수 없다.
[실시예 3]
도 13은, TCAM(OF) 검색 기능부(116)가 오픈플로우 액션 해결부(107)를 포함할 수 없을 경우에 있어서의 오픈플로우 액션 해결부(107)의 실시예를 도시한다.
오픈플로우 액션 해결부(107) 및 액션 기능부(111)는 도 2에서와 동일한 메커니즘 및 기능을 갖는다.
오픈플로우 액션 해결부(107)는 검색 수신부(Lookup Receiver)(130) 및 액션 해결부(Action Resolver)(131)를 포함한다.
검색 수신부(Lookup Receiver)(130)는 각 테이블의 검색 결과를 수취한다. 액션 해결부(Action Resolver)(131)는 각 테이블의 검색 결과를 기초로 오픈플로우 처리를 결정한다.
도 13을 참조하여, TCAM(OF) 검색 기능부(116)에 오픈플로우 액션 해결부(107)를 포함할 수 없을 경우에 있어서의 오픈플로우 액션 해결부(107)의 동작에 대해서 설명할 것이다.
TCAM(OF) 검색 기능부(116)가 오픈플로우 액션 해결부(107)를 포함할 수 없을 경우, 스위치(102)에 도 13에서 나타낸 바와 같은 오픈플로우 액션 해결부(107)를 탑재한다.
오픈플로우 액션 해결부(107)에 있어서, 검색 수신부(Lookup Receiver)(130)는, 각 테이블의 검색 결과를 수취한다. 액션 해결부(Action Resolver)(131)는, 각 테이블의 검색 결과 및 미리 설정된 테이블 간 우선 순위에 기초하여 오픈플로우의 액션을 결정하고, 결정된 액션을 액션 기능부(111)에 통지한다.
[다른 실시예]
또한, 상기 각 실시 형태에 있어서, 스위치(102)는 오픈플로우 스위치로서 설명할 것이지만, 오픈플로우 스위치는 예시에 지나지 않는다. 실제로는, 오픈플로우 스위치에 한정되는 것이 아니라, 오픈플로우 스위치와 동일한 메커니즘 및 기능을 갖는 어떠한 스위치에 대하여도 본 발명을 적용하는 것이 가능하다.
<본 발명의 특징>
본 발명은, 복수의 테이블의 집약에 의한 오픈플로우 테이블의 확장 방법에 관한 것이다.
본 발명에 따르면, 스위치의 단일 테이블(주로 TCAM)로 구성되는 오픈플로우 테이블에서, 스위치의 복수의 테이블로 오픈플로우 테이블을 구축함으로써 오픈플로우 테이블의 플로우 엔트리 수의 확장을 실현하는 것이다.
또한, 오픈플로우 기술에서는, 동일한 NW 기기(라우터/스위치 등)에 실장되어 있던 전송 기능 및 제어 기능이 서로 분리되어, 전송 기능은 NW 기기에 남기고, 제어 기능은 외부 컨트롤러로 대체된다. 컨트롤러는, 원격으로 오픈플로우 프로토콜에 따라 NW 기기의 오픈플로우 테이블을 조작함으로써 NW 기기의 거동을 제어한다. 오픈플로우 테이블은 {매치 조건, 액션, 통계 정보}의 3종의 정보를 포함하는 플로우 엔트리 군으로 구성된다. 오픈플로우 기술에서는, 이 매치(Match) 조건이 제어될 플로우를 정의하고, 이 플로우를 단위로 하여 액션이나 통계 정보의 취득을 행할 수 있다.
오픈플로우의 {매치 조건, 액션, 통계 정보}의 개요는 이하와 같다.
[매치 조건]
"Ingress port(입력 포트)"/"Src MAC(송신원 MAC 어드레스)"/"Dst MAC(수신처 MAC 어드레스)"/"Ether type(타입/필드)"/"VLAN ID(가상 LAN 식별 정보)"/"VLAN Priority(가상 LAN 우선 순위)"/"Src IP(송신원 IP 어드레스)"/"Dst IP(수신처 IP 어드레스)"/"IP protocol(IP 프로토콜 번호)"/"IP ToS(상위 6비트)"/"Src Port(송신원 포트 번호)"/"Dst Port(수신처 포트 번호)"
[액션]
"Forward(물리 포트로부터 출력)"/"All(입력 포트 외의 모든 포트로부터 출력)"/"Controller(컨트롤러에 출력)"/"Local(장치의 로컬 스택에 출력)"/"Table(오픈플로우 테이블의 내용에 따라서 출력)"/"In_port(입력 포트로부터 출력)"/"Normal(레거시 테이블의 내용을 사용해서 출력)"/"Flood(입력 포트 및 Spanning Tree의 블록 포트 외의 모든 포트로부터 출력)"/"Drop(패킷을 파기)"/"Modify-Field(패킷의 헤더 정보를 재기입)"
예를 들어, "Modify-Field"의 경우에는, "VLAN ID", "Vlan 우선 순위(Priority)", "Src MAC", "Dst MAC", "Src IP", "Dst IP", "IP ToS", "Src Port", "Dst Port"를 재기입 가능하다.
[통계 정보]
"테이블 단위", "플로우 단위", "물리 포트 단위", "큐(Queue) 단위"로의 각종 통계 정보.
본 발명에 따르면, 스위치의 테이블(주로 TCAM)의 용량 자체를 증가시키는 일 없이, 스위치의 복수의 테이블을 사용해서 오픈플로우 테이블을 구축함으로써, 장치로서의 오픈플로우 테이블 내의 플로우 엔트리 수의 확장이 실현될 수 있다. 즉, 스위치 내의 복수의 테이블이 컨트롤러 측으로부터의 대용량 오픈플로우 테이블로서 사용될 수 있다.
구체적으로는, 각 테이블의 기능(매치 조건/액션) 사이의 차이를 흡수해서 오픈플로우 테이블로서의 통합을 실현했다. 또한, 스위치의 복수의 테이블은 각각 본래의 용도(예를 들어, L2 테이블 내의 L2 중계, L3 테이블 내의 L3 중계)가 있기 때문에, 모든 리소스를 사용하는 것이 아니고, 리소스들의 일부를 잘라내는 형태로 사용한다.
이상과 같이, 본 발명의 특징은, "복수의 테이블의 매치 조건/액션 차이를 흡수하고, 오픈플로우 테이블로서 통합하는 것"과 "구체적인 액션 결정 방법을 제공하는 것"이다.
본 발명에 따르면, 스위치의 복수의 테이블 리소스의 일부는 오픈플로우 테이블로서 사용된다.
본 발명에 따르면, 스위치의 각 테이블은 실현 가능한 기능(매치 조건/Action)에 따라서 "기능 제한된 오픈플로우 테이블 리소스"로서 취급된다.
본 발명에 따르면, 오픈플로우 액션 해결부에 의해, 각 테이블 리소스의 기능 사이의 차이(매치 조건/액션)를 흡수하고, 리소스들을 오픈플로우 테이블 리소스로서 통합하고 있다.
본 발명에 따르면, 오픈플로우 액션 해결부는 TCAM을 포함하는 테이블들 간의 우선 순위에 기초하여 액션을 결정한다.
TCAM(OF) 검색이 마지막으로 행해지는 스위치에서 오픈플로우 액션 해결부는 TCAM(OF) 검색 기능부에 포함된다.
본 발명에 따르면, 복수의 테이블로 구성되는 오픈플로우 테이블은, 컨트롤러에 의해 유연하게 제어된다.
본 발명에 따르면, 복수의 테이블을 1개의 오픈플로우 테이블로서 사용하는 경우, 우선 순위 범위에 기초하여 테이블이 식별된다.
본 발명에 따르면, 복수 테이블을 개별의 오픈플로우 테이블로서 사용하는 경우, 테이블 ID에 기초하여 테이블이 식별된다.
이상, 본 발명의 실시 형태를 상세하게 설명했지만, 본 발명은 상기 실시 형태에 한정되는 것이 아니고, 본 발명의 요지를 일탈하지 않는 변경이 본 발명의 범위에 포함된다.
본 출원은, 일본 출원 번호 2010-200690에 기초하는 우선권을 주장한다. 이의 개시 내용은 참조로 본 출원에 포함된다.
Claims (10)
- 패킷을 포워딩하기 위한 통신 장치로서,
제1 패킷 포워딩 룰을 복수의 상기 통신 장치에 전송하는 것이 가능하며, 미리 결정된 제어 프로토콜에 기초하여, 컨트롤러와 통신하기 위한 컨트롤 유닛; 및
상기 제1 패킷 포워딩 룰을 저장하기 위한 제1 영역 및 상기 통신 장치에 의해 설정된 제2 패킷 포워딩 룰을 저장하기 위한 제2 영역으로 분할된 테이블
을 포함하는 통신 장치. - 제1항에 있어서,
상기 컨트롤 유닛은, 상기 패킷에 포함된 복수의 정보에 기초하여 상기 패킷을 식별하기 위한 식별 룰 및 상기 식별 룰에 대응하는 패킷 처리 룰을 포함하는 상기 제1 패킷 포워딩 룰을 상기 컨트롤러로부터 수신하는, 통신 장치. - 패킷을 포워딩하기 위한 통신 장치로서,
제1 패킷 포워딩 룰을 복수의 상기 통신 장치에 전송하는 것이 가능하며, 미리 결정된 제어 프로토콜에 기초하여, 컨트롤러와 통신하기 위한 제1 유닛; 및
상기 패킷의 입력 포트에 기초하여, 상기 제1 패킷 포워딩 룰을 저장하기 위한 제1 영역 또는 상기 통신 장치에 의해 설정된 제2 패킷 포워딩 룰을 저장하기 위한 제2 영역 중 어느 하나에 따라 상기 패킷을 처리하는 것을 결정하기 위한 제2 유닛
을 포함하는 통신 장치. - 제3항에 있어서,
상기 제1 유닛은, 상기 패킷에 포함된 복수의 정보에 기초하여 상기 패킷을 식별하기 위한 식별 룰 및 상기 식별 룰에 대응하는 패킷 처리 룰을 포함하는 상기 제1 패킷 포워딩 룰을 상기 컨트롤러로부터 수신하는, 통신 장치. - 제3항에 있어서,
상기 제2 유닛은, 상기 입력 포트가 상기 제어 프로토콜과 연관되어 있는지 여부에 기초하여, 상기 제1 영역 또는 상기 제2 영역에 따라 상기 패킷을 처리하는 것을 결정하는, 통신 장치. - 패킷을 포워딩하기 위한 통신 장치로서,
상기 패킷을 포워딩하기 위한 제1 패킷 포워딩 룰을 복수의 상기 통신 장치에 전송하는 것이 가능하며, 미리 결정된 제어 프로토콜에 기초하여, 컨트롤러와 통신하기 위한 제1 유닛; 및
상기 제1 포워딩 룰을 저장하기 위한 제1 영역이 상기 패킷을 포워딩하기 위한 룰을 저장하지 않은 경우, 상기 통신 장치에 의해 설정된 제2 패킷 포워딩 룰을 저장하기 위한 제2 영역에 따라 상기 패킷을 포워딩하기 위한 제2 유닛
을 포함하는 통신 장치. - 제6항에 있어서,
상기 제1 유닛은, 상기 패킷에 포함된 복수의 정보에 기초하여 상기 패킷을 식별하기 위한 식별 룰 및 상기 식별 룰에 대응하는 패킷 처리 룰을 포함하는 상기 제1 포워딩 룰을 상기 컨트롤러로부터 수신하는, 통신 장치. - 통신 방법으로서,
제1 패킷 포워딩 룰을 복수의 통신 장치에 전송하는 것이 가능하며, 미리 결정된 제어 프로토콜에 기초하여, 컨트롤러와 통신하는 단계;
상기 제1 패킷 포워딩 룰을 테이블의 제1 영역에 저장하는 단계; 및
상기 통신 장치에 의해 설정된 제2 패킷 포워딩 룰을 상기 테이블의 제2 영역에 저장하는 단계
를 포함하는 통신 방법. - 통신 방법으로서,
제1 패킷 포워딩 룰을 복수의 통신 장치에 전송하는 것이 가능하며, 미리 결정된 제어 프로토콜에 기초하여, 컨트롤러와 통신하는 단계; 및
패킷의 입력 포트에 기초하여, 상기 제1 패킷 포워딩 룰을 저장하기 위한 제1 영역 또는 상기 통신 장치에 의해 설정된 제2 패킷 포워딩 룰을 저장하기 위한 제2 영역 중 어느 하나에 따라 상기 패킷을 처리하는 것을 결정하는 단계
를 포함하는 통신 방법. - 통신 방법으로서,
패킷을 포워딩하기 위한 제1 패킷 포워딩 룰을 복수의 통신 장치에 전송하는 것이 가능하며, 미리 결정된 제어 프로토콜에 기초하여, 컨트롤러와 통신하는 단계; 및
상기 제1 포워딩 룰을 저장하기 위한 제1 영역이 상기 패킷을 포워딩하기 위한 룰을 저장하지 않은 경우, 상기 통신 장치에 의해 설정된 제2 패킷 포워딩 룰을 저장하기 위한 제2 영역에 따라 상기 패킷을 포워딩하는 단계
를 포함하는 통신 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010200690 | 2010-09-08 | ||
JPJP-P-2010-200690 | 2010-09-08 | ||
PCT/JP2011/066524 WO2012032864A1 (ja) | 2010-09-08 | 2011-07-21 | スイッチシステム、スイッチ制御方法、及び記憶媒体 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020137006089A Division KR101538560B1 (ko) | 2010-09-08 | 2011-07-21 | 스위치 시스템, 스위치 제어 방법 및 기억 매체 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150039877A true KR20150039877A (ko) | 2015-04-13 |
KR101627475B1 KR101627475B1 (ko) | 2016-06-03 |
Family
ID=45810468
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020137006089A KR101538560B1 (ko) | 2010-09-08 | 2011-07-21 | 스위치 시스템, 스위치 제어 방법 및 기억 매체 |
KR1020157007618A KR101627475B1 (ko) | 2010-09-08 | 2011-07-21 | 스위치 시스템, 스위치 제어 방법 및 기억 매체 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020137006089A KR101538560B1 (ko) | 2010-09-08 | 2011-07-21 | 스위치 시스템, 스위치 제어 방법 및 기억 매체 |
Country Status (10)
Country | Link |
---|---|
US (2) | US9577931B2 (ko) |
EP (1) | EP2615781B1 (ko) |
JP (3) | JP5561366B2 (ko) |
KR (2) | KR101538560B1 (ko) |
CN (2) | CN103098427B (ko) |
CA (1) | CA2810486A1 (ko) |
ES (1) | ES2639638T3 (ko) |
RU (1) | RU2595918C2 (ko) |
TW (1) | TWI520527B (ko) |
WO (1) | WO2012032864A1 (ko) |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9144739B2 (en) | 2011-10-26 | 2015-09-29 | Lamar Wilkinson | Computer-aided online card games using multiple online player preferences |
US9117337B2 (en) | 2011-10-26 | 2015-08-25 | Lamar Wilkinson | Performing an automatic fold-out command and assigning player entries in an online card game |
US9769064B2 (en) | 2012-03-19 | 2017-09-19 | Nec Corporation | Communication node, packet processing method and program |
US9225635B2 (en) | 2012-04-10 | 2015-12-29 | International Business Machines Corporation | Switch routing table utilizing software defined network (SDN) controller programmed route segregation and prioritization |
US9967177B2 (en) | 2012-05-31 | 2018-05-08 | Nec Corporation | Control apparatus, communication system, switch control method and program |
US10104004B2 (en) * | 2012-11-08 | 2018-10-16 | Texas Instruments Incorporated | Openflow match and action pipeline structure |
CN103023782B (zh) * | 2012-11-22 | 2016-05-04 | 北京星网锐捷网络技术有限公司 | 一种访问三态内容寻址存储器的方法及装置 |
US9923831B2 (en) * | 2012-11-29 | 2018-03-20 | Futurewei Technologies, Inc. | Packet prioritization in a software-defined network implementing OpenFlow |
FI20126275L (fi) | 2012-12-07 | 2014-06-08 | Tellabs Oy | Menetelmä ja laitteisto ohjelmallisesti määriteltävän verkon konfiguroimiseksi |
RU2628477C2 (ru) * | 2012-12-19 | 2017-08-17 | Нек Корпорейшн | Устройство обработки пакета, способ конфигурирования записи потока и программа |
US9559897B2 (en) | 2012-12-21 | 2017-01-31 | Brocade Communications Systems, Inc. | Device ID assignment in a system of devices |
CN103888386B (zh) * | 2012-12-24 | 2017-10-17 | 华为技术有限公司 | 可扩展虚拟局域网报文的传输方法及装置、系统 |
WO2014133015A1 (ja) * | 2013-02-27 | 2014-09-04 | 日本電気株式会社 | 制御装置、通信システム、スイッチ制御方法及びプログラム |
TWI586124B (zh) | 2013-04-26 | 2017-06-01 | Nec Corp | Communication node, communication system, packet processing method and program |
US9313102B2 (en) | 2013-05-20 | 2016-04-12 | Brocade Communications Systems, Inc. | Configuration validation in a mixed node topology |
US9853889B2 (en) | 2013-05-20 | 2017-12-26 | Brocade Communications Systems, Inc. | Broadcast and multicast traffic reduction in stacking systems |
CN103347013B (zh) * | 2013-06-21 | 2016-02-10 | 北京邮电大学 | 一种增强可编程能力的OpenFlow网络系统和方法 |
US9712431B2 (en) * | 2013-07-17 | 2017-07-18 | Kt Corporation | Methods for managing transaction in software defined network |
CN103428094B (zh) * | 2013-08-12 | 2016-08-17 | 杭州华三通信技术有限公司 | 开放流OpenFlow系统中的报文转发方法及装置 |
US10284499B2 (en) | 2013-08-22 | 2019-05-07 | Arris Enterprises Llc | Dedicated control path architecture for systems of devices |
CN104580027B (zh) * | 2013-10-25 | 2018-03-20 | 新华三技术有限公司 | 一种OpenFlow报文转发方法及设备 |
US10212083B2 (en) | 2013-10-30 | 2019-02-19 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Openflow data channel and control channel separation |
US9225641B2 (en) * | 2013-10-30 | 2015-12-29 | Globalfoundries Inc. | Communication between hetrogenous networks |
US9185049B2 (en) | 2013-10-31 | 2015-11-10 | Brocade Communications Systems, Inc. | Techniques for simplifying stacking trunk creation and management |
KR102193371B1 (ko) * | 2013-11-14 | 2020-12-21 | 한국전자통신연구원 | 확장된 기능을 구비한 sdn-기반 네트워크 장치 및 상기 장치에서의 패킷 처리 방법 |
US9577924B2 (en) * | 2013-11-14 | 2017-02-21 | Electronics And Telecommunications Research Institute | SDN-based network device with extended function and method of processing packet in the same device |
CN105052087B (zh) * | 2013-11-19 | 2018-10-09 | 华为技术有限公司 | 一种基于流表的表项寻址方法、交换机及控制器 |
KR101527786B1 (ko) * | 2013-12-31 | 2015-06-09 | 쿨클라우드(주) | 하이브리드 sdn 네트워크 관리 방법 |
US9577932B2 (en) * | 2014-02-12 | 2017-02-21 | Brocade Communications Systems, Inc. | Techniques for managing ternary content-addressable memory (TCAM) resources in heterogeneous systems |
CN104869062B (zh) * | 2014-02-21 | 2018-11-09 | 华为技术有限公司 | 一种数据包转发方法及设备 |
EP2919423B1 (en) | 2014-03-12 | 2018-11-14 | Xieon Networks S.à.r.l. | A network element of a software-defined network |
US9692695B2 (en) | 2014-03-27 | 2017-06-27 | Brocade Communications Systems, Inc. | Techniques for aggregating hardware routing resources in a multi-packet processor networking system |
US9692652B2 (en) | 2014-04-03 | 2017-06-27 | Brocade Communications Systems, Inc. | Framework for reliably communicating port information in a system of devices |
US10257091B2 (en) | 2014-04-08 | 2019-04-09 | Hewlett Packard Enterprise Development Lp | Pipeline table identification |
WO2015167479A1 (en) | 2014-04-29 | 2015-11-05 | Hewlett-Packard Development Company, L.P. | Efficient routing in software defined networks |
US20170118066A1 (en) * | 2014-04-30 | 2017-04-27 | Hewlett-Packard Development Company, L.P. | Data plane to forward traffic based on communications from a software defined (sdn) controller during a control plane failure |
CN105359470B (zh) | 2014-05-27 | 2019-05-24 | 华为技术有限公司 | 流表管理方法及相关设备和系统 |
JP6490205B2 (ja) | 2014-06-30 | 2019-03-27 | 華為技術有限公司Huawei Technologies Co.,Ltd. | フローエントリ構成の方法、装置及びシステム |
JP6206594B2 (ja) * | 2014-08-01 | 2017-10-04 | 日本電気株式会社 | 制御装置および制御方法 |
US10091059B2 (en) | 2014-12-16 | 2018-10-02 | Arris Enterprises Llc | Handling connections between network devices that support multiple port communication modes |
KR101669518B1 (ko) * | 2014-12-30 | 2016-10-27 | 주식회사 시큐아이 | Sdn 기반의 네트워크 모듈 관리 장치 및 방법 |
CN104683333A (zh) * | 2015-02-10 | 2015-06-03 | 国都兴业信息审计系统技术(北京)有限公司 | 基于sdn的实现异常流量拦截的方法 |
WO2017018989A1 (en) * | 2015-07-24 | 2017-02-02 | Hewlett Packard Enterprise Development Lp | Simultaneous processing of flow tables |
CN106302265B (zh) * | 2016-07-21 | 2019-08-06 | 新华三技术有限公司 | 报文转发方法及装置 |
US10439932B2 (en) * | 2016-10-05 | 2019-10-08 | Avago Technologies International Sales Pte. Limited | System and method for flow rule management in software-defined networks |
KR101870146B1 (ko) * | 2016-10-12 | 2018-06-25 | 아토리서치(주) | 리프-스파인 구조의 소프트웨어 정의 네트워킹에서 목적지 기반 패킷 전송 제어 방법 및 장치 |
CN106789706B (zh) * | 2016-11-11 | 2020-08-07 | 天津光电通信技术有限公司 | 一种基于tcam的网络分流系统 |
TWI626837B (zh) * | 2016-12-01 | 2018-06-11 | 財團法人工業技術研究院 | 封包傳遞方法、封包傳遞裝置及非暫態電腦可讀取媒體 |
US10404594B2 (en) * | 2016-12-13 | 2019-09-03 | Oracle International Corporation | System and method for providing partitions of classification resources in a network device |
RU178460U1 (ru) * | 2017-03-15 | 2018-04-04 | Общество с ограниченной ответственностью "БУЛАТ" | Управляемый Ethernet коммутатор |
KR101877004B1 (ko) * | 2017-09-29 | 2018-07-10 | 주식회사 쏠리드 | 오픈플로우 기반의 분산 안테나 시스템 |
CN109995659B (zh) * | 2017-12-29 | 2022-03-01 | 阿里巴巴集团控股有限公司 | 一种网络通信方法及装置 |
RU183526U1 (ru) * | 2018-03-07 | 2018-09-25 | Общество с ограниченной ответственностью "БУЛАТ" | Ethernet коммутатор |
RU186859U1 (ru) * | 2018-11-21 | 2019-02-06 | Общество с ограниченной ответственностью "БУЛАТ" | Мультисервисный маршрутизатор |
KR102211282B1 (ko) * | 2019-11-20 | 2021-02-03 | (주)파이브텍 | 데이터 라우팅 방법 및 이를 지원하는 스위치 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050281257A1 (en) * | 2004-06-17 | 2005-12-22 | Hitachi, Ltd. | Packet forwarding device |
JP2006101343A (ja) * | 2004-09-30 | 2006-04-13 | Oki Techno Creation:Kk | パケット処理装置、パケット処理方法およびパケット処理プログラム |
WO2009103225A1 (zh) * | 2008-02-18 | 2009-08-27 | 华为技术有限公司 | 一种报文转发的方法和设备 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100333250B1 (ko) | 1998-10-05 | 2002-05-17 | 가나이 쓰토무 | 패킷 중계 장치 |
JP2002185513A (ja) * | 2000-12-18 | 2002-06-28 | Hitachi Ltd | パケット通信ネットワークおよびパケット転送制御方法 |
JP3936883B2 (ja) * | 2002-04-08 | 2007-06-27 | 株式会社日立製作所 | フロー検出装置およびフロー検出機能を備えたパケット転送装置 |
JP2003304293A (ja) | 2002-04-10 | 2003-10-24 | Hitachi Ltd | パケット中継装置 |
NO318843B1 (no) * | 2002-11-13 | 2005-05-09 | Telenor Asa | AHN-nettverk |
FR2849975B1 (fr) | 2003-01-14 | 2005-09-23 | Cit Alcatel | Procede de configuration d'un chemin de routage dans un routeur ip et reseau |
US7308505B2 (en) | 2003-12-17 | 2007-12-11 | International Business Machines Corporation | Method, system and program product for facilitating forwarding of data packets through a node of a data transfer network using multiple types of forwarding tables |
JP4487237B2 (ja) * | 2003-12-25 | 2010-06-23 | エルピーダメモリ株式会社 | 半導体装置 |
JP2005252954A (ja) | 2004-03-08 | 2005-09-15 | Fujitsu Ltd | テーブル検索装置 |
JP2005277731A (ja) | 2004-03-24 | 2005-10-06 | Seiko Epson Corp | ネットワークシステム、ネットワーク機器、及び、これらの制御方法 |
JP2006133520A (ja) * | 2004-11-05 | 2006-05-25 | Fuji Xerox Co Ltd | 画像形成装置、画像形成装置における表示画面カスタマイズ方法、表示画面カスタマイズプログラム |
JP2006174350A (ja) * | 2004-12-20 | 2006-06-29 | Fujitsu Ltd | 通信装置 |
US7281085B1 (en) * | 2005-01-31 | 2007-10-09 | Netlogic Microsystems, Inc. | Method and device for virtualization of multiple data sets on same associative memory |
TWI325705B (en) * | 2006-06-01 | 2010-06-01 | Via Tech Inc | Method and apparatus for packet switching |
JP5050978B2 (ja) * | 2008-04-21 | 2012-10-17 | 富士通株式会社 | 伝送情報転送装置及び方法 |
CN101753544A (zh) * | 2008-12-05 | 2010-06-23 | 华为技术有限公司 | 包过滤规则处理方法及系统、媒体网关和媒体网关控制器 |
WO2010090182A1 (ja) | 2009-02-03 | 2010-08-12 | 日本電気株式会社 | アプリケーションスイッチシステム、及びアプリケーションスイッチ方法 |
JP2010200690A (ja) | 2009-03-04 | 2010-09-16 | Kyushu Univ | 新規スフィンゴ脂質及びその製造方法 |
US8289977B2 (en) * | 2009-06-10 | 2012-10-16 | International Business Machines Corporation | Two-layer switch apparatus avoiding first layer inter-switch traffic in steering packets through the apparatus |
US8677030B2 (en) * | 2009-12-09 | 2014-03-18 | Oracle America, Inc. | Apparatus and method for managing packet classification tables |
US8817629B2 (en) * | 2010-03-16 | 2014-08-26 | Deutsche Telekom Ag | Method for routing-assisted traffic monitoring |
-
2011
- 2011-07-21 CN CN201180043295.5A patent/CN103098427B/zh not_active Expired - Fee Related
- 2011-07-21 JP JP2012532901A patent/JP5561366B2/ja not_active Expired - Fee Related
- 2011-07-21 EP EP11823343.6A patent/EP2615781B1/en not_active Not-in-force
- 2011-07-21 KR KR1020137006089A patent/KR101538560B1/ko active IP Right Grant
- 2011-07-21 CA CA 2810486 patent/CA2810486A1/en not_active Abandoned
- 2011-07-21 RU RU2013110063/08A patent/RU2595918C2/ru not_active Application Discontinuation
- 2011-07-21 WO PCT/JP2011/066524 patent/WO2012032864A1/ja active Application Filing
- 2011-07-21 ES ES11823343.6T patent/ES2639638T3/es active Active
- 2011-07-21 KR KR1020157007618A patent/KR101627475B1/ko active IP Right Grant
- 2011-07-21 CN CN201510082324.9A patent/CN104580026B/zh not_active Expired - Fee Related
- 2011-07-21 US US13/821,344 patent/US9577931B2/en active Active
- 2011-07-28 TW TW100126737A patent/TWI520527B/zh active
-
2014
- 2014-04-16 JP JP2014084534A patent/JP5773020B2/ja not_active Expired - Fee Related
-
2015
- 2015-04-03 JP JP2015076975A patent/JP5962808B2/ja not_active Expired - Fee Related
- 2015-06-19 US US14/745,020 patent/US20150312147A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050281257A1 (en) * | 2004-06-17 | 2005-12-22 | Hitachi, Ltd. | Packet forwarding device |
JP2006101343A (ja) * | 2004-09-30 | 2006-04-13 | Oki Techno Creation:Kk | パケット処理装置、パケット処理方法およびパケット処理プログラム |
WO2009103225A1 (zh) * | 2008-02-18 | 2009-08-27 | 华为技术有限公司 | 一种报文转发的方法和设备 |
Non-Patent Citations (2)
Title |
---|
"OpenFlow Switch Specification Version 0.9.0(Wire Protocol 0x98), 2009년 7월 20일, Current Maintainer: Brandon Heller(brandonh@stanford.edu)" <http://www.openflowswitch.org/documents/openflow-spec-v0.9.0.pdf> |
"The OpenFlow Switch Consortium" <http://www.openflowswitch.org/> |
Also Published As
Publication number | Publication date |
---|---|
TWI520527B (zh) | 2016-02-01 |
JP2014161083A (ja) | 2014-09-04 |
JP5773020B2 (ja) | 2015-09-02 |
RU2595918C2 (ru) | 2016-08-27 |
TW201215037A (en) | 2012-04-01 |
US9577931B2 (en) | 2017-02-21 |
JP5561366B2 (ja) | 2014-07-30 |
JPWO2012032864A1 (ja) | 2014-01-20 |
JP5962808B2 (ja) | 2016-08-03 |
CA2810486A1 (en) | 2012-03-15 |
CN104580026B (zh) | 2019-02-15 |
US20150312147A1 (en) | 2015-10-29 |
CN103098427B (zh) | 2015-10-21 |
RU2013110063A (ru) | 2014-10-20 |
WO2012032864A1 (ja) | 2012-03-15 |
KR101627475B1 (ko) | 2016-06-03 |
EP2615781A1 (en) | 2013-07-17 |
ES2639638T3 (es) | 2017-10-27 |
KR20130050356A (ko) | 2013-05-15 |
KR101538560B1 (ko) | 2015-07-21 |
EP2615781A4 (en) | 2014-03-12 |
EP2615781B1 (en) | 2017-06-14 |
US20130170495A1 (en) | 2013-07-04 |
JP2015156697A (ja) | 2015-08-27 |
CN104580026A (zh) | 2015-04-29 |
CN103098427A (zh) | 2013-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101627475B1 (ko) | 스위치 시스템, 스위치 제어 방법 및 기억 매체 | |
JP5557066B2 (ja) | スイッチシステム、モニタリング集中管理方法 | |
US8750106B2 (en) | Interface control system and interface control method | |
JP5440712B2 (ja) | 通信システム、通信装置、制御装置、パケットフローの転送経路の制御方法及びプログラム | |
KR101755138B1 (ko) | 통신 시스템, 제어 장치, 및 네트워크 토폴로지 관리 방법 | |
US9124526B2 (en) | Switch system, and data forwarding method | |
RU2612599C1 (ru) | Устройство управления, система связи, способ управления коммутаторами и программа | |
RU2558624C2 (ru) | Устройство управления, система связи, способ связи и носитель записи, содержащий записанную на нем программу для связи | |
US20140241367A1 (en) | Communication system, controller, communication method, and program | |
KR20130125826A (ko) | 네트워크 시스템 및 vlan 태그 정보 취득 방법 | |
KR20130060291A (ko) | 컴퓨터 시스템 및 컴퓨터 시스템에 있어서의 통신 방법 | |
US20170070364A1 (en) | Communication system, control apparatus, communication control method and program | |
JPWO2014112616A1 (ja) | 制御装置、通信装置、通信システム、スイッチの制御方法及びプログラム | |
US9860178B2 (en) | Control message relay apparatus, control message relay method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
FPAY | Annual fee payment |
Payment date: 20190515 Year of fee payment: 4 |