KR20140144219A - 통신 노드, 패킷 처리 방법 및 프로그램 - Google Patents
통신 노드, 패킷 처리 방법 및 프로그램 Download PDFInfo
- Publication number
- KR20140144219A KR20140144219A KR1020147028885A KR20147028885A KR20140144219A KR 20140144219 A KR20140144219 A KR 20140144219A KR 1020147028885 A KR1020147028885 A KR 1020147028885A KR 20147028885 A KR20147028885 A KR 20147028885A KR 20140144219 A KR20140144219 A KR 20140144219A
- Authority
- KR
- South Korea
- Prior art keywords
- control information
- information item
- packet
- received packet
- flow
- Prior art date
Links
Images
Classifications
-
- 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/38—Flow based routing
-
- 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/0876—Aspects of the degree of configuration automation
- H04L41/0886—Fully automatic configuration
-
- 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/0893—Assignment of logical groups to network elements
-
- 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/54—Organization of routing tables
-
- 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/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- 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)
- Automation & Control Theory (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명의 목적은 제어 장치로부터 설정된 제어 정보에 따라서 동작하는 통신 노드가 감소된 수의 플로우 테이블을 이용하여 상이한 처리들을 실행하게 하는 것이다. 통신 노드는 제어 장치로부터 설정된 여러 제어 정보를 저장하는 하나 이상의 플로우 테이블; 및 상기 하나 이상의 플로우 테이블로부터, 수신 패킷에 적합한 매치 조건을 갖는 제어 정보를 검색하고 상기 검색한 제어 정보에 따라서 상기 패킷을 처리하는 패킷 처리부를 포함한다. 상기 수신 패킷에 적합한 매치 조건을 갖는 제어 정보에 소정의 루프 명령이 부가된 경우, 상기 패킷 처리부는 플로우 테이블에서의 다른 제어 정보의 검색과 상기 검색한 제어 정보의 실행을 소정 횟수 실행한다.
Description
(관련 출원에 대한 참조)
본 발명은 일본 특허 출원 제2012-062221호(2012년 3월 19일 출원)의 우선권을 주장하며, 이 출원의 전체 기재 내용은 본 명세서에 참고로 병합된다.
본 발명은 통신 노드, 패킷 처리 방법 및 프로그램에 관한 것으로, 특히, 제어 장치로부터 설정된 제어 정보에 기초하여 동작하는 통신 노드, 패킷 처리 방법 및 프로그램에 관한 것이다.
최근, 오픈플로우(OpenFlow)라고 공지된 기술이 제안되어 있다(특허 문헌 1 및 비특허 문헌 1 및 2 참조). 오픈플로우는 통신을 엔드-투-엔드(end-to-end) 플로우로서 파악하고, 플로우 단위로 경로 제어, 부하 분산 및 부하 최적화를 행하는 것이다. 중계 장치로서 동작하는 오픈플로우 스위치는 제어 장치로서 동작하도록 지정된 오픈플로우 컨트롤러와의 통신을 위한 시큐어 채널을 포함하고, 오픈플로우 컨트롤러로부터 추가 또는 재기입에 관해 제어되는 플로우 테이블(들)에 따라서 동작한다. 플로우 테이블에서는, 플로우 마다, 패킷 헤더와 대조하는 매칭 룰(들) 또는 헤더 필드(들), 플로우 통계 정보 또는 카운터(들) 및 매칭 룰(들) 또는 헤더 필드(들)에 적합한 패킷에 적용되는 처리 내용을 기술한 인스트럭션(들)이 정의된다(비특허 문헌 2의 "4.1 Flow Table" 이하 참조).
예를 들면, 패킷을 수신하면, 오픈플로우 스위치는 플로우 테이블로부터 수신 패킷의 헤더 정보에 적합한 매칭 룰(들)을 갖는 엔트리를 검색한다. 검색의 결과, 수신 패킷에 적합한 엔트리가 발견된 경우, 오픈플로우 스위치는 플로우 통계 정보(카운터)를 갱신하고, 이와 동시에, 수신 패킷에 관련하여, 해당 엔트리의 액션 필드에 기술된 처리 내용, 예를 들어, 지정 포트로부터의 패킷 송신, 플러딩(flooding) 또는 폐기 등을 실시한다. 반대로, 상기 검색의 결과 수신 패킷에 적합한 엔트리가 발견되지 않은 경우, 오픈플로우 스위치는 시큐어 채널을 거쳐서 오픈플로우 컨트롤러에 수신 패킷을 전송하여 수신 패킷의 송신원 및 수신처에 기초한 수신 패킷의 경로의 결정을 요구한다. 오픈플로우 스위치는 패킷 경로의 결정을 가능하게 할 플로우 엔트리를 수취해서 그 플로우 테이블을 갱신한다. 이런 방식으로, 오픈플로우 스위치는 플로우 테이블에 저장된 엔트리를 처리 규칙으로서 이용하여, 패킷을 전송한다.
이하 "파이프라인 처리"라고 하는, 비특허 문헌 2의 "4.1.1 Pipeline Processing"에는, 오픈플로우 스위치가 복수의 플로우 테이블을 이용한 다단 검색 처리를 서포트해야 하는 것이 기재되어 있다. 비특허 문헌 2에 따르면, 파이프라인 처리에서는 (1) i번째(i=0 내지 n)의 테이블에서 수신 패킷에 적합한 엔트리 중, 가장 우선도가 높은 엔트리를 검색하고, (2) 그 엔트리의 인스트럭션(들)을 갱신하고(패킷을 변경하고, 매치 필드를 갱신하고 또는 액션 세트를 갱신하고(비특허 문헌 2의 "4.7 Action Set" 참조), 메타데이터를 갱신하고), (3) 매치 데이터와 액션 세트를 다음 테이블에 보내는 것으로 이루어진 처리가 반복하여 행해진다. 마지막으로, 액션 세트의 내용이 실행된다(비특허 문헌 2의 도 2 참조).
Nick McKeown 외 7명: "OpenFlow: Enabling Innovation in Campus Networks", [online], [2012년 2월 14일 검색], 인터넷 <URL:http://www.openflow.org/documents/openflow-wp-latest.pdf>.
"OpenFlow Switch Specification", Version 1.1.0 Implemented (Wire Protocol 0x02), [online], [2012년 2월 14일 검색], 인터넷 <URL:http://www.openflow.org/documents/openflow-spec-v1.1.0.pdf>.
이하의 분석은 본 발명에 의해 제공된다. 상기 파이프라인 처리를 이용하여, 예를 들어, 수신 패킷을 그대로 출력하고, 수신 패킷의 헤더를 수정(재기입)하고, 다시 플로우 테이블을 검색하고 다른 처리 동작(들)을 수행함으로써, 수신 패킷마다 복수의 서로 다른 처리 동작을 수행할 수 있다.
그러나, 비특허 문헌 2의 파이프라인 처리에서는, "4.6 Instructions"의 "Goto-Table"의 항에 기재되어 있는 바와 같이, 검색될 테이블을 바꿀 경우, 이제 검색될 플로우 테이블은 현재 참조되는 플로우 테이블보다도 테이블 ID가 큰 플로우 테이블이어야 한다(도 5 참조). 그러므로, 하나의 수신 패킷에 다른 동작을 적용하고자 하는 경우, 각각의 오픈플로우 스위치에 의해 유지되는 플로우 테이블의 수가 바람직하지 않게 증대한다.
그러므로, 본 발명의 목적은 상기한 오픈플로우로 대표되는 제어 장치로부터 설정 또는 구성된 제어 정보에 따라서 동작하는 통신 노드, 패킷 처리 방법 및 프로그램에서, 적은 수의 플로우 테이블을 이용하여 다른 조작이 적용될 수 있도록 한 통신 노드, 패킷 처리 방법 및 프로그램을 제공하는 것이다.
본 발명의 제1 양상에 따르면, 제어 장치에 의해 설정된 제어 정보 항목(들)을 저장하는 하나 이상의 플로우 테이블(들), 및 상기 하나 이상의 플로우 테이블(들)로부터, 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목을 검색하고, 상기 제어 정보 항목에 따라서 상기 수신 패킷을 처리하는 패킷 처리부를 포함하는 통신 노드가 제공된다. 상기 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목에 소정의 루프 명령이 부가된 경우, 상기 패킷 처리부는 상기 하나 이상의 플로우 테이블(들)에서의 다른 제어 정보 항목의 검색과 상기 검색한 제어 정보 항목의 실행을 소정 횟수 실행한다.
본 발명의 제2 양상에 따르면, 통신 노드; 및 제어 장치를 포함하는 통신 시스템이 제공된다. 상기 통신 노드는 제어 정보 항목(들)을 저장하는 복수의 플로우 테이블; 및 상기 복수의 플로우 테이블을 소정의 순서로 선택하고, 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목을 검색하고, 상기 제어 정보 항목에 따라서 상기 수신 패킷을 처리하는 패킷 처리부를 포함한다. 상기 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목에 소정의 루프 명령이 부가된 경우, 상기 통신 노드는 상기 복수의 플로우 테이블에서의 다른 제어 정보 항목의 검색과 상기 검색한 제어 정보 항목의 실행을 소정 횟수 실행한다. 상기 제어 장치는 상기 통신 노드의 복수의 플로우 테이블에 상기 소정의 루프 명령을 부가한 제어 정보 항목을 포함하는 복수의 제어 정보 항목(들)을 설정한다.
본 발명의 제3 양상에 따르면, 제어 장치에 의해 설정된 제어 정보 항목(들)을 저장하는 하나 이상의 플로우 테이블(들), 및 상기 하나 이상의 플로우 테이블(들)로부터, 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목을 검색하고, 상기 제어 정보 항목에 따라서 상기 수신 패킷을 처리하는 패킷 처리부를 포함하는 통신 노드에 의한 패킷 처리 방법이 제공된다. 상기 패킷 처리 방법은 상기 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목에 소정의 루프 명령이 부가되어 있는지 여부를 확인하는 단계; 및 상기 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목에 소정의 루프 명령이 부가된 경우, 상기 하나 이상의 플로우 테이블(들)에서의 다른 제어 정보 항목의 검색과 상기 검색한 제어 정보 항목의 실행을 소정 횟수 실행하는 단계를 포함한다. 본 방법은 제어 장치로부터 설정된 제어 정보에 의해 동작하는 통신 노드의 형태의 특정한 기계와 결부된다.
본 발명의 제4 양상에 따르면, 제어 장치에 의해 설정된 제어 정보 항목(들)을 저장하는 하나 이상의 플로우 테이블(들), 및 상기 하나 이상의 플로우 테이블(들)로부터, 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목을 검색하고, 상기 제어 정보 항목에 따라서 상기 수신 패킷을 처리하는 패킷 처리부를 포함하는 통신 노드에 탑재된 컴퓨터로 하여금, 상기 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목에 소정의 루프 명령이 부가되어 있는지 여부를 확인하는 처리; 및 상기 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목에 소정의 루프 명령이 부가된 경우, 상기 하나 이상의 플로우 테이블(들)에서의 다른 제어 정보 항목의 검색과 상기 검색한 제어 정보 항목의 실행을 소정 횟수 실행하는 처리를 실행시키는 프로그램이 제공된다. 본 프로그램은 컴퓨터 판독 가능한, 즉, 비일시적 기록 매체에 기록할 수 있다는 점에 주목한다. 즉, 본 발명은 컴퓨터 프로그램 제품으로서 구현될 수 있다.
본 발명에 따르면, 제어 장치로부터 설정된 제어 정보에 따라서 동작하는 통신 노드가 적은 수의 플로우 테이블을 이용함에도 불구하고 상이한 처리 동작들을 행하게 하는 것이 가능하다.
도 1은 본 발명의 제1의 예시적인 실시 형태의 구성을 도시하는 개략 블록도.
도 2는 본 발명의 제1의 예시적인 실시 형태에 따른 오픈플로우 스위치의 구성을 도시하는 개략 블록도.
도 3은 본 발명의 제1의 예시적인 실시 형태에 따른 오픈플로우 스위치에 설정되는 플로우 엔트리와 그 처리 내용을 도시하는 개략도.
도 4는 본 발명의 제1의 예시적인 실시 형태에 따른 오픈플로우 스위치에서의 패킷 수신시의 처리의 흐름을 도시하는 흐름도.
도 5는 비특허 문헌 1 및 2에 따른 오픈플로우 스위치에서의 플로우 테이블의 검색 처리를 도시하는 개략도.
도 2는 본 발명의 제1의 예시적인 실시 형태에 따른 오픈플로우 스위치의 구성을 도시하는 개략 블록도.
도 3은 본 발명의 제1의 예시적인 실시 형태에 따른 오픈플로우 스위치에 설정되는 플로우 엔트리와 그 처리 내용을 도시하는 개략도.
도 4는 본 발명의 제1의 예시적인 실시 형태에 따른 오픈플로우 스위치에서의 패킷 수신시의 처리의 흐름을 도시하는 흐름도.
도 5는 비특허 문헌 1 및 2에 따른 오픈플로우 스위치에서의 플로우 테이블의 검색 처리를 도시하는 개략도.
다음의 설명에 부기한 도면 참조 부호는 단지 이해를 돕기 위한 것이지, 본 발명을 도시된 양태로 한정하고자 하는 의도는 아니라는 점에 유의한다.
본 발명의 한 양태에서, 통신 노드(10A)는 도 1에 도시한 바와 같이, 제어 장치(30A)로부터 설정된 제어 정보 항목(들)을 저장하는 하나 이상의 플로우 테이블(들)(21), 및 패킷 처리부(11)를 포함한다. 패킷 처리부는 상기 하나 이상의 플로우 테이블(들)로부터, 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목을 검색하고, 상기 제어 정보 항목에 따라서 패킷을 처리한다.
보다 상세하게는, 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목에 소정의 루프 명령이 부가된 경우, 통신 노드(10A)는 플로우 테이블(들)(21)에서의 다른 제어 정보 항목의 검색과 검색한 제어 정보 항목의 실행을 소정 횟수 실행한다. 예를 들면, 도 1의 플로우 테이블(21)의 상단 필드의 플로우 엔트리에 매치하는 패킷을 수신하면, 통신 노드(10A)는 플로우 엔트리의 처리 내용을 실행하고, 다른 제어 정보 항목을 검색하고 이렇게 검색한 제어 정보를 실행한다. 이런 방식으로, 도 1의 플로우 테이블(21)의 하단 필드(들)에서 플로우 엔트리(엔트리들)가 검색될 수 있고 대응하는 처리 내용이 실행된다.
이렇게, 적어도 1개의 플로우 테이블에서 복수의 서로 다른 처리 동작이 실행될 수 있다. 다른 제어 정보의 항목(들)이 검색되고 이렇게 검색한 제어 정보 항목(들)이 실행되는 횟수(루프의 횟수)는 처음에 미리 정해질 수 있거나 다르게는 소정의 루프 명령의 파라미터에 의해 지정될 수 있다는 점에 주목한다.
[제1의 예시적인 실시 형태]
본 발명의 제1의 예시적인 실시 형태에 대해서 이제부터 도면을 참조해서 상세하게 설명한다. 도 2는 본 발명의 제1의 예시적인 실시 형태에 따른, 이하 OFS라고도 표현되는, 오픈플로우 스위치의 구성을 도시한다. 도 2를 참조하면, 패킷 처리부(11), 제어 메시지 처리부(12), 복수(N+1)의 플로우 테이블(20 내지 2N), 출력 인터페이스(13) 및 루프백 인터페이스 LB를 구비한 구성이 도시되어 있다.
플로우 테이블(20 내지 2N)에는 검색 순서를 표시하기 위해 사용되는 0부터 N까지의 복수의 테이블 ID가 부여되어 있다.
패킷을 수신하면, 패킷 처리부(11)는 그 테이블 ID의 순으로, 플로우 테이블(20 내지 2N)을 선택하여, 수신 패킷에 적합한 매치 조건을 갖는 플로우 엔트리를 검색한다. 플로우 테이블(2N)을 제외한 어떤 플로우 테이블의 검색의 결과, 수신 패킷에 적합한 매치 조건을 갖는 플로우 엔트리가 발견되지 않은 경우, 패킷 처리부(11)는 순차적으로 다음으로 큰 테이블 ID(들)를 갖는 플로우 테이블(들)을 선택하여 수신 패킷에 적합한 매치 조건(들)을 갖는 플로우 엔트리(엔트리들)를 검색한다. 최후의 플로우 테이블(2N)의 검색의 결과, 수신 패킷에 적합한 매치 조건을 갖는 플로우 엔트리가 발견되지 않은 경우, 패킷 처리부(11)는 미리 정해진 처리 동작(no-match 액션)을 행한다. 미리 정해진 no_match 액션은 수신 패킷의 폐기(Drop), 제어 메시지 처리부(12)를 통한 오픈플로우 컨트롤러(30)에의 패킷 수신 통지(Packet-In) 등의 액션일 수 있다.
반대로, 플로우 테이블(21 내지 2N)의 검색의 결과, 수신 패킷에 적합한 매치 조건을 갖는 플로우 엔트리가 발견된 경우, 패킷 처리부(11)는 그 플로우 엔트리의 인스트럭션 필드의 내용에 따라서 수신 패킷을 처리한다. 또한, 인스트럭션 필드의 처리 내용에 Goto-Table 액션이 부가된 경우, 패킷 처리부(11)는 Goto-Table 액션에서 지정된 플로우 테이블을 선택하여 수신 패킷에 적합한 매치 조건을 갖는 플로우 엔트리(엔트리들)의 검색을 속행한다.
제어 메시지 처리부(12)는 상기한 제어 장치(30A)에 상당하는 오픈플로우 컨트롤러(30)로부터, 플로우 테이블(21 내지 2N)의 플로우 엔트리(들)를 설정, 변경 또는 삭제하는 조작을 접수한다. 또한 제어 메시지 처리부(12)는 패킷 처리부(11)로부터의 요구에 응답하여 오픈플로우 컨트롤러(30)에의 패킷 수신 통지(Packet-In)를 보낸다. 이러한 OFS(10)와 오픈플로우 컨트롤러(30) 사이의 통신은 비특허 문헌 2에 따른 오픈플로우 프로토콜을 이용해서 행할 수 있다.
출력 인터페이스(13)는 예를 들어, 다른 OFS(10) 또는 단말기와 접속된 물리 포트로 구성된다. 예를 들면, 플로우 엔트리의 인스트럭션 필드의 내용이 패킷을 전송(Output)하는 것인 경우, 출력 인터페이스(13)로부터 패킷이 전송된다. 도 2의 예시적인 실시 형태에서는 1개의 출력 인터페이스(13)가 도시되어 있지만, 복수의 출력 인터페이스(13)가 구비될 수도 있다.
루프백 인터페이스 LB는 인스트럭션 필드의 처리 내용에 Goto-Table 액션이 부가되고 Goto-Table 액션에 의해 지정된 플로우 테이블이 테이블 ID=0의 플로우 테이블인 경우에 전송 수신처로서 사용되는 인터페이스이다. 루프백 인터페이스 LB의 출력단으로부터 패킷이 출력되면, 패킷 처리부(11)는 패킷 수신시와 동일한 방식으로 플로우 테이블(20)의 검색을 개시한다.
도 2에 도시한 OFS(10)의 각종 부(처리 수단)는 OFS(10)를 구성하는 컴퓨터로 하여금 컴퓨터의 하드웨어를 이용하여 상기한 처리 동작을 실행시키는 컴퓨터 프로그램에 의해 실현될 수도 있다는 점에 유의한다.
도 3은 플로우 테이블에 설정되는 복수의 플로우 엔트리 및 대응하는 처리 내용을 도시하는 테이블을 나타낸다. 도 3의 예시적인 실시 형태에서는, 플로우 A 에 속하고 메타데이터 필드가 0의 값을 갖는 패킷이 수신된 경우, "플로우 A & Meta=0"의 플로우 엔트리에서 플로우 엔트리 히트가 발생한다. 플로우 A에 대해서는, 특정한 호스트 간의 통신을 플로우로서 파악하고, 패킷 헤더의 송신원의 어드레스와 송신 수신처의 호스트의 어드레스의 조합이 지정된다는 점에 주목한다. 메타데이터 필드에 대해서는, 비특허 문헌 2의 "4.3 Match Fields" 및 Table 3 "Metadata"가 참조될 수 있다. 상기 경우에, 수신 패킷을 출력 인터페이스(13)에서 출력하는 처리(Output Port #A)가 행해진다. 이 플로우 엔트리에는 테이블 ID=0의 플로우 테이블을 지정한 Goto-Table 액션(Goto-Table #0)이 부가되어 있으므로, 테이블 ID=0의 플로우 테이블에 되돌아가서 수신 패킷에 적합한 플로우 엔트리를 다시 검색한다. 이때, 패킷 처리부(11)는 수신 패킷의 메타데이터 필드의 값을 1 증가시킨다.
다음의 또는 2회째의 플로우 테이블의 검색에서는, 플로우 A에 속하고 메타데이터 필드의 값이 1인 패킷에 적합한 플로우 엔트리가 검색된다. 이 결과, "플로우 A & Meta=1"의 플로우 엔트리에서 플로우 엔트리 히트가 발생한다. 이 경우에, 수신 패킷의 VLAN ID(Virtual Local Area Netowork ID)가 재기입에 의해 변경되고, 패킷이 출력 인터페이스(13)로부터 출력된다(Output Port #B). Goto-Table 액션으로서 Goto-Table #0이 부가되어 있으므로, 테이블 ID=0의 플로우 테이블에 되돌아가서 수신 패킷에 적합한 플로우 엔트리를 다시 검색한다. 패킷 처리부(11)는 수신 패킷의 메타데이터 필드의 값을 다시 1 증가시킨다.
2회째의 테이블 검색의 결과, 플로우 엔트리 히트가 발생했다면, 그러한 히트를 가진 플로우 엔트리의 인스트럭션 필드의 내용에 따라서 처리가 행해진다. 이 처리로서는 패킷 전송, 헤더 변경(재기입에 의해), 및, 필요하다면, 지정된 플로우 테이블의 검색이 열거될 수 있다.
본 예시적인 실시 형태의 동작에 대해서 이제부터 도면을 참조해서 상세하게 설명한다. 도 4는 본 발명의 제1의 예시적인 실시 형태의 오픈플로우 스위치에서의 처리의 흐름을 도시하는 흐름도를 나타낸다.
도 4를 참조하면, OFS(10)는, 패킷을 수신하면, 가장 작은 테이블 ID 값을 갖는 플로우 테이블을 선택하고, 수신 패킷에 적합한 매치 조건을 갖는 플로우 엔트리를 검색한다(단계 S001 내지 S003).
상기 검색의 결과, 수신 패킷에 적합한 플로우 엔트리가 발견되지 않은 경우 (단계 S003의 아니오), OFS(10)는 변수 i를 1 가산하고 다음 테이블 ID의 플로우 테이블의 검색을 실시한다(단계 S004 내지 S005의 예). 모든 플로우 테이블을 검색한 후, 수신 패킷에 적합한 플로우 엔트리가 발견되지 않은 경우(단계 S005의 아니오), OFS(10)는 소정의 no-match 액션을 실행한다(단계 S006).
한편, 단계 S003에서 수신 패킷에 적합한 플로우 엔트리가 발견된 경우(단계 S003의 예), OFS(10)는 이하의 처리 동작을 행한다.
우선, OFS(10)는 단계 S003의 검색 처리에서 히트한 플로우 엔트리의 인스트럭션 필드의 액션에 따라서 처리 동작을 행한다(단계 S007; 비특허 문헌 2의 "4.6 Instructions" 참조).
인스트럭션 필드의 액션 중에 Goto-Table 액션이 없는 경우(단계 S008의 아니오), OFS(10)는 그 수신 패킷에 대한 처리를 종료한다.
반대로 인스트럭션 필드의 액션 중에 Goto-Table 액션이 있는 경우(단계 S008의 예), OFS(10)는 Goto-Table 액션에서 지정된 테이블 ID가 0인지의 여부를 확인한다(단계 S009 및 S010). Goto-Table 액션에 의해 지정된 테이블 ID가 0인 경우, 즉, 루프 명령이 부가되어 있는 경우, OFS(10)는 수신 패킷의 메타데이터 필드의 값(주회 횟수)을 1 증가하고(단계 S011) 루프백 인터페이스에 결과를 송신한다(단계 S012 내지 단자 LB).
반대로 단계 S010에서 확인한 Goto-Table 액션의 테이블 ID의 값이 0이 아닌 경우, OFS(10)는 수신 패킷의 메타데이터 필드의 값(주회 횟수)이 소정의 임계값 m인지의 여부를 확인한다(단계 S013). 메타데이터 필드의 값(주회 횟수)이 소정의 임계값 m인 경우(단계 S013의 예), 수신 패킷에 대한 처리를 종료한다. 소정의 임계값 m은 미리 정한 값일 수 있거나 상기한 Goto-Table 액션의 부가 파라미터에 의해 지정될 수 있다는 점에 유의한다.
단계 S013에서, 메타데이터 필드의 값(주회 횟수)이 소정의 임계값 m 미만인 경우(단계 S013의 아니오), OFS(10)는 Goto-Table 액션에 의해 지정된 테이블 ID의 플로우 테이블을 선택하고, 수신한 패킷에 적합한 매치 조건을 갖는 플로우 엔트리의 검색을 속행한다.
이상과 같이, 본 예시적인 실시 형태에서는, 동일 플로우 테이블에 대해 반복 검색 동작이 행해질 수 있다. 이에 따라 적은 수의 플로우 테이블을 이용하여 상이한 조작들을 행할 수 있게 된다. 또한, 수신 패킷의 메타데이터 필드에 주회 횟수를 기입한 본 예시적인 실시 형태에서는, 검색 횟수가 관리될 수 있다. 또한, 기입된 주회 횟수를 매치 조건으로서도 이용한다. 그러므로, 동일한 플로우 엔트리를 반복하는 것을 회피하는 것뿐만 아니라, 검색 횟수에 따라 패킷에 적용되는 처리 내용을 전환하는 것이 가능하다.
본 발명의 상술한 예시적인 실시 형태는 본 발명을 제한하는 것으로 해석되어서는 아니 되고, 본 발명의 기본적 기술적인 사상을 벗어나지 않는 범위 내에서 다른 변형, 치환 및 조정이 이루어질 수 있다. 예를 들면, 상술한 예시적인 실시 형태에서는 비특허 문헌 1 및 2의 오픈플로우를 베이스로 한 구성을 이용하는 것으로 설명되었지만, 본 발명은 비슷한 구조를 갖는 집중 제어형의 통신 시스템에도 적용할 수 있다.
또한, 상술한 예시적인 실시 형태에서는, Goto-Table 액션에서 지정된 테이블 ID의 값이 0인 경우에 루프 처리가 행해지는 것으로 상정되었다. 그러나, Goto-Table 액션에서 지정된 테이블 ID의 값이 0과 다른 테이블 ID인 경우에도 유사한 처리를 행하는 것도 가능하다.
상술한 예시적인 실시 형태에서는, 수신 패킷의 메타데이터 필드에 주회 횟수를 기입하여 플로우 테이블의 검색 횟수를 관리하는 것으로 또한 상정되었다. 그러나, 패킷 처리부(11) 내부에서 검색 횟수(루프 횟수)를 관리하는 것도 가능하다. 이러한 경우에, 임의의 플로우 엔트리(엔트리들)와의 대조 처리시에 검색 횟수를 가산할 수 있다. 이러한 경우에, 상기 제1의 예시적인 실시 형태와 동일한 방식으로, 검색 횟수에 따라 패킷에 적용되는 처리 내용을 변경할 수도 있다.
상기 예시적인 실시 형태에서는, 플로우 정보뿐만 아니라 수신 패킷의 메타데이터 필드를 매치 조건으로서 이용하였다. 그러나, 상기한 루프백 인터페이스에 대응하는 포트 정보(In-port)를 매치 조건(들)에 추가할 수도 있다.
또한, 상술한 예시적인 실시 형태에서는, 통신 노드의 전형적인 예로서 비특허 문헌 2의 OFS를 이용하는 것으로 상정되었다. 그러나, 사용되는 그러한 다른 기기가 하나 이상의 플로우 테이블에서 수신 패킷 또는 탑재된 어플리케이션(들)으로부터의 패킷에 적합한 플로우 엔트리(엔트리들)를 검색해서, 이렇게 검색한 플로우 엔트리(엔트리들)를 처리하는 기능을 갖는 것이면, OFS 이외의 기기를 통신 노드로서 사용하는 것도 가능하다. 이러한 다른 기기의 예는 탑재된 어플리케이션(들)에 또는 탑재된 어플리케이션(들)으로부터 패킷을 송/수신하는 스위치 기능을 내장한 휴대 전화 단말기, 스마트 폰, 태블릿 단말기, 퍼스널 컴퓨터, 게임 기기 또는 모바일 라우터를 포함한다.
상기한 특허 문헌 및 비특허 문헌의 개시는 여기에 참고로 병합된다. 청구범위를 포함하는, 본 발명의 전체 개시의 범위 내에서, 본 발명의 기본적 기술 사상에 의거하여 특정한 예시적인 실시 형태 또는 예가 변경 또는 조정될 수 있다. 또한, 본 발명의 청구범위의 사상 내에서 여기에 개시된 요소(청구범위, 예시적인 실시 형태, 예 및 도면의 요소)의 다양한 조합, 또는 선택이 가능하다. 즉, 본 발명은 본 발명의 기술적 사상뿐만 아니라 청구범위 및 도면을 포함하는 전체 개시에 따라서 본 기술에 숙련된 자들이라면 가능한 각종 변형 또는 수정을 포함할 수 있다는 것을 이해할 것이다.
10: 오픈플로우 스위치(OFS)
10A: 통신 노드
11: 패킷 처리부
12: 제어 메시지 처리부
13: 출력 인터페이스
20 내지 2N: 플로우 테이블
30: 오픈플로우 컨트롤러
30A: 제어 장치
LB: 루프백 인터페이스
10A: 통신 노드
11: 패킷 처리부
12: 제어 메시지 처리부
13: 출력 인터페이스
20 내지 2N: 플로우 테이블
30: 오픈플로우 컨트롤러
30A: 제어 장치
LB: 루프백 인터페이스
Claims (10)
- 통신 노드로서,
제어 장치에 의해 설정된 제어 정보 항목(들)을 저장하는 하나 이상의 플로우 테이블(들); 및
상기 하나 이상의 플로우 테이블(들)로부터, 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목을 검색하고, 상기 제어 정보 항목에 따라서 상기 수신 패킷을 처리하는 패킷 처리부
를 포함하고,
상기 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목에, 미리 정해진 루프 명령이 부가된 경우, 상기 패킷 처리부는 상기 하나 이상의 플로우 테이블(들)에서의 다른 제어 정보 항목의 검색과 상기 검색한 제어 정보 항목의 실행을 미리 정해진 횟수 실행하는 통신 노드. - 제1항에 있어서,
상기 통신 노드는 미리 정해진 검색 순서를 가진 복수의 플로우 테이블을 포함하고,
상기 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목에, 상기 미리 정해진 루프 명령이 부가된 경우, 상기 패킷 처리부는 상기 루프 명령에 표시된 플로우 테이블을 기점으로 하여 상기 미리 정해진 검색 순서에 따른 다른 제어 정보 항목의 주회 검색(round search)을 미리 정해진 횟수 실행하는 통신 노드. - 제1항 또는 제2항에 있어서,
상기 다른 제어 정보 항목의 검색과 검색한 제어 정보 항목의 실행의 횟수 또는 상기 주회 검색의 횟수는 상기 미리 정해진 루프 명령의 파라미터에 의해 지정되는 통신 노드. - 제1항 내지 제3항 중 어느 한 항에 있어서,
상기 패킷 처리부는 상기 수신 패킷의 메타 정보 필드에 상기 하나 이상의 플로우 테이블(들)의 검색 실행 횟수를 기입하여 상기 다른 제어 정보 항목의 검색 횟수 또는 상기 주회 검색의 횟수를 관리하는 통신 노드. - 제4항에 있어서,
상기 하나 이상의 플로우 테이블(들)의 검색 실행 횟수가 기입된 수신 패킷의 메타 정보 필드를 상기 매치 조건으로서 이용하는 통신 노드. - 제1항 내지 제5항 중 어느 한 항에 있어서,
상기 패킷 처리부가 미리 정해진 루프백 인터페이스에 상기 수신 패킷을 전송하고 상기 루프백 인터페이스로부터 상기 전송된 패킷을 수신하여 다른 제어 정보 항목의 검색을 반복하여 실행하는 통신 노드. - 제6항에 있어서,
해당 패킷이 상기 루프백 인터페이스로서 할당된 포트로부터 수신된 것인지 여부가 상기 매치 조건으로서 설정되는 통신 노드. - 통신 시스템으로서,
통신 노드; 및
제어 장치
를 포함하고,
상기 통신 노드는,
제어 정보 항목(들)을 저장하는 복수의 플로우 테이블; 및
상기 복수의 플로우 테이블을 미리 정해진 순서로 선택하고, 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목을 검색하고, 상기 제어 정보 항목에 따라서 상기 수신 패킷을 처리하는 패킷 처리부
를 포함하고,
상기 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목에, 미리 정해진 루프 명령이 부가된 경우, 상기 통신 노드는 상기 복수의 플로우 테이블에서의 다른 제어 정보 항목의 검색과 상기 검색한 제어 정보 항목의 실행을 미리 정해진 횟수 실행하고,
상기 제어 장치는 상기 통신 노드의 상기 복수의 플로우 테이블에, 상기 미리 정해진 루프 명령을 부가한 제어 정보 항목을 포함하는 복수의 제어 정보 항목(들)을 설정하는 통신 시스템. - 패킷 처리 방법으로서,
제어 장치에 의해 설정된 제어 정보 항목(들)을 저장하는 하나 이상의 플로우 테이블(들), 및 상기 하나 이상의 플로우 테이블(들)로부터, 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목을 검색하고, 상기 제어 정보 항목에 따라서 상기 수신 패킷을 처리하는 패킷 처리부를 포함하는 통신 노드에 의해,
상기 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목에, 미리 정해진 루프 명령이 부가되어 있는지 여부를 확인하는 단계; 및
상기 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목에, 상기 미리 정해진 루프 명령이 부가된 경우, 상기 하나 이상의 플로우 테이블(들)에서의 다른 제어 정보 항목의 검색과 상기 검색한 제어 정보 항목의 실행을 미리 정해진 횟수 실행하는 단계
를 포함하는 패킷 처리 방법. - 제어 장치에 의해 설정된 제어 정보 항목(들)을 저장하는 하나 이상의 플로우 테이블(들), 및 상기 하나 이상의 플로우 테이블(들)로부터, 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목을 검색하고, 상기 제어 정보 항목에 따라서 상기 수신 패킷을 처리하는 패킷 처리부를 포함하는 통신 노드에 탑재된 컴퓨터로 하여금,
상기 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목에, 미리 정해진 루프 명령이 부가되어 있는지 여부를 확인하는 처리; 및
상기 수신 패킷에 적합한 매치 조건을 갖는 제어 정보 항목에, 상기 미리 정해진 루프 명령이 부가된 경우, 상기 하나 이상의 플로우 테이블(들)에서의 다른 제어 정보 항목의 검색과 상기 검색한 제어 정보 항목의 실행을 미리 정해진 횟수 실행하는 처리
를 실행하게 하는 프로그램.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012062221 | 2012-03-19 | ||
JPJP-P-2012-062221 | 2012-03-19 | ||
PCT/JP2013/057640 WO2013141200A1 (ja) | 2012-03-19 | 2013-03-18 | 通信ノード、パケット処理方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140144219A true KR20140144219A (ko) | 2014-12-18 |
KR101577926B1 KR101577926B1 (ko) | 2015-12-15 |
Family
ID=49222657
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147028885A KR101577926B1 (ko) | 2012-03-19 | 2013-03-18 | 통신 노드, 패킷 처리 방법 및 프로그램 |
Country Status (10)
Country | Link |
---|---|
US (1) | US9769064B2 (ko) |
EP (1) | EP2830268B1 (ko) |
JP (1) | JP6007972B2 (ko) |
KR (1) | KR101577926B1 (ko) |
CN (1) | CN105210334B (ko) |
CA (1) | CA2867837A1 (ko) |
ES (1) | ES2659566T3 (ko) |
IN (1) | IN2014DN07213A (ko) |
RU (1) | RU2595888C2 (ko) |
WO (1) | WO2013141200A1 (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5603694B2 (ja) * | 2010-07-24 | 2014-10-08 | タカタ株式会社 | チャイルドシート |
EP3021533B1 (en) * | 2013-07-19 | 2019-01-02 | Huawei Technologies Co., Ltd. | Switching device, controller, and method and system for switching device configuration and packet processing |
US20150063110A1 (en) * | 2013-09-04 | 2015-03-05 | Electronics And Telecommunications Research Institute | Programmable sensor networking apparatus and sensor networking service method using the same |
KR20160124161A (ko) * | 2014-02-19 | 2016-10-26 | 닛본 덴끼 가부시끼가이샤 | 네트워크 제어 방법, 네트워크 시스템, 장치, 및 프로그램 |
US9654424B2 (en) * | 2015-07-31 | 2017-05-16 | Nicira, Inc. | Managed forwarding element with conjunctive match flow entries |
US10348619B2 (en) | 2015-07-31 | 2019-07-09 | Nicira, Inc. | Generating conjunctive match flow entries |
US11470009B2 (en) * | 2019-10-18 | 2022-10-11 | Arista Networks, Inc. | Implementing multi-table OpenFlow using a parallel hardware table lookup architecture |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9521831D0 (en) * | 1995-10-25 | 1996-01-03 | Newbridge Networks Corp | Crankback and loop detection in ATM SVC routing |
US7017021B2 (en) | 2001-04-04 | 2006-03-21 | Cypress Semiconductor Corp. | High-speed message forwarding lookups for arbitrary length strings using pipelined memories |
US7409461B2 (en) | 2002-08-19 | 2008-08-05 | Efficient Networks, Inc. | Dynamic file-based routing in a broadband communications system |
IL163092A (en) | 2004-07-19 | 2010-11-30 | Veraz Networks Ltd | Processing of packets forwarded in communication networks |
JP4779955B2 (ja) * | 2006-01-06 | 2011-09-28 | 富士通株式会社 | パケット処理装置及びパケット処理方法 |
US20080189769A1 (en) | 2007-02-01 | 2008-08-07 | Martin Casado | Secure network switching infrastructure |
WO2009155253A1 (en) * | 2008-06-19 | 2009-12-23 | Marvell World Trade Ltd. | Cascaded memory tables for searching |
JP4971396B2 (ja) * | 2009-09-03 | 2012-07-11 | 日本電信電話株式会社 | 通信処理回路及び通信処理方法 |
JP5561366B2 (ja) | 2010-09-08 | 2014-07-30 | 日本電気株式会社 | スイッチシステム、スイッチ制御方法、及び記憶媒体 |
-
2013
- 2013-03-18 JP JP2014506225A patent/JP6007972B2/ja not_active Expired - Fee Related
- 2013-03-18 CA CA2867837A patent/CA2867837A1/en not_active Abandoned
- 2013-03-18 RU RU2014142063/08A patent/RU2595888C2/ru not_active IP Right Cessation
- 2013-03-18 CN CN201380015441.2A patent/CN105210334B/zh not_active Expired - Fee Related
- 2013-03-18 WO PCT/JP2013/057640 patent/WO2013141200A1/ja active Application Filing
- 2013-03-18 ES ES13764085.0T patent/ES2659566T3/es active Active
- 2013-03-18 US US14/380,717 patent/US9769064B2/en active Active
- 2013-03-18 KR KR1020147028885A patent/KR101577926B1/ko not_active IP Right Cessation
- 2013-03-18 EP EP13764085.0A patent/EP2830268B1/en not_active Not-in-force
-
2014
- 2014-08-27 IN IN7213DEN2014 patent/IN2014DN07213A/en unknown
Also Published As
Publication number | Publication date |
---|---|
CA2867837A1 (en) | 2013-09-26 |
JPWO2013141200A1 (ja) | 2015-08-03 |
JP6007972B2 (ja) | 2016-10-19 |
US9769064B2 (en) | 2017-09-19 |
EP2830268A1 (en) | 2015-01-28 |
ES2659566T3 (es) | 2018-03-16 |
IN2014DN07213A (ko) | 2015-04-24 |
EP2830268B1 (en) | 2017-11-15 |
KR101577926B1 (ko) | 2015-12-15 |
US20150016450A1 (en) | 2015-01-15 |
WO2013141200A1 (ja) | 2013-09-26 |
CN105210334B (zh) | 2018-06-26 |
RU2014142063A (ru) | 2016-05-20 |
EP2830268A4 (en) | 2015-11-18 |
RU2595888C2 (ru) | 2016-08-27 |
CN105210334A (zh) | 2015-12-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101577926B1 (ko) | 통신 노드, 패킷 처리 방법 및 프로그램 | |
EP2904745B1 (en) | Method and apparatus for accelerating forwarding in software-defined networks | |
US10645006B2 (en) | Information system, control apparatus, communication method, and program | |
JP5967222B2 (ja) | パケット処理装置、フローエントリの配置方法及びプログラム | |
US9967177B2 (en) | Control apparatus, communication system, switch control method and program | |
WO2012101689A1 (en) | Communication system, forwarding node, control device, communication control method, and program | |
KR20130052031A (ko) | 스위치 시스템, 및 데이터 전송 방법 | |
EP2963870A1 (en) | Control apparatus, communication system, switch control method and program | |
US20180367431A1 (en) | Heavy network flow detection method and software-defined networking switch | |
US20170171039A1 (en) | Network flow information collection method and apparatus | |
WO2014112616A1 (ja) | 制御装置、通信装置、通信システム、スイッチの制御方法及びプログラム | |
EP2830267A1 (en) | Control apparatus, communication system, node control method and program | |
WO2014061583A1 (ja) | 通信ノード、制御装置、通信システム、パケット処理方法及びプログラム | |
KR101812856B1 (ko) | 스위치 장치, vlan 설정 관리 방법, 및 컴퓨터 판독가능 저장매체 | |
US20150281091A1 (en) | Control apparatus, node, communication system, communication method, and program | |
WO2014010723A1 (ja) | スイッチ、通信システム、スイッチ制御方法及びプログラム | |
JP2016178530A (ja) | 通信システム、通信端末、通信方法、プログラム | |
US20150172176A1 (en) | Control device, communication system, communication method and program | |
WO2014020902A1 (en) | Communication system, control apparatus, communication method, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |