KR20160025323A - 네트워크 장치 및 네트워크 장치에서의 패킷 처리 방법 - Google Patents

네트워크 장치 및 네트워크 장치에서의 패킷 처리 방법 Download PDF

Info

Publication number
KR20160025323A
KR20160025323A KR1020140112433A KR20140112433A KR20160025323A KR 20160025323 A KR20160025323 A KR 20160025323A KR 1020140112433 A KR1020140112433 A KR 1020140112433A KR 20140112433 A KR20140112433 A KR 20140112433A KR 20160025323 A KR20160025323 A KR 20160025323A
Authority
KR
South Korea
Prior art keywords
flow
packet
size
network device
pending
Prior art date
Application number
KR1020140112433A
Other languages
English (en)
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 한국전자통신연구원
Priority to KR1020140112433A priority Critical patent/KR20160025323A/ko
Publication of KR20160025323A publication Critical patent/KR20160025323A/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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2483Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
    • 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/29Flow control; Congestion control using a combination of thresholds
    • 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/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 플로우별로 패킷을 처리하는 네트워크 장치 및 상기 장치에서의 패킷 처리에 관한 것이다.
본 발명에 따른 네트워크 장치는, 플로우별 처리 동작을 저장하는 플로우 테이블; 플로우별 크기를 저장하는 펜딩 테이블; 패킷이 수신되면, 상기 패킷에 매칭되는 플로우 엔트리를 상기 플로우 테이블로부터 검색하여 상기 패킷에 대한 처리 동작을 결정하고 상기 플로우 테이블에 상기 매칭되는 플로우가 존재하지 않는 경우에는 상기 펜딩 테이블에 저장된 상기 패킷에 매칭되는 플로우의 크기에 근거하여 상기 플로우에 대한 플로우 설정 여부를 판단하는 패킷 처리 모듈을 포함할 수 있다.

Description

