KR20130109208A - 플로우 통신 시스템 - Google Patents

플로우 통신 시스템 Download PDF

Info

Publication number
KR20130109208A
KR20130109208A KR1020137019100A KR20137019100A KR20130109208A KR 20130109208 A KR20130109208 A KR 20130109208A KR 1020137019100 A KR1020137019100 A KR 1020137019100A KR 20137019100 A KR20137019100 A KR 20137019100A KR 20130109208 A KR20130109208 A KR 20130109208A
Authority
KR
South Korea
Prior art keywords
packet
flow
entry
node
controller
Prior art date
Application number
KR1020137019100A
Other languages
English (en)
Other versions
KR101434375B1 (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 KR20130109208A publication Critical patent/KR20130109208A/ko
Application granted granted Critical
Publication of KR101434375B1 publication Critical patent/KR101434375B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/43Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/645Splitting route computation layer and forwarding layer, e.g. routing according to path computational element [PCE] or based on OpenFlow functionality

Abstract

플로우 통신 시스템은, 플로우 테이블(flow table)을 갖는 노드, 및 플로우 테이블에 플로우 엔트리를 설정하도록 구성된 컨트롤러를 갖는다. 플로우 테이블에 설정되는 각각의 플로우 엔트리는 매칭 조건과 매칭되는 패킷에 대해 행해지는 패킷 처리를 지정한다. 플로우 테이블에 히트 엔트리가 존재할 경우, 노드는 수신된 패킷에 대해 히트 엔트리에 의해 지정된 패킷 처리를 행한다. 플로우 테이블의 제 1 플로우 엔트리에 대한 삭제 조건이 만족될 경우, 노드는 플로우 테이블에서 제 1 플로우 엔트리를 삭제한다. 삭제 조건은, 제 1 플로우 엔트리가 설정된 후 제 1 플로우 엔트리와 매칭되는 모든 수신된 패킷의 패킷 길이의 합이 소정의 삭제 단위 길이를 초과하는 것을 포함한다.

Description

플로우 통신 시스템{FLOW COMMUNICATION SYSTEM}
본 발명은 플로우 테이블을 이용한 플로우 통신 시스템에 관한 것이다.
"OpenFlow" 기술이 비특허문헌 1에 기술되어 있다(Nick McKeown 외, "OpenFlow: Enabling Innovation in Campus Networks", ACM SIGCOMM Computer Communication Review, Vol. 38, No. 2, 2008). OpenFlow에 따르면, 각각의 플로우에 대해 라우팅 제어, 장해 복구, 부하 밸런싱 및 최적화가 행해진다. OpenFlow에서는, 포워딩 노드로서 기능하는 오픈 플로우 스위치(OFS) 및 오픈 플로우 스위치를 제어하는 오픈 플로우 컨트롤러(OFC)가 사용된다.
OpenFlow에서의 일반적인 패킷 처리를 도 1을 참조하여 설명한다. 오픈 플로우 스위치는 플로우 테이블을 가지며 플로우 테이블에 따라 패킷 처리를 행한다. 플로우 테이블 내의 각 플로우 엔트리는 매칭 조건(Key), 액션(Action), 통계 정보(Stat) 및 타임아웃값(Timeout) 등의 필드를 갖는다. 패킷 헤더의 필드의 조합으로 표현되는 매칭 조건은, 수신된 패킷이 플로우 엔트리와 매칭되는지의 여부를 판정하기 위해 사용된다. 액션은, 매칭 조건과 일치되는 패킷에 대해 수행되는 패킷 처리의 내용을 지시한다(예를 들면, 패킷 처리는 수신된 패킷을 지정된 포트에 출력하는 것임).
플로우에 속한 패킷을 수신할 경우, 오픈 플로우 스위치는 플로우 테이블을 참조하여, 수신된 패킷과 매칭 조건이 매칭되는 플로우 엔트리를 검색한다. 이하, 수신된 패킷과 매칭되는 플로우 엔트리를 “히트 엔트리(hit entry)”라 한다. 히트 엔트리가 플로우 테이블에 아직 설정되어 있지 않을 경우(즉, 미스(miss)일 경우), 오픈 플로우 스위치는 수신된 패킷을 엔트리 설정 요청(제 1 패킷)으로서 오픈 플로우 컨트롤러에 전송한다.
오픈 플로우 컨트롤러는 오픈 플로우 스위치로부터 엔트리 설정 요청(제 1 패킷)을 수신한다. 오픈 플로우 컨트롤러는, 제 1 패킷의 수신에 응답하여, 제 1 패킷을 처리하기 위한 새로운 플로우 엔트리를 생성하고 새로운 플로우 엔트리를 오픈 플로우 스위치의 플로우 테이블에 설정한다. 보다 구체적으로, 오픈 플로우 컨트롤러는 새로운 플로우 엔트리를 플로우 테이블에 추가하도록 오픈 플로우 스위치에 지시하고, 오픈 플로우 스위치는 이 지시에 따라 새로운 플로우 엔트리를 플로우 테이블에 추가한다.
이어서, 오픈 플로우 컨트롤러는 오픈 플로우 스위치에 제 1 패킷을 되돌려 보낸다. 오픈 플로우 스위치는 제 1 패킷을 수신 패킷으로서 재수신한다. 이때, 플로우 테이블에는 제 1 패킷과 매칭되는 히트 엔트리가 존재한다(즉, 히트인 경우). 이 경우에, 오픈 플로우 스위치는 수신된 패킷에 대해 히트 엔트리의 액션에 의해 지정된 처리를 행한다. 그 후, 제 1 패킷과 동일한 플로우에 속하는 패킷은 오픈 플로우 컨트롤러를 통하지 않고 동일한 히트 엔트리에 따라 처리된다.
플로우 엔트리가 새롭게 설정되고나서 일정한 시간이 경과했을 경우나 플로우 엔트리가 히트 엔트리가 된 마지막 시점 이후 일정한 시간이 경과했을 경우, 이 플로우 엔트리는 플로우 테이블에서 삭제된다. 상술한 일정한 시간을 지정하는 것이 각 플로우 엔트리의 타임아웃값(Timeout)이다. 즉, 오픈 플로우 스위치는 각 플로우 엔트리에서 타임아웃을 감시하고, 플로우 엔트리에서 타임아웃이 일어날 경우, 플로우 테이블에서 플로우 엔트리를 삭제한다(제거한다).
Nick McKeown 외, "OpenFlow: Enabling Innovation in Campus Networks", ACM SIGCOMM Computer Communication Review, Vol. 38, No. 2, 2008.(http://www.openflowswitch.org//documents/openflow-wp-latest.pdf)
본 출원의 발명자는 다음의 점들을 인식하고 있었다. 도 1에 나타내는 일반적인 OpenFlow의 경우에는, 동일한 단일 플로우에 속하는 패킷의 시퀀스에 대해 동일한 패킷 처리가 행해진다. 즉, 동일한 단일 플로우에 속하는 패킷의 시퀀스에 대해 조건에 따라 서로 다른 패킷 처리(예를 들면, 서로 다른 출력 포트에 출력)를 행할 수 없다. 예를 들면, 복수의 메시지가 단일 플로우에 의해 전송될 경우, 각각의 메시지에 대해 서로 다른 스위칭을 행할 수 없다.
본 발명의 목적은 단일 플로우에 속하는 패킷의 시퀀스에 대해 복수 종류의 패킷 처리를 행할 수 있는 기술을 제공하는 것이다.
본 발명의 일 양태에 따르면, 플로우 통신 시스템이 제공된다. 플로우 통신 시스템은 플로우 테이블(flow table)을 갖는 노드, 및 플로우 테이블에 플로우 엔트리를 설정하도록 구성된 컨트롤러를 포함한다. 플로우 테이블에 설정되는 각각의 플로우 엔트리는 매칭 조건과 매칭되는 패킷에 대해 행해지는 패킷 처리를 지정한다. 노드에 의해 수신된 패킷이 매칭되는 플로우 엔트리는 히트 엔트리(hit entry)이다. 플로우 테이블에 히트 엔트리가 존재할 경우, 노드는 수신된 패킷에 대해 히트 엔트리에 의해 지정된 패킷 처리를 행한다. 플로우 테이블의 제 1 플로우 엔트리에 대한 삭제 조건이 만족될 경우, 노드는 플로우 테이블에서 제 1 플로우 엔트리를 삭제한다. 삭제 조건은, 제 1 플로우 엔트리가 설정된 후 제 1 플로우 엔트리와 매칭되는 모든 수신된 패킷의 패킷 길이의 합이 소정의 삭제 단위 길이를 초과하는 것을 포함한다.
본 발명의 또 다른 양태에서는, 노드가 제공된다. 노드는 플로우 테이블을 관리하도록 구성된 테이블 관리부, 및 수신된 패킷에 대해 패킷 처리를 행하도록 구성된 패킷 처리부를 갖는다. 플로우 테이블에 설정되는 각각의 플로우 엔트리는 매칭 조건과 매칭되는 패킷에 대해 행해지는 패킷 처리를 지정한다. 수신된 패킷이 매칭되는 플로우 엔트리는 히트 엔트리이다. 히트 엔트리가 플로우 테이블에 존재할 경우, 패킷 처리부는 수신된 패킷에 대해 히트 엔트리에 의해 지정된 패킷 처리를 행한다. 플로우 테이블의 제 1 플로우 엔트리에 대한 삭제 조건이 만족될 경우, 테이블 관리부는 플로우 테이블에서 제 1 플로우 엔트리를 삭제한다. 삭제 조건은, 제 1 플로우 엔트리가 설정된 후 제 1 플로우 엔트리와 매칭되는 모든 수신된 패킷의 패킷 길이의 합이 소정의 삭제 단위 길이를 초과하는 것을 포함한다.
본 발명에 따르면, 단일 플로우에 속하는 패킷의 시퀀스에 패킷 처리의 여러 종류를 만들 수 있다.
도 1은 일반적인 OpenFlow를 설명하기 위한 개념도.
도 2는 본 발명의 실시예에 따른 플로우 통신을 나타내는 개념도.
도 3은 본 발명의 실시예에 따른 플로우 통신을 나타내는 개념도.
도 4는 본 발명의 실시예에 따른 플로우 통신 시스템의 구성을 나타내는 블록도.
도 5는 본 발명의 실시예에 따른 플로우 테이블을 나타내는 개념도.
도 6은 본 발명의 실시예에 따른 노드에 의한 처리를 나타내는 플로차트.
도 7은 본 발명의 실시예에 따른 컨트롤러에 의한 처리를 나타내는 플로차트.
도 8은 본 발명의 실시예에 따른 플로우 통신 시스템에서의 제 1 처리예를 나타내는 도면.
도 9는 본 발명의 실시예에서 패킷 분할을 필요로 하는 패킷을 설명하기 위한 개념도.
도 10은 본 발명의 실시예에 따른 플로우 통신 시스템에서의 제 2 처리예를 나타내는 도면.
도 11은 본 발명의 실시예의 제 1 적용예를 나타내는 도면.
도 12는 본 발명의 실시예의 제 1 적용예의 처리를 나타내는 도면.
도 13은 본 발명의 실시예의 제 2 적용예를 나타내는 도면.
도 14는 본 발명의 실시예의 제 2 적용예의 처리를 나타내는 도면.
본 발명의 실시예를 첨부 도면을 참조하여 설명한다.
1. 요약
도 2는 본 발명의 실시예에 따른 플로우 통신을 개념적으로 나타내고 있다. 도 2에서, A개의 패킷(P-11 내지 P-1A)으로 구성된 제 1 패킷 그룹 및 B개의 패킷(P-21 내지 P-2B)으로 구성된 제 2 패킷 그룹은 동일한 플로우에 속한다.
본 실시예에 따르면, 제 1 패킷 그룹 및 제 2 패킷 그룹 각각에 서로 다른 패킷 처리(Action1 및 Action2)를 적용할 수 있다. 이를 위해, 제 1 패킷 그룹이 플로우 엔트리에 따라 처리된 후, 이 플로우 엔트리가 플로우 테이블에서 제거된다. 그 후, 제 2 패킷 그룹을 처리하기 위한 다른 플로우 엔트리가 새롭게 설정된다. 따라서, 제 1 패킷 그룹 및 제 2 패킷 그룹 각각에 서로 다른 패킷 처리를 적용할 수 있다.
즉, 본 실시예에 따르면, 패킷 처리량에 의존하는 새로운 삭제 조건이, 종래의 타임아웃(Timeout)과는 별도로, 플로우 테이블에서 플로우 엔트리를 삭제하는 조건으로서 도입된다. 새로운 삭제 조건은 "플로우 엔트리에 의해 처리된 패킷의 양이 소정량을 초과"하는 것이다. 더 구체적으로, 새로운 삭제 조건은 "플로우 엔트리의 설정 후에 플로우 엔트리와 매칭되는 모든 수신된 패킷의 패킷 길이의 합이 소정의 삭제 단위 길이를 초과"하는 것이다. 결과적으로, 동일한 플로우에 속하는 패킷의 시퀀스에 대한 패킷 처리가 삭제 단위 길이마다 변경될 수 있다.
예를 들면, 도 3에 나타낸 바와 같이, 복수의 메시지(M1 및 M2)가 단일 플로우에 의해 통신되는 경우를 고려한다. 여기에서, 메시지는 패킷보다 상위 계층(일반적으로, 애플리케이션 계층)에 의해 전송 및 수신되는 데이터의 단위이다. 메시지의 예는 HTTP 요청 및 HTTP 응답을 포함한다. 본 발명에 따르면, 복수의 메시지가 동일한 단일 플로우에 의해 전송될 경우에, 패킷 처리가 메시지마다 변경될 수 있다. 예를 들면, 도 3에 나타낸 바와 같이, 패킷 처리(Action1)는, 패킷(P-11 내지 P-1A)으로 분할되어 전송되는 메시지(M1)에 적용된다. 패킷 처리(Action1)를 지정하는 플로우 엔트리에 대한 삭제 단위 길이는 메시지(M1)의 메시지 길이에 의존하는 값으로 설정된다. 결과적으로, 메시지(M1)에 대한 패킷 처리가 완료된 후, 플로우 엔트리는 삭제된다. 그 후, 제 2 메시지(M2)를 처리하기 위해, 플로우 테이블에 새로운 플로우 엔트리가 설정된다. 새로운 플로우 엔트리에 대한 삭제 단위 길이는 메시지(M2)의 메시지 길이에 의존하는 값으로 설정된다.
본 발명에 따르면, 상술한 바와 같이 단일 플로우에 속하는 패킷의 시퀀스에 대해 복수 종류의 패킷 처리를 행할 수 있다.
2. 구성
도 4는 본 실시예에 따른 플로우 통신 시스템(1)의 구성을 나타내는 블록도이다. 플로우 통신 시스템(1)은 노드(10) 및 컨트롤러(20)를 갖는다. 노드(10) 및 컨트롤러(20)는 통신 가능하게 상호 연결되어 있다. 예를 들면, OpenFlow의 경우에, 노드(10)는 오픈 플로우 스위치(OFS)이고 컨트롤러(20)는 오픈 플로우 컨트롤러(OFC)이다.
노드(10)는 플로우 테이블(TBL)을 갖고 플로우 테이블(TBL)에 따라 패킷 처리를 행한다. 보다 구체적으로, 노드(10)는 테이블 관리부(11), 패킷 처리부(12), 컨트롤러 통신부(13) 및 N 포트(15-1 내지 15-N)를 갖는다. 테이블 관리부(11)는 플로우 테이블(TBL)을 관리한다. 테이블 관리부(11)는 메모리 디바이스를 갖고, 플로우 테이블(TBL)은 이 메모리 디바이스에 저장된다. 패킷 처리부(12)는 포트(15)(입력 포트)를 통해 패킷을 수신한다. 패킷 처리부(12)는 플로우 테이블(TBL)을 참조하여 수신된 패킷에 대해 패킷 처리를 행한다. 또한, 패킷 처리부(12)는 포트(15)(출력 포트)를 통해 패킷을 전송한다. 컨트롤러 통신부(13)는 컨트롤러(20)와 통신하는 기능을 갖는다. OpenFlow의 경우에, SecureChannel이 컨트롤러 통신부(13)에 대응한다.
컨트롤러(20)는 플로우 테이블(TBL)에 플로우 엔트리를 설정한다.
도 5는 본 실시예에 따른 플로우 테이블(TBL)을 나타내는 개념도이다. 플로우 테이블(TBL)은 0개 이상의 플로우 엔트리(ENT1, ENT2, ENT3 ...)를 갖는다. 각각의 플로우 엔트리(ENT)는 매칭 조건(Key), 액션(Action), 통계 정보(Stat) 및 타임아웃값(Timeout) 등의 필드를 갖는다. 패킷 헤더의 필드의 조합으로 표현되는 매칭 조건은 수신된 패킷이 플로우 엔트리(ENT)와 매칭되는지의 여부를 판정하기 위해 사용된다. 액션은, 매칭 조건과 매칭되는 패킷에 대해 행해지는 패킷 처리의 내용을 지시한다(예를 들면, 패킷 처리는 수신된 패킷을 지정된 포트에 출력하는 것임).
본 실시예에 따르면, 각 플로우 엔트리(ENT)는 파라미터 "Byte_expire"를 더 갖는다. Byte_expire는 플로우 엔트리(ENT)의 삭제 전에 허용되는 패킷 처리량이다. 즉, Byte_expire는 엔트리의 삭제 전에 "잔여 처리량"에 해당한다. 플로우 엔트리(ENT)가 새롭게 설정될 경우, 해당 Byte_expire는 상술한 소정의 삭제 단위 길이로 초기화된다. 이어서, 플로우 엔트리(ENT)가 히트 엔트리가 될 때마다, Byte_expire는 수신된 패킷의 패킷 길이만큼 감소된다. 수신된 패킷의 패킷 길이 미만인 Byte_expire는 상술한 "삭제 조건"을 만족하는 것을 의미한다. 따라서, 이 경우에, 플로우 엔트리(ENT)가 플로우 테이블(TBL)에서 삭제된다.
3. 처리 플로우
이하, 본 실시예에 따른 플로우 통신 시스템에 의한 처리의 플로우를 설명한다. 도 6은 노드(10)에 의한 처리를 나타내는 플로차트이다. 도 7은 컨트롤러(20)에 의한 처리를 나타내는 플로차트이다.
도 8에 나타낸 처리예를 도 4 내지 도 7을 적절히 참조하여 설명한다. 도 8에 나타낸 처리예에서, 복수의 메시지(M1 및 M2)가 단일 플로우에 의해 통신된다. 여기에서, 각 메시지(TLV(Type-Length-Value) 메시지)의 메시지 길이가 패킷 길이보다 크고, 각 메시지가 복수의 패킷으로 분할되어 전송된다. 예를 들면, 패킷 길이는 1500바이트이고 메시지 길이는 7300바이트이다. 메시지 길이는 각 메시지의 헤드의 메시지 헤더(메시지 헤더는 도면에서 "H"로 표시)에서 지시됨을 유념한다.
우선, 노드(10)의 패킷 처리부(12)는 메시지(M1)의 초기 패킷을 수신한다(단계 S10). 패킷 수신에 응답하여, 패킷 처리부(12)는 플로우 테이블(TBL)을 참조하여 수신된 패킷과 매칭 조건이 매칭되는 플로우 엔트리를 검색한다(스텝 S11). 이하, 수신된 패킷과 매칭되는 플로우 엔트리를 "히트 엔트리"라고 한다.
이때, 히트 엔트리가 플로우 테이블(TBL)에 존재하지 않는다(단계 S12; No). 이 경우에, 패킷 처리부(12)는 수신된 패킷을 제 1 패킷(엔트리 설정 요청)으로서 이용하여 제 1 패킷을 컨트롤러 통신부(13)를 통해 컨트롤러(20)에 포워딩한다(단계 S17).
컨트롤러(20)는 노드(10)로부터 제 1 패킷을 수신한다(단계 S20). 다음으로, 컨트롤러(20)는 제 1 패킷에 의거하여 제 1 패킷의 분할이 필요한지의 여부를 판정한다(단계 S21). 도 8에 나타낸 처리 예에서, 패킷 분할이 필요하지 않다(단계 S21; No). 이 경우, 컨트롤러(20)는 제 1 패킷에 의거하여 제 1 패킷을 처리하기 위한 새로운 플로우 엔트리(ENT)를 플로우 테이블(TBL)에 설정한다(단계 S22).
더 구체적으로는, 컨트롤러(20)는 우선 제 1 패킷을 처리하기 위해 사용되는 새로운 플로우 엔트리(ENT)를 생성한다. 여기에서, 컨트롤러(20)는 새로운 플로우 엔트리(ENT)의 Byte_expire의 초기값, 즉 삭제 단위 길이를 판정한다. 본 예에서, 삭제 단위 길이는, 메시지 마다 패킷 처리를 변경하기 위해 메시지 길이에 의존한 값으로 설정된다. 따라서, 컨트롤러(20)는 제 1 패킷의 패킷 데이터의 헤드의 메시지 헤더를 참조하여 메시지 길이(=7300바이트)를 얻고 메시지 길이에 의존하여 Byte_expire를 삭제 단위 길이로 초기화한다. 예를 들면, 패킷 헤더의 길이만큼의 증가를 고려하면, 삭제 단위 길이(Byte_expire의 초기값)는 7500바이트로 판정된다. 이어서, 컨트롤러(20)는 플로우 테이블(TBL)에 새로운 플로우 엔트리(ENT)를 추가하도록 노드(10)에 지시한다.
노드(10)의 컨트롤러 통신부(13)는 컨트롤러(20)로부터 엔트리 설정 지시를 수신하고 엔트리 설정 지시를 테이블 관리부(11)에 보낸다. 엔트리 설정 지시에 따라, 테이블 관리부(11)는 플로우 테이블(TBL)에 새로운 플로우 엔트리(ENT)를 추가한다(단계 S18). 그 후, 컨트롤러(20)는 노드(10)에 제 1 패킷을 되돌려 보낸다(단계 S23).
노드(10)의 패킷 처리부(12)는 제 1 패킷을 수신되는 패킷으로서 재수신한다(단계 S10). 패킷 처리부(12)는 수신된 패킷과 매칭되는 히트 엔트리에 대해 플로우 테이블(TBL)을 검색한다(단계 S11). 이때, 히트 엔트리가 플로우 테이블(TBL)에 존재한다(단계 S12; Yes).
히트 엔트리가 존재할 경우에, 테이블 관리부(11)는 히트 엔트리의 Byte_expire를 검사한다(단계 S13). 더 구체적으로, 테이블 관리부(11)는 히트 엔트리의 Byte_expire가 수신된 패킷의 패킷 길이(LEN)(=1500바이트) 이상인지의 여부를 검사한다. 히트 엔트리의 Byte_expire가 수신된 패킷의 패킷 길이(LEN) 이상일 경우(단계 S13; Yes), 테이블 관리부(11)는 패킷 길이(LEN)만큼 히트 엔트리의 Byte_expire를 감소시킨다(단계 S14). 이어서, 패킷 처리부(12)는, 수신된 패킷에 대해 히트 엔트리의 액션에 의해 지정된 패킷 처리를 행한다(단계 S15).
따라서, 제 1 패킷의 후속 패킷은 컨트롤러(20)를 통하지 않고 동일한 플로우 엔트리(ENT)에 따라 처리된다. 또한, 플로우 엔트리(ENT)가 히트 엔트리가 될 때마다, 플로우 엔트리(ENT)의 Byte_expire는 패킷 길이(LEN)(=1500바이트)만큼 감소된다. 도 8에 나타낸 예에서, 메시지(M1)의 모든 패킷에 대한 처리가 완료될 경우, 플로우 엔트리(ENT)의 Byte_expire는 "0"이 된다.
다음으로, 노드(10)의 패킷 처리부(12)는 메시지(M2)의 초기 패킷을 수신한다(단계 S10). 이 경우, 플로우 테이블(TBL)에 히트 엔트리가 존재하지만(단계 S12; Yes), 히트 엔트리의 Byte_expire는 수신된 패킷의 패킷 길이(LEN) 미만이다(단계 S13; No). 이는 플로우 엔트리(ENT)에 대한 삭제 조건이 만족되었음을 의미한다. 따라서, 테이블 관리부(11)는 플로우 테이블(TBL)에서 플로우 엔트리(ENT)를 삭제한다(단계 S16). 또한, 패킷 처리부(12)는 수신된 패킷을 제 1 패킷(엔트리 설정 요청)으로서 이용하여 제 1 패킷을 컨트롤러 통신부(13)를 통해 컨트롤러(20)에 포워딩한다(단계 S17). 이 후, 동일한 처리가 메시지(M2)에 대해 행해진다.
이와 같이, 본 실시예에 따르면, 복수의 메시지 각각에 대해 서로 다른 플로우 엔트리가 순차적으로 설정된다. 결과적으로, 복수의 메시지가 동일한 플로우에 의해 전송될 경우에도, 메시지마다 패킷 처리가 변경될 수 있다.
다음으로, 다른 처리예를 설명한다. 복수의 메시지가 동일한 플로우에 의해 전송질 경우, 메시지 경계를 포함하는 패킷이 존재할 수 있다. 예를 들면, 도 9에 나타낸 바와 같이, 메시지(M1)의 데이터 및 메시지(M2)의 데이터 양쪽이 단일 패킷(PA)의 패킷 데이터에 포함될 경우가 있을 수 있다. 구체적으로, 패킷(PA)의 패킷 데이터의 전단(former part)에 메시지(M1)의 말단 데이터가 마련되며, 그 후단(latter part)에 메시지 헤더를 포함하는 메시지(M2)의 헤드 데이터가 마련된다. 이 경우에, 메시지마다의 패킷 처리를 변경하기 위해 패킷(PA)의 분할(단편화(fragmentation))이 필요하다.
도 10은 이러한 패킷(PA)의 분할이 행해지는 처리예를 나타낸다. 도 10에 나타낸 처리예에서, 노드(10)가 패킷(PA)을 받을 경우, 삭제 조건이 만족되고 이에 따라 패킷(PA)은 제 1 패킷으로서 컨트롤러(20)에 전송된다.
컨트롤러(20)는 노드(10)로부터 패킷(PA)(제 1 패킷)을 수신한다(단계 S20). 다음으로, 컨트롤러(20)는 패킷(PA)에 의거하여 패킷(PA)의 분할이 필요한지의 여부를 판정한다(단계 S21). 본 예에서, 패킷(PA)의 패킷 데이터의 헤드에 메시지 헤더가 존재하지 않는다. 이 경우, 컨트롤러(20)는 패킷 분할이 필요하다고 판정하고(단계 S21; Yes), 패킷(PA)을 전단 패킷(PB) 및 후단 패킷(PC)으로 분할한다(단계 S24). 전단 패킷(PB)은 패킷 데이터로서, 메시지 헤더 앞에 패킷(PA)의 패킷 데이터의 전단를 갖는다. 한편, 후단 패킷(PC)은 패킷 데이터로서, 메시지 헤더 뒤에 패킷(PA)의 패킷 데이터의 후단을 갖는다.
컨트롤러(20)는 전단 패킷(PB)을 노드(10)(단계 S25)에 되돌려 보낸다. 이 때, 전단 패킷(PB)과 매칭되는 플로우 엔트리(ENT)가 이미 삭제되어 있다. 따라서, 컨트롤러(20)는 동시에 전단 패킷(PB)에 적용될 패킷 처리를 지시한다. 지시에 따라, 노드(10)의 패킷 처리부(12)는 전단 패킷(PB)을 처리한다.
한편, 컨트롤러(20)는, 후단 패킷(PC)에 의거하여, 후단 패킷(PC)을 처리하는 새로운 플로우 엔트리(ENT)를 플로우 테이블(TBL)에 설정한다(단계 S26). 여기에서, 컨트롤러(20)는 후단 패킷(PC)의 패킷 데이터의 헤드의 메시지 헤더를 참조하여 메시지 길이를 얻고 메시지의 길이에 의존하여 Byte_expire를 삭제 단위 길이로 초기화한다. 새로운 플로우 엔트리(ENT)가 플로우 테이블(TBL)에 추가된 후, 컨트롤러(20)는 노드(10)에 후단 패킷(PC)을 되돌려 보낸다(단계 S27). 후단 패킷(PC)은 새로운 플로우 엔트리(ENT)에 따라 처리된다. 이렇게, 패킷 처리가 메시지마다 변경될 수 있다.
메시지 길이 자체가 패킷 헤더의 길이를 고려하지 않고 삭제 단위 길이로서 사용될 수 있음을 유념한다. 이 경우에, 삭제 조건이 더 일찍 만족되며, 이것은 문제가 없다.
본 실시예는 타임아웃에 의존하는 종래의 엔트리 삭제 처리와 조합하여 사용될 수 있다.
4. 적용예
4-1. 제 1 적용예
도 11 및 도 12는 본 실시예의 제 1 적용예를 나타낸다. 제 1 적용예는, 복수의 HTTP 메시지(M1 및 M2)가 단일 TCP 플로우에 다중화될 경우의 부하 밸런싱에 관한 것이다. 노드(10)는 오픈 플로우 스위치(OFS)이고, 컨트롤러(20)는 오픈 플로우 컨트롤러(OFC)이다. 킵 얼라이브(keep alive) 옵션의 경우에, 단일 TCP 연결에는 복수의 HTTP 메시지가 포함되어 있다. 오픈 플로우 컨트롤러(20)는, 각 HTTP 메시지의 메시지 헤더에 의거하여, 각 HTTP 메시지의 패킷에 대한 수신처 서버(40)를 판정한다. 오픈 플로우 컨트롤러(20)는 TCP 디스패처(dispatcher)(30)에 대해 HTTP 메시지마다 수신처 서버(40)를 지정한다. TCP 디스패처(30)는 각각 지정된 수신처 서버(40)에 패킷을 디스패치한다. 예를 들면, HTTP 메시지(M1)는 서버(40-1)에 디스패치되고, HTTP 메시지(M2)는 서버(40-2)에 디스패치된다. 이렇게, 복수의 HTTP 메시지가 단일 TCP 플로우에 다중화될 경우에도 부하 밸런싱이 가능하다.
4-2. 제 2 적용예
도 13 및 도 14는 본 실시예의 제 2 적용예를 나타낸다. 제 2 적용예는 복수의 iSCSI LUN 플로우가 단일 TCP 플로우에 다중화될 경우에 관한 것이다. 특정 iSCSI LUN 플로우만을 우선적으로 디스패치하기 위해, 본 실시예가 적용 가능하다. 노드(10)는 NIC이고, 컨트롤러(20)는 v스위치(vswitch)이다. v스위치(20)는 헤더를 참조하여 PDU마다 플로우(일반 플로우 또는 우선순위 플로우)를 판정한다. v스위치(20)는 특정 iSCSI LUN 플로우만을 우선순위 플로우로 설정한다.
본 발명의 실시예를 첨부된 도면을 참조하여 상술했지만, 본 발명은 이러한 실시예에 한정되는 것은 아니라 본 발명의 사상 및 범주에서 벗어나지 않고 당업자에 의해 적절하게 변경될 수 있다.
상술한 실시예의 일부 또는 전부는 다음의 부기와 같이 기술될 수 있지만, 그에 한정되는 것은 아니다.
(부기 1)
플로우 테이블을 갖는 노드, 및
상기 플로우 테이블에 플로우 엔트리를 설정하도록 구성된 컨트롤러를 포함하고,
상기 플로우 테이블에 설정되는 각각의 플로우 엔트리는 매칭 조건과 매칭되는 패킷에 대해 행해지는 패킷 처리를 지정하고,
상기 노드에 의해 수신된 패킷이 매칭되는 플로우 엔트리는 히트 엔트리이고,
상기 플로우 테이블에 상기 히트 엔트리가 존재할 경우, 상기 노드는 상기 수신된 패킷에 대해 상기 히트 엔트리에 의해 지정된 상기 패킷 처리를 행하고,
상기 플로우 테이블의 제 1 플로우 엔트리에 대한 삭제 조건이 만족될 경우, 상기 노드는 상기 플로우 테이블에서 상기 제 1 플로우 엔트리를 삭제하고,
상기 삭제 조건은, 상기 제 1 플로우 엔트리가 설정된 후 상기 제 1 플로우 엔트리와 매칭되는 모든 수신된 패킷의 패킷 길이의 합이 소정의 삭제 단위 길이를 초과하는 것을 포함하는 플로우 통신 시스템.
(부기 2)
상기 플로우 테이블에 설정되는 각각의 플로우 엔트리는 잔여 처리량을 파라미터로서 더 갖고,
새로운 플로우 엔트리를 설정할 경우, 상기 컨트롤러는 상기 잔여 처리량을 상기 소정의 삭제 단위 길이로 초기화하고,
상기 제 1 플로우 엔트리가 상기 히트 엔트리가 될 경우, 상기 노드는 상기 제 1 플로우 엔트리의 상기 잔여 처리량을 검사하고,
상기 잔여 처리량이 상기 수신된 패킷의 패킷 길이 이상일 경우, 상기 노드는 상기 수신된 패킷의 패킷 길이만큼 상기 제 1 플로우 엔트리의 상기 잔여 처리량을 감소시키고,
상기 잔여 처리량이 상기 수신된 패킷의 패킷 길이 미만일 경우, 상기 삭제 조건이 만족되어 상기 노드가 상기 플로우 테이블에서 상기 제 1 플로우 엔트리를 삭제하는 부기 1에 따른 플로우 통신 시스템.
(부기 3)
상기 히트 엔트리가 상기 플로우 테이블에 존재하지 않을 경우, 또는 상기 삭제 조건이 만족될 경우, 상기 노드는 상기 수신된 패킷을 제 1 패킷으로서 상기 컨트롤러에 포워딩하고,
상기 제 1 패킷의 수신에 응답하여, 상기 컨트롤러는 상기 제 1 패킷을 처리하기 위한 새로운 플로우 엔트리를 상기 플로우 테이블에 설정하는 부기 1 또는 2에 따른 플로우 통신 시스템.
(부기 4)
복수의 메시지가 단일 플로우에 의해 통신되고,
상기 컨트롤러는, 상기 복수의 메시지 각각의 메시지 길이에 의거하여 상기 소정의 삭제 단위 길이를 판정하고 상기 복수의 메시지 각각에 대해 서로 다른 플로우 엔트리를 순차적으로 설정하는 부기 3에 따른 플로우 통신 시스템.
(부기 5)
상기 메시지 길이는 메시지 헤더에 지정되고,
상기 메시지 헤더가 상기 제 1 패킷의 패킷 데이터의 헤드에 존재할 경우, 상기 컨트롤러는, 상기 메시지 헤더에 의거하여 상기 새로운 플로우 엔트리를 설정하고, 그 후 상기 제 1 패킷을 상기 노드에 되돌려 보내는 부기 4에 따른 플로우 통신 시스템.
(부기 6)
상기 메시지 헤더가 상기 제 1 패킷의 패킷 데이터의 헤드에 존재하지 않을 경우에는, 상기 컨트롤러는 상기 제 1 패킷을 제 2 패킷 및 제 3 패킷으로 분할하고,
상기 제 2 패킷은 상기 메시지 헤더 앞에 패킷 데이터로서 상기 제 1 패킷의 상기 패킷 데이터의 일부를 갖고,
상기 제 3 패킷은 상기 메시지 헤더 뒤에 패킷 데이터로서 상기 제 1 패킷의 상기 패킷 데이터의 일부를 갖고,
상기 컨트롤러는 상기 제 2 패킷에 적용될 상기 패킷 처리를 지시함과 함께 상기 제 2 패킷을 상기 노드에 되돌려 보내고,
상기 컨트롤러는 상기 메시지 헤더에 의거하여 상기 새로운 플로우 엔트리를 설정하고, 그 후 상기 제 3 패킷을 상기 노드에 되돌려 보내는 부기 5에 따른 플로우 통신 시스템.
(부기 7)
상기 노드가 오픈 플로우 스위치이고,
상기 컨트롤러는 오픈 플로우 컨트롤러인 부기 1 내지 6 중 어느 하나에 따른 플로우 통신 시스템.
(부기 8)
플로우 테이블을 관리하도록 구성된 테이블 관리부, 및
수신된 패킷에 대해 패킷 처리를 행하도록 구성된 패킷 처리부를 포함하고,
상기 플로우 테이블에 설정되는 각각의 플로우 엔트리는 매칭 조건과 매칭되는 패킷에 대해 행해지는 상기 패킷 처리를 지정하고,
상기 수신된 패킷이 매칭되는 플로우 엔트리는 히트 엔트리이고,
상기 히트 엔트리가 상기 플로우 테이블에 존재할 경우, 상기 패킷 처리부는 상기 수신된 패킷에 대해 상기 히트 엔트리에 의해 지정된 상기 패킷 처리를 행하고,
상기 플로우 테이블의 제 1 플로우 엔트리에 대한 삭제 조건이 만족될 경우, 상기 테이블 관리부는 상기 플로우 테이블에서 상기 제 1 플로우 엔트리를 삭제하고,
상기 삭제 조건은, 상기 제 1 플로우 엔트리가 설정된 후 상기 제 1 플로우 엔트리와 매칭되는 모든 수신된 패킷의 패킷 길이의 합이 소정의 삭제 단위 길이를 초과하는 것을 포함하는 노드.
(부기 9)
상기 플로우 테이블에 설정되는 각각의 플로우 엔트리는 잔여 처리량을 파라미터로서 더 갖고,
새로운 플로우 엔트리를 상기 플로우 테이블에 설정할 경우, 상기 잔여 처리량은 상기 소정의 삭제 단위 길이로 초기화되고,
상기 제 1 플로우 엔트리가 상기 히트 엔트리가 될 경우, 상기 테이블 관리부는 상기 제 1 플로우 엔트리의 상기 잔여 처리량을 검사하고,
상기 잔여 처리량이 상기 수신된 패킷의 패킷 길이 이상일 경우, 상기 테이블 관리부는 상기 수신된 패킷의 패킷 길이만큼 상기 제 1 플로우 엔트리의 상기 잔여 처리량을 감소시키고,
상기 잔여 처리량이 상기 수신된 패킷의 상기 패킷 길이 미만일 경우, 상기 삭제 조건이 만족되어 상기 테이블 관리부가 상기 플로우 테이블에서 상기 제 1 플로우 엔트리를 삭제하는 부기 8에 따른 노드.
본 출원은 2011년 2월 17일에 출원된 일본 특허출원 제2011-031737호에 의거하여 우선권을 주장하고 그 개시의 전문은 원용에 의해 본원에 통합된다.
1 플로우 통신 시스템
10 노드
11 테이블 관리부
12 패킷 처리부
13 컨트롤러 통신부
15 포트
20 컨트롤러
TBL 플로우 테이블

Claims (9)

  1. 플로우 테이블(flow table)을 갖는 노드, 및
    상기 플로우 테이블에 플로우 엔트리를 설정하도록 구성된 컨트롤러를 포함하고,
    상기 플로우 테이블에 설정되는 각각의 플로우 엔트리는 매칭 조건과 매칭되는 패킷에 대해 행해지는 패킷 처리를 지정하고,
    상기 노드에 의해 수신된 패킷이 매칭되는 플로우 엔트리는 히트 엔트리(hit entry)이고,
    상기 플로우 테이블에 상기 히트 엔트리가 존재할 경우, 상기 노드는 상기 수신된 패킷에 대해 상기 히트 엔트리에 의해 지정된 상기 패킷 처리를 행하고,
    상기 플로우 테이블의 제 1 플로우 엔트리에 대한 삭제 조건이 만족될 경우, 상기 노드는 상기 플로우 테이블에서 상기 제 1 플로우 엔트리를 삭제하고,
    상기 삭제 조건은, 상기 제 1 플로우 엔트리가 설정된 후 상기 제 1 플로우 엔트리와 매칭되는 모든 수신된 패킷의 패킷 길이의 합이 소정의 삭제 단위 길이를 초과하는 것을 포함하는 플로우 통신 시스템.
  2. 제 1 항에 있어서,
    상기 플로우 테이블에 설정되는 각각의 플로우 엔트리는 잔여 처리량을 파라미터로서 더 갖고,
    새로운 플로우 엔트리를 설정할 경우, 상기 컨트롤러는 상기 잔여 처리량을 상기 소정의 삭제 단위 길이로 초기화하고,
    상기 제 1 플로우 엔트리가 상기 히트 엔트리가 될 경우, 상기 노드는 상기 제 1 플로우 엔트리의 상기 잔여 처리량을 검사하고,
    상기 잔여 처리량이 상기 수신된 패킷의 패킷 길이 이상일 경우, 상기 노드는 상기 수신된 패킷의 패킷 길이만큼 상기 제 1 플로우 엔트리의 상기 잔여 처리량을 감소시키고,
    상기 잔여 처리량이 상기 수신된 패킷의 패킷 길이 미만일 경우, 상기 삭제 조건이 만족되어 상기 노드가 상기 플로우 테이블에서 상기 제 1 플로우 엔트리를 삭제하는 플로우 통신 시스템.
  3. 제 1 항에 있어서,
    상기 히트 엔트리가 상기 플로우 테이블에 존재하지 않을 경우, 또는 상기 삭제 조건이 만족될 경우, 상기 노드는 상기 수신된 패킷을 제 1 패킷으로서 상기 컨트롤러에 포워딩하고,
    상기 제 1 패킷의 수신에 응답하여, 상기 컨트롤러는 상기 제 1 패킷을 처리하기 위한 새로운 플로우 엔트리를 상기 플로우 테이블에 설정하는 플로우 통신 시스템.
  4. 제 3 항에 있어서,
    복수의 메시지가 단일 플로우에 의해 통신되고,
    상기 컨트롤러는, 상기 복수의 메시지 각각의 메시지 길이에 의거하여 상기 소정의 삭제 단위 길이를 판정하고 상기 복수의 메시지 각각에 대해 서로 다른 플로우 엔트리를 순차적으로 설정하는 플로우 통신 시스템.
  5. 제 4 항에 있어서,
    상기 메시지 길이는 메시지 헤더에 지정되고,
    상기 메시지 헤더가 상기 제 1 패킷의 패킷 데이터의 헤드에 존재할 경우, 상기 컨트롤러는, 상기 메시지 헤더에 의거하여 상기 새로운 플로우 엔트리를 설정하고, 그 후 상기 제 1 패킷을 상기 노드에 되돌려 보내는 플로우 통신 시스템.
  6. 제 5 항에 있어서,
    상기 메시지 헤더가 상기 제 1 패킷의 패킷 데이터의 헤드에 존재하지 않을 경우에는, 상기 컨트롤러는 상기 제 1 패킷을 제 2 패킷 및 제 3 패킷으로 분할하고,
    상기 제 2 패킷은 상기 메시지 헤더 앞에 패킷 데이터로서 상기 제 1 패킷의 상기 패킷 데이터의 일부를 갖고,
    상기 제 3 패킷은 상기 메시지 헤더 뒤에 패킷 데이터로서 상기 제 1 패킷의 상기 패킷 데이터의 일부를 갖고,
    상기 컨트롤러는 상기 제 2 패킷에 적용될 상기 패킷 처리를 지시함과 함께 상기 제 2 패킷을 상기 노드에 되돌려 보내고,
    상기 컨트롤러는 상기 메시지 헤더에 의거하여 상기 새로운 플로우 엔트리를 설정하고, 그 후 상기 제 3 패킷을 상기 노드에 되돌려 보내는 플로우 통신 시스템.
  7. 제 1 항에 있어서,
    상기 노드가 오픈 플로우 스위치이고,
    상기 컨트롤러는 오픈 플로우 컨트롤러인 플로우 통신 시스템.
  8. 플로우 테이블을 관리하도록 구성된 테이블 관리부, 및
    수신된 패킷에 대해 패킷 처리를 행하도록 구성된 패킷 처리부를 포함하고,
    상기 플로우 테이블에 설정되는 각각의 플로우 엔트리는 매칭 조건과 매칭되는 패킷에 대해 행해지는 상기 패킷 처리를 지정하고,
    상기 수신된 패킷이 매칭되는 플로우 엔트리는 히트 엔트리이고,
    상기 히트 엔트리가 상기 플로우 테이블에 존재할 경우, 상기 패킷 처리부는 상기 수신된 패킷에 대해 상기 히트 엔트리에 의해 지정된 상기 패킷 처리를 행하고,
    상기 플로우 테이블의 제 1 플로우 엔트리에 대한 삭제 조건이 만족될 경우, 상기 테이블 관리부는 상기 플로우 테이블에서 상기 제 1 플로우 엔트리를 삭제하고,
    상기 삭제 조건은, 상기 제 1 플로우 엔트리가 설정된 후 상기 제 1 플로우 엔트리와 매칭되는 모든 수신된 패킷의 패킷 길이의 합이 소정의 삭제 단위 길이를 초과하는 것을 포함하는 노드.
  9. 제 8 항에 있어서,
    상기 플로우 테이블에 설정되는 각각의 플로우 엔트리는 잔여 처리량을 파라미터로서 더 갖고,
    새로운 플로우 엔트리를 상기 플로우 테이블에 설정할 경우, 상기 잔여 처리량은 상기 소정의 삭제 단위 길이로 초기화되고,
    상기 제 1 플로우 엔트리가 상기 히트 엔트리가 될 경우, 상기 테이블 관리부는 상기 제 1 플로우 엔트리의 상기 잔여 처리량을 검사하고,
    상기 잔여 처리량이 상기 수신된 패킷의 패킷 길이 이상일 경우, 상기 테이블 관리부는 상기 수신된 패킷의 패킷 길이만큼 상기 제 1 플로우 엔트리의 상기 잔여 처리량을 감소시키고,
    상기 잔여 처리량이 상기 수신된 패킷의 상기 패킷 길이 미만일 경우, 상기 삭제 조건이 만족되어 상기 테이블 관리부가 상기 플로우 테이블에서 상기 제 1 플로우 엔트리를 삭제하는 노드.
KR1020137019100A 2011-02-17 2011-08-16 플로우 통신 시스템 KR101434375B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2011-031737 2011-02-17
JP2011031737 2011-02-17
PCT/JP2011/004601 WO2012111051A1 (en) 2011-02-17 2011-08-16 Flow communication system

Publications (2)

Publication Number Publication Date
KR20130109208A true KR20130109208A (ko) 2013-10-07
KR101434375B1 KR101434375B1 (ko) 2014-08-27

Family

ID=46672017

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137019100A KR101434375B1 (ko) 2011-02-17 2011-08-16 플로우 통신 시스템

Country Status (6)

Country Link
US (1) US9083657B2 (ko)
EP (1) EP2676410B1 (ko)
JP (1) JP5884822B2 (ko)
KR (1) KR101434375B1 (ko)
CN (1) CN103370911B (ko)
WO (1) WO2012111051A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013042358A1 (en) * 2011-09-21 2013-03-28 Nec Corporation Communication apparatus, communication system, communication control method, and program
CN104205750A (zh) * 2012-03-30 2014-12-10 日本电气株式会社 控制装置、通信装置、通信方法和程序
US10097481B2 (en) 2012-06-29 2018-10-09 Juniper Networks, Inc. Methods and apparatus for providing services in distributed switch
US10129182B2 (en) * 2012-06-29 2018-11-13 Juniper Networks, Inc. Methods and apparatus for providing services in distributed switch
US9712439B2 (en) 2013-02-28 2017-07-18 Texas Instruments Incorporated Packet processing match and action unit with configurable memory allocation
WO2014142095A1 (ja) * 2013-03-12 2014-09-18 日本電気株式会社 制御装置、通信システム、同期方法及びプログラム
KR101595160B1 (ko) * 2013-07-17 2016-02-17 주식회사 케이티 소프트웨어 정의 네트워킹 네트워크에서 트랜잭션 관리 방법
CN104468415A (zh) * 2013-09-16 2015-03-25 中兴通讯股份有限公司 上报交换机类型的方法及装置
CN104734988B (zh) * 2013-12-23 2018-10-30 杭州华为数字技术有限公司 软件定义网络中路由控制的方法和开放流控制器
EP3079301B1 (en) * 2013-12-31 2018-05-02 Huawei Technologies Co., Ltd. Packet processing method, apparatus and system
CN105264944B (zh) * 2014-03-18 2019-06-21 华为技术有限公司 统计信息上报方法及装置
CN104954271B (zh) * 2014-03-26 2018-11-30 国际商业机器公司 Sdn网络中的数据包处理方法和装置
US9652419B1 (en) * 2014-08-05 2017-05-16 Google Inc. Method and system for filtering flow table counters
EP3166275A4 (en) * 2014-08-11 2017-07-19 Huawei Technologies Co., Ltd. Packet control method, switch and controller
CN105743687B (zh) * 2014-12-12 2020-01-10 中兴通讯股份有限公司 节点故障的判断方法及装置
CA2988613A1 (en) * 2015-06-30 2017-01-05 Huawei Technologies Co., Ltd. Flow entry aging method, switch, and controller
US11720424B2 (en) * 2021-03-12 2023-08-08 Salesforce, Inc. Single flow execution

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1032165A1 (en) * 1999-02-26 2000-08-30 International Business Machines Corporation Method of assembling segmented frames of data transmitted over a backbone
US7305492B2 (en) * 2001-07-06 2007-12-04 Juniper Networks, Inc. Content service aggregation system
JP4341413B2 (ja) 2003-07-11 2009-10-07 株式会社日立製作所 統計収集装置を備えたパケット転送装置および統計収集方法
US7817640B2 (en) * 2003-12-31 2010-10-19 Florida State University Fair round robin scheduler for network systems
US7606154B1 (en) * 2004-04-01 2009-10-20 Juniper Networks, Inc. Fair bandwidth allocation based on configurable service classes
JP4392294B2 (ja) 2004-06-15 2009-12-24 株式会社日立製作所 通信統計収集装置
WO2006085374A1 (ja) * 2005-02-10 2006-08-17 Fujitsu Limited 通信装置
DE202005005890U1 (de) 2005-04-13 2005-06-16 Moll System- und Funktionsmöbel GmbH Möbel mit entnehmbarem Behälter in seinem Auszug
US7817549B1 (en) * 2006-06-30 2010-10-19 Extreme Networks, Inc. Flexible flow-aging mechanism
US20080259867A1 (en) * 2007-04-22 2008-10-23 Chuanxiong Guo Method and system for scheduling packets from different flows to provide fair bandwidth sharing
JP5483149B2 (ja) * 2009-01-06 2014-05-07 日本電気株式会社 通信システム、管理計算機、スタックドスイッチ、フロー経路決定方法
CN101572670B (zh) * 2009-05-07 2011-08-10 成都市华为赛门铁克科技有限公司 一种基于流表的数据包处理方法、装置和网络系统
CN101938396B (zh) 2009-06-30 2013-04-17 华为技术有限公司 数据流控制方法及装置
JP5720668B2 (ja) * 2010-02-16 2015-05-20 日本電気株式会社 パケット転送装置、通信システム、処理規則の更新方法およびプログラム
WO2011108205A1 (ja) * 2010-03-05 2011-09-09 日本電気株式会社 通信システム、経路制御装置、パケット転送装置および経路制御方法
KR20130032314A (ko) 2010-05-28 2013-04-01 닛본 덴끼 가부시끼가이샤 통신 시스템, 노드, 제어 장치, 통신 방법 및 프로그램
CN102035748B (zh) 2010-12-31 2014-07-30 深圳市深信服电子科技有限公司 一种基于应用的流量控制方法及流量控制器

Also Published As

Publication number Publication date
CN103370911B (zh) 2016-08-10
JP5884822B2 (ja) 2016-03-15
US9083657B2 (en) 2015-07-14
KR101434375B1 (ko) 2014-08-27
JP2014506021A (ja) 2014-03-06
CN103370911A (zh) 2013-10-23
EP2676410A1 (en) 2013-12-25
US20130308645A1 (en) 2013-11-21
EP2676410B1 (en) 2016-01-06
EP2676410A4 (en) 2014-09-24
WO2012111051A1 (en) 2012-08-23

Similar Documents

Publication Publication Date Title
KR101434375B1 (ko) 플로우 통신 시스템
US10200307B2 (en) Communication system, control device, processing rule setting method, packet transmission method, and program
US11134011B2 (en) Communication system, control device, communication method, and program
JP5637148B2 (ja) スイッチネットワークシステム、コントローラ、及び制御方法
JP5967090B2 (ja) 通信システム、制御装置、ノードの制御方法およびプログラム
US9049150B2 (en) Communication system, control apparatus, node controlling method and node controlling program
US20110307628A1 (en) Communication system, node, control server, communication method and program
US10645006B2 (en) Information system, control apparatus, communication method, and program
US20130282867A1 (en) Information system, control apparatus, method of providing virtual network, and program
WO2018045620A1 (en) Methods and systems for data center load balancing
US9479323B2 (en) Communication system, forwarding node, control device, communication control method, and program
US20130246655A1 (en) Communication path control system, path control device, communication path control method, and path control program
US20140241367A1 (en) Communication system, controller, communication method, and program
US10171352B2 (en) Communication system, node, control device, communication method, and program
US20130266018A1 (en) Communication system and communication method
WO2012077262A1 (en) Server management apparatus, server management method, and program
US20130250797A1 (en) Communication control system, control device, communication control method, and communication control program
JP2010068363A (ja) パケット転送装置
US9769064B2 (en) Communication node, packet processing method and program
JP5700313B2 (ja) ネットワークシステム、フロントエンド装置、制御メッセージ送信レート低減方法
US9537764B2 (en) Communication apparatus, control apparatus, communication system, communication method, method for controlling communication apparatus, and program
US20150372900A1 (en) Communication system, control apparatus, communication control method, and program
WO2014038143A1 (en) Flow information collecting system, method and program
JP6365663B2 (ja) 通信装置、制御装置、通信システム、受信パケットの処理方法、通信装置の制御方法及びプログラム

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170720

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180801

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190730

Year of fee payment: 6