KR100994127B1 - 이더넷 스위치의 성능 향상을 위한 패킷 처리 방법 - Google Patents

이더넷 스위치의 성능 향상을 위한 패킷 처리 방법 Download PDF

Info

Publication number
KR100994127B1
KR100994127B1 KR1020080084752A KR20080084752A KR100994127B1 KR 100994127 B1 KR100994127 B1 KR 100994127B1 KR 1020080084752 A KR1020080084752 A KR 1020080084752A KR 20080084752 A KR20080084752 A KR 20080084752A KR 100994127 B1 KR100994127 B1 KR 100994127B1
Authority
KR
South Korea
Prior art keywords
port
vlan
packet
information
metadata
Prior art date
Application number
KR1020080084752A
Other languages
English (en)
Other versions
KR20100025972A (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 한국전자통신연구원
Priority to KR1020080084752A priority Critical patent/KR100994127B1/ko
Priority to US12/423,216 priority patent/US20100054251A1/en
Publication of KR20100025972A publication Critical patent/KR20100025972A/ko
Application granted granted Critical
Publication of KR100994127B1 publication Critical patent/KR100994127B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • 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/56Routing software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/354Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • H04L12/4645Details on frame tagging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches

Landscapes

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

Abstract

이더넷 스위치의 성능 향상을 위한 패킷 처리 방법이 개시된다. 디캡 마이크로 블록과 브릿지 마이크로 블록에서 VLAN 테이블을 검색하던 루틴을 코어 컴포넌트에서 테이블 생성시 시행하도록 하여 메모리 액세스 횟수를 줄이고, 입력 포트에 대한 VLAN 포트 상태 정보와 출력 포트에 대한 VLAN 포트의 태깅 정보를 메타 데이터에 저장하여 다음 마이크로 블록으로 전달하여 중복으로 메모리 액세스하는 루틴을 제거함으로써 메모리 액세스 지연 시간을 단축한다.

Description

이더넷 스위치의 성능 향상을 위한 패킷 처리 방법{Packet processing method for improving Ethernet switch performance}
본 발명은 이더넷 스위치에 관한 것으로서, 보다 상세하게는 이더넷 스위치의 성능 향상을 위한 패킷 처리 방법에 관한 것이다.
본 발명은 지식경제부 및 정보통신연구진흥원의 IT신성장동력핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2006-S-061-03, 과제명: IPv6 기반의 QoS 서비스 및 단말 이동성 지원 라우터 기술개발].
종래 패킷을 처리하는 입구 및 출구 부분의 마이크로 블록들은 각각 기능 수행에 필요한 정보를 얻기 위하여 SRAM(Static Random Access Memory)에 저장된 각종 룩업 테이블(Lookup table)에 액세스하여야 하며, 이 경우 SRAM에 액세스하는데 소요되는 총 시간은 이더넷 스위치의 성능에 큰 영향을 미친다. 즉, 메모리 액세스 횟수가 많을수록 이더넷 스위치의 패킷 처리 속도가 감소한다.
본 발명이 이루고자 하는 기술적 과제는, 메모리 액세스 횟수를 줄이고 액세스 지연 시간을 단축하여 이더넷 스위치의 성능을 향상시킬 수 있는 패킷처리방법 및 그 이더넷 스위치를 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 패킷처리방법의 일 실시예는, 이더넷 스위치에서 패킷을 타입별로 구분하여 VLAN 매핑 기능을 수행하는 마이크로 블록에서의 패킷 처리 방법에 있어서, 패킷의 VLAN 번호에 해당하는 VLAN 테이블로부터 상기 VLAN 매핑 기능 수행을 위해 필요한 정보를 읽어오는 단계; 상기 VLAN 테이블로부터 VLAN 포트 테이블의 포트 상태 정보를 읽어오는 단계; 및 상기 패킷의 타입에 따른 메타데이터의 설정시 상기 입력 포트 상태 정보를 상기 메타데이터에 포함시키는 단계;를 포함한다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 패킷처리방법의 다른 실시예는, 이더넷 스위치에서 패킷의 목적지 주소를 이용하여 출력 포트를 결정하는 기능을 수행하는 마이크로 블록에서의 패킷 처리 방법에 있어서, 패킷의 목적지 주소에 대한 해쉬 테이블을 이용하여 포워딩 데이터베이스 테이블로부터 상기 출력 포트 결정 기능에 필요한 제1 정보를 얻는 단계; 메타데이터로부터 포트 상태 정보를 얻는 단계; 상기 포트 상태가 포트 포워딩이면, 상기 제1 정보를 기초로 VLAN 포트 테이블로부터 상기 출력 포트 결정 기능에 필요한 제2 정보를 얻는 단계; 및 상기 VLAN 포트 테이블로부터 읽은 포트 상태가 포트 포워딩이면, 상기 포워딩 데이터베이스 테이블로부터 얻은 출력 포트 정보와 상기 VLAN 포트 테이블로부터 얻은 태깅 정보를 메타데이터에 설정하는 단계;를 포함한다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 패킷처리방법의 다른 실시예는, 이더넷 스위치에서 패킷의 출력 포트의 태깅 정보에 따라 VLAN 태그를 처리하는 기능을 수행하는 마이크로 블록에서의 패킷 처리 방법에 있어서, 메타데이터로부터 출력포트 정보 및 태깅 정보를 얻는 단계; 상기 출력포트에 해당하는 포트 테이블로부터 최대 전송 패킷 크기(MTU) 값을 읽는 단계; 상기 패킷의 타입에 따라 태그 삽입, 갱신 또는 제거를 수행하는 단계; 및 패킷 사이즈의 크기가 상기 MTU 보다 작으면 상기 패킷의 변경된 헤더를 메모리에 쓰는 단계;를 포함한다.
본 발명에 따르면, 종래의 디캡 마이크로 블록과 브릿지 마이크로 블록에서 VLAN 테이블을 검색하던 루틴을 코어 컴포넌트에서 테이블 생성시 시행하도록 함으로써 메모리 액세스 횟수를 줄인다. 또한 입력 포트에 대한 VLAN 포트 상태 정보와 출력 포트에 대한 VLAN 포트의 태깅 정보를 메타데이터에 저장하여 다음 마이크로 블록으로 전달함으로써 브릿지 마이크로 블록과 인캡 마이크로 블록에서 중복으로 메모리 액세스하는 루틴을 제거하여 액세스 지연 시간을 단축하여 이더넷 스위치의 성능을 향상시킨다.
이하에서, 첨부된 도면들을 참조하여 본 발명에 따른 이더넷 스위치의 성능 향상 방법에 대해 상세히 설명한다.
도 1은 이더넷 패킷을 처리하는 마이크로 블록과 이와 관련된 룩업 테이블의 일 실시예의 구성을 도시한 도면이다.
도 1을 참조하면, 입구(Ingress) 부분(100)은 수신부(Rx)(105), 디캡부(110) 및 브릿지부(115) 등의 마이크로 블록들로 구성되고, 출구(Egrees) 부분(150)은 인캡부(155) 및 송신부(TX)(160) 등의 마이크로 블록들로 구성된다.
입구 부분의 디캡부(110)는 이더넷 패킷을 이더넷 타입별로 구분하여 하나의 VLAN(Virtual LAN)으로 매핑하는 기능을 수행하고, 브릿지부(115)는 패킷의 목적지 주소를 기초로 FDB(Forwarding Database) 테이블을 검색하여 출력 포트를 결정하는 기능을 수행하며, 출구 부분의 인캡부(155)는 출력 포트의 태킹(tagging) 정보에 따라 VLAN 태그를 처리하는 기능을 수행한다.
이러한 각 마이크로 블록들은 SRAM에 저장되어 있는 각종 L2 포워딩 테이블에 액세스하여 필요한 정보를 얻는다. SRAM에 저장되는 L2 포워딩 테이블에는, 포트의 정보를 저장하는 L2 포트 테이블(120), VLAN 정보를 저장하는 VLAN 테이블(130), 해당 VLAN에 속하는 포트의 정보를 저장하는 VLAN 포트 테이블(125), 패킷의 출력 포트 정보를 검색하는데 사용되는 FDB 테이블(135) 등이 있다. 구체적으로, 입구 부분(100)은 L2 포트 테이블(120), VLAN 테이블(130), VLAN 포트 테이블(125) 및 FWD 테이블(135)을 포함하고, 출구 부분(150)은 L2 포트 테이블(165)과 VLAN 포트 테이블(170)을 포함한다.
도 2는 L2 포워딩 테이블간의 연결 관계를 도시한 도면이다.
디캡부(110)는 L2 포트 테이블(120)과 VLAN 테이블(130), VLAN 포트 테이블(125)의 정보를 검색한다. 이를 도 2를 참조하여 설명하면, 디캡부(110)는 입력 포트의 L2 포트 테이블(120)에서 포트 태깅 정보와 디폴트 VLAN 번호를 검색하고, VLAN 테이블(130)에서는 유효성과 L2 포트 번호를 검색한다. 또한 디캡부(110)는 VLAN 포트 테이블(125)에서 VLAN 테이블 주소를 검색하고, 포트 상태 정보를 검색한다.
브릿지부(115)는 FDB 테이블(134)과 VLAN 포트 테이블(125)을 검색하여 필요한 정보를 얻는다. 구체적으로 브릿지부(115)는 입출력 포트의 VLAN 포트 테이블(125)에서 포트 상태 정보를 검색하고, FDB 테이블(145)에서 출력 포트 정보를 검색한다.
L2 포트 테이블(120)은 포트 번호로, VLAN 테이블(130)은 VLAN 번호로 색인되어 있다. VLAN 포트 테이블(125)은 VLAN 번호와 포트 정보를 이용한 해쉬키로, FDB 테이블(135)은 목적지 주소를 이용한 해쉬키로 색인되어 있다.
도 3은 도 1의 디캡부의 패킷 처리 방법을 도시한 도면이다.
도 3을 참조하면, 디캡부(110)는 수신부(105)로부터 이더넷 패킷을 받은 다음, 메타데이터(metadata)로부터 입력 포트 정보를 얻고, 패킷의 헤더로부터 이더넷 타입 정보를 얻는다(S300).
디캡부는 수신한 패킷이 tagged 또는 untagged 패킷인지를 파악한다(S305).
먼저, tagged 패킷인 경우, 디캡부는 패킷의 헤더로부터 CFI(Canonical Format Indicator), VLAN 번호, 우선순위 등의 정보를 얻는다(S310). 그리고 디캡 부는 헤더가 이더넷 타입이 아니면(S315) 패킷을 폐기하고(S385), 이더넷 타입이면(S315) 메타데이터의 tagged 필드에 1을 기록한다(S320). 디캡부는 패킷의 태그가 VLAN 태그나 priority 태그 중 어느 것인지 파악한다(S325). 예를 들어, priority-tagged 패킷이 아니면(S325) 디캡부는 VLAN 번호, 우선순위를 메타데이터에 기록한다(S330).
다음으로, untagged 패킷인 경우, 디캡부는 메타데이터의 tagged 필드에 0을 기록하고(S340), 입력 포트에 해당하는 L2 포트 테이블의 디폴트 VLAN 번호와 포트 태깅 정보를 읽어온다(S345). untagged 패킷 수신이 금지되어 있다면(S350) 그 패킷을 폐기하고(S385), untagged 패킷 수신이 가능하면(S350) 디캡부는 디폴트 VLAN 번호와 입력 포트 정보를 기초로 VLAN 포트 테이블로부터 디폴트 우선순위 값을 읽어온다(S355). 그리고 디캡부는 디폴트 우선순위, 디폴트 VLAN 번호를 메타데이터에 기록한다(S360).
이와 같이 패킷의 종류가 tagged/untagged 여부에 따라 각각의 동작을 수행한 후 디캡부는 다음의 공통적인 동작을 수행한다. 디캡부는 VLAN 번호, 라인카드 번호, 입력 포트를 기초로 VLAN 포트 테이블로부터 VLAN 테이블 주소, 유효성, 포트 상태 정보, 우선순위를 읽어온다(S365). 또한 디캡부는 VLAN 테이블의 주소에 해당하는 VLAN 포트 테이블로부터 유효성과 L2 포트 번호를 읽는다(S370). VLAN 번호와 L2 포트가 유효하면(S375), 메타데이터를 설정하고, 다음 마이크로 블록을 설정한 후(S380) 패킷을 브릿지부로 전달한다.
도 4는 도 1의 브릿지부의 패킷 처리 방법을 도시한 도면이다.
도 4를 참조하면, 브릿지부는 디캡부로부터 패킷을 전달받은 후, 패킷의 헤더로부터 VLAN 번호와 목적지 주소(Destination Address)를 획득한다(S400). 브릿지부는 추출한 목적지 주소를 이용하여 FDB 테이블로부터 해당 엔트리를 찾아 플래그(flag) 및 출력 포트 정보를 읽어온다(S405). 브릿지부는 읽어온 플래그의 값이 스패닝 트리(ST, Spanning Tree) 알고리즘을 적용하게끔 설정되어 있으면(S415) 예외처리를 수행한다(S420). 플래그의 값이 ST가 아니면(S415), 브릿지부는 메타데이터로부터 입력포트 정보를 얻는다(425). 그리고 브릿지부는 VLAN 번호, 라인카드 번호, 입력포트를 기초로 VLAN 포트 테이블로부터 포트 상태 정보를 읽어온다(S430). 포트 상태가 러닝(learning)이면(S435) 출발지 주소(Source Address) 룩업을 수행하고(S440), 포트 차단(port blocking)이나 리스닝(listening)이면 패킷을 폐기한다(S410).
그 다음으로, 브릿지부는 VLAN 번호, 라인카드 번호, 출력 포트를 기초로 VLAN 포트 테이블로부터 포트 상태 정보를 읽는다(S445). VLAN 포트 테이블로부터 읽은 포트 상태가 내부포트(internal port)이면(S450) 예외처리를 수행하고(S420), 멀티캐스트/브로드캐스트이면(S450) 패킷을 폐기하고(S410), 포트 포워딩(port forwarding)이면(S450), 메타데이터에 출력포트를 설정하고(S445), 패킷을 출구 부분의 인캡부로 전달한다.
도 5는 도 1의 인캡부의 패킷 처리 방법을 도시한 도면이다.
도 5를 참조하면, 인캡부는 브릿지부로부터 패킷을 수신하면, 메타데이터로부터 VLAN 번호와 출력 포트 정보를 얻는다(S500). 그리고 인캡부는 VLAN 번호, 라 인카드 번호 및 출력 포트를 기초로 VLAN 포트 테이블로부터 태깅(taggging) 정보를 읽어온다(S505). 인캡부는 또한 출력 포트에 해당하는 L2 포트 테이블에서 MTU(Maximum Transmission Unit) 값을 읽어온다(S510). 인캡부는 메타데이터로부터 패킷의 태깅 상태를 얻는다(S515). 인캡부는 포트의 태깅 정보를 기초로 패킷에 태그를 붙여 나갈지 여부를 파악한다(S520). 즉 인캡부는 포트의 태깅 값이 1이면 태그를 붙여 전송하고 1이 아니면 태그를 붙이지 않고 전송한다.
먼저 포트의 태깅 값이 1인 경우, 인캡부는 메타데이터로부터 VLAN 번호, 우선순위를 얻고(S525), 현재 패킷의 태깅 상태가 1이 아니면(S530) 패킷에 태그를 삽입한다(S535). 인캡부는 패킷의 태깅 상태가 1이고(S530), priority-tagged 패킷이면(S540) 태그를 갱신한다(S545). 포트의 태깅 값이 1이 아니고(S520) 패킹의 태깅 상태가 1이면(S550) 인캡부는 태그를 제거한다(S555).
그 이후, 인캡부는 FCS(Frame Check Sequence)가 존재하면(S560), 이를 다시 계산하여 갱신한다(S565). 패킷의 크기가 MTU보다 작으면(S570) 인캡부는 DRAM에 변경된 헤더를 기록하고(S575) 패킷을 전송부로 전송한다.
도 1 내지 도 5에서 설명한 마이크로 블록 및 테이블 구조에서, 한 포트당 1Gb/s, 총 8Gb/s (8포트)를 입력하였을 때 출력 속도를 표 1과 같은 실험 조건에서 측정하였다.
마이크로 엔지 속도 1.4G
1.2G
패킷 처리용 마이크로 엔진 수 6개
8개
패킷 타입 tagged 이더넷 프레임
untagged 이더넷 프레임
SRAM 최대 주파수 200MHz
TCAM 최대 주파수 200MHz
RDRAM 최대 주파수 1066MHz
한 포트당 속도 1Gb/s
포트 수 8개
그 실험 결과는 표 2와 같다.
실험조건
6개 ME 8개 ME
tagged 프레임 untagged 프레임 tagged 프레임 untagged 프레임
1.4G 6.24 Gb/s 6.24 Gb/s 6.20 Gb/s 6.20 Gb/s
1.2G 6.04 Gb/s 6.05 Gb/s 5.99 Gb/s 5.97 Gb/s
실험 결과를 살펴보면, 마이크로 엔진 속도가 16% 증가해도 처리속도는 약 3%만이 증가하였다. 마이크로 엔진의 동작 속도가 증가하면 마이크로 코드를 수행하는 부분의 속도는 증가하나 RDRAM이나 SRAM과 같은 메모리 부분의 동작 주파수는 거의 같거나 감소한다. 따라서 성능에 영향을 미치는 부분은 마이크로 코드 부분이 아니라 메모리 액세스 부분임을 알 수 있다. 패킷 타입에 따른 처리 속도의 차이는 없다. 즉 tagged 패킷과 untagged 패킷은 마이크로 코드 수행에서 차이가 있지만 메모리 액세스 부분은 동일하기 때문이다. 또한 마이크로 엔진 개수를 늘리면 오히려 처리 속도가 감소한다.
종래 구현된 패킷처리엔진 구조는 functional chaining 방식이므로 마이크로 엔진 수를 증가시키면 쓰레드(thread) 수가 증가하여 동시에 처리되는 패킷 수는 늘어나지만 각 쓰레드 사이의 메모리 액세스 지연 시간이 늘어나기 때문에 오히려 성능이 감소한다.
따라서 성능을 향상시키기 위해서는 메모리 액세스 중에 발생하는 아이들타임(idle time)을 없애 메모리 액세스 지연 시간을 줄여야 한다. 그러기 위해서는 포워딩 테이블을 액세스하는 코드들이 몰려 있지 않도록 재배치하여야 하고, 메모리 액세스 횟수를 줄여야 한다.
도 6은 본 발명에 따른 이더넷 패킷을 처리하는 마이크로 블록들과 그에 따른 룩업 테이블의 일 실시예의 구성을 도시한 도면이다.
도 6을 참조하면, 마이크로 블록들(605,610,615,655,660)이 룩업 테이블들(620,625,530,635,665)을 액세스하는 방법과 각각의 룩업 테이블간의 참조에 있어서 도 1과 상이하며, 이를 각각 점선 및 실선으로 표시하였다.
구체적으로, 도 6의 디캡부(610와 브릿지부(615)는 VLAN 테이블(625)을 검색하는 마이크로 코드를 포함하지 않는다. 즉, 도 1의 경우 디캡부(110)는 해당 입력 포트가 해당 VLAN에 속하는지, VLAN 멤버인지를 확인하기 위하여 VLAN 테이블(130)을 검색하는 코드를 포함하였으나 도 6의 디캡부(610)에서는 이러한 코드를 삭제하였다. 그러나 이러한 확인 과정은 코어 컴포넌트에서 VLAN 테이블(625)을 생성하고 VLAN 포트 테이블(630)을 생성하는 과정에서 충분히 확인 가능하다. 따라서 입력 포트의 VLAN 멤버쉽 확인 과정은 마이크로 코드로 구현하지 않고 코어 컴포넌트에서 테이블 구성시 이루어진다.
도 7은 본 발명에 따른 디캡부의 패킷 처리 방법의 일 실시예를 도시한 도면이다.
도 7을 참조하면, 디캡부(110)는 수신부(105)로부터 이더넷 패킷을 받은 다음, 메타데이터(metadata)로부터 입력 포트 정보를 얻고, 패킷의 헤더로부터 이더넷 타입 정보를 얻는다(S700).
디캡부는 수신한 패킷이 tagged 또는 untagged 패킷인지를 파악한다(S705).
tagged 패킷인 경우, 디캡부는 패킷의 헤더로부터 CFI(Canonical Format Indicator), VLAN 번호, 우선순위 등의 정보를 얻는다(S710). 그리고 디캡부는 헤더 타입이 이더넷이 아니면(S715) 패킷을 폐기하고(S780), 이더넷 타입이면(S715) 메타데이터의 tagged 필드에 1을 기록한다(S720). 디캡부는 패킷의 태그가 VLAN 태그와 priority 태그 중 어느 것인지 파악한다(S725). 예를 들어, VLAN 번호가 0이면 priority-tagged 패킷인 경우이다.
다음으로, untagged 패킷인 경우, 디캡부는 메타데이터의 tagged 필드에 0을 기록하고(S730) 입력 포트에 해당하는 L2 포트 테이블의 디폴트 VLAN 번호와 포트상태 정보를 읽어온다(S735). 해당 포트가 untagged 패킷을 수신하지 못하도록 설정되어 있다면(S740) 그 패킷을 폐기한다(S780).
그리고 디캡부는 VLAN 번호에 해당하는 VLAN 테이블로부터 유효성, L2 포트 번호를 읽고, VLAN 테이블로부터 VLAN 포트 테이블의 디폴트 우선순위, 포트 상태 정보를 읽어온다(S745).
디캡부는 VLAN 테이블의 VLAN 번호와 패킷의 VLAN 번호가 동일하면(S750), 패킷 타입이 무엇인지 파악한다(S755). 패킷타입이 VLAN 태그가 존재하는 타입(즉, 패킷타입이 VLAN-tagged 패킷인 경우)이면, 디캡부는 VLAN 번호, 우선순위, 포트 상태를 메타데이터에 설정한다(S760). 패킷타입이 VLAN 태그가 존재하지 않는 타입이면(S755), 디캡부는 그 태그가 우선순위 태그인지 여부를 파악한다(S765). 우선순위 태그인 경우, 디캡부는 디폴트 VLAN 번호, 우선순위, 포트 상태 정보를 메타데이터에 설정하고(S775), 그 패킷을 브릿지부로 전송하며, 그 외의 경우(Untagged 패킷인 경우)이면 디폴트 우선순위, 디폴트 VLAN 번호, 포트 상태 정보를 메타데이터에 설정하고(S770) 패킷을 브릿지부로 전송한다.
도 8은 본 발명에 따른 VLAN 포트 테이블 구조의 일 예를 도시한 도면이다.
도 8을 참조하면, VLAN 포트 테이블에서 읽어야 하는 정보는 VLAN 번호(810), 포트 상태 정보(820), 디폴트 우선순위(830)이고 한 번에 읽어오는 단위가 1LW(Long Word)이므로, 5LW VLAN 포트 테이블을 전체 읽어오지 않고, VLAN 포트 테이블의 필드 순서를 바꾸어 VLAN 번호 필드, 포트 상태 정보 필드, 디폴트 우선순위 필드를 합하여 1LW가 되게 하여 1LW만큼 읽어온다. 따라서 메모리 액세스시 발생하는 불필요한 지연시간을 줄일 수 있다. 또한 디캡부은 메모리 액세스 횟수를 3번에서 2번으로 줄일 수 있다.
도 9는 본 발명에 따른 브릿지부의 패킷 처리 방법의 일 실시예를 도시한 도면이다.
도 9를 참조하면, 브릿지부는 디캡부로부터 패킷을 전달받은 후, 패킷의 헤더로부터 VLAN 번호와 목적지 주소(Destination Address)를 추출한다(S900). 브릿지부는 추출한 목적지 주소를 이용하여 FDB 테이블로부터 해당 엔트리를 찾아 플래그(flag) 및 출력 포트 정보를 읽어온다(S905). 브릿지부는 읽어온 플래그의 값이 스패닝 트리(ST, Spanning Tree) 알고리즘의 적용이 가능한 경우이면(S915) 예외처리를 수행한다(920). 플래그의 값이 ST가 아니면(S915), 브릿지부는 메타데이터로부터 입력포트 정보를 얻는다(S925).
입력 포트에 해당하는 VLAN 포트 테이블의 포트 상태 정보는 이전 디캡부에 의해 메타데이터에 저장되었으므로, 브릿지부는 포트 상태 정보를 읽기 위하여 VLAN 포트 테이블에 액세스할 필요가 없다. 따라서 브릿지부는 메모리 액세스 횟수를 3번에서 2번으로 줄일 수 있다.
구체적으로, 브릿지부는 메타데이터에 저장된 포트 상태가 러닝이면(930) 출발지 주소 룩업을 수행하고(S935), 포트 상태가 포트 차단이나 리스닝이면(S930) 패킷을 폐기한다(S910). 그리고, 브릿지부는 VLAN 번호, 라인카드 번호, 출력 포트를 기초로 VLAN 포트 테이블로부터 포트 상태 정보를 읽는다(S940). VLAN 포트 테이블로부터 읽은 포트 상태가 내부포트(internal port)이면(S945) 예외처리를 수행하고(S920), 멀티캐스트/브로드캐스트이면(S945) 패킷을 폐기하고(S910), 포트 포워딩(port forwarding)이면(S945), 메타데이터에 출력포트 및 태깅 정보를 설정하고(S950), 패킷을 출구 부분의 인캡부로 전달한다.
도 10은 본 발명에 따른 인캡부의 패킷 처리 방법의 일 실시예를 도시한 도면이다.
도 10을 참조하면, 출력 포트에 대한 VLAN 포트의 태깅 정보를 브릿지부가 메타데이터에 저장함으로써, 인캡부는 태깅 정보를 위하여 VLAN 포트 테이블에 액세스할 필요가 없다. 즉 인캡부는 메모리 액세스 횟수를 1번으로 줄일 수 있다.
구체적으로, 인캡부는 브릿지부로부터 패킷을 수신하면, 메타데이터로부터 VLAN 번호, 출력 포트 및 태깅 정보를 얻는다(S100). 그리고 인캡부는 출력포트에 해당하는 L2 포트 테이블로부터 MTU 정보를 읽는다(S1005). 인캡부는 메타데이터로부터 태깅 정보를 얻는다(S1010). 인캡부는 포트의 태깅 정보를 기초로 패킷에 태그를 붙여 나갈지 여부를 파악한다(S1015). 즉 인캡부는 포트의 태깅 값이 1이면 태그를 붙여 전송하고 1이 아니면 태그를 붙이지 않고 전송한다.
먼저 포트의 상태가 1인 경우, 인캡부는 메타데이터로부터 VLAN 번호, 우선순위를 얻고(S1020), 패킷의 태깅 상태가 1이 아니면(S1025) 패킷에 태그를 삽입한다(S1030). 인캡부는 패킷의 태깅 상태가 1이고(S1025), VLAN 번호가 0이면(S1035) 태그를 갱신한다(S1040). 포트의 태깅 상태가 1이 아니고(S1015), 패킷의 태깅 ㅅ상태가 1이면(S1045) 인캡부는 태그를 제거한다(S1050).
그 이후, 인캡부는 FCS(Frame Check Sequence)가 존재하면(S1055), 이를 다시 계산하여 갱신한다(S1060). 패킷의 크기가 MTU보다 작으면(S1065) DRAM에 변경된 헤더를 기록하고(S1070) 패킷을 전송부로 전송한다.
도 11은 도 6에 도시된 마이크로 블록들의 메모리 액세스 횟수를 줄이는데 사용되는 패킷 메타데이터 구조의 일 실시예를 도시한 도면이다.
도 11을 참조하면, 본 발명에 따른 메타데이터는 입력 포트 필드에 2비트의 포트 상태 필드(1100)를 추가하고 출력 포트 필드에 1 비트의 포트 태깅 필드(1110)를 추가한다.
따라서, 포워딩 테이블을 검색하기 위해 메모리를 액세스하는 전체 횟수는 8번에서 5번으로 감소하고, 데이터 구조와 메타데이터 구조를 수정하여 엑세스하는 사이즈를 최적화함으로써 지연 시간을 최소화한다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1은 이더넷 패킷을 처리하는 마이크로 블록과 이와 관련된 룩업 테이블의 일 실시예의 구성을 도시한 도면,
도 2는 L2 포워딩 테이블간의 연결 관계를 도시한 도면,
도 3은 도 1의 디캡부의 패킷 처리 방법을 도시한 도면,
도 4는 도 1의 브릿지부의 패킷 처리 방법을 도시한 도면,
도 5는 도 1의 인캡부의 패킷 처리 방법을 도시한 도면,
도 6은 본 발명에 따른 이더넷 패킷을 처리하는 마이크로 블록들과 그에 따른 룩업 테이블의 일 실시예의 구성을 도시한 도면,
도 7은 본 발명에 따른 디캡부의 패킷 처리 방법의 일 실시예를 도시한 도면,
도 8은 본 발명에 따른 VLAN 포트 테이블 구조의 일 예를 도시한 도면,
도 9는 본 발명에 따른 브릿지부의 패킷 처리 방법의 일 실시예를 도시한 도면,
도 10은 본 발명에 따른 인캡부의 패킷 처리 방법의 일 실시예를 도시한 도면, 그리고,
도 11은 마이크로 블록들의 메모리 액세스 횟수를 줄이는데 사용되는 패킷 메타데이터 구조의 일 실시예를 도시한 도면이다.

Claims (10)

  1. 이더넷 스위치에서 패킷을 타입별로 구분하여 VLAN 매핑 기능을 수행하는 마이크로 블록에서의 패킷 처리 방법에 있어서,
    VLAN 테이블로부터 상기 VLAN 매핑 기능 수행을 위해 필요한 정보를 읽어오고, 상기 VLAN 테이블로부터 VLAN 포트 테이블을 참조하여 포트 상태 정보를 읽어오는 단계; 및
    상기 패킷의 타입에 따른 메타데이터의 설정시 상기 포트 상태 정보를 메타데이터에 포함시키는 단계;를 포함하는 것을 특징으로 하는 패킷 처리 방법.
  2. 제 1항에 있어서,
    상기 패킷의 이더넷 타입이 태그가 없는 형태이거나 상기 태그가 VLAN 태그가 아닌 경우, 상기 패킷의 입력포트에 해당하는 L2 포트 테이블로부터 디폴트 VLAN 번호를 포함하는 정보를 읽는 단계;를 상기 포트 상태 정보를 읽어오는 단계 전에 더 포함하는 것을 특징으로 하는 패킷 처리 방법.
  3. 제 1항에 있어서,
    패킷 타입에 따라, VLAN 번호 또는 디폴드 VLAN 번호 중 어느 하나, 우선순위 또는 디폴트 우선순위 중 어느 하나 및 상기 포트 상태 정보를 상기 메타 데이터에 설정하는 단계;를 더 포함하는 것을 특징으로 하는 패킷 처리 방법.
  4. 제 1항에 있어서,
    상기 VLAN 포트 테이블에서 VLAN 번호 필드, 포트 상태 정보 필드, 디폴트 우선순위 필드를 연속하여 배치하는 것을 특징으로 하는 패킷 처리 방법.
  5. 이더넷 스위치에서 패킷의 목적지 주소를 이용하여 출력 포트를 결정하는 기능을 수행하는 마이크로 블록에서의 패킷 처리 방법에 있어서,
    패킷의 목적지 주소에 대한 해쉬 테이블을 이용하여 포워딩 데이터베이스 테이블로부터 상기 출력 포트 결정 기능에 필요한 제1 정보를 얻는 단계;
    메타데이터로부터 포트 상태 정보를 얻는 단계;
    상기 포트 상태 정보가 포트 포워딩이면, 상기 제1 정보를 기초로 VLAN 포트 테이블로부터 상기 출력 포트 결정 기능에 필요한 제2 정보를 얻는 단계; 및
    상기 VLAN 포트 테이블로부터 읽은 포트 상태 정보가 포트 포워딩이면, 상기 포워딩 데이터베이스 테이블로부터 얻은 출력 포트 정보와 상기 VLAN 포트 테이블로부터 얻은 태깅 정보를 메타데이터에 설정하는 단계;를 더 포함하는 것을 특징으로 하는 패킷 처리 방법.
  6. 제 5항에 있어서,
    상기 제1 정보는 플래그, 출력 포트, 출력 라인카드 번호, VLAN 번호를 포함하는 것을 특징으로 하는 패킷 처리 방법.
  7. 제 5항에 있어서,
    상기 제2 정보는 포트 상태 정보, 태깅 정보를 포함하는 것을 특징으로 하는 패킷 처리 방법.
  8. 제 5항에 있어서,
    상기 메타데이터에 설정된 포트 상태 정보는 이전 마이크로 블록에서 설정된 것을 특징으로 하는 패킷 처리 방법.
  9. 이더넷 스위치에서 패킷의 출력 포트의 태깅 정보에 따라 VLAN 태그를 처리하는 기능을 수행하는 마이크로 블록에서의 패킷 처리 방법에 있어서,
    메타데이터로부터 출력포트 정보 및 태깅 정보를 얻는 단계;
    상기 출력포트에 해당하는 포트 테이블로부터 최대 전송 단위(MTU)를 읽는 단계;
    상기 패킷의 타입에 따라 태그 삽입, 갱신 또는 제거를 수행하는 단계; 및
    패킷 사이즈의 크기가 상기 MTU보다 작으면 상기 패킷의 변경된 헤더를 메모리에 쓰는 단계;를 포함하는 것을 특징으로 하는 패킷 처리 방법.
  10. 제 9항에 있어서,
    상기 태깅정보는 패킷의 목적지 주소를 이용하여 출력 포트를 결정하는 기능 을 수행하는 마이크로 블록에 의해 상기 메타데이터에 설정되는 것을 특징으로 하는 패킷 처리 방법.
KR1020080084752A 2008-08-28 2008-08-28 이더넷 스위치의 성능 향상을 위한 패킷 처리 방법 KR100994127B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080084752A KR100994127B1 (ko) 2008-08-28 2008-08-28 이더넷 스위치의 성능 향상을 위한 패킷 처리 방법
US12/423,216 US20100054251A1 (en) 2008-08-28 2009-04-14 Method of processing packet for improving performance of ethernet switch

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080084752A KR100994127B1 (ko) 2008-08-28 2008-08-28 이더넷 스위치의 성능 향상을 위한 패킷 처리 방법

Publications (2)

Publication Number Publication Date
KR20100025972A KR20100025972A (ko) 2010-03-10
KR100994127B1 true KR100994127B1 (ko) 2010-11-15

Family

ID=41725360

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080084752A KR100994127B1 (ko) 2008-08-28 2008-08-28 이더넷 스위치의 성능 향상을 위한 패킷 처리 방법

Country Status (2)

Country Link
US (1) US20100054251A1 (ko)
KR (1) KR100994127B1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8351429B2 (en) * 2009-05-13 2013-01-08 Avaya Inc. Method and apparatus for providing fast reroute of a packet that may be forwarded on one of a plurality of equal cost multipath routes through a network
US8385335B2 (en) * 2009-05-13 2013-02-26 Avaya Inc. Method and apparatus for providing fast reroute of a unicast packet within a network element to an available port associated with a multi-link trunk
US8351431B2 (en) * 2009-05-13 2013-01-08 Avaya Inc. Method and apparatus for providing fast reroute of a multicast packet within a network element to an available port associated with a multi-link trunk
JP5585219B2 (ja) * 2010-06-03 2014-09-10 富士通株式会社 スイッチング装置および仮想lan構築方法
US20120033670A1 (en) * 2010-08-06 2012-02-09 Alcatel-Lucent, Usa Inc. EGRESS PROCESSING OF INGRESS VLAN ACLs
US8953621B2 (en) * 2010-09-10 2015-02-10 Futurewei Technologies, Inc. Specifying priority on a virtual station interface discovery and configuration protocol response
US9729431B1 (en) * 2011-08-16 2017-08-08 Marvell International Ltd. Using standard fields to carry meta-information
TWI469569B (zh) * 2012-12-20 2015-01-11 Hon Hai Prec Ind Co Ltd 網路交換機
US20160072733A1 (en) * 2013-03-21 2016-03-10 Hewlett-Packard Development Company, L.P. Using a network switch to control a virtual local network identity association
US20150030027A1 (en) * 2013-07-26 2015-01-29 Lsi Corporation Switch Device With Device-Specified Bridge Domains
JP2015119274A (ja) * 2013-12-17 2015-06-25 ソニー株式会社 通信装置、パケット監視方法、通信方法及びコンピュータプログラム
US9461914B2 (en) * 2014-04-07 2016-10-04 Cisco Technology, Inc. Path maximum transmission unit handling for virtual private networks
US10382228B2 (en) * 2014-06-26 2019-08-13 Avago Technologies International Sales Pte. Limited Protecting customer virtual local area network (VLAN) tag in carrier ethernet services
CN104348696B (zh) * 2014-11-17 2018-03-27 京信通信系统(中国)有限公司 一种划分多vlan的方法和设备
US10594618B1 (en) * 2017-06-06 2020-03-17 Juniper Networks, Inc Apparatus, system, and method for fragmenting packets into segments that comply with the maximum transmission unit of egress interfaces
CN110401606A (zh) * 2018-04-24 2019-11-01 北京码牛科技有限公司 网络深度报文处理方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10150459A (ja) 1996-11-19 1998-06-02 Hitachi Cable Ltd 仮想lan機能付きスイッチングハブ
JP2003318937A (ja) 2002-04-26 2003-11-07 Hitachi Cable Ltd スイッチングハブ
US20070047540A1 (en) 2005-08-26 2007-03-01 Nigel Bragg Forwarding table minimisation in Ethernet switches

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978378A (en) * 1997-09-11 1999-11-02 3Com Corporation Method and apparatus for VLAN support
JP3963728B2 (ja) * 2002-01-22 2007-08-22 富士通株式会社 スパニングツリーのバイパス方法および装置
US7283528B1 (en) * 2002-03-22 2007-10-16 Raymond Marcelino Manese Lim On the fly header checksum processing using dedicated logic
US7304996B1 (en) * 2004-03-30 2007-12-04 Extreme Networks, Inc. System and method for assembling a data packet
JP2006178811A (ja) * 2004-12-24 2006-07-06 Hitachi Ltd ストレージシステム及びストレージシステムのパス制御方法
US7873041B2 (en) * 2006-12-01 2011-01-18 Electronics And Telecommunications Research Institute Method and apparatus for searching forwarding table

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10150459A (ja) 1996-11-19 1998-06-02 Hitachi Cable Ltd 仮想lan機能付きスイッチングハブ
JP2003318937A (ja) 2002-04-26 2003-11-07 Hitachi Cable Ltd スイッチングハブ
US20070047540A1 (en) 2005-08-26 2007-03-01 Nigel Bragg Forwarding table minimisation in Ethernet switches

Also Published As

Publication number Publication date
US20100054251A1 (en) 2010-03-04
KR20100025972A (ko) 2010-03-10

Similar Documents

Publication Publication Date Title
KR100994127B1 (ko) 이더넷 스위치의 성능 향상을 위한 패킷 처리 방법
US11102120B2 (en) Storing keys with variable sizes in a multi-bank database
US10389633B2 (en) Hash-based address matching
EP1779605B1 (en) Forwarding database in a network switch device
JP4482584B2 (ja) モストスペシフィックフィルタ整合と移送レベル共有とを用いる二段パケット分類のための装置と方法
US7953082B2 (en) Method and system for packet classification with reduced memory space and enhanced access speed
US7281085B1 (en) Method and device for virtualization of multiple data sets on same associative memory
CN111937360B (zh) 最长前缀匹配
JP2004537921A (ja) 高速パケット転送のための方法及びシステム
US10397116B1 (en) Access control based on range-matching
US7624226B1 (en) Network search engine (NSE) and method for performing interval location using prefix matching
US20100260188A1 (en) Method and device for processing qinq packet
CN102427428A (zh) 基于多域最长匹配的流识别方法及设备
WO2021104393A1 (zh) 多规则流分类的实现方法、设备和存储介质
US9985885B1 (en) Aggregating common portions of forwarding routes
US7558775B1 (en) Methods and apparatus for maintaining sets of ranges typically using an associative memory and for using these ranges to identify a matching range based on a query point or query range and to maintain sorted elements for use such as in providing priority queue operations
WO2008119282A1 (fr) Procédé permettant d'acheminer une consultation et système de réacheminement
US9166819B2 (en) Method and device for realizing flexible QinQ
Lim et al. Two-dimensional packet classification algorithm using a quad-tree
Chang Efficient multidimensional packet classification with fast updates
CN109754021B (zh) 基于范围元组搜索的在线包分类方法
CN111835727B (zh) 一种基于cpu+fpga+搜索引擎平台实现网络访问控制的方法
Ruan et al. An energy-efficient TCAM-based packet classification with decision-tree mapping
JP3591426B2 (ja) プレフィックスを含む複数アドレスによる連想情報探索方法及び装置
KR100657107B1 (ko) 패킷 분류 방법과 장치

Legal Events

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

Payment date: 20130730

Year of fee payment: 18