네트워크 장치 및 네트워크 장치에서의 패킷 처리 방법{Network device and Method for processing a packet in the same device}
본 발명은 네트워크 장치 및 상기 네트워크 장치에서의 패킷 처리에 관한 것으로서, 구체적으로는 플로우별로 패킷을 처리할 수 있는 네트워크 장치 및 상기 장치에서의 패킷 처리에 관한 것이다.
최근 SDN(Software Defined Networking)이 대두되면서 플로우별로 패킷을 처리하는 방법에 대한 연구가 많이 이루어지고 있다. 플로우별로 패킷을 처리하기 위해, 네트워크 장치는 각 플로우 별 처리 동작(action) 정보 및 통계 정보를 가져야 한다. 네트워크 장치가 알지 못하는 플로우에 속한 패킷이 유입될 경우에는 제어기(controller)에 이를 전달하고, 제어기가 플로우를 어떻게 처리할지 판단하여 플로우 처리 정보를 네트워크 장치에 전달해준다.
이러한 구조에서, 두 가지의 확장성(scalability) 이슈가 있다. 첫째, 네트워크 장치가 많은 수의 플로우를 수용하기 위해 큰 크기의 플로우 테이블을 가져야 한다. 현재 SDN에서의 플로우 테이블은 O(1)의 빠른 검색시간을 가지는 TCAM(Ternary Content Addressable Memory)으로 많이 구현되는데 비싼 가격으로 인해 수용 가능한 플로우 개수가 제한적이다. TCAM을 사용하지 않고 RAM(Random Access Memory)을 사용하여 플로우 테이블을 구현할 경우 검색, 삽입, 삭제 등의 시간이 테이블의 항목 수에 의존적이 되어 성능의 저하를 가져올 수 된다.
둘째, 플로우 테이블에 매칭되지 않는 새로운 플로우가 유입될 때 제어기에 플로우 설정(flow setup)을 요청하게 되는데, 새로 유입되는 플로우 개수가 많으면 제어기에 큰 부하를 주게 된다. 일반적으로, 하나의 제어기가 여러 개의 네트워크 장치를 제어하게 되는데, 많은 플로우가 동시에 유입될 경우 이는 제어기의 확장성에 큰 문제를 야기한다.
따라서, 본원 발명은 큰 플로우(elephant flows)만 선택적으로 플로우 테이블을 통해 처리함으로써 플로우 테이블의 크기를 줄이고 플로우 설정 부하도 감소시킬 수 있는 해결책을 제안하고자 한다.
전술한 목적을 달성하기 위해, 본원 발명은 플로우 크기를 모니터링하여 임계치를 초과하는 크기의 플로우에 대해 플로우 설정을 요청하고자 한다.
본 발명의 일실시예에 따른 네트워크 장치는, 플로우별 처리 동작을 저장하는 플로우 테이블; 플로우별 크기를 저장하는 펜딩 테이블; 패킷이 수신되면, 상기 패킷에 매칭되는 플로우 엔트리를 상기 플로우 테이블로부터 검색하여 상기 패킷에 대한 처리 동작을 결정하고 상기 플로우 테이블에 상기 매칭되는 플로우가 존재하지 않는 경우에는 상기 펜딩 테이블에 저장된 상기 패킷에 매칭되는 플로우의 크기에 근거하여 상기 플로우에 대한 플로우 설정 여부를 판단하는 패킷 처리 모듈을 포함할 수 있다.
일실시예에서, 펜딩 테이블은 플로우 식별자 및 플로우 크기 필드를 포함함으로써 플로우별 크기를 관리할 수 있다. .
일실시예에서, 상기 패킷 처리 모듈은 상기 패킷에 매칭되는 플로우의 크기와 선정된 플로우 임계치를 비교하여 상기 플로우의 크기가 상기 플로우 임계치를 초과하는 경우에 제어기에 플로우 설정을 요청할 수 있다.
한편, 상기 플로우의 크기가 상기 플로우 임계치를 초과하지 않는 경우에는 상기 펜딩 테이블내 상기 플로우 크기를 증가시킨다.
본 발명의 일실시예에 따른 네트워크 장치는 플로우별 처리 동작을 저장하는 플로우 테이블과, 플로우별 크기를 저장하는 펜딩 테이블과, 패킷을 처리하기 위한 프로그램이 저장된 메모리; 및 상기 메모리에 결합되어 상기 프로그램을 실행하도록 구성된 프로세서를 포함하되, 상기 프로그램은 상기 프로세서에 의해 실행될 때 상기 장치로 하여금 수신되는 패킷에 매칭되는 플로우 엔트리를 상기 플로우 테이블로부터 검색하여 상기 패킷에 대한 처리 동작을 결정하고 상기 플로우 테이블에 상기 매칭되는 플로우가 존재하지 않는 경우에는 상기 펜딩 테이블에 저장된 상기 패킷에 매칭되는 플로우의 크기에 근거하여 상기 플로우에 대한 플로우 설정 여부를 판단하도록 하는 명령어들을 포함할 수 있다.
본 발명의 일실시예에 따라 네트워크 장치에서 패킷을 처리하는 방법이 제공된다. 상기 방법은 패킷을 수신하는 단계; 상기 수신된 패킷에 매칭되는 플로우를 플로우 테이블에서 검색하는 단계; 상기 패킷에 매칭되는 플로우가 상기 플로우 테이블에 존재하지 않는 경우에는 펜딩 테이블 - 상기 펜딩 테이블은 플로우별 크기를 저장함-에서 상기 플로우를 검색하는 단계; 및 상기 패킷에 매칭되는 플로우가 상기 펜딩 테이블에 존재하는 경우에 상기 펜딩 테이블에 저장된 상기 패킷에 매칭되는 플로우의 크기에 근거하여 상기 플로우에 대한 플로우 설정 여부를 판단하는 단계를 포함할 수 있다.
일실시예에서, 상기 패킷에 매칭되는 플로우의 크기가 선정된 플로우 임계치를 초과하는 경우에 제어기에 플로우 설정을 요청할 수 있다.
일실시예에서, 상기 플로우 임계치는 네트워크 장치 또는 제어기에 의해 동적으로 설정될 수 있다.
본 발명의 일실시예에 따르면, 플로우가 특정 크기를 초과하는 경우에 플로우 설정을 진행하므로 과도한 플로우 설정으로 인한 제어기의 부하를 경감시킬 수 있으며 플로우 엔트리 개수를 줄여 플로우 테이블이 차지하는 공간을 절약하거나 플로우 테이블 검색 시간을 줄일 수 있다.
도 1은 본 발명이 적용되는 SDN 기반 네트워크 구조를 개략적으로 도시한다.
도 2는 본 발명의 일실시예에 따른 네트워크 장치의 구성을 도시한 블록도이다.
도 3은 본 발명의 일실시예에 따른 네트워크 장치에서의 패킷 처리 방법을 도시한 흐름도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
또한, 본 명세서 및 청구항에서 사용되는 단수 표현은, 달리 언급하지 않는 한 일반적으로 "하나 이상"을 의미하는 것으로 해석되어야 한다.
또한, 본 명세서에서 사용되는 용어들 중 "모듈", "부", "인터페이스"등은 일반적으로 컴퓨터 관련 객체를 의미하며, 예를 들어, 하드웨어, 소프트웨어 및 이들의 조합을 의미할 수 있다.
또한, 본 명세서에서 '플로우'와 '플로우 엔트리'는 혼용되어 사용된다.
이하, 첨부한 도면들을 참조하여, 본 발명의 실시예들을 보다 상세하게 설명하고자 한다.
도 1은 본 발명이 적용되는 SDN 기반 네트워크 구조를 개략적으로 도시한다.
도시된 바와 같이, SDN 기반 네트워크는 제어기(110), 채널(120), 네트워크 장치(130) 및 사용자 단말(140a 내지 140c)를 포함한다. 상기 도면은 설명의 편의상 1개의 제어기 및 1개의 네트워크 장치만을 도시하였으나, 본 발명이 이에 국한되지 않으며, SDN 기반 네트워크는 복수의 제어기 및 네트워크 장치로 이루어짐은 당업자에게 자명하다.
제어기(110)는 채널(120, 예를 들면, 오픈플로우 프로토콜 채널)을 통해 네트워크 장치(130)와 통신할 수 있으며, 네트워크 장치(130)를 관리한다. 일 예로, 제어기(110)는 패킷의 포워딩 경로를 정의하는 플로우 정보를 네트워크 장치(130)에 제공할 수 있다.
네트워크 장치(130)는 제어기(110) 및 사용자 단말(140a 내지 140c)과 통신할 수 있는 임의의 통신 장치로서, 예를 들어, 라우터, 스위치, 브리지 또는 이와 유사한 기능을 수행하는 장치일 수 있다. 네트워크 장치(130)는 사용자 단말(140a 내지 140c)로부터 패킷이 수신되면 제어기(110)로부터 제공받은 플로우 정보에 따라 해당 패킷을 처리할 수 있다(예를 들어, 다른 사용자 단말에 전달할 수 있다).
사용자 단말(140a 내지 140c)은 네트워크 장치(130) 및 다른 사용자 단말과 통신가능한 임의의 통신 장치로서, 예를 들어, 데스크톱 컴퓨터, 노트북 컴퓨터, 모바일폰, 태블릿 컴퓨터 또는 이와 유사한 장치일 수 있다.
도 2는 본 발명의 일실시예에 따른 네트워크 장치의 구성을 도시한 블록도이다.
도시된 바와 같이, 네트워크 장치(200)는 프로세서(210) 및 메모리(220)와 패킷 송수신을 위한 복수의 인입 포트(ingress ports, 230a 내지 230c) 및 복수의 출력 포트(egress ports, 240a 내지 240c)를 포함할 수 있다.
프로세서(210)는 중앙처리유닛(CPU)으로 지칭될 수 있으며, 인입 포트(230a 내지 230c), 출력포트(240a 내지 240c) 및 메모리(220)와 통신하고, 메모리(220)에 저장된 프로그램 명령어를 실행시킬 수 있다. 프로세서(210)는 하나 이상의 CPU 칩, 코어, FPGA(field-programmable gate array), ASIC(application specific integrated circuit) 및/또는 DSP(digital signal processor) 등으로 구현가능하다.
메모리(220)는, 다양한 유형의 비휘발성/휘발성 저장 매체로서, 예를 들면, ROM, RAM, TCAM, SRAM 또는 이들의 조합으로 이루어질 수 있다.
일실시예에서, 메모리(220)에 플로우 테이블(221), 펜딩 테이블(pending table, 222) 및 패킷 처리 모듈(223)이 저장되어 있다.
플로우 테이블(221)은 플로우별 처리 동작을 정의하는 테이블로서, 플로우를 식별하는 플로우 식별자(일 예에서, 패킷 헤더 필드들의 조합), 통계정보 및 동작 정보를 저장할 수 있다.
펜딩 테이블(222)은 플로우별 크기 정보를 저장하기 위한 테이블로서, 플로우 식별자별로 플로우 크기를 저장할 수 있다. 일 예에서, 플로우 식별자는 패킷 헤더 필드들의 조합으로 나타낼 수 있는데, 예를 들어, 패킷 헤더 5-tuple 조합, 즉, 패킷 헤더의 출발지 IP 주소, 목적지 IP 주소, 프로토콜, 출발지 포트 번호, 목적지 포트 번호로 나타낼 수 있다. 플로우 크기는 패킷의 개수 또는 패킷 바이트의 합으로 나타낼 수 있다.
일실시예에서, 펜딩 테이블(222)은 해쉬(hash) 테이블로 구현될 수 있다. 펜딩 테이블(222)은 해쉬 충돌(hash collision)을 해결하기 위한 추가적인 데이터 구조를 가질 수 있다. 대안적으로, 펜딩 테이블(222)은 해쉬 충돌 해결(hash collision resolve) 없이 정확성을 희생하면서 빠른 속도와 적은 저장 공간을 활용해 운용될 수도 있다.
패킷 처리 모듈(223)은 프로세서(210)에 의해 실행가능한 프로그램 명령어들로 구현될 수 있다. 일실시예에서, 패킷 처리 모듈(223)은, 패킷이 수신되면, 패킷에 매칭되는 플로우 엔트리를 플로우 테이블(221)로부터 검색하여 패킷에 대한 처리 동작을 결정하고, 플로우 테이블(221)에 매칭되는 플로우가 존재하지 않는 경우에는 펜딩 테이블(222)에 저장된 상기 패킷에 매칭되는 플로우의 크기에 따라 상기 플로우에 대한 플로우 설정 여부를 판단한다.
일실시예에서, 패킷 처리 모듈(223)은 플로우 테이블(221)내에 패킷에 매칭되는 플로우 엔트리 검색에 실패한 경우에, 펜딩 테이블(222)에서 해당 패킷에 매칭되는 플로우를 검색할 수 있다. 펜딩 테이블(222)에 매칭되는 플로우가 존재하는 경우에, 패킷 처리 모듈(223)은 플로우의 크기와 플로우 임계치를 비교함으로써 제어기에 플로우 설정을 요청할지 여부를 판단할 수 있다. 구체적으로, 패킷 처리 모듈(223)은 플로우의 크기가 임계치를 넘는 경우에 해당 패킷을 제어기에 전달하여 플로우 설정(flow setup)을 요청할 수 있다. 이에 부가하여, 패킷 처리 모듈(223)은 펜딩 테이블의 해당 플로우 크기 값을 0으로 초기화한다.
반면, 플로우의 크기가 임계치를 넘지 않으면, 패킷 처리 모듈(223)은 제어기에 플로우 설정을 요청하지 않고 펜딩 테이블(222)내 해당 플로우의 크기만 업데이트한다.
도 3은 본 발명의 일실시예에 따른 네트워크 장치에서의 패킷 처리 방법을 도시한 흐름도이다.
단계(S310)에서, 네트워크 장치가 패킷을 수신한다.
단계(S320)에서, 네트워크 장치는 패킷에 매칭되는 플로우를 플로우 테이블에서 검색한다.
단계(S330)에서, 패킷에 매칭되는 플로우 엔트리가 플로우 테이블에 존재하는지 판단하고, 존재하는 경우에는 해당 플로우 엔트리에 정의된 동작 정보에 따라 해당 패킷을 처리한다(S340).
반면에, 패킷에 매칭되는 플로우가 플로우 테이블에 존재하지 않는 경우에는 펜딩 테이블에서 해당 플로우를 검색한다(S350).
단계(S360)에서, 패킷에 매칭되는 플로우 엔트리가 펜딩 테이블에 존재하는지 판단하고, 존재하는 경우에는 펜딩 테이블에 저장된 해당 플로우 크기가 플로우 임계치를 초과하는지 판단한다(S370).
여기서, 플로우 임계치는 네트워크 장치 또는 제어기에 의해 동적으로 설정될 수 있다.
일실시예에서, 네트워크 장치는 작은 플로우 임계치를 이용하여 플로우를 처리하다가 플로우 테이블내 빈 공간이 적어지면 플로우 임계치를 증가시켜 플로우 테이블의 공간 부족에 대비할 수 있다.
다른 실시예에서, 제어기가 네트워크 장치로부터 수신되는 플로우 설정 메시지의 수(또는 양)을 관찰하고 있다가 플로우 설정 메시지의 양이 많아져 부하가 증가되면 네트워크 장치에게 플로우 임계치를 증가시킬 것을 요청함으로써, 결과적으로 플로우 설정 메시지의 양을 줄이도록 하는 효과를 가져올 수 있다.
플로우 크기가 플로우 임계치를 초과하는 경우에, 네트워크 장치는 제어기에 해당 패킷을 포함하는 플로우 설정 메시지를 전송한다. 이에 부가하여, 펜딩 테이블내 해당 플로우 크기를 초기화한다. 플로우의 크기는 플로우에 해당하는 패킷의 개수 혹은 패킷 바이트의 합으로 정의될 수 있다.
반면에, 플로우 크기가 플로우 임계치를 초과하지 않는 경우에, 네트워크 장치는 플로우 설정을 요청할 만한 크기의 플로우가 아닌 것으로 판단하여 플로우 설정을 요청하지 않는다. 대신에, 펜딩 테이블내 해당 플로우의 크기를 업데이트한(즉, 패킷 크기 혹은 패킷 개수만큼 증가시킨) 후에, 선정된 방식으로 패킷을 처리할 것이다(S390). 플로우가 미설정된 패킷을 처리하는 방식은 미리 정해진 경로(default route)로 전송하거나 자체적으로 경로 결정을 위한 추가적인 기능을 수행하는 등 구현에 따라 다양할 수 있다.
한편, 단계(S360)에서 해당 패킷에 매칭되는 플로우가 펜딩 테이블에도 존재하지 않는 것으로 판단된 경우에, 네트워크 장치는 상기 패킷의 식별정보 및 크기를 신규 플로우로서 상기 펜딩 테이블에 등록함으로써 펜딩 테이블을 갱신하고, 선정된 방식으로 패킷을 처리할 것이다(S390).
전술한 실시예들은 SDN 구조하의 네트워크 장치에 관련하여 설명되었으나, 본 발명이 반드시 이에 국한되는 것은 아니며, 플로우별로 패킷을 처리하는 다양한 유형의 네트워크 장치에 적용가능함은 본 기술분야의 당업자에게 충분히 이해될 수 있다.
전술한 본 발명의 실시예들은 컴퓨터로 구현되는 방법 또는 컴퓨터 실행가능 명령어들이 저장된 비휘발성 컴퓨터 기록매체로 구현될 수 있다. 상기 명령어들은 프로세서에 의해 실행될 때 본 발명의 적어도 일실시예에 따른 방법을 수행할 수 있다.
컴퓨터 판독 가능 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media) 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 또한 상술한 매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.이제까지 본 발명에 대하여 그 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

