KR101365667B1 - 통신 시스템, 노드, 제어 서버, 통신 방법 및 프로그램 - Google Patents

통신 시스템, 노드, 제어 서버, 통신 방법 및 프로그램 Download PDF

Info

Publication number
KR101365667B1
KR101365667B1 KR1020127007016A KR20127007016A KR101365667B1 KR 101365667 B1 KR101365667 B1 KR 101365667B1 KR 1020127007016 A KR1020127007016 A KR 1020127007016A KR 20127007016 A KR20127007016 A KR 20127007016A KR 101365667 B1 KR101365667 B1 KR 101365667B1
Authority
KR
South Korea
Prior art keywords
processing
packet
node
nodes
column
Prior art date
Application number
KR1020127007016A
Other languages
English (en)
Other versions
KR20120062793A (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 KR20120062793A publication Critical patent/KR20120062793A/ko
Application granted granted Critical
Publication of KR101365667B1 publication Critical patent/KR101365667B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/42Centralised routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer

Abstract

본 발명에서는, 노드가 실행해야 할 처리를 나열하여 구성된 처리 열을 포함하는 패킷을 이용한다. 데이터 전송 네트워크의 각 노드는, 상기 패킷에 포함되는 상기 처리 열에 따라서 자신의 노드가 실행해야 할 처리를 실행한다.

Description

통신 시스템, 노드, 제어 서버, 통신 방법 및 프로그램{COMMUNICATION SYSTEM, NODE, CONTROL SERVER, COMMUNICATION METHOD AND PROGRAM}
본 발명은, 통신 시스템, 노드, 제어 서버, 통신 방법 및 프로그램을 저장하는 기계 판독 가능한 저장 매체에 관한 것으로서, 특히 네트워크에 배치된 노드를 통해 패킷을 전송해서 통신을 실현하는 통신 시스템, 노드, 제어 서버, 통신 방법 및 프로그램을 저장하는 기계 판독 가능한 저장 매체에 관한 것이다.
네트워크에 배치된 라우터나 스위치 등의 노드에, 프로그램을 실행시키는 기술로서 액티브 네트워크가 알려져 있다(비특허문헌 1 참조). 특허문헌 1에는, 사전의 시그널링에 의해, 네트워크의 노드에 액티브 코드를 배치하는 시그널링 제어 유닛을 구비하는 액티브 네트워크가 개시되어 있다.
특허문헌 2에는, 다른 패킷 링을 경유하여 전송되는 패킷 플로에 대하여, 다른 패킷 링에서 일관한 서비스 클래스를 적용할 수 있도록 한 광 통신 시스템이 개시되어 있다. 이 광 통신 시스템의 노드 장치는, 다른 패킷 링으로부터 도착한 패킷에 부가된 링간(inter-ring) 헤더 정보에 포함되는 링간 서비스 클래스 정보를 추출한다. 이 추출된 링간 서비스 클래스의 정보에 근거하여, 패킷 링 사이에서 설정되는 링간 서비스 클래스와 링내(intra-ring) 서비스 클래스와의 대응 관계를 기록한 테이블을 참조해서, 도착한 패킷에 설정해야 할 링내 서비스 클래스를 결정한다. 이 노드 장치는, 이렇게 결정한 링내 서비스 클래스의 정보를 포함하는 링내 헤더 정보를 도착한 패킷에 부가한다.
한편, IP 네트워크 등에 있어서의 경로 제어를 행하는 방식으로서, 소스 라우팅이라는 기술이 알려져 있다. 비특허문헌 2에 규정되어 있는 바와 같이, 소스 라우팅에서는, 중계하는 라우터의 IP 어드레스를 지정함으로써 실현된다.
최근, 비특허문헌 3에 나타나 있는 바와 같이, 「오픈플로(OpenFlow)」라는 기술이 제안되어 있다. 오픈플로에서는, 통신을 엔드투엔드(end-to-end) 플로로서 파악하고, 플로 단위로 경로 제어, 장해 회복, 부하 분산 및 최적화를 행한다. 전송 노드로서 기능하는 오픈플로 스위치는, 오픈플로 컨트롤러와의 통신용 시큐어 채널(secure channel)을 포함하고, 오픈플로 컨트롤러로부터 적정하게 추가 또는 재기록의 지시가 주어지는 플로 테이블에 따라 동작한다. 플로 테이블에는, 플로마다, 패킷 헤더와 대조하는 룰(FlowKey)과, 처리 내용을 정의한 액션(Actions)과, 플로 통계 정보(Stats)의 세트가 정의된다(도 6 참조).
도 29에, 비특허문헌 4에 정의되어 있는 액션명과 액션의 내용을 예시한다. OUTPUT는, 지정 포트(인터페이스)에 출력하는 액션이다. SET_VLAN_VID로부터 SET_TP_DST는, 패킷 헤더의 필드를 수정하는 액션이다.
예를 들면, 오픈플로 스위치는, 최초의 패킷(first packet)을 수신하면, 플로 테이블로부터, 수신 패킷의 헤더 정보에 적합한 룰(FlowKey)을 갖는 엔트리(entry)를 검색(룩업(look up))한다. 검색(룩업)의 결과, 수신 패킷에 적합한 엔트리가 발견되었을 경우, 오픈플로 스위치는, 수신 패킷에 대하여, 당해 엔트리의 액션 필드에 기술된 처리 내용을 실시한다. 한편, 상기 검색의 결과, 수신 패킷에 적합한 엔트리가 발견되지 않았을 경우, 오픈플로 스위치는, 시큐어 채널을 거쳐서, 오픈플로 컨트롤러에 대하여 수신 패킷을 전송하고, 수신 패킷의 송신원·송신처에 근거한 수신 패킷의 경로의 결정을 의뢰한다. 그 후, 오픈플로 스위치는, 이러한 통신을 실현하는 플로 엔트리를 수신해서 플로 테이블을 갱신한다.
일본국 특표2006-513671호 공보 일본국 특개2008-236652호 공보
David L. Tennenhouse외 4명, "A Survey of Active Network Research", IEEE Communications Magazine, Vol.35, No.1, pp.80-86, January 1997 IETF, RFC791 "INTERNET PROTOCOL" Nick McKeown외 7명, "OpenFlow: Enabling Innovation in Campus Networks", [online], [2009년 8월 27일 검색], 인터넷(URL: http://www.openflowswitch.org//documents/openflow-wp-latest.pdf) "OpenFlow Switch Specification" Version 0.9.0. (Wire Protocol Ox98) [2009년 8월 27일 검색], 인터넷(URL: http://www.openflowswitch.org/documents/openflow-spec-v0.9.0.pdf)
상기 특허문헌 1, 2 및 비특허문헌 1∼4의 모든 개시 내용은 그 인용에 의해 본 명세서에 포함하여 기재한다.
이하에 본 발명에 따른 관련 기술의 분석을 행한다.
비특허문헌 3의 오픈플로(OpenFlow)라는 기술에서는, 각 스위치에, 플로의 특징에 따른 처리 내용을 선택하여 실행시키기 위한 플로 테이블을 배치하고, 적정하게 재기록할 필요가 있다. 복잡한 경로 제어나 고품질 확보를 원할 경우, 이 플로 테이블에 상기 매칭 룰의 수와 같은 엔트리 수가 필요하게 되어, 스위치의 부하 및 컨트롤러에 의한 관리 부담이 증대해버릴 가능성이 있다.
비특허문헌 1이나 특허문헌 1의 액티브 네트워크 방식에 의하면, 상기와 같은 플로 테이블을 이용하지 않고, 원하는 노드에 특정한 처리를 실행시킬 수 있다. 하지만, 비특허문헌 3과 같은 플로 제어를 행하는 스위치에 오픈플로 기술을 적용했을 경우, 각 스위치에 프로그램 라이브러리(program library)를 구비하거나, 또는 패킷에 프로그램 그 자체를 포함시킬 필요가 있다. 그러면, 가능한 한 전송할 노드의 제어 기능을 간략화하여, 컨트롤러에 집중시키는 기능을 갖는 비특허문헌 3의 특징이 소실될 수도 있다.
본 발명은, 상기한 사정을 감안하여 이루어진 것으로서, 각 노드가 수신 패킷에 따른 처리를 행하게 할 때에 참조시키는 테이블 그 자체, 또는 그 엔트리 수를 삭감할 수 있는 구성 및 방법을 제공하는 것을 특징으로 한다. 본 발명의 구성 또는 방법에서는, 네트워크에 배치된 노드의 제어 기능을 간략화하는 요구를 또한충족시킬 필요가 있다.
제1 형태에서는, 본 발명은, 데이터 전송 네트워크의 데이터 전송 경로 내의 패킷의 노드를 포함하는 통신 시스템을 제공한다. 상기 패킷은 데이터 전송 네트워크의 전송 경로 상의 개개의 노드가 실행해야 할 복수의 처리의 열(array)을 포함하는 헤더를 갖는다. 상기 노드는 상기 처리 열에 따라서 상기 노드가 실행해야 할 처리를 실행한다.
제2 형태에서는, 본 발명은, 데이터 전송 네트워크의 데이터 전송 경로에 배치된, 패킷의 노드를 제공한다. 상기 패킷은 데이터 전송 네트워크의 데이터 전송 경로에 배치된 개개의 노드가 실행해야 할 복수의 처리의 열을 포함하는 헤더를 갖는다. 상기 노드는, 상기 처리 열에 따라서 상기 노드가 실행해야 할 처리를 실행한다.
제3 형태에서는, 본 발명은, 처리 열을 작성하고, 입력 패킷을 송신한 노드에 상기 처리 열을 송신하는 제어 서버를 제공한다. 상기 처리 열은, 데이터 전송 네트워크의 전송 경로 상의 개개의 노드가 실행해야 할 처리를 포함한다. 상기 제어 서버는, 상기 데이터 전송 네트워크에 배치된 상기 노드로부터 수신된 상기 입력 패킷의 헤더에 포함되는 정보에 의거하여 상기 처리 열을 작성한다.
제4 형태에서는, 본 발명은, 입력 패킷에, 데이터 전송 네트워크의 전송 경로 상의 개개의 노드가 실행해야 할 처리의 열을 포함하는 헤더를 부가하고, 상기 데이터 전송 네트워크의 전송 경로 상의 개개의 노드가, 상기 입력 패킷에 부가된 처리 열에 따라서 상기 노드가 실행해야 할 처리를 실행하는 것을 포함하는 통신 방법을 제공한다. 본 방법은, 데이터 전송 네트워크를 포함하는 전송 노드의 형태로 특정한 기계에 결부되어 있다.
제5 형태에서는, 본 발명은, 상기한 노드 또는 제어 서버를 포함하는 컴퓨터에 실행시킬 수 있는, 기계 판독 가능한 저장 매체에서 유형으로 구현되는 컴퓨터 프로그램을 제공한다. 상기 프로그램은, 컴퓨터가 판독 가능한 기록 매체에 기록될 수 있다. 즉, 본 발명은, 컴퓨터 프로그램 제품으로서 구현될 수도 있다. 또한, 상기 컴퓨터 프로그램은, 프로그램 언어로 표현되는, 프로그램 제품(즉, 제조물) 또는 데이터 저장 방법(프로세스)를 구현하는 프로세스로서 간주될 수 있다.
본 발명의 바람직하고 이로운 효과는 다음과 같이 요약된다.
본 발명에 의하면, 네트워크에 배치된 노드의 제어 기능을 간략화한다는 요구를 충족시키면서, 각 노드에 구비하는 테이블의 수 또는 테이블 내의 엔트리 수를 삭감한 구성으로 각종의 처리를 행하게 하는 것이 가능하게 된다. 그 이유는, 데이터 전송 네트워크의 전송 경로 상의 개개의 노드가 실행해야 할 복수의 처리의 열을 포함하는 헤더를 입력 패킷에 부가하고, 상기 데이터 전송 네트워크의 전송 경로 상의 개개의 노드가 실행해야 할 처리를, 상기 입력 패킷에 부가된 헤더 내의 처리 열에 따라서 실행시키도록 구성한 것에 있다.
도 1은 본 발명의 개요를 설명하기 위한 모식면.
도 2는 본 발명의 제1 실시예의 구성을 나타낸 모식도.
도 3은 본 발명의 제1 실시예의 노드의 상세 구성을 나타낸 블럭도.
도 4는 본 발명의 제1 실시예의 제어 서버의 상세 구성을 나타낸 블럭도.
도 5는 본 발명의 제1 실시예의 제어 서버의 플로 엔트리 데이터베이스의 구성을 나타낸 도면.
도 6은 도 5의 플로키(FlowKey; 매칭키)를 설명하기 위한 도면.
도 7은 본 발명의 제1 실시예의 노드의 동작을 나타낸 플로차트.
도 8은 액션 헤더(액션 열)의 부가의 일 형태를 설명하기 위한 도면.
도 9는 액션 헤더(액션 열)의 구체적 형태를 설명하기 위한 도면.
도 10은 본 발명의 제1 실시예의 제어 서버의 동작을 나타낸 플로차트.
도 11은 본 발명의 제1 실시예의 노드 및 제어 서버의 동작 시퀸스(신규 플로 수신시)를 나타낸 모식도.
도 12는 본 발명의 제1 실시예의 노드 및 제어 서버의 다른 동작 시퀸스(신규 플로 수신시)를 나타낸 모식도.
도 13은 본 발명의 제1 실시예의 노드의 다른 동작 예(신규 플로 수신시)를 나타낸 플로차트.
도 14는 본 발명의 제1 실시예의 노드 및 제어 서버의 다른 동작 시퀸스(신규 플로 수신시)를 나타낸 모식도.
도 15는 본 발명의 제1 실시예의 전체 동작을 설명하기 위한 모식도.
도 16은 도 14로부터 연속하는 모식도.
도 17은 도 15로부터 연속하는 모식도.
도 18은 본 발명의 제1 실시예의 노드에서 행해지는 릴레이 동작을 설명하기 위한 모식도.
도 19는 본 발명의 제1 실시예의 노드에서 행해지는 릴레이 동작의 다른 예를 설명하기 위한 모식도.
도 20은 본 발명의 제2 실시예의 구성을 나타낸 모식도.
도 21은 본 발명의 제2 실시예의 제어 서버의 플로 엔트리 데이터베이스의 구성을 나타낸 도면.
도 22는 본 발명의 제2 실시예의 노드에서 행해지는 릴레이 동작의 다른 예를 설명하기 위한 모식도.
도 23은 본 발명의 제3 실시예의 액션 헤더(액션 열)의 부가(매립)의 일 형태를 설명하기 위한 도면.
도 24는 액션 헤더(액션 열)를 매립한 프레임 포맷의 예를 나타낸 도면.
도 25는 본 발명의 제3 실시예의 전체 동작을 설명하기 위한 모식도.
도 26은 본 발명의 제4 실시예를 설명하기 위한 모식도.
도 27은 본 발명의 제5 실시예의 전체 동작을 설명하기 위한 모식도.
도 28은 본 발명의 제6 실시예의 전체 동작을 설명하기 위한 모식도.
도 29는 액션명과 액션 내용을 예시한 도면.
처음에, 본 발명의 실시예의 개요에 관하여 설명한다. 본 발명의 실시예의 통신 시스템의 노드는, 수신 패킷에 부가된 액션 헤더 내의 액션 열(action array; 처리 열)로부터, 노드가 실행해야 할 처리를 특정하고, 이 특정된 처리를 실행하는 기능을 갖고 있다.
상기 액션 헤더는, 데이터 전송 네트워크의 전송 경로 상에 배치된 개개의 노드가 실행해야 할 처리의 열이다. 개개의 액션으로서는, 예를 들면, (1) 헤더 내의 수신처/송신원 IP 어드레스 또는 수신처/송신원 MAC 어드레스, 또는 VLAN Tag값을 지정값으로 변경하는 액션, (2) 패킷을 드롭(폐기)하는 액션, (3) 패킷을 복수의 지정 포트(인터페이스)에서 출력하는(Output) 액션에 의해 정의될 수 있다(도 29 및 비특허문헌 4의 4쪽~6쪽 [3.3·Actions], [Table 5] 참조). 도 1의 예에서는, 수신 패킷은, ID=1의 노드의 포트 #5, ID=2의 노드의 포트 #2, ID=3의 노드의 포트 #3의 순으로 송신되게 된다.
패킷에 액션 헤더를 부가하여 그 패킷을 출력시킴으로써, 순차적으로 지정한 경로 상의 노드에 처리를 행하게 하는 것이 가능하게 된다. 따라서, 관련기술과 연관하여 언급한 액티브 네트워크와 같이 개개의 노드에 액티브 코드를 송신하는 것은 불필요하다. 또한, 경로 상의 각 노드 내의 플로 테이블에 엔트리를 추가하는 처리를 행하는 것도 불필요하게 된다.
상기 액션 헤더는, 최초에 패킷을 수신한 노드에 의해 패킷에 부가될 수 있다. 액션 헤더 내의 액션 열(처리 열)은, 외부의 제어 서버에 문의해서 취득하는 것으로 해도 된다. 또는, 당해 노드 내에 미리 기억되어 있는 액션 열(처리 열)을 매립하는 것으로 해도 된다. 또한, 액션 헤더는, 당해 경로의 종단이 되는 노드에 의해 삭제되는 것으로 해도 된다.
[제1 실시예]
본 발명의 제1 실시예에 대해서 도면을 참조해서 상세하게 설명한다. 도 2는 본 발명의 제1 실시예에 관한 통신 시스템을 나타낸다. 도 2를 참조하면, 3개의 노드(10)와, 제어 서버(20)와, 노드(10)를 경유해서 서로 통신하는 통신 노드(30)가 도시되어 있다. 도 2의 예에서는, 3개의 노드(10)와, 제어 서버(20)와, 2개의 통신 노드(30)를 도시하고 있지만, 각각의 수는, 어디까지나 예시이며, 각각 임의의 수로 할 수 있다.
도 3은 노드(10)의 상세 구성을 나타낸다. 도 3을 참조하면, 노드(10)는, 제어 서버(20)와 통신하는 서버 통신부(11)와, 플로 테이블(13)을 관리하는 플로 테이블 관리부(12)와, 전송 처리부(14)를 포함한다.
전송 처리부(14)는, 유저 트래픽으로서 수신한 패킷에 부가되어 있는 액션 헤더로부터, 자신의 노드가 실행해야 할 액션을 취출하여, 액션 실행부(18)에 출력하는 액션 추출부(17)를 포함한다. 또한, 전송 처리부(14)는, 수신 패킷에 액션 헤더가 부가되어 있지 않은 경우에, 플로 테이블(13)로부터 엔트리를 검색(룩업)하여, 그 결과를 액션 열 설정부(16)에 출력하는 플로 테이블 검색부(플로 엔트리 룩업부)(15)를 포함한다. 또한, 전송 처리부(14)는, 액션 열 설정부(16)를 포함한다. 액션 열 설정부(16)는, 상기 플로 테이블 검색부(15)에서 검색되고 자신의 노드 이외의 노드에서 실행해야 할 엔트리의 액션 열을 액션 헤더로서 수신 패킷에 부가한다. 또한, 전송 처리부(14)는, 수신 패킷에 대하여, 액션 추출부(17)로부터 출력된 액션, 즉, 자신의 노드(즉, 노드 자체)가 실행해야 할 액션을 실행하는 액션 실행부(18)를 포함한다. 또한, 액션 열 설정부(16)는, 플로 테이블 검색부(15)에 의한 엔트리의 룩업 결과, 해당하는 엔트리가 없는 것을 나타내는 경우에 제어 서버(20)에 부가해야 할 액션 열을 문의하는 처리를 행한다.
본 발명의 노드(10)는, 오픈플로 스위치에, 상기 액션 추출부(17) 및 액션 열 설정부(16)를 추가한 구성으로 실현될 수도 있다.
도 4는 제어 서버(20)의 상세 구성을 나타낸다. 도 4를 참조하면, 제어 서버(20)는, 플로 엔트리를 저장한 플로 엔트리 데이터베이스(플로 엔트리 DB)(21)와, 노드 통신부(25)를 통하여 수집된 노드(10)의 접속 관계에 의거하여 네트워크 토폴로지 정보를 구축하는 토폴로지 관리부(22)를 포함한다. 또한, 제어 서버(20)는, 토폴로지 관리부(22)에서 구축된 네트워크 토폴로지 정보에 의거하여 패킷의 전송 경로 및 상기 전송 경로 상의 노드(10)에 실행시키는 액션 열을 구하는 경로·액션 계산부(23)를 포함한다. 또한, 제어 서버(20)는, 경로·액션 계산부(23)에서 계산된 결과를 플로 엔트리로서 플로 엔트리 DB(21)에 등록하고, 노드(10)로부터의 플로 엔트리 또는 엔트리들의 추가 또는 갱신 요구에 응답하는 플로 엔트리 관리부(24)를 포함한다. 제어 서버(20)는, 노드(10)와의 통신을 행하는 노드 통신부(25)를 더 포함한다. 노드(10)에 대하여 추가 또는 갱신을 지시한 플로 엔트리를 유지할 필요가 없을 경우, 플로 엔트리 데이터베이스(플로 엔트리 DB)(21)는 생략하는 것이 가능하다. 이 플로 엔트리 데이터베이스(플로 엔트리 DB)(21)를 예를 들면 별도의 외부 서버에 설치할 수도 있다.
도 5는 플로 엔트리 DB(21)에 저장되는 플로 엔트리의 예를 나타낸다. 도 5를 참조하면, 각 엔트리는, DPID(데이터 패스 ID)와, FlowKey(플로 키 또는 매칭 키)와, Actions(액션 열)로 구성된다. 도 5의 예에서는, A라는 FlowKey(플로 키 또는 매칭 키)에 적합한 패킷에, 「Output to Port #9 by DPID 1/ Output to Port #6 by DPID 2/ Output to Port #1 by DPID 3」이라는 액션 열이 부가된다.
도 6은 FlowKey(매칭 키)의 필드 구성을 나타낸다. 예를 들면, 수신처 어드레스(IP DA)가 특정의 서버인 패킷을 수신한 노드(10)에 Actions 필드(가변 길이)에 정의한 액션을 실행시키는 것이 가능하게 된다. 마찬가지로, 특정의 포트(In Port)에서 입력된 패킷에 대해서 Actions 필드(가변 길이 필드)에 정의한 액션을 실행시키는 것이 가능하게 된다.
제어 서버(20)는, 오픈플로 컨트롤러의 상기 플로 엔트리 DB(21)의 구성 또는 노드(10)에 대하여 추가 또는 변경을 지시하는 플로 엔트리의 내용을 변경함으로써 실현하는 것도 가능하다.
계속해서, 상기한 노드(10) 및 제어 서버(20)의 동작에 관하여 설명한다. 도 7은 상기 노드(10)의 동작을 나타낸 플로차트이다. 도 7을 참조하면, 노드(10)는, 통신 노드(30)나 다른 노드(10)로부터 패킷을 수신하면(스텝 S001), 수신 패킷의 액션 헤더로부터 자신의 노드가 실행해야 할 액션을 추출한다(스텝 S002).
상기 액션의 추출 결과, 액션을 추출할 수 있었을 경우(스텝 S003의 No), 노드(10)는, 자신의 노드가 실행해야 할 액션을 실행한다(스텝 S009).
상기 액션의 추출 결과, 액션을 추출할 수 없었을 경우(스텝 S003의 Yes), 노드(10)는, 플로 테이블(13)로부터 플로 엔트리를 룩업하여, 수신한 패킷에 적합한 플로 엔트리가 있는지의 여부를 검색한다(스텝 S004).
상기 플로 테이블(13)로부터 플로 엔트리를 검색(룩업)한 결과, 수신한 패킷에 적합한 플로 엔트리가 발견되었을 경우(스텝 S005의 Yes), 노드(10)는, 자신이 실행해야 할 액션을 추출한다(스텝 S008). 노드는 발견된 플로 엔트리의 액션 열을 액션 헤더로서, 수신 패킷 헤더에 부가한다(스텝 S009). 수신한 패킷이 플로 엔트리 DB(21)에 이미 등록 완료된 패킷의 후속 패킷인 경우, 상기한 바와 같이 상기 플로 테이블(13)로부터의 플로 엔트리의 검색(룩업) 결과를 이용하여, 노드 자신이 실행해야 할 액션의 추출과 액션 헤더의 작성·부가가 행해진다.
한편, 상기 플로 테이블(13)의 검색 결과, 수신한 패킷에 적합한 플로 엔트리가 발견되지 않았을 경우(스텝 S005의 No), 노드(10)는, 수신 패킷의 전부 또는 수신 패킷의 일부를 제어 서버(20)에 송신하고, 액션 열의 작성을 요구한다(스텝 S006).
제어 서버(20)로부터 액션 열을 수신하면, 노드(10)는, 수신한 플로 엔트리를 플로 테이블(13)에 등록한다(스텝 S007). 그 후, 노드(10)는, 제어 서버(20)로부터 패킷 출력 지시를 수신한다(스텝 S011). 상기 패킷 출력 지시가 플로 검색(룩업) 지시를 따를 경우(스텝 S012의 Yes), 노드(10)는, 당해 패킷에 적합한 플로 엔트리가 있는지의 여부를 재차 검색한다(스텝 S004-2). 그 후, 노드(10)는, 노드(10) 자신이 실행해야 할 액션의 추출하고(스텝 S008), 얻어진 액션 열을 액션 헤더로서 수신 패킷의 패킷 헤더에 부가한다(스텝 S009). 상기 패킷 출력 지시가 플로 검색 지시가 아니라, 당해 패킷에 대하여 실행해야 할 액션, 즉, 패킷에 액션 열을 부가하고 결과로서 생긴 패킷을 지정 포트에서 출력하는 하나 이상의 액션을 따를 경우도 마찬가지로 적용된다. 즉, 노드는, 문의의 액션에 따라서, 노드 자신이 실행해야 할 액션을 추출하고(스텝 S008), 얻어진 액션 열을 액션 헤더로서 수신 패킷 헤더에 부가하는 처리를 행한다(스텝 S009).
최후에, 노드(10)는, 자신의 장치가 실행해야 할 액션을 실행한다(스텝 S010).
상기 스텝 S009에서의 액션 열의 부가 방법에 관하여 설명한다. 본 실시예에서는, 도 8에 나타내는 바와 같이, 수신한 패킷의 선두에 캡슐화에 의해 액션 헤더를 추가함으로써 액션 헤더를 부가하고 있는 것으로 한다. 액션 열을 수신 패킷의 헤더에 매립하는 방법이 이용될 수도 있다. 이것은 제3 실시예로서 후술한다.
액션 열은, 각 노드(10)가 각각 실행해야 할 액션을 특정할 수 있는 형태의 것이면, 특별하게 한정되지 않는다. 예를 들면, 도 9(a)에 나타낸 바와 같이 , 각 노드(10)가, 적당한 딜리미터(delimiter)나 별도 설치한 Length 필드 등에 의거하여 선두로부터 순번대로 액션을 취출하도록 액션 열이 형성될 수도 있다. 예를 들면, 도 9(b)에 나타낸 바와 같이 , 각 노드(10)가, 선두의 포인터 비트를 증분(1만큼 가산)하면서, 액션을 실행할 수도 있다. 도 9(a), (b) 어느 쪽의 경우도 노드 #2는 포트 #2로부터 다음 홉(hop)의 노드 #3에 패킷을 전송하고, 노드 #3은 포트 #9로부터 다음 홉에 패킷을 전송한다.
또한, 도 9(c)에 나타내는 바와 같이, 각 노드의 ID와 실행해야 할 액션을 세트로 그룹화한 액션 열을 이용할 수도 있다. 도 9(c)의 경우, ID: B를 가지는 노드 #2는, 액션 헤더 중 노드 #2(자신의 노드)의 ID: B가 부가된 「B2」를 취출하고, 포트 #2로부터 다음 홉의 노드 #3에 패킷을 전송한다. ID: C를 가지는 노드 #3은, 액션 헤더 중 자신의 ID: C가 부가된 「C9」를 취출하고, 포트 #9로부터 다음 홉에 패킷을 전송한다. 이러한 액션 열의 경우, 액션의 기재 순서가, 전송 경로 상의 노드의 순서와 일치할 필요는 없다. 따라서, 각 노드(10)는, 그 때마다 액션 헤더를 재기록하지 않아도 각 노드(10)(즉, 자신의 노드)에서 실행해야 할 액션을 특정하는 것이 가능해진다.
또한, 도 9(d)에 나타내는 바와 같이, 각 노드(10)에 대해서 각각 액션 헤더중 액션을 취출해야 할 영역을 설정해 두는 방법을 이용할 수도 있다. 도 9(d)의 경우, 액션 헤더의 비트 0-3으로부터 액션을 취출하는 것이 정해진 노드 #2는, 「2」를 취출하여, 포트 #2로부터 다음 홉의 노드 #3에 패킷을 전송한다. 액션 헤더의 비트 4-9로부터 엑션을 취출하는 것이 정해진 노드 #3은, 「9」를 취출하여, 포트 #9에서 다음 홉에 패킷을 전송한다. 이러한 액션 열의 경우, 액션의 순서가, 전송 경로 상의 노드의 순서와 일치할 필요는 없어, 각 노드(10)는 그 때마다 액션 헤더를 재기록하지 않아도 각 노드(10)에서 실행해야 할 액션을 특정하는 것이 가능해진다.
도 10은 제어 서버(20)의 동작을 나타낸 플로차트이다. 도 10을 참조하면, 제어 서버(20)는, 상기 도 7의 스텝 S006과 같이, 스텝 S101에서 노드(10)로부터 액션 열의 작성 요구를 수신하면, 스텝 S102에서 토폴로지 관리부(22)에서 구축된 네트워크 토폴로지 정보를 취득하고, 패킷의 전송 경로를 계산한다.
상기 패킷의 전송 경로를 계산한 결과, 노드 고장이나 경로를 작성할 수 없는 등의 이유에 의해, 전송이 불가능한 경우(스텝 S103의 No)를 제외하고, 제어 서버(20)는, 스텝 S104에서 상기 계산된 전송 경로에 대응하는 액션을 계산하고, 스텝 S105에서 액션 열을 생성한다. DPID#1의 노드(10)로부터, DPID#2의 노드(10)로, 그리고 DPID#3의 노드(10)로의 경로가 요청되어 있을 경우, 「Output to Port #9 by DPID1/ Output to Port #6 by DPID2/ Output to Port #1 by DPID3」이라는 액션 열이 생성된다.
액션 열의 생성이 완료하면, 제어 서버(20)는, 후속하는 패킷의 매칭 판정하기 위한 FlowKey(매칭 키)을 생성한다. 그 후, 제어 서버(20)는, 스텝 S106에서 플로 엔트리를 생성한다. 플로 엔트리에는, 수신 패킷에, 상기 계산한 액션 열을 설정하라는 정보 및 당해 수신 패킷을 수신한 노드가 실행해야 할 액션에 관한 정보가 정의된다. 최후에, 제어 서버(20)는, 액션 열의 요구원의 노드(10)에 플로 엔트리를 송신한 후(스텝 S107), 노드(10)가 패킷을 버퍼하고 있지 않을 경우(스텝 S108의 No), 패킷의 출력 지시를 행한다(스텝 S109). 이 패킷의 출력 지시는, 출력해야 할 패킷(수신 패킷)과, 당해 패킷에 대하여 실행해야 할 액션(패킷에 액션 헤더를 부가해서 지정 포트에서 출력하는 처리)을 지정하거나, 또는 출력해야 할 패킷(수신 패킷)과 플로 테이블로부터의 플로 엔트리의 검색(룩업)을 지시함으로써 행해진다. 한편, 노드(10)가 패킷을 버퍼하고 있을 경우(스텝 S108의 Yes), 도 13, 도 14을 참조하여 후술하는 바와 같이 패킷의 전송은 이루어지지 않는다.
도 11은 통신 노드 A로부터 송출된 패킷(수신 패킷)에 의거하여 새로운 플로 엔트리가 등록되고나서, 당해 패킷(수신 패킷)이 다음 홉에 전송될 때까지의 흐름을 나타내는 시퀸스도이다.
노드(10)는, 수신한 패킷에 액션 헤더가 부가되어 있지 않다고 판단하면, 이미 플로 엔트리가 작성된 플로인지의 여부를 체크하기 위해서 플로 테이블(13)로부터 플로 엔트리의 검색(룩업)을 행한다. 이 처리 스텝은 도 7의 스텝 S004와 동일하다. 이 시점에서는, 플로 테이블(13)에 해당하는 엔트리는 등록되어 있지 않기 때문에 , 노드(10)는, 제어 서버(20)에 대하여, 액션 열의 작성을 요구한다. 이 처리 스텝은 도 7의 스텝 S006과 동일하다.
상기 액션 열의 작성 요구를 받은 제어 서버(20)는, 상술한 바와 같이, 수신 패킷의 전송 경로 및 액션 열을 계산한다. 상기 수신 패킷에, 상기 계산한 액션 열을 설정하라는 정보 및 당해 수신 패킷을 수신한 노드가 실행해야 할 액션에 관한 정보를 가지는 플로 엔트리를 생성한다. 이 처리 스텝은 도 10의 스텝 S102 내지 S106과 동일하다.
상술한 바와 같이, 플로 엔트리를 수신한 노드(10)는, 플로 엔트리를 플로 테이블(13)에 등록한다. 이 처리 스텝은 도 7의 스텝 S007과 동일하다.
그 후, 노드(10)가 제어 서버(20)로부터 패킷 출력 지시를 수신하면, 노드(10)는, 노드 자신이 실행해야 할 액션을 추출한다. 이 처리 동작은 도 7의 스텝 S008과 동일하다. 그 후, 노드는 수신한 패킷에 액션 헤더를 부가한다. 이 처리 동작은 도 7의 스텝 S009와 동일하다. 그 후, 노드는 결과로서 생긴 패킷을 지정 포트에서 출력한다. 이 처리 동작은 도 7의 스텝 S010과 동일하다.
도 12는 도 11의 동작 시퀸스를 변형한 것이다. 도 11의 동작 시퀸스와의 차이점은, 제어 서버(20)가 플로 엔트리의 송신 후, 도 10의 스텝 S109의 패킷 출력 지시를 발행할 때, 제어 서버(20)는 출력해야 할 패킷(수신 패킷)을 지정하면서, 액션으로서 플로 테이블의 검색(플로 테이블로부터의 엔트리의 룩업)을 지시하는 점이다.
상기 지시를 받으면, 노드(10)는, 수신 패킷을 키로서, 플로 테이블로부터의 플로 엔트리의 검색(룩업)을 재차 실행한다(도 12의 스텝 S004-2). 앞의 스텝 S007에서, 플로 엔트리의 등록을 행하고 있기 때문에, 수신 패킷에 대한 플로 엔트리가 검색된다. 노드(10)는, 상기 플로 엔트리로부터 노드(10) 자신이 실행해야 할 액션을 추출한다. 이 처리 동작은 도 7의 스텝 S008과 동일하다. 노드(10)는 수신 패킷에 액션 헤더를 부가한다. 이 처리 동작은 도 7의 스텝 S009와 동일하다. 그 후, 노드(10)는, 결과로서 생긴 패킷을 지정 포트에서 출력한다. 이 처리 동작은 도 7의 스텝 S010과 동일하다.
노드(10)가 패킷의 버퍼 기능을 갖고 있을 경우, 도 7의 플로차트는, 도 13의 플로차트로 치환되는 한편, 도 11의 동작 시퀸스는, 도 13의 시퀸스로 치환된다. 도 7의 플로차트 및 도 11의 동작 시퀸스와, 도 13의 플로차트 및 도 14의 동작 시퀸스의 차이점은, 패킷 보존 처리(스텝 S021)와, 패킷 취출 처리(스텝 S022)가 새롭게 추가되고, 제어 서버(20)로부터의 패킷 출력 지시가 생략되어 있는 점이다. 도 13, 도 14의 예에서는, 노드(10)로부터 제어 서버(20)로의 액션 열 작성 요구에, 수신 패킷을 저장한 버퍼 ID를 첨부한다. 제어 서버(20)로부터 노드(10)로 플로 엔트리 송신할 때에, 상기 수신한 버퍼 ID를 플로 엔트리에 첨부한다. 노드(10)는, 플로 엔트리 등록 후(스텝 S007), 지정된 버퍼 ID로부터 수신 패킷을 취출하고(스텝 S022), 노드(10) 자신이 실행해야 할 액션의 추출 및 액션 헤더의 부가를 행한다(스텝 S008 및 S009) 그 후, 결과로서 생긴 패킷을 지정 포트에서 출력한다(스텝 S010).
도 15∼도 17을 참조하여, 여기까지 설명한 일련의 동작을 정리해서 설명한다. 통신 노드 A가 통신 노드 B에, 헤더 X를 가지는 패킷을 송신하면(도 15의 (1)), 패킷을 수신한 노드 #1은, 자신의 플로 테이블로부터 플로 엔트리를 룩업하지만 해당하는 엔트리가 없기 때문에, 제어 서버(20)에 그 패킷에 대응하는 액션 열 생성을 요구한다(도 15의 (2) Packet-In).
제어 서버(20)는, 노드 #1로부터 송신된 패킷에 대응하는 액션 열(Acts) 및 적절한 매칭 키(X)를 설정한 플로 엔트리를 생성한다. 그 후, 제어 서버(20)는 이렇게 생성된 플로 엔트리를 노드 #1에 반송한다(도 15의 (4) FlowMod (Add)).
도 16은 노드 #1이 플로 엔트리를 플로 테이블에 등록한 상태를 나타내고 있다. 이 상태에서, 제어 서버(20)가, 노드 #1에 패킷 출력 지시를 하면(도 16의 (5) Packet-Out), 노드 #1은, 수신 패킷에 액션 헤더(Acts)를 부가해서 노드 #2에 전송한다(도 16의 (6)).
노드 #2는, 액션 헤더(Acts)에 포함되는 노드 #2 자신이 실행해야 할 액션을 판독한다. 노드 #2는 포트 #5에서 상기 수신 패킷을 출력한다. 노드 #2에서 출력된 패킷은, 노드 #3에 전달된다.
노드 #3은, 액션 헤더(Acts)에 포함되는 노드 #3 자신이 실행해야 할 액션을 판독한다. 노드 #3은 액션 헤더(Acts)를 삭제한 다음에 포트 #9로부터 상기 수신 패킷을 출력한다. 노드 #3으로부터 출력된 패킷은, 통신 노드 B에 전달된다(도 16의 (7)).
그 후는, 도 17에 나타내는 바와 같이, 통신 노드 A가 통신 노드 B에, 후속하는 패킷을 전송한다(도 17의 (8)). 패킷을 수신한 노드 #1은, 제어 서버(20)에 문의하지 않고, 자신의 플로 테이블을 검색하여, 해당하는 엔트리의 액션 열로부터 액션 헤더를 생성해서 상기 패킷을 노드 #2에 송신한다(도 17의 (9)). 그 후, 노드 #2, 노드 #3의 순으로 패킷이 전송되어, 최후에 통신 노드 B에 도달한다(도 17의 (10)).
경로가 길 경우나, 액션 헤더의 길이에 제약이 있을 경우, 경로의 도중의 노드에 액션 헤더를 취득시킬 필요가 생기는 경우가 있다. 이 동작을 「릴레이(relaying) 처리」 또는 「브리스-테이킹(breath-taking) 릴레이 처리」라 한다. 이 경우, 도중의 노드에, 액션 열의 생성 요구를 행하게 한다(도 18의 (1) Packet-In). 후속하는 노드에 실행시키는 액션 열을 도중의 노드에 취득시켜서, 도중의 노드에 액션 헤더를 부가시킬 수 있다.
제어 서버(20)는, 경로 및 액션 열의 계산시에, 상기 「브리스-테이킹 릴레이 처리」가 필요한 노드를 찾을 수 있다. 상기 브리스-테이킹 릴레이 처리는, 그 필요가 생겼을 때에 행할 뿐만 아니라, 사전에 해당하는 노드에 플로 엔트리를 송신하는 것에 의해서도 실행된다.
도 19에 나타내는 바와 같이, 제어 서버(20)가 액션 열의 생성 요구를 받았을 때에(도 19의 (1) Packet-In), 노드 #1(도 19의 (2) FlowMod) 뿐만 아니라, 노드 #n-1에도 플로 엔트리를 송신할 수 있다(도 19의 (3) FlowMod).
[제2 실시예]
이하, 본 발명의 제2 실시예에 대해서 도면을 참조해서 상세하게 설명한다. 도 20은 본 발명의 제2 실시예에 관한 통신 시스템을 나타낸다. 본 실시예가 도 2에 나타낸 제1 실시예와 차이점은, 각 노드(10a)가, 액션 테이블을 구비하고 있고, 액션 테이블의 포인터를 지시함으로써 액션을 특정할 수 있는 점이다.
도 21은 본 발명의 제2 실시예의 제어 서버(20a)의 플로 엔트리 DB에 저장되는 플로 엔트리의 예를 나타낸다. 도 21을 참조하면, 각 엔트리는, DPID(데이터 패스 ID)와, FlowKey(플로 키 또는 매칭 키)와, 액션을 실행해야 할 노드 및 액션 테이블의 포인터로 구성된다.
본 실시예에서는, 액션 헤더의 사이즈 또는 액션 헤더에 수용하는 액션의 수를 늘리는 것이 가능해진다. 물론, 본 실시예에서도, 도 22에 나타내는 바와 같이, 경로 도중의 노드(10a)에 브리스-테이킹 릴레이 처리를 행하게 하는 것이 가능하다. 예를 들면, 도 22의 노드 #n-1에서 브리스-테이킹 릴레이 처리가 필요한 것이 판단되어 있는 경우에는 이하와 같이 된다. 우선, 수신 패킷에, 후속 노드 #n 이하에 실행시키는 액션 열을 기재한 액션 헤더를 부가해서, 결과로서 생긴 패킷을 송신하는 액션을 노드 #n-1의 액션 테이블에 저장해 둔다. 그리고, 노드 #n-1에 당해 액션을 실행시키는 포인터를 포함하는 액션 헤더가 전달되도록 하면 된다.
[제3 실시예]
이하, 본 발명의 제3 실시예에 대해서 도면을 참조해서 상세하게 설명한다. 상기 제1, 제2 실시예에서는, 액션 헤더는 수신 패킷의 선두에 부가하는 것으로 했지만(도 8 참조), 도 23에 나타내는 바와 같이, 수신 패킷의 헤더의 일부를 재기록하는 것도 가능하다.
도 24는 수신 패킷의 MAC DA 필드 일부에 액션 열을 저장한 경우의 프레임 포맷을 나타낸다. MAC DA 필드의 선두로부터 7, 8비트째(또는 1 옥텟(octet)째의 하위 2비트)를 제외한 46비트를 액션 열의 저장 영역이라고 했을 경우를 고려한다. 각 노드의 출력 포트가 최대 64포트라 하면, 포트는 6비트로 일의적으로 특정할 수 있다. 따라서, 도 9(a)에 나타낸 바와 같이, 포트만을 나열하는 경우에는 최대 7개의 액션을 수용하는 것이 가능하게 된다. 한편, 도 9(c)에 나타낸 바와 같이, 각 노드의 ID를 부가할 경우에는, 예를 들면 각 노드의 ID의 길이를 8비트라 하면, 최대 3개의 액션을 수용하는 것이 가능하게 된다. 도 24의 예에서는, MAC DA 필드를 이용하고 있지만, MAC SA 필드나 그 외의 필드를 이용해도 된다. 또한, MAC DA 필드와 MAC SA 필드를 연속해서 나열해도 된다. 이들의 경우, 상기한 수용 가능한 액션의 수는 각각 증대될 수 있다.
상기한 바와 같이 MAC DA 필드를 이용해서 액션 열을 매립할 경우, 최종 홉에서 MAC DA 필드를 복원하는 동작이 필요하게 된다. 이하, 도 25를 참조하여, 본 실시예의 동작을 설명한다. 통신 노드 A가 통신 노드 B에, 헤더 X를 가지는 패킷을 송신하면(도 25의 (1)), 패킷을 수신한 노드 #1은, 자신의 플로 테이블로부터 플로 엔트리를 룩업한다. 하지만, 해당하는 엔트리가 없기 때문에, 노드 #1은 제어 서버(20b)에 그 패킷에 대응하는 액션 열 생성을 요구한다(도 25의 (2) Packet-In).
제어 서버(20b)는, 노드 #1로부터 송신된 패킷의 매칭 키(X) 및 헤더를 액션 열을 갖는 헤더(X')로 치환하는 액션을 설정한 플로 엔트리를 생성하고, 이렇게 형성된 플로 엔트리를 노드 #1에 반송한다(도 25의 (4) FlowMod (Add)). 또한, 제어 서버(20b)는, 액션 열을 갖는 헤더(X')를 원래의 헤더(X)로 복원하고 나서 소정 포트에서 결과로서 생긴 플로 엔트리를 출력하는 액션을 설정한 플로 엔트리를 생성한다. 그 후, 제어 서버(20b)는, 이렇게 형성된 플로 엔트리를 경로의 최종 홉이 되는 노드 #3에 송신한다(도 25의 (5) FlowMod (Add)).
제어 서버(20b)가, 노드 #1에 대하여, 헤더를 액션 열을 갖는 헤더(X')로 한 패킷의 패킷 출력 지시를 행한다(도 25의 (6) Packet-Out). 노드 #1은, 수신 패킷을 노드 #2에 전송한다(도 25의 (7)).
노드 #2는, 액션 열을 갖는 헤더(X')에 포함되는 노드 #2 자신이 실행해야 할 액션을 판독한다. 노드 #2는, 포트 #5로부터 상기 수신 패킷을 출력한다. 노드 #2로부터 출력된 패킷은, 노드 #3에 전달된다.
노드 #3은, 액션 열을 갖는 헤더(X')에 대응하는 플로 엔트리를 취출하여, 액션 열을 갖는 헤더(X')를 원래의 헤더(X)로 복원한다. 노드 #3은, 포트 #9에서 상기 복원된 패킷을 출력한다. 노드 #3에서 출력된 패킷은, 통신 노드 B에 전달된다.
그 후, 도 25에 나타내는 바와 같이, 통신 노드 A가 통신 노드 B에, 후속하는 패킷을 송신한다(도 25의 (9)). 패킷을 수신한 노드 #1은, 제어 서버(20b)에 문의하지 않고, 자신의 플로 테이블로부터 플로 엔트리를 룩업한다. 노드 #1은, 해당하는 엔트리의 내용에 따라서, 액션 열을 갖는 헤더(X')를 부가한 패킷을 노드 #2에 송신한다(도 25의 (10)). 그 후, 노드 #2, 노드 #3의 순으로 패킷이 전송되어, 최후에 통신 노드 B에 도달한다(도 25의 (11)).
상기한 바와 같은 본 실시예에 의하면, 제1 실시예와 비교하여, 액션 헤더에 대응하는 양만큼 오버헤드를 저감하는 것이 가능하게 된다.
또한, 본 실시예와, 제2 실시예를 조합시키는 것도 가능하다. 예를 들면, 도 25에 나타낸 바와 같이 , 각 노드의 액션 테이블 상의 액션을 지시하는 포인터를 이용하면, 1 헤더에, 보다 많은 액션을 수용하는 것이 가능하게 된다. 이 경우의 최종 홉에서의 헤더의 복원은, 노드 #3의 액션 테이블에 헤더(X')를 헤더(X)로 되돌리는 액션을 저장해 두고, 노드 #3에 당해 액션을 나타내는 포인터(00x5)를 지시하면 된다.
도 26은 본 발명의 제4 실시예를 나타내는 모식도이다.
상기 헤더 복원 처리는, 각종의 방법에 의해 실현할 수 있다. 예를 들면, 도 27에 나타내는 바와 같이, 최종 홉의 노드 #3의 플로 테이블에, 다음 액션을 실행시키는 플로 엔트리를 추가할 수 있다. 우선, (12) X'으로부터 IP DA(Internet Protocol Destination Address)를 취득하고, (13) In Port 이외의 포트에 ARP(Address Resolution Protocol) Request를 송신한다. (14) IP DA에 해당하는 MAC DA를 취득하고, (15) 취득한 MAC DA를 이용하여 헤더를 복원한다. 그 후, (16) MAC DA의 수신 포트에 패킷을 송신한다.
MAC SA 필드를 액션 열의 저장에 이용하고 있지 않을 경우에는, 도 28에 나타내는 바와 같이, 다음과 같은 액션이 수행되는 방법을 이용할 수 있다. 이 액션은, MAC DA 필드의 내용(00:00:00:00:00:01)을, MAC SA 필드로 퇴피시킨 후에, MAC DA 필드에 액션 열을 저장하고, 최종 홉의 노드 #3에, MAC SA 필드의 내용을 이용하여 MAC DA 필드를 재기록하여 돌려보낸다. 도 28의 예에서는, MAC SA 필드에 어드레스(00:00:00:00:00:02)를 삽입하고 있지만, 이 어드레스는 그 외의 임의의 값일 수 있다.
액션 열의 수용처로서는, 도 24의 예에 한정되지 않고, MAC SA 필드, VAN_ID(VID), Type 또는 그 외의 적절한 필드를 이용할 수도 있다. 또한, 액션 열은, 상위 레이어의 헤더나 데이터 영역 등 미리 정한 위치에 수용될 수도 있다.
이상, 본 발명의 바람직한 실시예를 설명했지만, 본 발명은, 상기한 실시예에 한정되는 것이 아니라, 본 발명의 기본적 기술적 사상을 일탈하지 않는 범위 내에서 변형 또는 조정될 수 있다. 상기한 실시예의 제어 서버(20, 20a∼20f)는, 전용의 서버로서 실현할 수도 있다. 노드(10, 10a∼10f)는, 상기 오픈플로 스위치 외에, IP 네트워크에서의 라우터, MPLS(Multi-Protocol Label Switching) 네트워크에서의 MPLS 스위치로 실현될 수도 있다. 서버가 네트워크 내의 노드를 집중 관리하는 것과 같은 네트워크이면, 본 발명을 적용하는 것이 가능하다.
본 발명의 동작으로부터도 분명한 바와 같이, 액션 열 설정부(16)는, 경로의 시점(始點)에 상당하는 입구 노드(예를 들면 도 18의 노드 #1)와, 도 18의 노드 #n-1 등의 「브리스-테이킹 릴레이 처리」를 행하는 노드로서 설치되어 있으면 된다. 따라서, 네트워크 내의 노드가, 입구 노드 또는 「브리스-테이킹 릴레이 처리」를 행하는 노드에 해당하는지를 알고 있을 경우에는, 액션 열 설정부(16)를 생략하는 것이 가능하다.
이하에서는, 본 발명의 전형적인 형태를 요약한다.
(제1 형태)
데이터 전송 네트워크의 노드를 포함하는 통신 시스템으로서,
상기 노드는, 상기 노드가 실행해야 할 복수의 처리를 나열하여 구성된 처리 열(array)을 포함하는 패킷을 수신하며, 상기 처리 열에 따라서 상기 노드가 실행해야 할 처리를 실행하는 통신 시스템.
(제2 형태)
제1 형태에 있어서,
상기 처리 열은, 복수의 노드가 실행해야 할 처리로 구성 가능한 통신 시스템.
(제3 형태)
제1 또는 제2 형태에 있어서,
상기 패킷은, 상기 처리에 필요한 데이터를 더 포함하는 통신 시스템.
(제4 형태)
제1 내지 제3 형태 중 어느 하나에 있어서,
입력 패킷에 상기 처리 열을 포함시키는 처리 열 설정부를 갖는 노드를 더 포함하는 통신 시스템.
(제5 형태)
제4 형태에 있어서,
상기 처리 열 설정부는, 상기 입력 패킷에 상기 처리 열이 포함되어 있지 않을 경우, 상기 입력 패킷의 헤더에 포함되는 정보에 의거하여 처리 열을 취득하여, 상기 처리 열을 상기 입력 패킷에 포함시키는 통신 시스템.
(제6 형태)
제4 형태에 있어서,
상기 처리 열 설정부는, 자신의 노드가 실행해야 할 처리가 상기 입력 패킷의 상기 처리 열에 포함되어 있지 않을 경우, 상기 입력 패킷의 헤더에 포함되는 정보에 의거하여 처리 열을 취득하여, 상기 처리 열을 상기 입력 패킷에 포함시키는 통신 시스템.
(제7 형태)
제4 내지 제6 형태 중 어느 하나에 있어서,
상기 입력 패킷의 헤더에 포함되는 정보에 의거하여 처리 열을 작성하여, 상기 처리 열 설정부를 포함하는 미리 정한 노드에 송신하는 제어 서버를 더 포함하는 통신 시스템.
(제8 형태)
제7 형태에 있어서,
상기 처리 열 설정부는, 입력 패킷에 상기 처리 열이 포함되어 있지 않고, 또한 상기 패킷의 헤더 정보로부터 대응하는 처리 열을 취득할 수 없을 경우에, 상기 제어 서버에 대하여 상기 입력 패킷의 전체 또는 입력 패킷의 일부를 송신하여 상기 처리 열의 송신을 요구하는 통신 시스템.
(제9 형태)
제8 형태에 있어서,
상기 제어 서버는, 상기 처리 열의 송신을 요구한 노드에, 상기 입력 패킷의 미리 정한 영역의 내용을, 상기 처리 열로 치환시키고, 상기 입력 패킷으로부터 구한 최종 홉(hop)의 노드에 상기 처리 열로 치환된 상기 입력 패킷의 상기 미리 정한 영역의 내용을 복원시키는 처리 열을 작성하는 통신 시스템.
(제10 형태)
제7 내지 제9 형태 중 어느 하나에 있어서,
상기 제어 서버는, 상기 처리 열의 길이가 미리 정한 사이즈 내에 있도록, 상기 처리 열의 송신을 요구한 노드 이외의 1 이상의 노드에, 상기 처리 열의 송신을 요구하는 처리를 실행시키는 통신 시스템.
(제11 형태)
제1 내지 제10 형태 중 어느 하나에 있어서,
상기 노드는, 상기 통신 시스템 내의 복수의 개개의 노드들 중 하나를 포함하고,
상기 개개의 노드들 각각은, 처리 내용을 등록한 처리 테이블을 포함하며,
상기 처리 열은, 상기 처리 테이블에 등록된 처리 내용을 특정하는 포인터(pointer)에 의해 기술되어 있는 통신 시스템.
(제12 형태)
제1 내지 제11 형태 중 어느 하나에 있어서,
상기 노드가, 상기 처리 열에 포함되는 적어도 1개의 처리를 실행한 후, 상기 입력 패킷에 포함되는 처리 열을 갱신하는 기능을 갖는 통신 시스템.
(제13 형태)
제1 내지 제12 형태 중 어느 하나에 있어서,
상기 처리 열 내의 처리는, 처리를 실행하는 노드의 순번으로 나열되어 있고, 상기 처리 열에 따라서 상기 패킷이 상기 통신 시스템 내의 개개의 노드에 전송되는 통신 시스템.
(제14 형태)
제1 내지 제12 형태 중 어느 하나에 있어서,
상기 처리 열 내의 처리는, 당해 처리를 실행하는 상기 통신 시스템 내의 개개의 노드와 대응시켜 나열되어 있고, 상기 개개의 노드가, 상기 처리 열로부터 자신의 노드(들)에 대응시킨 처리를 추출하고, 추출된 처리를 실행하는 통신 시스템.
(제15 형태)
데이터 전송 네트워크에 배치되는 노드로서,
상기 노드는, 상기 노드가 실행해야 할 처리들을 나열하여 구성된 처리 열을 포함하는 패킷을 수신하고, 상기 처리 열에 따라서 처리를 실행하는 노드.
(제16 형태)
제15 형태에 있어서,
상기 처리 열은, 복수의 노드가 실행해야 할 처리로 구성 가능한 노드.
(제17 형태)
제15 또는 제16 형태에 있어서,
상기 패킷은, 상기 처리에 필요한 데이터를 더 포함하는 노드.
(제18 형태)
제15 내지 제17 형태 중 어느 하나에 있어서,
입력 패킷에, 상기 처리 열을 포함시키는 처리 열 설정부를 더 구비하는 노드.
(제19 형태)
제18 형태에 있어서,
상기 처리 열 설정부는, 상기 입력 패킷에 상기 처리 열이 포함되어 있지 않을 경우, 상기 입력 패킷의 헤더에 포함되는 정보에 의거하여 처리 열을 취득하여, 상기 처리 열을 상기 입력 패킷에 포함시키는 노드.
(제20 형태)
제19 형태에 있어서,
상기 처리 열 설정부는, 자신의 노드가 실행해야 할 처리가 상기 입력 패킷의 상기 처리 열에 포함되어 있지 않을 경우, 상기 입력 패킷의 헤더에 포함되는 정보에 의거하여 처리 열을 취득하여, 상기 처리 열을 상기 입력 패킷에 포함시키는 노드.
(제21 형태)
제20 형태에 있어서,
상기 처리 열 설정부는, 입력 패킷에 상기 처리 열이 포함되어 있지 않고, 또한 상기 패킷의 헤더 정보로부터 대응하는 처리 열을 취득할 수 없을 경우에, 상기 처리 열을 송신하는 제어 서버에 대하여 상기 입력 패킷의 전체 또는 입력 패킷의 일부를 송신하여 상기 처리 열의 송신을 요구하는 노드.
(제22 형태)
제15 내지 제21 형태 중 어느 하나에 있어서,
처리 내용을 등록한 처리 테이블을 더 구비하고,
상기 처리 테이블에 등록된 처리 내용을 특정하는 포인터에 의해 기술되어 있는 처리 열로부터, 상기 포인터를 판독하여 상기 포인터에 대응하는 처리 내용을 실행하는 노드.
(제23 형태)
제15 내지 제22 형태 중 어느 하나에 있어서,
상기 처리 열에 포함되는 1개 이상의 처리를 실행한 후, 상기 입력 패킷에 포함되는 처리 열을 갱신하는 기능을 갖는 노드.
(제24 형태)
데이터 전송 네트워크에 배치된 노드로부터 수신한 입력 패킷에 포함되는 정보에 의거하여, 상기 데이터 전송 네트워크에 배치된 노드가 실행해야 할 처리를 나열한 처리 열을 작성하고, 상기 입력 패킷을 송신한 노드에, 상기 처리 열을 송신하는 제어 서버.
(제25 형태)
제24 형태에 있어서,
상기 처리 열은, 복수의 노드가 실행해야 할 처리로 구성되어 있는 제어 서버.
(제26 형태)
제24 또는 제25 형태에 있어서,
상기 패킷은, 상기 처리에 필요한 데이터를 더 포함하는 제어 서버.
(제27 형태)
제24 내지 제26 형태 중 어느 하나에 있어서,
상기 처리 열을 송신한 노드에, 입력 패킷의 미리 정한 영역의 내용을, 상기 처리 열로 치환시키고, 상기 입력 패킷으로부터 구한 최종 홉의 노드에 상기 처리 열로 치환된 상기 입력 패킷의 미리 정한 영역의 내용을 복원시키는 처리 열을 작성하는 제어 서버.
(제28 형태)
제24 내지 제27 형태 중 어느 하나에 있어서,
상기 처리 열의 길이가 미리 정한 값보다 크지 않도록, 상기 처리 열을 송신한 노드 이외의 1 이상의 노드에, 상기 처리 열의 송신을 요구하는 처리를 실행시키는 제어 서버.
(제29 형태)
제24 내지 제28 형태 중 어느 하나에 있어서,
상기 처리 열은, 처리를 실행하는 노드의 순번으로 나열되고, 상기 처리 열에 따라서 패킷이 상기 개개의 노드에 전송되도록 작성되는 제어 서버.
(제30 형태)
제24 내지 제28 형태 중 어느 하나에 있어서,
상기 처리 열은, 처리를 실행하는 노드와 처리가 서로 대응하여 기술되어 있고, 개개의 노드가 상기 처리 열로부터 자신의 노드(들)에 대응시킨 처리를 추출해서 추출된 처리를 실행할 수 있도록 작성되는 제어 서버.
(제31 형태)
입력 패킷에, 데이터 전송 네트워크의 노드가 실행해야 할 처리를 나열하여 구성된 처리 열을 포함시키고,
상기 데이터 전송 네트워크의 노드에서, 상기 입력 패킷에 포함된 처리 열에 따라서 자신의 노드가 실행해야 할 처리를 실행하는 통신 방법.
(제32 형태)
데이터 전송 네트워크에 배치된 노드를 구성하는 컴퓨터에 실행시키는, 기계 판독 가능한 저장 매체에서 유형으로 구현하는 프로그램으로서,
상기 데이터 전송 네트워크에 배치된 상기 노드가 실행해야 할 처리를 나열하여 구성된 처리 열을 포함하는 패킷을 수신하게 하고,
상기 처리 열에 따라서 자신의 노드가 실행해야 할 처리를 추출하게 하며,
상기 추출한 처리(들)를 실행시키게 하는 프로그램.
(제33 형태)
데이터 전송 네트워크에 배치된 노드로부터의 요구에 따라 처리 열을 작성하는 제어 서버를 구성하는 컴퓨터에 실행시키는, 기계 판독 가능한 매체에서 유형으로 구현되는 프로그램으로서,
상기 노드로부터 수신한 입력 패킷의 헤더에 포함되는 정보에 의거하여, 상기 데이터 전송 네트워크의 노드가 실행해야 할 처리를 나열한 처리 열을 작성하는 처리(들)와,
상기 작성한 처리 열을 상기 노드에 송신하는 처리를 실행시키는 프로그램.
본 발명의 모든 개시(특허청구범위를 포함)의 범위 내에서, 본 발명의 기본적 기술 사상에 의거하여, 특정 실시예 또는 예들의 변경이나 조정이 가능하다. 또한, 본 발명의 특허청구범위의 범위 내에서, 본 명세서에 기술된 각종의 요소의 다양한 조합 또는 선택이 가능하다.
데이터 센터 등의 상용 네트워크에서는, 높은 QoS(Quality of Service)를 얻기 위하여, 그리고 최적의 부하 분산을 위하여, 수신처 어드레스, 송신원 어드레스 또는 사용 프로토콜을 포함하는 다양한 조건 하에서, 패킷의 전송 경로를 엄밀하게 제어할 필요가 있다. 본 발명에 의하면, 적어도 중간의 브리스-테이킹 릴레이 처리를 요하지 않는 노드의 플로 테이블이 불필요하다. 또한, 플로 테이블이 필요한 노드에서도, 그 엔트리 수를 삭감하는 것이 가능해진다. 따라서, 본 발명은 데이터 센터 등의 상용 네트워크에 적합하게 적용 가능하다.
본 발명은, 몇가지의 실시예에 대하여 설명했지만, 본 발명은 첨부된 특허청구범위의 사상 및 범주 내에서 변형이 이루어질 수 있다.
또한, 본 출원인은, 심사과정 중에 이후에 보정되는 경우라도, 특허청구범위의 모든 구성요소의 등가물을 포함하는 것을 의도하고 있다.
10, 10a∼10f : 통신 노드
11 : 서버 통신부
12 : 플로 테이블 관리부
13 : 플로 테이블
14 : 전송 처리부
15 : 테이블 검색부
16 : 액션 열 설정부
17 : 액션 추출부
18 : 액션 실행부
20, 20a∼20f : 제어 서버
21 : 플로 엔트리 데이터베이스(플로 엔트리 DB)
22 : 토폴로지 관리부
23 : 경로·액션 계산부
24 : 플로 엔트리 관리부
25 : 노드 통신부
30 : 통신 노드

Claims (52)

  1. 데이터 전송 네트워크의 전송 경로의 적어도 일부를 구성하는 복수의 노드를 포함하는 통신 시스템으로서,
    상기 복수의 노드에 있어서의 노드는, 상기 복수의 노드의 각각이 실행해야 할 복수의 처리를 나열하여 구성된 처리 열(array)을 포함하는 패킷을 수신하며, 상기 처리 열에 따라서 상기 노드가 실행해야 할 처리를 실행하는 통신 시스템.
  2. 제1항에 있어서,
    상기 처리 열은, 복수의 노드가 실행해야 할 처리로 구성 가능한 통신 시스템.
  3. 제1항에 있어서,
    상기 패킷은, 상기 처리에 필요한 데이터를 더 포함하는 통신 시스템.
  4. 제1항에 있어서,
    입력 패킷에 상기 처리 열을 포함시키는 처리 열 설정부를 갖는 노드를 더 포함하는 통신 시스템.
  5. 제4항에 있어서,
    상기 처리 열 설정부는, 상기 입력 패킷에 상기 처리 열이 포함되어 있지 않을 경우, 상기 입력 패킷의 헤더에 포함되는 정보에 의거하여 처리 열을 취득하여, 상기 처리 열을 상기 입력 패킷에 포함시키는 통신 시스템.
  6. 제4항에 있어서,
    상기 처리 열 설정부는, 자신의 노드가 실행해야 할 처리가 상기 입력 패킷의 상기 처리 열에 포함되어 있지 않을 경우, 상기 입력 패킷의 헤더에 포함되는 정보에 의거하여 처리 열을 취득하여, 상기 처리 열을 상기 입력 패킷에 포함시키는 통신 시스템.
  7. 제4항에 있어서,
    상기 입력 패킷의 헤더에 포함되는 정보에 의거하여 처리 열을 작성하여, 상기 처리 열 설정부를 포함하는 미리 정한 노드에 송신하는 제어 서버를 더 포함하는 통신 시스템.
  8. 제7항에 있어서,
    상기 처리 열 설정부는, 입력 패킷에 상기 처리 열이 포함되어 있지 않고, 또한 상기 패킷의 헤더 정보로부터 대응하는 처리 열을 취득할 수 없을 경우에, 상기 제어 서버에 대하여 상기 입력 패킷의 전체 또는 입력 패킷의 일부를 송신하여 상기 처리 열의 송신을 요구하는 통신 시스템.
  9. 제8항에 있어서,
    상기 제어 서버는, 상기 처리 열의 송신을 요구한 노드에, 상기 입력 패킷의 미리 정한 영역의 내용을, 상기 처리 열로 치환시키고, 상기 입력 패킷으로부터 구한 최종 홉(hop)의 노드에 상기 처리 열로 치환된 상기 입력 패킷의 상기 미리 정한 영역의 내용을 복원시키는 처리 열을 작성하는 통신 시스템.
  10. 제7항에 있어서,
    상기 제어 서버는, 상기 처리 열의 길이가 미리 정한 사이즈 내에 있도록, 상기 처리 열의 송신을 요구한 노드 이외의 1 이상의 노드에, 상기 처리 열의 송신을 요구하는 처리를 실행시키는 통신 시스템.
  11. 제1항에 있어서,
    상기 노드는, 상기 통신 시스템 내의 복수의 개개의 노드들 중 하나를 포함하고,
    상기 개개의 노드들 각각은, 처리 내용을 등록한 처리 테이블을 포함하며,
    상기 처리 열은, 상기 처리 테이블에 등록된 처리 내용을 특정하는 포인터(pointer)에 의해 기술되어 있는 통신 시스템.
  12. 제1항에 있어서,
    상기 노드가, 상기 처리 열에 포함되는 적어도 1개의 처리를 실행한 후, 상기 패킷에 포함되는 처리 열을 갱신하는 기능을 갖는 통신 시스템.
  13. 제1항에 있어서,
    상기 처리 열 내의 처리는, 처리를 실행하는 노드의 순번으로 나열되어 있고, 상기 처리 열에 따라서 상기 패킷이 상기 통신 시스템 내의 개개의 노드에 전송되는 통신 시스템.
  14. 제1항에 있어서,
    상기 처리 열 내의 처리는, 당해 처리를 실행하는 상기 통신 시스템 내의 개개의 노드와 대응시켜 나열되어 있고, 상기 개개의 노드가, 상기 처리 열로부터 자신의 노드(들)에 대응시킨 처리를 추출하고, 추출된 처리를 실행하는 통신 시스템.
  15. 데이터 전송 네트워크의 전송 경로의 적어도 일부를 구성하며 상기 데이터 전송 네트워크에 복수 배치되는 노드로서,
    상기 복수의 노드에 있어서의 노드는, 상기 복수의 노드의 각각이 실행해야 할 복수의 처리를 나열하여 구성된 처리 열을 포함하는 패킷을 수신하고, 상기 처리 열에 따라서 처리를 실행하는 노드.
  16. 제15항에 있어서,
    상기 처리 열은, 복수의 노드가 실행해야 할 처리로 구성 가능한 노드.
  17. 제15항에 있어서,
    상기 패킷은, 상기 처리에 필요한 데이터를 더 포함하는 노드.
  18. 제15항에 있어서,
    입력 패킷에, 상기 처리 열을 포함시키는 처리 열 설정부를 더 구비하는 노드.
  19. 제18항에 있어서,
    상기 처리 열 설정부는, 상기 입력 패킷에 상기 처리 열이 포함되어 있지 않을 경우, 상기 입력 패킷의 헤더에 포함되는 정보에 의거하여 처리 열을 취득하여, 상기 처리 열을 상기 입력 패킷에 포함시키는 노드.
  20. 제19항에 있어서,
    상기 처리 열 설정부는, 자신의 노드가 실행해야 할 처리가 상기 입력 패킷의 상기 처리 열에 포함되어 있지 않을 경우, 상기 입력 패킷의 헤더에 포함되는 정보에 의거하여 처리 열을 취득하여, 상기 처리 열을 상기 입력 패킷에 포함시키는 노드.
  21. 제20항에 있어서,
    상기 처리 열 설정부는, 입력 패킷에 상기 처리 열이 포함되어 있지 않고, 또한 상기 패킷의 헤더 정보로부터 대응하는 처리 열을 취득할 수 없을 경우에, 상기 처리 열을 송신하는 제어 서버에 대하여 상기 입력 패킷의 전체 또는 입력 패킷의 일부를 송신하여 상기 처리 열의 송신을 요구하는 노드.
  22. 제15항에 있어서,
    처리 내용을 등록한 처리 테이블을 더 구비하고,
    상기 처리 테이블에 등록된 처리 내용을 특정하는 포인터에 의해 기술되어 있는 처리 열로부터, 상기 포인터를 판독하여 상기 포인터에 대응하는 처리 내용을 실행하는 노드.
  23. 제15항에 있어서,
    상기 처리 열에 포함되는 1개 이상의 처리를 실행한 후, 상기 패킷에 포함되는 처리 열을 갱신하는 기능을 갖는 노드.
  24. 데이터 전송 네트워크의 전송 경로의 적어도 일부를 구성하며 상기 데이터 전송 네트워크에 복수 배치되는 노드로부터 수신한 입력 패킷에 포함되는 정보에 의거하여, 상기 데이터 전송 네트워크에 배치된 상기 복수의 노드에 있어서의 노드 각각이 실행해야 할 복수의 처리를 나열한 처리 열을 작성하고, 상기 입력 패킷을 송신한 노드에, 상기 처리 열을 송신하는 제어 서버.
  25. 제24항에 있어서,
    상기 처리 열은, 복수의 노드가 실행해야 할 처리로 구성되어 있는 제어 서버.
  26. 제24항에 있어서,
    상기 패킷은, 상기 처리에 필요한 데이터를 더 포함하는 제어 서버.
  27. 제24항에 있어서,
    상기 처리 열을 송신한 노드에, 입력 패킷의 미리 정한 영역의 내용을, 상기 처리 열로 치환시키고, 상기 입력 패킷으로부터 구한 최종 홉의 노드에 상기 처리 열로 치환된 상기 입력 패킷의 미리 정한 영역의 내용을 복원시키는 처리 열을 작성하는 제어 서버.
  28. 제24항에 있어서,
    상기 처리 열의 길이가 미리 정한 값보다 크지 않도록, 상기 처리 열을 송신한 노드 이외의 1 이상의 노드에, 상기 처리 열의 송신을 요구하는 처리를 실행시키는 제어 서버.
  29. 제24항에 있어서,
    상기 처리 열은, 처리를 실행하는 노드의 순번으로 나열되고, 상기 처리 열에 따라서 패킷이 개개의 상기 노드에 전송되도록 작성되는 제어 서버.
  30. 제24항에 있어서,
    상기 처리 열은, 처리를 실행하는 노드와 처리가 서로 대응하여 기술되어 있고, 개개의 노드가 상기 처리 열로부터 자신의 노드(들)에 대응시킨 처리를 추출해서 추출된 처리를 실행할 수 있도록 작성되는 제어 서버.
  31. 입력 패킷에, 데이터 전송 네트워크의 전송 경로의 적어도 일부를 구성하는 복수의 노드에 있어서의 노드 각각이 실행해야 할 복수의 처리를 나열하여 구성된 처리 열을 포함시키고,
    상기 데이터 전송 네트워크의 노드에서, 상기 입력 패킷에 포함된 처리 열에 따라서 자신의 노드가 실행해야 할 처리를 실행하는 통신 방법.
  32. 데이터 전송 네트워크의 전송 경로의 적어도 일부를 구성하며 상기 데이터 전송 네트워크에 복수 배치되는 노드를 구성하는 컴퓨터에 실행시키는 프로그램을 유형으로 구현하는 기계 판독 가능한 저장 장치로서,
    상기 프로그램은, 상기 데이터 전송 네트워크에 배치된 상기 복수의 노드의 각각이 실행해야 할 복수의 처리를 나열하여 구성된 처리 열을 포함하는 패킷을 수신하게 하고,
    상기 프로그램은, 상기 처리 열에 따라서 자신의 노드가 실행해야 할 처리를 추출하게 하며,
    상기 프로그램은, 상기 추출한 처리(들)를 실행시키게 하는 기계 판독 가능한 저장 장치.
  33. 데이터 전송 네트워크의 전송 경로의 적어도 일부를 구성하며 상기 데이터 전송 네트워크에 복수 배치되는 노드로부터의 요구에 따라 처리 열을 작성하는 제어 서버를 구성하는 컴퓨터에 실행시키는, 저장 장치 내의 기계 판독 가능한 일련의 지시들로서 유형으로 구현되는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체로서,
    상기 노드로부터 수신한 입력 패킷의 헤더에 포함되는 정보에 의거하여, 상기 데이터 전송 네트워크의 상기 복수의 노드의 각각이 실행해야 할 복수의 처리를 나열한 처리 열을 작성하는 처리와,
    상기 입력 패킷을 송신한 노드에 상기 작성한 처리 열을 송신하는 처리를 위한 지시들을 포함하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  34. 패킷의 전송 경로의 적어도 일부를 구성하는 복수의 노드를 포함하고,
    상기 복수의 노드에 있어서의 제1 노드는,
    상기 복수의 노드의 각각에서 실행되는 패킷 처리에 관한 정보가, 상기 전송 경로를 제어하는 제어 장치로부터의 지시에 따라 동작 가능한 제2 노드에 의해 부여된 패킷을 수신하는 제1 수단과,
    상기 패킷에 부여된 상기 정보에 의거하여, 상기 제1 노드에 대응지어진 패킷 처리를 실행하는 제2 수단을 포함하는 것을 특징으로 하는 통신 시스템.
  35. 제34항에 있어서,
    상기 제2 수단은, 상기 패킷에 포함되는 상기 정보에 의거하여, 상기 제1 노드에 대응지어진 패킷 처리를 특정하는 것을 특징으로 하는 통신 시스템.
  36. 제34항에 있어서,
    상기 제2 수단은, 상기 전송 경로에 있어서의 상기 복수의 노드의 순서에 따라 상기 패킷에 부여된 상기 정보에 의거하여, 상기 제1 노드에 대응지어진 패킷 처리를 특정하는 것을 특징으로 하는 통신 시스템.
  37. 제34항에 있어서,
    상기 제1 수단은, 상기 전송 경로에 있어서의 상기 복수의 노드의 순서에 따라 상기 정보가 부여된 상기 패킷을 수신하고,
    상기 제2 수단은, 상기 전송 경로에 있어서의 상기 제1 노드의 순서에 대응하는 상기 정보에 의거하여, 상기 제1 노드에 대응지어진 패킷 처리를 실행하는 것을 특징으로 하는 통신 시스템.
  38. 제34항에 있어서,
    상기 복수의 노드에 있어서의 제2 노드는,
    패킷 플로를 식별하기 위한 조건과, 당해 조건에 대응하는 패킷에 부여하는 상기 정보를 포함하는 상기 지시를 기억하는 테이블과,
    상기 테이블에 기억된 상기 지시에 따라, 수신 패킷에 상기 정보를 부여하는 패킷 처리 수단을 포함하는 것을 특징으로 하는 통신 시스템.
  39. 패킷을 전송하는 노드로서,
    패킷의 전송 경로의 적어도 일부를 구성하는 복수의 노드의 각각에서 실행되는 패킷 처리에 관한 정보가, 상기 전송 경로를 제어하는 제어 장치의 지시에 따라 부여된 패킷을 수신하는 제1 수단과,
    상기 패킷에 부여된 상기 정보에 의거하여, 상기 패킷을 수신한 상기 노드에 대응지어진 패킷 처리를 실행하는 제2 수단을 포함하는 것을 특징으로 하는 노드.
  40. 제39항에 있어서,
    상기 제2 수단은, 상기 패킷에 포함되는 상기 정보에 의거하여, 상기 노드에 대응지어진 패킷 처리를 특정하는 것을 특징으로 하는 노드.
  41. 제39항에 있어서,
    상기 제2 수단은, 상기 전송 경로에 있어서의 상기 복수의 노드의 순서에 따라 상기 패킷에 부여된 상기 정보에 의거하여, 상기 노드에 대응지어진 패킷 처리를 특정하는 것을 특징으로 하는 노드.
  42. 제39항에 있어서,
    상기 제1 수단은, 상기 전송 경로에 있어서의 상기 복수의 노드의 순서에 따라 상기 정보가 부여된 상기 패킷을 수신하고,
    상기 제2 수단은, 상기 전송 경로에 있어서의 상기 노드의 순서에 대응하는 상기 정보에 의거하여, 상기 노드에 대응지어진 패킷 처리를 실행하는 것을 특징으로 하는 노드.
  43. 패킷을 전송하는 노드로서,
    패킷을 수신하는 제1 수단과,
    패킷의 전송 경로를 제어 가능한 제어 장치의 지시에 따라, 상기 전송 경로의 적어도 일부를 구성하는 복수의 노드의 각각에서 실행되는 패킷 처리에 관한 정보를 상기 패킷에 부여하는 제2 수단을 포함하는 것을 특징으로 하는 노드.
  44. 제43항에 있어서,
    상기 제2 수단은, 패킷 플로를 식별하기 위한 조건과, 당해 조건에 대응하는 패킷에 부여하는 상기 정보를 포함하는 지시에 따라, 상기 패킷에 상기 정보를 부여하는 것을 특징으로 하는 노드.
  45. 패킷의 전송 경로의 적어도 일부를 구성하는 복수의 노드의 각각에서 실행되는 패킷 처리를 결정하는 제1 수단과,
    상기 복수의 노드에 있어서의 적어도 1개의 노드에 대하여, 상기 복수의 노드의 각각에서 실행되는 상기 패킷 처리에 관한 정보를, 상기 전송 경로에 전송하는 패킷에 부여할 것을 지시하는 제2 수단을 포함하는 것을 특징으로 하는 제어 장치.
  46. 제45항에 있어서,
    상기 제2 수단은, 상기 전송 경로의 시점(始點)이 되는 노드에 대하여, 상기 복수의 노드의 각각에서 실행되는 상기 패킷 처리에 관한 정보를, 상기 전송 경로에 전송되는 패킷에 부여할 것을 지시하는 것을 특징으로 하는 제어 장치.
  47. 제45항에 있어서,
    상기 제2 수단은, 상기 복수의 노드에 있어서의 적어도 1개의 노드에 대하여, 상기 전송 경로에 있어서의 상기 복수의 노드의 순서에 따라 상기 정보를 상기 패킷에 부여할 것을 지시하는 것을 특징으로 하는 제어 장치.
  48. 제45항에 있어서,
    상기 제2 수단은, 패킷 플로를 식별하기 위한 조건과, 당해 조건에 대응하는 패킷에 부여할 상기 정보를 포함하는 지시를, 상기 복수의 노드에 있어서의 적어도 1개의 노드에 대하여 송신하는 것을 특징으로 하는 제어 장치.
  49. 패킷의 전송 경로의 적어도 일부를 구성하는 복수의 노드의 각각에서 실행되는 패킷 처리를 결정하고,
    상기 복수의 노드에 있어서의 적어도 1개의 노드에 대하여, 상기 복수의 노드의 각각에서 실행되는 상기 패킷 처리에 관한 정보를, 상기 전송 경로에 전송하는 패킷에 부여할 것을 지시하는 것을 특징으로 하는 제어 방법.
  50. 제49항에 있어서,
    상기 전송 경로의 시점이 되는 노드에 대하여, 상기 복수의 노드의 각각에서 실행되는 상기 패킷 처리에 관한 정보를, 상기 전송 경로에 전송되는 패킷에 부여할 것을 지시하는 것을 특징으로 하는 제어 방법.
  51. 제49항에 있어서,
    상기 복수의 노드에 있어서의 적어도 1개의 노드에 대하여, 상기 전송 경로에 있어서의 상기 복수의 노드의 순서에 따라 상기 정보를 상기 패킷에 부여할 것을 지시하는 것을 특징으로 하는 제어 방법.
  52. 제49항에 있어서,
    패킷 플로를 식별하기 위한 조건과, 당해 조건에 대응하는 패킷에 부여할 상기 정보를 포함하는 지시를, 상기 복수의 노드에 있어서의 적어도 1개의 노드에 대하여 송신하는 것을 특징으로 하는 제어 방법.
KR1020127007016A 2009-09-14 2009-09-14 통신 시스템, 노드, 제어 서버, 통신 방법 및 프로그램 KR101365667B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/066026 WO2011030462A1 (ja) 2009-09-14 2009-09-14 通信システム、ノード、制御サーバ、通信方法およびプログラム

Related Child Applications (2)

Application Number Title Priority Date Filing Date
KR1020137023279A Division KR101408108B1 (ko) 2009-09-14 2009-09-14 통신 시스템, 노드, 제어 장치, 및 제어 방법
KR1020137023282A Division KR101408109B1 (ko) 2009-09-14 2009-09-14 통신 시스템, 노드, 제어 장치, 및 제어 방법

Publications (2)

Publication Number Publication Date
KR20120062793A KR20120062793A (ko) 2012-06-14
KR101365667B1 true KR101365667B1 (ko) 2014-02-21

Family

ID=43732146

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020137023279A KR101408108B1 (ko) 2009-09-14 2009-09-14 통신 시스템, 노드, 제어 장치, 및 제어 방법
KR1020137023282A KR101408109B1 (ko) 2009-09-14 2009-09-14 통신 시스템, 노드, 제어 장치, 및 제어 방법
KR1020127007016A KR101365667B1 (ko) 2009-09-14 2009-09-14 통신 시스템, 노드, 제어 서버, 통신 방법 및 프로그램

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020137023279A KR101408108B1 (ko) 2009-09-14 2009-09-14 통신 시스템, 노드, 제어 장치, 및 제어 방법
KR1020137023282A KR101408109B1 (ko) 2009-09-14 2009-09-14 통신 시스템, 노드, 제어 장치, 및 제어 방법

Country Status (7)

Country Link
US (2) US8509252B2 (ko)
EP (3) EP2479937B1 (ko)
JP (1) JP5626214B2 (ko)
KR (3) KR101408108B1 (ko)
CN (1) CN102498693A (ko)
BR (1) BR112012005704A2 (ko)
WO (1) WO2011030462A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2011148925A1 (ja) * 2010-05-24 2013-07-25 日本電気株式会社 半導体装置とネットワークルーティング方法とシステム
WO2012127894A1 (ja) * 2011-03-18 2012-09-27 日本電気株式会社 ネットワークシステム、及びスイッチ方法
WO2012106869A1 (zh) * 2011-07-06 2012-08-16 华为技术有限公司 一种报文处理方法及相关设备
EP2787694B1 (en) 2011-12-02 2016-06-15 Huawei Technologies Co., Ltd. Message sending method, message receiving method, openflow controller, and first openflow switch
US8923296B2 (en) * 2012-02-23 2014-12-30 Big Switch Networks, Inc. System and methods for managing network packet forwarding with a controller
US9705918B2 (en) * 2012-05-22 2017-07-11 Sri International Security mediation for dynamically programmable network
US9363152B2 (en) * 2012-06-11 2016-06-07 Microsoft Technology Licensing, Llc Large-scale passive network monitoring using multiple tiers of ordinary network switches
WO2014000290A1 (zh) * 2012-06-29 2014-01-03 华为技术有限公司 数据报文的控制方法、设备及系统
CN103546304B (zh) * 2012-07-11 2017-08-25 华为技术有限公司 业务处理方法、设备及系统
JP5822275B2 (ja) * 2012-09-07 2015-11-24 日本電信電話株式会社 ネットワーク制御装置およびネットワーク制御方法
JP6299754B2 (ja) * 2012-09-13 2018-03-28 日本電気株式会社 制御装置、制御方法、通信システム及びプログラム
US9071529B2 (en) * 2012-10-08 2015-06-30 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for accelerating forwarding in software-defined networks
FI20126105L (fi) * 2012-10-25 2014-04-26 Tellabs Oy Menetelmä ja ohjauslaite ohjelmallisesti määriteltävän verkon konfiguroimiseksi
US9172550B2 (en) * 2013-07-19 2015-10-27 Globalfoundries U.S. 2 Llc Company Management of a multicast system in a software-defined network
CN104579722A (zh) * 2013-10-11 2015-04-29 中兴通讯股份有限公司 流统计能力的协商方法及装置
FI20145041L (fi) * 2014-01-17 2015-07-18 Tellabs Oy Verkkoelementti ja kontrolleri verkkoelementin hallitsemiseksi
CN105099913B (zh) 2014-04-21 2018-07-20 新华三技术有限公司 一种报文转发方法及设备
EP3139555A4 (en) * 2014-05-01 2017-12-27 Nec Corporation Communication device, control device, communication system, method for processing received packet, method for controlling communication device, and program
US9553762B1 (en) 2014-06-26 2017-01-24 Altera Corporation Network-on-chip with fixed and configurable functions
CN107005462B (zh) 2014-12-17 2020-03-20 华为技术有限公司 软件定义网络中数据转发的方法、设备和系统
JPWO2019044035A1 (ja) * 2017-08-31 2020-08-13 株式会社Nttドコモ 通信システム及び制御方法
KR102495450B1 (ko) * 2022-06-10 2023-02-06 요다정보기술(주) 클라우드 환경에서의 파일공유 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004289794A (ja) 2002-12-02 2004-10-14 Alcatel データフローを選択してデグラデーションさせるための通信ネットワークにアクセスするための装置

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU1199888A (en) * 1987-03-13 1988-09-15 Northern Telecom Limited Communications system and components and methods for use therein
US5353283A (en) * 1993-05-28 1994-10-04 Bell Communications Research, Inc. General internet method for routing packets in a communications network
JP2570963B2 (ja) * 1993-05-31 1997-01-16 日本電気株式会社 パケット網における中継経路情報を用いたシグナリング方式
JPH08251232A (ja) 1995-03-15 1996-09-27 Toshiba Corp 通信・情報処理制御システム
JP3721784B2 (ja) * 1998-05-27 2005-11-30 富士電機機器制御株式会社 ネットワークシステム、送信装置、中継装置、および、記録媒体
EP1051003B1 (en) 1999-05-07 2007-04-11 Alcatel Lucent Explicit/implicit routing method, arrangement and source node including arrangement
JP3499791B2 (ja) 2000-01-07 2004-02-23 日本電信電話株式会社 パケットルーチング方法及びパケットルーチング装置
JP3543952B2 (ja) 2000-07-21 2004-07-21 日本電気株式会社 Mplsパケット転送方法およびパケット交換機
JP3848067B2 (ja) 2000-08-25 2006-11-22 株式会社エヌ・ティ・ティ・ドコモ ネットワークにおけるルート設定方法、ルート管理方法及びアクティブルータ
US20030026268A1 (en) * 2000-11-28 2003-02-06 Siemens Technology-To-Business Center, Llc Characteristic routing
US6990086B1 (en) * 2001-01-26 2006-01-24 Cisco Technology, Inc. Method and system for label edge routing in a wireless network
US20020101868A1 (en) 2001-01-30 2002-08-01 David Clear Vlan tunneling protocol
JP2002368787A (ja) 2001-06-12 2002-12-20 Fujitsu Ltd 明示的経路指定中継装置
FR2826215B1 (fr) * 2001-06-18 2003-12-19 Cit Alcatel Procede de transmission d'un message actif dans un circuit virtuel
EP1320224B1 (en) * 2001-12-12 2007-11-21 Alcatel Lucent Telecommunications network and a packet header therefor
US7007142B2 (en) * 2002-02-19 2006-02-28 Intel Corporation Network data storage-related operations
US8108554B1 (en) * 2002-05-16 2012-01-31 F5 Networks, Inc. Method and system for automatically mapping secure network address translations
DE60324567D1 (de) * 2002-09-20 2008-12-18 Matsushita Electric Ind Co Ltd Tes netzwerkelement zur verbindung von datenkommunikationsnetzen
JP2004153318A (ja) 2002-10-28 2004-05-27 Ntt Docomo Inc パケット通信方法、パケット通信システム、送信元ノード、中継ノード及び中継器
US20080008202A1 (en) * 2002-10-31 2008-01-10 Terrell William C Router with routing processors and methods for virtualization
DE60302863T2 (de) 2003-01-10 2006-09-14 Alcatel Signalisierung in gesteuerten aktiven Netzwerken
JP2007053789A (ja) * 2003-02-03 2007-03-01 Nippon Telegr & Teleph Corp <Ntt> エッジルータ装置、コアルータ装置、及びネットワークシステム
WO2004071034A1 (ja) 2003-02-03 2004-08-19 Nippon Telegraph And Telephone Corporation データ転送装置およびデータ転送システム
JP4238086B2 (ja) 2003-08-06 2009-03-11 株式会社エヌ・ティ・ティ・ドコモ パケット転送制御方法、経路制御装置、フロー処理制御装置、端末管理装置、転送装置、処理サーバ装置、端末装置及びパケット転送システム
EP1853043B1 (en) * 2006-05-02 2008-07-02 Research In Motion Limited Multi-layered enveloped method and system for push content metadata
CN100469052C (zh) * 2006-08-04 2009-03-11 北京方正奥德计算机系统有限公司 一种数据路由分配方法
JP5076581B2 (ja) 2007-03-23 2012-11-21 日本電気株式会社 光通信システムおよびノード装置およびサービスクラス設定方法
JP5182146B2 (ja) * 2009-02-23 2013-04-10 富士通株式会社 経路決定プログラム、管理装置及びネットワーク・システム
WO2011144495A1 (en) * 2010-05-19 2011-11-24 Telefonaktiebolaget L M Ericsson (Publ) Methods and apparatus for use in an openflow network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004289794A (ja) 2002-12-02 2004-10-14 Alcatel データフローを選択してデグラデーションさせるための通信ネットワークにアクセスするための装置

Also Published As

Publication number Publication date
WO2011030462A1 (ja) 2011-03-17
KR101408109B1 (ko) 2014-06-17
KR101408108B1 (ko) 2014-06-17
EP2731305A1 (en) 2014-05-14
BR112012005704A2 (pt) 2020-08-25
US9258220B2 (en) 2016-02-09
EP2479937B1 (en) 2020-10-21
CN102498693A (zh) 2012-06-13
EP2731305A3 (en) 2014-07-09
JP5626214B2 (ja) 2014-11-19
KR20120062793A (ko) 2012-06-14
EP2479937A1 (en) 2012-07-25
US20120008629A1 (en) 2012-01-12
JPWO2011030462A1 (ja) 2013-02-04
US20130308650A1 (en) 2013-11-21
EP2731305B1 (en) 2021-01-13
EP2479937A4 (en) 2013-12-18
KR20130109245A (ko) 2013-10-07
US8509252B2 (en) 2013-08-13
EP2696541A1 (en) 2014-02-12
KR20130109246A (ko) 2013-10-07

Similar Documents

Publication Publication Date Title
KR101365667B1 (ko) 통신 시스템, 노드, 제어 서버, 통신 방법 및 프로그램
JP5644775B2 (ja) 通信システムおよびトポロジー情報作成方法
JP5644895B2 (ja) 通信システム、制御装置、通信方法及びプログラム
US8792388B2 (en) Network system, controller, method and program
JP5880570B2 (ja) マッピングサーバ装置、ネットワークシステム、パケット転送方法およびプログラム
JP5994851B2 (ja) 転送装置の制御装置、転送装置の制御方法、通信システムおよびプログラム
WO2011083780A1 (ja) 通信システム、制御装置、処理規則の設定方法、パケットの送信方法およびプログラム
CN102577271A (zh) 信息系统、控制服务器、虚拟网络管理方法以及程序
KR20140004814A (ko) 통신 시스템, 노드, 제어 서버 및 통신 방법
US10171352B2 (en) Communication system, node, control device, communication method, and program
WO2015125804A1 (ja) 通信システム、制御装置、通信制御方法、および、プログラム
JP2014502811A (ja) 通信システムおよび通信方法
WO2013062070A1 (ja) 制御装置、通信システム、仮想ネットワークの管理方法およびプログラム
JP5637289B2 (ja) 通信システム、ノード、制御サーバ、通信方法およびプログラム
JP5573909B2 (ja) 通信システム、ノード、制御装置、通信方法およびプログラム
JP6036940B2 (ja) 通信システム、ノード、制御装置、通信方法およびプログラム
JP5794355B2 (ja) 通信システム、ノード、制御装置、通信方法およびプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180119

Year of fee payment: 5