KR20130109208A - 플로우 통신 시스템 - Google Patents
플로우 통신 시스템 Download PDFInfo
- 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
Links
- 238000004891 communication Methods 0.000 title abstract description 26
- 238000012545 processing Methods 0.000 claims abstract description 84
- 238000012217 deletion Methods 0.000 claims abstract description 47
- 230000037430 deletion Effects 0.000 claims abstract description 47
- 238000000034 method Methods 0.000 claims description 18
- 230000008569 process Effects 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 5
- 230000003247 decreasing effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 238000012552 review Methods 0.000 description 2
- 102100021469 Equilibrative nucleoside transporter 1 Human genes 0.000 description 1
- 102100021468 Equilibrative nucleoside transporter 2 Human genes 0.000 description 1
- 102100021472 Equilibrative nucleoside transporter 3 Human genes 0.000 description 1
- 101000822020 Homo sapiens Equilibrative nucleoside transporter 1 Proteins 0.000 description 1
- 101000822017 Homo sapiens Equilibrative nucleoside transporter 2 Proteins 0.000 description 1
- 101000822041 Homo sapiens Equilibrative nucleoside transporter 3 Proteins 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/43—Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- 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/645—Splitting 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
본 발명은 플로우 테이블을 이용한 플로우 통신 시스템에 관한 것이다.
"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 적용예의 처리를 나타내는 도면.
도 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 플로우 테이블
10 노드
11 테이블 관리부
12 패킷 처리부
13 컨트롤러 통신부
15 포트
20 컨트롤러
TBL 플로우 테이블
Claims (9)
- 플로우 테이블(flow table)을 갖는 노드, 및
상기 플로우 테이블에 플로우 엔트리를 설정하도록 구성된 컨트롤러를 포함하고,
상기 플로우 테이블에 설정되는 각각의 플로우 엔트리는 매칭 조건과 매칭되는 패킷에 대해 행해지는 패킷 처리를 지정하고,
상기 노드에 의해 수신된 패킷이 매칭되는 플로우 엔트리는 히트 엔트리(hit entry)이고,
상기 플로우 테이블에 상기 히트 엔트리가 존재할 경우, 상기 노드는 상기 수신된 패킷에 대해 상기 히트 엔트리에 의해 지정된 상기 패킷 처리를 행하고,
상기 플로우 테이블의 제 1 플로우 엔트리에 대한 삭제 조건이 만족될 경우, 상기 노드는 상기 플로우 테이블에서 상기 제 1 플로우 엔트리를 삭제하고,
상기 삭제 조건은, 상기 제 1 플로우 엔트리가 설정된 후 상기 제 1 플로우 엔트리와 매칭되는 모든 수신된 패킷의 패킷 길이의 합이 소정의 삭제 단위 길이를 초과하는 것을 포함하는 플로우 통신 시스템. - 제 1 항에 있어서,
상기 플로우 테이블에 설정되는 각각의 플로우 엔트리는 잔여 처리량을 파라미터로서 더 갖고,
새로운 플로우 엔트리를 설정할 경우, 상기 컨트롤러는 상기 잔여 처리량을 상기 소정의 삭제 단위 길이로 초기화하고,
상기 제 1 플로우 엔트리가 상기 히트 엔트리가 될 경우, 상기 노드는 상기 제 1 플로우 엔트리의 상기 잔여 처리량을 검사하고,
상기 잔여 처리량이 상기 수신된 패킷의 패킷 길이 이상일 경우, 상기 노드는 상기 수신된 패킷의 패킷 길이만큼 상기 제 1 플로우 엔트리의 상기 잔여 처리량을 감소시키고,
상기 잔여 처리량이 상기 수신된 패킷의 패킷 길이 미만일 경우, 상기 삭제 조건이 만족되어 상기 노드가 상기 플로우 테이블에서 상기 제 1 플로우 엔트리를 삭제하는 플로우 통신 시스템. - 제 1 항에 있어서,
상기 히트 엔트리가 상기 플로우 테이블에 존재하지 않을 경우, 또는 상기 삭제 조건이 만족될 경우, 상기 노드는 상기 수신된 패킷을 제 1 패킷으로서 상기 컨트롤러에 포워딩하고,
상기 제 1 패킷의 수신에 응답하여, 상기 컨트롤러는 상기 제 1 패킷을 처리하기 위한 새로운 플로우 엔트리를 상기 플로우 테이블에 설정하는 플로우 통신 시스템. - 제 3 항에 있어서,
복수의 메시지가 단일 플로우에 의해 통신되고,
상기 컨트롤러는, 상기 복수의 메시지 각각의 메시지 길이에 의거하여 상기 소정의 삭제 단위 길이를 판정하고 상기 복수의 메시지 각각에 대해 서로 다른 플로우 엔트리를 순차적으로 설정하는 플로우 통신 시스템. - 제 4 항에 있어서,
상기 메시지 길이는 메시지 헤더에 지정되고,
상기 메시지 헤더가 상기 제 1 패킷의 패킷 데이터의 헤드에 존재할 경우, 상기 컨트롤러는, 상기 메시지 헤더에 의거하여 상기 새로운 플로우 엔트리를 설정하고, 그 후 상기 제 1 패킷을 상기 노드에 되돌려 보내는 플로우 통신 시스템. - 제 5 항에 있어서,
상기 메시지 헤더가 상기 제 1 패킷의 패킷 데이터의 헤드에 존재하지 않을 경우에는, 상기 컨트롤러는 상기 제 1 패킷을 제 2 패킷 및 제 3 패킷으로 분할하고,
상기 제 2 패킷은 상기 메시지 헤더 앞에 패킷 데이터로서 상기 제 1 패킷의 상기 패킷 데이터의 일부를 갖고,
상기 제 3 패킷은 상기 메시지 헤더 뒤에 패킷 데이터로서 상기 제 1 패킷의 상기 패킷 데이터의 일부를 갖고,
상기 컨트롤러는 상기 제 2 패킷에 적용될 상기 패킷 처리를 지시함과 함께 상기 제 2 패킷을 상기 노드에 되돌려 보내고,
상기 컨트롤러는 상기 메시지 헤더에 의거하여 상기 새로운 플로우 엔트리를 설정하고, 그 후 상기 제 3 패킷을 상기 노드에 되돌려 보내는 플로우 통신 시스템. - 제 1 항에 있어서,
상기 노드가 오픈 플로우 스위치이고,
상기 컨트롤러는 오픈 플로우 컨트롤러인 플로우 통신 시스템. - 플로우 테이블을 관리하도록 구성된 테이블 관리부, 및
수신된 패킷에 대해 패킷 처리를 행하도록 구성된 패킷 처리부를 포함하고,
상기 플로우 테이블에 설정되는 각각의 플로우 엔트리는 매칭 조건과 매칭되는 패킷에 대해 행해지는 상기 패킷 처리를 지정하고,
상기 수신된 패킷이 매칭되는 플로우 엔트리는 히트 엔트리이고,
상기 히트 엔트리가 상기 플로우 테이블에 존재할 경우, 상기 패킷 처리부는 상기 수신된 패킷에 대해 상기 히트 엔트리에 의해 지정된 상기 패킷 처리를 행하고,
상기 플로우 테이블의 제 1 플로우 엔트리에 대한 삭제 조건이 만족될 경우, 상기 테이블 관리부는 상기 플로우 테이블에서 상기 제 1 플로우 엔트리를 삭제하고,
상기 삭제 조건은, 상기 제 1 플로우 엔트리가 설정된 후 상기 제 1 플로우 엔트리와 매칭되는 모든 수신된 패킷의 패킷 길이의 합이 소정의 삭제 단위 길이를 초과하는 것을 포함하는 노드. - 제 8 항에 있어서,
상기 플로우 테이블에 설정되는 각각의 플로우 엔트리는 잔여 처리량을 파라미터로서 더 갖고,
새로운 플로우 엔트리를 상기 플로우 테이블에 설정할 경우, 상기 잔여 처리량은 상기 소정의 삭제 단위 길이로 초기화되고,
상기 제 1 플로우 엔트리가 상기 히트 엔트리가 될 경우, 상기 테이블 관리부는 상기 제 1 플로우 엔트리의 상기 잔여 처리량을 검사하고,
상기 잔여 처리량이 상기 수신된 패킷의 패킷 길이 이상일 경우, 상기 테이블 관리부는 상기 수신된 패킷의 패킷 길이만큼 상기 제 1 플로우 엔트리의 상기 잔여 처리량을 감소시키고,
상기 잔여 처리량이 상기 수신된 패킷의 상기 패킷 길이 미만일 경우, 상기 삭제 조건이 만족되어 상기 테이블 관리부가 상기 플로우 테이블에서 상기 제 1 플로우 엔트리를 삭제하는 노드.
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)
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)
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 | 深圳市深信服电子科技有限公司 | 一种基于应用的流量控制方法及流量控制器 |
-
2011
- 2011-08-16 JP JP2013516875A patent/JP5884822B2/ja active Active
- 2011-08-16 KR KR1020137019100A patent/KR101434375B1/ko active IP Right Grant
- 2011-08-16 US US13/982,480 patent/US9083657B2/en active Active
- 2011-08-16 CN CN201180067803.3A patent/CN103370911B/zh active Active
- 2011-08-16 EP EP11858952.2A patent/EP2676410B1/en active Active
- 2011-08-16 WO PCT/JP2011/004601 patent/WO2012111051A1/en active Application Filing
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 |