Claims (15)

  1. 네트워크 장치로서,
    플로우별 처리 동작을 저장하는 플로우 테이블;
    플로우별 크기를 저장하는 펜딩 테이블;
    패킷이 수신되면, 상기 패킷에 매칭되는 플로우 엔트리를 상기 플로우 테이블로부터 검색하여 상기 패킷에 대한 처리 동작을 결정하고 상기 플로우 테이블에 상기 매칭되는 플로우가 존재하지 않는 경우에는 상기 펜딩 테이블에 저장된 상기 패킷에 매칭되는 플로우의 크기에 근거하여 상기 플로우에 대한 플로우 설정 여부를 판단하는 패킷 처리 모듈
    을 포함하는 네트워크 장치.
  2. 제1항에 있어서, 상기 펜딩 테이블은 플로우 식별자 및 플로우 크기 필드를 포함하는 네트워크 장치.
  3. 제1항에 있어서, 상기 패킷 처리 모듈은 상기 패킷에 매칭되는 플로우의 크기와 선정된 플로우 임계치를 비교하여 상기 플로우의 크기가 상기 플로우 임계치를 초과하는 경우에 제어기에 플로우 설정을 요청하는 네트워크 장치.
  4. 제3항에 있어서, 상기 패킷 처리 모듈은 상기 플로우의 크기가 상기 플로우 임계치를 초과하지 않는 경우에는 상기 펜딩 테이블내 상기 플로우 크기를 증가시키는 네트워크 장치.
  5. 제3항에 있어서, 상기 네트워크 장치는 상기 플로우 테이블의 빈 공간 크기에 따라 상기 플로우 임계치를 동적으로 설정하는 네트워크 장치.
  6. 제3항에 있어서, 상기 플로우 임계치는 제어기에 의해 동적으로 설정되는 네트워크 장치.
  7. 네트워크 장치로서,
    플로우별 처리 동작을 저장하는 플로우 테이블과, 플로우별 크기를 저장하는 펜딩 테이블과, 패킷을 처리하기 위한 프로그램이 저장된 메모리; 및
    상기 메모리에 결합되어 상기 프로그램을 실행하도록 구성된 프로세서를 포함하되, 상기 프로그램은 상기 프로세서에 의해 실행될 때 상기 장치로 하여금
    수신되는 패킷에 매칭되는 플로우 엔트리를 상기 플로우 테이블로부터 검색하여 상기 패킷에 대한 처리 동작을 결정하고 상기 플로우 테이블에 상기 매칭되는 플로우가 존재하지 않는 경우에는 상기 펜딩 테이블에 저장된 상기 패킷에 매칭되는 플로우의 크기에 근거하여 상기 플로우에 대한 플로우 설정 여부를 판단하도록 하는 명령어들을 포함하는 네트워크 장치.
  8. 제7항에 있어서, 상기 명령어들은 상기 패킷에 매칭되는 플로우의 크기와 선정된 플로우 임계치를 비교하여 상기 플로우의 크기가 상기 플로우 임계치를 초과하는 경우에 제어기에 플로우 설정을 요청하는 명령어들을 포함하는 네트워크 장치.
  9. 제7항에 있어서, 상기 상기 명령어들은 상기 플로우의 크기가 상기 플로우 임계치를 초과하지 않는 경우에 상기 펜딩 테이블내 상기 플로우 크기를 증가시키는 명령어들을 포함하는 네트워크 장치.
  10. 네트워크 장치에서 패킷을 처리하는 방법에 있어서, 상기 방법은
    패킷을 수신하는 단계;
    상기 수신된 패킷에 매칭되는 플로우를 플로우 테이블에서 검색하는 단계;
    상기 패킷에 매칭되는 플로우가 상기 플로우 테이블에 존재하지 않는 경우에는 펜딩 테이블 -상기 펜딩 테이블은 플로우별 크기를 저장함-에서 상기 플로우를 검색하는 단계; 및
    상기 패킷에 매칭되는 플로우가 상기 펜딩 테이블에 존재하는 경우에 상기 펜딩 테이블에 저장된 상기 패킷에 매칭되는 플로우의 크기에 근거하여 상기 플로우에 대한 플로우 설정 여부를 판단하는 단계
    를 포함하는 네트워크 장치에서의 패킷 처리 방법.
  11. 제10항에 있어서, 상기 패킷에 매칭되는 플로우의 크기가 선정된 플로우 임계치를 초과하는 경우에 제어기에 플로우 설정을 요청하는 단계를 더 포함하는 네트워크 장치에서의 패킷 처리 방법.
  12. 제11항에 있어서, 상기 플로우 설정이 요청된 플로우의 크기를 초기화하는 단계를 더 포함하는 네트워크 장치에서의 패킷 처리 방법.
  13. 제10항에 있어서, 상기 패킷에 매칭되는 플로우의 크기가 상기 플로우 임계치를 초과하지 않는 경우에 상기 펜딩 테이블내 상기 플로우 크기를 증가시키는 단계를 더 포함하는 네트워크 장치에서의 패킷 처리 방법.
  14. 제10항에 있어서, 상기 패킷에 매칭되는 플로우가 상기 펜딩 테이블에 존재하지 않는 경우에 상기 패킷의 식별정보 및 크기를 신규 플로우로서 상기 펜딩 테이블에 등록하는 단계를 더 포함하는 네트워크 장치에서의 패킷 처리 방법.
  15. 제10항에 있어서, 상기 플로우 임계치는 네트워크 장치 또는 제어기에 의해 동적으로 설정되는 네트워크 장치에서의 패킷 처리 방법.
KR1020140112433A 2014-08-27 2014-08-27 네트워크 장치 및 네트워크 장치에서의 패킷 처리 방법 KR20160025323A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140112433A KR20160025323A (ko) 2014-08-27 2014-08-27 네트워크 장치 및 네트워크 장치에서의 패킷 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140112433A KR20160025323A (ko) 2014-08-27 2014-08-27 네트워크 장치 및 네트워크 장치에서의 패킷 처리 방법

Publications (1)

Publication Number Publication Date
KR20160025323A true KR20160025323A (ko) 2016-03-08

Family

ID=55534346

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140112433A KR20160025323A (ko) 2014-08-27 2014-08-27 네트워크 장치 및 네트워크 장치에서의 패킷 처리 방법

Country Status (1)

Country Link
KR (1) KR20160025323A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789733A (zh) * 2016-12-01 2017-05-31 北京锐安科技有限公司 一种提高大规模网络流表查找效率的装置及方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106789733A (zh) * 2016-12-01 2017-05-31 北京锐安科技有限公司 一种提高大规模网络流表查找效率的装置及方法
CN106789733B (zh) * 2016-12-01 2019-12-20 北京锐安科技有限公司 一种提高大规模网络流表查找效率的装置及方法

Similar Documents

Publication Publication Date Title
US10732851B2 (en) Hybrid memory device for lookup operations
US9477604B2 (en) Caching of look-up rules based on flow heuristics to enable high speed look-up
JP4742167B2 (ja) Camのキーサイズを超えるテーブルインデックスを用いてテーブルルックアップ動作を実行する方法
US10003533B2 (en) SDN packet forwarding
US10158656B2 (en) Method and apparatus for preventing insertion of malicious content at a named data network router
US9794263B2 (en) Technologies for access control
US10313240B2 (en) Technologies for efficient network flow classification with vector bloom filters
US9065780B2 (en) Low latency networking device using header prediction
US20160337247A1 (en) Network controller security monitor
US20120275466A1 (en) System and method for classifying packets
AU2015261712A1 (en) Ccn routing using hardware-assisted hash tables
US9590922B2 (en) Programmable and high performance switch for data center networks
CN105591914B (zh) 一种openflow流表的查表方法和装置
US9960995B2 (en) Packet forwarding using a physical unit and a virtual forwarding unit
US20140095782A1 (en) Method and system for using range bitmaps in tcam access
US11646976B2 (en) Establishment of fast forwarding table
WO2015131720A1 (zh) 报文处理方法及装置
US11606295B2 (en) Search apparatus and method
CN107977160B (zh) 交换机存取资料的方法
KR20160025323A (ko) 네트워크 장치 및 네트워크 장치에서의 패킷 처리 방법
US8806059B1 (en) Rule tree for network device
KR20130093707A (ko) 패킷 분류 장치 및 그것의 패킷 분류 방법
US10205658B1 (en) Reducing size of policy databases using bidirectional rules
US20160065457A1 (en) Flow inheritance
US11924102B2 (en) Minimizing deviation from average latency of table lookups

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination